OSDN Git Service

gcc/
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
2
3         * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref
4         throughout file.
5         * config/mips/sb1.md: Likewise.
6         * config/mips/predicates.md: Replace (match_test "!...")
7         with (not (match_test "..."))
8         * config/mips/constraints.md: Likewise.
9
10 2011-09-09  Andrew Stubbs  <ams@codesourcery.com>
11
12         * config/arm/arm-cores.def (generic-armv7-a): New architecture.
13         * config/arm/arm-tables.opt: Regenerate.
14         * config/arm/arm-tune.md: Regenerate.
15         * config/arm/arm.c (arm_file_start): Output .arch directive when
16         user passes -mcpu=generic-*.
17         (arm_issue_rate): Add genericv7a support.
18         * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec.
19         (ASM_CPU_SPEC): New define.
20         * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec).
21         * config/arm/semi.h (ASM_SPEC): Likewise.
22         * doc/invoke.texi (ARM Options): Document -mcpu=generic-*
23         and -mtune=generic-*.
24
25 2011-09-09  Richard Guenther  <rguenther@suse.de>
26
27         PR tree-optimization/50328
28         * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
29         constant or default-def operand.
30
31 2011-09-09  Richard Guenther  <rguenther@suse.de>
32
33         * tree-ssa-pre.c (create_expression_by_pieces): Fold the
34         last statement.
35
36 2011-09-09  Richard Guenther  <rguenther@suse.de>
37
38         * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
39         instead of a statement.
40         * gimple-fold.c (fold_stmt_inplace): Likewise.
41         * sese.c (graphite_copy_stmts_from_block): Adjust.
42         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
43         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
44         fold_stmt.
45         (forward_propagate_addr_into_variable_array_index): Likewise.
46         (forward_propagate_addr_expr_1): adjust.
47         (associate_plusminus): Likewise.
48         (ssa_forward_propagate_and_combine): Likewise.
49         * tree-ssa-mathopts.c (replace_reciprocal): Adjust.
50         (execute_cse_reciprocals): Likewise.
51         * tree-ssa.c (insert_debug_temp_for_var_def): Adjust.
52
53 2011-09-09  Nick Clifton  <nickc@redhat.com>
54
55         * config/mn10300/mn10300.c (mn10300_split_and_operand_count):
56         Return a positive value to indicate that the bits at the
57         bottom of the register should be cleared.
58
59 2011-09-09  Richard Guenther  <rguenther@suse.de>
60
61         * tree-ssa-operands.c (swap_tree_operands): Always adjust
62         existing operand positions.
63
64 2011-09-09  Richard Guenther  <rguenther@suse.de>
65
66         PR middle-end/50333
67         * tree-data-ref.c (split_constant_offset): Do not try to handle
68         ternary ops.
69
70 2011-09-08  Andrew Stubbs  <ams@codesourcery.com>
71
72         PR tree-optimization/50318
73         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
74         typo in use of mult_rhs1 and mult_rhs2.
75
76 2011-09-08  Uros Bizjak  <ubizjak@gmail.com>
77
78         * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
79         (standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.
80
81 2011-09-08  Bernd Schmidt  <bernds@codesourcery.com>
82
83         * config/arm/arm.md (push_multi): Emit predicates.
84         (push_fp_multi): Likewise.
85         * config/arm/arm.c (vfp_output_fstmd): Likewise.
86
87 2011-09-08  Dodji Seketeli  <dodji@redhat.com>
88
89         PR c++/33255 - Support -Wunused-local-typedefs warning
90         * c-decl.c (lookup_name): Use the new maybe_record_typedef_use.
91         (pushdecl): Use the new record_locally_defined_typedef.
92         (store_parm_decls): Allocate cfun->language.
93         (finish_function): Use the new maybe_warn_unused_local_typedefs,
94         and free cfun->language.
95         (c_push_function_context): Allocate cfun->language here only if needed.
96         (c_pop_function_context): Likewise, mark cfun->language
97         for collection only when it should be done.
98         * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes.
99         * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
100         maybe_record_local_typedef_use.
101         * doc/invoke.texi: Update documentation for
102         -Wunused-local-typedefs.
103
104 2011-09-08  Enkovich Ilya  <ilya.enkovich@intel.com>
105
106         * config/i386/i386-protos.h (ix86_lea_outperforms): New.
107         (ix86_avoid_lea_for_add): Likewise.
108         (ix86_avoid_lea_for_addr): Likewise.
109         (ix86_split_lea_for_addr): Likewise.
110
111         * config/i386/i386.c (LEA_MAX_STALL): New.
112         (increase_distance): Likewise.
113         (insn_defines_reg): Likewise.
114         (insn_uses_reg_mem): Likewise.
115         (distance_non_agu_define_in_bb): Likewise.
116         (distance_agu_use_in_bb): Likewise.
117         (ix86_lea_outperforms): Likewise.
118         (ix86_ok_to_clobber_flags): Likewise.
119         (ix86_avoid_lea_for_add): Likewise.
120         (ix86_avoid_lea_for_addr): Likewise.
121         (ix86_split_lea_for_addr): Likewise.
122         (distance_non_agu_define): Search in pred BBs added.
123         (distance_agu_use): Search in succ BBs added.
124         (IX86_LEA_PRIORITY): Value changed from 2 to 0.
125         (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
126         (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.
127
128         * config/i386/i386.md: Split added to transform non destructive
129         add into move and add.
130         (lea_1): transformed into insn_and_split to avoid AGU stalls.
131         (lea<mode>_2): Likewise.
132
133 2011-09-08  Martin Jambor  <mjambor@suse.cz>
134
135         PR tree-optimization/50287
136         * ipa-split.c (split_function): Do not create SSA names for
137         non-gimple-registers.
138
139 2011-09-08  Richard Guenther  <rguenther@suse.de>
140
141         PR tree-optimization/19831
142         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
143         skip builtins with vdefs that do not really store something.
144         (propagate_necessity): For calls to free that we can associate
145         with an allocation function do not mark the freed pointer
146         definition necessary.
147         (eliminate_unnecessary_stmts): Remove a call to free if
148         the associated call to an allocation function is not necessary.
149
150 2011-09-08  Richard Guenther  <rguenther@suse.de>
151
152         PR tree-optimization/19831
153         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
154         allocation functions as necessary.
155
156 2011-09-08  Iain Sandoe  <iains@gcc.gnu.org>
157
158         * config/darwin-driver.c (darwin_find_version_from_kernel): New routine
159         cut from ...
160         (darwin_default_min_version): Amended to provide defaults
161         for the cross directory case.
162         (darwin_driver_init): call darwin_default_min_version unconditionally.
163         * config/darwin.h (DEF_MIN_OSX_VERSION): New.
164         * config/darwin9.h: Likewise.
165         * config/darwin10.h: Likewise.
166         * config/rs6000/darwin7.h: Likewise.
167
168 2011-09-08  Jakub Jelinek  <jakub@redhat.com>
169
170         PR target/50310
171         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
172         code early if TARGET_AVX.
173         (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
174
175 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
176
177         * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
178         duplicates.
179
180         PR target/50310
181         * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
182         "mode" attribute computation.
183
184 2011-09-07  Bernd Schmidt  <bernds@codesourcery.com>
185
186         * regrename.c (struct du_head): Make nregs signed.
187         (closed_chains): Remove.
188         (create_new_chain): Return the new chain.
189         (chain_from_id): New static function.
190         (dump_def_use_chain): Change argument to be an int, indicating
191         the first ID to print.  All callers changed.
192         (merge_overlapping_regs): Use chain_from_id.  Assert that
193         chains don't conflict with themselves.
194         (rename_chains): Take no argument.  Iterate over id_to_chain
195         rather to find chains to rename.  Clear tick before the main loop.
196         (struct incoming_reg_info): New struct.
197         (struct bb_rename_info): New struct.
198         (init_rename_info, set_incoming_from_chain, merge_chains): New
199         static functions.
200         (regrename_analyze): New static function, broken out of
201         regrename_optimize.  Record and make use of open chain information
202         at basic block boundaries, and merge chains where possible.
203         (scan_rtx_reg): Make this_nregs signed.  Don't update
204         closed_chains.
205         (build_def_use): Return a bool to indicate success.  All callers
206         changed.  Don't initialize global data here.
207         (regrename_optimize): Move most code out of here into
208         regrename_analyze.
209         * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
210         range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
211         static inline functions.
212         * vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
213
214         * bb-reorder.c (insert_section_boundary_note): Don't check
215         optimize_function_for_speed_p.
216         (gate_handle_partition_blocks): Do it here instead.
217         (gate_handle_reorder_blocks): Move preliminary checks here ...
218         (rest_of_handle_reorder_blocks): ... from here.
219
220 2011-09-07  Martin Jambor  <mjambor@suse.cz>
221
222         PR middle-end/50301
223         * ipa-cp.c (find_more_values_for_callers_subset): Check jump
224         function index bounds.
225         (perhaps_add_new_callers): Likewise.
226
227 2011-09-07  Martin Jambor  <mjambor@suse.cz>
228
229         PR tree-optimization/49911
230         * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
231         enumerations to the corresponding plain integer type.
232
233 2011-09-07  Richard Guenther  <rguenther@suse.de>
234
235         PR tree-optimization/50319
236         * tree-if-conv.c (set_bb_predicate): Assert we only set
237         canonical predicates.
238         (add_to_predicate_list): Simplify.  Allow TRUTH_NOT_EXPR
239         around canonical predicates.
240         (predicate_bbs): Do not re-gimplify already canonical
241         predicates.  Properly unshare them though.
242         (find_phi_replacement_condition): Simplify.
243
244 2011-09-07  Richard Sandiford  <richard.sandiford@linaro.org>
245
246         PR target/49030
247         * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
248         * config/arm/arm.c (maybe_get_arm_condition_code): New function,
249         reusing the old code from get_arm_condition_code.  Return ARM_NV
250         for invalid comparison codes.
251         (get_arm_condition_code): Redefine in terms of
252         maybe_get_arm_condition_code.
253         * config/arm/predicates.md (arm_comparison_operator): Use
254         maybe_get_arm_condition_code.
255
256 2011-09-07  Richard Guenther  <rguenther@suse.de>
257
258         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
259         Canonicalize negated predicates by swapping edges.
260         (forward_propagate_into_cond): Likewise.
261
262 2011-09-07  Richard Guenther  <rguenther@suse.de>
263
264         PR tree-optimization/50213
265         * tree-flow.h (simple_iv_increment_p): Declare.
266         * tree-ssa-dom.c (simple_iv_increment_p): Export.  Also handle
267         POINTER_PLUS_EXPR.
268         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
269         not propagate simple IV counter increments.
270
271 2011-09-07  Eric Botcazou  <ebotcazou@adacore.com>
272             Iain Sandoe  <iains@gcc.gnu.org>
273
274         * config/rs6000/rs6000.c (compute_save_world_info): Test
275         cfun->has_nonlocal_label to determine if the out-of-line save
276         world call may be used.
277
278 2011-09-07  Nick Clifton  <nickc@redhat.com>
279
280         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
281         label on the parallel part of the insn.
282
283 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
284
285         PR debug/50191
286         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
287         avoid_constant_pool_reference first instead of last.
288
289 2011-09-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
290
291         * doc/configfiles.texi (Configuration Files): Update documentation
292         about tm_p.h and remove FIXME comment.
293
294 2011-09-06  Uros Bizjak  <ubizjak@gmail.com>
295
296         * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
297         (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
298
299 2011-09-06  Iain Sandoe  <iains@gcc.gnu.org>
300
301         * config/darwin10.h Remove duplicate LIB_SPEC.
302
303 2011-09-06  Enkovich Ilya  <ilya.enkovich@intel.com>
304
305         PR middle-end/44382
306         * target.def (reassociation_width): New hook.
307
308         * doc/tm.texi.in (reassociation_width): Likewise.
309
310         * doc/tm.texi (reassociation_width): Likewise.
311
312         * doc/invoke.texi (tree-reassoc-width): New param documented.
313
314         * hooks.h (hook_int_uint_mode_1): New default hook.
315
316         * hooks.c (hook_int_uint_mode_1): Likewise.
317
318         * config/i386/i386.h (ix86_tune_indices): Add
319         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
320
321         (TARGET_REASSOC_INT_TO_PARALLEL): New.
322         (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
323
324         * config/i386/i386.c (initial_ix86_tune_features): Add
325         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
326
327         (ix86_reassociation_width): New function.
328
329         * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
330
331         * tree-ssa-reassoc.c (get_required_cycles): New function.
332         (get_reassociation_width): Likewise.
333         (swap_ops_for_binary_stmt): Likewise.
334         (rewrite_expr_tree_parallel): Likewise.
335
336         (rewrite_expr_tree): Refactored.  Part of code moved into
337         swap_ops_for_binary_stmt.
338
339         (reassociate_bb): Now checks reassociation width to be used and
340         call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed.
341
342 2011-09-06  Richard Guenther  <rguenther@suse.de>
343
344         PR tree-optimization/47025
345         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
346         uses nothing.
347         (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
348         BUILT_IN_FREE.
349         (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
350         definitely points to.
351         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
352         BUILT_IN_VA_START doesn't let its va_list argument escape.
353         * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
354         not make any previous stores necessary.
355
356 2011-09-06  Martin Jambor  <mjambor@suse.cz>
357
358         * ipa-inline.h (struct inline_summary): Move versionable flag...
359         * cgraph.h (struct cgraph_local_info): ...here
360         * ipa-cp.c (determine_versionability): Use the new versionable flag.
361         (determine_versionability): Likewise.
362         (ipcp_versionable_function_p): Likewise.
363         (ipcp_generate_summary): Likewise.
364         * ipa-inline-analysis.c (dump_inline_summary): Do not dump the
365         versionable flag.
366         (compute_inline_parameters): Do not clear the versionable flag.
367         (inline_read_section): Do not stream the versionable flag.
368         (inline_write_summary): Likewise.
369         * lto-cgraph.c (lto_output_node): Stream the versionable flag.
370         (input_overwrite_node): Likewise.
371
372 2011-09-06  Richard Guenther  <rguenther@suse.de>
373
374         PR tree-optimization/48149
375         * tree-ssa-sccvn.c (vn_get_expr_for): Simplify.  Fix tuplification bug.
376         (vn_valueize): Move earlier.
377         (valueize_expr): Use vn_valueize.
378         (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
379         operands.
380         (simplify_unary_expression): Simplify.
381
382 2011-09-06  Richard Guenther  <rguenther@suse.de>
383
384         PR tree-optimization/48317
385         * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
386         trailing array.
387         (sizeof_vn_nary_op): New inline function.
388         (vn_nary_op_lookup_pieces): Adjust.
389         (vn_nary_op_insert_pieces): Likewise.
390         * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
391         (init_vn_nary_op_from_pieces): Adjust signature.  Deal with
392         any number of operands.
393         (vn_nary_length_from_stmt): New function.
394         (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
395         (vn_nary_op_lookup_pieces): Adjust signature and allocate properly
396         sized temporary.
397         (vn_nary_op_lookup): Likewise.
398         (vn_nary_op_lookup_stmt): Likewise.
399         (vn_nary_op_insert_into): Likewise.
400         (vn_nary_op_insert_stmt): Likewise.
401         (visit_use): Handle CONSTRUCTOR as nary.
402         * tree-ssa-pre.c (phi_translate_1): Adjust.
403         (create_expression_by_pieces): Likewise.
404         (compute_avail): Likewise.
405
406 2011-09-06  Ira Rosen  <ira.rosen@linaro.org>
407
408          * config/arm/arm.c (arm_preferred_simd_mode): Check
409         TARGET_NEON_VECTORIZE_DOUBLE instead of
410         TARGET_NEON_VECTORIZE_QUAD.
411         (arm_autovectorize_vector_sizes): Likewise.
412         * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
413         mask of mvectorize-with-neon-double.  Add RejectNegative.
414         (mvectorize-with-neon-double): New.
415
416 2011-09-06  Richard Guenther  <rguenther@suse.de>
417
418         * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching.
419
420 2011-09-06  Tom de Vries  <tom@codesourcery.com>
421
422         * recog.c (asm_labels_ok): New function.
423         (check_asm_operands): Use asm_labels_ok.
424
425 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
426
427         PR target/49606
428         * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
429         (PMODE_INSN): New macro.
430         * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
431         (mips_got_load, mips_expand_synci_loop): Likewise.
432         (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
433         cprestore patterns.
434         (mips_emit_loadgp): Use PMODE_INSN.  Handle SImode and DImode
435         copygp_mips16 patterns.
436         (mips_expand_prologue): Handle SImode and DImode potential_cprestore
437         and use_cprestore patterns.
438         (mips_override_options): Check for incompatible -mabi and -mlong
439         combinations.
440         * config/mips/mips.md (unspec_got<mode>): Rename to...
441         (unspec_got_<mode>): ...this.
442         (copygp_mips16): Use the Pmode iterator.
443         (potential_cprestore, cprestore, use_cprestore): Likewise.
444         (clear_cache, indirect_jump): Use PMODE_INSN.
445         (indirect_jump<mode>): Rename to...
446         (indirect_jump_<mode>): ...this.
447         (tablejump): Use PMODE_INSN.
448         (tablejump<mode>): Rename to...
449         (tablejump_<mode>): ...this.
450         (exception_receiver): Handle restore_gp_si and restore_gp_di.
451         (restore_gp): Use the Pmode iterator.
452         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
453         PMODE_INSN.
454
455 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
456
457         * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
458         Fix the type of the BIT_AND_EXPR.
459
460 2011-09-05  David S. Miller  <davem@davemloft.net>
461
462         * config.host: Add driver-sparc.o and sparc/x-sparc on
463         native sparc*-*-linux* builds.
464         * config/sparc/driver-sparc.c: Correct Linux strings.
465         * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
466         * config/sparc/linux64.h: Likewise.
467         * doc/invoke.texi: Document that Linux also supports
468         -mcpu=native and -mtune=native on sparc.
469
470         * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
471         PROCESSOR_NIAGARA4): New.
472         * config/sparc/sparc.opt: Handle new processor types.
473         * config/sparc/sparc.md: Add to "cpu" attribute.
474         * config/sparc/sparc.h (TARGET_CPU_niagara3,
475         TARGET_CPU_niagara4): New, treat as niagara2.
476         * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2.
477         * config/sparc/sol2.h: Likewise.
478         * config/sparc/niagara2.md: Schedule niagara3 like niagara2.
479         * config/sparc/sparc.c (sparc_option_override): Add
480         niagara3 and niagara4 handling.
481         (sparc32_initialize_trampoline): Likewise.
482         (sparc64_initialize_trampoline): Likewise.
483         (sparc_use_sched_lookahead): Likewise.
484         (sparc_issue_rate): Likewise.
485         (sparc_register_move_cost): Likewise.
486         * config/sparc/driver-sparc.c (cpu_names): Use niagara3
487         and niagara4 as appropriate.
488         * doc/invoke.texi: Document new processor types.
489         * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
490         and --with-tune options.
491
492         * config/sparc/sol2-64.h: Move ...
493         * config/sparc/default-64.h: ... to here.  Update comment.
494         * config.gcc: Update Solaris sparc to use default-64.h, also
495         prefix this header into the list on sparc64-*-linux.
496         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
497         TARGET_64BIT_DEFAULT is defined.  Remove commented out reference
498         to MASK_HARD_QUAD.
499
500 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
501
502         PR target/50289
503         * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
504         that contain global register variable.
505
506 2011-09-05  Richard Guenther  <rguenther@suse.de>
507
508         * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
509
510 2011-09-05  Richard Guenther  <rguenther@suse.de>
511
512         * stor-layout.c (layout_type): Use size_binop for array size
513         calculations.
514
515 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
516
517         * config/avr/avr.h (progmem_section): Remove Declaration.
518         * config/avr/avr.c (progmem_section): Make static and rename to
519         progmem_swtable_section.
520         (avr_output_addr_vec_elt): No need to switch sections.
521         (avr_asm_init_sections): Use output_section_asm_op as section
522         callback for progmem_swtable_section.
523         (avr_output_progmem_section_asm_op): Remove Function.
524         (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
525         (avr_asm_function_rodata_section): New static Function.
526         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
527         alignment 2**1 for jump tables.
528
529 2011-09-04  Jan Hubicka  <jh@suse.cz>
530
531         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
532         parameter is SSA name.
533
534 2011-09-04  Richard Guenther  <rguenther@suse.de>
535
536         Revert
537         2011-08-31  Richard Guenther  <rguenther@suse.de>
538
539         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
540         special-casing.
541
542 2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>
543
544         PR debug/49901
545         * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
546
547 2011-09-04  Jakub Jelinek  <jakub@redhat.com>
548             Ira Rosen  <ira.rosen@linaro.org>
549
550         PR tree-optimization/50208
551         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
552         argument.  Check that def_stmt is inside the loop.
553         (vect_recog_widen_mult_pattern): Update calls to
554         vect_handle_widen_mult_by_cons.
555         (vect_operation_fits_smaller_type): Check that def_stmt is
556         inside the loop.
557
558 2011-09-04  Ira Rosen  <ira.rosen@linaro.org>
559
560         * tree-vectorizer.c (vect_print_dump_info): Print line
561         number when dumping to a file.
562         (vectorize_loops): Add new messages to dump file.
563
564 2011-09-03  Martin Jambor  <mjambor@suse.cz>
565
566         * ipa-prop.h (ipa_jump_func_t): New typedef.
567         (struct ipa_edge_args): Removed field argument_count, field
568         jump_functions turned into a vector.
569         (ipa_set_cs_argument_count): Removed.
570         (ipa_get_cs_argument_count): Updated to work on vectors.
571         (ipa_get_ith_jump_func): Likewise.
572         * ipa-prop.c (ipa_count_arguments): Removed.
573         (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
574         jump functions.  Update caller.
575         (compute_pass_through_member_ptrs): Likewise.
576         (compute_cst_member_ptr_arguments): Likewise.
577         (ipa_compute_jump_functions_for_edge): Get number of arguments from
578         the statement, allocate vector.
579         (ipa_compute_jump_functions): Do not call ipa_count_arguments.
580         (duplicate_ipa_jump_func_array): Removed.
581         (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
582         (ipa_read_node_info): Allocate vector.
583
584 2011-09-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
585
586         PR middle-end/50232
587         * config/pa/pa.md (return): Define "return" insn pattern.
588         (epilogue): Use it when no epilogue is needed.
589         * config/pa/pa.c (pa_can_use_return_insn): New function.
590         * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
591
592 2011-09-03  Eric Botcazou  <ebotcazou@adacore.com>
593
594         * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
595         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
596         Force at least BITS_PER_UNIT alignment on the new variable.
597
598 2011-09-02  Gary Funck <gary@intrepid.com>
599
600         * opts.c (print_specific_help): Fix off-by-one compare in
601         assertion check.
602         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
603         CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
604         Increase by +5 to allow for more languages.
605         * optc-gen.awk: Generate #if that ensures that the number of
606         languages is within the implementation-defined limit.
607
608 2011-09-02  Michael Matz  <matz@suse.de>
609
610         PR middle-end/50260
611         * ipa-split.c (split_function): Call add_referenced_var.
612
613         * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
614         (cond_if_else_store_replacement_1): Ditto.
615         * tree-ssa-pre.c (get_representative_for): Ditto.
616         (create_expression_by_pieces): Ditto.
617         (insert_into_preds_of_block): Ditto.
618         * tree-sra.c (create_access_replacement): Ditto.
619         (get_replaced_param_substitute): Ditto.
620
621 2011-09-02  Bernd Schmidt  <bernds@codesourcery.com>
622
623         * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
624         automata_options.
625         (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
626         (l1w, s1w, l2w, s2w): Define in the main automaton.
627         (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
628         units.
629         * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
630         (c6x_unit_names): Add the new units.
631         (c6x_unit_codes): New static array.
632         (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
633         UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
634         UNIT_QID_SIDE_OFFSET): New macros.
635         (RESERVATION_S2): Adjust value.
636         (c6x_option_override): Compute c6x_unit_codes.
637         (assign_reservations): Take the unit_mask of the last instruction
638         into account.  Detect floating point reservations by looking for
639         the new units.  Don't assign reservations if the field is already
640         nonzero.
641         (struct c6x_sched_context): Add member prev_cycle_state_ctx.
642         (init_sched_state): Initialize it.
643         (c6x_clear_sched_context): Free it.
644         (insn_set_clock): Clear reservation.
645         (prev_cycle_state): New static variable.
646         (c6x_init_sched_context): Save it.
647         (c6x_sched_init): Allocate space for it and clear it.
648         (c6x_sched_dfa_pre_cycle_insn): New static function.
649         (c6x_dfa_new_cycle): Save state at the start of a new cycle.
650         (c6x_variable_issue): Only record units in the unit_mask that
651         were not set at the start of the cycle.
652         (c6x_variable_issue): Compute and store the unit_mask from the
653         current state.
654         (reorg_split_calls): Ensure the new information remains correct.
655         (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
656         TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
657         * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
658         * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
659         Add special reservations.
660         * config/c6x/c6x-sched.md: Regenerate.
661
662 2011-09-02  Martin Jambor  <mjambor@suse.cz>
663
664         * ipa-prop.h (ipa_node_params): Removed fields
665         called_with_var_arguments and node_versionable.
666         (ipa_set_called_with_variable_arg): Removed.
667         (ipa_is_called_with_var_arguments): Likewise.
668         * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
669         (determine_versionability): Do not check for type attributes and va
670         builtins.  Record versionability into inline summary.
671         (initialize_node_lattices): Do not check
672         ipa_is_called_with_var_arguments.
673         (propagate_constants_accross_call): Likewise, ignore arguments we do
674         not have PARM_DECLs for, set variable flag for parameters that were
675         not passed a value.
676         (create_specialized_node): Dump info that we cannot change signature.
677         * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
678         number of arguments.
679         (ipa_make_edge_direct_to_target): Likewise.
680         (ipa_update_after_lto_read): Likewise.
681         (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
682         * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
683         they were remapped.
684
685 2011-09-02  Richard Guenther  <rguenther@suse.de>
686
687         PR tree-optimization/27460
688         PR middle-end/29269
689         * doc/md.texi (vcond): Document.
690         * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
691         optab with two modes.
692         * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
693         (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
694         (vcond_optab): Adjust.
695         (vcondu_optab): Likewise.
696         (expand_vec_cond_expr_p): Adjust prototype.
697         * optabs.c (get_vcond_icode): Adjust.
698         (expand_vec_cond_expr_p): Likewise.
699         (expand_vec_cond_expr): Likewise.
700         * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
701         vector type.
702         (vectorizable_condition): Allow differing types for comparison
703         and result.
704         * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
705         for the comparison.
706         * config/i386/sse.md (vcond<mode>): Split to
707         vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
708         vcond<V_128:mode><VI124_128:mode> and
709         vcondu<V_128:mode><VI124_128:mode>.
710         (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
711         (vconduv2di): Likewise.
712         * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
713         (vcondu<mode>): Likewise.
714         * config/ia64/vect.md (vcond<mode>): Likewise.
715         (vcondu<mode>): Likewise.
716         (vcondv2sf): Likewise.
717         * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
718         * config/rs6000/paired.md (vcondv2sf): Likewise.
719         * config/rs6000/vector.md (vcond<mode>): Likewise.
720         (vcondu<mode>): Likewise.
721         * config/spu/spu.md (vcond<mode>): Likewise.
722         (vcondu<mode>): Likewise.
723
724 2011-09-02  Richard Guenther  <rguenther@suse.de>
725
726         * pretty-print.h (pp_unsigned_wide_integer): New.
727         * tree-pretty-print.c (dump_generic_node): Print unsigned
728         host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
729
730 2011-09-02  Richard Sandiford  <richard.sandiford@linaro.org>
731
732         PR target/49987
733         * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
734         valid CONST_VECTOR operands.
735         (rs6000_expand_vector_init): Likewise.
736
737 2011-09-02  Martin Jambor  <mjambor@suse.cz>
738
739         * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
740         * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
741         BINFO_VTABLE.  Parameter delta removed, all callers updated.
742         * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
743         BINFO_VTABLE.
744         * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
745         all calls.
746         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
747         handling of thunk_delta.
748         * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
749         (devirtualization_time_bonus): Do not handle thunk deltas.
750         (ipcp_discover_new_direct_edges): Likewise.
751         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
752         (try_make_edge_direct_simple_call): Likewise.
753         (try_make_edge_direct_virtual_call): Likewise.
754         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
755         parameter set as unused.
756         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
757         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
758         parameter set as unused.
759         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
760         (input_edge_opt_summary): Likewise.
761         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
762         BINFO_VIRTUALS at all.
763         * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
764
765 2011-09-02  Richard Guenther  <rguenther@suse.de>
766
767         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
768         (ccp_fold_stmt): Continue replacing args when folding alloca fails.
769
770 2011-08-31  Richard Guenther  <rguenther@suse.de>
771
772         * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
773         handling here, from ...
774         (expand_expr_real_1): ... here.
775         * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
776         and VEC_COND_EXPR.
777         * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
778         a GIMPLE_TERNARY_RHS.
779         * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
780         and VEC_COND_EXPR here ...
781         (verify_gimple_assign_single): ... not here.
782         * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
783         * tree-object-size.c (cond_expr_object_size): Adjust.
784         (collect_object_sizes_for): Likewise.
785         * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs.
786         * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
787         (ssa_forward_propagate_and_combine): Adjust.
788         * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
789         as ternary.
790         * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
791         * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
792         * tree-vect-stmt.c (vectorizable_condition): Likewise.
793         * tree-vrp.c (extract_range_from_cond_expr): Likewise.
794         (extract_range_from_assignment): Likewise.
795
796 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
797
798         * config/i386/i386.md: Use (match_test ...) for attribute tests.
799         * config/i386/mmx.md: Likewise.
800         * config/i386/sse.md: Likewise.
801         * config/i386/predicates.md (call_insn_operand): Use
802         (not (match_test "...")) instead of (match_test "!...")
803         * config/i386/constraints.md (w): Likewise.
804
805 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
806
807         * doc/md.texi: Describe the use of match_tests in attribute tests.
808         * rtl.def (MATCH_TEST): Update commentary.
809         * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
810         (write_test_expr, walk_attr_value): Handle MATCH_TEST.
811
812 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
813
814         * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
815         (attr_string): Use copy_md_ptr_loc.
816
817 2011-08-31  Martin Jambor  <mjambor@suse.cz>
818
819         PR middle-end/49886
820         * ipa-inline-analysis.c (compute_inline_parameters): Set
821         can_change_signature of noes with typde attributes.
822         * ipa-split.c (split_function): Do not skip any arguments if
823         can_change_signature is set.
824
825 2011-08-31  Martin Jambor  <mjambor@suse.cz>
826
827         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
828         check removed.
829
830 2011-08-31  Richard Guenther  <rguenther@suse.de>
831
832         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
833         special-casing.
834
835 2011-08-31  Marc Glisse  <marc.glisse@inria.fr>
836
837         * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
838
839 2011-08-31  Tom de Vries  <tom@codesourcery.com>
840
841         PR middle-end/43513
842         * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
843         * tree-ssa-ccp.c (params.h): Include.
844         (fold_builtin_alloca_for_var): New function.
845         (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
846
847 2011-08-30  Uros Bizjak  <ubizjak@gmail.com>
848
849         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
850         Handle FMA option.
851
852 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
853
854         * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
855         b3 and b4 unsigned.
856
857 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
858
859         * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
860         when code is SET.
861
862 2011-08-30  Richard Guenther  <rguenther@suse.de>
863
864         PR middle-end/48571
865         * gimple.h (maybe_fold_offset_to_address): Remove.
866         (maybe_fold_offset_to_reference): Likewise.
867         (maybe_fold_stmt_addition): Likewise.
868         (may_propagate_address_into_dereference): Likewise.
869         * tree-inline.c (remap_gimple_op_r): Do not reconstruct
870         array references.
871         * gimple-fold.c (canonicalize_constructor_val): Likewise.
872         Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
873         addresses instead.
874         (may_propagate_address_into_dereference): Remove.
875         (maybe_fold_offset_to_array_ref): Likewise.
876         (maybe_fold_offset_to_reference): Likewise.
877         (maybe_fold_offset_to_address): Likewise.
878         (maybe_fold_stmt_addition): Likewise.
879         (fold_gimple_assign): Do not reconstruct array references but
880         instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
881         MEM_REF addresses.
882         (gimple_fold_stmt_to_constant_1): Likewise.
883         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
884         * gimplify.c (gimplify_conversion): Likewise.
885         (gimplify_expr): Likewise.
886
887 2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>
888
889         * config/i386/fmaintrin.h: New.
890         * config.gcc: Add fmaintrin.h.
891         * config/i386/i386.c
892         (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
893         <IX86_BUILTIN_VFMADDSD3>: Likewise.
894         * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
895         (*fmai_fmadd_<mode>): Likewise.
896         (*fmai_fmsub_<mode>): Likewise.
897         (*fmai_fnmadd_<mode>): Likewise.
898         (*fmai_fnmsub_<mode>): Likewise.
899         * config/i386/immintrin.h: Add fmaintrin.h.
900
901 2011-08-30  Bernd Schmidt  <bernds@codesourcery.com>
902
903         * genautomata.c (NO_COMB_OPTION): New macro.
904         (no_comb_flag): New static variable.
905         (gen_automata_option): Handle NO_COMB_OPTION.
906         (comb_vect_p): False if no_comb_flag.
907         (add_vect): Move computation of min/max values.  Return early if
908         no_comb_flag.
909         * doc/md.texi (automata_option): Document no-comb-vect.
910
911         * config/i386/i386.c (get_pc_thunk_name): Change prefix to
912         "__x86.get_pc_thunk".
913
914         * bb-reorder.c (insert_section_boundary_note): Only do it if
915         we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
916
917 2011-08-30  Christian Bruel  <christian.bruel@st.com>
918
919         * coverage.c (coverage_init): Check flag_branch_probabilities instead of
920         flag_profile_use.
921
922 2011-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
923
924         * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
925         to off.  Document switch.
926         * doc/invoke.texi (-msave-toc-indirect): Ditto.
927
928 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
929
930         * gthr-posix.h (__gthread_active_p): Do not use preprocessor
931         conditionals and comments inside macro arguments.
932
933 2011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
934             Richard Guenther  <rguenther@suse.de>
935
936         * tree.h (constant_boolean_node): Adjust prototype.
937         * fold-const.c (fold_convert_loc): Move aggregate conversion
938         leeway down.
939         (constant_boolean_node): Make value parameter boolean, add
940         vector type handling.
941         (fold_unary_loc): Use constant_boolean_node.
942         (fold_binary_loc): Preserve types properly when folding
943         COMPLEX_EXPR <__real x, __imag x>.
944         * gimplify.c (gimplify_expr): Handle vector comparison.
945         * tree.def (EQ_EXPR, ...): Document behavior on vector typed
946         comparison.
947         * tree-cfg.c (verify_gimple_comparison): Verify vector typed
948         comparisons.
949
950 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
951
952         PR middle-end/48722
953         * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
954         reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
955         (verify_rtl_sharing): Likewise and verify_rtx_sharing
956         in there too.
957         (unshare_all_rtl_in_chain): For CALL_INSNs
958         copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
959
960 2011-08-29  Richard Guenther  <rguenther@suse.de>
961
962         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
963         on the built ADDR_EXPR.
964
965 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
966
967         PR debug/50215
968         * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
969         before adding ENTRY_VALUE to val->locs.
970
971 2011-08-28  Mikael Pettersson  <mikpe@it.uu.se>
972
973         PR bootstrap/50218
974         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
975         comp.
976
977 2011-08-27  Bernd Schmidt  <bernds@codesourcery.com>
978
979         * doc/rtl.texi (simple_return): Document.
980         (parallel, PATTERN): Here too.
981         * doc/md.texi (return): Mention it's allowed to expand to simple_return
982         in some cases.
983         (simple_return): Document standard pattern.
984         * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
985         * final.c (final_scan_insn): Use ANY_RETURN_P on body.
986         * reorg.c (function_return_label, function_simple_return_label):
987         New static variables, replacing...
988         (end_of_function_label): ... this.
989         (simplejump_or_return_p): New static function.
990         (optimize_skip, steal_delay_list_from_fallthrough,
991         fill_slots_from_thread): Use it.
992         (relax_delay_slots): Likewise.  Use ANY_RETURN_P on body.
993         (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
994         (find_end_label): Take a new arg which is one of the two return
995         rtxs.  Depending on which, set either function_return_label or
996         function_simple_return_label.  All callers changed.
997         (make_return_insns): Make both kinds.
998         (dbr_schedule): Adjust for two kinds of end labels.
999         * function.c (emit_return_into_block): Set JUMP_LABEL properly.
1000         * genemit.c (gen_exp): Handle SIMPLE_RETURN.
1001         (gen_expand, gen_split): Use ANY_RETURN_P.
1002         * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
1003         * rtl.def (SIMPLE_RETURN): New code.
1004         * ifcvt.c (find_if_case_1): Be more careful about
1005         redirecting jumps to the EXIT_BLOCK.
1006         * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
1007         returnjump_p_1): Handle SIMPLE_RETURNs.
1008         * print-rtl.c (print_rtx): Likewise.
1009         * rtl.c (copy_rtx): Likewise.
1010         * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
1011         * combine.c (simplify_set): Likewise.
1012         * resource.c (find_dead_or_set_registers, mark_set_resources):
1013         Likewise.
1014         * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
1015         copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
1016         (init_emit_regs): Initialize simple_return_rtx.
1017         * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
1018         force_nonfallthru_and_redirect.
1019         * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
1020         (GR_SIMPLE_RETURN): New enum value.
1021         (simple_return_rtx): New macro.
1022         * basic-block.h (force_nonfallthru_and_redirect): Adjust
1023         declaration.
1024         * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
1025         argument.  All callers changed.  Be careful about what kinds of
1026         returnjumps to generate.
1027         * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
1028         ix86_pad_short_function): Likewise.
1029         * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
1030         of return.
1031         * config/mips/mips.md (any_return): New code_iterator.
1032         (optab): Add cases for return and simple_return.
1033         (return): Expand to a simple_return.
1034         (simple_return): New pattern.
1035         (*<optab>, *<optab>_internal for any_return): New patterns.
1036         (return_internal): Remove.
1037         * config/mips/mips.c (mips_expand_epilogue): Make the last insn
1038         a simple_return_internal.
1039
1040 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
1041
1042         * config/i386/sse.md (*absneg<mode>2): Fix split condition.
1043         (vec_extract_lo_<mode>): Prevent both operands in memory.
1044         (vec_extract_lo_v16hi): Ditto.
1045         (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
1046
1047 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
1048
1049         * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
1050         (*sse2_mulv4si3): Ditto.
1051         (mulv2di3): Ditto.
1052         * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
1053         notes to REG_EQUAL.
1054
1055 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
1056
1057         PR target/50202
1058         * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
1059         when all outputs are unused.
1060         (sse4_2_pcmpistr): Ditto.
1061
1062 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
1063
1064         * config/i386/i386.md (round<mode>2): New expander.
1065         * config/i386/i386.c (enum ix86_builtins): Add
1066         IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
1067         (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
1068         descriptions.
1069         (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
1070         (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
1071
1072 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
1073
1074         PR middle-end/50083
1075         * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
1076         only when TARGET_C99_FUNCTIONS.
1077         <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
1078         <BUILT_IN_RINT{,F,L}>: Ditto.
1079
1080 2011-08-26  Michael Matz  <matz@suse.de>
1081             Jakub Jelinek  <jakub@redhat.com>
1082
1083         PR lto/50165
1084         * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
1085         don't call strlen twice, use memcpy.
1086
1087 2011-08-26  H.J. Lu  <hongjiu.lu@intel.com>
1088
1089         * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
1090         * config/i386/bmiintrin.h: Likewise.
1091         * config/i386/lzcntintrin.h: Likewise.
1092
1093         * config/i386/immintrin.h: Include <lzcntintrin.h>,
1094         <bmiintrin.h> and <bmi2intrin.h>.
1095
1096 2011-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1097
1098         PR target/50166
1099         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
1100         * configure: Regenerate.
1101
1102 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
1103
1104         PR c/50179
1105         * c-typeck.c (c_process_expr_stmt): Skip over nops and
1106         call mark_exp_read even if exprv is ADDR_EXPR.
1107
1108 2011-08-26  Richard Sandiford  <richard.sandiford@linaro.org>
1109
1110         * df-problems.c (df_note_bb_compute): Pass uses rather than defs
1111         to df_set_dead_notes_for_mw.
1112
1113 2011-08-26  Richard Guenther  <rguenther@suse.de>
1114
1115         * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
1116
1117 2011-08-26  Zdenek Dvorak  <ook@ucw.cz>
1118             Tom de Vries  <tom@codesourcery.com>
1119
1120         * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
1121         (struct ivopts_data): Add loop_single_exit_p field.
1122         (niter_for_exit): Change parameter desc_p into return value.  Return
1123         desc if desc->may_be_zero.  Free desc if unused.
1124         (niter_for_single_dom_exit): Change return type.
1125         (find_induction_variables): Handle changed return type of
1126         niter_for_single_dom_exit.  Dump may_be_zero.
1127         (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
1128         (set_use_iv_cost): Add and handle comp parameter.
1129         (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
1130         comp argument to set_use_iv_cost.
1131         (strip_wrap_conserving_type_conversions, expr_equal_p)
1132         (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
1133         (may_eliminate_iv): Add comp parameter.  Handle new return type of
1134         niter_for_exit.  Use loop_single_exit_p.  Use iv_elimination_compare_lt.
1135         (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
1136         and may_eliminate_iv.
1137         (rewrite_use_compare): Move call to iv_elimination_compare to ...
1138         (may_eliminate_iv): Here.
1139         (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
1140
1141 2011-08-26  Tom de Vries  <tom@codesourcery.com>
1142
1143         * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
1144         accessing TREE_TYPE.
1145
1146 2011-08-26  Jiangning Liu  <jiangning.liu@arm.com>
1147
1148         * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
1149         (*ior_scc_scc_cmp): Likewise
1150         (*and_scc_scc): Likewise.
1151         (*and_scc_scc_cmp): Likewise.
1152         (*and_scc_scc_nodom): Likewise.
1153         (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
1154
1155 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
1156
1157         * rtlanal.c (nonzero_bits1): Handle CLRSB.
1158
1159 2011-08-26  Richard Guenther  <rguenther@suse.de>
1160
1161         * expr.c (string_constant): Handle &MEM_REF.
1162
1163 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
1164
1165         * config/arm/arm.c (struct four_ints): New type.
1166         (count_insns_for_constant): Delete function.
1167         (find_best_start): Delete function.
1168         (optimal_immediate_sequence): New function.
1169         (optimal_immediate_sequence_1): New function.
1170         (arm_gen_constant): Move constant splitting code to
1171         optimal_immediate_sequence.
1172         Rewrite constant negation/invertion code.
1173
1174 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
1175
1176         * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
1177         * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
1178         Remove prototype. Remove static function type.
1179         * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
1180         Add arch attribute.
1181         * config/arm/constraints.md (Pj, PJ): New constraints.
1182
1183 2011-08-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1184
1185         * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
1186         ("cortex_a9_multiply_long"): New and use above.  Handle all
1187         long multiply cases.
1188         ("cortex_a9_multiply"): Handle smmul and smmulr.
1189         ("cortex_a9_mac"): Handle smmla.
1190
1191 2011-08-25  Richard Henderson  <rth@redhat.com>
1192
1193         PR 50132
1194         PR 49864
1195         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
1196         non-constant stack adjutment.
1197         * expr.c (find_args_size_adjust): Break out from ...
1198         (fixup_args_size_notes): ... here.
1199         * rtl.h (find_args_size_adjust): Declare.
1200
1201 2011-08-25  Uros Bizjak  <ubizjak@gmail.com>
1202
1203         * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
1204         sse4 and sse4_noavx.
1205         (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
1206         (*pushdf_rex64): Change Y2 register constraint to x.
1207         (*movdf_internal_rex64): Ditto.
1208         (*zero_extendsidi2_rex64): Ditto.
1209         (*movdi_internal): Change Y2 register constraint to x
1210         and update "isa" attribute.
1211         (*pushdf): Ditto.
1212         (*movdf internal): Ditto.
1213         (zero_extendsidi2_1): Ditto.
1214         (*truncdfdf_mixed): Ditto.
1215         (*truncxfdf2_mixed): Ditto.
1216         * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
1217         register constraint to x.
1218         (*movv2sf_internal_rex64): Ditto.
1219         (*mov<mode>_internal): Change Y2 register constraint to x
1220         and add "isa" attribute.
1221         (*movv2sf_internal): Ditto.
1222         (*vec_extractv2si_1): Ditto.
1223         * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
1224         constraints to x and update "isa" attribute.
1225         (*vec_interleave_highv2df): Change Y3 registerconstraint
1226         to x and update "isa" attribute.
1227         (*vec_interleave_lowv2df): Ditto.
1228         (*vec_concatv2df): Change Y2 register constraint to x and
1229         update "isa" attribute.
1230         (sse2_loadld): Ditto.
1231         (*vec_extractv2di_1): Ditto.
1232         (*vec_dupv4si): Ditto.
1233         (*vec_dupv2di): Ditto.
1234         (*vec_concatv4si): Ditto.
1235         (vec_concatv2di): Ditto.
1236         * config/i386/constraints.md (Y2): Remove.
1237         (Y3): Ditto.
1238         (Y4): Ditto.
1239
1240 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
1241
1242         * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
1243         dump_def_use_chain): Don't declare.
1244         (mark_conflict, create_new_chain): Move before users.
1245         (regrename_optimize): Move to near end of file.
1246
1247 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
1248
1249         * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
1250         (secondary_input_reload_class): Remove Prototype.
1251         * config/avr/avr.c (byte_immediate_operand): Remove Function.
1252         * config/avr/avr.md (setmemhi): Use u8_operand.
1253         (strlenhi): Use const0_rtx for comparison.
1254         * config/avr/avr.h (avr_reg_order): Remove Declaration.
1255
1256 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
1257
1258         * config/avr/avr.c (reg_class_tab): Make local to
1259         avr_regno_reg_class.  Return smallest register class available.
1260
1261 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
1262
1263         * config/avr/avr.c (STR_PREFIX_P): New Define.
1264         (avr_asm_declare_function_name): Use it.
1265         (avr_asm_named_section): Use it.
1266         (avr_section_type_flags): Use it.
1267
1268 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
1269
1270         * doc/md.texi (automata_option): Document collapse-ndfa.
1271         * genautomata.c (COLLAPSE_OPTION): New macro.
1272         (collapse_flag): New static variable.
1273         (struct description): New member normal_decls_num.
1274         (struct automaton): New members advance_ainsn and collapse_ainsn.
1275         (gen_automata_option): Check for COLLAPSE_OPTION.
1276         (collapse_ndfa_insn_decl): New static variable.
1277         (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
1278         (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
1279         (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
1280         necessary.  Use normal_decls_num rather than decls_num, remove
1281         test for special decls.
1282         (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
1283         (make_automaton); Likewise.  Use the new advance_cycle_insn member
1284         of struct automaton.
1285         (create_composed_state): Disallow advance-cycle arcs if collapse_flag
1286         is set.
1287         (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
1288         transition.  Create the necessary transitions for it.
1289         (create_ainsns): Return void.  Take an automaton_t argument, and
1290         update its ainsn_list, advance_ainsn and collapse_ainsn members.  All
1291         callers changed.
1292         (COLLAPSE_NDFA_VALUE_NAME): New macro.
1293         (output_tables): Output code to define it.
1294         (output_internal_insn_code_evaluation): Output code to accept
1295         const0_rtx as collapse-ndfa transition.
1296         (output_default_latencies, output_print_reservation_func,
1297         output_print_description): Reorganize loops to use normal_decls_num
1298         as loop bound; remove special case for advance_cycle_insn_decl.
1299         (initiate_automaton_gen): Handle COLLAPSE_OPTION.
1300         (check_automata_insn_issues): Check for collapse_ainsn.
1301         (expand_automate): Allocate sufficient space.  Initialize
1302         normal_decls_num.
1303
1304 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
1305
1306         * config/avr/avr.md: Fix indentation from r177991.
1307
1308 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
1309
1310         * regrename.c (struct du_head): Remove member terminated.
1311         (create_new_chain): Don't initialize it.
1312         (scan_rtx_reg): Don't set or test it, test the open_chains_set
1313         bitmap instead.
1314         (tick, this_tick): New global variables, moved out of
1315         regrename_optimize.
1316         (current_id, open_chains, closed_chains, open_chains_set,
1317         live_in_chains, live_hard_regs): Reorder declarations.
1318         (dump_def_use_chain): Move function earlier in the file.
1319         (rename_chains): New static function, broken out of
1320         regrename_optimize.
1321         (regrename_optimize): Use it.  Remove #if 0'ed code.
1322
1323 2011-08-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1324
1325         * varasm.c: (default_binds_local_p_1): Commentary typo fix.
1326
1327 2011-08-24  H.J. Lu  <hongjiu.lu@intel.com>
1328
1329         PR target/50172
1330         * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
1331
1332 2011-08-24  Richard Guenther  <rguenther@suse.de>
1333
1334         * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
1335         ref in the basic-block case.  Move stripping array-refs
1336         to the place we create an access-function for it.  Remove
1337         bogus stripping down a MEM_REF to its base.
1338
1339 2011-08-24  Richard Guenther  <rguenther@suse.de>
1340
1341         * fold-const.c (fold_comparison): Fold &a < &a + 4 even
1342         with -fno-strict-overflow.
1343
1344 2011-08-24  Richard Guenther  <rguenther@suse.de>
1345
1346         * tree-vectorizer.c (vect_print_dump_info): Avoid the
1347         file and location clutter when dumping to dump files.
1348
1349 2011-08-24  Simon Baldwin  <simonb@google.com>
1350
1351         * gengtype-state.c (write_state): Remove timestamped header line.
1352
1353 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
1354
1355         * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
1356         (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
1357         (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
1358         (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
1359         (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
1360         (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
1361         (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
1362         rules.
1363         (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
1364
1365 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
1366
1367         * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
1368
1369 2011-08-24  Richard Guenther  <rguenther@suse.de>
1370
1371         PR tree-optimization/50067
1372         * tree-data-ref.c (dr_analyze_indices): Do not add an access
1373         function for a MEM_REF base that has no evolution in the loop
1374         nest or that is not analyzable.
1375
1376 2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>
1377
1378         * ira.c (ira_init_register_move_cost): Check small subclasses
1379         through ira_reg_class_max_nregs and ira_available_class_regs.
1380
1381 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
1382
1383         * config/i386/constraints.md (Yp): New register constraint.
1384         * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
1385         Yp register constraint.
1386         (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
1387         (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
1388         (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
1389
1390 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
1391
1392         * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
1393
1394 2011-08-23  Mark Heffernan  <meheff@google.com>
1395
1396         PR middle-end/38509
1397         * common.opt (Wfree-nonheap-object): New option.
1398         * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
1399         * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
1400         to warning.
1401         (expand_builtin): Make warning conditional.
1402
1403 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
1404
1405         * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
1406         (length_immediate): Handle imulx, ishiftx and rotatex.
1407         (imm_disp): Ditto.
1408         (isa): Add bmi2.
1409         (enabled): Handle bmi2.
1410         (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
1411         (*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
1412         (*bmi2_umulditi3_1): New insn pattern.
1413         (*bmi2_umulsidi3_1): Ditto.
1414         (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
1415         (*bmi2_ashl<mode>3_1): New insn pattern.
1416         (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
1417         (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
1418         (*bmi2_ashlsi3_1_zext): New insn pattern.
1419         (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
1420         (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
1421         (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
1422         (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
1423         (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
1424         flags dependency.
1425         (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
1426         (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
1427         (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
1428         flags dependency.
1429         (*bmi2_rorx<mode>3_1): New insn pattern.
1430         (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
1431         (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
1432         (*rotatert<mode>3_1 splitter): Ditto.
1433         (*bmi2_rorxsi3_1_zext): New insn pattern.
1434         (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
1435         (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
1436         (*rotatertsi3_1_zext splitter): Ditto.
1437
1438 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
1439
1440         * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
1441         (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
1442         (ix86_handle_option): Handle OPT_mbmi2 case.
1443         * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
1444         (x86_64-*-*): Likewise.
1445         * config/i386/bmi2intrin.h: New file.
1446         * config/i386/cpuid.h (bit_BMI2): New.
1447         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1448         BMI2 feature.
1449         * config/i386/i386-c.c (ix86_target_macros_internal):
1450         Conditionally define __BMI2__.
1451         * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
1452         Handle BMI2 option.
1453         (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
1454         (print_reg): New code.
1455         (ix86_print_operand): Likewise.
1456         (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
1457         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
1458         IX86_BUILTIN_PEXT64.
1459         (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
1460         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
1461         IX86_BUILTIN_PEXT64.
1462         * config/i386/i386.h (TARGET_BMI2): New.
1463         * config/i386/i386.md (UNSPEC_PDEP): New.
1464         (UNSPEC_PEXT): Likewise.
1465         (*bmi2_bzhi_<mode>3): Likewise.
1466         (*bmi2_pdep_<mode>3): Likewise.
1467         (*bmi2_pext_<mode>3): Likewise.
1468         * config/i386/i386.opt (mbmi2): New.
1469         * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
1470         is defined.
1471         * doc/extend.texi: Document BMI2 built-in functions.
1472         * doc/invoke.texi: Document -mbmi2.
1473
1474 2011-08-23  Jakub Jelinek  <jakub@redhat.com>
1475
1476         PR middle-end/50161
1477         * simplify-rtx.c (simplify_const_unary_operation): If
1478         op is CONST_INT, don't look at op_mode, but use instead mode.
1479         * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
1480         CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
1481         operation and TRUNCATE/ZERO_EXTEND if needed.
1482         * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
1483         Document that operand mode must be same as operation mode,
1484         or VOIDmode.
1485         * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
1486         *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
1487         *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
1488         *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
1489         use the mode of operand for the operation and add truncate
1490         or zero_extend around if needed.
1491         * config/c6x/c6x.md (ctzdi2): Likewise.
1492         * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
1493
1494 2011-08-12  Michael Matz  <matz@suse.de>
1495
1496         * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
1497         (gimple_expand_cfg): Merge alignment info for coalesced pointer
1498         SSA names.
1499
1500 2011-08-23  Richard Guenther  <rguenther@suse.de>
1501
1502         * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
1503         * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
1504         * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
1505         from ...
1506         * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
1507         (mem_refs_may_alias_p): Adjust.
1508         * tree-data-ref.h (dr_may_alias_p): Adjust.
1509         * tree-data-ref.c: Include tree-affine.h.
1510         (dr_analyze_indices): Do nothing for the non-loop case.
1511         (dr_may_alias_p): Distinguish loop and non-loop case.  Disambiguate
1512         more cases in the non-loop case.
1513         * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
1514         calls to dr_may_alias_p.
1515         (write_alias_graph_to_ascii_ecc): Likewise.
1516         (write_alias_graph_to_ascii_dot): Likewise.
1517         (build_alias_set_optimal_p): Likewise.
1518
1519 2011-08-23  Richard Guenther  <rguenther@suse.de>
1520
1521         PR tree-optimization/50162
1522         * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
1523
1524 2011-08-23  Richard Guenther  <rguenther@suse.de>
1525
1526         * tree-data-ref.c (dr_analyze_indices): Add comments, handle
1527         REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
1528         (create_data_ref): Also dump access functions for the created data-ref.
1529
1530 2011-08-22  Uros Bizjak  <ubizjak@gmail.com>
1531             Kirill Yukhin  <kirill.yukhin@intel.com>
1532
1533         PR target/50155
1534         * config/i386/sse.md (VI_AVX2): New.
1535         (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
1536         (*<plusminus_insn><mode>3): Ditto.
1537         (<sse2_avx2>_andnot<mode>3): Ditto.
1538         (*andnot<mode>3): Fix order of cond operands.
1539         Add asserts for correct TARGET_xxx.
1540         (*<any_logic:code><mode>3): Ditto.
1541
1542 2011-08-22  Anatoly Sokolov  <aesok@post.ru>
1543
1544         * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
1545         * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
1546         * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
1547         regclass argument type to reg_class_t. Change 'max' and 'v' vars
1548         and return types to unsigned char. Use reg_class_contents instead
1549         of class_contents.
1550         (TARGET_CLASS_MAX_NREGS): Define.
1551
1552 2011-08-22  Bernd Schmidt  <bernds@codesourcery.com>
1553
1554         * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
1555         to make computed_jump_p return true.
1556
1557 2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1558
1559         * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
1560         (PICFLAG_FOR_TARGET): Substitute.
1561         * aclocal.m4: Regenerate.
1562         * configure: Regenerate.
1563
1564 2011-08-22  Dodji Seketeli  <dodji@redhat.com>
1565
1566         * c-family/c-pch.c (c_common_read_pch): Re-set line table right
1567         after reading in the pch.
1568
1569 2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>
1570
1571         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
1572         * configure: Regenerated.
1573
1574 2011-08-22  Jakub Jelinek  <jakub@redhat.com>
1575
1576         PR tree-optimization/50133
1577         * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
1578         from stmt instead of some statement around gsi.
1579
1580         PR middle-end/50141
1581         * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
1582         innerdecl is a VAR_DECL.
1583
1584 2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
1585
1586         * config/i386/avx2intrin.h: New file.
1587         * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
1588         PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
1589         V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
1590         V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
1591         V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
1592         V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
1593         V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
1594         V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
1595         V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
1596         V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
1597         V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
1598         V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
1599         V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
1600         V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
1601         V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
1602         V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
1603         V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
1604         V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
1605         VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
1606         VOID_FTYPE_PV8SI_V8SI_V8SI,
1607         V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
1608         V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
1609         V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
1610         V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
1611         V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
1612         V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
1613         V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
1614         V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
1615         V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
1616         V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
1617         V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
1618         V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
1619         V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
1620         V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
1621         V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
1622         V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
1623         V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
1624         V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
1625         V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
1626         V4DI_FTYPE_V4DI_INT_CONVERT,
1627         V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
1628         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
1629         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
1630         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
1631         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
1632         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
1633         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
1634         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
1635         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
1636         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
1637         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
1638         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
1639         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
1640         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
1641         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
1642         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
1643         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
1644         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
1645         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
1646         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
1647         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
1648         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
1649         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
1650         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
1651         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
1652         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
1653         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
1654         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
1655         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
1656         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
1657         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
1658         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
1659         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
1660         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
1661         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
1662         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
1663         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
1664         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
1665         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
1666         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
1667         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
1668         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
1669         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
1670         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
1671         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
1672         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
1673         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
1674         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
1675         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
1676         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
1677         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
1678         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
1679         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
1680         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
1681         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
1682         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
1683         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
1684         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
1685         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
1686         IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
1687         IX86_BUILTIN_VBROADCASTSS_PS256,
1688         IX86_BUILTIN_VBROADCASTSD_PD256,
1689         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
1690         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
1691         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
1692         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
1693         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
1694         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
1695         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
1696         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
1697         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
1698         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
1699         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
1700         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
1701         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
1702         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
1703         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
1704         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
1705         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
1706         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
1707         IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
1708         IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
1709         IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
1710         IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
1711         IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
1712         IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
1713         IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
1714         IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
1715         (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
1716         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
1717         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
1718         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
1719         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
1720         (bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
1721         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
1722         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
1723         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
1724         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
1725         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
1726         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
1727         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
1728         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
1729         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
1730         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
1731         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
1732         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
1733         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
1734         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
1735         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
1736         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
1737         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
1738         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
1739         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
1740         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
1741         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
1742         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
1743         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
1744         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
1745         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
1746         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
1747         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
1748         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
1749         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
1750         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
1751         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
1752         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
1753         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
1754         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
1755         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
1756         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
1757         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
1758         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
1759         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
1760         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
1761         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
1762         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
1763         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
1764         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
1765         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
1766         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
1767         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
1768         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
1769         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
1770         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
1771         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
1772         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
1773         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
1774         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
1775         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
1776         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
1777         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
1778         IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
1779         IX86_BUILTIN_VBROADCASTSD_PD256,
1780         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
1781         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
1782         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
1783         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
1784         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
1785         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
1786         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
1787         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
1788         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
1789         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
1790         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
1791         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
1792         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
1793         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
1794         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
1795         IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
1796         IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
1797         IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
1798         IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
1799         IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
1800         IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
1801         IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
1802         IX86_BUILTIN_GATHERDIV8SI.
1803         (ix86_preferred_simd_mode): Support AVX2 modes.
1804         (ix86_expand_args_builtin): Support AVX2 builtins.
1805         (ix86_expand_special_args_builtin): Likewise.
1806         (ix86_expand_builtin): Likewise.
1807         * config/i386/i386.md (UNSPEC_VPERMSI): New.
1808         (UNSPEC_VPERMDF): Likewise.
1809         (UNSPEC_VPERMSF): Likewise.
1810         (UNSPEC_VPERMDI): Likewise.
1811         (UNSPEC_VPERMTI): Likewise.
1812         (UNSPEC_GATHER): Likewise.
1813         (ssemodesuffix): Extend.
1814         * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
1815         is defined.
1816         * config/i386/predicates.md (const1248_operand): New.
1817         * config/i386/sse.md (VI1_AVX2): New mode iterator.
1818         (VI2_AVX2): Likewise.
1819         (VI4_AVX2): Likewise.
1820         (VI8_AVX2): Likewise.
1821         (VIMAX_AVX2): Likewise.
1822         (SSESCALARMODE): Likewise.
1823         (VI12_AVX2): Likewise.
1824         (VI24_AVX2): Likewise.
1825         (VI124_AVX2): Likewise.
1826         (VI248_AVX2): Likewise.
1827         (VI48_AVX2): Likewise.
1828         (VI4SD_AVX2): Likewise.
1829         (V48_AVX2): Likewise.
1830         (AVX256MODE2P): Likewise.
1831         (AVXMODE48P_DI): Likewise.
1832         (sse2_avx2): New mode attribute.
1833         (ssse3_avx2): Likewise.
1834         (sse4_1_avx2): Likewise.
1835         (avx_avx2): Likewise.
1836         (ssebytemode): Likewise.
1837         (AVXTOSSEMODE): Likewise.
1838         (AVXMODE48P_DI): Likewise.
1839         (gthrfirstp): Likewise.
1840         (gthrlastp): Likewise.
1841         (lshift): New code_iterator
1842         (lshift): New code attribute.
1843         (lshift): Likewise.
1844         (ssescalarmodesuffix): Update.
1845         (sseunpackmode): Likewise.
1846         (ssepackmode): Likewise.
1847         (avx2_vec_dupv4sf): New insn pattern.
1848         (avx2_vec_dupv8sf): Likewise.
1849         (avx2_interleave_highv4di): Likewise.
1850         (avx2_interleave_lowv4di): Likewise.
1851         (avx2_umulv4siv4di3): Likewise
1852         (*avx2_umulv4siv4di3): Likewise
1853         (avx2_pmaddwd): Likewise.
1854         (*avx2_pmaddwd): Likewise.
1855         (avx2_lshrqv4di3): Likewise.
1856         (avx2_lshlqv4di3): Likewise.
1857         (avx2_lshl<mode>3): Likewise.
1858         (avx2_<umaxmin:code><mode>3): Likewise.
1859         (*avx2_<umaxmin:code><mode>3): Likewise.
1860         (avx2_<smaxmin:code><mode>3): Likewise.
1861         (*avx2_<smaxmin:code><mode>3): Likewise.
1862         (avx2_eq<mode>3): Likewise.
1863         (*avx2_eq<mode>3): Likewise.
1864         (avx2_gt<mode>3): Likewise.
1865         (avx2_interleave_highv32qi): New.
1866         (avx2_interleave_lowv32qi): Likewise.
1867         (avx2_interleave_highv16hi): Likewise.
1868         (avx2_interleave_lowv16hi): Likewise.
1869         (avx2_interleave_highv8si): Likewise.
1870         (avx2_interleave_lowv8si): Likewise.
1871         (avx2_pshufd): Likewise.
1872         (avx2_pshufd_1): Likewise.
1873         (avx2_pshuflwv3): Likewise.
1874         (avx2_pshuflw_1): Likewise.
1875         (avx2_pshufhwv3): Likewise.
1876         (avx2_pshufhw_1): Likewise.
1877         (avx2_uavgv32qi3): Likewise.
1878         (*avx2_uavgv32qi3): Likewise.
1879         (avx2_uavgv16hi3): Likewise.
1880         (*avx2_uavgv16hi3): Likewise.
1881         (avx2_pmovmskb): Likewise.
1882         (avx2_phaddwv16hi3): Likewise.
1883         (avx2_phadddv8si3): Likewise.
1884         (avx2_phaddswv16hi3): Likewise.
1885         (avx2_phsubwv16hi3): Likewise.
1886         (avx2_phsubdv8si3): Likewise.
1887         (avx2_phsubswv16hi3): Likewise.
1888         (avx2_pmaddubsw256): Likewise.
1889         (avx2_umulhrswv16hi3): Likewise.
1890         (*avx2_umulhrswv16hi3): Likewise.
1891         (avx2_packusdw): Likewise.
1892         (avx2_pblendd<mode>): Likewise.
1893         (avx2_<code>v16qiv16hi2): Likewise.
1894         (avx2_<code>v8qiv8si2): Likewise.
1895         (avx2_<code>v8hiv8si2): Likewise.
1896         (avx2_<code>v4qiv4di2): Likewise.
1897         (avx2_<code>v4hiv4di2): Likewise.
1898         (avx2_<code>v4siv4di2): Likewise.
1899         (avx2_pbroadcast<mode>): Likewise.
1900         (avx2_permvarv8si): Likewise.
1901         (avx2_permv4df): Likewise.
1902         (avx2_permvarv8sf): Likewise.
1903         (avx2_permv4di): Likewise.
1904         (avx2_permv2ti): Likewise.
1905         (avx2_vec_dupv4df): Likewise.
1906         (avx2_vbroadcasti128_<mode>): Likewise.
1907         (avx2_vec_set_lo_v4di): Likewise.
1908         (avx2_vec_set_hi_v4di): Likewise.
1909         (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
1910         (avx2_extracti128): Likewise.
1911         (avx2_inserti128): Likewise.
1912         (avx2_ashrvv8si): Likewise.
1913         (avx2_ashrvv4si): Likewise.
1914         (avx2_<lshift>vv8si): Likewise.
1915         (avx2_<lshift>v<mode>): Likewise.
1916         (avx2_<lshift>vv2di): Likewise.
1917         (avx2_gathersi<mode>): Likewise.
1918         (*avx2_gathersi<mode>): Likewise.
1919         (avx2_gatherdi<mode>): Likewise.
1920         (*avx2_gatherdi<mode>): Likewise.
1921         (avx2_gatherdi<mode>256): Likewise.
1922         (*avx2_gatherdi<mode>256): Likewise.
1923         (<plusminus_insn><mode>3): Use VI mode iterator.
1924         (*<plusminus_insn><mode>3): Use VI mode iterator.
1925         (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
1926         sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
1927         (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
1928         *sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
1929         (mul<mode>3): Rename from mulv8hi3.  Use VI2_AVX2 mode iterator.
1930         (*mul<mode>3): Rename from *mulv8hi3.  Use VI2_AVX2 mode iterator.
1931         (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
1932         Use VI2_AVX2 mode iterator.
1933         (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
1934         Use VI2_AVX2 mode iterator.
1935         (mul<mode>3): Rename from mulv4si3.  Use VI4_AVX2 mode iterator.
1936         (*mul<mode>3): Rename from *mulv4si3.  Use VI4_AVX2 mode iterator.
1937         (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
1938         Use VI4_AVX2 mode iterator.
1939         (ashr<mode>3): Use VI24_AVX2 mode iterator.
1940         (lshr<mode>3): Use VI248_AVX2 mode iterator.
1941         (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
1942         Use VIMAX_AVX2 mode iterator.
1943         (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
1944         Use VI mode iterator.
1945         (*andnot<mode>3): Update for AVX2.
1946         (*<any_logic:code><mode>3): Likewise.
1947         (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
1948         Use VI1_AVX mode iterator.
1949         (<sse2_avx2>_packssdw):  Rename from sse2_packssdw.
1950         Use VI2_AVX mode iterator.
1951         (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
1952         Use VI1_AVX mode iterator.
1953         (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
1954         Use VI8_AVX2 mode iterator.
1955         (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
1956         Use VI1_AVX2 mode iterator.
1957         (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
1958         Use VI124_AVX2 mode iterator.
1959         (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
1960         Use SSESCALARMODE mode iterator.
1961         (abs<mode>2): Use VI124_AVX2 mode iterator.
1962         (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
1963         Use VI8_AVX2 mode iterator.
1964         (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
1965         Use VI1_AVX2 mode iterator.
1966         (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
1967         Use VI1_AVX2 mode iterator.
1968         (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
1969         Use VI2_AVX2 mode iterator.
1970         (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
1971         avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
1972         (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
1973         avx_maskstore<ssemodesuffix><avxsizesuffix>.
1974         Use V48_AVX2 mode iterator.
1975         * doc/extend.texi: Document AVX2 built-in functions.
1976         * doc/invoke.texi: Document -mavx2.
1977
1978 2011-08-22  Matthias Klose <doko@debian.org>
1979
1980         Revert:
1981         2011-07-11  Arthur Loiret  <aloiret@debian.org>
1982                     Matthias Klose <doko@debian.org>
1983         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
1984         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
1985         convention.
1986         * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
1987
1988 2011-08-22  Mikael Pettersson  <mikpe@it.uu.se>
1989
1990         PR bootstrap/50146
1991         * ira-color.c (assign_hard_reg): Move saved_nregs declaration
1992         to #ifndef HONOR_REG_ALLOC_ORDER block.
1993
1994 2011-08-21  Richard Henderson  <rth@redhat.com>
1995
1996         * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
1997         * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
1998         * resource.c (next_insn_no_annul): Likewise.
1999         (mark_set_resources): Likewise.
2000         * reorg.c (delete_from_delay_slot): Likewise.
2001         (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
2002         (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
2003
2004 2011-08-21  Uros Bizjak  <ubizjak@gmail.com>
2005
2006         * config/i386/i386.md (any_div): Remove.
2007         (sgnprefix): Update for removal.
2008         (u): Ditto.
2009
2010 2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>
2011
2012         * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
2013         for ira_reg_class_max_nregs.  Increase pressure by 1.
2014         (mark_pseudo_regno_subword_dead): Use allocno class
2015         for ira_reg_class_max_nregs.
2016
2017 2011-08-20  Richard Henderson  <rth@redhat.com>
2018
2019         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
2020         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
2021         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
2022         config/c6x/ltf.c: Adjust include path for soft-fp.
2023
2024 2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>
2025
2026         PR other/46770
2027         * config.gcc (tm_file): Add initfini-array.h if
2028         .init_arrary/.fini_array are supported.
2029
2030         * crtstuff.c: Don't generate .ctors nor .dtors sections if
2031         USE_INITFINI_ARRAY is defined.
2032
2033         * output.h (default_elf_init_array_asm_out_constructor): New.
2034         (default_elf_fini_array_asm_out_destructor): Likewise.
2035         * varasm.c (elf_init_array_section): Likewise.
2036         (elf_fini_array_section): Likewise.
2037         (get_elf_initfini_array_priority_section): Likewise.
2038         (default_elf_init_array_asm_out_constructor): Likewise.
2039         (default_elf_fini_array_asm_out_destructor): Likewise.
2040
2041         * config/initfini-array.h: New.
2042
2043 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
2044
2045         * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
2046         OK for ST_REGS and FP_REGS before taking those classes into account.
2047
2048 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
2049
2050         * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
2051         before checking for annulled branches.
2052
2053 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
2054
2055         * config/i386/i386.c (ix86_binary_operator_ok): Use
2056         satisfies_constraint_L.
2057
2058 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
2059             Michael Matz  <matz@suse.de>
2060
2061         * config/i386/i386.c (ix86_expand_round_sse4): Expand as
2062         trunc (a + copysign (nextafter (0.5, 0.0), a)).
2063
2064 2011-08-20  Anatoly Sokolov  <aesok@post.ru>
2065
2066         * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
2067         * doc/tm.texi: Regenerate.
2068         * targhooks.c (default_preferred_output_reload_class): Don't use
2069         PREFERRED_OUTPUT_RELOAD_CLASS macro.
2070         * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
2071
2072 2011-08-20  Jakub Jelinek  <jakub@redhat.com>
2073
2074         PR tree-optimization/48739
2075         * tree-ssa.c: Include cfgloop.h.
2076         (execute_update_addresses_taken): When updating ssa, if in loop closed
2077         SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
2078         * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
2079
2080 2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>
2081
2082         PR rtl-optimization/49936
2083         * ira.c (ira_init_register_move_cost): Ignore too small subclasses
2084         for calculation of max register move costs.
2085
2086 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
2087
2088         * c-parser.c (c_parser_postfix_expression): Convert operands of
2089         __builtin_complex to their semantic types.
2090
2091 2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
2092
2093         PR middle-end/49721
2094         * explow.c (convert_memory_address_addr_space): Also permute the
2095         conversion and addition of constant for zero-extend.
2096
2097 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
2098
2099         * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
2100         * doc/extend.texi (__builtin_complex): Document.
2101
2102 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
2103
2104         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
2105         beyond conversions.
2106         (convert_mult_to_widen): Convert constant inputs to the right type.
2107         (convert_plusminus_to_widen): Don't automatically reject inputs that
2108         are not an SSA_NAME.
2109         Convert constant inputs to the right type.
2110
2111 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
2112
2113         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
2114         to the correct type.
2115
2116 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
2117
2118         * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
2119         unsigned inputs of different modes.
2120         (convert_plusminus_to_widen): Likewise.
2121
2122 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
2123
2124         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
2125         'type'.
2126         Use 'type' from caller, not inferred from 'rhs'.
2127         Don't reject non-conversion statements. Do return lhs in this case.
2128         (is_widening_mult_p): Add new argument 'type'.
2129         Use 'type' from caller, not inferred from 'stmt'.
2130         Pass type to is_widening_mult_rhs_p.
2131         (convert_mult_to_widen): Pass type to is_widening_mult_p.
2132         (convert_plusminus_to_widen): Likewise.
2133
2134 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
2135
2136         * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
2137         Ensure the the larger type is the first operand.
2138
2139 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
2140
2141         * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
2142         unsupported unsigned multiplies to signed.
2143         (convert_plusminus_to_widen): Likewise.
2144
2145 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
2146
2147         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
2148         conversion statement separating multiply-and-accumulate.
2149
2150 2011-08-19  Richard Guenther  <rguenther@suse.de>
2151
2152         PR tree-optimization/50067
2153         * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
2154         offset only if we accounted for it.
2155
2156 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
2157
2158         * config/arm/arm.md (maddhidi4): Remove '*' from name.
2159         * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
2160         * optabs.c (find_widening_optab_handler_and_mode): New function.
2161         (expand_widen_pattern_expr): Use find_widening_optab_handler.
2162         (expand_binop_directly): Likewise.
2163         (expand_binop): Likewise.
2164         * optabs.h (find_widening_optab_handler): New macro define.
2165         (find_widening_optab_handler_and_mode): New prototype.
2166         * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
2167         type precision rules.
2168         (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
2169         * tree-ssa-math-opts.c (build_and_insert_cast): New function.
2170         (is_widening_mult_rhs_p): Allow widening by more than one mode.
2171         Explicitly disallow mis-matched input types.
2172         (convert_mult_to_widen): Use find_widening_optab_handler, and cast
2173         input types to fit the new handler.
2174         (convert_plusminus_to_widen): Likewise.
2175
2176 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
2177
2178         * expr.c (expand_expr_real_2): Use widening_optab_handler.
2179         * genopinit.c (optabs): Use set_widening_optab_handler for $N.
2180         (gen_insn): $N now means $a must be wider than $b, not consecutive.
2181         * optabs.c (widened_mode): New function.
2182         (expand_widen_pattern_expr): Use widening_optab_handler.
2183         (expand_binop_directly): Likewise.
2184         (expand_binop): Likewise.
2185         * optabs.h (widening_optab_handlers): New struct.
2186         (optab_d): New member, 'widening'.
2187         (widening_optab_handler): New function.
2188         (set_widening_optab_handler): New function.
2189         * tree-ssa-math-opts.c (convert_mult_to_widen): Use
2190         widening_optab_handler.
2191         (convert_plusminus_to_widen): Likewise.
2192
2193 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
2194
2195         * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
2196         pedantic.
2197         * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
2198         * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
2199
2200 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
2201
2202         * opth-gen.awk: Do not declare target save/restore structures and
2203         functions if IN_RTS defined.
2204
2205 2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
2206
2207         PR target/49437
2208         * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
2209         when stack was realigned in interrupt handler prologue.
2210
2211 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
2212
2213         * c-decl.c (shadow_tag_warned): Check for _Noreturn.
2214         (quals_from_declspecs): Assert _Noreturn not present.
2215         (grokdeclarator): Handle _Noreturn.
2216         (build_null_declspecs): Initialize noreturn_p.
2217         (declspecs_add_scspec): Handle RID_NORETURN.
2218         * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
2219         (c_parser_attributes): Handle RID_NORETURN.
2220         * c-tree.h (struct c_declspecs): Add noreturn_p.
2221         * ginclude/stdnoreturn.h: New.
2222         * Makefile.in (USER_H): Add stdnoreturn.h.
2223
2224 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
2225
2226         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
2227         (OPTION_MASK_ISA_AVX_UNSET): Update.
2228         (OPTION_MASK_ISA_AVX2_UNSET): New.
2229         (ix86_handle_option): Handle OPT_mavx2 case.
2230         * config/i386/cpuid.h (bit_AVX2): New.
2231         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
2232         AVX2 feature.
2233         * config/i386/i386-c.c (ix86_target_macros_internal):
2234         Conditionally define __AVX2__.
2235         * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
2236         Define "core-avx2" processor alias.  Handle avx2 option.
2237         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
2238         * config/i386/i386.h (TARGET_AVX2): New.
2239         * config/i386/i386.opt (mavx2): New.
2240         * doc/invoke.texi: Document -mavx2.
2241
2242 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
2243
2244         PR rtl-optimization/49890
2245         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
2246         subclasses of class which is superset of a pressure class.
2247
2248 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
2249             Igor Zamyatin <igor.zamyatin@intel.com>
2250
2251         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
2252         with HOST_WIDE_INT for isa_flag.
2253         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
2254         isa variables.
2255
2256         * config/i386/i386.c (ix86_target_string): Replace int with
2257         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
2258         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
2259         (pta_flags): Removed.
2260         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
2261         (pta): Use HOST_WIDE_INT on flags.
2262         (builtin_isa): Use HOST_WIDE_INT on isa.
2263         (ix86_add_new_builtins): Likewise.
2264         (def_builtin): Use HOST_WIDE_INT on mask.
2265         (def_builtin_const): Likewise.
2266         (builtin_description): Likewise.
2267
2268         * config/i386/i386.opt (ix86_isa_flags): Replace int with
2269         HOST_WIDE_INT.
2270         (ix86_isa_flags_explicit): Likewise.
2271         (x_ix86_isa_flags_explicit): Likewise.
2272
2273 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
2274
2275         PR rtl-optimization/50107
2276         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
2277         (ira_hard_reg_in_set_p): New.
2278
2279         * ira-color.c (calculate_saved_nregs): New.
2280         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
2281         hard regs.
2282         (allocno_reload_assign, fast_allocation): Use
2283         ira_hard_reg_set_intersection_p instead of
2284         ira_hard_reg_not_in_set_p.
2285
2286         * ira.c (setup_reg_renumber): Use
2287         ira_hard_reg_set_intersection_p instead of
2288         ira_hard_reg_not_in_set_p.
2289         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
2290         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
2291
2292         * ira-costs.c (ira_tune_allocno_costs): Use
2293         ira_hard_reg_set_intersection_p instead of
2294         ira_hard_reg_not_in_set_p.
2295
2296 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
2297             Igor Zamyatin <igor.zamyatin@intel.com>
2298
2299         * hwint.h (HOST_WIDE_INT_1): New.
2300
2301         * opt-functions.awk (switch_bit_fields): Initialize the
2302         host_wide_int field.
2303         (host_wide_int_var_name): New.
2304         (var_type_struct): Check and return HOST_WIDE_INT.
2305
2306         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
2307
2308         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
2309
2310         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
2311         check masks for HOST_WIDE_INT.
2312
2313         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
2314         (option_enabled): Likewise.
2315         (get_option_state): Likewise.
2316
2317         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
2318         to HOST_WIDE_INT.
2319
2320 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2321             Marc Glisse  <marc.glisse@normalesup.org>
2322
2323         PR libstdc++-v3/1773
2324         * target.def (decl_mangling_context): New C++ hook.
2325         * doc/tm.texi: Regenerate.
2326         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
2327         * config/sol2-protos.h: Group by source file.
2328         (solaris_cxx_decl_mangling_context): Declare.
2329         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
2330         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
2331         Use $<.
2332         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
2333         Add sol2-stubs.o to extra_objs.
2334
2335 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
2336
2337         PR target/50009
2338         * stor-layout.c (update_alignment_for_field): Don't ICE on
2339         packed flexible array members if ms_bitfield_layout_p.
2340
2341         PR target/50092
2342         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
2343         on the result before returning it.
2344
2345         PR debug/50017
2346         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
2347         is a debug stmt, use location of the first non-debug stmt after it.
2348
2349 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
2350
2351         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
2352         (arm_size_rtx_costs): Likewise.
2353
2354 2011-08-18  Richard Guenther  <rguenther@suse.de>
2355
2356         * tree.h (tree_int_cst_msb): Remove.
2357         * tree.c (tree_int_cst_msb): Likewise.
2358         (tree_int_cst_sign_bit): Move from ...
2359         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
2360
2361 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
2362
2363         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
2364         * doc/tm.texi: Regenerate.
2365         * target.def (rtx_costs): Add an opno parameter.
2366         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
2367         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
2368         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
2369         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
2370         * cse.c (COST_IN): Add an opno parameter.
2371         (notreg_cost): Likewise.  Update call to rtx_cost.
2372         (COST, fold_rtx): Update accordingly.
2373         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
2374         * expmed.c (emit_store_flag): Likewise.
2375         * optabs.c (avoid_expensive_constant): Add an opno parameter.
2376         Update call to rtx_cost.
2377         (expand_binop_directly, expand_binop): Likewise.
2378         (expand_twoval_binop, prepare_cmp_insn): Likewise.
2379         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
2380         (set_src_cost, get_full_set_src_cost): Update accordingly.
2381         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
2382         to target hook.
2383         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
2384         (default_adress_cost): Update calls to rtx_cost.
2385
2386         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
2387         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
2388         (arm_rtx_costs): Add an opno parameter.
2389         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
2390         adjust any recursive rtx-cost calls.
2391         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
2392         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
2393         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
2394         * config/cris/cris.c (cris_rtx_costs): Likewise.
2395         * config/frv/frv.c (frv_rtx_costs): Likewise.
2396         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
2397         * config/i386/i386.c (ix86_rtx_costs): Likewise.
2398         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
2399         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
2400         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
2401         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
2402         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
2403         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
2404         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
2405         * config/mep/mep.c (mep_rtx_cost): Likewise.
2406         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
2407         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
2408         (mips_zero_extend_cost): Add an opno parameter.
2409         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
2410         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
2411         to rtx_cost.
2412         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
2413         rtx-cost calls.
2414         * config/pa/pa.c (hppa_rtx_costs): Likewise.
2415         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
2416         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
2417         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
2418         (rs6000_debug_rtx_costs): Likewise.
2419         * config/s390/s390.c (s390_rtx_costs): Likewise.
2420         * config/score/score-protos.h (score_rtx_costs): Likewise.
2421         * config/score/score.c (score_rtx_costs): Likewise.
2422         * config/sh/sh.c (andcosts): Update call to rtx_cost.
2423         (sh_rtx_costs): Add an opno parameter.
2424         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
2425         * config/spu/spu.c (spu_rtx_costs): Likewise.
2426         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
2427         * config/v850/v850.c (v850_rtx_costs): Likewise.
2428         * config/vax/vax.c (vax_rtx_costs): Likewise.
2429         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
2430
2431 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
2432
2433         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
2434         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
2435         rtx_cost.
2436         * calls.c (precompute_register_parameters): Likewise.
2437         * combine.c (expand_compound_operation, make_extraction): Likewise.
2438         (force_to_mode, distribute_and_simplify_rtx): Likewise.
2439         * dse.c (find_shift_sequence): Likewise.
2440         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
2441         * expr.c (compress_float_constant): Likewise.
2442         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
2443         * gcse.c (want_to_gcse_p): Likewise.
2444         * ifcvt.c (noce_try_sign_mask): Likewise.
2445         * loop-doloop.c (doloop_optimize): Likewise.
2446         * loop-invariant.c (create_new_invariant): Likewise.
2447         * optabs.c (avoid_expensive_constant): Likewise.
2448         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
2449         (try_replace_in_use, reload_cse_move2add): Likewise.
2450         * reload1.c (calculate_elim_costs_all_insns): Likewise.
2451         (note_reg_elim_costly): Likewise.
2452         * rtlanal.c (insn_rtx_cost): Likewise.
2453         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2454         * stmt.c (lshift_cheap_p): Likewise.
2455         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
2456         * config/avr/avr.c (final_prescan_insn): Likewise.
2457         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
2458         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
2459
2460 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
2461
2462         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
2463         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
2464         * cfgloopanal.c (seq_cost): Likewise.
2465         * loop-invariant.c (create_new_invariant): Likewise.
2466         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
2467         (reload_cse_move2add): Use get_full_set_rtx_cost.
2468
2469 2011-08-18  Richard Guenther  <rguenther@suse.de>
2470
2471         * expr.c (get_inner_reference): Fix typo in last change.
2472
2473 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
2474             Joseph Myers  <joseph@codesourcery.com>
2475
2476         PR tree-optimization/49963
2477         * hwint.c (absu_hwi): Define.
2478         * hwint.h (absu_hwi): Declare.
2479         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
2480         of abs_hwi.
2481         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
2482         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
2483
2484 2011-08-18  Richard Guenther  <rguenther@suse.de>
2485
2486         * expr.c (get_inner_reference): Sign-extend the constant
2487         twos-complement offset before doing arbitrary precision
2488         arithmetic on it.
2489         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
2490         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
2491         to get_constraint_for_ptr_offset.
2492
2493 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2494
2495         PR target/50068
2496         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
2497
2498 2011-08-17  Richard Guenther  <rguenther@suse.de>
2499
2500         * tree.h (convert_to_ptrofftype_loc): New function.
2501         (convert_to_ptrofftype): Define.
2502         * builtins.c (expand_builtin_bzero): Use size_type_node.
2503         (fold_builtin_bzero): Likewise.
2504         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
2505         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
2506         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
2507         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
2508         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
2509         * fold-const.c (build_range_check): Negate using the original type.
2510         (fold_unary_loc): Use fold_build_pointer_plus_loc.
2511         * gimple-fold.c (gimple_adjust_this_by_delta): Use
2512         convert_to_ptrofftype.
2513         * gimplify.c (gimplify_self_mod_expr): Likewise.
2514         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
2515         (graphite_create_new_loop_guard): Likewise.
2516         * graphite-sese-to-poly.c (my_long_long): Remove.
2517         (scop_ivs_can_be_represented): Adjust.
2518         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
2519         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
2520         * tree-loop-distribution.c (build_size_arg_loc): Use
2521         size_type_node.
2522         (generate_memset_zero): Simplify.
2523         * tree-mudflap.c: Use fold_convert, not convert.
2524         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
2525         its own type.
2526         (determine_offset): Likewise for DR_STEP.
2527         (valid_initializer_p): Likewise.
2528         * tree-profile.c (prepare_instrumented_value): Convert the pointer
2529         to an integer type of same size.
2530         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
2531         to sizetype without need.
2532         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
2533         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
2534         * tree-ssa-loop-manip.c (create_iv): Likewise.
2535         (determine_exit_conditions): Adjust comment.
2536         * tree-ssa-pre.c (create_expression_by_pieces): Use
2537         convert_to_ptrofftype.
2538         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
2539         * varasm.c (array_size_for_constructor): Compute using double_ints.
2540
2541 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2542
2543         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
2544         when generating an integer result where possible.  Short-cut
2545         comparison against 0 also for QImode.
2546
2547 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2548
2549         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
2550         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
2551         prototype.
2552         * config/spu/spu.c (spu_legitimize_reload_address): New function.
2553         (spu_legitimate_address_p): Do not check displacement if the base
2554         is an eliminable stack register.
2555
2556 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
2557
2558         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
2559         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
2560         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
2561         m32c_preferred_output_reload_class): Remove.
2562         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
2563         Change rclass argument and return types to reg_class_t. Use
2564         reg_class_subset_p instead of class_sizes.
2565         (m32c_preferred_output_reload_class): Make static. Change rclass
2566         argument and return types to reg_class_t.
2567         (TARGET_PREFERRED_RELOAD_CLASS,
2568         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2569
2570 2011-08-16  Kai Tietz  <ktietz@redhat.com>
2571
2572         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
2573
2574 2011-08-16  Richard GUenther  <rguenther@suse.de>
2575
2576         PR tree-optimization/50082
2577         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
2578         warnings here, instead of ...
2579         (ssa_forward_propagate_and_combine): ... here.
2580         (forward_propagate_into_comparison_1): Adjust.
2581         (forward_propagate_into_comparison): Likewise.
2582         (forward_propagate_into_gimple_cond): Likewise.
2583         (forward_propagate_into_cond): Likewise.
2584
2585 2011-08-16  Andreas Schwab  <schwab@redhat.com>
2586
2587         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
2588         instead of ggc_alloc_zone_vec_rtvec_def.
2589
2590 2011-08-16  Richard Guenther  <rguenther@suse.de>
2591
2592         * tree.h (ptrofftype_p): New helper function.
2593         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
2594         offset verification.
2595         (verify_gimple_assign_binary): Likewise.
2596         * tree.c (build2_stat): Likewise.
2597         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
2598         (reset_evolution_in_loop): Likewise.
2599         * tree-chrec.h (build_polynomial_chrec): Likewise.
2600
2601 2011-08-16  Liang Wang  <lwang1@marvell.com>
2602
2603         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
2604         ggc_alloc_zone_vec_rtvec_def.
2605
2606 2011-08-16  Richard Guenther  <rguenther@suse.de>
2607
2608         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
2609         helper factored out from ...
2610         (extract_range_from_binary_expr_1): ... here.  Re-structure
2611         to not glob handling too different tree codes.
2612
2613 2011-08-15  Richard Henderson  <rth@redhat.com>
2614
2615         PR middle-end/50006
2616         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
2617         setting out to include allocate_stack named pattern as well.
2618         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
2619         * stmt.c (expand_stack_restore): Likewise.
2620
2621 2011-08-15  Richard Guenther  <rguenther@suse.de>
2622
2623         PR middle-end/50082
2624         * fold-const.c (maybe_canonicalize_comparison_1): Properly
2625         convert the modified operand to the other operand type.
2626         (fold_comparison): Call maybe_canonicalize_comparison_1 with
2627         useless conversions stripped from comparison operands.
2628
2629 2011-08-15  Richard Guenther  <rguenther@suse.de>
2630
2631         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
2632         (extract_range_from_unary_expr_1): Restructure.
2633
2634 2011-08-15  Richard Guenther  <rguenther@suse.de>
2635
2636         PR tree-optimization/50058
2637         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
2638         copy matching.
2639
2640 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2641
2642         PR target/50022
2643         * config/arm/arm.c (output_move_double): Add 2 parameters
2644         to count the number of insns emitted and whether to emit or not.
2645         Use the flag to decide when to emit and count number of instructions
2646         that will be emitted.
2647         Handle case where output_move_double might be called for calculating
2648         lengths with an invalid constant.
2649         (arm_count_output_move_double_insns): Define.
2650         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
2651         (output_move_double): Adjust prototype.
2652         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
2653         output_move_double.
2654         ("*movdi_vfp_cortexa8"): Likewise and add attribute
2655         for ce_count.
2656         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
2657         ("*movdf_soft_insn"): Likewise.
2658         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
2659         ("*cirrus_thumb2_movdi"): Likewise.
2660         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
2661         ("*cirrus_movdf_hard_insn"): Likewise.
2662         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
2663         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
2664         ("mov<mode>_internal VMMX"): Likewise.
2665         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
2666
2667 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
2668
2669         * config/i386/i386.c (ix86_expand_round_sse4): New function.
2670         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
2671         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
2672         for TARGET_ROUND.
2673
2674         (rint<mode>2): Simplify TARGET_ROUND check.
2675         (floor<mode>2): Ditto.
2676         (ceil<mode>2): Ditto.
2677         (btrunc<mode>2): Ditto.
2678
2679 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
2680
2681         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
2682         as mmix_preferred_output_reload_class.
2683
2684 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
2685
2686         * PR target/49903
2687         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
2688         (branch_unspec): New insn.
2689         (branch): Beauty farm.
2690         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
2691         to be IF_THEN_ELSE.
2692         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
2693         New static functions.
2694         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
2695         Use CONST_INT_P.  Beauty.
2696
2697 2011-08-12  Richard Henderson  <rth@redhat.com>
2698
2699         PR rtl-opt/49994
2700         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
2701         * sched-deps.c (init_deps): Clear it.
2702         (deps_analyze_insn): Consume it.
2703         (sched_analyze_insn): Fill it.
2704
2705 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2706
2707         PR target/48328
2708         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
2709         for tbh instructions.
2710
2711 2011-08-12  Diego Novillo  <dnovillo@google.com>
2712
2713         * data-streamer.h (streamer_write_zero): Rename from output_zero.
2714         (streamer_write_uhwi): Rename from lto_output_uleb128.
2715         (streamer_write_hwi): Rename from output_sleb128.
2716         (streamer_write_string): Rename from lto_output_string.
2717         (streamer_string_index): Rename from lto_string_index.
2718         (streamer_write_string_with_length): Rename from
2719         lto_output_string_with_length.
2720         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
2721         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
2722         (streamer_read_string): Rename from lto_input_string.
2723         (streamer_read_indexed_string): Rename from input_string_internal.
2724         (streamer_read_uhwi): Rename from lto_input_uleb128.
2725         (streamer_read_hwi): Rename from lto_input_sleb128.
2726         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
2727         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
2728         (streamer_write_enum): Rename from lto_output_enum.
2729         (streamer_read_enum): Rename from lto_input_enum.
2730         (streamer_write_record_start): Rename from output_record_start.
2731         (streamer_read_record_start): Rename from input_record_start.
2732         (streamer_write_bitpack): Rename from lto_output_bitpack.
2733         (streamer_read_bitpack): Rename from lto_input_bitpack.
2734         (streamer_write_char_stream): Rename from lto_output_1_stream.
2735         (streamer_read_uchar): Rename from lto_input_1_unsigned.
2736         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
2737         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
2738         (streamer_read_string_cst): Rename from input_string_cst.
2739         (streamer_read_chain): Rename from lto_input_chain.
2740         (streamer_alloc_tree): Rename from lto_materialize_tree.
2741         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
2742         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
2743         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
2744         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
2745         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
2746         (streamer_write_chain): Rename from lto_output_chain.
2747         (streamer_write_tree_header): Rename from lto_output_tree_header.
2748         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
2749         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
2750         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
2751         (streamer_write_builtin): Rename from lto_output_builtin_tree.
2752         (streamer_check_handled_ts_structures): Rename from
2753         check_handled_ts_structures.
2754         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
2755         (streamer_tree_cache_insert_at): Rename from
2756         lto_streamer_cache_insert_at.
2757         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
2758         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
2759         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
2760         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
2761         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
2762         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
2763         (write_identifier): Rename from output_identifier.
2764         (write_ts_common_tree_pointers): Rename from
2765         lto_output_ts_common_tree_pointers.
2766         (write_ts_vector_tree_pointers): Rename from
2767         lto_output_ts_vector_tree_pointers.
2768         (write_ts_complex_tree_pointers): Rename from
2769         lto_output_ts_complex_tree_pointers.
2770         (write_ts_decl_minimal_tree_pointers): Rename from
2771         lto_output_ts_decl_minimal_tree_pointers.
2772         (write_ts_decl_common_tree_pointers): Rename from
2773         lto_output_ts_decl_common_tree_pointers.
2774         (write_ts_decl_non_common_tree_pointers): Rename from
2775         lto_output_ts_decl_non_common_tree_pointers.
2776         (write_ts_decl_with_vis_tree_pointers): Rename from
2777         lto_output_ts_decl_with_vis_tree_pointers.
2778         (write_ts_field_decl_tree_pointers): Rename from
2779         lto_output_ts_field_decl_tree_pointers.
2780         (write_ts_function_decl_tree_pointers): Rename from
2781         lto_output_ts_function_decl_tree_pointers.
2782         (write_ts_type_common_tree_pointers): Rename from
2783         lto_output_ts_type_common_tree_pointers.
2784         (write_ts_type_non_common_tree_pointers): Rename from
2785         lto_output_ts_type_non_common_tree_pointers.
2786         (write_ts_list_tree_pointers): Rename from
2787         lto_output_ts_list_tree_pointers.
2788         (write_ts_vec_tree_pointers): Rename from
2789         lto_output_ts_vec_tree_pointers.
2790         (write_ts_exp_tree_pointers): Rename from
2791         lto_output_ts_exp_tree_pointers.
2792         (write_ts_block_tree_pointers): Rename from
2793         lto_output_ts_block_tree_pointers.
2794         (write_ts_binfo_tree_pointers): Rename from
2795         lto_output_ts_binfo_tree_pointers.
2796         (write_ts_constructor_tree_pointers): Rename from
2797         lto_output_ts_constructor_tree_pointers.
2798         (write_ts_target_option): Rename from lto_output_ts_target_option.
2799         (write_ts_translation_unit_decl_tree_pointers): Rename from
2800         lto_output_ts_translation_unit_decl_tree_pointers.
2801         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
2802         Rename from lto_streamer_cache_add_to_node_array.
2803         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
2804         (record_common_node): Rename from lto_record_common_node.
2805
2806         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
2807         declarations.
2808         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
2809         function.
2810         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
2811         unused function.
2812         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
2813         (ipa-reference.o): Likewise.
2814         * lto-section-out.c: Include data-streamer.h.
2815         * ipa-reference.c: Include data-streamer.h.
2816
2817 2011-08-12  Nick Clifton  <nickc@redhat.com>
2818
2819         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
2820         * doc/md.texi (cmpstrn): Note that the comparison stops if both
2821         fetched bytes are zero.
2822         (cmpstr): Likewise.
2823         (cmpmem): Note that the comparison does not stop if both of the
2824         fetched bytes are zero.
2825
2826 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
2827
2828         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
2829         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
2830         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
2831         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
2832         to integer_type_node.
2833         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
2834         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
2835         * builtins.c (expand_builtin_in): Ditto.
2836         (mathfn_built_in_1): Ditto.
2837         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
2838         BUILT_IN_IFLOOR.
2839         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
2840         BUILT_IN_IROUND.
2841         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
2842         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
2843         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
2844
2845 2011-08-12  Richard Guenther  <rguenther@suse.de>
2846
2847         * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
2848
2849 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
2850
2851         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
2852
2853 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
2854
2855         * config/arm/arm.c (get_label_padding): New function.
2856         (create_fix_barrier, arm_reorg): Use it.
2857
2858 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
2859
2860         PR target/49781
2861         * config/i386/i386.md (*lea_5_zext): New.
2862         (*lea_6_zext): Ditto.
2863         * config/i386/predicates.md (const_32bit_mask): New predicate.
2864         (lea_address_operand): Reject AND.
2865         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
2866         const_32bit_mask immediate.
2867         (ix86_print_operand_address): Handle AND.
2868         (memory_address_length): Ditto.
2869
2870 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
2871             Brian Hackett  <bhackett1024@gmail.com>
2872
2873         * plugin.def: Add event for finish_decl.
2874         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
2875         * c-decl.c (finish_decl): Invoke callbacks on above event.
2876         * doc/plugins.texi: Document above event.
2877
2878 2011-08-11  Richard Guenther  <rguenther@suse.de>
2879
2880         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
2881         lookups, make looking through aggregate copies stronger.
2882
2883 2011-08-11  Richard Henderson  <rth@redhat.com>
2884
2885         PR bootstrap/50018
2886         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
2887
2888 2011-08-11  Richard Guenther  <rguenther@suse.de>
2889
2890         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
2891         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
2892         (vrp_visit_stmt): Likewise.
2893
2894 2011-08-11  Richard Guenther  <rguenther@suse.de>
2895
2896         PR middle-end/50040
2897         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
2898         load of the other piece with TREE_NO_WARNING.
2899         * tree-flow.h (warn_uninit): Adjust prototype.
2900         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
2901         the base variable and the expression that is used separately.
2902         Properly query all TREE_NO_WARNING flags.
2903         (struct walk_data): Remove.
2904         (warn_uninitialized_var): Likewise.
2905         (warn_uninitialized_vars): Do not walk gimple pieces but simply
2906         look at all SSA uses of the statement.  Handle unused memory
2907         separately.
2908         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
2909
2910 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
2911
2912         * config/rx/rx.md (movsicc): Allow register to register transfers.
2913         (*movsicc): Likewise.
2914         (*stcc): Restrict this pattern to EQ and NE compares.
2915         (*stcc_reg): New pattern.  Works for any comparison but only for
2916         register transfers.
2917
2918 2011-08-11   Diego Novillo  <dnovillo@google.com>
2919
2920         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
2921         Call stream_write_tree instead of output_record_start.
2922         (lto_output_ts_binfo_tree_pointers): Likewise.
2923
2924         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
2925         Convert it to a macro.
2926         (stream_read_tree): Likewise.
2927
2928         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
2929         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
2930
2931         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
2932         and tree_read_bitfields.
2933         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
2934         (lto_write_tree): Call it.
2935         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
2936         * streamer-hooks.h (struct streamer_hooks): Remove fields
2937         name, is_streamable and alloc_tree. Update all users.
2938         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
2939         (lto_materialize_tree): ... here.
2940         Handle CALL_EXPR codes.
2941         Remove call to lto_streamer_cache_append.
2942         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
2943         * tree-streamer.h (tree_read_bitfields): Declare.
2944
2945         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
2946         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
2947         * tree-streamer.h (stream_read_tree): New.  Replace all calls
2948         to lto_input_tree with it.
2949         (stream_write_tree): New.  Replace all calls to lto_output_tree,
2950         lto_output_tree_ref and lto_output_tree_or_ref with it.
2951         * lto-streamer-in.c (lto_read_tree): Inline code from
2952         lto_streamer_read_tree.
2953         (lto_input_tree): Move from tree-streamer-in.c.
2954         * lto-streamer-out.c (lto_output_tree_ref): Make static.
2955         Remove handling of NULL values for EXPR.
2956         Do not handle EXPRs that are not indexable.
2957         (lto_write_tree): Move from tree-streamer-out.c.
2958         Inline lto_streamer_write_tree.
2959         (lto_output_tree): Move from tree-streamer-out.c.
2960         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
2961         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
2962         (lto_preload_common_nodes): Likewise.
2963         Remove assertions and adjustments for nodes
2964         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
2965         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
2966         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
2967         * lto-streamer.h (lto_input_tree): Declare.
2968         (lto_output_tree_ref): Remove.
2969         * streamer-hooks.h (struct streamer_hooks): Remove fields
2970         preload_common_nodes, indexable_with_decls_p,
2971         pack_value_fields, unpack_value_fields and output_tree_header.
2972         Update all users.
2973         * tree-streamer-in.c (lto_materialize_tree): Make extern.
2974         (lto_input_tree_pointers): Likewise.
2975         (lto_read_tree): Move to lto-streamer-in.c.
2976         (lto_input_integer_cst): Make extern.
2977         (lto_get_pickled_tree): Likewise.
2978         (lto_get_builtin_tree): Likewise.
2979         (lto_input_tree): Move to lto-streamer-in.c.
2980         * tree-streamer-out.c (pack_value_fields): Make extern.
2981         (lto_output_tree_or_ref): Remove.  Replace all callers with
2982         calls to stream_write_tree.
2983         (lto_output_builtin_tree): Make extern.
2984         (lto_streamer_write_tree): Inline into lto_write_tree.
2985         (lto_output_tree_pointers): Make extern.
2986         (lto_output_tree_header): Likewise.
2987         (lto_output_integer_cst): Likewise.
2988         (lto_write_tree): Move to lto-streamer-out.c.
2989         (lto_output_tree): Likewise.
2990         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
2991         (preload_common_nodes): Likewise.
2992         (lto_streamer_cache_create): Call it.
2993         * tree-streamer.h: Include streamer-hooks.h.
2994         (stream_write_tree): New.
2995         (stream_read_tree): New.
2996         (lto_input_tree): Remove.
2997         (lto_materialize_tree): Declare.
2998         (lto_input_tree_pointers): Declare.
2999         (lto_get_pickled_tree): Declare.
3000         (lto_get_builtin_tree): Declare.
3001         (lto_input_integer_cst): Declare.
3002         (lto_output_tree_header): Declare.
3003         (pack_value_fields): Declare.
3004         (lto_output_tree_pointers): Declare.
3005         (lto_output_integer_cst): Declare.
3006         (lto_output_builtin_tree): Declare.
3007
3008 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
3009
3010         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
3011         only if producer writes to the register given by regno.
3012
3013 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
3014             Alexander Monakov  <amonakov@ispras.ru>
3015
3016         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
3017         (sched_get_condition_with_rev_uncached): ... this.  Factor out
3018         condition caching logic into ...
3019         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
3020         attempt to use cache for instructions with zero luid.
3021         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
3022         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
3023
3024 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
3025
3026         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
3027         get_seqno_for_a_jump.  Update the caller.
3028         (get_seqno_by_succs): New.  Use it ...
3029         (get_seqno_for_a_jump): ... here to find a seqno if looking at
3030         predecessors was not sufficient.
3031         (get_seqno_by_preds): Include head in iteration range, exclude insn.
3032
3033 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
3034
3035         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
3036
3037 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
3038
3039         * sel-sched-ir.h (register_unavailable_p): Declare.
3040         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
3041         (set_unavailable_target_for_expr): ... here to properly test
3042         availability of a register.
3043         (speculate_expr): Ditto.
3044         * sel-sched.c (substitute_reg_in_expr): Ditto.
3045         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
3046
3047 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
3048
3049         * sel-sched.c (verify_target_availability): Fix usage of
3050         hard_regno_nregs.
3051
3052 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
3053
3054         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
3055         recognized by cannot_copy_insn_p hook and volatile instructions.
3056
3057 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
3058
3059         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
3060
3061 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
3062
3063         * doc/md.texi (define_bypass): Say that the instruction names can
3064         be filename-style globs.
3065         * Makefile.in (FNMATCH_H): Define.
3066         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
3067         * genattrtab.c: Include fnmatch.h.
3068         (bypass_list): Change field name from "insn" to "pattern".
3069         (gen_bypass_1): Update accordingly.
3070         (process_bypasses): Use fnmatch to check for matches between
3071         insn reservations and define_bypasses.
3072         * genautomata.c: Include fnmatch.h.
3073         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
3074         and out_pattern respectively.
3075         (gen_bypass, insert_bypass): Update accordingly.
3076         (for_each_matching_insn, process_bypass_2, process_bypass_1)
3077         (process_bypass): New functions.
3078         (process_decls): Use process_bypass.  Update after field name changes.
3079
3080 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
3081
3082         PR target/49687
3083         * config/avr/avr.md (smulqi3_highpart): New insn.
3084         (umulqi3_highpart): New insn.
3085         (*subqi3.ashiftrt7): New insn.
3086         (smulhi3_highpart): New expander.
3087         (umulhi3_highpart): Nex expander.
3088         (*smulhi3_highpart_call): New insn.
3089         (*umulhi3_highpart_call): New insn.
3090         (extend_u): New code attribute.
3091         (extend_prefix): Rename code attribute to extend_su.
3092         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
3093         widening QI/HI multiply.
3094
3095 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
3096
3097         PR tree-optimization/50039
3098         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
3099         that DEF_STMT has a stmt_vec_info.
3100
3101 2011-08-10  Richard Guenther  <rguenther@suse.de>
3102
3103         * tree.h (can_trust_pointer_alignment): Remove.
3104         * builtins.c (can_trust_pointer_alignment): Remove.
3105
3106 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
3107
3108         * c-typeck.c (scalar_to_vector): New function. Try scalar to
3109         vector conversion.
3110         (stv_conv): New enum for scalar_to_vector return type.
3111         (build_binary_op): Adjust.
3112         * doc/extend.texi: Description of scalar to vector expansion.
3113
3114 2011-08-10  Richard Guenther  <rguenther@suse.de>
3115
3116         * tree.h (get_pointer_alignment): Remove max-align argument.
3117         (get_object_alignment): Likewise.
3118         * builtins.c (get_object_alignment_1): Adjust.
3119         (get_object_alignment): Remove max-align argument.
3120         (get_pointer_alignment): Likewise.
3121         (expand_builtin_strlen): Adjust.
3122         (expand_builtin_memcpy): Likewise.
3123         (expand_builtin_mempcpy_args): Likewise.
3124         (expand_builtin_strncpy): Likewise.
3125         (expand_builtin_memset_args): Likewise.
3126         (expand_builtin_memcmp): Likewise.
3127         (expand_builtin_strcmp): Likewise.
3128         (expand_builtin_strncmp): Likewise.
3129         (get_builtin_sync_mem): Likewise.
3130         (fold_builtin_memset): Likewise.
3131         (fold_builtin_memory_op): Likewise.
3132         (expand_builtin_memory_chk): Likewise.
3133         * emit-rtl.c (get_mem_align_offset): Likewise.
3134         (set_mem_attributes_minus_bitpos): Likewise.
3135         * expr.c (expand_assignment): Likewise.
3136         (expand_expr_real_1): Likewise.
3137         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
3138         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
3139         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
3140         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
3141         * value-prof.c (gimple_stringops_transform): Likewise.
3142
3143 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
3144
3145         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
3146         * doc/tm.texi: Regenerate.
3147
3148 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
3149
3150         PR target/29560
3151         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
3152         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
3153         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
3154         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
3155         shift target is unused.
3156
3157 2011-08-10  Richard Guenther  <rguenther@suse.de>
3158
3159         PR tree-optimization/49937
3160         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
3161         using get_object_alignment_1.
3162
3163 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
3164
3165         * config/i386/i386.c (ix86_emit_i387_round): New function.
3166         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
3167         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
3168         Use ix86_emit_i387_round to expand round function for i387 math.
3169         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
3170         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
3171
3172 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3173
3174         * config/sync.c: Move to ../libgcc.
3175         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
3176         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
3177         Remove.
3178
3179 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
3180
3181         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
3182         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
3183         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
3184         Change 'from' and 'to' arguments type to reg_class_t.
3185         (TARGET_REGISTER_MOVE_COST): Define.
3186
3187 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
3188
3189         PR target/50026
3190         Revert:
3191         PR rtl-optimization/49990
3192         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
3193         ignore classes which can not change mode.
3194         (find_costs_and_classes): Ditto.
3195
3196 2011-08-09  Richard Guenther  <rguenther@suse.de>
3197
3198         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
3199         information for ranges with only negative values.
3200         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
3201         BIT_AND_EXPR handling to handle ranges with negative values.
3202
3203 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
3204
3205         * config/i386/i386.c: Remove traling spaces.
3206         * config/i386/sse.md: Likewise.
3207         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
3208         (*fma_fmsub_<mode>): Likewise.
3209         (*fma_fnmadd_<mode>): Likewise.
3210         (*fma_fnmsub_<mode>): Likewise.
3211
3212 2011-08-09  Nick Clifton  <nickc@redhat.com>
3213
3214         * config/rx/rx.md: Disable extender peepholes at -O3.
3215
3216 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
3217
3218         PR target/49781
3219         * config/i386/i386.md (reload_noff_load): New.
3220         (reload_noff_store): Ditto.
3221         * config/i386/i386.c (ix86_secondary_reload): Use
3222         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
3223         double-word moves from/to non-offsetable addresses instead of
3224         generating XMM temporary.
3225
3226 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
3227
3228         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
3229
3230 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
3231
3232         PR tree-optimization/50014
3233         * tree-vect-loop.c (vectorizable_reduction): Get def type before
3234         calling vect_get_vec_def_for_stmt_copy ().
3235
3236 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
3237
3238         PR rtl-optimization/49990
3239         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
3240         ignore classes which can not change mode.
3241         (find_costs_and_classes): Ditto.
3242
3243 2011-08-08  Richard Henderson  <rth@redhat.com>
3244
3245         PR middle-end/49990
3246         * config/i386/i386.c (ix86_expand_prologue): Call
3247         for SEH target gen_prologue_use instead of gen_blockage
3248         at prologue's end.
3249
3250 2011-08-08  Martin Jambor  <mjambor@suse.cz>
3251
3252         PR middle-end/49923
3253         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
3254         memory alignment.
3255
3256 2011-08-08   Diego Novillo  <dnovillo@google.com>
3257
3258         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
3259         (DATA_STREAMER_H): New.
3260         (GIMPLE_STREAMER_H): New.
3261         (TREE_STREAMER_H): New.
3262         (STREAMER_HOOKS_H): New.
3263         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
3264         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
3265         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
3266         (data-streamer.o): New.
3267         (data-streamer-in.o): New.
3268         (data-streamer-out.o): New.
3269         (gimple-streamer-in.o): New.
3270         (gimple-streamer-out.o): New.
3271         (streamer-hooks.o): New.
3272         (tree-streamer.o): New.
3273         (tree-streamer-in.o): New.
3274         (tree-streamer-out.o): New.
3275         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
3276         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
3277         GIMPLE_STREAMER_H and TREE_STREAMER_H.
3278         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
3279         GIMPLE_STREAMER_H and TREE_STREAMER_H.
3280         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
3281         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
3282         (ipa-inline-analysis.o): Likewise.
3283         (ipa-pure-const.o): Likewise.
3284         * data-streamer-in.c: New.
3285         * data-streamer-out.c: New.
3286         * data-streamer.c: New.
3287         * data-streamer.h: New.
3288         * gimple-streamer-in.c: New.
3289         * gimple-streamer-out.c: New.
3290         * gimple-streamer.h: New.
3291         * ipa-inline-analysis.c: Include data-streamer.h.
3292         * ipa-prop.c: Include data-streamer.h.
3293         * ipa-pure-const.c: Include data-streamer.h.
3294         * lto-cgraph.c: Include data-streamer.h.
3295         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
3296         (lto_input_widest_uint_uleb128): Likewise.
3297         (lto_input_sleb128): Likewise.
3298         (bp_unpack_var_len_unsigned): Likewise.
3299         (bp_unpack_var_len_int): Likewise.
3300         * lto-section-out.c (lto_output_uleb128_stream): Move to
3301         data-streamer-out.c.
3302         (lto_output_widest_uint_uleb128_stream): Likewise.
3303         (lto_output_sleb128_stream): Likewise.
3304         (bp_pack_var_len_unsigned): Likewise.
3305         (bp_pack_var_len_int): Likewise.
3306         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
3307         (struct string_slot): Remove.  Update all users.
3308         (lto_tag_check_set): Make extern.
3309         (lto_tag_check_range): Move to lto-streamer.h.
3310         (lto_tag_check): Likewise.
3311         (hash_string_slot_node): Remove.  Update all users.
3312         (eq_string_slot_node): Remove.  Update all users.
3313         (string_for_index): Move to data-streamer-in.c
3314         (input_string_internal): Likewise.
3315         (input_string_cst): Move to tree-streamer-in.c.
3316         (input_identifier): Likewise.
3317         (lto_input_string): Move to data-streamer-in.c
3318         (input_record_start): Move to data-streamer.h
3319         (canon_file_name): Use new definition of struct string_slot
3320         from data-streamer.h.  Set S_SLOT.LEN.
3321         (lto_input_location): Make extern.
3322         (lto_input_chain): Move to tree-streamer-in.c.
3323         (lto_init_eh): Make extern.
3324         (input_phi): Move to gimple-streamer-in.c.
3325         (input_gimple_stmt): Likewise.
3326         (input_bb): Likewise.
3327         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
3328         (unpack_ts_real_cst_value_fields): Likewise.
3329         (unpack_ts_fixed_cst_value_fields): Likewise.
3330         (unpack_ts_decl_common_value_fields): Likewise.
3331         (unpack_ts_decl_wrtl_value_fields): Likewise.
3332         (unpack_ts_decl_with_vis_value_fields): Likewise.
3333         (unpack_ts_function_decl_value_fields): Likewise.
3334         (unpack_ts_type_common_value_fields): Likewise.
3335         (unpack_ts_block_value_fields): Likewise.
3336         (unpack_ts_translation_unit_decl_value_fields): Likewise.
3337         (unpack_value_fields): Likewise.
3338         (lto_materialize_tree): Likewise.
3339         (lto_input_ts_common_tree_pointers): Likewise.
3340         (lto_input_ts_vector_tree_pointers): Likewise.
3341         (lto_input_ts_complex_tree_pointers): Likewise.
3342         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
3343         (lto_input_ts_decl_common_tree_pointers): Likewise.
3344         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
3345         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
3346         (lto_input_ts_field_decl_tree_pointers): Likewise.
3347         (lto_input_ts_function_decl_tree_pointers): Likewise.
3348         (lto_input_ts_type_common_tree_pointers): Likewise.
3349         (lto_input_ts_type_non_common_tree_pointers): Likewise.
3350         (lto_input_ts_list_tree_pointers): Likewise.
3351         (lto_input_ts_vec_tree_pointers): Likewise.
3352         (lto_input_ts_exp_tree_pointers): Likewise.
3353         (lto_input_ts_block_tree_pointers): Likewise.
3354         (lto_input_ts_binfo_tree_pointers): Likewise.
3355         (lto_input_ts_constructor_tree_pointers): Likewise.
3356         (lto_input_ts_target_option): Likewise.
3357         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
3358         (lto_input_tree_pointers): Likewise.
3359         (lto_get_pickled_tree): Likewise.
3360         (lto_get_builtin_tree): Likewise.
3361         (lto_read_tree): Likewise.
3362         (lto_input_integer_cst): Likewise.
3363         (lto_input_tree): Likewise.
3364         * lto-streamer-out.c: Include data-streamer.h,
3365         gimple-streamer.h and streamer-hooks.h.
3366         (struct string_slot): Move to data-streamer.h.
3367         (hash_string_slot_node): Likewise.
3368         (eq_string_slot_node): Likewise.
3369         (lto_string_index): Move to data-streamer-out.c.
3370         (lto_output_string_with_length): Likewise.
3371         (lto_output_string): Likewise.
3372         (output_string_cst): Move to tree-streamer-out.c.
3373         (output_identifier): Likewise.
3374         (output_zero): Move to data-streamer-out.c
3375         (output_uleb128): Likewise.
3376         (output_sleb128): Likewise.
3377         (output_record_start): Move to data-streamer.h
3378         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
3379         (pack_ts_real_cst_value_fields): Likewise.
3380         (pack_ts_fixed_cst_value_fields): Likewise.
3381         (pack_ts_decl_common_value_fields): Likewise.
3382         (pack_ts_decl_wrtl_value_fields): Likewise.
3383         (pack_ts_decl_with_vis_value_fields): Likewise.
3384         (pack_ts_function_decl_value_fields): Likewise.
3385         (pack_ts_type_common_value_fields): Likewise.
3386         (pack_ts_block_value_fields): Likewise.
3387         (pack_ts_translation_unit_decl_value_fields): Likewise.
3388         (pack_value_fields): Likewise.
3389         (lto_output_chain): Likewise.
3390         (lto_output_ts_common_tree_pointers): Likewise.
3391         (lto_output_ts_vector_tree_pointers): Likewise.
3392         (lto_output_ts_complex_tree_pointers): Likewise.
3393         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
3394         (lto_output_ts_decl_common_tree_pointers): Likewise.
3395         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
3396         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
3397         (lto_output_ts_field_decl_tree_pointers): Likewise.
3398         (lto_output_ts_function_decl_tree_pointers): Likewise.
3399         (lto_output_ts_type_common_tree_pointers): Likewise.
3400         (lto_output_ts_type_non_common_tree_pointers): Likewise.
3401         (lto_output_ts_list_tree_pointers): Likewise.
3402         (lto_output_ts_vec_tree_pointers): Likewise.
3403         (lto_output_ts_exp_tree_pointers): Likewise.
3404         (lto_output_ts_block_tree_pointers): Likewise.
3405         (lto_output_ts_binfo_tree_pointers): Likewise.
3406         (lto_output_ts_constructor_tree_pointers): Likewise.
3407         (lto_output_ts_target_option): Likewise.
3408         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
3409         (lto_output_tree_pointers): Likewise.
3410         (lto_output_tree_header): Likewise.
3411         (lto_output_builtin_tree): Likewise.
3412         (lto_write_tree): Likewise.
3413         (lto_output_integer_cst): Likewise.
3414         (lto_output_tree): Likewise.
3415         (output_phi): Move to gimple-streamer-out.c.
3416         (output_gimple_stmt): Likewise.
3417         (output_bb): Likewise.
3418         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
3419         (streamer_hooks): Move to streamer-hooks.c.
3420         (check_handled_ts_structures): Move to tree-streamer.c
3421         (lto_streamer_cache_add_to_node_array): Likewise.
3422         (lto_streamer_cache_insert_1): Likewise.
3423         (lto_streamer_cache_insert): Likewise.
3424         (lto_streamer_cache_insert_at): Likewise.
3425         (lto_streamer_cache_append): Likewise.
3426         (lto_streamer_cache_lookup): Likewise.
3427         (lto_streamer_cache_get): Likewise.
3428         (lto_record_common_node): Likewise.
3429         (lto_preload_common_nodes): Likewise.
3430         (lto_streamer_cache_create): Likewise.
3431         (lto_streamer_cache_delete): Likewise.
3432         (streamer_hooks_init): Move to streamer-hooks.c.
3433         * lto-streamer.h: Include diagnostic.h
3434         (struct output_block, struct lto_input_block,
3435         struct data_in, struct bitpack_d): Remove forward declarations.
3436         (struct bitpack_d): Move to data-streamer.h.
3437         (struct lto_streamer_cache_d): Move to tree-streamer.h.
3438         (struct streamer_hooks): Move to streamer-hooks.h.
3439         (bp_pack_var_len_unsigned): Move to data-streamer.h.
3440         (bp_pack_var_len_int): Likewise.
3441         (bp_unpack_var_len_unsigned): Likewise.
3442         (bp_unpack_var_len_int): Likewise.
3443         (lto_input_location): Declare.
3444         (lto_tag_check_set): Declare.
3445         (lto_init_eh): Declare.
3446         (lto_output_tree_ref): Declare.
3447         (lto_output_location): Declare.
3448         (bitpack_create): Move to data-streamer.h.
3449         (bp_pack_value): Likewise.
3450         (lto_output_bitpack): Likewise.
3451         (lto_input_bitpack): Likewise.
3452         (bp_unpack_value): Likewise.
3453         (lto_output_1_stream): Likewise.
3454         (lto_input_1_unsigned): Likewise.
3455         (lto_output_int_in_range): Likewise.
3456         (lto_input_int_in_range): Likewise.
3457         (bp_pack_int_in_range): Likewise.
3458         (bp_unpack_int_in_range): Likewise.
3459         (lto_output_enum): Likewise.
3460         (lto_input_enum): Likewise.
3461         (bp_pack_enum): Likewise.
3462         (bp_unpack_enum): Likewise.
3463         * streamer-hooks.c: New.
3464         * streamer-hooks.h: New.
3465         * tree-streamer-in.c: New.
3466         * tree-streamer-out.c: New.
3467         * tree-streamer.c: New.
3468         * tree-streamer.h: New.
3469
3470 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3471
3472         * gthr-posix95.h: Remove.
3473         * gthr.h [_PTHREADS95]: Remove.
3474         * configure.ac (enable_threads): Remove posix95.
3475         * configure: Regenerate.
3476         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
3477
3478 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
3479
3480         PR target/49781
3481         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
3482         SImode addresses.
3483         (ix86_print_operand_address): Handle zero-extended addresses.
3484         (memory_address_length): Add length of addr32 prefix for
3485         zero-extended addresses.
3486         (ix86_secondary_reload): Handle moves to/from double-word general
3487         registers from/to zero-extended addresses.
3488         * config/i386/predicates.md (lea_address_operand): Reject
3489         zero-extended operands.
3490
3491 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
3492
3493         PR other/48007
3494         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
3495
3496         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
3497         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
3498
3499         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
3500         (_Unwind_Context_Reg_Val): Likewise.
3501         (_Unwind_Get_Unwind_Word): Likewise.
3502         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
3503         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
3504         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
3505         for EXTENDED_CONTEXT_BIT.
3506         (__frame_state_for): Likewise.
3507         (uw_init_context_1): Likewise.
3508         (_Unwind_GetGR): Updated.
3509         (_Unwind_SetGR): Likewise.
3510         (_Unwind_GetGRPtr): Likewise.
3511         (_Unwind_SetGRPtr): Likewise.
3512         (_Unwind_SetGRValue): Likewise.
3513         (_Unwind_GRByValue): Likewise.
3514         (uw_install_context_1): Likewise.
3515
3516         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
3517         ASSUME_EXTENDED_UNWIND_CONTEXT.
3518         * doc/tm.texi: Regenerated.
3519
3520 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3521
3522         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
3523
3524 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3525
3526         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
3527         Linux/GNU-specific.
3528         (DEC Alpha Options, -mtune): Likewise.
3529         (MIPS Options, -march): native is supported on IRIX.
3530
3531 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3532
3533         * config/sparc/driver-sparc.c: New file.
3534         * config/sparc/x-sparc: New file.
3535         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
3536         * config/sparc/sparc.opt (native): New value for enum processor_type.
3537         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
3538         * config/sparc/sparc.c (sparc_option_override): Abort if
3539         PROCESSOR_NATIVE gets here.
3540         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
3541         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
3542         DRIVER_SELF_SPECS): Define.
3543         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
3544         (SPARC Options, -mtune): Likewise.
3545         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
3546         Substitute result.
3547         * configure: Regenerate.
3548         * Makefile.in (EXTRA_GCC_LIBS): Set.
3549         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
3550         (cpp$(exeext)): Likewise.
3551
3552 2011-08-08  Richard Guenther  <rguenther@suse.de>
3553
3554         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
3555         split out from ...
3556         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
3557         by composition.
3558
3559 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
3560
3561         PR tree-optimization/50005
3562         * ipa-inline-analysis (remap_predicate): Add cast to
3563         silence signed/unsigned comparison warning.
3564
3565 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
3566
3567         * modulo-sched.c (get_sched_window): Use a table for the debug output.
3568         Print the current ii.
3569         (sms_schedule_by_order): Reduce whitespace in dump line.
3570
3571 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
3572
3573         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
3574         and one loop for successors.  Fix upper bound of memory range.
3575
3576 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
3577
3578         PR target/50001
3579         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
3580         (TARGET_INSTANTIATE_DECLS): New define.
3581
3582 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
3583             Mikael Morin   <mikael.morin@sfr.fr>
3584
3585         * Makefile.in (INCLUDES_FOR_TARGET): New.
3586         (LIBGCC2_CFLAGS): Use it.
3587         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
3588
3589 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
3590
3591         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
3592         frame->save_regs_using_mov calculation.
3593
3594 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
3595
3596         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
3597         * config/i386/sse.md (castmode): New mode attribute.
3598         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
3599         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
3600
3601 2011-08-05  Jan Hubicka  <jh@suse.cz>
3602
3603         PR middle-end/49494
3604         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
3605
3606 2011-08-05  Jan Hubicka  <jh@suse.cz>
3607
3608         PR middle-end/49500
3609         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
3610         handle aliases.
3611         (create_emultls_var):New function.
3612         (ipa_lower_emutls): Handle aliases correctly.
3613
3614 2011-08-05  Jan Hubicka  <jh@suse.cz>
3615
3616         PR middle-end/49735
3617         * ipa-inline.c (recursive_inlining): Look through aliases.
3618
3619 2011-08-05  Jason Merrill  <jason@redhat.com>
3620
3621         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
3622         declarations to beginning of function.
3623
3624 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
3625
3626         PR rtl-optimization/49900
3627         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
3628         ensure basic blocks stay in the same order.
3629
3630 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
3631
3632         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
3633         store_bit_field.
3634         (s390_expand_atomic): Same.
3635
3636 2011-08-05  Richard Henderson  <rth@redhat.com>
3637
3638         PR rtl-opt/49977
3639         * dwarf2cfi.c (scan_insn_after): Split out of ...
3640         (scan_trace): ... here.  Correctly place notes wrt sequences.
3641
3642 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
3643             Richard Henderson  <rth@redhat.com>
3644
3645         PR rtl-opt/49982
3646         * expr.c (fixup_args_size_notes): Look through no-op moves.
3647
3648 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
3649
3650         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
3651         of "m" for operand 0.  Add type and mode attribute.
3652         (*pushxf_nointeger"): Use "<" constraint for operand 0.
3653         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
3654         constraint instead of "o" for opreand 1.
3655         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
3656         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
3657         operand 0, alternative 4.
3658         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
3659
3660 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
3661
3662         * config/i386/predicates.md (lea_address_operand): Rename from
3663         no_seg_address_operand.
3664         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
3665         (*lea_1_zext): Ditto.
3666         (*lea_2): Ditto.
3667         (*lea_2_zext): Ditto.
3668
3669 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
3670
3671         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
3672         parts.base and parts.index.
3673         * config/i386/predicates.md (aligned_operand): Ditto.
3674         (cmpxchg8b_pic_memory_operand): Ditto.
3675
3676 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3677
3678         * config/soft-fp: Move to ../libgcc.
3679         * Makefile.in (SFP_MACHINE): Remove.
3680         (libgcc-support): Remove $(SFP_MACHINE) dependency.
3681         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
3682         * config/arm/t-arm-softfp: Move to
3683         ../libgcc/config/arm/t-softfp.
3684         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
3685         * config/c6x/t-c6x-softfp: Remove.
3686         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
3687         * config/i386/t-fprules-softfp: Move to
3688         ../libgcc/config/t-softfp-tf.
3689         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
3690         * config/ia64/t-fprules-softfp: Remove.
3691         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
3692         * config/lm32/t-fprules-softfp: Remove.
3693         * config/moxie/sfp-machine.h: Remove.
3694         * config/moxie/t-moxie-softfp: Remove.
3695         * config/rs6000/darwin-ldouble-format: Move to
3696         ../libgcc/config/rs6000/ibm-ldouble-format.
3697         * config/rs6000/darwin-ldouble.c: Move to
3698         ../libgcc/config/rs6000/ibm-ldouble.c
3699         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
3700         * config/rs6000/libgcc-ppc64.ver: Likewise.
3701         * config/rs6000/sfp-machine.h: Likewise.
3702         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
3703         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
3704         (LIB2FUNCS_EXTRA): Remove.
3705         (TARGET_LIBGCC2_CFLAGS): Remove.
3706         * config/rs6000/t-aix52: Likewise
3707         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
3708         $(srcdir)/config/rs6000/darwin-ldouble.c.
3709         (SHLIB_MAPFILES): Remove.
3710         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
3711         $(srcdir)/config/rs6000/darwin-ldouble.c.
3712         * config/rs6000/t-fprules-softfp: Move to
3713         ../libgcc/config/t-softfp-sfdf.
3714         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
3715         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
3716         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
3717         $(srcdir)/config/rs6000/darwin-ldouble.c.
3718         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
3719         * config/score/t-score-softfp: Remove.
3720         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
3721         soft-fp/t-softfp from tmake_file.
3722         (arm*-*-uclinux*): Likewise.
3723         (arm*-*-ecos-elf): Likewise.
3724         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
3725         (arm*-*-rtems*): Likewise.
3726         (arm*-*-elf): Likewise.
3727         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
3728         tmake_file.
3729         (moxie-*-uclinux*): Likewise.
3730         (moxie-*-rtems*): Likewise.
3731         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
3732         tmake_file.
3733         (lm32-*-rtems*): Likewise.
3734         (lm32-*-uclinux*): Likewise.
3735         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
3736         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
3737         (powerpc-*-linux*, powerpc64-*-linux*): Remove
3738         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
3739         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
3740         tmake_file.
3741         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
3742         tmake_file.
3743         (tic6x-*-uclinux): Likewise.
3744         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
3745         soft-fp/t-softfp from tmake_file.
3746         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
3747         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
3748         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
3749         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
3750         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
3751
3752 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3753
3754         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
3755         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
3756         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
3757         TPBIT, TPBIT_FUNCS.
3758         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
3759         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
3760         Remove.
3761         * config/arm/t-vxworks: Likewise.
3762         * config/arm/t-wince-pe: Likewise.
3763         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
3764         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3765         * config/bfin/t-bfin-elf: Likewise.
3766         * config/bfin/t-bfin-linux: Likewise.
3767         * config/bfin/t-bfin-uclinux: Likewise.
3768         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
3769         Remove.
3770         * config/fr30/t-fr30: Likewise.
3771         * config/frv/t-frv: Likewise.
3772         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
3773         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3774         * config/m32c/t-m32c: Likewise.
3775         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
3776         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3777         * config/mcore/t-mcore: Likewise.
3778         * config/mep/t-mep: Likewise.
3779         * config/microblaze/t-microblaze: Likewise.
3780         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
3781         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3782         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
3783         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3784         * config/mn10300/t-linux: Remove.
3785         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3786         * config/pdp11/t-pdp11: Likewise.
3787         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
3788         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
3789         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3790         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
3791         * config/rs6000/t-aix52: Likewise.
3792         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
3793         $(srcdir)/config/rs6000/ppc64-fp.c.
3794         * config/rs6000/t-fprules-fpbit: Remove.
3795         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
3796         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3797         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
3798         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3799         * config/sparc/t-elf: Likewise.
3800         * config/sparc/t-leon: Likewise.
3801         * config/sparc/t-leon3: Likewise.
3802         * config/spu/t-spu-elf: Likewise.
3803         (DPBIT_FUNCS): Remove.
3804         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3805         * config/v850/t-v850: Likewise.
3806         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
3807         (avr-*-*): Likewise.
3808         (h8300-*-rtems*): Set libgcc_tm_file.
3809         (h8300-*-elf*): Likewise.
3810         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
3811         tmake_file.
3812         (powerpc-*-eabisim*): Likewise.
3813         (powerpc-*-elf*): Likewise.
3814         (powerpc-*-eabialtivec*): Likewise.
3815         (powerpc-xilinx-eabi*): Likewise.
3816         (powerpc-*-eabi*): Likewise.
3817         (powerpc-*-rtems*): Likewise.
3818         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
3819         (powerpcle-*-elf*): Likewise.
3820         (powerpcle-*-eabisim*): Likewise.
3821         (powerpcle-*-eabi*): Likewise.
3822         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
3823         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
3824         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
3825         Remove.
3826
3827 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3828
3829         * Makefile.in (UNWIND_H): Remove.
3830         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
3831         ../libgcc/Makefile.in.
3832         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
3833         (LIBUNWINDDEP): Remove.
3834         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
3835         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
3836         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
3837         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
3838         Don't copy $(UNWIND_H).
3839         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
3840         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
3841         * aclocal.m4: Regenerate.
3842         * configure: Regenerate.
3843         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
3844         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
3845         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
3846         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
3847         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
3848         * config/arm/libunwind.S, config/arm/pr-support.c,
3849         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
3850         ../libgcc/config/arm.
3851         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
3852         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
3853         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
3854         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
3855         ($(T)frvend$(objext)): Likewise.
3856         * config/ia64/t-glibc (LIB2ADDEH): Remove.
3857         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
3858         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
3859         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
3860         ../libgcc/config/ia64.
3861         * config/ia64/t-hpux (LIB2ADDEH): Remove.
3862         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
3863         * config/ia64/t-vms (LIB2ADDEH): Remove.
3864         * config/ia64/vms.h (UNW_IVMS_MODE,
3865         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
3866         * config/picochip/t-picochip (LIB2ADDEH): Remove.
3867         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
3868         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
3869         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
3870         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
3871         $(srcdir)/../libgcc to refer to unwinder sources.
3872         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
3873         * config/t-darwin (LIB2ADDEH): Remove.
3874         * config/t-freebsd (LIB2ADDEH): Remove.
3875         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
3876         * config/t-libunwind-elf: Move to ../libgcc/config.
3877         * config/t-linux (LIB2ADDEH): Remove.
3878         * config/t-sol2 (LIB2ADDEH): Remove.
3879         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
3880         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
3881
3882 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
3883
3884         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
3885
3886         * doc/invoke.texi: Document core-avx-i.
3887
3888 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3889
3890         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
3891
3892 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
3893
3894         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
3895         result of multiple results reduction when extracting the final
3896         value using scalar code.
3897
3898 2011-08-05  Richard Guenther  <rguenther@suse.de>
3899
3900         PR tree-optimization/49984
3901         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
3902
3903 2011-08-05  Richard Guenther  <rguenther@suse.de>
3904
3905         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
3906         return true for constant integer ranges.
3907         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
3908         BIT_IOR_EXPR handling.
3909
3910 2011-08-04  Kai Tietz  <ktietz@redhat.com>
3911
3912         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
3913         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
3914
3915 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
3916
3917         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
3918         pattern def statement, and its access macro.
3919         (NUM_PATTERNS): Set to 5.
3920         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
3921         pattern def statement.
3922         (vect_transform_loop): Likewise.
3923         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
3924         function vect_recog_over_widening_pattern ().
3925         (vect_operation_fits_smaller_type): New function.
3926         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
3927         Likewise.
3928         (vect_pattern_recog_1): Move the code that marks pattern
3929         statements to vect_mark_pattern_stmts (), and call it.  Update
3930         documentation.
3931         * tree-vect-stmts.c (vect_supportable_shift): New function.
3932         (vect_analyze_stmt): Handle pattern def statement.
3933         (new_stmt_vec_info): Initialize pattern def statement.
3934
3935 2011-08-04  Richard Henderson  <rth@redhat.com>
3936
3937         PR target/49964
3938         * config/i386/i386.c (ix86_expand_call): Don't create nested
3939         PARALLELs for TARGET_VZEROUPPER.
3940         (ix86_split_call_vzeroupper): Fix extraction of the original call.
3941         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
3942         recognize nested PARALLELs.
3943         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
3944         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
3945         *sibcall_value_pop_vzeroupper): Likewise.
3946
3947 2011-08-04  Richard Henderson  <rth@redhat.com>
3948
3949         PR middle-end/49968
3950         * calls.c (expand_call): Use fixup_args_size_notes for
3951         emit_stack_restore.
3952         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
3953         in non-standard modes.
3954
3955 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
3956
3957         * gcc.c (self_spec): New variable.
3958         (static_specs): Add self_spec.
3959         (main): Call do_self_spec on "self_spec" specs after reading
3960         user specs files.  Move compare_debug handling right after that.
3961
3962 2011-08-04  Richard Guenther  <rguenther@suse.de>
3963
3964         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
3965         (value_range_nonnegative_p): New function.
3966         (ssa_name_nonnegative_p): Use it.
3967         (value_range_constant_singleton): New function.
3968         (op_with_constant_singleton_value_range): Use it.
3969         (extract_range_from_binary_expr_1): New function, split out from ...
3970         (extract_range_from_binary_expr): ... this.  Remove fallback
3971         constant folding done here.
3972
3973 2011-08-04  Richard Guenther  <rguenther@suse.de>
3974
3975         PR tree-optimization/49806
3976         * tree-vrp.c (op_with_boolean_value_range_p): New function.
3977         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
3978         a new statement for a final conversion to bool.
3979
3980 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
3981
3982         * gengtype-state.c: Include "bconfig.h" if
3983         GENERATOR_FILE is defined, "config.h" otherwise.
3984         * gengtype.c: Likewise.
3985         * gengtype-lex.l: Likewise.
3986         * gengtype-parse.c: Likewise.
3987         * Makefile.in (gengtype-lex.o-warn): New variable.
3988         (plugin_resourcesdir): Likewise.
3989         (plugin_bindir): Likewise.
3990         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
3991         (MOSTLYCLEANFILES): Add gengtype$(exeext).
3992         (native): Depend on gengtype$(exeext) is $enable_plugin
3993         is set to "yes".
3994         (gtype.state): Depend on s-gtype. Use temporary file.
3995         (gengtype-lex.o): New rule.
3996         (gengtype-parse.o): Likewise.
3997         (gengtype-state.o): Likewise.
3998         (gengtype$(exeext)): Likewise.
3999         (install-gengtype): Likewise.
4000         (gengtype.o): Likewise.
4001         (build/gengtype.o): Depend on version.h.
4002         (build/gengtype-state): Depend on double-int.h, version.h,
4003         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
4004         (install-plugin): Depend on install-gengtype.
4005
4006 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
4007
4008         PR middle-end/49905
4009         * tree.h (init_attributes): New prototype.
4010         * attribs.c (init_attributes): No longer static.
4011
4012 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4013
4014         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
4015         maybe_suffix.
4016
4017 2011-08-03   David Li  <davidxl@google.com>
4018
4019         * tree-optimize.c (execute_fixup_cfg): Fix up entry
4020         outgoing edge counts after inlining.
4021
4022 2011-08-03   David Li  <davidxl@google.com>
4023
4024         * profile.c (compute_branch_probabilities): Compute
4025         function frequency after profile annotation.
4026
4027 2011-08-04  Alan Modra  <amodra@gmail.com>
4028
4029         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
4030         use_backchain_to_restore_sp initialisation.
4031         (rs6000_legitimate_offset_address_p): Simplify offset test.
4032
4033 2011-08-03  Richard Henderson  <rth@redhat.com>
4034
4035         * config/spu/spu.md: Use define_c_enum instead of define_constants.
4036         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
4037         (UNSPECV_NOP): New.
4038
4039 2011-08-03  Richard Henderson  <rth@redhat.com>
4040
4041         PR target/34888
4042         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
4043
4044 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
4045
4046         PR tree-optimization/49948
4047         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
4048
4049 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
4050
4051         * config/m32c/m32c.c (class_sizes): Remove.
4052         (reduce_class): Change arguments and return type to reg_class_t.
4053         Change type cc var to HARD_REG_SET. Change type best var to
4054         reg_class_t. Change type best_size var to unsigned int. Remove
4055         initialization class_sizes var. Use reg_class_size array instead
4056         of class_sizes. Use reg_class_contents array instead
4057         of class_contents.
4058
4059 2011-08-03  Richard Guenther  <rguenther@suse.de>
4060
4061         PR middle-end/49958
4062         * fold-const.c (fold_binary_loc): Only associate
4063         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
4064         overflow wraps.
4065
4066 2011-08-03  Alan Modra  <amodra@gmail.com>
4067
4068         PR rtl-optimization/49941
4069         * jump.c (mark_jump_label): Comment.
4070         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
4071         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
4072         (mark_used_flags): Don't mark RETURN.
4073
4074 2011-08-03  Richard Guenther  <rguenther@suse.de>
4075
4076         PR tree-optimization/49938
4077         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
4078         deal with a POLYNOMIAL_CHREC.
4079
4080 2011-08-03  Revital Eres  <revital.eres@linaro.org>
4081
4082         * modulo-sched.c (calculate_stage_count,
4083         calculate_must_precede_follow, get_sched_window,
4084         try_scheduling_node_in_cycle, remove_node_from_ps): Add
4085         declaration.
4086         (update_node_sched_params, set_must_precede_follow, optimize_sc):
4087         New functions.
4088         (reset_sched_times): Call update_node_sched_params.
4089         (sms_schedule): Call optimize_sc.
4090         (get_sched_window): Change function arguments.
4091         (sms_schedule_by_order): Update call to get_sched_window.
4092         Call set_must_precede_follow.
4093         (calculate_stage_count): Add function argument.
4094
4095 2011-08-02  Richard Henderson  <rth@redhat.com>
4096
4097         PR target/49864
4098         PR target/49879
4099         * reg-notes.def (REG_ARGS_SIZE): New.
4100         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
4101         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
4102         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
4103         different stack levels.
4104         * combine-stack-adj.c (adjust_frame_related_expr): Remove.
4105         (maybe_move_args_size_note): New.
4106         (combine_stack_adjustments_for_block): Use it.
4107         * combine.c (distribute_notes): Place REG_ARGS_SIZE.
4108         * dwarf2cfi.c (dw_cfi_row_struct): Remove args_size member.
4109         (dw_trace_info): Add beg_true_args_size, end_true_args_size,
4110         beg_delay_args_size, end_delay_args_size, eh_head, args_size_undefined.
4111         (cur_cfa): New.
4112         (queued_args_size): Remove.
4113         (add_cfi_args_size): Assert size is non-negative.
4114         (stack_adjust_offset, dwarf2out_args_size): Remove.
4115         (dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust): Remove.
4116         (notice_args_size, notice_eh_throw): New.
4117         (dwarf2out_frame_debug_def_cfa): Use cur_cfa.
4118         (dwarf2out_frame_debug_adjust_cfa): Likewise.
4119         (dwarf2out_frame_debug_cfa_offset): Likewise.
4120         (dwarf2out_frame_debug_expr): Likewise.  Don't stack_adjust_offset.
4121         (dwarf2out_frame_debug): Don't handle non-frame-related-p insns.
4122         (change_cfi_row): Don't emit args_size.
4123         (maybe_record_trace_start_abnormal): Split out from ...
4124         (maybe_record_trace_start): Here.  Set args_size_undefined.
4125         (create_trace_edges): Update to match.
4126         (scan_trace): Handle REG_ARGS_SIZE.
4127         (connect_traces): Connect args_size between EH insns.
4128         * emit-rtl.c (try_split): Handle REG_ARGS_SIZE.
4129         * explow.c (suppress_reg_args_size): New.
4130         (adjust_stack_1): Split out from ...
4131         (adjust_stack): ... here.
4132         (anti_adjust_stack): Use it.
4133         (allocate_dynamic_stack_space): Suppress REG_ARGS_SIZE.
4134         * expr.c (mem_autoinc_base): New.
4135         (fixup_args_size_notes): New.
4136         (emit_single_push_insn_1): Rename from emit_single_push_insn.
4137         (emit_single_push_insn): New.  Generate REG_ARGS_SIZE.
4138         * recog.c (peep2_attempt): Handle REG_ARGS_SIZE.
4139         * reload1.c (reload_as_needed): Likewise.
4140         * rtl.h (fixup_args_size_notes): Declare.
4141
4142 2011-08-02  Paolo Carlini  <paolo.carlini@oracle.com>
4143
4144         PR bootstrap/49914
4145         * fold-const.c (fold_plusminus_mult_expr): Use abs_hwi instead
4146         of abs.
4147         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
4148         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
4149
4150 2011-08-02  Richard Henderson  <rth@redhat.com>
4151
4152         * config/h8300/h8300.c (push, pop): Return the insn.
4153         (h8300_swap_into_er6): Generate correct unwind info.
4154         (h8300_swap_out_of_er6): Likewise.
4155         * dwarf2cfi.c (def_cfa_1): Clear cfa_cfi if we no longer have a
4156         complex cfa expression.
4157         (dwarf2out_frame_debug_def_cfa): Allow (plus (mem) (const_int)) too.
4158
4159 2011-08-02  H.J. Lu  <hongjiu.lu@intel.com>
4160
4161         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
4162
4163 2011-08-02  Richard Henderson  <rth@redhat.com>
4164
4165         PR target/49878
4166         * config/h8300/h8300.c (h8300_move_ok): New.
4167         * config/h8300/h8300-protos.h: Declare it.
4168         * config/h8300/h8300.md (P): New mode iterator.
4169         (*movqi_h8300, *movqi_h8300hs, movqi): Use h8300_move_ok.
4170         (*movqi_h8sx, *movhi_h8300, *movhi_h8300hs, movhi): Likewise.
4171         (movsi, *movsi_h8300, *movsi_h8300hs): Likewise.
4172         (*pushqi1_h8300): Rename from pushqi1_h8300; use PRE_MODIFY.
4173         (*pushqi1_h8300hs_<P>): Macroize from pushqi1_h8300hs_advanced
4174         and pushqi1_h8300hs_normal; use PRE_MODIFY and
4175         register_no_sp_elim_operand.
4176         (*pushhi1_h8300hs_<P>): Similarly.
4177         (pushqi1, pushhi1, pushhi1_h8300): Remove.
4178         * config/h8300/predicates.md (register_no_sp_elim_operand): New.
4179
4180 2011-08-02  Richard Henderson  <rth@redhat.com>
4181
4182         PR target/49881
4183         * config/avr/avr.md (push<MPUSH>1): Don't constrain the operand.
4184
4185 2011-08-02  Jakub Jelinek  <jakub@redhat.com>
4186
4187         * c-parser.c (enum c_parser_prec): New enum, moved from within
4188         c_parser_binary_expression.
4189         (c_parser_binary_expression): Add PREC argument.  Stop parsing
4190         if operator has lower or equal precedence than PREC.
4191         (c_parser_conditional_expression, c_parser_omp_for_loop): Adjust
4192         callers.
4193         (c_parser_omp_atomic): Handle parsing OpenMP 3.1 atomics.
4194         Adjust c_finish_omp_atomic caller.
4195         (c_parser_omp_taskyield): New function.
4196         (c_parser_pragma): Handle PRAGMA_OMP_TASKYIELD.
4197         (c_parser_omp_clause_name): Handle final and mergeable clauses.
4198         (c_parser_omp_clause_final, c_parser_omp_clause_mergeable): New
4199         functions.
4200         (c_parser_omp_all_clauses): Handle PRAGMA_OMP_CLAUSE_FINAL
4201         and PRAGMA_OMP_CLAUSE_MERGEABLE.
4202         (OMP_TASK_CLAUSE_MASK): Allow final and mergeable clauses.
4203         (c_parser_omp_clause_reduction): Handle min and max.
4204         * c-typeck.c (c_finish_omp_clauses): Don't complain about
4205         const qualified predetermined vars in firstprivate clause.
4206         andle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
4207         Handle MIN_EXPR and MAX_EXPR.
4208         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FINAL
4209         and OMP_CLAUSE_MERGEABLE.
4210         (dump_generic_node): Handle OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD
4211         and OMP_ATOMIC_CAPTURE_NEW.
4212         * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FINAL and
4213         OMP_CLAUSE_MERGEABLE.
4214         (omp_clause_code_name): Likewise.
4215         (walk_tree_1): Handle OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
4216         * tree.h (enum omp_clause_code): Add OMP_CLAUSE_FINAL
4217         and OMP_CLAUSE_MERGEABLE.
4218         (OMP_CLAUSE_FINAL_EXPR): Define.
4219         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FINAL and
4220         OMP_CLAUSE_MERGEABLE.
4221         (expand_task_call): Likewise.
4222         (expand_omp_atomic_load, expand_omp_atomic_store): New functions.
4223         (expand_omp_atomic_fetch_op): Handle cases where old or new
4224         value is needed afterwards.
4225         (expand_omp_atomic): Call expand_omp_atomic_load resp.
4226         expand_omp_atomic_store.
4227         * gimplify.c (gimplify_omp_atomic, gimplify_expr): Handle
4228         OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD and OMP_ATOMIC_CAPTURE_NEW.
4229         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
4230         OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
4231         * tree-nested.c (convert_nonlocal_omp_clauses,
4232         convert_local_omp_clauses): Likewise.
4233         * tree.def (OMP_ATOMIC_READ, OMP_ATOMIC_CAPTURE_OLD,
4234         OMP_ATOMIC_CAPTURE_NEW): New.
4235         * gimple.h (GF_OMP_ATOMIC_NEED_VALUE): New.
4236         (gimple_omp_atomic_need_value_p, gimple_omp_atomic_set_need_value):
4237         New inlines.
4238         * omp-builtins.def (BUILT_IN_GOMP_TASKYIELD): New builtin.
4239         * doc/generic.texi: Mention OMP_CLAUSE_COLLAPSE,
4240         OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL and OMP_CLAUSE_MERGEABLE.
4241
4242 2011-08-02  Kai Tietz  <ktietz@redhat.com>
4243
4244         * gimple.c (canonicalize_cond_expr_cond): Handle cast from
4245         boolean-type.
4246         (ssa_forward_propagate_and_combine): Interprete result of
4247         forward_propagate_comparison.
4248         * gcc/gimple-fold.c (fold_gimple_assign): Add canonicalization for
4249         boolean-typed operands for comparisons.
4250
4251 2011-08-02  Georg-Johann Lay  <avr@gjlay.de>
4252
4253         * config/avr/libgcc.S: Gather related function in the
4254         same input section.
4255         (__mulqihi3, __mulqihi3, __divmodqi4, __divmodhi4, __udivmodsi4,
4256         __divmodsi4): Use XCALL/XJMP instead of rcall/rjmp for external
4257         references.
4258         (__udivmodqi4, __divmodqi4, __udivmodhi4, __divmodhi4,
4259         __udivmodsi4, __divmodsi4, __prologue_saves__,
4260         __epilogue_restores__, _exit, __tablejump2__, __tablejump__,
4261         __do_copy_data, __do_clear_bss, __do_global_ctors,
4262         __do_global_dtors, __tablejump_elpm__): Enclose in DEFUN/ENDF.
4263
4264 2011-08-02  Uros Bizjak  <ubizjak@gmail.com>
4265
4266         PR target/47766
4267         * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value.
4268         (stack_protect_test): The pattern compares ptr_mode value.
4269
4270 2011-08-02  Alan Modra  <amodra@gmail.com>
4271
4272         * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE
4273         note for save_LR_around_toc_setup sequence.
4274
4275 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
4276
4277         * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long.
4278
4279 2011-08-01  Sebastian Pop  <sebastian.pop@amd.com>
4280             Joseph Myers  <joseph@codesourcery.com>
4281
4282         * Makefile.in (hwint.o): Depend on DIAGNOSTIC_CORE_H.
4283         * hwint.c: Include diagnostic-core.h.
4284         (abs_hwi): New.
4285         (gcd): Moved here...
4286         (pos_mul_hwi): New.
4287         (mul_hwi): New.
4288         (least_common_multiple): Moved here...
4289         * hwint.h (gcd): ... from here.
4290         (least_common_multiple): ... from here.
4291         (HOST_WIDE_INT_MIN): New.
4292         (HOST_WIDE_INT_MAX): New.
4293         (abs_hwi): Declared.
4294         (gcd): Declared.
4295         (pos_mul_hwi): Declared.
4296         (mul_hwi): Declared.
4297         (least_common_multiple): Declared.
4298         * omega.c (check_pos_mul): Removed.
4299         (check_mul): Removed.
4300         (omega_solve_geq): Use pos_mul_hwi instead of check_pos_mul and
4301         mul_hwi instead of check_mul.
4302
4303 2011-08-01  Richard Henderson  <rth@redhat.com>
4304
4305         PR target/49881
4306         * config/avr/avr.h (PUSH_ROUNDING): New.
4307         * config/avr/avr.md (pushqi1): Rename from *pushqi.
4308         (*pushhi, *pushsi, *pushsf): Remove.
4309         (MPUSH): New mode iterator.
4310         (push<MPUSH>1): New expander.
4311
4312 2011-08-01  Anatoly Sokolov  <aesok@post.ru>
4313
4314         * config/mmix/mmix.h (PREFERRED_RELOAD_CLASS,
4315         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
4316         * config/mmix/mmix-protos.h (mmix_preferred_reload_class,
4317         mmix_preferred_output_reload_class): Remove.
4318         * config/mmix/mmix.c (mmix_preferred_reload_class,
4319         mmix_preferred_output_reload_class): Make static. Change rclass
4320         argument and return type to reg_class_t.
4321         (TARGET_PREFERRED_RELOAD_CLASS,
4322         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
4323
4324 2011-08-01  Joern Rennecke  <joern.rennecke@embecosm.com>
4325
4326         * mode-switching.c (optimize_mode_switching): Fix bug in MODE_AFTER
4327         handling.
4328
4329 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
4330
4331         PR target/47766
4332         * config/i386/i386.md (PTR): New.
4333         (stack_protect_set: Check TARGET_LP64 instead of TARGET_64BIT.
4334         (stack_protect_test): Likewise.
4335         (stack_protect_set_<mode>): Replace ":P" with ":PTR".
4336         (stack_tls_protect_set_<mode>): Likewise.
4337         (stack_tls_protect_test_<mode>): Likewise.
4338
4339 2011-08-01  Uros Bizjak  <ubizjak@gmail.com>
4340
4341         PR target/49927
4342         * config/i386/i386.c (ix86_address_subreg_operand): New.
4343         (ix86_decompose_address): Use ix86_address_subreg_operand.
4344         (ix86_legitimate_address_p): Do not assert that subregs satisfy
4345         register_no_elim_operand in DImode.
4346
4347 2011-08-01  Ira Rosen  <ira.rosen@linaro.org>
4348
4349         PR tree-optimization/49926
4350         * tree-vect-loop.c (vect_is_slp_reduction): Check that a statement
4351         in a chain doesn't have uses both inside and outside the loop.
4352
4353 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
4354
4355         * config/avr/avr.h (mcu_type_s): Add errata_skip field.
4356         * config/avr/avr-devices.c (avr_mcu_types): Use it.
4357         * config/avr/avr-mcus.def (AVR_MCU): Use it.
4358         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it to builtin
4359         define __AVR_ERRATA_SKIP__ and __AVR_ERRATA_SKIP_JMP_CALL__.
4360         * config/avr/libgcc.S (__mulshisi3, __ffshi2, __fmulsu_exit):
4361         Use __AVR_ERRATA_SKIP_JMP_CALL__ instead of __AVR_HAVE_JMP_CALL__
4362         to detect if XJMP must not be skipped.
4363
4364 2011-08-02  Alan Modra  <amodra@gmail.com>
4365
4366         * config/rs6000/rs6000-protos.h (rs6000_save_toc_in_prologue_p):
4367         Delete.
4368         * config/rs6000/rs6000.c (rs6000_save_toc_in_prologue_p): Make static.
4369         (rs6000_emit_prologue): Don't prematurely return when
4370         TARGET_SINGLE_PIC_BASE.  Don't emit eh_frame info in
4371         save_toc_in_prologue case.
4372         (rs6000_call_indirect_aix): Only disallow save_toc_in_prologue for
4373         calls_alloca.
4374
4375 2011-08-01  Georg-Johann Lay  <avr@gjlay.de>
4376
4377         * config/avr/avr-devices.c: Delete SVN property svn:executable.
4378         * config/avr/predicates.md: Ditto.
4379         * config/avr/driver-avr.c: Ditto.
4380         * config/avr/genopt.sh: Set SVN property svn:executable to *.
4381
4382 2011-08-01  H.J. Lu  <hongjiu.lu@intel.com>
4383
4384         * calls.c (emit_library_call_value_1): Declare size only if
4385         BLOCK_REG_PADDING is defined.
4386
4387 2011-08-01  Kirill Yukhin  <kirill.yukhin@intel.com>
4388
4389         PR target/49547
4390         * config.gcc (i[34567]86-*-*): Replace abmintrin.h with lzcntintrin.h.
4391         (x86_64-*-*): Likewise.
4392         * config/i386/i386.opt (mlzcnt): New.
4393         * config/i386/abmintrin.h: File removed.
4394         (__lzcnt_u16, __lzcnt, __lzcnt_u64): Moved to ...
4395         * config/i386/lzcntintrin.h: ... here.  New file.
4396         (__lzcnt): Rename to ...
4397         (__lzcnt32): ... this.
4398         * config/i386/bmiintrin.h (head): Update copyright year.
4399         (__lzcnt_u16): Removed.
4400         (__lzcnt_u32): Likewise.
4401         (__lzcnt_u64): Likewise.
4402         * config/i386/x86intrin.h: Include lzcntintrin.h when __LZCNT__
4403         is defined, remove abmintrin.h.
4404         * config/i386/cpuid.h (bit_LZCNT): New.
4405         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
4406         LZCNT feature.
4407         * config/i386/i386-c.c (ix86_target_macros_internal): Define
4408         __LZCNT__ if needed.
4409         * config/i386/i386.c (ix86_target_string): New option -mlzcnt.
4410         (ix86_option_override_internal): Handle LZCNT option.
4411         (ix86_valid_target_attribute_inner_p): Likewise.
4412         (struct builtin_description bdesc_args) <IX86_BUILTIN_CLZS>: Update.
4413         * config/i386/i386.h (TARGET_LZCNT): New.
4414         (CLZ_DEFINED_VALUE_AT_ZERO): Update.
4415         * config/i386/i386.md (clz<mode>2): Update insn constraint.
4416         (clz<mode>2_lzcnt): Likewise.
4417         * doc/invoke.texi: Mention -mlzcnt option.
4418         * doc/extend.texi: Likewise.
4419
4420 2011-08-01  Julian Brown  <julian@codesourcery.com>
4421
4422         * configure.ac (fixed-point): Add ARM support.
4423         * configure: Regenerate.
4424         * config/arm/arm.c (arm_fixed_mode_set): New struct.
4425         (arm_set_fixed_optab_libfunc): New.
4426         (arm_set_fixed_conv_libfunc): New.
4427         (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
4428         ARM-specific names.
4429         (aapcs_libcall_value): Return sub-word-size fixed-point libcall
4430         return values in SImode.
4431         (arm_return_in_msb): Return fixed-point types in the msb.
4432         (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
4433         upwards.
4434         (arm_scalar_mode_supported_p): Support fixed-point modes.
4435         (arm_vector_mode_supported_p): Support vector fixed-point modes.
4436         * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
4437         (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
4438         (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
4439         (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
4440         * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
4441         New mode iterators.
4442         (qaddsub_suf): New mode attribute.
4443         * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
4444         vector modes.
4445         * config/arm/predicates.md (sat_shift_operator): New predicate.
4446         * config/arm/arm-fixed.md: New.
4447         * config/arm/arm.md: Include arm-fixed.md.
4448         * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
4449
4450 2011-08-01  Julian Brown  <julian@codesourcery.com>
4451
4452         * calls.c (emit_library_call_value_1): Support padding for libcall
4453         arguments and return values.
4454         * config/arm/arm.c (arm_pad_arg_upward): Pad half-float values
4455         downwards in big-endian mode.
4456
4457 2011-08-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4458
4459         PR debug/49887
4460         * config/sol2.c (solaris_code_end): Rename to solaris_file_end.
4461         * config/sol2-protos.h: Likewise.
4462         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Don't call
4463         solaris_code_end.
4464         * config/i386/sol2.h [!USE_GAS] (TARGET_ASM_FILE_END): Redefine.
4465         * config/sparc/sparc.c (sparc_file_end) [TARGET_SOLARIS]: Call
4466         solaris_file_end.
4467         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Remove.
4468
4469 2011-08-01  Julian Brown  <julian@codesourcery.com>
4470
4471         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
4472
4473 2011-08-01  Julian Brown  <julian@codesourcery.com>
4474
4475         * final.c (output_addr_const): Print fixed-point constants as
4476         decimal not hex.
4477
4478 2011-08-01  Richard Guenther  <rguenther@suse.de>
4479
4480         * stor-layout.c (initialize_sizetypes): Properly sign-extend
4481         bitsiztype TYPE_MAX_VALUE.
4482
4483 2011-08-01  Julian Brown  <julian@codesourcery.com>
4484
4485         * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
4486         comparison helpers.
4487
4488 2011-07-31  Richard Henderson  <rth@redhat.com>
4489
4490         * config/h8300/crti.asm: Add flags to .section directive.
4491         * config/h8300/crtn.asm: Likewise.
4492
4493 2011-07-31  Richard Henderson  <rth@redhat.com>
4494
4495         * stor-layout.c (initialize_sizetypes): Handle unsigned short.
4496         * tree.c (build_common_tree_nodes): Likewise.
4497
4498 2011-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
4499
4500         PR target/49880
4501         * config/sh/sh.md (udivsi3_i1): Enable for TARGET_DIVIDE_CALL_DIV1.
4502         (divsi3_i1): Likewise.
4503
4504 2011-07-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4505
4506         PR tree-optimization/49749
4507         * tree-ssa-reassoc.c (get_rank): New forward declaration.
4508         (PHI_LOOP_BIAS): New macro.
4509         (phi_rank): New function.
4510         (loop_carried_phi): Likewise.
4511         (propagate_rank): Likewise.
4512         (get_rank): Add calls to phi_rank and propagate_rank.
4513
4514 2011-07-31  H.J. Lu  <hongjiu.lu@intel.com>
4515
4516         * config/i386/x86-64.h (SIZE_TYPE): Check TARGET_LP64 instead
4517         of TARGET_64BIT.
4518         (PTRDIFF_TYPE): Likewise.
4519
4520 2011-07-31  Uros Bizjak  <ubizjak@gmail.com>
4521
4522         PR target/49920
4523         * config/i386/i386.md (strset): Do not expand strset_singleop
4524         when %eax or $edi are fixed.
4525         (*strsetdi_rex_1): Disable when %eax or %edi are fixed.
4526         (*strsetsi_1): Ditto.
4527         (*strsethi_1): Ditto.
4528         (*strsetqi_1): Ditto.
4529         (*rep_stosdi_rex64): Disable when %eax, %ecx or %edi are fixed.
4530         (*rep_stossi): Ditto.
4531         (*rep_stosqi): Ditto.
4532         (*strlenqi_1): Ditto.
4533         (cmpstrnsi): Also fail when %ecx is fixed.
4534         (*cmpstrnqi_nz_1): Disable when %ecx, %esi or %edi are fixed.
4535         (*cmpstrnqi_1): Ditto.
4536         (*strmovdi_rex_1): Disable when %esi or %edi are fixed.
4537         (*strmovsi_1): Ditto.
4538         (*strmovhi_1): Ditto.
4539         (*strmovqi_1): Ditto.
4540         (*rep_movdi_rex64): Disable when %ecx, %esi or %edi are fixed.
4541         (*rep_movsi): Ditto.
4542         (*rep_movqi): Ditto.
4543
4544 2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
4545
4546         PR target/47908
4547         * config/m68k/m68k.c (m68k_override_options_after_change): New function.
4548         Disable instruction scheduling for non-ColdFire targets.
4549         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
4550
4551 2011-07-31  Revital Eres  <revital.eres@linaro.org>
4552
4553         * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
4554         of anti-dep edge from a branch.
4555         (add_cross_iteration_register_deps): Create anti-dep edge from
4556         a branch.
4557
4558 2011-07-31  Revital Eres  <revital.eres@linaro.org>
4559
4560         * modulo-sched.c: Change comment.
4561         (reset_sched_times): Fix print message.
4562         (print_partial_schedule): Add print info.
4563
4564 2011-07-31  Tom de Vries  <tom@codesourcery.com>
4565
4566         PR middle-end/43513
4567         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Use max of
4568         get_object_alignment and TYPE_ALIGN.
4569
4570 2011-07-30  Tom de Vries  <tom@codesourcery.com>
4571
4572         PR middle-end/43513
4573         * tree-ssa-dce.c (ref_may_be_aliased): Add assert.
4574         (propagate_necessity): Handle WITH_SIZE_EXPR call arg.
4575
4576 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4577
4578         * config/mips/driver-native.c [__sgi__]: Include <invent.h>,
4579         <sys/sbd.h>.
4580         (cpu_types): New array.
4581         (cputype): New function.
4582         (host_detect_local_cpu): Only define buf, f if !__sgi__.
4583         Use scaninvent instead of /proc/cpuinfo if __sgi__.
4584         * config.host: Also use driver-native.o, mips/x-native on
4585         mips-sgi-irix*.
4586         * config/mips/iris6.h [__mips__] (host_detect_local_cpu): Declare.
4587         (EXTRA_SPEC_FUNCTIONS, MARCH_MTUNE_NATIVE_SPECS): Define.
4588         (DRIVER_SELF_SPECS): Add MARCH_MTUNE_NATIVE_SPECS.
4589
4590 2011-07-29  Jakub Jelinek  <jakub@redhat.com>
4591
4592         PR middle-end/49897
4593         PR middle-end/49898
4594         * omp-low.c (use_pointer_for_field): If disallowing copy-in/out
4595         in nested parallel and outer is a gimple_reg, mark it as addressable
4596         and set its bit in task_shared_vars bitmap too.
4597
4598 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
4599
4600         * config/i386/predicates.md (tp_or_register_operand): Remove predicate.
4601
4602 2011-07-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4603
4604         * config/alpha/driver-alpha.c (IMPLVER_EV4_FAMILY,
4605         IMPLVER_EV5_FAMILY, IMPLVER_EV6_FAMILY, IMPLVER_EV7_FAMILY): Define.
4606         (AMASK_BWX, AMASK_FIX, AMASK_CIX, AMASK_MVI, AMASK_PRECISE,
4607         AMASK_LOCKPFTCHOK): Define.
4608         (host_detect_local_cpu): Remove buf, f, cpu_names.
4609         Define cpu_types, implver, amask.
4610         Use __builtin_alpha_implver, __builtin_alpha_amask to determine
4611         native CPU.
4612         * config.host: Also use driver-alpha.o, alpha/x-alpha on
4613         alpha*-dec-osf*.
4614         * config/alpha/osf5.h [__alpha__ || __alpha]
4615         (host_detect_local_cpu): Declare.
4616         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS)
4617         (DRIVER_SELF_SPECS): Define.
4618
4619 2011-07-29  Uros Bizjak  <ubizjak@gmail.com>
4620
4621         PR target/47715
4622         * config/i386/i386.md (*load_tp_x32): New.
4623         (*load_tp_x32_zext): Ditto.
4624         (*add_tp_x32): Ditto.
4625         (*add_tp_x32_zext): Ditto.
4626         (*load_tp_<mode>): Disable for TARGET_X32 targets.
4627         (*add_tp_<mode>): Ditto.
4628         * config/i386/i386.c (get_thread_pointer): Load thread pointer in
4629         ptr_mode and convert to Pmode if needed.
4630
4631 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
4632
4633         PR target/49687
4634         * config/avr/avr.md (mulsi3, *mulsi3, mulu<mode>si3,
4635         muls<mode>si3, mulohisi3, mulhisi3, umulhisi3, usmulhisi3,
4636         *<any_extend:extend_prefix><any_extend2:extend_prefix>mul<QIHI:mode><QIHI2:mode>si3):
4637         Add X to register footprint: Clobber r26/r27.
4638
4639 2011-07-29  Richard Guenther  <rguenther@suse.de>
4640
4641         * builtins.c (fold_builtin_signbit): Build the comparison
4642         with a proper type.
4643
4644 2011-07-29  Richard Guenther  <rguenther@suse.de>
4645
4646         PR tree-optimization/49893
4647         * tree-predcom.c (suitable_reference_p): Volatile references
4648         are not suitable.
4649
4650 2011-07-29  Georg-Johann Lay  <avr@gjlay.de>
4651
4652         PR target/49313
4653         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
4654         (__ctzsi2): Result for 0 may be undefined.
4655         (__ctzhi2): Result for 0 may be undefined.
4656         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
4657         (__popcountsi2): Ditto. And don't clobber r26.
4658         (__popcountdi2): Ditto. And don't clobber r27.
4659         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
4660         (parityhi2): New expand.
4661         (paritysi2): New expand.
4662         (popcounthi2): New expand.
4663         (popcountsi2): New expand.
4664         (clzhi2): New expand.
4665         (clzsi2): New expand.
4666         (ctzhi2): New expand.
4667         (ctzsi2): New expand.
4668         (ffshi2): New expand.
4669         (ffssi2): New expand.
4670         (copysignsf3): New insn.
4671         (bswapsi2): New expand.
4672         (*parityhi2.libgcc): New insn.
4673         (*parityqihi2.libgcc): New insn.
4674         (*paritysihi2.libgcc): New insn.
4675         (*popcounthi2.libgcc): New insn.
4676         (*popcountsi2.libgcc): New insn.
4677         (*popcountqi2.libgcc): New insn.
4678         (*popcountqihi2.libgcc): New insn-and-split.
4679         (*clzhi2.libgcc): New insn.
4680         (*clzsihi2.libgcc): New insn.
4681         (*ctzhi2.libgcc): New insn.
4682         (*ctzsihi2.libgcc): New insn.
4683         (*ffshi2.libgcc): New insn.
4684         (*ffssihi2.libgcc): New insn.
4685         (*bswapsi2.libgcc): New insn.
4686
4687 2011-07-29  Richard Guenther  <rguenther@suse.de>
4688
4689         * tree-vrp.c (get_value_range): Only set parameter default
4690         definitions to varying, leave others at undefined.
4691         (extract_range_from_binary_expr): Fix undefined handling.
4692         (vrp_visit_phi_node): Handle merged undefined state.
4693
4694 2011-07-29  Wei Guozhi  <carrot@google.com>
4695
4696         PR rtl-optimization/49799
4697         * combine.c (make_compound_operation): Check if the bit field is valid
4698         before change it to bit field extraction.
4699
4700 2011-07-29  Bernd Schmidt  <bernds@codesourcery.com>
4701
4702         PR rtl-optimization/49891
4703         * cfgrtl.c (force_nonfallthru_and_redirect): Set JUMP_LABEL for
4704         newly created returnjumps.
4705
4706 2011-07-28  DJ Delorie  <dj@redhat.com>
4707
4708         * expr.c (expand_expr_addr_expr_1): Detect a user request for a
4709         local frame in a naked function, and produce a suitable error for
4710         that specific case.
4711
4712         * config/m32c/m32c.c (m32c_secondary_reload_class): Allow PSI
4713         registers to be reloaded in HI classes when the target is HI.
4714
4715 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
4716
4717         * graphite-clast-to-gimple.c: Replace v1, v2, lb, ub with
4718         bound_one, bound_two.
4719
4720 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
4721
4722         PR middle-end/48648
4723         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Handle
4724         CLAST assignments.
4725         (translate_clast): Same.
4726         (translate_clast_assignment): New.
4727
4728 2011-07-28  Sebastian Pop  <sebastian.pop@amd.com>
4729
4730         PR tree-optimization/49876
4731         * sese.c (rename_uses): Do not return false on gloog_error: set
4732         the new_expr to integer_zero_node and continue code generation.
4733         (graphite_copy_stmts_from_block): Remove early exit on gloog_error.
4734
4735 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
4736
4737         PR debug/49846
4738         * var-tracking.c (prepare_call_arguments): For non-MODE_INT stack
4739         arguments also check if they aren't initialized with a MODE_INT
4740         mode of the same size.
4741
4742 2011-07-28  Aldy Hernandez  <aldyh@redhat.com>
4743
4744         * expr.c (get_bit_range): Handle *MEM_REF's.
4745
4746 2011-07-28  Bernd Schmidt  <bernds@codesourcery.com>
4747
4748         * rtlanal.c (tablejump_p): False for returns.
4749         * reorg.c (first_active_target_insn): New static function.
4750         (find_end_label): Set JUMP_LABEL for a new returnjump.
4751         (optimize_skip, get_jump_flags, rare_destination,
4752         mostly_true_jump, get_branch_condition,
4753         steal_delay_list_from_target, own_thread_p,
4754         fill_simple_delay_slots, follow_jumps, fill_slots_from_thread,
4755         fill_eager_delay_slots, relax_delay_slots, make_return_insns,
4756         dbr_schedule): Adjust to handle ret_rtx in JUMP_LABELs.
4757         * jump.c (delete_related_insns): Likewise.
4758         (jump_to_label_p): New function.
4759         (redirect_target): New static function.
4760         (redirect_exp_1): Use it.  Adjust to handle ret_rtx in JUMP_LABELS.
4761         (redirect_jump_1): Assert that the new label is nonnull.
4762         (redirect_jump): Likewise.
4763         (redirect_jump_2): Check for ANY_RETURN_P rather than NULL labels.
4764         * ifcvt.c (find_if_case_1): Take care when redirecting jumps to the
4765         exit block.
4766         (dead_or_predicable): Change NEW_DEST arg to DEST_EDGE.  All callers
4767         changed.  Ensure that the right label is passed to redirect_jump.
4768         * function.c (emit_return_into_block,
4769         thread_prologue_and_epilogue_insns): Ensure new returnjumps have
4770         ret_rtx in their JUMP_LABEL.
4771         * print-rtl.c (print_rtx): Handle ret_rtx in a JUMP_LABEL.
4772         * emit-rtl.c (skip_consecutive_labels): Allow the caller to
4773         pass ret_rtx as label.
4774         * cfglayout.c (fixup_reorder_chain): Use
4775         force_nonfallthru_and_redirect rather than force_nonfallthru.
4776         (duplicate_insn_chain): Copy JUMP_LABELs for returns.
4777         * rtl.h (ANY_RETURN_P): New macro.
4778         (jump_to_label_p): Declare.
4779         * resource.c (find_dead_or_set_registers): Handle ret_rtx in
4780         JUMP_LABELs.
4781         (mark_target_live_regs): Likewise.
4782         * basic-block.h (force_nonfallthru_and_redirect): Declare.
4783         * cfgrtl.c (force_nonfallthru_and_redirect): No longer static.
4784         * config/alpha/alpha.c (alpha_tablejump_addr_vec,
4785         alpha_tablejump_best_label): Remove functions.
4786         * config/alpha/alpha-protos.c (alpha_tablejump_addr_vec,
4787         alpha_tablejump_best_label): Remove declarations.
4788         * config/sh/sh.c (barrier_align, split_branches): Adjust for
4789         ret_rtx in JUMP_LABELs.
4790         * config/arm/arm.c (is_jump_table): Likewise.
4791
4792 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
4793
4794         * config/i386/predicates.md (pic_32bit_opreand): Do not define as
4795         special predicate.  Remove explicit mode checks.
4796
4797 2011-07-28  Jakub Jelinek  <jakub@redhat.com>
4798
4799         * dwarf2out.c (resolve_addr): For -gdwarf-2 don't optimize
4800         DW_AT_data_member_location containing just DW_OP_plus_uconst.
4801
4802         PR debug/49871
4803         * dwarf2out.c (size_of_die, value_format, output_die): Use
4804         DW_FORM_udata instead of DW_FORM_data[48] for
4805         dw_val_class_unsigned_const DW_AT_data_member_location for DWARF 3.
4806
4807 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
4808
4809         * config/i386/i386.md (*tls_global_dynamic_64): Update
4810         length attribute.
4811
4812 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
4813
4814         PR target/47715
4815         * config/i386/i386.md (*tls_global_dynamic_64): Remove mode from
4816         tls_symbolic_operand check.  Update code sequence for TARGET_X32.
4817         (tls_global_dynamic_64): Remove mode from tls_symbolic_operand check.
4818         (tls_dynamic_gnu2_64): Ditto.
4819         (*tls_dynamic_gnu2_lea_64): Ditto.
4820         (*tls_dynamic_gnu2_call_64): Ditto.
4821         (*tls_dynamic_gnu2_combine_64): Ditto.
4822
4823 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
4824
4825         * config.gcc: Set need_64bit_hwint to yes for x86 targets.
4826
4827 2011-07-28  H.J. Lu  <hongjiu.lu@intel.com>
4828
4829         PR target/47364
4830         * config/i386/i386.md (strlen<mode>): Replace SWI48x with P.
4831
4832 2011-07-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
4833
4834         * config/arm/vfp.md ("*movdf_vfp"): Handle the VFP constraints
4835         before the core constraints. Adjust attributes.
4836         ("*thumb2_movdf_vfp"): Likewise.
4837
4838 2011-07-28  Kai Tietz  <ktietz@redhat.com>
4839
4840         * tree-vrp.c (simplify_stmt_using_ranges): Remove TRUTH_NOT_EXPR case.
4841         (simplify_truth_ops_using_ranges): Likewise.
4842         (build_assert_expr_for): Likewise.
4843         (build_assert_expr_for_1): Remove TRUTH_NOT_EXPR case
4844         and handle BIT_NOT_EXPR for truth-operation.
4845
4846 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
4847
4848         PR target/49313
4849         Undo r176835 from trunk
4850         2011-07-27  Georg-Johann Lay
4851
4852 2011-07-28  Georg-Johann Lay  <avr@gjlay.de>
4853
4854         PR target/49687
4855         * config/avr/t-avr (LIB1ASMFUNCS): Remove _xmulhisi3_exit.
4856         Add _muluhisi3, _mulshisi3, _usmulhisi3.
4857         * config/avr/libgcc.S (__mulsi3): Rewrite.
4858         (__mulhisi3): Rewrite.
4859         (__umulhisi3): Rewrite.
4860         (__usmulhisi3): New.
4861         (__muluhisi3): New.
4862         (__mulshisi3): New.
4863         (__mulohisi3): New.
4864         (__mulqi3, __mulqihi3, __umulqihi3, __mulhi3): Use DEFUN/ENDF to
4865         declare.
4866         * config/avr/predicates.md (pseudo_register_operand): Rewrite.
4867         (pseudo_register_or_const_int_operand): New.
4868         (combine_pseudo_register_operand): New.
4869         (u16_operand): New.
4870         (s16_operand): New.
4871         (o16_operand): New.
4872         * config/avr/avr.c (avr_rtx_costs): Handle costs for mult:SI.
4873         * config/avr/avr.md (QIHI, QIHI2): New mode iterators.
4874         (any_extend, any_extend2): New code iterators.
4875         (extend_prefix): New code attribute.
4876         (mulsi3): Rewrite. Turn insn to expander.
4877         (mulhisi3): Ditto.
4878         (umulhisi3): Ditto.
4879         (usmulhisi3): New expander.
4880         (*mulsi3): New insn-and-split.
4881         (mulu<mode>si3): New insn-and-split.
4882         (muls<mode>si3): New insn-and-split.
4883         (mulohisi3): New insn-and-split.
4884         (*uumulqihisi3, *uumulhiqisi3, *uumulhihisi3, *uumulqiqisi3,
4885         *usmulqihisi3, *usmulhiqisi3, *usmulhihisi3, *usmulqiqisi3,
4886         *sumulqihisi3, *sumulhiqisi3, *sumulhihisi3, *sumulqiqisi3,
4887         *ssmulqihisi3, *ssmulhiqisi3, *ssmulhihisi3, *ssmulqiqisi3): New
4888         insn-and-split.
4889         (*mulsi3_call): Rewrite.
4890         (*mulhisi3_call): Rewrite.
4891         (*umulhisi3_call): Rewrite.
4892         (*usmulhisi3_call): New insn.
4893         (*muluhisi3_call): New insn.
4894         (*mulshisi3_call): New insn.
4895         (*mulohisi3_call): New insn.
4896         (extendqihi2): Use combine_pseudo_register_operand as predicate
4897         for operand 1.
4898         (extendqisi2): Ditto.
4899         (zero_extendqihi2): Ditto.
4900         (zero_extendqisi2): Ditto.
4901         (zero_extendhisi2): Ditto.
4902         (extendhisi2): Ditto. Don't early-clobber operand 0.
4903
4904 2011-07-28  Uros Bizjak  <ubizjak@gmail.com>
4905
4906         * config/i386/i386.c (add->lea splitter): Add SWI mode to PLUS RTX.
4907
4908 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
4909
4910         PR tree-optimization/49471
4911         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned
4912         iv only when the largest type is unsigned.  Do not call
4913         lang_hooks.types.type_for_size.
4914
4915 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
4916
4917         PR middle-end/45450
4918         * graphite-poly.c (apply_poly_transforms): Disable legality check
4919         after an openscop read.
4920
4921 2011-07-27  Sebastian Pop  <sebastian.pop@amd.com>
4922
4923         PR middle-end/47691
4924         * graphite-clast-to-gimple.c (translate_clast_user): Update use of
4925         copy_bb_and_scalar_dependences.
4926         * sese.c (rename_uses): Do not call gcc_assert.  Set gloog_error.
4927         (graphite_copy_stmts_from_block): Update call to rename_uses.
4928         (copy_bb_and_scalar_dependences): Update call to
4929         graphite_copy_stmts_from_block.
4930         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
4931
4932 2011-07-27  Georg-Johann Lay  <avr@gjlay.de>
4933
4934         PR target/49313
4935         * config/avr/libgcc.S (__ffshi2): Don't skip 2-word instruction.
4936         (__ctzsi2): Result for 0 may be undefined.
4937         (__ctzhi2): Result for 0 may be undefined.
4938         (__popcounthi2): Don't clobber r30. Use __popcounthi2_tail.
4939         (__popcountsi2): Ditto. And don't clobber r26.
4940         (__popcountdi2): Ditto. And don't clobber r27.
4941         * config/avr/avr.md (UNSPEC_COPYSIGN): New c_enum.
4942         (parityhi2): New expand.
4943         (paritysi2): New expand.
4944         (popcounthi2): New expand.
4945         (popcountsi2): New expand.
4946         (clzhi2): New expand.
4947         (clzsi2): New expand.
4948         (ctzhi2): New expand.
4949         (ctzsi2): New expand.
4950         (ffshi2): New expand.
4951         (ffssi2): New expand.
4952         (copysignsf3): New insn.
4953         (bswapsi2): New expand.
4954         (*parityhi2.libgcc): New insn.
4955         (*parityqihi2.libgcc): New insn.
4956         (*paritysihi2.libgcc): New insn.
4957         (*popcounthi2.libgcc): New insn.
4958         (*popcountsi2.libgcc): New insn.
4959         (*popcountqi2.libgcc): New insn.
4960         (*popcountqihi2.libgcc): New insn-and-split.
4961         (*clzhi2.libgcc): New insn.
4962         (*clzsihi2.libgcc): New insn.
4963         (*ctzhi2.libgcc): New insn.
4964         (*ctzsihi2.libgcc): New insn.
4965         (*ffshi2.libgcc): New insn.
4966         (*ffssihi2.libgcc): New insn.
4967         (*bswapsi2.libgcc): New insn.
4968
4969 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
4970
4971         * config/i386/i386.c (ix86_expand_move): Do not explicitly check
4972         the mode of symbolic_opreand RTXes.
4973
4974 2011-07-27  Uros Bizjak  <ubizjak@gmail.com>
4975
4976         * config/i386/predicates.md (x86_64_movabs_operand): Return false
4977         for pic_32bit_operand RTXes.
4978         * config/i386/i386.c (ix86_expand_move): Check x86_64_movabs_operand
4979         in DImode.
4980
4981 2011-07-27  Kai Tietz  <ktietz@redhat.com>
4982
4983         * config/i386/i386.c (ix86_option_override_internal): Allow -mabi
4984         for 32-bit, too.
4985         (ix86_handle_abi_attribute): Allow function attributes
4986         ms_abi/sysv_abi in 32-bit mode, too.
4987         * doc/extend.texi: Adjust attribute documentation.
4988
4989         * gimple-fold.c (or_comparisons_1): Remove TRUTH_AND/OR
4990         expression handling.
4991         (and_var_with_comparison_1): Likewise.
4992
4993 2011-07-27  Aldy Hernandez  <aldyh@redhat.com>
4994
4995         * params.h (ALLOW_STORE_DATA_RACES): New.
4996         * params.def (PARAM_ALLOW_STORE_DATA_RACES): New.
4997         * Makefile.in (expr.o): Depend on PARAMS_H.
4998         * machmode.h (get_best_mode): Add argument.
4999         * fold-const.c (optimize_bit_field_compare): Add argument to
5000         get_best_mode.
5001         (fold_truthop): Same.
5002         * ifcvt.c (noce_emit_move_insn): Add argument to store_bit_field.
5003         * expr.c (emit_group_store): Same.
5004         (copy_blkmode_from_reg): Same.
5005         (write_complex_part): Same.
5006         (optimize_bitfield_assignment_op): Add argument.
5007         Add argument to get_best_mode.
5008         (get_bit_range): New.
5009         (expand_assignment): Calculate maxbits and pass it down accordingly.
5010         (store_field): New argument.
5011         (expand_expr_real_2): New argument to store_field.  Include params.h.
5012         * expr.h (store_bit_field): New argument.
5013         * stor-layout.c (get_best_mode): Restrict mode expansion by taking
5014         into account maxbits.
5015         * calls.c (store_unaligned_arguments_into_pseudos): New argument
5016         to store_bit_field.
5017         * expmed.c (store_bit_field_1): New argument.  Use it.
5018         (store_bit_field): Same.
5019         (store_fixed_bit_field): Same.
5020         (store_split_bit_field): Same.
5021         (extract_bit_field_1): Pass new argument to get_best_mode.
5022         (extract_bit_field): Same.
5023         * stmt.c (store_bit_field): Pass new argument to store_bit_field.
5024         * doc/invoke.texi: Document parameter allow-store-data-races.
5025
5026 2011-07-27  Jakub Jelinek  <jakub@redhat.com>
5027
5028         * dwarf2out.c (gen_producer_string): Ignore also -fverbose-asm option.
5029
5030 2011-07-27  Kai Tietz  <ktietz@redhat.com>
5031
5032         * tree-vrp.c (extract_range_from_binary_expr): Remove
5033         TRUTH-binary cases and add new bitwise-cases.
5034         (extract_range_from_assignment): Likewise.
5035         (register_edge_assert_for_1): Likeiwise.
5036         (register_edge_assert_for): Likewise.
5037         (simplify_truth_ops_using_ranges): Likewise.
5038         (simplify_stmt_using_ranges): Likewise.
5039
5040 2011-07-26  H.J. Lu  <hongjiu.lu@intel.com>
5041
5042         PR target/47372
5043         * config/i386/i386.c (ix86_delegitimize_address): Call
5044         simplify_gen_subreg for PIC with mode of x only if modes of
5045         x and orig_x are different.
5046
5047 2011-07-26  Jakub Jelinek  <jakub@redhat.com>
5048
5049         * dwarf2out.c (output_macinfo_op): Ensure fd->filename points
5050         to GC allocated copy of the string.
5051         (dwarf2out_finish): Emit .debug_macinfo or .debug_macro sections
5052         before .debug_line, not after it.
5053
5054 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
5055
5056         PR middle-end/47046
5057         * tree-chrec.h (evolution_function_is_affine_p): Recursively call
5058         evolution_function_is_affine_p on CHREC_RIGHT.
5059
5060 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
5061
5062         * tree-data-ref.c (max_stmt_executions_tree): Do not call
5063         lang_hooks.types.type_for_size.
5064
5065 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
5066
5067         PR middle-end/47653
5068         * graphite-scop-detection.c (graphite_can_represent_loop): Discard
5069         loops using wrapping semantics.
5070
5071 2011-07-26  Sebastian Pop  <sebastian.pop@amd.com>
5072
5073         PR middle-end/48805
5074         * tree-scalar-evolution.c (instantiate_scev_r): Return
5075         chrec_dont_know for ADDR_EXPR.
5076
5077 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
5078             H.J. Lu  <hongjiu.lu@intel.com>
5079
5080         PR target/47369
5081         PR target/49853
5082         * config/i386/i386.c (ix86_expand_move): Call convert_to_mode
5083         if legitimize_tls_address returned operand in wrong mode. Allow
5084         SImode and DImode symbolic operand for PIC.  Call convert_to_mode
5085         if legitimize_pic_address returned operand in wrong mode.
5086
5087 2011-07-26  Martin Jambor  <mjambor@suse.cz>
5088
5089         * tree-sra.c (tree_non_mode_aligned_mem_p): Strip conversions and
5090         return false for invariants.
5091
5092 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
5093
5094         * config/i386/i386.md (add->lea splitter): Implement using SWI
5095         mode iterator.  Change operand 2 predicate to <nonmemory_operand>.
5096         (add->lea zext splitter): Change operand 2 predicate to
5097         x86_64_nonmemory_operand.
5098
5099 2011-07-26  Richard Guenther  <rguenther@suse.de>
5100
5101         * predict.c (maybe_hot_frequency_p): Make sure a zero entry-block
5102         frequency makes everything hot.
5103
5104 2011-07-26  Richard Guenther  <rguenther@suse.de>
5105
5106         PR tree-optimization/49840
5107         * tree-vrp.c (range_fits_type_p): Properly handle full
5108         double-int precision.
5109
5110 2011-07-26  Martin Jambor  <mjambor@suse.cz>
5111
5112         PR bootstrap/49786
5113         * ipa-cp.c (update_profiling_info): Avoid overflow when updating
5114         counts.
5115         (update_specialized_profile): Likewise.
5116
5117 2011-07-26  Uros Bizjak  <ubizjak@gmail.com>
5118             H.J. Lu  <hongjiu.lu@intel.com>
5119
5120         PR target/47381
5121         PR target/49832
5122         PR target/49833
5123         * config/i386/i386.md (i): Change SImode attribute to "e".
5124         (g): Change SImode attribute to "rme".
5125         (di): Change SImode attribute to "nF".
5126         (general_operand): Change SImode attribute to x86_64_general_operand.
5127         (general_szext_operand): Change SImode attribute to
5128         x86_64_szext_general_operand.
5129         (immediate_operand): Change SImode attribute to
5130         x86_64_immediate_operand.
5131         (nonmemory_operand): Change SImode attribute to
5132         x86_64_nonmemory_operand.
5133         (*movdi_internal_rex64): Remove mode from pic_32bit_operand check.
5134         (*movsi_internal): Ditto.  Use "e" constraint in alternative 2.
5135         (*lea_1): Use SWI48 mode iterator.
5136         (*lea_1_zext): New insn pattern.
5137         (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2.
5138         (*bt<mode>): Ditto.
5139         (*add<mode>1): Use x86_64_general_operand predicate for operand 2.
5140         Update operand constraints.
5141         (addsi_1_zext): Ditto.
5142         (*add<mode>2): Ditto.
5143         (*addsi_3_zext): Ditto.
5144         (*subsi_1_zext): Ditto.
5145         (*subsi_2_zext): Ditto.
5146         (*subsi_3_zext): Ditto.
5147         (*addsi3_carry_zext): Ditto.
5148         (*<plusminus_insn>si3_zext_cc_overflow): Ditto.
5149         (*mulsi3_1_zext): Ditto.
5150         (*andsi_1): Ditto.
5151         (*andsi_1_zext): Ditto.
5152         (*andsi_2_zext): Ditto.
5153         (*<any_or:code>si_1_zext): Ditto.
5154         (*<any_or:code>si_2_zext): Ditto.
5155         (*test<mode>_1): Use <general_operand> predicate for operand 1.
5156         (*and<mode>_2): Ditto.
5157         (mov<mode>cc): Use  <general_operand> predicate for operands 1 and 2.
5158         (add->lea splitter): Check operand modes in insn constraint.  Extend
5159         operands less than SImode wide to SImode.
5160         (add->lea zext splitter): Do not extend input operands to DImode.
5161         (*lea_general_1): Handle only QImode and HImode operands.
5162         (*lea_general_2): Ditto.
5163         (*lea_general_3): Ditto.
5164         (*lea_general_1_zext): Remove.
5165         (*lea_general_2_zext): Ditto.
5166         (*lea_general_3_zext): Ditto.
5167         (*lea_general_4): Check operand modes in insn constraint.  Extend
5168         operands less than SImode wide to SImode.
5169         (ashift->lea splitter): Ditto.
5170         * config/i386/i386.c (ix86_print_operand_address): Print address
5171         registers with 'q' modifier on 64bit targets.
5172         * config/i386/predicates.md (pic_32bit_opreand): Define as special
5173         predicate.  Reject non-SI and non-DI modes.
5174
5175 2011-07-25  Andrew Pinski  <apinski@cavium.com>
5176
5177         PR tree-opt/49671
5178         * tree-inline.c (remap_gimple_op_r): Copy TREE_THIS_VOLATILE and
5179         TREE_THIS_NOTRAP into the inner most MEM_REF.
5180         Always copy TREE_THIS_VOLATILE.
5181         * tree-sra.c (ptr_parm_has_direct_uses): Check that the lhs, rhs and
5182         arguments are not volatile references.
5183
5184 2011-07-25  Richard Henderson  <rth@redhat.com>
5185
5186         * insn-notes.def (NOTE_INSN_CFA_RESTORE_STATE): Remove.
5187         * final.c (final_scan_insn): Don't test for it.
5188         (rest_of_clean_state): Likewise.
5189
5190 2011-07-25  Richard Henderson  <rth@redhat.com>
5191
5192         PR debug/49841
5193         * config/rs6000/rs6000.c (rs6000_frame_related): Return the insn.
5194         (emit_frame_save): Likewise.
5195         (rs6000_emit_prologue): Move the FRAME_RELATED_EXPR from the save
5196         insn onto a dummy blockage insn after the join label.
5197
5198 2011-07-25  Richard Henderson  <rth@redhat.com>
5199
5200         * dwarf2cfi.c (dw_trace_info): Add ID member.
5201         (get_trace_index): Remove.  Change users to use ID member.
5202         (before_next_cfi_note): New.
5203         (connect_traces): Remove unreachable traces before the main loop.
5204         Look across one trace and generate remember/restore_state if needed.
5205
5206 2011-07-25  Richard Henderson  <rth@redhat.com>
5207
5208         * dwarf2cfi.c (dump_cfi_row, debug_cfi_row): New.
5209
5210 2011-07-25  Joern Rennecke  <joern.rennecke@embecosm.com>
5211
5212         * genattr.c (write_upcase, gen_attr <enum definition writing>):
5213         Move to ...
5214         * genattr-common.c ... here.
5215         (main): Call gen_attr.
5216         * optc-gen.awk: Make generated program include insn-attr-common.h .
5217         * Makefile.in (oprions.o): Depend on insn-attr-common.h
5218
5219 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
5220
5221         * config/m32c/m32c.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
5222         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
5223         * config/m32c/m32c-protos.h (m32c_print_operand_punct_valid_p,
5224         m32c_print_operand, m32c_print_operand_address): Remove.
5225         * config/m32c/m32c.c (m32c_print_operand_punct_valid_p): Make static.
5226         Change return type to bool. Change argument type to bool.
5227         (m32c_print_operand, m32c_print_operand_address): Make static.
5228         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
5229         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
5230
5231 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5232
5233         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
5234         attributes): Document mmap.
5235
5236 2011-07-25  Anatoly Sokolov  <aesok@post.ru>
5237
5238         * config/mmix/mmix.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
5239         PRINT_OPERAND_PUNCT_VALID_P): Remove macro.
5240         * config/mmix/mmix-protos.h (mmix_print_operand_punct_valid_p,
5241         mmix_print_operand, mmix_print_operand_address): Remove.
5242         * config/mmix/mmix.c (mmix_print_operand_punct_valid_p): Make static.
5243         Change return type to bool. Change argument type to bool.
5244         (mmix_print_operand, mmix_print_operand_address): Make static.
5245         (mmix_intval, mmix_output_condition): Change 'x' argument type
5246         to const_rtx.
5247         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS,
5248         TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
5249
5250 2011-07-25  Georg-Johann Lay  <avr@gjlay.de>
5251
5252         PR target/39386
5253         * config/avr/avr.c (out_shift_with_cnt): Use tmp_reg as
5254         shift counter for x << x and x >> x shifts.
5255
5256 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5257
5258         PR target/47124
5259         * config.gcc: Reject *-*-solaris2 configuration.
5260
5261 2011-07-25  Richard Sandiford  <richard.sandiford@linaro.org>
5262
5263         PR tree-optimization/49809
5264         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Use
5265         gimple_get_lhs instead of gimple_assign_lhs.
5266
5267 2011-07-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5268
5269         * system.h [__cplusplus]: Wrap C function declarations in extern "C".
5270
5271 2011-07-25  Richard Guenther  <rguenther@suse.de>
5272
5273         PR tree-optimization/49822
5274         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
5275         more.  Make sure to preserve stmts with side-effects.  Properly
5276         handle virtual defs, follow a longer def chain.
5277
5278 2011-07-22  Romain Geissler  <romain.geissler@gmail.com>
5279
5280         PR plugins/45348
5281         PR plugins/48425
5282         PR plugins/46577
5283         * Makefile.in: Do not flatten c-family directory when installing
5284         plugin headers.
5285
5286 2011-07-25  Eric Botcazou  <ebotcazou@adacore.com>
5287
5288         * ipa-inline.c (can_inline_edge_p): Look into DECL_STRUCT_FUNCTION of
5289         original nodes if we are dealing with virtual clones.
5290
5291 2011-07-25  Bernd Schmidt  <bernds@codesourcery.com>
5292
5293         * common/config/c6x/c6x-common.c: New file.
5294
5295 2011-07-25  Roman Zhuykov  <zhroma@ispras.ru>
5296
5297         * tree-flow.h (tree_ssa_loop_version): Remove unused declaration.
5298
5299 2011-07-25  Richard Guenther  <rguenther@suse.de>
5300
5301         PR tree-optimization/49715
5302         * tree-vrp.c: Include expr.h and optabs.h.
5303         (range_fits_type_): New function.
5304         (simplify_float_conversion_using_ranges): Likewise.
5305         (simplify_stmt_using_ranges): Call it.
5306         * Makefile.in (tree-vrp.o): Add $(EXPR_H) and $(OPTABS_H) dependencies.
5307         * optabs.c (can_float_p): Export.
5308         * optabs.h (can_float_p): Declare.
5309
5310 2011-07-25  Richard Guenther  <rguenther@suse.de>
5311
5312         * tree-vrp.c (num_vr_values, values_propagated): New global vars.
5313         (get_value_range): For out-of-range SSA names or names created
5314         after propagation return a read-only varying range.
5315         (dump_all_value_ranges): Adjust.
5316         (vrp_initialize): Likewise.
5317         (vrp_finalize): Likewise.
5318
5319 2011-07-24  Richard Henderson  <rth@redhat.com>
5320
5321         PR debug/49831
5322         * dwarf2cfi.c (connect_traces): Allow unvisited traces.  Skip
5323         them entirely.
5324
5325 2011-07-24  Richard Henderson  <rth@redhat.com>
5326
5327         PR debug/49825
5328         * dwarf2cfi.c (dwarf2out_stack_adjust): Move A_O_A test earlier.
5329         (dwarf2out_notice_stack_adjust): Use args_size from call_insn.
5330
5331 2011-07-24  Richard Henderson  <rth@redhat.com>
5332
5333         PR debug/49827
5334         * dwarf2cfi.c (create_trace_edges): Handle sequences properly.
5335
5336 2011-07-24  Richard Henderson  <rth@redhat.com>
5337
5338         * dwarf2cfi.c (maybe_record_trace_start): Add abnormal parameter.
5339         Zero args_size for abnormal edges.  Adjust all callers.
5340
5341 2011-07-24  Richard Henderson  <rth@redhat.com>
5342
5343         PR debug/49825
5344         * dwarf2cfi.c (cfi_row_equal_p): Don't compare args_size.
5345
5346 2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
5347
5348         PR bootstrap/49835
5349         * collect2.c (demangle_flag): Removed.
5350
5351 2011-07-24  Sandra Loosemore  <sandra@codesourcery.com>
5352
5353         * configure.ac (demangler_in_ld): Default to yes.
5354         * configure: Regenerated.
5355         * collect2.c (main): When HAVE_LD_DEMANGLE is defined, don't
5356         mess with COLLECT_NO_DEMANGLE, and just pass --demangle and
5357         --no-demangle options straight through to ld.  When
5358         HAVE_LD_DEMANGLE is not defined, set COLLECT_NO_DEMANGLE in a
5359         way that has the intended effect on Windows.
5360
5361 2011-07-23  Richard Henderson  <rth@redhat.com>
5362
5363         * dwarf2cfi.c: Include basic-block.h.
5364         (dw_label_info): Remove.
5365         (trace_work_list, trace_index): New.
5366         (remember_row, emit_cfa_remember): Remove.
5367         (dw_trace_info_hash, dw_trace_info_eq): New.
5368         (get_trace_index, get_trace_info): New.
5369         (save_point_p): New.
5370         (free_cfi_row): Remove.
5371         (add_cfi): Do not emit DW_CFA_remember_state.
5372         (cfa_row_equal_p): New.
5373         (barrier_args_size): Remove.
5374         (compute_barrier_args_size_1, compute_barrier_args_size): Remove.
5375         (dwarf2out_notice_stack_adjust): Don't compute_barrier_args_size.
5376         (maybe_record_trace_start, create_trace_edges, scan_trace): New.
5377         (dwarf2out_cfi_begin_epilogue): Remove.
5378         (dwarf2out_frame_debug_restore_state): Remove.
5379         (connect_traces, create_pseudo_cfg): New.
5380         (create_cfi_notes, execute_dwarf2_frame): Rewrite using traces.
5381         * Makefile.in (dwarf2cfi.o): Update.
5382
5383 2011-07-23  Richard Henderson  <rth@redhat.com>
5384
5385         * dwarf2cfi.c (dw_trace_info): New.
5386         (dw_label_info): New.
5387         (cie_return_save): New.
5388         (cur_trace): New.
5389         (queued_args_size): Rename from args_size.  Update all users.
5390         (cfa_store, cfa_temp, regs_saved_in_regs): Remove.
5391         (def_cfa_1): Use cur_trace instead of cfa_*.
5392         (dwarf2out_stack_adjust, record_reg_saved_in_reg): Likewise.
5393         (clobbers_queued_reg_save, reg_saved_in): Likewise.
5394         (dwarf2out_frame_debug_expr): Likewise.
5395         (create_cie_data): Split out from ...
5396         (execute_dwarf2_frame): ... here.  Initialize cur_trace.
5397
5398 2011-07-23  Richard Henderson  <rth@redhat.com>
5399
5400         * dwarf2cfi.c (regs_saved_in_regs): Allocate from heap, not gc.
5401         Update all users to match.
5402         (execute_dwarf2_frame): Free reg_saved_in_data.
5403
5404 2011-07-23  Richard Henderson  <rth@redhat.com>
5405
5406         * dwarf2cfi.c (queued_reg_save): Reorder for packing.  Don't GTY.
5407         (queued_reg_saves): Don't GTY.  Change to a VEC.
5408         (queue_reg_save): Update to match.
5409         (dwarf2out_flush_queued_reg_saves): Likewise.
5410         (clobbers_queued_reg_save): Likewise.
5411         (reg_saved_in): Likewise.
5412         (execute_dwarf2_frame): Free queued_reg_saves.
5413
5414 2011-07-23  Richard Henderson  <rth@redhat.com>
5415
5416         * dwarf2cfi.c (dw_cfi_row_ref): Remove.  Update all users.
5417
5418 2011-07-23  Richard Henderson  <rth@redhat.com>
5419
5420         * dwarf2cfi.c (add_cfi_args_size): Split out from...
5421         (dwarf2out_args_size): ... here.
5422         (add_cfi_restore): Split out from ...
5423         (dwarf2out_frame_debug_cfa_restore): ... here.
5424         (def_cfa_0): Split out from ...
5425         (def_cfa_1): ... here.
5426         (cfi_oprnd_equal_p, cfi_equal_p): New.
5427         (change_cfi_row): New.
5428         (add_cfis_to_fde): Set fde->dw_fde_switch_cfi_index.
5429         (create_cfi_notes): Use change_cfi_row at SWITCH_TEXT note.
5430         (output_cfis): Remove.
5431         * dwarf2out.c (output_fde): Simplify output_cfi loop.
5432         (dwarf2out_switch_text_section): Don't call output_cfis.
5433         (dw_val_equal_p, loc_descr_equal_p_1, loc_descr_equal_p): New.
5434         * dwarf2out.h: Update decls.
5435         (enum dw_val_class): Add dw_val_class_none.
5436
5437 2011-07-23  Richard Henderson  <rth@redhat.com>
5438
5439         * dwarf2cfi.c (update_row_reg_save): New.
5440         (dwarf2out_frame_debug_cfa_expression): Use it.
5441         (dwarf2out_frame_debug_cfa_restore): Likewise.
5442         (reg_save): Likewise.  Do not emit DW_CFA_same_value.
5443
5444 2011-07-23  Richard Henderson  <rth@redhat.com>
5445
5446         * dwarf2cfi.c (add_cfi_insn): Rename from cfi_insn.  Update all users.
5447
5448 2011-07-23  Richard Henderson  <rth@redhat.com>
5449
5450         * dwarf2cfi.c (dw_cfi_row, dw_cfi_row_ref): New.
5451         (cie_cfi_row): New.
5452         (new_cfi_row, copy_cfi_row, free_cfi_row): New.
5453         (cfa, old_cfa, cfa_remember, old_cfa_remember, old_args_size): Remove.
5454         (cur_row, remember_row): New.
5455         (def_cfa_1): Use cur_row instead of the old_* variables.
5456         (dwarf2out_frame_debug_restore_state): Similarly.
5457         (dwarf2out_args_size, dwarf2out_notice_stack_adjust): Likewise.
5458         (dwarf2out_frame_debug_def_cfa): Use a local variable instead of cfa.
5459         (dwarf2out_frame_debug_adjust_cfa): Likewise.
5460         (dwarf2out_frame_debug_cfa_offset): Likewise.
5461         (dwarf2out_frame_debug_expr): Likewise.
5462         (execute_dwarf2_frame): Set up cur_row.
5463         * dwarf2out.h (struct cfa_loc): Mark for GTY.
5464
5465 2011-07-23  Richard Henderson  <rth@redhat.com>
5466
5467         * basic-block.h (EDGE_PRESERVE): New.
5468         (EDGE_ALL_FLAGS, EDGE_COMPLEX): Include it.
5469         * bb-reorder.c: Include except.h.
5470         (fix_up_crossing_landing_pad): New.
5471         (find_rarely_executed_basic_blocks_and_crossing_edges): Place
5472         landing pads in the right partition.  Duplicate as necessary.
5473         (partition_hot_cold_basic_blocks): Fix up DF info after
5474         duplicating landing pads.
5475         * cfg.c (dump_edge_info): Add crossing and preserve to bitnames.
5476         * cfgrtl.c (rtl_verify_flow_info_1): Validate that EDGE_CROSSING
5477         is set properly.  Validate that EH edges are not CROSSING.
5478         * except.c (expand_dw2_landing_pad_for_region): Split out from ...
5479         (dw2_build_landing_pads): ... here.
5480         (convert_to_eh_region_ranges): Remove code to fixup crossing
5481         landing pads.
5482         * except.h (expand_dw2_landing_pad_for_region): Declare.
5483         * tree-cfg.c (gimple_can_merge_blocks_p): Don't merge PRESERVE edges.
5484
5485 2011-07-23  Richard Earnshaw  <rearnsha@arm.com>
5486
5487         PR target/49816
5488         * arm.c (aapcs_vfp_allocate_return_reg): Return NULL on failure.
5489
5490 2011-07-22  Jason Merrill  <jason@redhat.com>
5491
5492         * doc/invoke.texi (C++ Dialect Options): Document -Wno-narrowing.
5493
5494 2011-07-22  Richard Henderson  <rth@redhat.com>
5495
5496         * bb-reorder.c (gate_handle_partition_blocks): Honor optimize.
5497
5498 2011-07-22  Richard Henderson  <rth@redhat.com>
5499
5500         * jump.c (maybe_propagate_label_ref): Split out of...
5501         (mark_all_labels): ... here.  Do not attempt label_ref
5502         propagation while in cfglayout mode.
5503
5504 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
5505
5506         * dwarf2out.c (struct macinfo_struct): Change code to unsigned char.
5507         (DEBUG_MACRO_SECTION, DEBUG_MACRO_SECTION_LABEL): Define.
5508         (dwarf_attr_name): Handle DW_AT_GNU_macros.
5509         (dwarf2out_define): If the vector is empty and
5510         lineno is 0, emit a dummy entry first.
5511         (dwarf2out_undef): Likewise.  Remove redundant semicolon.
5512         (htab_macinfo_hash, htab_macinfo_eq, output_macinfo_op,
5513         optimize_macinfo_range): New functions.
5514         (output_macinfo): Use them.  If !dwarf_strict and .debug_str is
5515         mergeable, optimize longer strings using
5516         DW_MACRO_GNU_{define,undef}_indirect and if HAVE_COMDAT_GROUP,
5517         optimize longer sequences of define/undef ops from headers
5518         using DW_MACRO_GNU_transparent_include.  For !dwarf_strict
5519         emit a section headers.
5520         (dwarf2out_init): For !dwarf_strict set debug_macinfo_section
5521         and macinfo_section_label to DEBUG_MACRO_SECTION
5522         resp. DEBUG_MACRO_SECTION_LABEL.
5523         (dwarf2out_finish): For !dwarf_strict emit DW_AT_GNU_macros
5524         instead of DW_AT_macro_info.
5525
5526         PR other/32998
5527         * common.opt (grecord-gcc-switches, gno-record-gcc-switches): New
5528         options.
5529         * dwarf2out.c: Include opts.h.
5530         (dchar_p): New typedef.  Define heap VEC for it.
5531         (producer_string): New variable.
5532         (gen_producer_string): New function.
5533         (gen_compile_unit_die): Use it.
5534         (dwarf2out_finish): Fix up comp_unit_die () DW_AT_producer if needed.
5535         * Makefile.in (dwarf2out.o): Depend on $(OPTS_H).
5536         * doc/invoke.texi: Document -grecord-gcc-switches and
5537         -gno-record-gcc-switches, add a -grecord-gcc-switches reference
5538         to -frecord-gcc-switches description.
5539
5540 2011-07-22  Jason Merrill  <jason@redhat.com>
5541
5542         PR c++/30112
5543         * c-decl.c (c_linkage_bindings): Define.
5544
5545 2011-07-22  Eric Botcazou  <ebotcazou@adacore.com>
5546
5547         PR debug/49815
5548         * var-tracking.c (vt_finalize): Always free windowed_parm_regs.
5549
5550 2011-07-22  H.J. Lu  <hongjiu.lu@intel.com>
5551
5552         * config/i386/i386.c (ix86_option_override_internal): Disallow
5553         MS ABI in x32 mode.
5554         (ix86_init_builtins): Call ix86_init_builtins_va_builtins_abi
5555         only for TARGET_LP64.
5556         (ix86_handle_abi_attribute): Check TARGET_LP64 instead of TARGET_64BIT.
5557
5558 2011-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
5559
5560         * config/rs6000/rs6000.c (rs6000_xcoff_strip_dollar): Rewrite to
5561         avoid warnings when GCC is built with a C++ compiler.
5562
5563 2011-07-22  Martin Jambor  <mjambor@suse.cz>
5564
5565         PR lto/49796
5566         * cgraphunit.c (verify_edge_corresponds_to_fndecl): Return false
5567         if decl node is in another partition, call cgraph_get_node only once.
5568
5569 2011-07-22  Uros Bizjak  <ubizjak@gmail.com>
5570
5571         * config.gcc (x86_64-*-linux*): Set
5572         default_gnu_indirect_function to yes.
5573
5574 2011-07-22  Richard Guenther  <rguenther@suse.de>
5575
5576         PR tree-optimization/45819
5577         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
5578         preserve volatile and notrap flags.
5579
5580 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5581             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5582
5583         PR bootstrap/49794
5584         * configure.ac: Test AM_ICONV with CXX.
5585         * configure: Regenerate.
5586         * config/sol2-c.c (solaris_format_types): Use EXPORTED_CONST.
5587
5588 2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5589
5590         PR bootstrap/49797
5591         * graphite-clast-to-gimple.c (CLOOG_LANGUAGE_C): Provide if missing.
5592         (set_cloog_options): Use it.
5593
5594 2011-07-22  Jakub Jelinek  <jakub@redhat.com>
5595
5596         PR c++/49756
5597         * gcc.c (main): Call stack_limit_increase (64MB).
5598         * toplev.c (toplev_main): Likewise.
5599
5600 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
5601
5602         * config/i386/i386.c (ix86_expand_call): Call copy_to_mode_reg
5603         instead of force_reg.
5604
5605 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
5606
5607         * config/i386/i386.c (ix86_expand_move): Convert to Pmode if
5608         needed and use force_reg after convert.
5609         (ix86_expand_call): Likewise.
5610         (ix86_expand_special_args_builtin): Likewise.
5611         (ix86_expand_builtin): Likewise.
5612
5613 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5614
5615         PR middle-end/47654
5616         PR middle-end/49649
5617         * graphite-clast-to-gimple.c (type_for_clast_term): Pass v1 and v2
5618         in parameter.  Initialize v1 and v2 based on the values returned
5619         by clast_name_to_lb_ub.
5620         (type_for_clast_red): Pass v1 and v2 in parameter, and set their
5621         values.
5622         (type_for_clast_bin): Same.
5623         (type_for_clast_expr): Same.
5624         (type_for_clast_eq): Update calls to type_for_clast_expr.
5625         (type_for_clast_for): Same.
5626         (build_iv_mapping): Same.
5627         * graphite-ppl.h (value_min): New.
5628
5629 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5630
5631         * graphite-clast-to-gimple.c (type_for_interval): Generate signed
5632         types whenever possible.
5633
5634 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5635
5636         * graphite-clast-to-gimple.c (struct clast_name_index): Add lb
5637         and ub fields.
5638         (new_clast_name_index): Add lb and ub parameters.
5639         (free_clast_name_index): New.
5640         (clast_name_to_lb_ub): New.
5641         (save_clast_name_index): Add lb and ub parameters.
5642         (compute_bounds_for_param): New.
5643         (type_for_level): Removed.
5644         (type_for_clast_for): Removed level parameter.  Do not call
5645         type_for_level.
5646         (graphite_create_new_loop): Store the lb and ub for the clast_name
5647         of the iterator of the loop that has been generated.
5648         (graphite_create_new_loop_guard): Remove parameter level.
5649         (create_params_index): Store the lb and ub of each parameter.
5650         (gloog): Use free_clast_name_index.  Pass to create_params_index
5651         the current scop.
5652
5653 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5654
5655         * graphite-clast-to-gimple.c (max_signed_precision_type): Removed.
5656         (max_precision_type): Inline max_signed_precision_type.
5657         (type_for_clast_red): Use max_precision_type.
5658         (type_for_clast_bin): Same.
5659         (type_for_clast_for): Same.
5660
5661 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5662
5663         * graphite-clast-to-gimple.c (gcc_type_for_interval): Renamed
5664         type_for_interval.
5665         (gcc_type_for_value): Renamed type_for_value.
5666         (gcc_type_for_clast_term): Renamed type_for_clast_term.
5667         (gcc_type_for_clast_expr): Renamed type_for_clast_expr.
5668         (gcc_type_for_clast_red): Renamed type_for_clast_red.
5669         (gcc_type_for_clast_bin): Renamed type_for_clast_bin.
5670         (gcc_type_for_clast_eq): Renamed type_for_clast_eq.
5671         (graphite_translate_clast_equation): Update calls.
5672         (compute_type_for_level): Renamed type_for_level.
5673         (gcc_type_for_iv_of_clast_loop): Renamed type_for_clast_for.
5674         (build_iv_mapping): Update calls.
5675         (graphite_create_new_loop_guard): Same.
5676
5677 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5678
5679         * graphite-clast-to-gimple.c (clast_get_body_of_loop): Add fixme
5680         comment.
5681
5682 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5683
5684         * graphite-clast-to-gimple.c (struct ivs_params): New.
5685         (clast_name_to_gcc): Use ivs_params to pass around parameters.
5686         (clast_to_gcc_expression): Same.
5687         (clast_to_gcc_expression_red): Same.
5688         (gcc_type_for_clast_term): Same.
5689         (gcc_type_for_clast_expr): Same.
5690         (gcc_type_for_clast_red): Same.
5691         (gcc_type_for_clast_bin): Same.
5692         (gcc_type_for_clast_eq): Same.
5693         (graphite_translate_clast_equation): Same.
5694         (graphite_create_guard_cond_expr): Same.
5695         (graphite_create_new_guard): Same.
5696         (graphite_create_new_loop): Same.
5697         (build_iv_mapping): Same.
5698         (translate_clast_user): Same.
5699         (graphite_create_new_loop_guard): Same.
5700         (translate_clast): Same.
5701         (translate_clast_for_loop): Same.
5702         (translate_clast_for): Same.
5703         (translate_clast_guard): Same.
5704         (initialize_cloog_names): Fix typo.
5705         (gloog): Initialize an ivs_params struct, pass it to translate_clast.
5706
5707 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5708
5709         * graphite-clast-to-gimple.c (struct clast_name_index): Add level.
5710         (new_clast_name_index): Add level parameter.
5711         (clast_name_to_level): New.
5712         (save_clast_name_index): Add level parameter.
5713         (newivs_to_depth_to_newiv): Removed.
5714         (clast_name_to_gcc): Inlined newivs_to_depth_to_newiv.
5715         (graphite_create_new_loop): Add level parameter.  Pass level to
5716         save_clast_name_index.
5717         (translate_clast_for_loop): Pass level to graphite_create_new_loop.
5718         (create_params_index): Pass level to save_clast_name_index.
5719
5720 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5721
5722         * graphite-clast-to-gimple.c (graphite_create_new_loop): Do not
5723         recompute type, lb, and ub.  Get them from...
5724         (graphite_create_new_loop_guard): ...here.  Pass in parameter
5725         pointers to type, lb, and ub.
5726         (translate_clast_for_loop): Update function calls.
5727         (translate_clast_for): Same.
5728
5729 2011-07-21  Sebastian Pop  <sebastian.pop@amd.com>
5730
5731         * graphite-clast-to-gimple.c (compute_bounds_for_level): Call
5732         psct_dynamic_dim.
5733         (translate_clast_for_loop): Pass loop level to dependency_in_loop_p.
5734         (gcc_type_for_iv_of_clast_loop): Update use of level.
5735         (gloog): Start counting nesting level from 0.
5736         * graphite-clast-to-gimple.h (get_scattering_level): Removed.
5737         * graphite-dependences.c (graphite_carried_dependence_level_k): Call
5738         psct_dynamic_dim on level.
5739
5740 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
5741
5742         * config/i386/i386.c (ix86_legitimize_address): Convert to
5743         Pmode if needed.
5744
5745 2011-07-21  H.J. Lu  <hongjiu.lu@intel.com>
5746
5747         * config/i386/i386.c (function_value_64): Always return pointers
5748         in Pmode.
5749         (ix86_promote_function_mode): New.
5750         (TARGET_PROMOTE_FUNCTION_MODE): Likewise.
5751
5752 2011-07-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5753
5754         PR tree-optimization/49749
5755         * tree-ssa-reassoc.c (get_rank): Fix operand scan conditions and
5756         remove no-longer-used maxrank variable.
5757
5758 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
5759
5760         * config/avr/avr.c (final_prescan_insn): Fix printing of rtx_costs.
5761
5762 2011-07-21  Jason Merrill  <jason@redhat.com>
5763
5764         * system.h (HAVE_DESIGNATED_UNION_INITIALIZERS): New.
5765         * recog.h (struct insn_data_d): Check it instead of
5766         HAVE_DESIGNATED_INITIALIZERS.
5767         * genoutput.c (output_insn_data): Likewise.
5768
5769 2011-07-21  Richard Guenther  <rguenther@suse.de>
5770
5771         PR tree-optimization/49770
5772         * tree-ssa-sccvn.c (valueize_refs_1): Return whether we
5773         valueized any operand.  Renamed from ...
5774         (valueize_refs): ... this.  New wrapper around valueize_refs_1.
5775         (valueize_shared_reference_ops_from_ref): Return whether we
5776         valueized any operand.
5777         (vn_reference_lookup): Only when we valueized any operand
5778         use the valueized reference for alias analysis.  Do not preserve
5779         the original reference tree in this case.
5780
5781 2011-07-21  Uros Bizjak  <ubizjak@gmail.com>
5782
5783         * config/i386/i386.c (ix86_decompose_address): Reject all but
5784         register operands and subregs of DImode hard registers in index.
5785
5786 2011-07-21  Kai Tietz  <ktietz@redhat.com>
5787
5788         * fold-const.c (fold_unary_loc): Preserve indirect
5789         comparison cast to none-boolean type.
5790         * tree-ssa.c (useless_type_conversion_p): Preserve cast
5791         from/to boolean-type.
5792         * gimplify.c (gimple_boolify): Handle boolification of comparisons.
5793         (gimplify_expr): Boolifiy non aggregate-typed comparisons.
5794         * tree-cfg.c (verify_gimple_comparison): Check result
5795         type of comparison expression.
5796         * tree-ssa-forwprop.c (forward_propagate_comparison): Adjust test
5797         of condition result and disallow type-cast sinking into comparison.
5798
5799 2011-07-21  Richard Guenther  <rguenther@suse.de>
5800
5801         * tree-ssa-forwprop.c (combine_conversions): Return whether
5802         we have to run cfg-cleanup.  Properly remove dead stmts.
5803         (ssa_forward_propagate_and_combine): Adjust.
5804
5805 2011-07-21  Richard Sandiford  <richard.sandiford@linaro.org>
5806
5807         * regcprop.c (maybe_mode_change): Check HARD_REGNO_MODE_OK.
5808
5809 2011-07-21  Kai Tietz  <ktietz@redhat.com>
5810
5811         * tree-ssa-propagate.c (substitute_and_fold): Use
5812         do_dce flag to deside, if BB's statements are scanned
5813         in last to first, or first to last order.
5814
5815 2011-07-21  Georg-Johann Lay  <avr@gjlay.de>
5816
5817         * config/avr/avr.c (avr_rtx_costs): Set cost of CONST, LABEL_REF to 0.
5818
5819 2011-07-20  H.J. Lu  <hongjiu.lu@intel.com>
5820             Uros Bizjak  <ubizjak@gmail.com>
5821             Richard Henderson  <rth@redhat.com>
5822
5823         * config/i386/constraints.md (w): New.
5824
5825         * config/i386/i386.c (ix86_output_addr_vec_elt): Check
5826         TARGET_LP64 instead of TARGET_64BIT for ASM_QUAD.
5827
5828         * config/i386/i386.h (CASE_VECTOR_MODE): Check TARGET_LP64
5829         instead of TARGET_64BIT.
5830
5831         * config/i386/i386.md (indirect_jump): Replace
5832         nonimmediate_operand with indirect_branch_operand.
5833         (*indirect_jump): Likewise.  Replace constraint "m" with "w".
5834         (tablejump): Replace nonimmediate_operand with indirect_branch_operand.
5835         Convert operand 0 to Pmode for x32 if not PIC.
5836         (*tablejump_1): Replace nonimmediate_operand with
5837         indirect_branch_operand.  Replace constraint "m" with "w".
5838         (*call_vzeroupper): Replace constraint "m" with "w".
5839         (*call): Likewise.
5840         (*call_rex64_ms_sysv_vzeroupper): Likewise.
5841         (*call_rex64_ms_sysv): Likewise.
5842         (*call_value_vzeroupper): Likewise.
5843         (*call_value): Likewise.
5844         (*call_value_rex64_ms_sysv_vzeroupper): Likewise.
5845         (*call_value_rex64_ms_sysv): Likewise.
5846         (set_got_offset_rex64): Check TARGET_LP64 instead of TARGET_64BIT.
5847
5848         * config/i386/predicates.md (indirect_branch_operand): New.
5849         (call_insn_operand): Support x32.
5850
5851 2011-07-20  Michael Eager  <eager@eagercon.com>
5852
5853         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Default to 12.
5854
5855 2011-07-20  Richard Henderson  <rth@redhat.com>
5856
5857         * cfg.c (dump_bb_info): Dump basic_block->flags.
5858         * cfgrtl.c (print_rtl_with_bb): Use dump_bb_info.
5859
5860 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
5861
5862         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
5863         of DImode hard registers in index.
5864         (ix86_legitimate_address_p): Allow subregs of base and index to span
5865         more than a word.  Assert that subregs of base and index satisfy
5866         register_no_elim_operand predicates.  Reject addresses where
5867         base and index have different modes.
5868
5869 2011-07-20  Robert Millan  <rmh@gnu.org>
5870
5871         * config.gcc (mips*-*-linux*): Remove redundant tm_file entry.
5872
5873 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5874
5875         * bb-reorder.c (fix_crossing_conditional_branches): Fix crash by
5876         removing now-unnecessary assignment.
5877
5878 2011-07-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5879
5880         * emit-rtl.c (set_mem_attributes_minus_bitpos): Restore setting
5881         memory address space to the type's address space.
5882
5883 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
5884
5885         PR target/36467
5886         PR target/49687
5887         * config/avr/avr.md (mulhi3): Use register_or_s9_operand for operand2
5888         and expand appropriately if there is a CONST_INT in operand2.
5889         (usmulqihi3): New insn.
5890         (*sumulqihi3): New insn.
5891         (*osmulqihi3): New insn.
5892         (*oumulqihi3): New insn.
5893         (*muluqihi3.uconst): New insn_and_split.
5894         (*muluqihi3.sconst): New insn_and_split.
5895         (*mulsqihi3.sconst): New insn_and_split.
5896         (*mulsqihi3.uconst): New insn_and_split.
5897         (*mulsqihi3.oconst): New insn_and_split.
5898         (*ashifthi3.signx.const): New insn_and_split.
5899         (*ashifthi3.signx.const7): New insn_and_split.
5900         (*ashifthi3.zerox.const): New insn_and_split.
5901         (mulsqihi3): New insn.
5902         (muluqihi3): New insn.
5903         (muloqihi3): New insn.
5904         * config/avr/predicates.md (const_2_to_7_operand): New.
5905         (const_2_to_6_operand): New.
5906         (u8_operand): New.
5907         (s8_operand): New.
5908         (o8_operand): New.
5909         (s9_operand): New.
5910         (register_or_s9_operand): New.
5911
5912 2011-07-20  Kai Tietz  <ktietz@redhat.com>
5913
5914         * builtins.c (fold_builtin_expect): See through the cast
5915         from truthvalue_type_node to long.
5916
5917 2011-07-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
5918
5919         * config/rs6000/vsx.md (vsx_fma*): Use 4 argument fma instructions
5920         where we can use them from the standard and altivec instruction
5921         sets, instead of always using the 3 operand VSX forms that require
5922         the destination to overlap one of the inputs.
5923         (vsx_fms*): Ditto.
5924         (vsx_fnma*): Ditto.
5925         (vsx_fnms*): Ditto.
5926
5927         * config/rs6000/rs6000.md (fmadf4_fpr): Set fp_type fp_maddsub_d
5928         for DF types.
5929         (fmsdf4_fpr): Ditto.
5930         (nfmadf4_fpr): Ditto.
5931         (nfmsdf4_fpr): Ditto.
5932
5933 2011-07-20  Sandra Loosemore  <sandra@codesourcery.com>
5934
5935         * genrecog.c (make_insn_sequence): Correct position numbering
5936         when filtering out match_scratch and match_dup.
5937
5938 2011-07-20  Richard Guenther  <rguenther@suse.de>
5939
5940         * tree-ssa-forwprop.c (remove_prop_source_from_use): Robustify
5941         against already removed statements.
5942         (forward_propagate_into_comparison): Remove dead defining stmts.
5943         (forward_propagate_into_gimple_cond): Likewise.
5944         (forward_propagate_into_cond): Simplify.
5945         (ssa_forward_propagate_and_combine): Handle changed cfg from
5946         forward_propagate_into_comparison.
5947         * tree-ssa-phiopt.c (conditional_replacement): Use proper
5948         locations for newly built statements.
5949
5950 2011-07-20  Georg-Johann Lay  <avr@gjlay.de>
5951
5952         * config/avr/avr.c (avr_rtx_costs): Set cost of SYMBOL_REF to 0.
5953
5954 2011-07-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5955
5956         * config/s390/s390.c (s390_class_max_nregs): Fix return type.
5957         * config/s390/s390-protos.h (s390_class_max_nregs): Likewise.
5958
5959 2011-07-20  Richard Guenther  <rguenther@suse.de>
5960
5961         PR middle-end/18908
5962         * tree.c (integer_all_onesp): Use TYPE_PRECISION, not mode precision.
5963         * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove bogus
5964         ADDR_EXPR folding.  Canonicalize X ^ ~0 as ~X.
5965
5966 2011-07-20  Vladimir Makarov  <vmakarov@redhat.com>
5967
5968         * config/frv/frv.c (frv_register_move_cost): Define explicitly
5969         costs for subclasses of GR_REGS.
5970
5971 2011-07-20  Uros Bizjak  <ubizjak@gmail.com>
5972
5973         PR target/49780
5974         * config/i386/predicates.md (no_seg_addres_operand): No more special.
5975         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
5976         of DImode hard registers in base.
5977         (ix86_legitimate_address_p): Allow SImode and DImode base and index
5978         registers.
5979
5980 2011-07-20  Richard Guenther  <rguenther@suse.de>
5981
5982         * tree-ssa-structalias.c (new_var_info): Allocate oldsolution lazily.
5983         (unify_nodes): Deal with that.
5984         (solve_graph): Likewise.
5985
5986 2011-07-20  Chung-Lin Tang  <cltang@codesourcery.com>
5987
5988         * config/arm/arm.c (arm_canonicalize_comparison): Add case to
5989         canonicalize left operand from ZERO_EXTEND to AND.
5990
5991 2011-07-20  Anatoly Sokolov  <aesok@post.ru>
5992
5993         * target.def (class_max_nregs): New hook.
5994         * doc/tm.texi.in (TARGET_CLASS_MAX_NREGS): Document.
5995         * doc/tm.texi: Regenerate.
5996         * targhooks.c (default_class_max_nregs): New function.
5997         * targhooks.h (default_class_max_nregs): Declare.
5998         * ira.h (target_ira): Change type x_ira_reg_class_max_nregs and
5999         x_ira_reg_class_min_nregs arrays to unsigned char.
6000         * ira.c (setup_reg_class_nregs): Use TARGET_CLASS_MAX_NREGS target
6001         hook instead of CLASS_MAX_NREGS macro.
6002         * reginfo.c (restore_register_info): Ditto.
6003         * ira-conflicts.c (process_regs_for_copy): Use
6004         ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
6005         Change type rclass and aclass vars to reg_class_t.
6006         * ira-costs.c (record_reg_classes): Use ira_reg_class_max_nregs
6007         array instead of CLASS_MAX_NREGS macro. Change type rclass var to
6008         reg_class_t.
6009         * reload.c (combine_reloads, find_reloads, find_reloads_address_1):
6010         Use ira_reg_class_max_nregs array instead of CLASS_MAX_NREGS macro.
6011
6012         * config/i386/i386.h (CLASS_MAX_NREGS): Remove.
6013         * config/i386/i386.c (ix86_class_max_nregs): New function.
6014         (ix86_register_move_cost): Use TARGET_CLASS_MAX_NREGS target hook
6015         instead of CLASS_MAX_NREGS macro.
6016         (TARGET_CLASS_MAX_NREGS): Define.
6017         * config/avr/avr.h (CLASS_MAX_NREGS): Remove.
6018         * config/avr/avr-protos.h (class_max_nregs): Remove declaration.
6019         * config/avr/avr.c (class_max_nregs): Remove function.
6020         * config/alpha/alpha.h (CLASS_MAX_NREGS): Remove.
6021         * config/spu/spu.h (CLASS_MAX_NREGS): Remove.
6022         * config/mep/mep.h (CLASS_MAX_NREGS): Remove.
6023         * config/m32r/m32r.h (CLASS_MAX_NREGS): Remove.
6024         * config/microblaze/microblaze.h (CLASS_MAX_NREGS): Remove.
6025         * config/xtensa/xtensa.h (CLASS_MAX_NREGS): Remove.
6026         * config/stormy16/stormy16.h (CLASS_MAX_NREGS): Remove.
6027         * config/lm32/lm32.h (CLASS_MAX_NREGS): Remove.
6028         * config/moxie/moxie.h (CLASS_MAX_NREGS): Remove.
6029         * config/iq2000/iq2000.h (CLASS_MAX_NREGS): Remove.
6030         * config/mn10300/mn10300.h (CLASS_MAX_NREGS): Remove.
6031         * config/score/score.h (CLASS_MAX_NREGS): Remove.
6032         * config/vax/vax.h (CLASS_MAX_NREGS): Remove.
6033         * config/h8300/h8300.h (CLASS_MAX_NREGS): Remove.
6034         * config/v850/v850.h (CLASS_MAX_NREGS): Remove.
6035
6036 2011-07-19  Eric Botcazou  <ebotcazou@adacore.com>
6037
6038         * cif-code.def (OVERWRITABLE): Fix typo and move around.
6039         (TARGET_OPTIMIZATION_MISMATCH): Delete.
6040         (EH_PERSONALITY): Fix typo.
6041         (NON_CALL_EXCEPTIONS): Fix message.
6042         (OPTIMIZATION_MISMATCH): Adjust message.
6043         * ipa-inline.c (can_inline_edge_p): Use CIF_OPTIMIZATION_MISMATCH.
6044
6045 2011-07-19  Ian Lance Taylor  <iant@google.com>
6046
6047         * doc/install.texi (Configuration): Document
6048         --enable-build-poststage1-with-cxx.
6049
6050 2011-07-19  Robert Millan  <rmh@gnu.org>
6051
6052         * config/mips/gnu-user.h: Copy from linux.h.  Update comments.
6053         (GLIBC_DYNAMIC_LINKER): Remove.
6054
6055         * config/mips/gnu-user64.h: Copy from linux64.h.  Update comments.
6056         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
6057         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
6058         (BIONIC_DYNAMIC_LINKERN32, GNU_USER_DYNAMIC_LINKERN32): Remove.
6059         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32,
6060         GNU_USER_DYNAMIC_LINKER64 and GNU_USER_LINK_EMULATIONN32.
6061
6062         * config/mips/linux.h: Remove everything except for ...
6063         (GLIBC_DYNAMIC_LINKER): ... this macro.
6064
6065         * config/mips/linux64.h: Remove everything except for ...
6066         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64)
6067         (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32)
6068         (BIONIC_DYNAMIC_LINKERN32): ... these macros.
6069         (GNU_USER_LINK_EMULATION32, GNU_USER_LINK_EMULATION64)
6070         (GNU_USER_LINK_EMULATIONN32): New macros.
6071
6072         * config.gcc (mips64*-*-linux* | mipsisa64*-*-linux* | mips-*-linux*):
6073         Use the new headers.
6074
6075 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
6076
6077         * rtl.h (mem_attrs): Turn offset and size fields into HOST_WIDE_INTs.
6078         Add offset_known_p and size_known_p fields.
6079         (MEM_OFFSET_KNOWN_P): Update accordingly.
6080         (MEM_OFFSET, MEM_SIZE_KNOWN_P, MEM_SIZE): Likewise.
6081         * emit-rtl.c (mem_attrs_htab_hash): Update after mem_attrs changes.
6082         (mem_attrs_eq_p, set_mem_attributes_minus_bitpos, set_mem_offset)
6083         (clear_mem_offset, set_mem_size, clear_mem_size, change_address)
6084         (adjust_address_1, widen_memory_access, set_mem_attrs_for_spill)
6085         (init_emit_regs): Likewise.
6086
6087 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
6088
6089         * doc/rtl.texi (MEM_OFFSET_KNOWN_P): Document.
6090         (MEM_OFFSET): Change from returning an rtx to returning a
6091         HOST_WIDE_INT.
6092         * rtl.h (MEM_OFFSET_KNOWN_P): New macro.
6093         (MEM_OFFSET): Return a HOST_WIDE_INT rather than an rtx.
6094         * emit-rtl.h (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
6095         (clear_mem_offset): Declare.
6096         * alias.c (ao_ref_from_mem): Adjust uses of MEM_OFFSET, using
6097         MEM_OFFSET_KNOWN_P to test whether the offset is known, and
6098         MEM_OFFSET to get a HOST_WIDE_INT offset.
6099         (nonoverlapping_memrefs_p): Likewise.  Adjust calls to...
6100         (adjust_offset_for_component_ref): Take a bool "known_p"
6101         parameter and a HOST_WIDE_INT "offset" parameter.
6102         * builtins.c (get_memory_rtx): As for ao_ref_from_mem.
6103         Adjust calls to set_mem_offset, passing a HOST_WIDE_INT rather
6104         than an rtx.  Use clear_mem_offset to clear the offset.
6105         * cfgcleanup.c (merge_memattrs): Likewise.
6106         * dwarf2out.c (tls_mem_loc_descriptor): Likewise.
6107         * function.c (assign_parm_find_stack_rtl): Likewise.
6108         (assign_parm_setup_stack): Likewise.
6109         * print-rtl.c (print_rtx): Likewise.
6110         * reload.c (find_reloads_subreg_address): Likewise.
6111         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
6112         * var-tracking.c (INT_MEM_OFFSET): Likewise.
6113         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
6114         (get_mem_align_offset): Likewise.
6115         (set_mem_offset): Take a HOST_WIDE_INT rather than an rtx.
6116         (clear_mem_offset): New function.
6117         * config/mips/mips.c (r10k_safe_mem_expr_p): Take a HOST_WIDE_INT
6118         offset rather than an rtx.  Assume both the expressio and offset
6119         are available.
6120         (r10k_needs_protection_p_1): Update accordingly, checking the
6121         expression and offset availability here instead.
6122
6123 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
6124
6125         * doc/rtl.texi (MEM_SIZE_KNOWN_P): Document.
6126         (MEM_SIZE): Change from returning an rtx to returning a HOST_WIDE_INT.
6127         * rtl.h (MEM_SIZE_KNOWN_P): New macro.
6128         (MEM_SIZE): Return a HOST_WIDE_INT rather than an rtx.
6129         * emit-rtl.h (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
6130         (clear_mem_size): Declare.
6131         * emit-rtl.c (set_mem_size): Take a HOST_WIDE_INT rather than an rtx.
6132         (clear_mem_size): New function.
6133         * alias.c (ao_ref_from_mem): Adjust uses of MEM_SIZE, using
6134         MEM_SIZE_KNOWN_P to test whether the size is known, and MEM_SIZE
6135         to get a HOST_WIDE_INT size.  Adjust calls to set_mem_size,
6136         passing a HOST_WIDE_INT rather than an rtx.  Use clear_mem_size
6137         to clear the size.
6138         (nonoverlapping_memrefs_p): Likewise.
6139         * builtins.c (get_memory_rtx, expand_builtin_memcmp): Likewise.
6140         (expand_builtin_init_trampoline): Likewise.
6141         * calls.c (compute_argument_addresses): Likewise.
6142         * cfgcleanup.c (merge_memattrs): Likewise.
6143         * dce.c (find_call_stack_args): Likewise.
6144         * dse.c (record_store, scan_insn): Likewise.
6145         * dwarf2out.c (dw_sra_loc_expr): Likewise.
6146         * expr.c (emit_block_move_hints): Likewise.
6147         * function.c (assign_parm_find_stack_rtl): Likewise.
6148         * print-rtl.c (print_rtx): Likewise.
6149         * reload.c (find_reloads_subreg_address): Likewise.
6150         * rtlanal.c (may_trap_p_1): Likewise.
6151         * var-tracking.c (track_expr_p): Likewise.
6152         * varasm.c (assemble_trampoline_template): Likewise.
6153         * config/arm/arm.c (arm_print_operand): Likewise.
6154         * config/h8300/h8300.c (h8sx_emit_movmd): Likewise.
6155         * config/i386/i386.c (expand_movmem_via_rep_mov): Likewise.
6156         (expand_setmem_via_rep_stos, expand_constant_movmem_prologue)
6157         (expand_constant_setmem_prologue): Likewise.
6158         * config/mips/mips.c (mips_get_unaligned_mem): Likewise.
6159         * config/rs6000/rs6000.c (expand_block_move): Likewise.
6160         (adjacent_mem_locations): Likewise.
6161         * config/s390/s390.c (s390_expand_setmem): Likewise.
6162         (s390_expand_insv): Likewise.
6163         * config/s390/s390.md (*extzv<mode>, *extv<mode>): Likewise.
6164         (*extendqi<mode>2_short_displ): Likewise.
6165         * config/sh/sh.c (expand_block_move): Likewise.
6166         * config/sh/sh.md (extv, extzv): Likewise.
6167
6168 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
6169
6170         * emit-rtl.c (mem_attrs_eq_p): New function, split out from...
6171         (mem_attrs_htab_eq): ...here.
6172         (find_mem_attrs): Replace with...
6173         (set_mem_attrs): ...this function.  Take a mem_attrs structure
6174         rather than individual fields.
6175         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
6176         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
6177         (set_mem_size, change_address, adjust_address_1, offset_address)
6178         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
6179         Update accordingly.
6180
6181 2011-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
6182
6183         * rtl.h (MEM_ALIAS_SET, MEM_EXPR, MEM_OFFSET, MEM_ADDR_SPACE)
6184         (MEM_SIZE, MEM_ALIGN): Redefine in terms of get_mem_attrs.
6185         Provide a dummy definition of MEM_ADDR_SPACE for generators.
6186         (target_rtl): Add x_mode_mem_attrs.
6187         (mode_mem_attrs): New macro.
6188         (get_mem_attrs): New function.
6189         * emit-rtl.c (get_mem_attrs): Rename to...
6190         (find_mem_attrs): ...this.
6191         (set_mem_attributes_minus_bitpos, set_mem_alias_set)
6192         (set_mem_addr_space, set_mem_align, set_mem_expr, set_mem_offset)
6193         (set_mem_size, change_address, adjust_address_1, offset_address)
6194         (widen_memory_access, get_spill_slot_decl, set_mem_attrs_for_spill):
6195         Update accordingly.
6196         (init_emit_regs): Initialize mode_mem_attrs.
6197
6198 2011-07-19  Richard Guenther  <rguenther@suse.de>
6199
6200         * tree-ssa-forwprop.c (lookup_logical_inverted_value): Remove
6201         TRUTH_*_EXPR handling.
6202         * tree-ssa-operands.c (get_expr_operands): Likewise.
6203         * tree-ssa-pre.c (fully_constant_expression): Likewise.
6204         * tree-ssa-uninit.c (use_pred_not_overlap_with_undef_path_pre):
6205         Likewise.
6206         (is_and_or_or): Likewise.
6207         (is_norm_cond_subset_of): Likewise.
6208
6209 2011-07-19  Richard Guenther  <rguenther@suse.de>
6210
6211         * tree.h (fold_build_pointer_plus_loc): New helper function.
6212         (fold_build_pointer_plus_hwi_loc): Likewise.
6213         (fold_build_pointer_plus): Define.
6214         (fold_build_pointer_plus_hwi): Likewise.
6215         * builtins.c (std_gimplify_va_arg_expr): Use fold_build_pointer_plus.
6216         (fold_builtin_memory_op): Likewise.
6217         (fold_builtin_stpcpy): Likewise.
6218         (fold_builtin_memchr): Likewise.
6219         (fold_builtin_strstr): Likewise.
6220         (fold_builtin_strchr): Likewise.
6221         (fold_builtin_strrchr): Likewise.
6222         (fold_builtin_strpbrk): Likewise.
6223         (fold_builtin_strcat): Likewise.
6224         (expand_builtin_memory_chk): Likewise.
6225         (fold_builtin_memory_chk): Likewise.
6226         * c-typeck.c (build_unary_op): Likewise.
6227         * cgraphunit.c (thunk_adjust): Likewise.
6228         * fold-const.c (build_range_check): Likewise.
6229         (fold_binary_loc): Likewise.
6230         * omp-low.c (extract_omp_for_data): Likewise.
6231         (expand_omp_for_generic): Likewise.
6232         (expand_omp_for_static_nochunk): Likewise.
6233         (expand_omp_for_static_chunk): Likewise.
6234         * tree-affine.c (add_elt_to_tree): Likewise.
6235         * tree-data-ref.c (split_constant_offset_1): Likewise.
6236         * tree-loop-distribution.c (generate_memset_zero): Likewise.
6237         * tree-mudflap.c (mf_xform_derefs_1): Likewise.
6238         * tree-predcom.c (ref_at_iteration): Likewise.
6239         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
6240         (add_to_parts): Likewise.
6241         (create_mem_ref): Likewise.
6242         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
6243         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Likewise.
6244         (number_of_iterations_le): Likewise.
6245         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
6246         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
6247         (vect_create_addr_base_for_vector_ref): Likewise.
6248         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Likewise.
6249         (vect_create_cond_for_alias_checks): Likewise.
6250         * tree-vrp.c (extract_range_from_assert): Likewise.
6251         * config/alpha/alpha.c (alpha_va_start): Likewise.
6252         (alpha_gimplify_va_arg_1): Likewise.
6253         * config/i386/i386.c (ix86_va_start): Likewise.
6254         (ix86_gimplify_va_arg): Likewise.
6255         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
6256         * config/mep/mep.c (mep_expand_va_start): Likewise.
6257         (mep_gimplify_va_arg_expr): Likewise.
6258         * config/mips/mips.c (mips_va_start): Likewise.
6259         (mips_gimplify_va_arg_expr): Likewise.
6260         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
6261         * config/rs6000/rs6000.c (rs6000_va_start): Likewise.
6262         (rs6000_gimplify_va_arg): Likewise.
6263         * config/s390/s390.c (s390_va_start): Likewise.
6264         (s390_gimplify_va_arg): Likewise.
6265         * config/sh/sh.c (sh_va_start): Likewise.
6266         (sh_gimplify_va_arg_expr): Likewise.
6267         * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
6268         * config/spu/spu.c (spu_va_start): Likewise.
6269         (spu_gimplify_va_arg_expr): Likewise.
6270         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
6271         Likewise.
6272         (xstormy16_gimplify_va_arg_expr): Likewise.
6273         * config/xtensa/xtensa.c (xtensa_va_start): Likewise.
6274         (xtensa_gimplify_va_arg_expr): Likewise.
6275
6276 2011-07-19  Richard Guenther  <rguenther@suse.de>
6277
6278         * expr.c (expand_expr_real_2): Remove TRUTH_*_EXPR handling.
6279         (expand_expr_real_1): Remove TRUTH_*IF_EXPR and STATEMENT_LIST
6280         handling.
6281
6282         PR middle-end/18908
6283         * expr.c (expand_expr_real_2): Do not unnecessarily truncate the
6284         result of BIT_*_EXPR to bitfield precision.
6285
6286 2011-07-19  Richard Sandiford  <richard.sandiford@linaro.org>
6287
6288         PR tree-optimization/49742
6289         * tree-data-ref.c (get_references_in_stmt): Treat the lhs of a call
6290         as a potential write.
6291
6292 2011-07-19  Richard Guenther  <rguenther@suse.de>
6293
6294         * Makefile.in (tree-ssa-forwprop.o): Depend on gimple-pretty-print.h.
6295         * tree-ssa-forwprop.c: Include gimple-pretty-print.h.
6296         (forward_propagate_comparison): Simplify, remove obsolete code.
6297
6298 2011-07-19  Richard Guenther  <rguenther@suse.de>
6299
6300         * gimplify.c (gimplify_expr): Gimplify TRUTH_NOT_EXPR as
6301         BIT_XOR_EXPR, same as the RTL expander does.
6302         * tree-cfg.c (verify_expr): Disallow TRUTH_NOT_EXPR in the gimple IL.
6303         (verify_gimple_assign_unary): Likewise.
6304         * tree-ssa-propagate.c (valid_gimple_rhs_p): Disallow TRUTH_*_EXPR.
6305         * tree-ssa-forwprop.c (forward_propagate_comparison): Handle
6306         BIT_NOT_EXPR and BIT_XOR_EXPR instead of TRUTH_NOT_EXPR.
6307
6308 2011-07-19  Jakub Jelinek  <jakub@redhat.com>
6309
6310         PR tree-optimization/49768
6311         * gimple-fold.c (fold_nonarray_ctor_reference): Return NULL
6312         if offset is smaller than bitoffset, but offset+size is bigger
6313         than bitoffset.
6314
6315 2011-07-19  Ira Rosen  <ira.rosen@linaro.org>
6316
6317         PR tree-optimization/49771
6318         * tree-vect-loop-manip.c (vect_vfa_segment_size): In case of
6319         zero step, set segment length to the size of the data-ref's type.
6320
6321 2011-07-18  Martin Jambor  <mjambor@suse.cz>
6322
6323         * ipa-prop.h: Include alloc-pool.h, all sorts of updates to general
6324         comments.
6325         (ipcp_values_pool): Declare.
6326         (ipcp_sources_pool): Likewise.
6327         (ipcp_lattice): Changed to forward declaration.
6328         (ipa_param_descriptor): Removed fields ipcp_lattice, types and
6329         cannot_devirtualize.
6330         (ipa_node_params): New fields descriptors, lattices, known_vals,
6331         clone_for_all_contexts and node dead, removed fields params and
6332         count_scale.
6333         (ipa_set_param_count): Removed.
6334         (ipa_get_param_count): Made to work with descriptors vector.
6335         (ipa_get_param): Updated.
6336         (ipa_param_cannot_devirtualize_p): Removed.
6337         (ipa_param_types_vec_empty): Likewise.
6338         (ipa_set_param_used): New function.
6339         (ipa_get_param_used): Updated to use descriptors vector.
6340         (ipa_func_list): Removed.
6341         (ipa_init_func_list): Removed declaration.
6342         (ipa_push_func_to_list_1): Likewise.
6343         (ipa_pop_func_from_list): Likewise.
6344         (ipa_push_func_to_list): Removed.
6345         (ipa_lattice_from_jfunc): Remove declaration.
6346         (ipa_get_jf_pass_through_result): Declare.
6347         (ipa_get_jf_ancestor_result): Likewise.
6348         (ipa_value_from_jfunc): Likewise.
6349         (ipa_get_lattice): Update.
6350         (ipa_lat_is_single_const): New function.
6351         * ipa-prop.c (ipa_push_func_to_list_1): Removed.
6352         (ipa_init_func_list): Likewise.
6353         (ipa_pop_func_from_list): Likewise.
6354         (ipa_get_param_decl_index): Fix coding style.
6355         (count_formal_params): Removed.
6356         (count_formal_params_1): Renamed to count_formal_params.
6357         (ipa_populate_param_decls): Update to use descriptors vector.
6358         (ipa_initialize_node_params): Likewise.
6359         (visit_ref_for_mod_analysis): Use ipa_set_param_used.
6360         (ipa_analyze_params_uses): Likewise.
6361         (ipa_free_node_params_substructures): Likewise and free also lattices
6362         and known values.
6363         (duplicate_array): Removed.
6364         (ipa_edge_duplication_hook): Add the new edge to the list of edge
6365         clones.
6366         (ipa_node_duplication_hook): Update to use new lattices.
6367         (ipa_free_all_structures_after_ipa_cp): Free alloc pools.
6368         (ipa_free_all_structures_after_iinln): Likewise.
6369         (ipa_write_node_info): Update to use new lattices.
6370         (ipa_read_node_info): Likewise.
6371         (ipa_get_jf_pass_through_result): New function.
6372         (ipa_get_jf_ancestor_result): Likewise.
6373         (ipa_value_from_jfunc): Likewise.
6374         (ipa_cst_from_jfunc): Reimplemented using ipa_value_from_jfunc.
6375         * ipa-cp.c: Reimplemented.
6376         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): Removed.
6377         (PARAM_IPA_CP_VALUE_LIST_SIZE): New parameter.
6378         (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise.
6379         * Makefile.in (IPA_PROP_H): Added alloc-pool.h to dependencies.
6380         * doc/invoke.texi (devirt-type-list-size): Removed description.
6381         (ipa-cp-value-list-size): Added description.
6382
6383 2011-07-18  Richard Henderson  <rth@redhat.com>
6384
6385         * bb-reorder.c (fix_crossing_conditional_branches): Emit all insns
6386         before calling create_basic_block.
6387
6388 2011-07-18  Jakub Jelinek  <jakub@redhat.com>
6389
6390         PR middle-end/49675
6391         * tree.c (build_common_builtin_nodes): Register
6392         __builtin_return_address, __cyg_profile_func_enter
6393         and __cyg_profile_func_exit.
6394
6395 2011-07-18  Richard Henderson  <rth@redhat.com>
6396
6397         * bb-reorder.c (emit_barrier_after_bb): Split out of ...
6398         (add_labels_and_missing_jumps): ... here.
6399         (fix_up_fall_thru_edges, fix_crossing_conditional_branches): Use it.
6400
6401 2011-07-18  Uros Bizjak  <ubizjak@gmail.com>
6402
6403         PR target/47744
6404         * config/i386/i386.c (ix86_decompose_address): Allow only subregs
6405         of DImode hard registers in PLUS address chains.
6406
6407 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6408
6409         PR bootstrap/49769
6410         * config.gcc (alpha*-*-linux*): Add crtfastmath.o to extra_parts.
6411         (alpha*-*-freebsd*): Likewise.
6412         (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
6413         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
6414         i[34567]86-*-kopensolaris*-gnu): Add crtprec32.o, crtprec64.o,
6415         crtprec80.o, crtfastmath.o to extra_parts for all targets.
6416         (ia64*-*-elf*): Remove extra_parts.
6417         (sparc-*-linux*): Add crtfastmath.o to extra_parts.
6418         (sparc64-*-linux*): Likewise.
6419         (sparc64-*-freebsd*): Likewise.
6420
6421         Revert:
6422         * config.gcc (ia64*-*-freebsd*): Remove crtfastmath.o from extra_parts.
6423         (ia64*-*-linux*): Likewise.
6424         (mips64*-*-linux*): Likewise.
6425         (mips*-*-linux*): Likewise.
6426
6427 2011-07-18  David Edelsohn  <dje.gcc@gmail.com>
6428
6429         * doc/install.texi (Specific, *-ibm-aix*): AIX assembler bug.
6430
6431 2011-07-18  Richard Guenther  <rguenther@suse.de>
6432
6433         * gimplify.c (gimplify_expr): Use input_location, not saved_location
6434         when building new trees.
6435
6436 2011-07-18  Richard Guenther  <rguenther@suse.de>
6437
6438         * expr.c (expand_expr_real_2): Properly truncate the BIT_NOT_EXPR
6439         expansion result to bitfield precision if required.
6440
6441 2011-07-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6442
6443         * config.gcc (i[3456x]86-*-netware*): Remove.
6444
6445         * gthr-nks.h: Remove.
6446         * configure.ac (enable_threads): Remove nks.
6447         * configure: Regenerate.
6448
6449         * config/i386/i386.c (ix86_encode_section_info): Remove netware
6450         reference.
6451         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): Remove
6452         <netware.h> reference.
6453
6454         * config/i386/netware-libgcc.c,
6455         gcc/config/i386/netware-libgcc.def,
6456         gcc/config/i386/netware-libgcc.exp, gcc/config/i386/netware.c,
6457         gcc/config/i386/netware.h, gcc/config/i386/netware.opt,
6458         gcc/config/i386/nwld.c, gcc/config/i386/nwld.h,
6459         gcc/config/i386/t-netware, gcc/config/i386/t-nwld: Remove
6460
6461         * doc/extend.texi (Function Attributes,
6462         callee_pop_aggregate_return): Remove i?86-netware reference.
6463         * doc/install.texi (Configuration, --enable-threads): Remove nks.
6464
6465 2011-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6466
6467         PR target/49746
6468         Revert:
6469         2010-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6470
6471         * config/pa/pa.md: Add ",*" condition to 64-bit add/subtract boolean
6472         patterns.
6473
6474 2011-07-17  Eric Botcazou  <ebotcazou@adacore.com>
6475
6476         PR middle-end/49732
6477         * tree.c (walk_tree_1) <DECL_EXPR>: Do not walk a pointed-to type.
6478
6479 2011-07-16  Matthias Klose  <doko@ubuntu.com>
6480
6481         * doc/install.texi: Document --enable-static-libjava.
6482
6483 2011-07-15  Richard Henderson  <rth@redhat.com>
6484
6485         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
6486         Replace all three arguments by returning a VEC of edges.
6487         (add_labels_and_missing_jumps): Accept a VEC of edges, not bare
6488         pointers and counts.
6489         (fix_edges_for_rarely_executed_code): Merge ...
6490         (rest_of_handle_partition_blocks): ... into...
6491         (partition_hot_cold_basic_blocks): ... here.  Return todo items if
6492         any work was performed.
6493         (pass_partition_blocks): Clear todo_flags_finish.
6494
6495 2011-07-15  Paolo Carlini  <paolo.carlini@oracle.com>
6496             Jakub Jelinek  <jakub@redhat.com>
6497             Jonathan Wakely  <jwakely.gcc@gmail.com>
6498
6499         PR libstdc++/49745
6500         * gthr-posix.h: Do not include <unistd.h> unconditionally; use
6501         _GTHREADS_USE_MUTEX_TIMEDLOCK instead of _POSIX_TIMEOUTS.
6502
6503 2011-07-15  Jason Merrill  <jason@redhat.com>
6504
6505         PR testsuite/49741
6506         * Makefile.in ($(lang_checks_parallelized)): Allow --extra_opts
6507         rather than --tool_opts.
6508
6509 2011-07-15  Basile Starynkevitch  <basile@starynkevitch.net>
6510
6511         * doc/plugins.texi (Building GCC plugins): gengtype needs its
6512         corresponding gtype.state.
6513
6514 2011-07-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6515
6516         PR target/49723
6517         * config/pa/pa.md (casesi): Use gen_int_mode instead of GEN_INT.
6518
6519 2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
6520
6521         PR target/48220
6522         * doc/md.texi (Standard Names): Document window_save.
6523         * cfgexpand.c (expand_debug_parm_decl): New function extracted from
6524         expand_debug_expr and expand_debug_source_expr.  If the target has
6525         a window_save instruction, adjust the ENTRY_VALUE_EXP.
6526         (expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
6527         SSA_NAME_VAR is a parameter.
6528         (expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
6529         * var-tracking.c (parm_reg_t): New type and associated vector type.
6530         (windowed_parm_regs): New variable.
6531         (adjust_insn): If the target has a window_save instruction and this
6532         is the instruction, make its effect on parameter registers explicit.
6533         (next_non_note_insn_var_location): New function.
6534         (emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
6535         (vt_add_function_parameter): If the target has a window_save insn,
6536         adjust the incoming RTL and record that in windowed_parm_regs.
6537         (vt_finalize): Free windowed_parm_regs.
6538
6539 2011-07-15  Bernd Schmidt  <bernds@codesourcery.com>
6540
6541         * doc/invoke.texi (C6X Options): New section.
6542         * doc/md.texi (TI C6X family): New section.
6543         * config.gcc: Handle tic6x, in particular tic6x-*-elf and
6544         tic6x-*-uclinux.
6545         * longlong.h (add_ssaaaa, __umulsidi3, umul_ppmm,
6546         count_leading_zeros, count_trailing_zeros, UMUL_TIME, UDIV_TIME):
6547         Provide C6X definitions.
6548         * config/c6x/c6x.md: New file.
6549         * config/c6x/constraints.md: New file.
6550         * config/c6x/predicates.md: New file.
6551         * config/c6x/c6x-sched.md.in: New file.
6552         * config/c6x/c6x-sched.md: New file.
6553         * config/c6x/gensched.sh: New file.
6554         * config/c6x/c6x-mult.md.in: New file.
6555         * config/c6x/genmult.sh: New file.
6556         * config/c6x/c6x-mult.md: New file.
6557         * config/c6x/sync.md: New file.
6558         * config/c6x/c6x-protos.h: New file.
6559         * config/c6x/sfp-machine.h: New file.
6560         * config/c6x/c6x.c: New file.
6561         * config/c6x/c6x.h: New file.
6562         * config/c6x/crti.s: New file.
6563         * config/c6x/crtn.s: New file.
6564         * config/c6x/lib1funcs.asm: New file.
6565         * config/c6x/c6x-modes.def: New file.
6566         * config/c6x/genopt.sh: New file.
6567         * config/c6x/c6x.opt: New file.
6568         * config/c6x/c6x-tables.opt: New file.
6569         * config/c6x/c6x-opts.h: New file.
6570         * config/c6x/c6x-isas.def: New file.
6571         * config/c6x/elf.h: New file.
6572         * config/c6x/elf-common.h: New file.
6573         * config/c6x/uclinux-elf.h: New file.
6574         * config/c6x/t-c6x: New file.
6575         * config/c6x/t-c6x-elf: New file.
6576         * config/c6x/t-c6x-uclinux: New file.
6577         * config/c6x/t-c6x-softfp: New file.
6578         * config/c6x/gtd.c: New file.
6579         * config/c6x/gtf.c: New file.
6580         * config/c6x/ltd.c: New file.
6581         * config/c6x/ltf.c: New file.
6582         * config/c6x/ged.c: New file.
6583         * config/c6x/gef.c: New file.
6584         * config/c6x/led.c: New file.
6585         * config/c6x/lef.c: New file.
6586         * config/c6x/eqd.c: New file.
6587         * config/c6x/eqf.c: New file.
6588         * config/c6x/libgcc-c6xeabi.ver: New file.
6589
6590         Revert
6591         2003-07-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
6592         PR rtl-optimization/11320
6593         * sched-int.h (struct deps) [reg_conditional_sets]: New field.
6594         (struct sched_info) [compute_jump_reg_dependencies]: New prototype.
6595         * sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
6596         current_sched_info->compute_jump_reg_dependencies. Record which
6597         registers are used and which registers are set by the jump.
6598         Clear deps->reg_conditional_sets after a barrier.
6599         Set deps->reg_conditional_sets if the insn is a COND_EXEC.
6600         Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
6601         (init_deps): Initialize reg_conditional_sets.
6602         (free_deps): Clear reg_conditional_sets.
6603         * sched-ebb.c (compute_jump_reg_dependencies): New prototype.
6604         Mark registers live on entry of the fallthrough block and conditionally
6605         set as set by the jump. Mark registers live on entry of non-fallthrough
6606         blocks as used by the jump.
6607         * sched-rgn.c (compute_jump_reg_dependencies): New prototype.
6608         Mark new parameters as unused.
6609
6610 2011-07-14  Andrew Pinski  <pinskia@gmail.com>
6611
6612         PR tree-opt/49309
6613         * tree-mudflap.c (mf_xform_derefs_1 <case MEM_REF>):
6614         Use fold_build2_loc instead of build2.
6615         Use the correct type for the new tree.
6616
6617 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
6618
6619         PR rtl-optimization/11320
6620         * config/ia64/ia64.md (load_symptr_low): Show a MEM.
6621         * config/ia64/ia64.c (ia64_expand_load_address): Generate it.
6622
6623 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
6624
6625         PR target/49487
6626         * config/avr/avr.md (rotl<mode>3): Generate SCRATCH instead
6627         of REG.
6628         (*rotw<mode>): Use const_int_operand for operand2.
6629         Use match_scatch for operand3.
6630         (*rotb<mode>): Ditto
6631         * config/avr/avr.c (avr_rotate_bytes): Treat SCRATCH.
6632
6633 2011-07-14  Richard Guenther  <rguenther@suse.de>
6634
6635         PR tree-optimization/49651
6636         * tree-ssa-structalias.c (get_constraint_for_1): Properly
6637         handle dereferences with subvariables.
6638
6639 2011-07-14  Richard Guenther  <rguenther@suse.de>
6640
6641         * gimple-fold.c (fold_gimple_assign): Remove operand swapping.
6642         (fold_stmt_1): Do it here directly on gimple and as a first thing.
6643
6644 2011-07-14  Richard Guenther  <rguenther@suse.de>
6645
6646         * fold-const.c (fold_binary_loc): Convert the !bool_var result,
6647         not bool_var when folding bool_var != 1 or bool_var == 0.
6648
6649 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
6650
6651         * haifa-sched.c (schedule_insns): Remove outdated comment.
6652         (schedule_block): When computing a known value for TODO_SPEC,
6653         just set it rather than using logical operations.
6654         (try_ready): Likewise.  Use a local variable rather than a
6655         pointer to TODO_SPEC.  Reorder an if statement to move the
6656         easy case to the then block.
6657         * sched-deps.c (dep_spec_p): New static function.
6658         (update_dep): Use it to decide whether to call
6659         change_spec_dep_to_hard.
6660         (get_back_and_forw_lists): Use it.
6661         (sd_resolve_dep): Likewise.
6662         (init_dep): If !USE_DEPS_LIST, use zero to initialize status.
6663         (haifa_note_mem_dep): Likewise.
6664         (check_dep): Likewise.
6665         (sd_add_dep): Also clear SPECULATIVE bits if not DO_SPECULATION.
6666         (sched_free_deps): Free in two passes.
6667
6668 2011-07-14  Richard Sandiford  <richard.sandiford@linaro.org>
6669
6670         PR middle-end/49736
6671         * expr.c (all_zeros_p): Undo bogus part of last change.
6672
6673 2011-07-14  Matthias Klose <doko@ubuntu.com>
6674
6675         * doc/extend.texi (optimize attribute): Fix typo.
6676
6677 2011-07-14  Richard Guenther  <rguenther@suse.de>
6678
6679         * gimplify.c (gimplify_expr): Only do required conversions.
6680
6681 2011-07-14  Georg-Johann Lay  <avr@gjlay.de>
6682
6683         PR target/43746
6684         * config/avr/elf.h (TARGET_ASM_SELECT_SECTION): Remove,
6685         i.e. use default_elf_select_section.
6686         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Remove.
6687         (READONLY_DATA_SECTION_ASM_OP): Remove.
6688         (TARGET_ASM_NAMED_SECTION): Move from here...
6689         * config/avr/avr.c: ...to here.
6690         (avr_asm_init_sections): Set unnamed callback of readonly_data_section.
6691         (avr_asm_named_section): Make static.
6692
6693 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6694
6695         PR bootstrap/49739
6696         * config.gcc (extra_parts): Add crtprec32.o crtprec64.o crtprec80.o
6697         and crtfastmath.o for Linux/x86.
6698
6699 2011-07-14  Bernd Schmidt  <bernds@codesourcery.com>
6700
6701         * haifa-sched.c: Include "hashtab.h"
6702         (sched_no_dce): New global variable.
6703         (INSN_EXACT_TICK, INSN_TICK_ESTIMATE, FEEDS_BACKTRACK_INSN,
6704         SHADOW_P): New macros.
6705         (last_clock_var, cycle_issued_insns): Move declarations.
6706         (must_backtrack): New static variable.
6707         (struct delay_pair): New structure.
6708         (delay_htab, delay_htab_i2): New static variables.
6709         (delay_hash_i1, delay_hash_i2, delay_i1_eq, delay_i2_eq,
6710         record_delay_slot_pair, pair_delay, add_delay_dependencies): New
6711         functions.
6712         (dep_cost_1): If delay pairs exist, try to look up the insns and
6713         use the correct pair delay if we find them.
6714         (rank-for_schedule): Tweak priority for insns that must be scheduled
6715         soon to avoid backtracking.
6716         (queue_insn): Detect conditions which force backtracking.
6717         (ready_add): Likewise.
6718         (struct sched_block_state): Add member shadows_only_p.
6719         (struct haifa_save_data): New structure.
6720         (backtrack_queue): New static variable.
6721         (mark_backtrack_feeds, copy_insn_list, save_backtrack_point,
6722         unschedule_insns_until, restore_last_backtrack_point,
6723         free_topmost_backtrack_point, free_backtrack_queue,
6724         estimate_insn_tick, estimate_shadow_tick): New functions.
6725         (prune_ready_list): New arg shadows_only_p.  All callers changed.
6726         If true, remove everything that isn't SHADOW_P.  Look up delay
6727         pairs and estimate ticks to avoid scheduling the first insn too early.
6728         (verify_shadows): New function.
6729         (schedule_block): Add machinery to enable backtracking.
6730         (sched_init): Take sched_no_dce into account when setting
6731         DF_LR_RUN_DCE.
6732         (free_delay_pairs): New function.
6733         (init_h_i_d): Initialize INSN_EXACT_TICK.
6734         * Makefile.in (haifa-sched.o): Add $(HASHTAB_H).
6735         * sched-deps.c (sd_unresolve_dep): New function.
6736         * sched-int. (struct haifa_sched_info): New fields save_state
6737         and restore_state.
6738         (struct _haifa_insn_data): New fields exact_tick, tick_estimate,
6739         feeds_backtrack_insn and shadow_p.
6740         (DO_BACKTRACKING): New value in enum SCHED_FLAGS.
6741         (sched_no_dce): Declare variable.
6742         (record_delay_slot_pair, free_delay_pairs, add_delay_dependencies,
6743         sd_unresolve_dep): Declare functions.
6744         * modulo-sched.c (sms_sched_info): Clear the two new fields.
6745         * sched-rgn.c (rgn_const_sched_info): Likewise.
6746         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
6747         * sched-ebb.c (save_ebb_state, restore_ebb_state): New functions.
6748         (ebb_sched_info): Add them for the two new fields.
6749         (add_deps_for_risky_insns): Call add_delay_dependencies.
6750
6751 2011-07-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
6752
6753         * config/rs6000/rs6000.opt (-mpointers-to-nested-functions):
6754         Rename -mr11.
6755         * config/rs6000/rs6000.c (rs6000_trampoline_init): Ditto.
6756         (rs6000_call_indirect_aix): Ditto.
6757         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Ditto.
6758         (call_indirect_aix<ptrsize>_internal): Ditto.
6759         (call_indirect_aix<ptrsize>_nor11): Ditto.
6760         (call_indirect_aix<ptrsize>_internal2): Ditto.
6761         (call_value_indirect_aix<ptrsize>): Ditto.
6762         (call_value_indirect_aix<ptrsize>_internal): Ditto.
6763         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
6764         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
6765         * doc/invoke.texi (RS/6000 and PowerPC Options): Ditto.
6766
6767 2011-07-13  Jason Merrill  <jason@redhat.com>
6768
6769         * Makefile.in ($(lang_checks_parallelized)): Allow --tool_opts.
6770
6771 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6772
6773         * config/spu/spu.c (spu_init_libfuncs): Install __clrsbdi2.
6774         * config/spu/spu.md ("clrsb<mode>2"): New expander.
6775
6776 2011-07-13  Thomas Schwinge  <thomas@schwinge.name>
6777
6778         * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Use AS_ECHO instead of echo.
6779         * configure: Regenerate.
6780
6781 2011-07-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6782
6783         * config/spu/spu.c (TARGET_ASM_FILE_START): Do not define.
6784         (asm_file_start): Remove.
6785         (spu_machine_dependent_reorg): Call compute_bb_for_insn and
6786         free_bb_for_insn around code that modifies insns before
6787         restarting df analysis.
6788
6789 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6790
6791         PR target/49541
6792         * config/sol2.h (LIB_SPEC): Simplify.  Move LIB_THREAD_LDFLAGS_SPEC ...
6793         (LINK_SPEC): ... here.
6794
6795 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
6796
6797         * haifa-sched.c (struct sched_block_state): New.
6798         (schedule_block): Move some local variables into such a structure.
6799
6800 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6801
6802         * config/i386/crtprec.c: Move to ../libgcc/config/i386.
6803         * config/i386/t-crtpc: Remove.
6804         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
6805         * config.gcc (i[34567]86-*-darwin*): Remove i386/t-crtpc from
6806         tmake_file.
6807         (x86_64-*-darwin*): Likewise.
6808         (i[34567]86-*-linux*): Likewise.
6809         (x86_64-*-linux*): Likewise.
6810
6811         * config/i386/sol2.h (ENDFILE_SPEC): Redefine.
6812         Handle -mpc32, -mpc64, -mpc80.
6813
6814 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6815
6816         * config/alpha/crtfastmath.c: Move to ../libgcc/config/alpha.
6817         * config/alpha/t-crtfm: Remove.
6818         * config/i386/crtfastmath.c: Move to ../libgcc/config/i386.
6819         * config/i386/t-crtfm: Remove.
6820         * config/ia64/crtfastmath.c: Move to ../libgcc/config/ia64.
6821         * config/mips/crtfastmath.c: Move to ../libgcc/config/mips.
6822         * config/sparc/crtfastmath.c: Move to ../libgcc/config/sparc.
6823         * config/sparc/t-crtfm: Remove.
6824
6825         * config.gcc (alpha*-*-linux*): Remove alpha/t-crtfm from tmake_file.
6826         (alpha*-*-freebsd*): Likewise.
6827         (i[34567]86-*-darwin*): Remove i386/t-crtfm from tmake_file.
6828         (x86_64-*-darwin*): Likewise.
6829         (i[34567]86-*-linux*): Likewise.
6830         (x86_64-*-linux*): Likewise.
6831         (x86_64-*-mingw*): Likewise.
6832         (ia64*-*-elf*): Remove crtfastmath.o from extra_parts.
6833         (ia64*-*-freebsd*): Likewise.
6834         (ia64*-*-linux*): Likewise.
6835         (mips64*-*-linux*): Likewise.
6836         (mips*-*-linux*): Likewise.
6837         (sparc-*-linux*): Remove sparc/t-crtfm from tmake_file.
6838         (sparc64-*-linux*): Likewise.
6839         (sparc64-*-freebsd*): Likewise.
6840
6841 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6842
6843         * config/darwin-crt2.c: Move to ../libgcc/config/rs6000.
6844         * config/darwin-crt3.c: Move to ../libgcc/config.
6845         * config/t-darwin (EXTRA_MULTILIB_PARTS): Remove.
6846         ($(T)crt3$(objext)): Remove.
6847         * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove.
6848         ($(T)crt2$(objext)): Remove.
6849         * config.gcc (powerpc-*-darwin*): Remove extra_parts.
6850         (powerpc64-*-darwin*): Likewise.
6851
6852 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
6853
6854         * config/i386/i386.c (x86_output_mi_thunk): Support ptr_mode != Pmode.
6855
6856         * config/i386/i386.md (*addsi_1_zext): Renamed to ...
6857         (addsi_1_zext): This.
6858
6859 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
6860
6861         * doc/tm.texi.in (TARGET_ASM_MERGEABLE_RODATA_PREFIX): Add hook.
6862         * doc/tm.texi: Regenerate.
6863         * target.def (mergeable_rodata_prefix): New defhookpod.
6864         * varasm.c (mergeable_string_section, mergeable_constant_section):
6865         Use it. Allocate name with alloca.
6866
6867 2011-07-13  H.J. Lu  <hongjiu.lu@intel.com>
6868
6869         * doc/invoke.texi (x86): Remove -mfused-madd and add -mfma.
6870
6871 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
6872
6873         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Tighten
6874         overlap check.
6875
6876 2011-07-13  Richard Sandiford  <richard.sandiford@linaro.org>
6877
6878         * tree.h (categorize_ctor_elements): Remove comment.  Fix long line.
6879         (count_type_elements): Delete.
6880         (complete_ctor_at_level_p): Declare.
6881         * expr.c (flexible_array_member_p): New function, split out from...
6882         (count_type_elements): ...here.  Make static.  Replace allow_flexarr
6883         parameter with for_ctor_p.  When for_ctor_p is true, return the
6884         number of elements that should appear in the top-level constructor,
6885         otherwise return an estimate of the number of scalars.
6886         (categorize_ctor_elements): Replace p_must_clear with p_complete.
6887         (categorize_ctor_elements_1): Likewise.  Use complete_ctor_at_level_p.
6888         (complete_ctor_at_level_p): New function, borrowing union logic
6889         from old categorize_ctor_elements_1.
6890         (mostly_zeros_p): Return true if the constructor is not complete.
6891         (all_zeros_p): Update call to categorize_ctor_elements.
6892         * gimplify.c (gimplify_init_constructor): Update call to
6893         categorize_ctor_elements.  Don't call count_type_elements.
6894         Unconditionally prevent clearing for variable-sized types,
6895         otherwise rely on categorize_ctor_elements to detect
6896         incomplete initializers.
6897
6898 2011-07-13  Richard Guenther  <rguenther@suse.de>
6899
6900         * tree-vrp.c (simplify_conversion_using_ranges): Make sure
6901         the final type is integral.
6902
6903 2011-07-13  Bernd Schmidt  <bernds@codesourcery.com>
6904
6905         * sched-int.h (struct _dep): Add member cost.
6906         (DEP_COST, UNKNOWN_DEP_COST): New macros.
6907         * sched-deps.c (init_dep_1): Initialize DEP_COST.
6908         * haifa-sched.c (dep_cost_1): Use and set DEP_COST.
6909         (sched_change_pattern): Reset it for dependent insns.
6910
6911 2011-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6912
6913         * Makefile.in (CRT0STUFF_T_CFLAGS): Remove.
6914         ($(T)crt0.o, $(T)mcrt0.o, s-crt0): Remove.
6915         * config/i386/netware-crt0.c: Move to ../libgcc/config/i386.
6916         * config/i386/t-nwld (CRTSTUFF_T_CFLAGS, CRT0STUFF_T_CFLAGS): Remove.
6917         (CRT0_S, MCRT0_S): Remove.
6918         ($(T)libgcc.def, $(T)libc.def, $(T)libcpre.def, $(T)posixpre.def):
6919         Remove.
6920         (s-crt0): Remove.
6921         * config.gcc (i[3456x]86-*-netware*): Remove extra_parts.
6922
6923 2011-07-12  Eric Botcazou  <ebotcazou@adacore.com>
6924
6925         * cse.c (insert_with_costs): Put semi-colon after empty loop body
6926         on the next line.
6927         * emit-rtl.c (push_to_sequence): Likewise.
6928         * haifa-sched.c (max_issue): Likewise.
6929         * matrix-reorg.c (add_allocation_site): Likewise.
6930         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
6931         * reload.c (alternative_allows_const_pool_ref): Likewise.
6932         * sched-rgn.c (rgn_add_block): Likewise.
6933         (rgn_fix_recovery_cfg): Likewise.
6934         * tree.c (attribute_list_contained): Likewise.
6935
6936 2011-07-12  Uros Bizjak  <ubizjak@gmail.com>
6937
6938         * config/i386/i386.c: Tidy processor feature bitmasks.
6939         (m_P4_NOCONA): New.
6940
6941 2011-07-12  Andrew Pinski  <pinskia@gmail.com>
6942
6943         PR rtl-opt/49474
6944         * cprop.c (find_implicit_sets): Correct the condition.
6945
6946 2011-07-12  Richard Henderson  <rth@redhat.com>
6947
6948         PR target/49713
6949         * dwarf2out.h (dwarf_frame_regnum): Remove.
6950         * dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
6951         earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
6952         * dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
6953         (execute_dwarf2_frame): Initialize them.
6954         (DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
6955         users of the macros with the variables.
6956         (expand_builtin_dwarf_sp_column): Revert last change.
6957         (expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
6958         result of DWARF_FRAME_REGNUM into a local variable.
6959
6960 2011-07-12  Richard Henderson  <rth@redhat.com>
6961
6962         PR target/49714
6963         * config/i386/i386.c (x86_output_mi_thunk): Use
6964         machopic_indirect_call_target instead of machopic_indirection_name
6965         directly.
6966
6967 2011-07-12  Laurent GUERBY  <laurent@guerby.net>
6968             Eric Botcazou  <ebotcazou@adacore.com>
6969
6970         * prefix.h: Wrap up in extern "C" block.
6971
6972 2011-07-12  Harsha Jagasia  <harsha.jagasia@amd.com>
6973
6974         AMD bdver2 Enablement
6975         * config.gcc (i[34567]86-*-linux* | ...): Add bdver2.
6976         (case ${target}): Add bdver2.
6977         * config/i386/driver-i386.c (host_detect_local_cpu): Let
6978         -march=native recognize bdver2 processors.
6979         * config/i386/i386-c.c (ix86_target_macros_internal): Add
6980         bdver2 def_and_undef
6981         * config/i386/i386.c (struct processor_costs bdver2_cost): New
6982         bdver2 cost table.
6983         (m_BDVER2): New definition.
6984         (m_AMD_MULTIPLE): Includes m_BDVER2.
6985         (initial_ix86_tune_features): Add bdver2 tuning.
6986         (processor_target_table): Add bdver2 entry.
6987         (static const char *const cpu_names): Add bdver2 entry.
6988         (ix86_option_override_internal): Add bdver2 instruction sets.
6989         (ix86_issue_rate): Add bdver2.
6990         (ix86_adjust_cost): Add bdver2.
6991         (has_dispatch): Add bdver2.
6992         * config/i386/i386.h (TARGET_BDVER2): New definition.
6993         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver2.
6994         (enum processor_type): Add PROCESSOR_BDVER2.
6995         * config/i386/i386.md (define_attr "cpu"): Add bdver2.
6996         * config/i386/i386.opt ( mdispatch-scheduler): Add bdver2 to
6997         description.
6998
6999 2011-07-12  Richard Henderson  <rth@redhat.com>
7000
7001         PR target/49714
7002         * config/i386/i386.c (x86_output_mi_thunk): Fix mode for
7003         destination address in memory on some paths.
7004
7005 2011-07-12  Bernd Schmidt  <bernds@codesourcery.com>
7006
7007         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Mention
7008         TARGET_FUNCTION_ARG_ROUND_BOUNDARY.
7009         (TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Add hook.
7010         * function.c (locate_and_pad_parm): Take it into account.
7011         * target.def (function_arg_round_boundary): New hook.
7012         * targhooks.c (default_function_arg_round_boundary): New function.
7013         * targhooks.h (default_function_arg_round_boundary): Declare.
7014         * doc/tm.texi: Regenerate.
7015
7016 2011-07-12  Richard Guenther  <rguenther@suse.de>
7017
7018         * tree-ssa-copyrename.c (rename_ssa_copies): Zero statistics.
7019         Do not perform no-op changes.
7020
7021 2011-07-12  Richard Sandiford  <richard.sandiford@linaro.org>
7022
7023         * config/arm/predicates.md (neon_struct_operand): Make a normal
7024         predicate.
7025         (neon_struct_or_register_operand): New predicate.
7026         * config/arm/neon.md (movmisalign<mode>): Replace predicates
7027         with neon_struct_or_register_operand.
7028         (*movmisalign<mode>_neon_store, *movmisalign<mode>_neon_load): Use
7029         neon_struct_operand instead of memory_operand.
7030
7031 2011-07-12  Martin Jambor  <mjambor@suse.cz>
7032
7033         * cgraph.h (cgraph_get_node_or_alias): Removed declaration.
7034         * cgraph.c (cgraph_get_node_or_alias): Removed.
7035         (change_decl_assembler_name): Changed all calls to
7036         cgraph_get_node_or_alias to a call to cgraph_get_node.
7037         (cgraph_make_decl_local): Likewise.
7038         * lto-symtab.c (lto_symtab_resolve_symbols): Likewise.
7039         * varasm.c (default_binds_local_p_1): Likewise.
7040         (decl_binds_to_current_def_p): Likewise.
7041
7042 2011-07-12  Jakub Jelinek  <jakub@redhat.com>
7043
7044         PR tree-optimization/49712
7045         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.
7046
7047 2011-07-11  Bernd Schmidt  <bernds@codesourcery.com>
7048
7049         * genautomata.c (add_arc): Return void.  All callers changed.
7050         (make_automaton): Remove dead code.
7051
7052 2011-07-11  Richard Henderson  <rth@redhat.com>
7053
7054         * dwarf2cfi.c (DW_STACK_POINTER_REGNUM): New.
7055         (DW_FRAME_POINTER_REGNUM): New.
7056         (expand_builtin_init_dwarf_reg_sizes): Use unsigned for rnum.
7057         (def_cfa_1): Do not convert reg to DWARF_FRAME_REGNUM here.
7058         (dwf_regno): New.
7059         (dwarf2out_flush_queued_reg_saves, dwarf2out_frame_debug_def_cfa,
7060         dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_register,
7061         dwarf2out_frame_debug_cfa_expression, dwarf2out_frame_debug_expr):
7062         Use it.
7063         * dwarf2out.c (based_loc_descr): Use dwarf_frame_regnum.
7064         * dwarf2out.h (dwarf_frame_regnum): New.
7065         (struct cfa_loc): Document the domain of the reg member.
7066
7067 2011-07-11  Uros Bizjak  <ubizjak@gmail.com>
7068
7069         * config/i386/i386.c (ix86_trampoline_init): Switch arms of if expr.
7070         Use offset everywhere.  Always assert that offset <= TRAMPOLINE_SIZE.
7071
7072 2011-07-11  Jakub Jelinek  <jakub@redhat.com>
7073
7074         PR debug/49676
7075         * dwarf2out.c (int_shift_loc_descriptor): New function.
7076         (int_loc_descriptor): If shorter, emit i as
7077         (i >> shift), shift, DW_OP_shl for suitable shift value.
7078         Similarly, try to optimize large negative values using
7079         DW_OP_neg of a positive value if shorter.
7080         (size_of_int_shift_loc_descriptor): New function.
7081         (size_of_int_loc_descriptor): Adjust to match int_loc_descriptor
7082         changes.
7083         (mem_loc_descriptor) <case CONST_INT>: Emit zero-extended constants
7084         that fit into DWARF2_ADDR_SIZE bytes as int_loc_descriptor +
7085         DW_OP_GNU_convert instead of DW_OP_GNU_const_type if the former
7086         is shorter.
7087         (resolve_addr_in_expr): Optimize DW_OP_plus_uconst with a large
7088         addend as added DW_OP_plus if it is shorter.
7089
7090 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7091
7092         * config/i386/sol2.h [!USE_GLD] (CTORS_SECTION_ASM_OP): Define.
7093         (DTORS_SECTION_ASM_OP): Define.
7094
7095 2011-07-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7096
7097         * config/dfp-bit.c, config/dfp-bit.h: Move to ../libgcc.
7098         * config/t-dfprules: Move to ../libgcc/config.
7099         * config.gcc (i[34567]86-*-linux*, i[34567]86-*-kfreebsd*-gnu,
7100         i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*,
7101         i[34567]86-*-kopensolaris*-gnu): Remove t-dfprules from tmake_file.
7102         (x86_64-*-linux*, x86_64-*-kfreebsd*-gnu, x86_64-*-knetbsd*-gnu):
7103         Likewise.
7104         (i[34567]86-*-cygwin*): Likewise.
7105         (i[34567]86-*-mingw*,  x86_64-*-mingw*): Likewise.
7106         (powerpc-*-linux*, powerpc64-*-linux*): Likewise.
7107         * Makefile.in (D32PBIT_FUNCS, D64PBIT_FUNCS, D128PBIT_FUNCS): Remove.
7108         (libgcc.mvars): Remove DFP_ENABLE, DFP_CFLAGS, D32PBIT_FUNCS,
7109         D64PBIT_FUNCS, D128PBIT_FUNCS.
7110
7111 2011-07-11  Richard Guenther  <rguenther@suse.de>
7112
7113         * tree-vrp.c (simplify_conversion_using_ranges): Manually
7114         translate the source value-range through the conversion chain.
7115
7116 2011-07-11  Richard Sandiford  <richard.sandiford@linaro.org>
7117
7118         * expr.c (expand_expr_real_1): Use expand_insn for movmisalign.
7119
7120 2011-07-11  Arthur Loiret  <aloiret@debian.org>
7121
7122         * config.gcc (s390-*-linux*): If 'enabled_targets' is 'all', build
7123         a bi-arch compiler defaulting to 31-bit. In this case:
7124         (tmake_file): Add s390/t-linux64.
7125         * doc/install.texi: Add s390-linux to the list of targets supporting
7126         --enable-targets=all.
7127
7128 2011-07-11  Arthur Loiret  <aloiret@debian.org>
7129             Matthias Klose <doko@debian.org>
7130
7131         * config.gcc (mips*-*-linux*): If 'enabled_targets' is 'all', build
7132         a tri-arch compiler defaulting to 32-bit (ABI o32). In this case:
7133         (tm_file): Add mips/linux64.h.
7134         (tmake_file): Add mips/t-linux64.
7135         (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
7136         * config/mips/linux64.h (DRIVER_SELF_SPECS): Use MULTILIB_ABI_DEFAULT
7137         instead of hardcoded mabi=n32.
7138         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
7139         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
7140         convention.
7141
7142 2011-07-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
7143
7144         * passes.c (init_optimization_passes): Add invariant motion pass
7145         after induction variable optimization.
7146
7147 2011-07-11  Georg-Johann Lay  <avr@gjlay.de>
7148
7149         PR target/39633
7150         * config/avr/avr.c (notice_update_cc): For ashiftrt:QI, only
7151         offsets 1..5 set cc0 in a usable way.
7152
7153 2011-07-11  Romain Geissler  <romain.geissler@gmail.com>
7154
7155         * tree.h (call_expr_arg): Remove.
7156         (call_expr_argp): Likewise.
7157
7158 2011-07-11  Eric Botcazou  <ebotcazou@adacore.com>
7159
7160         * config/sparc/sparc.md (save_register_window_1): Rename to...
7161         (window_save): ...this.
7162         * config/sparc/sparc.c (emit_save_register_window): Rename to...
7163         (emit_window_save): ...this.
7164         (sparc_expand_prologue): Adjust to above renaming.
7165
7166 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
7167
7168         * config/i386/i386.c (ix86_trampoline_init): Use movl instead
7169         of movabs for x32.
7170
7171 2011-07-10  Richard Henderson  <rth@redhat.com>
7172
7173         * config/i386/i386.c (x86_output_mi_thunk): Generate rtl and
7174         run final, instead of emitting text directly.
7175
7176 2011-07-10  H.J. Lu  <hongjiu.lu@intel.com>
7177
7178         * config/i386/i386.c (ix86_option_override_internal): Turn on
7179         OPTION_MASK_ISA_64BIT for TARGET_X32.  Only allow small and
7180         small PIC models for TARGET_X32.
7181
7182 2011-07-10  Hans-Peter Nilsson  <hp@axis.com>
7183
7184         PR target/49684
7185         * config/cris/t-elfmulti (CRTSTUFF_T_CFLAGS): Don't include
7186         $(LIBGCC2_CFLAGS).
7187
7188         PR bootstrap/49680
7189         * config/cris/cris.c (cris_asm_output_case_end): Robustify against
7190         stray notes and debug insns by using prev_nonnote_nondebug_insn
7191         instead of PREV_INSN.
7192
7193 2011-07-09  Richard Henderson  <rth@redhat.com>
7194
7195         * defaults.h (DWARF2_ADDR_SIZE, DWARF_OFFSET_SIZE,
7196         DWARF_TYPE_SIGNATURE_SIZE): Move from ...
7197         * dwarf2out.c: ... here.
7198         (output_all_cfis): Remove.
7199         (dwarf2out_switch_text_section): Use output_cfis directly.
7200         (size_of_locs): Export.
7201         (output_loc_sequence, output_loc_sequence_raw): Export.
7202         (div_data_align, need_data_align_sf_opcode, dwarf_cfi_name, output_cfi,
7203         output_cfi_directive, dwarf2out_emit_cfi, output_cfis, output_cfa_loc,
7204         output_cfa_loc_raw): Move to ...
7205         * dwarfcfi.c: ... here.
7206         * dwarf2out.h: Update decls.
7207
7208 2011-07-09  Richard Henderson  <rth@redhat.com>
7209
7210         * defaults.h (DWARF_CIE_DATA_ALIGNMENT, DWARF_FRAME_RETURN_COLUMN,
7211         DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Move from ...
7212         * dwarf2cfi.c: ... here.
7213         (PTR_SIZE, DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE): Remove.
7214         (DWARF_ROUND, DWARF_CIE_ID): Remove.
7215         * dwarf2out.c (INCOMING_RETURN_ADDR_RTX): Remove.
7216         (DWARF2_FRAME_REG_OUT, DWARF_CIE_DATA_ALIGNMENT): Remove.
7217         (DWARF_FRAME_RETURN_COLUMN, DWARF_FRAME_REGNUM): Remove.
7218
7219 2011-07-09  Richard Henderson  <rth@redhat.com>
7220
7221         * dwarf2cfi.c (cie_return_save): New.
7222         (queue_reg_save): Use compare_reg_or_pc.
7223         (dwarf2out_flush_queued_reg_saves): Handle pc_rtx as return column.
7224         (dwarf2out_frame_debug_expr): Likewise.
7225         (dwarf2out_frame_debug_cfa_register): Record saved reg for pc too.
7226         (initial_return_save): Likewise.
7227         (execute_dwarf2_frame): Save and restore initial return save from
7228         the cie to the fde.
7229         * config/mips/mips.c (mips_frame_set): Remove special case for
7230         DWARF_FRAME_RETURN_COLUMN.
7231
7232 2011-07-09  Richard Henderson  <rth@redhat.com>
7233
7234         * dwarf2cfi.c (lookup_cfa): Remove.
7235         (execute_dwarf2_frame): Assert queues are empty on entry.
7236         Setup initial cfa directly, not via lookup_cfa.
7237         Don't clear args_size state here.
7238
7239 2011-07-09  Richard Henderson  <rth@redhat.com>
7240
7241         * dwarf2cfi.c (add_cfi_vec): New.
7242         (add_cfi): Rename from add_fde_cfi.  Add the element to add_cfi_vec.
7243         (def_cfa_1, reg_save): Remove for_cie argument.  Update all callers.
7244         (execute_dwarf2_frame): Set add_cfi_vec.
7245
7246 2011-07-09  Richard Henderson  <rth@redhat.com>
7247
7248         * defaults.h (ASM_COMMENT_START): Move here...
7249         * dwarf2asm.c: ... from here.
7250         * dwarf2out.c, final.c, vmsdbgout.c: Remove duplicates.
7251         * toplev.c: Remove ifndef tests of ASM_COMMENT_START.
7252         * varasm.c: Likewise.
7253
7254 2011-07-09  Richard Henderson  <rth@redhat.com>
7255
7256         PR debug/49686
7257         * dwarf2cfi.c (dwarf2out_frame_debug): Don't set cfi_insn here...
7258         (create_cfi_notes): ... do it here instead.
7259
7260 2011-07-09  Jakub Jelinek  <jakub@redhat.com>
7261
7262         PR debug/49676
7263         * dwarf2out.c (size_of_int_loc_descriptor): New function.
7264         (address_of_int_loc_descriptor): Use it.
7265         (scompare_loc_descriptor): Optimize EQ/NE comparison with constant.
7266
7267 2011-07-09  Richard Henderson  <rth@redhat.com>
7268
7269         * config/pdp11/pdp11.md (define_c_enum "unspecv"): New.
7270         (prologue, epilogue): New.
7271         (return, *rts): New.
7272         (blockage, setd, seti): New.
7273         * config/pdp11/pdp11.c (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
7274         (TARGET_ASM_FUNCTION_EPILOGUE): Remove.
7275         (pdp11_saved_regno): New.
7276         (pdp11_expand_prologue): Rename from pdp11_output_function_prologue;
7277         generate rtl instead of text.
7278         (pdp11_expand_epilogue): Similarly from pdp11_output_function_epilogue.
7279         (pdp11_sp_frame_offset): Export.  Use pdp11_saved_regno.
7280         * config/pdp11/pdp11-protos.h: Update.
7281
7282 2011-07-09  Richard Henderson  <rth@redhat.com>
7283
7284         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
7285         try to insert an rtl prologue here.
7286         (rs6000_output_function_epilogue): Similarly.
7287         * config/rs6000/rs6000.md (prologue): Emit a barrier to
7288         satisfy !TARGET_SCHED_PROLOG.
7289         (epilogue, sibcall_epilogue): Likewise.
7290
7291 2011-07-09  Eric Botcazou  <ebotcazou@adacore.com>
7292
7293         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Move around.
7294         (FP_REG_P): Delete.
7295         (IN_OR_GLOBAL_P): Likewise.
7296
7297 2011-07-08  Jason Merrill  <jason@redhat.com>
7298
7299         PR c++/45437
7300         * gimplify.c (goa_stabilize_expr): Handle RHS preevaluation in
7301         compound assignment.
7302
7303         * cgraph.c (cgraph_add_to_same_comdat_group): New.
7304         * cgraph.h: Declare it.
7305         * ipa.c (function_and_variable_visibility): Make sure thunks
7306         have the right visibility.
7307
7308 2011-07-08  Richard Henderson  <rth@redhat.com>
7309
7310         PR bootstrap/49680
7311         * dwarf2cfi.c (dwarf2out_frame_debug): Insert cfi notes after
7312         any tablejump vector.
7313
7314         PR bootstrap/49680
7315         * dwarf2cfi.c (create_cfi_notes): Flush queued saves at the
7316         end of the prologue.
7317
7318 2011-07-08  Jakub Jelinek  <jakub@redhat.com>
7319
7320         PR target/49621
7321         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use
7322         CONST0_RTX (dest_mode) instead of const0_rtx as second operand of NE.
7323         * config/rs6000/vector.md (vector_select_<mode>,
7324         vector_select_<mode>_uns): Change second operand of NE to
7325         CONST0_RTX (<MODE>mode) instead of const0_rtx.
7326         * config/rs6000/altivec.md (*altivec_vsel<mode>,
7327         *altivec_vsel<mode>_uns): Expect second operand of NE to be
7328         zero_constant of the corresponding vector mode.
7329         * config/rs6000/vsx.md (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns):
7330         Likewise.
7331
7332 2011-07-08  Sebastian Pop  <sebastian.pop@amd.com>
7333
7334         * graphite-dependences.c (build_alias_set_powerset): Remove
7335         continue from loop, add one more assert.
7336
7337 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
7338
7339         PR target/46779
7340         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
7341         In particular, allow 8-bit values in r28 and r29.
7342         (avr_hard_regno_scratch_ok): Disallow any register that might be
7343         part of the frame pointer.
7344         (avr_hard_regno_rename_ok): Same.
7345         (avr_legitimate_address_p): Don't allow SUBREGs.
7346
7347 2011-07-08  Julian Brown  <julian@codesourcery.com>
7348
7349         * config/arm/neon.md (vec_shr_<mode>, vec_shl_<mode>): Disable in
7350         big-endian mode.
7351         (reduc_splus_<mode>, reduc_uplus_<mode>, reduc_smin_<mode>)
7352         (reduc_smax_<mode>, reduc_umin_<mode>, reduc_umax_<mode>)
7353         (neon_vec_unpack<US>_lo_<mode>, neon_vec_unpack<US>_hi_<mode>)
7354         (vec_unpack<US>_hi_<mode>, vec_unpack<US>_lo_<mode>)
7355         (neon_vec_<US>mult_lo_<mode>, vec_widen_<US>mult_lo_<mode>)
7356         (neon_vec_<US>mult_hi_<mode>, vec_widen_<US>mult_hi_<mode>)
7357         (vec_pack_trunc_<mode>, neon_vec_pack_trunc_<mode>): Disable for Q
7358         registers in big-endian mode.
7359
7360 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
7361
7362         * genattrtab.c (evaluate_eq_attr): Allow an attribute to be defined
7363         in terms of another.
7364         (write_attr_value): Write a cast if necessary.
7365
7366         * defaults.h (REG_WORDS_BIG_ENDIAN): Provide a default.
7367         * doc/tm.texi.in (WORDS_BIG_ENDIAN): Mention REG_WORDS_BIG_ENDIAN.
7368         (REG_WORDS_BIG_ENDIAN): Document.
7369         * doc/tm.texi: Regenerate.
7370         * reload.c (operands_match_p): Take it into account.
7371         (reload_adjust_reg_for_mode): Likewise.
7372         * rtlanal.c (subreg_get_info): Likewise.
7373
7374 2011-07-08  Richard Guenther  <rguenther@suse.de>
7375
7376         * fold-const.c (fold_binary_loc): Remove index +p PTR -> PTR +p index
7377         folding.
7378
7379 2011-07-08  Kai Tietz  <ktietz@redhat.com>
7380
7381         * fold-const.c (fold_truth_andor): Factored out truth_andor
7382         label from fold_binary as function.
7383         (fold_binary_loc): Replace truth_andor lable
7384         by function fold_truth_andor.
7385
7386 2011-07-08  Kirill Yukhin  <kirill.yukhin@intel.com>
7387
7388         PR middle-end/49519
7389         * calls.c (mem_overlaps_already_clobbered_arg_p): Additional
7390         check if address is stored in register. If so - give up.
7391         (check_sibcall_argument_overlap_1): Do not perform check of
7392         overlapping when it is call to address.
7393
7394 2011-07-08  Georg-Johann Lay  <avr@gjlay.de>
7395
7396         * config/avr/avr.c (output_reload_insisf): Use 'REG_Z+1' instead
7397         of magic '31'.
7398
7399 2011-07-08  Bernd Schmidt  <bernds@codesourcery.com>
7400
7401         * optabs.c (expand_binop): Use GET_MODE_PRECISION instead of
7402         GET_MODE_BITSIZE where appropriate.
7403         (widen_leading, expand_parity, expand_ctz, expand_ffs,
7404         expand_unop, expand_abs_nojump, expand_one_cmpl_abs_nojump,
7405         expand_float, expand_fix): Likewise.
7406         * expr.c (convert_move, convert_modes, expand_expr_real_2,
7407         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
7408         * stor-layout.c (get_mode_bounds): Likewise.
7409         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr):
7410         Likewise.
7411         * convert.c (convert_to_integer): Likewise.
7412         * expmed.c (expand_shift_1): Likewise.
7413
7414         * rtlanal.c (nonzero_bits1): Don't compare GET_MODE_SIZE against
7415         a bitsize.
7416
7417         * optabs.c (expand_binop): Tighten conditions for doubleword
7418         expansions.
7419         (widen_bswap): Assert that mode bitsize and precision are the same.
7420         * stor-layout.c (get_best_mode): Skip modes that have lower
7421         precision than bitsize.
7422         * recog.c (simplify_while_replacing): Assert that bitsize and
7423         precision are the same.
7424
7425 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7426
7427         * Makefile.in (LIBGCOV): Remove.
7428         (libgcc.mvars): Remove LIBGCOV.
7429         * libgov.c: Move to ../libgcc.
7430
7431 2011-07-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7432
7433         * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
7434
7435 2011-07-08  Martin Jambor  <mjambor@suse.cz>
7436
7437         * tree-sra.c (analyze_all_variable_accesses): Dump that a struture
7438         is too big for total scalarization.
7439
7440 2011-07-07  Richard Henderson  <rth@redhat.com>
7441
7442         * config/alpha/elf.h (MIPS_DEBUGGING_INFO): Undef.
7443         (DBX_DEBUGGING_INFO): Undef.
7444
7445 2011-07-07  Richard Henderson  <rth@redhat.com>
7446
7447         * dwarf2out.c (output_cfi_directive): Export.  Add FILE parameter.
7448         Handle some opcodes specially for debugging.
7449         * print-rtl.c: Include dwarf2out.h
7450         (print_rtx): Handle NOTE_INSN_CFI.
7451         * Makefile.in (print-rtl.o): Update.
7452
7453 2011-07-07  Richard Henderson  <rth@redhat.com>
7454
7455         * tree-pass.h (pass_dwarf2_frame): Declare.
7456         * passes.c (init_optimization_passes): Add it.
7457         * dwarf2cfi.c (dwarf2out_frame_debug): Make static.
7458         (create_cfi_notes): Rename from dwarf2out_frame_debug_after_prologue;
7459         make static, do not call add_cfis_to_fde.
7460         (dwarf2out_frame_debug_init, dwarf2cfi_function_init,
7461         dwarf2out_frame_init): Merge into...
7462         (execute_dwarf2_frame): ... here.  New function.
7463         (dwarf2out_do_frame, dwarf2out_do_cfi_asm): Make boolean.  Change
7464         saved_do_cfi_asm to a tri-state variable.
7465         (gate_dwarf2_frame, pass_dwarf2_frame): New.
7466         * dwarf2out.c (dwarf2out_begin_prologue): Only allocate the fde
7467         if it has yet to be done.  Don't call dwarf2cfi_function_init.
7468         * dwarf2out.h, debug.h: Update decls.
7469         * final.c (final_start_function): Don't call
7470         dwarf2out_frame_debug_init or dwarf2out_frame_debug_after_prologue.
7471         * lto-streamer-in.c (lto_init_eh): Don't call dwarf2out_frame_init.
7472         * toplev.c (lang_dependent_init): Likewise.
7473
7474 2011-07-07  Richard Henderson  <rth@redhat.com>
7475
7476         * dwarf2out.c (fde_table, fde_table_allocated, fde_table_in_use,
7477         FDE_TABLE_INCREMENT): Replace with...
7478         (fde_vec): ... this, a new vector.
7479         (current_fde): Remove.  Replace all users with cfun->fde.
7480         (output_call_frame_info): Use FOR_EACH_VEC_ELT over fde_vec.
7481         (size_of_aranges, dwarf2out_finish): Likewise.
7482         (dwarf2out_alloc_current_fde): Break out from ...
7483         (dwarf2out_begin_prologue): ... here.
7484         (dwarf2out_frame_init): Remove.
7485         * dwarf2cfi.c: Update all users of current_fde.
7486         (dwarf2out_frame_init): Rename from dwarf2cfi_frame_init.
7487         * dwarf2out.h: Update decls.
7488         (dw_fde_node): Add fde_index member.
7489         * function.h (struct function): Add fde member.
7490
7491 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
7492             Richard Henderson  <rth@redhat.com>
7493
7494         * dwarf2cfi.c (add_cfi): Remove.
7495         (dwarf2out_cfi_label): Remove force argument.  Only generate the
7496         label name.
7497         (add_fde_cfi): Simplify the different code paths.
7498         (add_cie_cfi): New.
7499         (old_cfa, old_cfa_remember): New.
7500         (def_cfa_1, reg_save): Remove label, add for_cie parameter.
7501         (last_reg_save_label): Remove.
7502         (dwarf2out_args_size, dwarf2out_stack_adjust, queue_reg_save,
7503         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
7504         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
7505         dwarf2out_frame_debug_cfa_expression,
7506         dwarf2out_frame_debug_cfa_restore,
7507         dwarf2out_frame_debug_cfa_window_save,
7508         dwarf2out_frame_debug_expr): Remove label parameter.
7509         (cfi_label_required_p, add_cfis_to_fde): New.
7510         (dwarf2out_frame_debug_after_prologue): New.
7511         (dwarf2cfi_frame_init): Initialize old_cfa.
7512         (dwarf2out_frame_debug_restore_state): Likewise.
7513         * dwarf2out.c (dwarf2out_emit_cfi): Only do output for cfi_asm.
7514         (dwarf2out_switch_text_section): Don't clear dw_fde_current_label here.
7515         * final.c (final_start_function): Call
7516         dwarf2out_frame_debug_after_prologue.
7517
7518 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
7519             Richard Henderson  <rth@redhat.com>
7520
7521         * dwarf2cfi.c (cfi_insn): New.
7522         (dwarf2out_cfi_label): Don't emit cfi label here.
7523         (add_fde_cfi): Create a NOTE_INSN_CFI.
7524         (dwarf2out_frame_debug): Setup cfi_insn.
7525         (dwarf2out_frame_debug_init): Loop over insns creating CFI notes.
7526         (dwarf2out_cfi_begin_epilogue): Make static.
7527         (dwarf2out_frame_debug_restore_state): Make static.
7528         * dwarf2out.c (output_cfi_directive): Make static.
7529         (dwarf2out_emit_cfi): New.
7530         * dwarf2out.h: Update.
7531         * final.c (final): Remove CFI notes.
7532         (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue,
7533         dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug.
7534         Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL.
7535         * insn-notes.def (NOTE_INSN_CFI): New.
7536         (NOTE_INSN_CFI_LABEL): New.
7537         * rtl.h (union rtunion_def): Add rt_cfi member.
7538         (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New.
7539
7540 2011-07-07  Richard Henderson  <rth@redhat.com>
7541
7542         * dwarf2cfi.c: New file.
7543         * Makefile.in (OBJS): Add it.
7544         (GTFILES): Add dwarf2cfi.c and dwarf2out.h.
7545         * gengtype.c (open_base_files): Include dwarf2out.h.
7546         * coretypes.h (enum var_init_status): Move from ...
7547         * rtl.h: ... here.
7548         * dwarf2out.c (saved_do_cfi_asm, dwarf2out_do_frame,
7549         dwarf2out_do_cfi_asm, cie_cfi_vec, dwarf2out_cfi_label_num,
7550         expand_builtin_dwarf_sp_column, init_return_column_size,
7551         expand_builtin_init_dwarf_reg_sizes, new_cfi, add_cfi,
7552         dwarf2out_cfi_label, emit_cfa_remember, any_cfis_emitted, add_fde_cfi,
7553         lookup_cfa_1, lookup_cfa, cfa, cfa_store, cfa_remember, args_size,
7554         old_args_size, cfa_equal_p, def_cfa_1, reg_save, initial_return_save,
7555         stack_adjust_offset, barrier_args_size, compute_barrier_args_size_1,
7556         compute_barrier_args_size, dwarf2out_args_size,
7557         dwarf2out_stack_adjust, dwarf2out_notice_stack_adjust,
7558         queued_reg_saves, reg_saved_in_data, regs_saved_in_regs,
7559         compare_reg_or_pc, record_reg_saved_in_reg, last_reg_save_label,
7560         queue_reg_save, dwarf2out_flush_queued_reg_saves,
7561         clobbers_queued_reg_save, reg_saved_in, cfa_temp,
7562         dwarf2out_frame_debug_def_cfa, dwarf2out_frame_debug_adjust_cfa,
7563         dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_cfa_register,
7564         dwarf2out_frame_debug_cfa_expression,
7565         dwarf2out_frame_debug_cfa_restore,
7566         dwarf2out_frame_debug_cfa_window_save, dwarf2out_frame_debug_expr,
7567         dwarf2out_frame_debug, dwarf2out_frame_debug_init,
7568         dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state,
7569         get_cfa_from_loc_descr): Move to dwarf2cfi.c.
7570         (dw_cfi_ref, dw_fde_ref, dw_cfi_oprnd_ref, enum dw_cfi_oprnd_type,
7571         dw_cfi_oprnd, dw_cfi_node, cfi_vec, dw_cfa_location, dw_fde_node,
7572         dw_val_ref, dw_die_ref, const_dw_die_ref, dw_loc_descr_ref,
7573         dw_loc_list_ref, enum dw_val_class, dw_vec_const, dw_val_node,
7574         dw_loc_descr_node): Move to dwarf2out.h.
7575         (current_fde, output_cfi_directive, build_cfa_loc, get_address_mode,
7576         mem_loc_descriptor): Export.
7577         (build_cfa_aligned_loc): Export.  Take CFA as a parameter.
7578         (dwarf2out_frame_init): Extract CIE generation code to
7579         dwarf2cfi_frame_init.
7580
7581 2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
7582
7583         PR target/49660
7584         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Add
7585         MASK_V8PLUS, remove commented out flag and reorder.
7586
7587 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
7588
7589         PR c/49644
7590         * c-typeck.c (build_binary_op): For MULT_EXPR and TRUNC_DIV_EXPR with
7591         one non-complex and one complex argument, call c_save_expr on both
7592         operands.
7593
7594 2011-07-07  Martin Jambor  <mjambor@suse.cz>
7595
7596         PR middle-end/49495
7597         * cgraphunit.c (verify_edge_corresponds_to_fndecl): New function.
7598         (verify_cgraph_node): Some functinality moved to
7599         verify_edge_corresponds_to_fndecl, call it.
7600
7601 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
7602
7603         * config.gcc (*local*): Remove.
7604         * doc/install-old.texi: Don't mention local configurations.
7605
7606 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
7607
7608         PR debug/49522
7609         * df-problems.c (dead_debug_reset): Remove dead_debug_uses
7610         referencing debug insns that have been reset.
7611         (dead_debug_insert_before): Don't assert reg is non-NULL,
7612         instead return immediately if it is NULL.
7613
7614 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
7615
7616         * config/i386/t-crtpic, config/i386/t-svr3dbx, config/pa/t-pa: Remove.
7617
7618 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
7619
7620         * hw-doloop.c: New file.
7621         * hw-doloop.h: New file.
7622         * Makefile.in (OBJS): Add hw-doloop.o.
7623         (hw-doloop.o): New rule.
7624         ($(obj_out_file)): Add hw-doloop.h dependency.
7625         * config/bfin/bfin.c: Include "hw-doloop.h".
7626         (loop_info, DEF_VEC_P for loop_info, loop_info_d): Remove.
7627         (bfin_dump_loops, bfin_bb_in_loop, bfin_scan_loop): Remove.
7628         (hwloop_optimize): Renamed from bfin_optimize_loop.  Argument
7629         type changed to hwloop_info.  Return bool, true if the loop was
7630         successfully optimized.  Remove code that was moved to
7631         hw-doloop.c, and adjust other parts.
7632         (hwloop_fail): New static function, containing parts that used
7633         to be in bfin_optimize_loop.
7634         (bfin_discover_loop, bfin_discover_loops, free_loops,
7635         bfin_reorder_loops): Remove.
7636         (hwloop_pattern_reg): New static function.
7637         (bfin_doloop_hooks): New variable.
7638         (bfin_reorg_loops): Remove most code, call reorg_loops.
7639         * config/bfin/bfin.md (doloop_end splitter): Also enable if
7640         loop counter is a memory_operand.
7641
7642 2011-07-07  H.J. Lu  <hongjiu.lu@intel.com>
7643
7644         * config.gcc: Support --with-multilib-list for x86 Linux targets.
7645
7646         * configure.ac: Mention x86-64 for --with-multilib-list.
7647         * configure: Regenerated.
7648
7649         * config/i386/gnu-user64.h (SPEC_64): Support x32.
7650         (SPEC_32): Likewise.
7651         (ASM_SPEC): Likewise.
7652         (LINK_SPEC): Likewise.
7653         (TARGET_THREAD_SSP_OFFSET): Likewise.
7654         (TARGET_THREAD_SPLIT_STACK_OFFSET): Likewise.
7655         (SPEC_X32): New.
7656
7657         * config/i386/i386.h (TARGET_X32): New.
7658         (TARGET_LP64): New.
7659         (LONG_TYPE_SIZE): Likewise.
7660         (POINTER_SIZE): Likewise.
7661         (POINTERS_EXTEND_UNSIGNED): Likewise.
7662         (OPT_ARCH64): Support x32.
7663         (OPT_ARCH32): Likewise.
7664
7665         * config/i386/i386.opt (mx32): New.
7666
7667         * config/i386/kfreebsd-gnu64.h (GNU_USER_LINK_EMULATIONX32): New.
7668         (GLIBC_DYNAMIC_LINKERX32): Likewise.
7669         * config/i386/linux64.h (GNU_USER_LINK_EMULATIONX32): Likewise.
7670         (GLIBC_DYNAMIC_LINKERX32): Likewise.
7671
7672         * config/linux.h (UCLIBC_DYNAMIC_LINKERX32): New.
7673         (BIONIC_DYNAMIC_LINKERX32): Likewise.
7674         (GNU_USER_DYNAMIC_LINKERX32): Likewise.
7675
7676         * config/i386/t-linux64: Support TM_MULTILIB_CONFIG.
7677
7678         * doc/install.texi: Document --with-multilib-list for Linux/x86-64.
7679
7680         * doc/invoke.texi: Document -mx32.
7681
7682 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
7683
7684         * doc/invoke.texi (mwords-little-endian): Deprecate.
7685         * config/arm/arm.opt (mwords-little-endian): Likewise.
7686         * config/arm/arm.c (arm_option_override): Warn about the deprecation
7687         of -mwords-little-endian.
7688
7689 2011-07-07  Richard Sandiford  <richard.sandiford@linaro.org>
7690
7691         * reload1.c (choose_reload_regs): Use mode sizes to check whether
7692         an old reload register completely defines the required value.
7693
7694 2011-07-07  Richard Guenther  <rguenther@suse.de>
7695
7696         * fold-const.c (fold_unary_loc): Do not strip sign-changes
7697         for NEGATE_EXPR.
7698
7699 2011-07-07  Richard Guenther  <rguenther@suse.de>
7700
7701         * tree-vrp.c (simplify_conversion_using_ranges): New function.
7702         (simplify_stmt_using_ranges): Call it.
7703
7704 2011-07-07  Kai Tietz  <ktietz@redhat.com>
7705
7706         * tree-ssa-forwprop.c (truth_valued_ssa_name): New function.
7707         (lookup_logical_inverted_value): Likewise.
7708         (simplify_bitwise_binary_1): Likewise.
7709         (simplify_bitwise_binary): Use simplify_bitwise_binary_1.
7710
7711 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
7712
7713         * gcc.c (%[Spec]): Don't document.
7714         (struct spec_list): Update comment.
7715         (do_spec_1): Don't handle %[Spec].
7716         * doc/invoke.texi (%[@var{name}]): Remove documentation of spec.
7717
7718 2011-07-07  Joseph Myers  <joseph@codesourcery.com>
7719
7720         * common/common-target-def.h (TARGET_HAVE_NAMED_SECTIONS): Don't
7721         default based on TARGET_ASM_NAMED_SECTION.
7722         * common/common-target.def (have_named_sections): Default to true.
7723         * common/config/default-common.c: Don't include tm.h.
7724         * common/config/picochip/picochip-common.c
7725         (TARGET_HAVE_NAMED_SECTIONS): Don't define.
7726         * common/config/m32c/m32c-common.c: Remove.
7727         * config.gcc (m32c*-*-*): Set target_has_targetm_common=no.
7728         * config/alpha/osf5.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7729         * config/i386/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7730         * config/m68k/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7731         * config/pa/som.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7732         * config/pdp11/pdp11.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7733         * config/vax/openbsd.h (TARGET_HAVE_NAMED_SECTIONS): Define to false.
7734
7735 2011-07-07  Jakub Jelinek  <jakub@redhat.com>
7736
7737         PR middle-end/49640
7738         * gimplify.c (gimplify_compound_lval): For last 2 ARRAY_*REF operands
7739         and last COMPONENT_REF operand call gimplify_expr on it if non-NULL.
7740
7741 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7742
7743         PR libmudflap/49550
7744         * gcc.c (MFWRAP_SPEC): Also wrap mmap64.
7745
7746 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7747
7748         PR target/39150
7749         * configure.ac (gcc_cv_as_hidden): Also accept
7750         x86_64-*-solaris2.1[0-9]*.
7751         (gcc_cv_as_cfi_directive): Likewise.
7752         (gcc_cv_as_comdat_group_group): Likewise.
7753         (set_have_as_tls): Likewise.
7754         * configure: Regenerate.
7755         * config.gcc (i[34567]86-*-solaris2*): Also handle
7756         x86_64-*-solaris2.1[0-9]*.
7757         * config.host (i[34567]86-*-solaris2*): Likewise.
7758         * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove.
7759         * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine.
7760         [USE_GLD] (ARCH_DEFAULT_EMULATION): Define.
7761         (TARGET_LD_EMULATION): Use it.
7762         * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define.
7763         (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default.
7764         * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define.
7765         (ASM_CPU64_DEFAULT_SPEC): Define.
7766         (ASM_CPU_SPEC): Use %(asm_cpu_default).
7767         (ASM_SPEC): Redefine.
7768         (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT.
7769         * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce.
7770         * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document.
7771         (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]*
7772         configuration.
7773         (Specific, x86_64-*-solaris2.1[0-9]*): Document.
7774
7775 2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7776
7777         * config/sol2.h (ASM_SPEC): Split into ...
7778         (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this.
7779         * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE.
7780         * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine.
7781         (ASM_SPEC): Use ASM_SPEC_BASE.
7782         * config/sparc/sol2.h (ASM_SPEC): Redefine.
7783
7784 2011-07-07  Georg-Johann Lay  <avr@gjlay.de>
7785
7786         * config/avr/avr.md (*reload_insi): Change predicate #1 to
7787         const_int_operand.  Ditto for peep2 producing this insn.
7788         Add argument to output_reload_insisf call.
7789         (*movsi,*movsf): Add argument to output_movsisf call.
7790         (*reload_insf): New insn and new peep2 to produce it.
7791         * config/avr/avr-protos.h (output_movsisf): Change prototype.
7792         (output_reload_insisf): Change prototype.
7793         * config/avr/avr.c (avr_asm_len): New function.
7794         (output_reload_insisf): Rewrite.
7795         (output_movsisf): Change prototype.  output_reload_insisf for
7796         all CONST_INT and CONST_DOUBLE.  ALlow moving 0.0f to memory.
7797         (adjust_insn_length): Add argument to output_movsisf and
7798         output_reload_insisf call.
7799
7800 2011-07-07  Bernd Schmidt  <bernds@codesourcery.com>
7801
7802         * emit-rtl.c (paradoxical_subreg_p): New function.
7803         * rtl.h (paradoxical_subreg_p): Declare.
7804         * combine.c (set_nonzero_bits_and_sign_copies, get_last_value,
7805         apply_distributive_law, simplify_comparison, simplify_set): Use it.
7806         * cse.c (record_jump_cond, cse_insn): Likewise.
7807         * expr.c (force_operand): Likewise.
7808         * rtlanal.c (num_sign_bit_copies1): Likewise.
7809         * reload1.c (eliminate_regs_1, strip_paradoxical_subreg): Likewise.
7810         * reload.c (push_secondary_reload, find_reloads_toplev): Likewise.
7811         (push_reload): Use precision to check for paradoxical subregs.
7812         * expmed.c (extract_bit_field_1): Likewise.
7813
7814         * machmode.h (HWI_COMPUTABLE_MODE_P): New macro.
7815         * combine.c (set_nonzero_bits_and_sign_copies): Use it.
7816         (find_split-point, combine_simplify_rtx, simplify_if_then_else,
7817         simplify_set, simplify_logical, expand_compound_operation,
7818         make_extraction, force_to_mode, if_then_else_cond, extended_count,
7819         try_widen_shift_mode, simplify_shift_const_1, simplify_comparison,
7820         record_value_for_reg): Likewise.
7821         * expmed.c (expand_widening_mult, expand_mult_highpart): Likewise.
7822         * simplify-rtx. c (simplify_unary_operation_1,
7823         simplify_binary_operation_1, simplify_const_relational_operation):
7824         Likewise.
7825
7826         * explow.c (trunc_int_for_mode): Use GET_MODE_PRECISION
7827         instead of GET_MODE_BITSIZE where appropriate.
7828         * rtlanal.c (subreg_lsb_1, subreg_get_info, nonzero_bits1,
7829         num_sign_bit_copies1, canonicalize_condition, low_bitmask_len,
7830         init_num_sign_bit_copies_in_rep): Likewise.
7831         * cse.c (fold_rtx, cse_insn): Likewise.
7832         * loop-doloop.c (doloop_modify, doloop_optimize): Likewise.
7833         * simplify-rtx.c (simplify_unary_operation_1,
7834         simplify_const_unary_operation, simplify_binary_operation_1,
7835         simplify_const_binary_operation, simplify_ternary_operation,
7836         simplify_const_relational_operation, simplify_subreg): Likewise.
7837         * combine.c (try_combine, find_split_point, combine_simplify_rtx,
7838         simplify_if_then_else, simplify_set, expand_compound_operation,
7839         expand_field_assignment, make_extraction, if_then_else_cond,
7840         make_compound_operation, force_to_mode, make_field_assignment,
7841         reg_nonzero_bits_for_combine, reg_num_sign_bit_copies_for_combine,
7842         extended_count, try_widen_shift_mode, simplify_shift_const_1,
7843         simplify_comparison, record_promoted_value, simplify_compare_const,
7844         record_dead_and_set_regs_1): Likewise.
7845
7846         Revert:
7847         * simplify-rtx.c (simplify_const_binary_operation): Use the
7848         shift_truncation_mask hook instead of performing modulo by width.
7849         Compare against mode precision, not bitsize.
7850         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
7851         Use shift_truncation_mask instead of constructing the value manually.
7852
7853 2011-07-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
7854
7855         * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): New
7856         declaration.
7857         (rs6000_save_toc_in_prologue_p): Ditto.
7858
7859         * config/rs6000/rs6000.opt (-mr11): New switch to disable loading
7860         up the static chain (r11) during indirect function calls.
7861         (-msave-toc-indirect): New undocumented debug switch.
7862
7863         * config/rs6000/rs6000.c (struct machine_function): Add
7864         save_toc_in_prologue field to note whether the prologue needs to
7865         save the TOC value in the reserved stack location.
7866         (rs6000_emit_prologue): Use TOC_REGNUM instead of 2.  If we need
7867         to save the TOC in the prologue, do so.
7868         (rs6000_trampoline_init): Don't allow creating AIX style
7869         trampolines if -mno-r11 is in effect.
7870         (rs6000_call_indirect_aix): New function to create AIX style
7871         indirect calls, adding support for -mno-r11 to suppress loading
7872         the static chain, and saving the TOC in the prologue instead of
7873         the call body.
7874         (rs6000_save_toc_in_prologue_p): Return true if we are saving the
7875         TOC in the prologue.
7876
7877         * config/rs6000/rs6000.md (STACK_POINTER_REGNUM): Add more fixed
7878         register numbers.
7879         (TOC_REGNUM): Ditto.
7880         (STATIC_CHAIN_REGNUM): Ditto.
7881         (ARG_POINTER_REGNUM): Ditto.
7882         (SFP_REGNO): Delete, unused.
7883         (TOC_SAVE_OFFSET_32BIT): Add constants for AIX TOC save and
7884         function descriptor offsets.
7885         (TOC_SAVE_OFFSET_64BIT): Ditto.
7886         (AIX_FUNC_DESC_TOC_32BIT): Ditto.
7887         (AIX_FUNC_DESC_TOC_64BIT): Ditto.
7888         (AIX_FUNC_DESC_SC_32BIT): Ditto.
7889         (AIX_FUNC_DESC_SC_64BIT): Ditto.
7890         (ptrload): New mode attribute for the appropriate load of a pointer.
7891         (call_indirect_aix32): Delete, rewrite AIX indirect function calls.
7892         (call_indirect_aix64): Ditto.
7893         (call_value_indirect_aix32): Ditto.
7894         (call_value_indirect_aix64): Ditto.
7895         (call_indirect_nonlocal_aix32_internal): Ditto.
7896         (call_indirect_nonlocal_aix32): Ditto.
7897         (call_indirect_nonlocal_aix64_internal): Ditto.
7898         (call_indirect_nonlocal_aix64): Ditto.
7899         (call): Rewrite AIX indirect function calls.  Add support for
7900         eliminating the static chain, and for moving the save of the TOC
7901         to the function prologue.
7902         (call_value): Ditto.
7903         (call_indirect_aix<ptrsize>): Ditto.
7904         (call_indirect_aix<ptrsize>_internal): Ditto.
7905         (call_indirect_aix<ptrsize>_internal2): Ditto.
7906         (call_indirect_aix<ptrsize>_nor11): Ditto.
7907         (call_value_indirect_aix<ptrsize>): Ditto.
7908         (call_value_indirect_aix<ptrsize>_internal): Ditto.
7909         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
7910         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
7911         (call_nonlocal_aix32): Relocate in the rs6000.md file.
7912         (call_nonlocal_aix64): Ditto.
7913
7914         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mr11 and
7915         -mno-r11 documentation.
7916
7917 2011-07-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
7918
7919         PR other/49658
7920         * doc/extend.texi (Compound Literals): Fix typo.
7921
7922 2011-07-06  James Greenhalgh  <james.greenhalgh@arm.com>
7923
7924         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add __ARM_FEATURE_DSP.
7925
7926 2011-07-06  Basile Starynkevitch  <basile@starynkevitch.net>
7927
7928         * configure.ac (plugin-version.h): Generate
7929         GCCPLUGIN_VERSION_MAJOR, GCCPLUGIN_VERSION_MINOR,
7930         GCCPLUGIN_VERSION_PATCHLEVEL, GCCPLUGIN_VERSION constant integer
7931         macros.
7932
7933         * configure: Regenerate.
7934
7935         * doc/plugins.texi (Building GCC plugins): Mention
7936         GCCPLUGIN_VERSION ... constant macros in plugin-version.h.
7937
7938 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
7939
7940         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): New macro.
7941         * combine.c (make_extraction, gen_lowpart_or_truncate,
7942         apply_distributive_law, simplify_comparison,
7943         reg_truncated_to_mode, record_truncated_value): Use it.
7944         * cse.c (notreg_cost): Likewise.
7945         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
7946         * expr.c (convert_move, convert_modes): Likewise.
7947         * optabs.c (expand_binop, expand_unop): Likewise.
7948         * postreload.c (move2add_last_label): Likewise.
7949         * regmove.c (optimize_reg_copy_3): Likewise.
7950         * rtlhooks.c (gen_lowpart_general): Likewise.
7951         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7952
7953 2011-07-06  Joseph Myers  <joseph@codesourcery.com>
7954
7955         * config/rs6000/vxworks.h (WORDS_BIG_ENDIAN): Define.
7956
7957 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
7958
7959         * cse.c (find_comparison_args): Use val_mode_signbit_set_p.
7960         * simplify-rtx.c (mode_signbit_p): Use GET_MODE_PRECISION.
7961         (val_mode_signbit_p, val_mode_signbit_set_p): New functions.
7962         (simplify_const_unary_operation, simplify_binary_operation_1,
7963         simplify_const_binary_operation, simplify_const_relational_operation):
7964         Use them.  Use GET_MODE_MASK for masking and sign-extensions.
7965         * combine.c (set_nonzero_bits_and_sign_copies, simplify_set,
7966         combine_simplify_rtx, force_to_mode, reg_nonzero_bits_for_combine,
7967         simplify_shift_const_1, simplify_comparison): Likewise.
7968         * expr.c (convert_modes): Likewise.
7969         * rtlanal.c (nonzero_bits1, canonicalize_condition): Likewise.
7970         * expmed.c (emit_cstore, emit_store_flag_1, emit_store_flag): Likewise.
7971         * rtl.h (val_mode_signbit_p, val_mode_signbit_set_p): Declare.
7972
7973         * simplify-rtx.c (simplify_ternary_operation): Remove dead code.
7974
7975 2011-07-06  Richard Guenther  <rguenther@suse.de>
7976
7977         PR tree-optimization/49645
7978         * c-decl.c (finish_decl): Also set DECL_HARD_REGISTER for global
7979         register variables.
7980         * tree-ssa-sccvn.c (vn_reference_op_eq): Disregard differences
7981         in type qualification here ...
7982         (copy_reference_ops_from_ref): ... not here.
7983         (vn_reference_lookup_3): ... or here.
7984         (copy_reference_ops_from_ref): Record decl bases as MEM[&decl].
7985         (vn_reference_lookup): Do the lookup with a valueized ao-ref.
7986
7987 2011-07-06  Ian Lance Taylor  <iant@google.com>
7988
7989         * doc/install.texi (Configuration): It's
7990         --enable-gnu-indirect-function, not --enable-indirect-function.
7991
7992 2011-07-06  Bernd Schmidt  <bernds@codesourcery.com>
7993
7994         * simplify-rtx.c (simplify_const_binary_operation): Use the
7995         shift_truncation_mask hook instead of performing modulo by width.
7996         Compare against mode precision, not bitsize.
7997         * combine.c (combine_simplify_rtx, simplify_shift_const_1):
7998         Use shift_truncation_mask instead of constructing the value manually.
7999
8000 2011-07-06  H.J. Lu  <hongjiu.lu@intel.com>
8001
8002         PR middle-end/47383
8003         * tree-ssa-address.c (addr_for_mem_ref): Use pointer_mode for
8004         address computation and convert to address_mode if needed.
8005
8006 2011-07-06  Richard Guenther  <rguenther@suse.de>
8007
8008         * tree.c (build_common_tree_nodes_2): Merge with
8009         build_common_tree_nodes.
8010         * tree.h (build_common_tree_nodes): Adjust prototype.
8011         (build_common_tree_nodes_2): Remove.
8012         * doc/tm.texi.in (lang_hooks.builtin_function): Adjust.
8013         * doc/tm.texi (lang_hooks.builtin_function): Regenerate.
8014
8015 2011-07-05  Jakub Jelinek  <jakub@redhat.com>
8016
8017         PR tree-optimization/49618
8018         * tree-eh.c (tree_could_trap_p) <case CALL_EXPR>: For DECL_WEAK
8019         t recurse on the decl.
8020         <case FUNCTION_DECL, case VAR_DECL>: For DECL_WEAK decls
8021         return true if expr isn't known to be defined in current
8022         TU or some other LTO partition.
8023
8024 2011-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
8025
8026         * params.def (PARAM_CASE_VALUES_THRESHOLD): New parameter to
8027         override CASE_VALUES_THRESHOLD.
8028
8029         * stmt.c (toplevel): Include params.h.
8030         (case_values_threshold): Use the --param case-values-threshold
8031         value if non-zero, otherwise use machine dependent value.
8032         (expand_case): Use case_values_threshold.
8033
8034         * Makefile.in (stmt.o): Add $(PARAMS_H) dependency.
8035
8036         * doc/invoke.texi (--param case-values-threshold): Document.
8037
8038 2011-07-05  Richard Henderson  <rth@redhat.com>
8039
8040         * dwarf2out.c (dwarf2out_cfi_label): Make static.
8041         (dwarf2out_flush_queued_reg_saves): Make static.
8042         (dwarf2out_reg_save): Remove.
8043         (dwarf2out_return_save): Remove.
8044         (dwarf2out_return_reg): Remove.
8045         (dwarf2out_reg_save_reg): Remove.
8046         (dwarf2out_def_cfa): Merge into ...
8047         (dwarf2out_frame_init): ... here.
8048         * dwarf2out.h, tree.h: Remove declarations as necessary.
8049
8050 2011-07-05  Richard Henderson  <rth@redhat.com>
8051
8052         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): Remove.
8053         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
8054         (ia64_expand_epilogue): Emit an empty FRAME_RELATED_EXPR for
8055         the alloc insn.
8056
8057         * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove.
8058         (IA64_CHANGE_CFA_IN_EPILOGUE): Remove.
8059         (process_epilogue): Don't call dwarf2out_def_cfa.
8060
8061         * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to
8062         indicate the return address save.
8063         (process_cfa_register): Likewise.
8064
8065         * config/ia64/ia64.c (ia64_dwarf2out_def_steady_cfa): Remove.
8066         (process_cfa_adjust_cfa, ia64_asm_unwind_emit): Don't call it.
8067
8068         * config/ia64/ia64.c (ia64_expand_prologue): Emit REG_CFA_REGISTER
8069         for ar.pfs save at alloc insn.
8070
8071 2011-07-05  Richard Henderson  <rth@redhat.com>
8072
8073         * config/arm/arm.c (arm_dwarf_handle_frame_unspec): Remove.
8074         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
8075         (arm_expand_prologue): Use REG_CFA_REGISTER to mark the
8076         stack pointer save.
8077         (arm_unwind_emit_set): Don't recognize UNSPEC_STACK_ALIGN.
8078         (arm_unwind_emit): Walk REG_NOTES for unwinding notes.  Emit
8079         proper unwind info for a REG_CFA_REGISTER save of stack pointer.
8080         * config/arm/arm.md (UNSPEC_STACK_ALIGN): Remove.
8081
8082 2011-07-05  Richard Henderson  <rth@redhat.com>
8083
8084         * config/vax/vax.md (define_c_enum unspecv): New.  Define the
8085         VUNSPEC_* constants here instead of via define_constants.
8086         (VUNSPEC_PEM): New constant.
8087         (procedure_entry_mask): New insn.
8088         (prologue): New expander.
8089         * config/vax/vax.c (vax_add_reg_cfa_offset): New.
8090         (vax_expand_prologue): Rename from vax_output_function_prologue;
8091         emit rtl instead of text.
8092         (TARGET_ASM_FUNCTION_PROLOGUE): Remove.
8093         (print_operand): Add 'x' prefix.
8094
8095 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
8096
8097         PR middle-end/47715
8098         * calls.c (precompute_register_parameters): Promote the function
8099         argument before checking non-legitimate constant.
8100
8101 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
8102
8103         PR tree-optimization/47654
8104         * graphite-blocking.c (pbb_strip_mine_time_depth): Do not return bool.
8105         (lst_do_strip_mine_loop): Return an int.
8106         (lst_do_strip_mine): Same.
8107         (scop_do_strip_mine): Same.
8108         (scop_do_block): Loop blocking should strip-mine at least two loops.
8109         * graphite-interchange.c (lst_interchange_select_outer): Return an int.
8110         (scop_do_interchange): Same.
8111         * graphite-poly.h (scop_do_interchange): Update declaration.
8112         (scop_do_strip_mine): Same.
8113
8114 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
8115
8116         * graphite-clast-to-gimple.c (precision_for_value): Removed.
8117         (precision_for_interval): Removed.
8118         (gcc_type_for_interval): Use mpz_sizeinbase.
8119
8120 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
8121
8122         * graphite-ppl.h (value_max): Correct computation of max.
8123
8124 2011-07-05  Sebastian Pop  <sebastian.pop@amd.com>
8125
8126         * graphite-clast-to-gimple.c (clast_name_to_index): Add missing space.
8127
8128 2011-07-05  Richard Guenther  <rguenther@suse.de>
8129
8130         * c-decl.c (c_init_decl_processing): Defer building common
8131         tree nodes to c_common_nodes_and_builtins.
8132
8133 2011-07-05  Razya Ladelsky  <razya@il.ibm.com>
8134
8135         PR tree-optimization/49580
8136         * tree-cfg.c (gimple_duplicate_sese_tail): Remove handling of
8137         the loop's number of iterations.
8138         * tree-parloops.c (transform_to_exit_first_loop): Add the
8139         handling of the loop's number of iterations before the call
8140         to gimple_duplicate_sese_tail.
8141         Insert the stmt caclculating the new rhs of the loop's
8142         condition stmt to the preheader instead of iters_bb.
8143
8144 2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>
8145
8146         PR rtl-optimization/47449
8147         * fwprop.c (forward_propagate_subreg): Don't propagate hard
8148         register nor zero/sign extended hard register.
8149
8150 2011-07-05  Richard Guenther  <rguenther@suse.de>
8151
8152         PR tree-optimization/49518
8153         PR tree-optimization/49628
8154         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Skip
8155         irrelevant and invariant data-references.
8156         (vect_analyze_data_ref_access): For invariant loads clear the
8157         group association.
8158
8159 2011-07-04  Jakub Jelinek  <jakub@redhat.com>
8160
8161         PR rtl-optimization/49619
8162         * combine.c (combine_simplify_rtx): In PLUS -> IOR simplification
8163         pass VOIDmode as op0_mode to recursive call, and return temp even
8164         when different from tor, just if it is not IOR of the original
8165         PLUS arguments.
8166
8167         PR rtl-optimization/49472
8168         * simplify-rtx.c (simplify_unary_operation_1) <case NEG>: When
8169         negating MULT, negate the second operand instead of first.
8170         (simplify_binary_operation_1) <case MULT>: If one operand is
8171         a NEG and the other is MULT, don't attempt to optimize by negation
8172         of the MULT operand if it only moves the NEG operation around.
8173
8174         PR debug/49602
8175         * tree-into-ssa.c (rewrite_debug_stmt_uses): Disregard
8176         get_current_def return value if it can't be trusted to be
8177         the current value of the variable in the current bb.
8178
8179 2011-07-04  Uros Bizjak  <ubizjak@gmail.com>
8180
8181         PR target/49600
8182         * config/i386/i386.md (SSE2 int->float split): Push operand 1 in
8183         general register to memory for !TARGET_INTER_UNIT_MOVES.
8184
8185 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
8186
8187         PR target/44643
8188         * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
8189         instead of TREE_READONLY.
8190
8191 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
8192
8193         * doc/extend.texi (AVR Built-in Functions): Update documentation
8194         of __builtin_avr_fmul*.
8195         * config/avr/avr.c (avr_init_builtins): Don't depend on AVR_HAVE_MUL.
8196         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Ditto.
8197         * config/avr/avr.md (fmul): Rename to fmul_insn.
8198         (fmuls): Rename to fmuls_insn.
8199         (fmulsu): Rename to fmulsu_insn.
8200         (fmul,fmuls,fmulsu): New expander.
8201         (*fmul.call,*fmuls.call,*fmulsu.call): New Insn.
8202         * config/avr/t-avr (LIB1ASMFUNCS): Add _fmul, _fmuls, _fmulsu.
8203         * config/avr/libgcc.S (__fmul): New function.
8204         (__fmuls): New function.
8205         (__fmulsu,__fmulsu_exit): New function.
8206
8207 2011-07-04  Richard Guenther  <rguenther@suse.de>
8208
8209         PR tree-optimization/49615
8210         * tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Fix
8211         basic-block index check.
8212
8213 2011-07-04  Georg-Johann Lay  <avr@gjlay.de>
8214
8215         * longlong.h (count_leading_zeros, count_trailing_zeros,
8216         COUNT_LEADING_ZEROS_0): Define for target avr if W_TYPE_SIZE is 16
8217         resp. 64.
8218
8219 2011-07-03  Ira Rosen  <ira.rosen@linaro.org>
8220
8221         PR tree-optimization/49610
8222         * tree-vect-loop.c (vect_is_slp_reduction): Check that DEF_STMT has
8223         a basic block.
8224
8225 2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
8226             Olivier Hainque  <hainque@adacore.com>
8227             Nicolas Setton  <setton@adacore.com>
8228
8229         * tree.h (TYPE_ARTIFICIAL): New flag.
8230         * dwarf2out.c (modified_type_die): Add a DW_AT_artificial attribute to
8231         the DIE of the type if it is artificial.
8232         (gen_array_type_die): Likewise.
8233         (gen_enumeration_type_die): Likewise.
8234         (gen_struct_or_union_type_die): Likewise.
8235         * lto-streamer-in.c (unpack_ts_base_value_fields): Use TYPE_ARTIFICIAL.
8236         * lto-streamer-out.c (pack_ts_base_value_fields): Likewise.
8237
8238 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
8239
8240         * tree-object-size.c (pass_through_call): Handle
8241         BUILT_IN_ASSUME_ALIGNED.
8242
8243 2011-07-01  Martin Jambor  <mjambor@suse.cz>
8244
8245         * tree-sra.c (tree_non_mode_aligned_mem_p): Also ignore MEM_REFs.
8246
8247 2011-07-01  H.J. Lu  <hongjiu.lu@intel.com>
8248
8249         PR middle-end/48016
8250         * explow.c (update_nonlocal_goto_save_area): Use proper mode
8251         for stack save area.
8252         * function.c (expand_function_start): Likewise.
8253
8254 2011-07-01  Richard Guenther  <rguenther@suse.de>
8255
8256         PR middle-end/49596
8257         * cgraph.h (varpool_all_refs_explicit_p): Not analyzed nodes
8258         may have unknown refs.
8259
8260 2011-07-01  Kai Tietz  <ktietz@redhat.com>
8261
8262         * tree-ssa-forwprop.c (simplify_bitwise_binary): Fix typo.
8263
8264 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8265
8266         * config.gcc: Obsolete alpha*-dec-osf5.1, mips-sgi-irix6.5.
8267         * doc/install.texi (Specific, alpha*-dec-osf5.1): Document it.
8268         (Specific, mips-sgi-irix6): Likewise.
8269
8270 2011-07-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8271
8272         PR libmudflap/49549
8273         * doc/sourcebuild.texi (Effective-Target Keywords): Document gld.
8274
8275 2011-07-01  Jakub Jelinek  <jakub@redhat.com>
8276
8277         * tree-pretty-print.c (dump_generic_code) <case CONSTRUCTOR>: Print
8278         [idx]= and [idx1 ... idx2]= before initializers if needed for
8279         array initializers.
8280
8281 2011-07-01  Chen Liqin  <liqin.gcc@gmail.com>
8282
8283         * config.gcc (score-*-elf): Remove score7.o.
8284         * config/score/t-score-elf: Likewise.
8285         * config/score/score.c: Merge score7 to score.c and
8286         remove forwarding functions.
8287         * config/score/score7.c: Deleted.
8288         * config/score/score7.h: Deleted.
8289
8290 2011-07-01  Richard Guenther  <rguenther@suse.de>
8291
8292         PR tree-optimization/49603
8293         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary assert.
8294
8295 2011-06-30  Martin Jambor  <mjambor@suse.cz>
8296
8297         * tree-sra.c (struct access): Rename total_scalarization to
8298         grp_total_scalarization
8299         (completely_scalarize_var): New function.
8300         (sort_and_splice_var_accesses): Set total_scalarization in the
8301         representative access.
8302         (analyze_access_subtree): Propagate total scalarization accross the
8303         tree, no holes in totally scalarized trees, simplify coverage
8304         computation.
8305         (analyze_all_variable_accesses): Call completely_scalarize_var instead
8306         of completely_scalarize_record.
8307
8308 2011-06-30  Richard Henderson  <rth@redhat.com>
8309
8310         * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
8311         (TARGET_DEEP_BRANCH_PREDICTION): Remove.
8312         * config/i386/i386.c: Don't include dwarf2out.h.
8313         (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
8314         (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
8315         all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
8316         (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
8317         (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.
8318
8319 2011-06-30  Richard Henderson  <rth@redhat.com>
8320
8321         * reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
8322         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
8323         * final.c (final_scan_insn): Look for it, and invoke
8324         dwarf2out_frame_debug before the insn if found.
8325
8326 2011-06-30  Richard Henderson  <rth@redhat.com>
8327
8328         * dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
8329         as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.
8330
8331 2011-06-30  Richard Henderson  <rth@redhat.com>
8332
8333         * dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
8334         Define a vector of this type.
8335         (regs_saved_in_regs): Use a VEC.
8336         (num_regs_saved_in_regs): Remove.
8337         (compare_reg_or_pc): New.
8338         (record_reg_saved_in_reg): Split out from...
8339         (dwarf2out_flush_queued_reg_saves): ... here.
8340         (clobbers_queued_reg_save): Update for VEC.
8341         (reg_saved_in): Likewise.
8342         (dwarf2out_frame_debug_init): Likewise.
8343         (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
8344         (dwarf2out_frame_debug_cfa_register): Likewise.
8345
8346 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
8347
8348         PR tree-optimization/49572
8349         * tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
8350         type of the RHS instead of that of the LHS for the expression type.
8351
8352 2011-06-30  Eric Botcazou  <ebotcazou@adacore.com>
8353
8354         * df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
8355         unconditionally.
8356
8357 2011-06-30  Richard Guenther  <rguenther@suse.de>
8358
8359         * opts.c (finish_options): Do not disable IPA-PTA during ltrans.
8360         * tree-ssa-structalias.c (create_variable_info_for): Do not
8361         add initial constraints for non-var-decls.  Properly handle
8362         globals in other ltrans partitions.
8363         (intra_create_variable_infos): Manually create constraints for
8364         the fake no-alias parameter.
8365         (ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
8366         and assert there are no clones.
8367
8368 2011-06-30  Richard Guenther  <rguenther@suse.de>
8369
8370         PR tree-optimization/46787
8371         * tree-data-ref.c (dr_address_invariant_p): Remove.
8372         (find_data_references_in_stmt): Invariant accesses are ok now.
8373         * tree-vect-stmts.c (vectorizable_load): Handle invariant loads.
8374         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
8375         invariant loads.
8376
8377 2011-06-30  Martin Jambor  <mjambor@suse.cz>
8378
8379         PR tree-optimization/49094
8380         * tree-sra.c (tree_non_mode_aligned_mem_p): New function.
8381         (build_accesses_from_assign): Use it.
8382
8383 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
8384
8385         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
8386         handling of BUILT_IN_ASSUME_ALIGNED.
8387
8388         PR debug/49364
8389         * dwarf2out.c (output_abbrev_section): Don't return early
8390         if abbrev_die_table_in_use is 1.
8391         (dwarf2out_finish): Instead don't call output_abbrev_section
8392         nor emit abbrev_section_label in that case.
8393
8394 2011-06-30  Nick Clifton  <nickc@redhat.com>
8395
8396         * config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
8397         for the V850E.
8398
8399 2011-06-30  Jakub Jelinek  <jakub@redhat.com>
8400
8401         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
8402         handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
8403
8404 2011-06-30  Ira Rosen  <ira.rosen@linaro.org>
8405
8406         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
8407         both pattern and original statements if necessary.
8408         (vect_transform_loop): Likewise.
8409         * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
8410         * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
8411         Mark the pattern statement only if the original statement doesn't
8412         have its own uses.
8413         (process_use): Call vect_mark_relevant with additional parameter.
8414         (vect_mark_stmts_to_be_vectorized): Likewise.
8415         (vect_get_vec_def_for_operand): Use vectorized pattern statement.
8416         (vect_analyze_stmt): Handle both pattern and original statements
8417         if necessary.
8418         (vect_transform_stmt): Don't store vectorized pattern statement
8419         in the original statement.
8420         (vect_is_simple_use_1): Use related pattern statement only if the
8421         original statement is irrelevant.
8422         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
8423
8424 2011-06-29  Changpeng Fang  <changpeng.fang@amd.com>
8425
8426         * config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask
8427         option.
8428         * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL
8429         entry.
8430         (TARGET_AVX128_OPTIMAL): New definition.
8431         * config/i386/i386.c (initial_ix86_tune_features): Initialize
8432         X86_TUNE_AVX128_OPTIMAL entry.
8433         (ix86_option_override_internal): Enable the generation
8434         of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
8435         (ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
8436         (ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.
8437
8438 2011-06-29  Eric Botcazou  <ebotcazou@adacore.com>
8439
8440         PR tree-optimization/49539
8441         * tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
8442         names by means of stmt_references_abnormal_ssa_name.
8443         (associate_plusminus): Call can_propagate_from before propagating
8444         from definition statements.
8445         (ssa_forward_propagate_and_combine): Remove superfluous newline.
8446
8447 2011-06-29  Richard Guenther  <rguenther@suse.de>
8448
8449         * doc/invoke.texi: Document -scev dump modifier.
8450         * tree-pass.h (TDF_SCEV): New dump flag.
8451         * tree-dump.c (dump_option_value_in): Add scev.
8452         * tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
8453         * tree-scalar-evolution.c: Likewise.
8454
8455 2011-06-29  Nathan Sidwell  <nathan@codesourcery.com>
8456
8457         * config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
8458         (cxa_type_match): Correct declaration.
8459         (__gnu_unwind_pr_common): Reconstruct additional indirection
8460         when __cxa_type_match returns succeeded_with_ptr_to_base.
8461
8462 2011-06-29  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8463
8464         PR rtl-optimization/49114
8465         * reload.c (struct replacement): Remove SUBREG_LOC member.
8466         (push_reload): Do not set it.
8467         (push_replacement): Likewise.
8468         (subst_reload): Remove dead code.
8469         (copy_replacements): Remove assertion.
8470         (copy_replacements_1): Do not handle SUBREG_LOC.
8471         (move_replacements): Likewise.
8472         (find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
8473         Detect subregs via recursive descent instead of via SUBREG_LOC.
8474
8475 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
8476
8477         * config/avr/avr.c (avr_encode_section_info): Dispatch to
8478         default_encode_section_info.
8479
8480 2011-06-29  Richard Sandiford  <richard.sandiford@linaro.org>
8481
8482         PR tree-optimization/49545
8483         * builtins.c (get_object_alignment_1): Update function comment.
8484         Do not use DECL_ALIGN for functions, but test
8485         TARGET_PTRMEMFUNC_VBIT_LOCATION instead.
8486         * fold-const.c (get_pointer_modulus_and_residue): Don't check
8487         for functions here.
8488         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
8489
8490 2011-06-29  Jakub Jelinek  <jakub@redhat.com>
8491
8492         PR debug/49567
8493         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTEND>: Give up for
8494         non-MODE_INT modes instead of asserting the mode has MODE_INT class.
8495
8496 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
8497
8498         PR target/34734
8499         * config/avr/avr.c (avr_handle_progmem_attribute): Move warning
8500         about uninitialized data attributed 'progmem' from here...
8501         (avr_encode_section_info): ...to this new function.
8502         (TARGET_ENCODE_SECTION_INFO): New define.
8503         (avr_section_type_flags): For data in ".progmem.data", remove
8504         section flag SECTION_WRITE.
8505
8506 2011-06-29  Georg-Johann Lay  <avr@gjlay.de>
8507
8508         * config/avr/t-avr (LIB1ASMFUNCS): Add _mulhisi3, _umulhisi3,
8509         _xmulhisi3_exit.
8510         * config/avr/libgcc.S (_xmulhisi3_exit): New Function.
8511         (__mulhisi3): Optimize if have MUL*.  Use XJMP instead of rjmp.
8512         (__umulhisi3): Ditto.
8513         * config/avr/avr.md (mulhisi3): New insn expender.
8514         (umulhisi3): New insn expender.
8515         (*mulhisi3_call): New insn.
8516         (*umulhisi3_call): New insn.
8517
8518 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
8519
8520         * Makefile.in (LIBGCC2_CFLAGS): Remove -D__GCC_FLOAT_NOT_NEEDED.
8521
8522 2011-06-28  Richard Henderson  <rth@redhat.com>
8523
8524         * config/arm/arm.c (thumb_pop): Rename from thumb_pushpop.  Delete
8525         all code and arguments that handled pushes.  Update all callers.
8526
8527 2011-06-28  Richard Henderson  <rth@redhat.com>
8528
8529         * config/arm/arm.c (arm_output_function_prologue): Don't call
8530         thumb1_output_function_prologue.
8531         (arm_expand_prologue): Avoid dead store.
8532         (number_of_first_bit_set): Use ctz_hwi.
8533         (thumb1_emit_multi_reg_push): New.
8534         (thumb1_expand_prologue): Merge thumb1_output_function_prologue
8535         to emit the entire prologue as rtl.
8536         (thumb1_output_interwork): Split out from
8537         thumb1_output_function_prologue.
8538         (thumb1_output_function_prologue): Remove.
8539         (arm_attr_length_push_multi): Handle thumb1.
8540         * config/arm/arm.md (VUNSPEC_THUMB1_INTERWORK): New.
8541         (prologue_thumb1_interwork): New.
8542         (*push_multi): Allow thumb1; use push_mult_memory_operand.
8543         * config/arm/predicates.md (push_mult_memory_operand): New.
8544
8545 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
8546
8547         * config/sparc/sync.md (*stbar): Delete.
8548         (*membar_v8): New insn to implement UNSPEC_MEMBAR in SPARC-V8.
8549
8550 2011-06-28  Eric Botcazou  <ebotcazou@adacore.com>
8551
8552         * tree-ssa-dom.c (initialize_hash_element): Fix oversight.
8553
8554 2011-06-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8555
8556         * config/sparc/sol2-64.h (TARGET_DEFAULT): Remove.
8557         (TARGET_64BIT_DEFAULT): Define.
8558         * config.gcc (sparc*-*-solaris2*): Move sparc/sol2-64.h to front
8559         of tm_file.
8560         * config/sparc/sol2.h [TARGET_64BIT_DEFAULT] (TARGET_DEFAULT): Define.
8561
8562 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
8563
8564         * common.opt (in_lto_p): New Variable entry.
8565         * flags.h (in_lto_p): Move to common.opt.
8566         * gcc.c: Include params.h.
8567         (set_option_handlers): Also use common_handle_option and
8568         target_handle_option.
8569         (main): Call global_init_params, finish_params and init_options_struct.
8570         * opts.c (debug_type_names): Move from toplev.c.
8571         (print_filtered_help): Access quiet_flag through opts pointer.
8572         (common_handle_option): Return early in the driver for some options.
8573         Access in_lto_p, dwarf_version and warn_maybe_uninitialized through
8574         opts pointer.
8575         * toplev.c (in_lto_p): Move to common.opt.
8576         (debug_type_names): Move to opts.c.
8577         * Makefile.in (OBJS): Remove opts.o.
8578         (OBJS-libcommon-target): Add opts.o.
8579         (gcc.o): Update dependencies.
8580
8581 2011-06-28  Kai Tietz  <ktietz@redhat.com>
8582
8583         * tree-ssa-forwprop.c (simplify_bitwise_binary): Improve type sinking.
8584
8585 2011-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8586
8587         * config/arm/vfp.md ("*divsf3_vfp"): Replace '+' constraint modifier
8588         with '=' constraint modifier.
8589         (*divdf3_vfp): Likewise.
8590         ("*mulsf3_vfp"): Likewise.
8591         ("*muldf3_vfp"): Likewise.
8592         ("*mulsf3negsf_vfp"): Likewise.
8593         ("*muldf3negdf_vfp"): Likewise.
8594
8595 2011-06-28  Nick Clifton  <nickc@redhat.com>
8596
8597         * config/mn10300/mn10300.h (LINK_SPEC): Do not use linker
8598         relaxation when performing an incremental link.
8599
8600 2011-06-28  Kai Tietz  <ktietz@redhat.com>
8601
8602         * tree-ssa-math-opts.c (execute_optimize_bswap): Search
8603         within BB from last to first.
8604
8605 2011-06-28  Joseph Myers  <joseph@codesourcery.com>
8606
8607         * genattr-common.c: New.  Based on genattr.c.
8608         * Makefile.in (INSN_ATTR_H): Include insn-attr-common.h.
8609         (MOSTLYCLEANFILES): Add insn-attr-common.h.
8610         (opts.o): Update dependencies.
8611         (.PRECIOUS): Add insn-attr-common.h.
8612         (simple_rtl_generated_h): Add insn-attr-common.h.
8613         (build/genattr-common.o): New.
8614         (genprogrtl): Add attr-common.
8615         * genattr.c (main): Include insn-attr-common.h.  Don't generate
8616         definitions of DELAY_SLOTS or INSN_SCHEDULING.
8617         * opts.c: Include insn-attr-common.h instead of rtl.h and insn-attr.h.
8618
8619 2011-06-28  Georg-Johann Lay  <avr@gjlay.de>
8620
8621         * config.gcc (tm_file): Add elfos.h and avr/elf.h for
8622         avr-*-* and avr-*-rtems* targets.
8623
8624         * config/avr/elf.h: New file.
8625         (ASM_OUTPUT_BEFORE_CASE_LABEL): Define.
8626         (TARGET_ASM_SELECT_SECTION): Define.
8627         (INIT_SECTION_ASM_OP): Undefine.
8628         (FINI_SECTION_ASM_OP): Undefine.
8629         (READONLY_DATA_SECTION_ASM_OP): Undefine.
8630         (PCC_BITFIELD_TYPE_MATTERS): Undefine.
8631         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Undefine.
8632         * config/avr/avr.h:
8633         (PREFERRED_DEBUGGING_TYPE): Move to elf.h.
8634         (TARGET_ASM_NAMED_SECTION): Move to elf.h.
8635         (MAX_OFILE_ALIGNMENT): Move to elf.h.
8636         (STRING_LIMIT): Move to elf.h.
8637         (ASM_DECLARE_FUNCTION_NAME): Move to elf.h.
8638         (ASM_DECLARE_OBJECT_NAME): Remove.
8639         (ESCAPES): Remove.
8640         (ASM_OUTPUT_SKIP): Remove.
8641         (DWARF2_DEBUGGING_INFO): Remove.
8642         (OBJECT_FORMAT_ELF): Remove.
8643         (USER_LABEL_PREFIX): Remove.
8644         (ASM_OUTPUT_EXTERNAL): Remove.
8645         (ASM_OUTPUT_ASCII): Remove.
8646         (TYPE_ASM_OP): Remove.
8647         (SIZE_ASM_OP): Remove.
8648         (WEAK_ASM_OP): Remove.
8649         (STRING_ASM_OP): Remove.
8650         (SET_ASM_OP): Remove.
8651         (ASM_WEAKEN_LABEL): Remove.
8652         (TYPE_OPERAND_FMT): Remove.
8653         (ASM_DECLARE_FUNCTION_SIZE): Remove.
8654         (ASM_FINISH_DECLARE_OBJECT): Remove.
8655         (NO_DOLLAR_IN_LABEL): Remove.
8656         (ASM_GENERATE_INTERNAL_LABEL): Remove.
8657         (ASM_OUTPUT_CASE_LABEL): Remove.
8658         * config/avr/avr.c (avr_asm_output_aligned_decl_common): Use
8659         ASM_OUTPUT_ALIGNED_LOCAL, ASM_OUTPUT_ALIGNED_COMMON.
8660         (gas_output_ascii): Remove.
8661         (gas_output_limited_string): Remove.
8662         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
8663         * config/avr/avr-protos.h
8664         (gas_output_ascii): Remove prototye.
8665         (gas_output_limited_string): Remove prototype.
8666
8667 2011-06-27  Richard Earnshaw  <rearnsha@arm.com>
8668
8669         PR target/48637
8670         * arm.c (arm_print_operand): Allow sym+offset.  Don't abort on invalid
8671         asm operands.
8672
8673 2011-06-27  Jan Hubicka  <jh@suse.cz>
8674
8675         * ipa.c (cgraph_address_taken_from_non_vtable_p): Walk references of
8676         node instead of references in node.
8677
8678 2011-06-27  Richard Henderson  <rth@redhat.com>
8679
8680         * config/alpha/alpha.c (vms_patch_builtins): Provide dummy definition.
8681         * config/ia64/ia64.c (ia64_init_builtins): Call vms_patch_builtins
8682         inside ifdef.
8683
8684 2011-06-27  Jakub Jelinek  <jakub@redhat.com>
8685
8686         * c-decl.c (union lang_tree_node): Use it in chain_next expression.
8687
8688         * builtin-types.def (BT_FN_PTR_CONST_PTR_SIZE_VAR): New.
8689         * builtins.def (BUILT_IN_ASSUME_ALIGNED): New builtin.
8690         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call,
8691         find_func_clobbers): Handle BUILT_IN_ASSUME_ALIGNED.
8692         * tree-ssa-ccp.c (bit_value_assume_aligned): New function.
8693         (evaluate_stmt, execute_fold_all_builtins): Handle
8694         BUILT_IN_ASSUME_ALIGNED.
8695         * tree-ssa-dce.c (propagate_necessity): Likewise.
8696         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
8697         call_may_clobber_ref_p_1): Likewise.
8698         * builtins.c (is_simple_builtin, expand_builtin): Likewise.
8699         (expand_builtin_assume_aligned): New function.
8700         * doc/extend.texi (__builtin_assume_aligned): Document.
8701
8702         PR debug/49544
8703         * cselib.c (promote_debug_loc): If cselib_preserve_constants
8704         and l has two DEBUG_INSN owned locs instead of just one, adjust
8705         the second location's setting_insn too.
8706
8707 2011-06-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8708
8709         PR libmudflap/38738
8710         * config/sol2.h [!USE_GLD] (MFLIB_SPEC): Define.
8711
8712 2011-06-27  Nick Clifton  <nickc@redhat.com>
8713
8714         * config/mn10300/mn10300.md (clzsi2): Use XOR after BSCH to convert
8715         bit position of highest bit set into a count of the high zero bits.
8716
8717 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
8718
8719         * dwarf2out.c (TYPE_DECL_IS_STUB): Extend mechanism to all types.
8720
8721 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
8722
8723         PR lto/48492
8724         * dwarf2out.c (dwarf2out_finish): Do not attach a DIE on the limbo list
8725         to a NULL parent.
8726
8727 2011-06-27  Richard Guenther  <rguenther@suse.de>
8728
8729         PR tree-optimization/49394
8730         * passes.c (execute_one_pass): Restore current_pass after
8731         applying IPA transforms.
8732
8733 2011-06-27  Kai Tietz  <ktietz@redhat.com>
8734
8735         * tree-ssa-math-opts.c (do_shift_rotate): Zero bits
8736         out of type precision after operation.
8737         (find_bswap): Take for limit value the integer auto-promotion
8738         into account.
8739
8740 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
8741
8742         * reorg.c (fill_simple_delay_slots): Use stop_search_p to stop the
8743         forward scan as well.
8744
8745 2011-06-27  Tristan Gingold  <gingold@adacore.com>
8746
8747         PR target/44241
8748         * config/vms/vms-protos.h: New file.
8749         * config/vms/vms-crtlmap.map: New file.
8750         * config/vms/vms.c: New file.
8751         * config/vms/make-crtlmap.awk: New file.
8752         * config/vms/vms-crtl.h: File removed.
8753         * config/vms/vms-crtl-64.h: File removed.
8754         * config/vms/t-vms (vms-crtlmap.h, vms.o): New targets.
8755         * config/alpha/vms64.h: Do not include vms-crtl-64.h
8756         * config/alpha/alpha.c (alpha_init_builtins): Remove code to
8757         clear some builtins on VMS.  Calls vms_patch_builtins.
8758         (avms_asm_output_external): Remove.
8759         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Remove.
8760         (struct crtl_name_spec): Remove
8761         (DO_CTRL_NAMES): Remove.
8762         * config/ia64/vms.h (struct crtl_name_spec): Remove
8763         (DO_CTRL_NAMES): Remove.
8764         * config/ia64/ia64.c (alpha_init_builtins): Remove code to
8765         clear some builtins on VMS.  Calls vms_patch_builtins.
8766         (ia64_asm_output_external): Remove DO_CRTL_NAME.
8767         * config/ia64/vms64.h: Do not include vms-crtl-64.h
8768         * config.gcc (*-*-*vms*): Define extra_objs, target_gtfiles, tm_p_file.
8769
8770 2011-06-27  Tristan Gingold  <gingold@adacore.com>
8771
8772         * config/alpha/alpha.c (alpha_end_function): Always generate .end
8773         directive on VMS.
8774
8775 2011-06-27  Eric Botcazou  <ebotcazou@adacore.com>
8776
8777         * config/sparc/sparc.c (sparc_frame_pointer_required): Return true if
8778         the function receives nonlocal gotos.
8779
8780 2011-06-27  Richard Guenther  <rguenther@suse.de>
8781
8782         PR tree-optimization/49536
8783         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
8784         For non-scalar inner types use a scalar type according to
8785         the scalar inner mode.
8786
8787 2011-06-27  Richard Guenther  <rguenther@suse.de>
8788
8789         PR tree-optimization/49365
8790         * params.def (min-insn-to-prefetch-ratio): Reduce from 10 to 9.
8791
8792 2011-06-27  Richard Guenther  <rguenther@suse.de>
8793
8794         PR tree-optimization/49169
8795         * fold-const.c (get_pointer_modulus_and_residue): Don't rely on
8796         the alignment of function decls.
8797
8798 2011-06-26  Iain Sandoe  <iains@gcc.gnu.org>
8799
8800         PR target/47997
8801         * config/darwin.c (darwin_mergeable_string_section): Place string
8802         constants in '.cstring' rather than '.const' when CF/NSStrings are
8803         active.
8804
8805 2011-06-26  Eric Botcazou  <ebotcazou@adacore.com>
8806
8807         * config/sparc/sparc.c (save_local_or_in_reg_p): Adjust comment.
8808         (emit_save_register_window): Likewise.
8809         (sparc_expand_prologue): Use SIZE_INT_RTX and SIZE_RTX variables.
8810         (sparc_flat_expand_prologue): Add comment.  Always emit blockage.
8811         Swap back %o7/%i7 in register naming.
8812
8813 2011-06-25  Iain Sandoe  <iains@gcc.gnu.org>
8814
8815         PR driver/49371
8816         * config/darwin.c (darwin_override_options): Improve warning when
8817         mdynamic-no-pic is given together with fPIC/fpic, also warn when it
8818         is given with fpie/fPIE.
8819         * config/darwin.h (PIE_SPEC): New, (LINK_SPEC): Use PIE_SPEC.
8820         * config/darwin9.h (PIE_SPEC): New.
8821
8822 2011-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
8823
8824         * timevar.c (timevar_print): Increase width for display of timevar
8825         name.
8826
8827 2011-06-24  Jakub Jelinek  <jakub@redhat.com>
8828
8829         PR c++/46400
8830         * c-decl.c (union lang_tree_node): Use TYPE_NEXT_VARIANT
8831         instead of TYPE_CHAIN for chain_next for types.
8832
8833 2011-06-24  Richard Henderson  <rth@redhat.com>
8834
8835         * config/sparc/sparc.md (create_flat_frame_1<P:mode>): Remove.
8836         (create_flat_frame_2<P:mode>, create_flat_frame_3<P:mode>): Remove.
8837         * config/sparc/sparc.c (gen_create_flat_frame_1): Remove.
8838         (gen_create_flat_frame_2, gen_create_flat_frame_3): Remove.
8839         (sparc_flat_expand_prologue): Emit individual instructions
8840         instead of one of the above.
8841
8842 2011-06-24  Easwaran Raman  <eraman@google.com>
8843
8844         PR rtl-optimization/49429
8845         PR target/49454
8846         * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
8847         MEM_EXPR(y) addressable if emit_block_move_via_libcall is
8848         used to copy y into x.
8849         * calls.c (initialize_argument_information): Mark
8850         an argument addressable if it is passed by invisible reference.
8851         (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
8852         if it is passed by reference.
8853
8854 2011-06-24  H.J. Lu  <hongjiu.lu@intel.com>
8855
8856         PR rtl-optimization/49504
8857         * rtlanal.c (nonzero_bits1): Properly handle addition or
8858         subtraction of a pointer in Pmode if pointers extend unsigned.
8859         (num_sign_bit_copies1): Likewise.
8860
8861 2011-06-24  Martin Jambor  <mjambor@suse.cz>
8862
8863         PR tree-optimizations/49516
8864         * tree-sra.c (sra_modify_assign): Choose the safe path for
8865         aggregate copies if we also did scalar replacements.
8866
8867 2011-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
8868
8869         PR target/49335
8870         * config/arm/predicates.md (add_operator): New.
8871         * config/arm/arm.md ("*arith_shiftsi"): Fix for SP reg usage in Thumb2.
8872
8873 2011-06-24  Andi Kleen  <ak@linux.intel.com>
8874
8875         * tree-sra.c (type_internals_preclude_sra_p): Add msg
8876         parameter. Split up ifs and report reason in *msg.
8877         (reject): Add.
8878         (find_var_candiate): Add msg variable.
8879         Split up ifs and report reason to reject.
8880         (find_param_candidates): Add msg variable.
8881         Pass msg to type_internals_preclude_sra_p.
8882
8883 2011-06-23  Jeff Law  <law@redhat.com>
8884
8885         PR middle-end/48770
8886         * reload.h (reload): Change to return a bool.
8887         * ira.c (ira): If requested by reload, run a fast DCE pass after
8888         reload has completed.  Fix comment typo.
8889         * reload1.c (need_dce): New file scoped static.
8890         (reload): Set reload_completed here.  Return whether or not a DCE
8891         pass after reload is needed.
8892         (delete_dead_insn): Set need_dce as needed.
8893
8894         PR middle-end/49465
8895         * tree-ssa-threadupate.c (fix_duplicate_block_edges): Fix condition
8896         to detect threading through joiner block.  If there was already
8897         an edge to the new target, then do not change the PHI nodes.
8898
8899 2011-06-23  Jakub Jelinek  <jakub@redhat.com>
8900
8901         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
8902         get_pointer_alignment to see if base isn't sufficiently aligned.
8903
8904 2011-06-23  Jan Hubicka  <jh@suse.cz>
8905
8906         PR tree-optimize/49373
8907         * tree-pass.h (all_late_ipa_passes): Declare.
8908         * cgraphunit.c (init_lowered_empty_function): Fix properties.
8909         (cgraph_optimize): Execute late passes; remove unreachable funcions
8910         after materialization.
8911         * ipa-inline.c (gate_ipa_inline): Enable only when optimizing or
8912         LTOing.
8913         * passes.c (all_late_ipa_passes): Declare.
8914         (dump_passes, register_pass): Handle late ipa passes.
8915         (init_optimization_passes): Move ipa_pta to late passes; schedule
8916         fixup_cfg at beggining of all_passes.
8917         (apply_ipa_transforms): New function.
8918         (execute_one_pass): When doing simple ipa pass, apply all transforms.
8919
8920 2011-06-23  Joseph Myers  <joseph@codesourcery.com>
8921
8922         * params.c: Include common/common-target.h.  Don't include tm.h.
8923         (lang_independent_params): Move from toplev.c.
8924         (global_init_params): New.
8925         * params.h (global_init_params): Declare.
8926         * target.def (default_params): Move to common-target.def.
8927         * toplev.c (lang_independent_options): Remove.
8928         (lang_independent_params): Move to params.c.
8929         (general_init): Use global_init_params.
8930         * common/common-target.def (option_default_params): Move from
8931         target.def.
8932         * common/config/ia64/ia64-common.c: Include params.h.
8933         (ia64_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8934         from ia64.c.
8935         * common/config/rs6000/rs6000-common.c: Include params.h.
8936         (rs6000_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8937         from rs6000.c.
8938         * common/config/sh/sh-common.c: Include params.h.
8939         (sh_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8940         from sh.c.
8941         * common/config/spu/spu-common.c: Include params.h.
8942         (spu_option_default_params, TARGET_OPTION_DEFAULT_PARAMS): Move
8943         from spu.c.
8944         * config/ia64/ia64.c (ia64_option_default_params,
8945         TARGET_OPTION_DEFAULT_PARAMS): Move to ia64-common.c.
8946         * config/rs6000/rs6000.c (rs6000_option_default_params,
8947         TARGET_OPTION_DEFAULT_PARAMS): Move to rs6000-common.c.
8948         * config/sh/sh.c (sh_option_default_params,
8949         TARGET_OPTION_DEFAULT_PARAMS): Move to sh-common.c.
8950         * config/spu/spu.c (spu_option_default_params,
8951         TARGET_OPTION_DEFAULT_PARAMS): Move to spu-common.c.
8952         * Makefile.in (OBJS): Remove params.o.
8953         (OBJS-libcommon-target): Add params.o.
8954         (params.o, $(common_out_object_file)): Update dependencies.
8955         * doc/tm.texi: Regenerate.
8956
8957 2011-06-23  Alan Modra  <amodra@gmail.com>
8958
8959         PR bootstrap/49383
8960         * config/rs6000/rs6000.c (call_ABI_of_interest): Adjust cgraph
8961         invocation for 2011-06-09 changes.
8962
8963 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
8964
8965         PR libgomp/49490
8966         * omp-low.c (expand_omp_for_static_nochunk): Only
8967         use n ceil/ nthreads size for the first n % nthreads threads in the
8968         team instead of all threads except for the last few ones which
8969         get less work or none at all.
8970
8971         PR debug/49496
8972         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Ignore debug
8973         uses.
8974
8975 2011-06-22  Richard Guenther  <rguenther@suse.de>
8976
8977         PR tree-optimization/49493
8978         * tree-ssa-structalias.c (get_constraint_for_ssa_var):
8979         Refer to the alias target of variables.
8980         (associate_varinfo_to_alias_1): Remove.
8981         (ipa_pta_execute): Do not associate aliases with anything.
8982         * cgraph.h (varpool_alias_aliased_node): Fix cut&paste errors.
8983         (cgraph_function_node): Likewise.
8984         (cgraph_function_or_thunk_node): Likewise.
8985         (varpool_variable_node): Likewise.
8986
8987 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
8988
8989         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Fix -mtls-dialect typo.
8990         * config.gcc (arm*-*-linux*): Default to gnu tls.
8991         (arm*-*-*): Add --with-tls option.
8992         (all_defaults): Add 'tls'.
8993
8994 2011-06-22  Richard Henderson  <rth@redhat.com>
8995
8996         * reg-notes.def (REG_CFA_WINDOW_SAVE): New.
8997         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
8998         (dwarf2out_frame_debug_cfa_window_save): Rename from
8999         dwarf2out_window_save; make static.
9000         * tree.h (dwarf2out_window_save): Don't declare.
9001
9002         * config/sparc/sparc.c (sparc_dwarf_handle_frame_unspec): Remove.
9003         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Remove.
9004         (emit_save_register_window): Rename from gen_save_register_window;
9005         emit the insn and add REG_CFA_* notes.
9006         (sparc_expand_prologue): Update to match.
9007         * config/sparc/sparc.md (save_register_window_1): Simplify from
9008         save_register_window<P:mode>.
9009
9010 2011-06-22  H.J. Lu  <hongjiu.lu@intel.com>
9011
9012         PR target/49497
9013         * config/i386/i386.md (*lea_general_2): Always allow SImode.
9014         (*lea_general_2_zext): Likewise.
9015         (imul to lea peepholes): Use const359_operand and check
9016         TARGET_PARTIAL_REG_STALL.
9017
9018         * config/i386/predicates.md (const359_operand): New.
9019
9020 2011-06-22  Michael Matz  <matz@suse.de>
9021
9022         * cgraphunit.c (assemble_thunk): Use correct return type.
9023
9024 2011-06-22  Dmitry Plotnikov  <dplotnikov@ispras.ru>
9025             Dmitry Melnik  <dm@ispras.ru>
9026
9027         * config/arm/arm.c (neon_immediate_valid_for_shift): New function.
9028         (neon_output_shift_immediate): Ditto.
9029         * config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
9030         prototype.
9031         (neon_output_shift_immediate): Ditto.
9032         * config/arm/neon.md (vashl<mode>3): Modified constraint.
9033         (vashr<mode>3_imm): New insn pattern.
9034         (vlshr<mode>3_imm): Ditto.
9035         (vashr<mode>3): Modified constraint.
9036         (vlshr<mode>3): Ditto.
9037         * config/arm/predicates.md (imm_for_neon_lshift_operand): New
9038         predicate.
9039         (imm_for_neon_rshift_operand): Ditto.
9040         (imm_lshift_or_reg_neon): Ditto.
9041         (imm_rshift_or_reg_neon): Ditto.
9042
9043         * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
9044
9045 2011-06-22  Jakub Jelinek  <jakub@redhat.com>
9046
9047         * tree-ssa-ccp.c (evaluate_stmt): Try bitwise tracking for
9048         builtin calls even if likelyvalue is not CONSTANT.
9049         Handle BUILT_IN_STRDUP and BUILT_IN_STRNDUP like BUILT_IN_MALLOC.
9050         Return get_value_for_expr of first operand
9051         for BUILT_IN_{MEM{CPY,MOVE,SET},STR{,N}CPY}{,_CHK}.
9052         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
9053         BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK like
9054         their non-checking counterparts.
9055         (call_may_clobber_ref_p_1): Likewise.
9056         (stmt_kills_ref_p_1): Handle BUILT_IN_MEM{{,P}CPY,MOVE,SET}_CHK
9057         like their non-checking counterparts.
9058         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
9059         Handle BUILT_IN_{MEM{{,P}CPY,MOVE,SET},STR{,N}C{PY,AT},STPCPY}_CHK
9060         like their non-checking counterparts.
9061         (find_func_clobbers): Likewise.
9062         * tree-ssa-dce.c (propagate_necessity): Handle BUILT_IN_MEMSET_CHK
9063         like BUILT_IN_MEMSET and BUILT_IN_CALLOC like BUILT_IN_MALLOC.
9064
9065         * dwarf2out.c (size_of_loc_descr, output_loc_operands,
9066         mark_base_types, hash_loc_operands, compare_loc_operands): Allow
9067         DW_OP_GNU_convert and DW_OP_GNU_reinterpret to use constant instead
9068         of base type reference as argument.
9069         (resolve_addr_in_expr): Likewise.  Fix keep computation.
9070         (convert_descriptor_to_signed): Renamed to...
9071         (convert_descriptor_to_mode): ... this.  For wider types convert to
9072         unsigned instead of signed, for <= DWARF2_ADDR_SIZE convert to untyped.
9073         (typed_binop): New function.
9074         (scompare_loc_descriptor, ucompare_loc_descriptor,
9075         minmax_loc_descriptor, mem_loc_descriptor): For wider integer modes
9076         default to unsigned type instead of signed.
9077
9078         PR debug/47858
9079         * gimple.h (enum gimple_debug_subcode): Add GIMPLE_DEBUG_SOURCE_BIND.
9080         (gimple_build_debug_source_bind_stat): New prototype.
9081         (gimple_build_debug_source_bind): Define.
9082         (gimple_debug_source_bind_p, gimple_debug_source_bind_get_var,
9083         gimple_debug_source_bind_get_value,
9084         gimple_debug_source_bind_get_value_ptr,
9085         gimple_debug_source_bind_set_var,
9086         gimple_debug_source_bind_set_value): New inlines.
9087         * gimple.c (gimple_build_debug_source_bind_stat): New function.
9088         * gimple-pretty-print.c (dump_gimple_debug): Handle
9089         GIMPLE_DEBUG_SOURCE_BIND.
9090         * sese.c (rename_uses): Handle gimple_debug_source_bind_p.
9091         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
9092         * tree-parloops.c (eliminate_local_variables,
9093         separate_decls_in_region): Likewise.
9094         (separate_decls_in_region_debug): Renamed from
9095         separate_decls_in_region_debug_bind.  Handle
9096         gimple_debug_source_bind_p.
9097         * tree.h (decl_debug_args_lookup, decl_debug_args_insert): New
9098         prototypes.
9099         (DECL_HAS_DEBUG_ARGS_P): Define.
9100         (struct tree_function_decl): Add has_debug_args_flag field.
9101         * tree.c (debug_args_for_decl): New variable.
9102         (decl_debug_args_lookup, decl_debug_args_insert): New functions.
9103         * tree-into-ssa.c (mark_def_sites): Handle uses in debug stmts.
9104         (rewrite_debug_stmt_uses): New function.
9105         (rewrite_stmt): Use it to rewrite debug stmt uses.
9106         * rtl.def (DEBUG_PARAMETER_REF): New.
9107         * rtl.h (DEBUG_PARAMETER_REF_DECL): Define.
9108         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Handle
9109         DEBUG_PARAMETER_REF.
9110         * rtl.c (rtx_equal_p_cb, rtx_equal_p, iterative_hash_rtx): Likewise.
9111         * print-rtl.c (print_rtx): Likewise.
9112         * tree-sra.c (sra_ipa_reset_debug_stmts): Prefer replacing of
9113         SSA_NAMEs with DEBUG_EXPR_DECLs initialized in source bind
9114         debug stmts in the first bb.
9115         * tree-inline.c (remap_ssa_name): If remapping default def
9116         of a PARM_DECL fails, map to a DEBUG_EXPR_DECL set in
9117         a source bind debug stmt.
9118         (remap_gimple_stmt): Handle gimple_debug_source_bind_p.
9119         (maybe_move_debug_stmts_to_successors): Likewise.
9120         (copy_debug_stmt): Likewise.  Avoid shadowing a variable.
9121         (tree_function_versioning): If DECL_HAS_DEBUG_ARGS_P, copy
9122         debug args vector from old_decl to new_decl.
9123         * ipa-prop.c (ipa_modify_call_arguments): For optimized away
9124         or modified parameters, add debug bind stmts before call
9125         setting DEBUG_EXPR_DECL which is remembered in debug args vector.
9126         * cfgexpand.c (expand_call_stmt): Call expand_debug_expr
9127         on DECL_DEBUG_EXPRs from debug args vector.
9128         (expand_debug_source_expr): New function.
9129         (expand_debug_locations): Use it for source bind insns.
9130         (expand_gimple_basic_block): Handle gimple_debug_source_bind_p.
9131         * var-tracking.c (prepare_call_arguments): Add debug args
9132         to call_arguments if any.
9133         * dwarf2out.c (dwarf_stack_op_name, size_of_loc_descr,
9134         output_loc_operands, output_loc_operands_raw, resolve_addr_in_expr,
9135         compare_loc_operands): Handle DW_OP_GNU_parameter_ref.
9136         (get_ref_die_offset, parameter_ref_descriptor): New functions.
9137         (mem_loc_descriptor): Handle DEBUG_PARAMETER_REF.
9138         (gen_subprogram_die): Handle parameters identified by
9139         DEBUG_PARAMETER_REF.
9140
9141 2011-06-22  Nathan Sidwell  <nathan@codesourcery.com>
9142
9143         * doc/invoke.texi (ARM Options): Document -mtls-dialect option.
9144         * doc/install.texi (Configuration): Document --with-tls.
9145         * config/arm/arm.c (enum tls_reloc): Add TLS_DESCSEQ.
9146         (arm_call_tls_get_addr): Clean up. Assert not tls descriptor.
9147         (arm_tls_descseq_addr): New.
9148         (legitimize_tls_address): Add tlsdesc support.
9149         (arm_cannot_copy_insn_p): Check for tlscall.
9150         (arm_emit_tls_decoration): Likewise.
9151         * config/arm/arm.h (TARGET_GNU2_TLS): New.
9152         (OPTION_DEFAULT_SPECS): Add with-tls support.
9153         * config/arm/arm.md (R1_REGNUM): Define.
9154         (tlscall): New.
9155         * config/arm/arm.opt (tls_type): New enumeration type and values.
9156         (mtls-dialect): New switch.
9157         * config/arm/arm-opts.h (enum tls_type): New.
9158
9159 2011-06-21  Nicola Pero  <nicola.pero@meta-innovation.com>
9160
9161         * attribs.c (register_attribute): Added assert to check that all
9162         attribute specs are registered with a name that is not empty and
9163         does not start with '_'.
9164         (decl_attributes): Avoid the lookup of the "naked" attribute spec
9165         if the function has no attributes.
9166         * tree.c (is_attribute_with_length_p): Removed.
9167         (is_attribute_p): Removed.
9168         (private_is_attribute_p): New.
9169         (private_lookup_attribute): New.
9170         (lookup_attribute): Removed.
9171         (lookup_ident_attribute): New.
9172         (remove_attribute): Require the first argument to be in the form
9173         'text', not '__text__'.  Updated asserts.
9174         (merge_attributes): Use lookup_ident_attributes instead of
9175         lookup_attribute.
9176         (merge_dllimport_decl_attributes): Use remove_attribute.
9177         (attribute_list_contained): Likewise.
9178         (attribute_list_equal): Immediately return 1 if the arguments are
9179         identical pointers.
9180         * tree.h (is_attribute_p): Made inline.  Return a 'bool', not an
9181         'int'.  Require the first argument to be in the form 'text', not
9182         '__text__'.  Require the second argument to be an identifier.
9183         (lookup_attribute): Made inline.  Require the first argument to be
9184         in the form 'text', not '__text__'.
9185         (private_is_attribute_p, private_lookup_attribute): New.
9186         Updated comments.
9187
9188 2011-06-21  Andrew MacLeod  <amacleod@redhat.com>
9189
9190         * builtins.c: Add sync_ or SYNC__ to builtin names.
9191         * sync-builtins.def: Add sync_ or SYNC__ to builtin names.
9192         * omp-low.c: Add sync_ or SYNC__ to builtin names.
9193
9194 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
9195
9196         PR target/33049
9197         * config/avr/avr.md (extzv): New expander.
9198         (*extzv): New insn.
9199         (*extzv.qihi1, *extzv.qihi2): New insn-and-split.
9200         * config/avr/constraints.md (C04): New constraint.
9201         * doc/md.texi (Machine Constraints): Document it.
9202
9203 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
9204
9205         PR middle-end/49489
9206         * builtins.c (expand_builtin_unop): Call expand_unop with 0 as
9207         unsignedp argument instead of 1 for clrsb_optab.
9208         (fold_builtin_bitop): Fix masking for width > HOST_BITS_PER_WIDE_INT
9209         and < 2 * HOST_BITS_PER_WIDE_INT.  Optimize BUILT_IN_CLRSB*.
9210         (fold_builtin_1): Call fold_builtin_binop for BUILT_IN_CLRSB*.
9211         * optabs.c (widen_leading): Call widen_operand and expand_unop
9212         with 0 as unsignedp argument instead of 1 for clrsb_optab.
9213         (expand_unop): Subtract difference of mode sizes also for clrsb_optab.
9214
9215 2011-06-21  Georg-Johann Lay  <avr@gjlay.de>
9216
9217         * config/avr/avr.md (*jcindirect_jump): Fix build warning.
9218
9219 2011-06-21  Bernd Schmidt  <bernds@codesourcery.com>
9220
9221         * gensupport.c (add_define_attr): New static function.
9222         (is_predicable): Allow multi-alternative lists for the "predicable"
9223         attribute.
9224         (modify_attr_enabled_ce, alter_attrs_for_insn): New static functions.
9225         (process_one_cond_exec): Call alter_attrs_for_insn.
9226         * doc/md.texi (Defining Attributes): Mention some standard names.
9227         (Conditional Execution): Update documentation for "predicable".
9228
9229         * doc/extend.texi (__builtin_clrsb, __builtin_clrsbl,
9230         __builtin_clrsbll): Document.
9231         * doc/rtl.texi (clrsb): New entry.
9232         * optabs.c (widen_leading): Renamed from widen_clz.  New argument
9233         UNOPTAB.  All callers changed.  Use UNOPTAB instead of clz_optab.
9234         (expand_unop): Handle clrsb_optab.
9235         (init_optabs): Initialize it.
9236         * optabs.h (enum optab_index): New entry OTI_clrsb.
9237         (clrsb_optab): Define.
9238         * genopinit.c (optabs): Add an entry for it.
9239         * builtins.c (expand_builtin): Handle clrsb builtin functions.
9240         * builtins.def (BUILT_IN_CLRSB, BUILT_IN_CLRSBIMAX, BUILT_IN_CLRSBL,
9241         BUILT_IN_CLRSBLL): New.
9242         * rtl.def (CLRSB): New code.
9243         * dwarf2out.c (mem_loc_descriptor): Handle it.
9244         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
9245         Use op_mode rather than mode when optimizing ffs, clz, ctz, parity
9246         and popcount.
9247         * libgcc2.c (__clrsbSI2, __clrsbDI2): New functions.
9248         * libgcc2.h (__clrsbSI2, __clrsbDI2): Define and declare.
9249         (__ctzDI2): Move declaration.
9250         * config/bfin/bfin.md (clrsbsi2): New expander.
9251         (signbitssi2): Use the CLRSB rtx.
9252         (clrsbhi2): Renamed from signbitshi2.  Use the CLRSB rtx.
9253         * config/bfin/bfin.c (bdesc_1arg): Changed accordingly.
9254
9255 2011-06-21  Richard Guenther  <rguenther@suse.de>
9256
9257         * ipa-inline-transform.c (inline_transform): Fix previous change.
9258
9259 2011-06-21  Ira Rosen  <ira.rosen@linaro.org>
9260
9261         PR tree-optimization/49478
9262         * tree-vect-loop.c (vectorizable_reduction): Handle DOT_PROD_EXPR
9263         with constant operand.
9264
9265 2011-06-21  Richard Guenther  <rguenther@suse.de>
9266
9267         * ipa-inline-transform.c (inline_transform): Fix typo.
9268
9269 2011-06-21  Richard Guenther  <rguenther@suse.de>
9270
9271         PR tree-optimization/49483
9272         * tree-vect-stmts.c (vectorizable_assignment): Also handle
9273         VIEW_CONVERT_EXPR conversions.
9274
9275 2011-06-21  Joseph Myers  <joseph@codesourcery.com>
9276
9277         * config/avr/avr-mcus.def, config/avr/genopt.sh: New files.
9278         * config/avr/avr-tables.opt: New file (generated).
9279         * config.gcc (avr-*-*): Use avr/avr-tables.opt.
9280         * config/avr/avr-devices.c (avr_mcu_types): Move contents to
9281         avr-mcus.def.
9282         * config/avr/avr.c (avr_help, TARGET_HELP): Remove.
9283         (avr_option_override): Don't process -mmcu= argument here.  Set
9284         avr_current_device using avr_mcu_index.
9285         (avr_file_start): Use avr_current_device->name instead of avr_mcu_name.
9286         * config/avr/avr.opt (mmcu=): Use Enum.
9287         * config/avr/t-avr (avr-devices.o): Update dependencies.
9288         ($(srcdir)/config/avr/avr-tables.opt): New.
9289         * target.def (help): Remove.
9290         * doc/tm.texi.in (TARGET_HELP): Remove.
9291         * doc/tm.texi: Regenerate.
9292         * opts.c: Don't include target.h.
9293         (common_handle_option): Don't call targetm.help.
9294         * system.h (TARGET_HELP): Poison.
9295         * Makefile.in (opts.o): Update dependencies.
9296
9297 2011-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9298
9299         * config/usegld.h: New file.
9300         * config/sol2.h (PREFERRED_DEBUGGING_TYPE): Remove.
9301         (CPP_SUBTARGET_SPEC): Remove -compat-bsd support.
9302         (LIB_SPEC): Likewise.  Search /lib.
9303         (LINK_ARCH32_SPEC_BASE): Remove -compat-bsd support.
9304         (RDYNAMIC_SPEC): Handle GNU ld.
9305         [HAVE_LD_EH_FRAME_HDR && TARGET_DL_ITERATE_PHDR] (LINK_EH_SPEC):
9306         Define.
9307         (SUPPORTS_INIT_PRIORITY): Only disable for Sun ld.
9308         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Define.
9309         [!USE_GAS] (NO_DBX_BNSYM_ENSYM): Redefine.
9310         (STACK_CHECK_STATIC_BUILTIN): Define.
9311         * config/sol2.opt (compat-bsd): Remove.
9312         * config/sol2-10.h (TARGET_C99_FUNCTIONS): Remove undef.
9313         * config/sol2-bi.h: New file.
9314         * config/sol2-gld.h: Remove.
9315         * config/i386/sol2.h (TLS_COMMON_ASM_OP): Only define if !USE_GAS.
9316         (NO_DBX_BNSYM_ENSYM): Remove.
9317         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
9318         (STACK_CHECK_STATIC_BUILTIN): Remove.
9319         Test USE_GLD instead of TARGET_GNU_LD.
9320         * config/i386/sol2-10.h: Rename to ...
9321         * config/i386/sol2-bi.h .. this.
9322         (SUBTARGET_EXTRA_SPECS): Redefine.
9323         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Remove.
9324         (MULTILIB_DEFAULTS): Remove.
9325         (DEFAULT_ARCH32_P): Define.
9326         (LINK_ARCH64_SPEC_BASE, LINK_ARCH64_SPEC): Remove.
9327         (ARCH64_SUBDIR): Define.
9328         Test USE_GLD instead of TARGET_GNU_LD.
9329         (I386_EMULATION): Rename to ...
9330         (ARCH32_EMULATION): ... this.
9331         (X86_64_EMULATION): Rename to ...
9332         (ARCH64_EMULATION): ... this.
9333         (TARGET_LD_EMULATION): Remove.
9334         (LINK_ARCH_SPEC): Remove.
9335         * config/i386/sol2-gas.h: Remove.
9336         * config/i386/t-sol2-10: Rename to ...
9337         * config/i386/t-sol2-64: ... this.
9338         * config/sparc/sol2.h (SPARC_DEFAULT_CMODEL): Redefine.
9339         (AS_SPARC64_FLAG): Define.
9340         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC): Redefine.
9341         (CPP_CPU64_DEFAULT_SPEC, ASM_CPU32_DEFAULT_SPEC): Redefine
9342         depending on TARGET_CPU_DEFAULT.
9343         (CPP_CPU_SPEC): Redefine.
9344         (ASM_CPU_SPEC): Handle DEFAULT_ARCH32_P.
9345         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Redefine.
9346         (CPP_ARCH32_SPEC, CPP_ARCH64_SPEC, CPP_ARCH_SPEC): Redefine.
9347         (ASM_ARCH_SPEC, ASM_ARCH32_SPEC, ASM_ARCH64_SPEC,
9348         ASM_ARCH_DEFAULT_SPEC): Redefine.
9349         (SUBTARGET_EXTRA_SPECS): Add LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
9350         LINK_ARCH_DEFAULT_SPEC.
9351         [USE_GLD] (ARCH32_EMULATION, ARCH64_EMULATION): Define.
9352         [USE_GLD] (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Redefine.
9353         (ARCH64_SUBDIR): Define.
9354         (LINK_ARCH64_SPEC): Redefine.
9355         (CC1_SPEC): Redefine.
9356         (OPTION_DEFAULT_SPECS): Redefine.
9357         (MULTILIB_DEFAULTS): Define.
9358         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE): Redefine.
9359         [USE_GAS && HAVE_AS_TLS] (TARGET_SUN_TLS, TARGET_GNU_TLS): Redefine.
9360         [USE_GLD] (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undef.
9361         (NO_DBX_BNSYM_ENSYM): Remove.
9362         (SUBTARGET_INSERT_ATTRIBUTES, SUBTARGET_ATTRIBUTE_TABLE): Remove.
9363         (ASM_OUTPUT_ALIGN_WITH_NOP): Only define if !USE_GAS.
9364         (TARGET_ASM_NAMED_SECTION): Likewise.
9365         (STACK_CHECK_STATIC_BUILTIN): Remove.
9366         * config/sparc/sol2-bi.h: Remove.
9367         * config/sparc/sol2-gas-bi.h: Remove.
9368         * config/sparc/sol2-gas.h: Remove.
9369         * config/sparc/sol2-gld-bi.h: Remove.
9370         * config.gcc (i[34567]86-*-solaris2*, sparc*-*-solaris2*): Move
9371         common parts ...
9372         (*-*-solaris2*): ... here.
9373
9374 2011-06-21  Christian Bruel  <christian.bruel@st.com>
9375
9376         PR other/43564
9377         * ipa-inline.c (can_inline_edge_p): Check
9378         !DECL_DISREGARD_INLINE_LIMITS.
9379
9380 2011-06-21  Christian Bruel  <christian.bruel@st.com>
9381
9382         PR middle-end/49139
9383         * cgraphunit.c (process_function_and_variable_attributes): warn when
9384         always_inline functions that are not inline.
9385         * ipa-inline-transform.c (inline_transform): Always call
9386         optimize_inline.
9387         * tree-inline.c (tree_inlinable_function_p): Use error instead
9388         of sorry.
9389         (expand_call_inline): Likewise.
9390
9391 2011-06-21  Jakub Jelinek  <jakub@redhat.com>
9392
9393         * Makefile.in (dg_target_exps): Set.
9394         (check_gcc_parallelize): Parallelize gcc testing into 10 jobs
9395         instead of 7, try to divide it more evenly.
9396
9397 2011-06-20  Changpeng Fang  <changpeng.fang@amd.com>
9398
9399         PR target/49089
9400         * config/i386/i386.c (avx256_split_unaligned_load): New definition.
9401         (avx256_split_unaligned_store): New definition.
9402         (ix86_option_override_internal): Enable avx256 unaligned load/store
9403         splitting only when avx256_split_unaligned_load/store is set.
9404
9405 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
9406
9407         * regrename.c (scan_rtx_reg): Handle the case where we write to an
9408         open chain in a smaller mode without failing the entire block.
9409
9410 2011-06-21  Alan Modra  <amodra@gmail.com>
9411
9412         * config/rs6000/rs6000.c (rs6000_cannot_force_const_mem): Match
9413         CONST high part large-toc address.
9414         (rs6000_tls_referenced_p): Make static.
9415         * config/rs6000/rs6000-protos.h (rs6000_tls_referenced_p): Delete.
9416
9417 2011-06-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9418
9419         PR target/49385
9420         * config/arm/thumb2.md (*thumb2_movhi_insn): Make sure atleast
9421         one of the operands is a register.
9422
9423 2011-06-20  Kai Tietz  <ktietz@redhat.com>
9424
9425         * fold-const.c (fold_binary_loc): Add missing folding for truth-not
9426         operations in combination with binary and.
9427
9428 2011-06-20  Bernd Schmidt  <bernds@codesourcery.com>
9429
9430         * regrename.c (do_replace): Don't update notes.
9431
9432 2011-06-20  Alan Modra  <amodra@gmail.com>
9433
9434         * config/rs6000/rs6000.c (create_TOC_reference): Wrap high part
9435         of toc-relative address in CONST.
9436         (rs6000_delegitimize_address): Recognize changed address.
9437         (rs6000_legitimize_reload_address): Likewise.
9438         (rs6000_emit_move): Don't force these constants to memory.
9439         * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Wrap high part of
9440         toc-relative address in CONST.
9441         (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
9442         (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
9443
9444 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
9445
9446         * longlong.h (count_leading_zeros): Use long long builtin for x86-64.
9447         (count_trailing_zeros): Likewise.
9448
9449 2011-06-18  H.J. Lu  <hongjiu.lu@intel.com>
9450
9451         PR other/49325
9452         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Properly check if
9453         .init_array can be used with .ctors on targets.
9454         * configure: Regenerated.
9455
9456 2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
9457
9458         * tree-sra.c (type_internals_preclude_sra_p) <ARRAY_TYPE>: Return true
9459         if the element type is volatile.
9460
9461 2011-06-18  Jan Hubicka  <jh@suse.cz>
9462
9463         * lto-symtab.c (lto_varpool_replace_node): Remove code handling
9464         extra name aliases.
9465         (lto_symtab_resolve_can_prevail_p): Likewise.
9466         (lto_symtab_merge_cgraph_nodes): Update alias_of pointers.
9467         * cgraphbuild.c (record_reference): Remove extra body alias code.
9468         (mark_load): Likewise.
9469         (mark_store): Likewise.
9470         * cgraph.h (varpool_node): Remove extra_name filed;
9471         add alias_of and extraname_alias.
9472         (varpool_create_variable_alias, varpool_for_node_and_aliases): Declare.
9473         (varpool_alias_aliased_node): New inline function.
9474         (varpool_variable_node): New function.
9475         * cgraphunit.c (handle_alias_pairs): Handle also variable aliases.
9476         * ipa-ref.c (ipa_record_reference): Allow aliases on variables.
9477         * lto-cgraph.c (lto_output_varpool_node): Update streaming.
9478         (input_varpool_node): Likewise.
9479         * lto-streamer-out.c (produce_symtab): Remove extra name aliases.
9480         (varpool_externally_visible_p): Remove extra body alias code.
9481         (function_and_variable_visibility): Likewise.
9482         * tree-ssa-structalias.c (associate_varinfo_to_alias_1): New function.
9483         (ipa_pta_execute): Use it.
9484         * varpool.c (varpool_remove_node): Remove extra name alias code.
9485         (varpool_mark_needed_node): Likewise.
9486         (varpool_analyze_pending_decls): Analyze aliases.
9487         (assemble_aliases): New functoin.
9488         (varpool_assemble_decl): Use it.
9489         (varpool_create_variable_alias): New function.
9490         (varpool_extra_name_alias): Rewrite.
9491         (varpool_for_node_and_aliases): New function.
9492
9493 2011-06-18  Jakub Jelinek  <jakub@redhat.com>
9494
9495         PR target/49411
9496         * config/i386/i386.c (ix86_expand_multi_arg_builtins): If
9497         last_arg_constant and last argument doesn't match its predicate,
9498         for xop_vpermil2<mode>3 error out and for xop_rotl<mode>3
9499         if it is CONST_INT, mask it, otherwise expand using rotl<mode>3.
9500         (ix86_expand_sse_pcmpestr, ix86_expand_sse_pcmpistr): Fix
9501         spelling of error message.
9502         * config/i386/sse.md (sse4a_extrqi, sse4a_insertqi,
9503         vcvtps2ph, *vcvtps2ph, *vcvtps2ph_store, vcvtps2ph256): Use
9504         const_0_to_255_operand instead of const_int_operand.
9505
9506         Revert:
9507         2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
9508
9509         * config/i386/sse.md (blendbits): Remove mode attribute.
9510         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
9511         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
9512         Check integer value of operand 3 in insn constraint.
9513
9514 2011-06-17  Hans-Peter Nilsson  <hp@axis.com>
9515
9516         PR rtl-optimization/48542
9517         * reload.c (find_equiv_reg): Stop looking when finding a
9518         setjmp-type call.
9519         * reload1.c (reload_as_needed): Invalidate all reload
9520         registers when crossing a setjmp-type call.
9521
9522 2011-06-16  Jeff Law  <law@redhat.com>
9523
9524         * tree-ssa-threadupdate.c (struct redirection_data): New field
9525         intermediate_edge.
9526         (THREAD_TARGET2): Define.
9527         (redirection_data_eq): Also check that the intermediate edge is equal.
9528         (lookup_redirection_data): Drop useless argument.  Extract the
9529         outgoing_edge and intermediate edge from E.  Callers updated.
9530         (copy_phi_args, update_destination_phis): New functions.
9531         (fix_duplicate_block_edges): Likewise.
9532         (create_edge_and_update_destination_phis): Duplicate all the edges
9533         hung off e->aux.  Use copy_phi_args.
9534         (create_duplicates): Use fix_duplicate_block_edges.
9535         (fixup_template_block): Likewise.
9536         (redirect_edges): If necessary, redirect the joiner block's incoming
9537         edge to the duplicate of the joiner block.
9538         (thread_block): Don't muck up loops when threading through a joiner
9539         block.
9540         (thread_through_loop_header): Handle threading through a joiner block.
9541         (mark_threaded_blocks, register_jump_thread): Likewise.
9542         * tree-flow.h (register_jump_thread): Add new argument.  Callers
9543         updated.
9544         * tree-ssa-threadedge.c (phi_args_equal_on_edges): New function.
9545         (thread_across_edge): Handle threading through a joiner block.
9546
9547 2011-06-16  Martin Jambor  <mjambor@suse.cz>
9548
9549         PR tree-optimization/49343
9550         * tree-sra.c (build_ref_for_model): Use component_ref_field_offset to
9551         calculate offset, provide 2nd operand for the new COMPONENT_REF.
9552
9553 2011-06-16  Iain Sandoe  <iains@gcc.gnu.org>
9554
9555         * config/darwin-protos.h (machopic_select_rtx_section): Move to
9556         inside RTX_CODE ifdef.
9557
9558 2011-06-16  Tom de Vries  <tom@codesourcery.com>
9559
9560         PR target/45098
9561         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
9562         Disallow NULL pointer for pointer arithmetic.
9563
9564 2011-06-16  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9565
9566         PR target/49398
9567         Revert.
9568         2011-06-10  Wei Guozhi  <carrot@google.com>
9569
9570         PR target/45335
9571         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
9572         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
9573         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
9574         related peephole2.
9575         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
9576         related peephole2.
9577         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
9578         (arm_legitimate_ldrd_p): New prototype.
9579         (arm_output_ldrd): New prototype.
9580         * config/arm/arm.c (arm_check_ldrd_operands): New function.
9581         (arm_legitimate_ldrd_p): New function.
9582         (arm_output_ldrd): New function.
9583
9584 2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
9585
9586         PR middle-end/46500
9587         * doc/tm.texi.in: Update Copyright date.
9588         * doc/tm.texi: Regenerate.
9589         * targhooks.c (default_setup_incoming_varargs): Replace
9590         CUMULATIVE_ARGS* argument type with cumulative_args_t.
9591         (default_pretend_outgoing_varargs_named): Likewise.
9592         (hook_pass_by_reference_must_pass_in_stack): Likewise.
9593         (hook_callee_copies_named): Likewise.
9594         (default_function_arg_advance): Likewise.
9595         (default_function_arg): Likewise.
9596         (default_function_incoming_arg): Likewise.
9597         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
9598         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
9599         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
9600         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
9601         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
9602         * targhooks.h (default_setup_incoming_varargs): Likewise.
9603         (default_pretend_outgoing_varargs_named): Likewise.
9604         (hook_pass_by_reference_must_pass_in_stack): Likewise.
9605         (hook_callee_copies_named): Likewise.
9606         (default_function_arg_advance): Likewise.
9607         (default_function_arg): Likewise.
9608         (default_function_incoming_arg): Likewise.
9609         (hook_bool_CUMULATIVE_ARGS_false): Likewise.
9610         (hook_bool_CUMULATIVE_ARGS_true): Likewise.
9611         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Likewise.
9612         (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise.
9613         (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Likewise.
9614         * target.def (pass_by_reference): Likewise.
9615         (setup_incoming_varargs, strict_argument_naming): Likewise.
9616         (pretend_outgoing_varargs_named, callee_copies): Likewise.
9617         (arg_partial_bytes, function_arg_advance, function_arg): Likewise.
9618         (function_incoming_arg): Likewise.
9619         * target.h: Don't include "tm.h" .
9620         (cumulative_args_t): New typedef.
9621         [GCC_TM_H] (get_cumulative_args): New static inline function.
9622         [GCC_TM_H] (pack_cumulative_args): Likewise.
9623         * config/alpha/alpha.c (alpha_function_arg): Replace CUMULATIVE_ARGS*
9624         argument type with cumulative_args_t.
9625         (alpha_function_arg_advance, alpha_arg_partial_bytes): Likewise.
9626         (alpha_pass_by_reference, alpha_setup_incoming_varargs): Likewise.
9627         * config/frv/frv.c (frv_setup_incoming_varargs): Likewise.
9628         (frv_arg_partial_bytes, frv_function_arg): Likewise.
9629         (frv_function_incoming_arg, frv_function_arg_advance): Likewise.
9630         (frv_function_arg_1): Likewise.
9631         * config/s390/s390.c (s390_pass_by_reference): Likewise.
9632         (s390_function_arg_advance, s390_function_arg): Likewise.
9633         * config/m32c/m32c.c (m32c_function_arg): Likewise.
9634         (m32c_pass_by_reference, m32c_function_arg_advance): Likewise.
9635         (m32c_strict_argument_naming): Likewise.
9636         * config/spu/spu.c (spu_pass_by_reference, spu_function_arg): Likewise.
9637         (spu_function_arg_advance): Likewise.
9638         (spu_setup_incoming_varargs): Likewise.  Make static.
9639         * config/spu/spu-protos.h (spu_setup_incoming_varargs):
9640         Remove prototype.
9641         * config/sparc/sparc.c (sparc_strict_argument_naming): Replace
9642         CUMULATIVE_ARGS* argument type with cumulative_args_t.
9643         (sparc_pass_by_reference, sparc_function_arg_advance): Likewise.
9644         (sparc_function_arg, sparc_function_incoming_arg): Likewise.
9645         (sparc_arg_partial_bytes, sparc_function_arg_1): Likewise.
9646         * config/mep/mep.c (mep_setup_incoming_varargs): Likewise.
9647         (mep_pass_by_reference, mep_function_arg): Likewise.
9648         (mep_function_arg_advance): Likewise.
9649         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
9650         (m32r_pass_by_reference, m32r_arg_partial_bytes): Likewise.
9651         (m32r_function_arg, m32r_function_arg_advance): Likewise.
9652         * config/rx/rx.c (rx_function_arg, rx_function_arg_advance): Likewise.
9653         * config/i386/i386.c (ix86_function_arg_advance): Likewise.
9654         (ix86_function_arg, ix86_pass_by_reference): Likewise.
9655         (ix86_setup_incoming_varargs): Likewise.
9656         * config/sh/sh.c (sh_setup_incoming_varargs): Likewise.
9657         (sh_strict_argument_naming): Likewise.
9658         (sh_pretend_outgoing_varargs_named, sh_pass_by_reference): Likewise.
9659         (sh_callee_copies, sh_arg_partial_bytes): Likewise.
9660         (sh_function_arg_advance, sh_function_arg): Likewise.
9661         * config/pdp11/pdp11.c (pdp11_function_arg): Likewise.
9662         (pdp11_function_arg_advance): Likewise.
9663         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
9664         Likewise.
9665         (microblaze_function_arg, function_arg_partial_bytes): Likewise.
9666         * config/avr/avr.c (avr_function_arg): Likewise.
9667         (avr_function_arg_advance): Likewise.
9668         * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise.
9669         (xtensa_function_arg, xtensa_function_incoming_arg): Likewise.
9670         (xtensa_function_arg_1): Likewise.
9671         * config/stormy16/stormy16.c (xstormy16_function_arg_advance):
9672         Likewise.
9673         (xstormy16_function_arg): Likewise.
9674         * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise.
9675         (fr30_arg_partial_bytes, fr30_function_arg): Likewise.
9676         (fr30_function_arg_advance): Likewise.
9677         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
9678         (lm32_function_arg, lm32_function_arg_advance): Likewise.
9679         * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise.
9680         (moxie_function_arg, moxie_function_arg_advance): Likewise.
9681         (moxie_pass_by_reference, moxie_arg_partial_bytes): Likewise.
9682         * config/cris/cris.c (cris_setup_incoming_varargs): Likewise.
9683         (cris_pass_by_reference, cris_arg_partial_bytes): Likewise.
9684         (cris_function_arg, cris_function_incoming_arg): Likewise.
9685         (cris_function_arg_advance, cris_function_arg_1): Likewise.
9686         * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise.
9687         (iq2000_pass_by_reference, iq2000_arg_partial_bytes): Likewise.
9688         (iq2000_function_arg, iq2000_function_arg_advance): Likewise.
9689         * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise.
9690         (mn10300_function_arg, mn10300_function_arg_advance): Likewise.
9691         (mn10300_arg_partial_bytes): Likewise.
9692         * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise.
9693         (ia64_arg_partial_bytes, ia64_function_arg): Likewise.
9694         (ia64_function_incoming_arg, ia64_function_arg_advance): Likewise.
9695         (ia64_function_arg_1): Likewise.
9696         * config/m68k/m68k.c (m68k_function_arg_advance): Likewise.
9697         (m68k_function_arg): Likewise.
9698         * config/rs6000/rs6000.c (rs6000_function_arg_advance): Likewise.
9699         (rs6000_function_arg, setup_incoming_varargs): Likewise.
9700         (rs6000_pass_by_reference, rs6000_arg_partial_bytes): Likewise.
9701         * config/picochip/picochip.c (picochip_arg_partial_bytes): Likewise.
9702         (picochip_function_arg, picochip_incoming_function_arg): Likewise.
9703         (picochip_arg_advance): Likewise.
9704         * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise.
9705         (mcore_arg_partial_bytes, mcore_function_arg): Likewise.
9706         (mcore_function_arg_advance): Likewise.
9707         * config/score/score.c (score_pass_by_reference): Likewise.
9708         (score_function_arg_advance): Likewise.
9709         (score_arg_partial_bytes): Likewise.  Make static.
9710         * config/score/score-protos.h (score_arg_partial_bytes): Don't declare.
9711         * config/arm/arm.c (arm_arg_partial_bytes): Replace
9712         CUMULATIVE_ARGS* argument type with cumulative_args_t.
9713         (arm_function_arg, arm_function_arg_advance): Likewise.
9714         (arm_setup_incoming_varargs, arm_pass_by_reference): Likewise.
9715         * config/pa/pa.c (pa_pass_by_reference): Likewise.
9716         (pa_arg_partial_bytes, pa_function_arg_advance): Likewise.
9717         (pa_function_arg): Likewise.
9718         * config/mips/mips.c (mips_strict_argument_naming): Likewise.
9719         (mips_function_arg, mips_function_arg_advance): Likewise.
9720         (mips_arg_partial_bytes, mips_pass_by_reference): Likewise.
9721         (mips_callee_copies, mips_setup_incoming_varargs): Likewise.
9722         * config/vax/vax.c (vax_function_arg): Likewise.
9723         (vax_function_arg_advance): Likewise.
9724         * config/h8300/h8300.c (h8300_function_arg): Likewise.
9725         (h8300_function_arg_advance): Likewise.
9726         * config/v850/v850.c (v850_pass_by_reference): Likewise.
9727         (v850_strict_argument_naming, v850_function_arg): Likewise.
9728         (v850_arg_partial_bytes, v850_function_arg_advance): Likewise.
9729         (v850_setup_incoming_varargs): Likewise.
9730         * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise.
9731         (mmix_function_arg_advance, mmix_function_incoming_arg): Likewise.
9732         (mmix_function_arg, mmix_pass_by_reference): Likewise.
9733         (mmix_function_arg_1): Replace const CUMULATIVE_ARGS* argument type
9734         with const void *.
9735         * config/bfin/bfin.c (setup_incoming_varargs): Replace
9736         CUMULATIVE_ARGS* argument type with cumulative_args_t.
9737         (bfin_function_arg_advance, bfin_function_arg): Likewise.
9738         (bfin_arg_partial_bytes, bfin_pass_by_reference): Likewise.
9739         * calls.c (emit_call_1): Change type of args_so_far to
9740         cumulative_args_t.  Changed all callers.
9741         (initialize_argument_information): Likewise.
9742         (expand_call, emit_library_call_value_1): Use pack_cumulative_args.
9743         * dse.c (get_call_args): Likewise.
9744         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
9745         * function.c (pass_by_reference, reference_callee_copied): Likewise.
9746         (struct assign_parm_data_all): Rename args_so_far to args_so_far_v.
9747         New member args_so_far_v.  Changed all users.
9748         * var-tracking.c (prepare_call_arguments): Use pack_cumulative_args.
9749         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
9750         * config/mips/mips.c (mips_output_args_xfer): Likewise.
9751         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
9752         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
9753         * config/microblaze/microblaze.c (microblaze_expand_prologue):
9754         Likewise.
9755         * config/m32r/m32r.c (m32r_return_in_memory): Adjust for changed
9756         m32r_pass_by_reference.
9757
9758 2011-06-16  Ira Rosen  <ira.rosen@linaro.org>
9759
9760         * tree-vectorizer.h (vect_recog_func_ptr): Change the first
9761         argument to be a VEC of statements.
9762         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove the
9763         assert that pattern statements have to have their vector type set.
9764         * tree-vect-patterns.c (vect_recog_widen_sum_pattern):
9765         Change the first argument to be a VEC of statements.  Update
9766         documentation.
9767         (vect_recog_dot_prod_pattern, vect_recog_pow_pattern): Likewise.
9768         (vect_handle_widen_mult_by_const): New function.
9769         (vect_recog_widen_mult_pattern):  Change the first argument to be a
9770         VEC of statements.  Update documentation.  Check that the constant is
9771         INTEGER_CST.  Support multiplication by a constant that fits an
9772         intermediate type - call vect_handle_widen_mult_by_const.
9773         (vect_pattern_recog_1): Update vect_recog_func_ptr and its
9774         call.  Handle additional pattern statements if necessary.
9775
9776 2011-06-16  Nick Clifton  <nickc@redhat.com>
9777
9778         PR target/49427
9779         * config.gcc: Set cpu_type to v850 for any V850 architecture.
9780         (v850*-*-*): Delete explicit setting of tm_p_file, tmake_file,
9781         md_file, extra_modes, out_file and extra_options are these are all
9782         deduced from cpu_type.
9783
9784 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
9785
9786         * config/avr/libgcc.S (__ashldi3, __ashrdi3, __lshrdi3): Set shift
9787         truncation mask to 63.
9788
9789 2011-06-16  Georg-Johann Lay  <avr@gjlay.de>
9790
9791         PR target/49313
9792         PR target/29524
9793         * longlong.h: Add AVR support:
9794         (count_leading_zeros): New macro.
9795         (count_trailing_zeros): New macro.
9796         (COUNT_LEADING_ZEROS_0): New macro.
9797         * config/avr/t-avr (LIB1ASMFUNCS): Add _ffssi2, _ffshi2, _loop_ffsqi2,
9798         _ctzsi2, _ctzhi2, _clzdi2, _clzsi2, _clzhi2, _paritydi2, _paritysi2,
9799         _parityhi2, _popcounthi2,_popcountsi2, _popcountdi2, _popcountqi2,
9800         _bswapsi2, _bswapdi2, _ashldi3, _ashrdi3, _lshrdi3.
9801         (LIB2FUNCS_EXCLUDE): Add _clz.
9802         * config/avr/libgcc.S (XCALL): Move up in file.
9803         (XJMP): New C Macro.
9804         (DEFUN): New asm macro.
9805         (ENDF): New asm macro.
9806         (__ffssi2): New function.
9807         (__ffshi2): New function.
9808         (__loop_ffsqi2): New function.
9809         (__ctzsi2): New function.
9810         (__ctzhi2): New function.
9811         (__clzdi2): New function.
9812         (__clzsi2): New function.
9813         (__clzhi2): New function.
9814         (__paritydi2): New function.
9815         (__paritysi2): New function.
9816         (__parityhi2): New function.
9817         (__parityqi2): New function.
9818         (__popcounthi2): New function.
9819         (__popcountsi2): New function.
9820         (__popcountdi2): New function.
9821         (__popcountqi2): New function.
9822         (__bswapsi2): New function.
9823         (__bswapdi2): New function.
9824         (__ashldi3): New function.
9825         (__ashrdi3): New function.
9826         (__lshrdi3): New function.
9827         Fix suspicous lines.
9828
9829 2011-06-16  Richard Guenther  <rguenther@suse.de>
9830
9831         * gimple.c (canonicalize_cond_expr_cond): (bool)x is not
9832         the same as x != 0.
9833         * fold-const.c (fold_binary_loc): Do not fold X & 1 != 0
9834         to (bool) X & 1.
9835         * ipa-prop.c (ipa_analyze_indirect_call_uses): Also allow
9836         equality compares against zero for the lower bit.
9837
9838 2011-06-16  Jakub Jelinek  <jakub@redhat.com>
9839
9840         PR tree-optimization/49419
9841         * tree-vrp.c (execute_vrp): Call init_range_assertions
9842         before estimate_numbers_of_iterations, call
9843         free_number_of_iterations_estimates before calling
9844         remove_range_assertions.
9845
9846 2011-06-16  Revital Eres  <revital.eres@linaro.org>
9847
9848         * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
9849         (struct partial_schedule): Add rows_length field.
9850         (verify_partial_schedule): Check rows_length.
9851         (ps_insert_empty_row): Handle rows_length.
9852         (create_partial_schedule): Likewise.
9853         (free_partial_schedule): Likewise.
9854         (reset_partial_schedule): Likewise.
9855         (create_ps_insn): Remove rest_count argument.
9856         (remove_node_from_ps): Update rows_length.
9857         (add_node_to_ps): Update rows_length and call create_ps_insn
9858         without passing row_rest_count.
9859         (rotate_partial_schedule): Update rows_length.
9860
9861 2011-06-16  Revital Eres  <revital.eres@linaro.org>
9862
9863         * ddg.c (add_intra_loop_mem_dep): New function.
9864         (build_intra_loop_deps): Call it.
9865
9866 2011-06-13  Jeff Law  <law@redhat.com>
9867
9868         * df-problems.c (df_lr_local_compute): Manually CSE
9869         PIC_OFFSET_TABLE_REGNUM.
9870         * df-scan.c (df_get_regular_block_artificial_uses): Likewise.
9871         (df_get_entry_block_def_set, df_get_exit_block_use_set): Likewise.
9872
9873 2011-06-13  Jan Hubicka  <jh@suse.cz>
9874
9875         * cgraphunit.c (handle_alias_pairs): New function.
9876         (cgraph_finalize_compilation_unit): Use it.
9877         * ipa.c (cgraph_externally_visible_p): Remove hack marking asm names
9878         as externally visible.
9879
9880 2011-06-15  Richard Guenther  <rguenther@suse.de>
9881
9882         * expr.c (expand_expr_real_2): Reduce all integral types to
9883         bitfield precision.
9884         (expand_expr_real_1): Likewise.
9885
9886 2011-06-15  Martin Jambor  <mjambor@suse.cz>
9887
9888         PR tree-optimization/48613
9889         * ipa-prop.c (ipa_prop_write_jump_functions): Return immediately if
9890         ipa_node_params_vector is NULL.
9891
9892 2011-06-15  Jakub Jelinek  <jakub@redhat.com>
9893
9894         PR debug/49382
9895         * dwarf2out.c (dw_loc_list_node): Add force field.
9896         (add_var_loc_to_decl): For PARM_DECL, attempt to keep the incoming
9897         location in the list, even if it is modified before first real insn.
9898         (output_loc_list): Emit empty ranges with force flag set.
9899         (dw_loc_list): If first range of a PARM_DECL is empty, set force flag.
9900
9901 2011-06-15  Alexander Monakov  <amonakov@ispras.ru>
9902
9903         PR target/49349
9904         * sel-sched.c (find_place_for_bookkeeping): Add new parameter
9905         (fence_to_rewind).  Use it to notice when bookkeeping will be placed
9906         above a fence.  Update comments.
9907         (generate_bookkeeping_insn): Rewind fence when bookkeeping code is
9908         placed just above it.  Do not allow NULL place_to_insert.
9909
9910 2011-06-15  Ira Rosen  <ira.rosen@linaro.org>
9911
9912         * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): Remove.
9913         (slpeel_tree_peel_loop_to_edge): Don't call
9914         remove_dead_stmts_from_loop.
9915         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
9916         remove irrelevant pattern statements.  For irrelevant statements
9917         check if it is the last statement of a detected pattern, use
9918         corresponding pattern statement instead.
9919         (destroy_loop_vec_info): No need to remove pattern statements,
9920         only free stmt_vec_info.
9921         (vect_transform_loop): For irrelevant statements check if it is
9922         the last statement of a detected pattern, use corresponding
9923         pattern statement instead.
9924         * tree-vect-patterns.c (vect_pattern_recog_1): Don't insert
9925         pattern statements.  Set basic block for the new statement.
9926         (vect_pattern_recog): Update documentation.
9927         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Scan
9928         operands of pattern statements.
9929         (vectorizable_call): Fix printing.  In case of a pattern statement
9930         use the lhs of the original statement when creating a dummy
9931         statement to replace the original call.
9932         (vect_analyze_stmt): For irrelevant statements check if it is
9933         the last statement of a detected pattern, use corresponding
9934         pattern statement instead.
9935         * tree-vect-slp.c (vect_schedule_slp_instance): For pattern
9936         statements use gsi of the original statement.
9937
9938 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
9939
9940         * target-def.h (TARGET_HAVE_NAMED_SECTIONS): Move to
9941         common/common-target-def.h.
9942         * target.def (default_target_flags, handle_option,
9943         supports_split_stack, optimization_table, init_struct,
9944         except_unwind_info, unwind_tables_default, have_named_sections):
9945         Move to common/common-target.def.
9946         * target.h (enum opt_levels, struct default_options): Move to
9947         common/common-target.h.
9948         * targhooks.c (default_except_unwind_info,
9949         dwarf2_except_unwind_info, sjlj_except_unwind_info,
9950         default_target_handle_option, empty_optimization_table): Move to
9951         common/common-targhooks.c.
9952         * targhooks.h (default_except_unwind_info,
9953         dwarf2_except_unwind_info, sjlj_except_unwind_info,
9954         default_target_handle_option, empty_optimization_table): Move to
9955         common/common-targhooks.h.
9956         * common/common-target-def.h: Include common/common-targhooks.h.
9957         (TARGET_HAVE_NAMED_SECTIONS): Define if TARGET_ASM_NAMED_SECTION
9958         defined.
9959         * common/common-target.def (handle_option, option_init_struct,
9960         option_optimization_table, default_target_flags,
9961         except_unwind_info, supports_split_stack, unwind_tables_default,
9962         have_named_sections): Move from target.def.
9963         (HOOK_PREFIX): Undefine at end of file.
9964         * common/common-target.h: Include input.h.
9965         (enum opt_levels, struct default_options): Move from target.h.
9966         * common/common-targhooks.c, common/common-targhooks.h: New.
9967         * config.gcc (target_has_targetm_common): Default to yes.
9968         (moxie*): Set target_has_targetm_common=no.
9969         (hppa*-*-*): Don't set target_has_targetm_common=yes.
9970         * doc/tm.texi: Regenerate.
9971         * Makefile.in (COMMON_TARGET_H): Add $(INPUT_H).
9972         (C_TARGET_DEF_H): Add common/common-targhooks.h.
9973         (GCC_OBJS): Remove vec.o.
9974         (OBJS): Remove hooks.o and vec.o.
9975         (OBJS-libcommon-target): Add vec.o, hooks.o and
9976         common/common-targhooks.o.
9977         (c-family/c-common.o, c-family/c-cppbuiltin.o, lto-opts.o, tree.o,
9978         tree-tailcall.o, opts.o, toplev.o, varasm.o, function.o, except.o,
9979         expr.o, explow.o, dbxout.o, dwarf2out.o, cfgrtl.o, haifa-sched.o,
9980         cfglayout.o, $(out_object_file), $(common_out_object_file)):
9981         Update dependencies.
9982         (common/common-targhooks.o): New.
9983         * common/config/default-common.c: Include tm.h.  Add FIXME comment.
9984         * common/config/pa/pa-common.c: Include more headers.  Take
9985         copyright dates from pa.c.
9986         (pa_option_optimization_table, pa_handle_option,
9987         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS,
9988         TARGET_HANDLE_OPTION): Move from pa.c.
9989         * common/config/alpha/alpha-common.c,
9990         common/config/arm/arm-common.c, common/config/avr/avr-common.c,
9991         common/config/bfin/bfin-common.c,
9992         common/config/cris/cris-common.c,
9993         common/config/fr30/fr30-common.c, common/config/frv/frv-common.c,
9994         common/config/h8300/h8300-common.c,
9995         common/config/i386/i386-common.c,
9996         common/config/ia64/ia64-common.c,
9997         common/config/iq2000/iq2000-common.c,
9998         common/config/lm32/lm32-common.c,
9999         common/config/m32c/m32c-common.c,
10000         common/config/m32r/m32r-common.c,
10001         common/config/m68k/m68k-common.c,
10002         common/config/mcore/mcore-common.c,
10003         common/config/mep/mep-common.c,
10004         common/config/microblaze/microblaze-common.c,
10005         common/config/mips/mips-common.c,
10006         common/config/mmix/mmix-common.c,
10007         common/config/mn10300/mn10300-common.c,
10008         common/config/pdp11/pdp11-common.c,
10009         common/config/picochip/picochip-common.c,
10010         common/config/rs6000/rs6000-common.c,
10011         common/config/rx/rx-common.c, common/config/s390/s390-common.c,
10012         common/config/score/score-common.c, common/config/sh/sh-common.c,
10013         common/config/sparc/sparc-common.c,
10014         common/config/spu/spu-common.c, common/config/v850/v850-common.c,
10015         common/config/vax/vax-common.c,
10016         common/config/xstormy16/xstormy16-common.c,
10017         common/config/xtensa/xtensa-common.c: New.
10018         * config/alpha/alpha.c: Include common/common-target.h.
10019         (alpha_option_optimization_table, alpha_handle_option,
10020         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
10021         TARGET_OPTION_OPTIMIZATION_TABLE): Move to alpha-common.c.
10022         * config/arm/arm-protos.h (arm_except_unwind_info): Declare.
10023         * config/arm/arm.c (arm_option_optimization_table,
10024         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
10025         TARGET_EXCEPT_UNWIND_INFO, arm_except_unwind_info): Move to
10026         arm-common.c.
10027         * config/avr/avr.c (avr_option_optimization_table,
10028         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
10029         to avr-common.c.
10030         * config/bfin/bfin.c (struct bfin_cpu): Move to bfin.h.
10031         (bfin_cpus, bfin_handle_option, TARGET_HANDLE_OPTION,
10032         TARGET_DEFAULT_TARGET_FLAGS): Move to bfin-common.c.
10033         * config/bfin/bfin.h struct bfin_cpu): Move from bfin.c.
10034         * config/cris/cris.c (cris_option_optimization_table,
10035         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
10036         TARGET_OPTION_OPTIMIZATION_TABLE, cris_handle_option): Move to
10037         cris-common.c.
10038         * config/fr30/fr30.c (fr30_option_optimization_table,
10039         TARGET_EXCEPT_UNWIND_INFO, TARGET_OPTION_OPTIMIZATION_TABLE): Move
10040         to fr30-common.c.
10041         * config/frv/frv.c (frv_option_optimization_table,
10042         MASK_DEFAULT_ALLOC_CC, TARGET_DEFAULT_TARGET_FLAGS,
10043         TARGET_OPTION_OPTIMIZATION_TABLE): Move to frv-common.c.
10044         * config/h8300/h8300.c (h8300_option_optimization_table,
10045         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
10046         TARGET_EXCEPT_UNWIND_INFO): Move to h8300-common.c.
10047         * config/i386/i386-protos.h (ix86_handle_option): Declare.
10048         * config/i386/i386.c: Include common/common-target.h.
10049         (OPTION_MASK_ISA_MMX_SET, OPTION_MASK_ISA_3DNOW_SET,
10050         OPTION_MASK_ISA_SSE_SET, OPTION_MASK_ISA_SSE2_SET,
10051         OPTION_MASK_ISA_SSE3_SET, OPTION_MASK_ISA_SSSE3_SET,
10052         OPTION_MASK_ISA_SSE4_1_SET, OPTION_MASK_ISA_SSE4_2_SET,
10053         OPTION_MASK_ISA_AVX_SET, OPTION_MASK_ISA_FMA_SET,
10054         OPTION_MASK_ISA_SSE4_SET, OPTION_MASK_ISA_SSE4A_SET,
10055         OPTION_MASK_ISA_FMA4_SET, OPTION_MASK_ISA_XOP_SET,
10056         OPTION_MASK_ISA_LWP_SET, OPTION_MASK_ISA_AES_SET,
10057         OPTION_MASK_ISA_PCLMUL_SET, OPTION_MASK_ISA_ABM_SET,
10058         OPTION_MASK_ISA_BMI_SET, OPTION_MASK_ISA_TBM_SET,
10059         OPTION_MASK_ISA_POPCNT_SET, OPTION_MASK_ISA_CX16_SET,
10060         OPTION_MASK_ISA_SAHF_SET, OPTION_MASK_ISA_MOVBE_SET,
10061         OPTION_MASK_ISA_CRC32_SET, OPTION_MASK_ISA_FSGSBASE_SET,
10062         OPTION_MASK_ISA_RDRND_SET, OPTION_MASK_ISA_F16C_SET,
10063         OPTION_MASK_ISA_MMX_UNSET, OPTION_MASK_ISA_3DNOW_UNSET,
10064         OPTION_MASK_ISA_3DNOW_A_UNSET, OPTION_MASK_ISA_SSE_UNSET,
10065         OPTION_MASK_ISA_SSE2_UNSET, OPTION_MASK_ISA_SSE3_UNSET,
10066         OPTION_MASK_ISA_SSSE3_UNSET, OPTION_MASK_ISA_SSE4_1_UNSET,
10067         OPTION_MASK_ISA_SSE4_2_UNSET, OPTION_MASK_ISA_AVX_UNSET,
10068         OPTION_MASK_ISA_FMA_UNSET, OPTION_MASK_ISA_SSE4_UNSET,
10069         OPTION_MASK_ISA_SSE4A_UNSET, OPTION_MASK_ISA_FMA4_UNSET,
10070         OPTION_MASK_ISA_XOP_UNSET, OPTION_MASK_ISA_LWP_UNSET,
10071         OPTION_MASK_ISA_AES_UNSET, OPTION_MASK_ISA_PCLMUL_UNSET,
10072         OPTION_MASK_ISA_ABM_UNSET, OPTION_MASK_ISA_BMI_UNSET,
10073         OPTION_MASK_ISA_TBM_UNSET, OPTION_MASK_ISA_POPCNT_UNSET,
10074         OPTION_MASK_ISA_CX16_UNSET, OPTION_MASK_ISA_SAHF_UNSET,
10075         OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_CRC32_UNSET,
10076         OPTION_MASK_ISA_FSGSBASE_UNSET, OPTION_MASK_ISA_RDRND_UNSET,
10077         OPTION_MASK_ISA_F16C_UNSET, ix86_handle_option,
10078         ix86_option_optimization_table, ix86_option_init_struct,
10079         ix86_supports_split_stack, TARGET_DEFAULT_TARGET_FLAGS,
10080         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
10081         TARGET_OPTION_INIT_STRUCT, TARGET_SUPPORTS_SPLIT_STACK): Move to
10082         i386-common.c.
10083         * config/i386/t-i386 (i386.o): Update dependencies.
10084         * config/ia64/ia64-protos.h (ia64_except_unwind_info): Declare.
10085         * config/ia64/ia64.c (ia64_option_optimization_table,
10086         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
10087         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
10088         ia64_handle_option): Move to ia64-common.c.
10089         * config/iq2000/iq2000.c (iq2000_option_optimization_table,
10090         TARGET_OPTION_OPTIMIZATION_TABLE): Move to iq2000-common.c.
10091         * config/lm32/lm32.c (lm32_option_optimization_table,
10092         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO): Move
10093         to lm32-common.c.
10094         * config/m32c/m32c.c (TARGET_HAVE_NAMED_SECTIONS): Move to
10095         m32c-common.c.
10096         * config/m32r/m32r.c (m32r_option_optimization_table,
10097         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
10098         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_EXCEPT_UNWIND_INFO,
10099         m32r_handle_option): Move to m32r-common.c.
10100         (m32r_memory_move_cost): Remove comment referring to
10101         TARGET_HANDLE_OPTION.
10102         * config/m68k/m68k.c (TARGET_HANDLE_OPTION, m68k_handle_option):
10103         Move to m68k-common.c.
10104         * config/mcore/mcore.c (mcore_option_optimization_table,
10105         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
10106         TARGET_EXCEPT_UNWIND_INFO): Move to mcore-common.c.
10107         * config/mep/mep.c (mep_option_optimization_table,
10108         mep_handle_option, TARGET_HANDLE_OPTION,
10109         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_DEFAULT_TARGET_FLAGS):
10110         Move to mep-common.c.
10111         * config/microblaze/microblaze.c
10112         (microblaze_option_optimization_table,
10113         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE,
10114         TARGET_EXCEPT_UNWIND_INFO): Move to microblaze-common.c.
10115         * config/mips/mips.c (mips_handle_option,
10116         mips_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
10117         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Move to
10118         mips-common.c.
10119         * config/mmix/mmix.c (mmix_option_optimization_table,
10120         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
10121         Move to mmix-common.c.
10122         * config/mn10300/mn10300.c (mn10300_option_optimization_table,
10123         mn10300_handle_option, TARGET_EXCEPT_UNWIND_INFO,
10124         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
10125         TARGET_OPTION_OPTIMIZATION_TABLE): Move to mn10300-common.c.
10126         * config/pa/pa.c: Include common/common-target.h.
10127         (pa_option_optimization_table, TARGET_OPTION_OPTIMIZATION_TABLE,
10128         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
10129         pa_handle_option): Move to pa-common.c.
10130         (pa_option_override): Use targetm_common.except_unwind_info.
10131         (pa_asm_output_mi_thunk, pa_function_section): Use
10132         targetm_common.have_named_sections.
10133         * config/pdp11/pdp11.c (pdp11_option_optimization_table,
10134         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
10135         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
10136         pdp11_handle_option, pdp11_option_init_struct): Move to
10137         pdp11-common.c.
10138         * config/picochip/picochip.c (picochip_option_optimization_table,
10139         TARGET_HAVE_NAMED_SECTIONS, TARGET_OPTION_OPTIMIZATION_TABLE,
10140         TARGET_EXCEPT_UNWIND_INFO): Move to picochip-common.c.
10141         * config/rs6000/rs6000.c: Include common/common-target.h.
10142         (rs6000_option_optimization_table, TARGET_HANDLE_OPTION,
10143         TARGET_OPTION_INIT_STRUCT, TARGET_OPTION_OPTIMIZATION_TABLE,
10144         TARGET_DEFAULT_TARGET_FLAGS, rs6000_option_init_struct,
10145         rs6000_handle_option): Move to rs6000-common.c.
10146         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
10147         * config/rx/rx.c (rx_handle_option, rx_option_optimization_table,
10148         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
10149         TARGET_EXCEPT_UNWIND_INFO): Move to rx-common.c.
10150         * config/s390/s390.c (processor_flags_table,
10151         s390_option_optimization_table, s390_option_init_struct,
10152         s390_handle_option, TARGET_DEFAULT_TARGET_FLAGS,
10153         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE,
10154         TARGET_OPTION_INIT_STRUCT): Move to s390-common.c.
10155         * config/s390/s390.h (processor_flags_table): Declare.
10156         * config/score/score.c (score_option_optimization_table,
10157         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
10158         TARGET_OPTION_OPTIMIZATION_TABLE, MASK_ALL_CPU_BITS,
10159         score_handle_option): Move to score-common.c.
10160         * config/sh/sh.c (sh_option_optimization_table,
10161         TARGET_OPTION_OPTIMIZATION_TABLE, TARGET_OPTION_INIT_STRUCT,
10162         TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION,
10163         sh_handle_option, sh_option_init_struct): Move to sh-common.c.
10164         * config/sparc/sparc.c: Include common/common-target.h.
10165         (sparc_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
10166         TARGET_OPTION_OPTIMIZATION_TABLE): Move to sparc-common.c.
10167         * config/spu/spu.c (TARGET_DEFAULT_TARGET_FLAGS,
10168         TARGET_OPTION_INIT_STRUCT, TARGET_EXCEPT_UNWIND_INFO,
10169         spu_option_init_struct): Move to spu-common.c.
10170         * config/stormy16/stormy16.c (xstorym16_option_optimization_table,
10171         TARGET_OPTION_OPTIMIZATION_TABLE): Move to xstormy16-common.c.
10172         * config/v850/v850.c (small_memory_physical_max,
10173         v850_handle_memory_optionn v850_handle_option,
10174         v850_option_optimization_table, TARGET_DEFAULT_TARGET_FLAGS,
10175         TARGET_HANDLE_OPTION, TARGET_OPTION_OPTIMIZATION_TABLE): Move to
10176         v850-common.c.
10177         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Move to vax-common.c.
10178         * config/xtensa/xtensa.c (xtensa_option_optimization_table,
10179         TARGET_DEFAULT_TARGET_FLAGS, TARGET_OPTION_OPTIMIZATION_TABLE):
10180         Move to xtensa-common.c.
10181         * cfglayout.c: Include common/common-target.h.
10182         (fixup_reorder_chain): Use targetm_common.have_named_sections.
10183         * cfgrtl.c: Include common/common-target.h.
10184         (force_nonfallthru_and_redirect, commit_one_edge_insertion): Use
10185         targetm_common.have_named_sections.
10186         * dbxout.c: Include common/common-target.h.
10187         (dbxout_function_end): Use targetm_common.have_named_sections.
10188         * defaults.h (STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT): Use
10189         targetm_common.except_unwind_info.
10190         * dwarf2out.c: Include common/common-target.h.
10191         (dwarf2out_do_frame, dwarf2out_do_cfi_asm,
10192         dwarf2out_begin_prologue, dwarf2out_frame_init,
10193         dwarf2out_frame_finish, dwarf2out_assembly_start): Use
10194         targetm_common.except_unwind_info.
10195         * except.c: Include common/common-target.h.
10196         (init_eh, finish_eh_generation,
10197         output_one_function_exception_table): Use
10198         targetm_common.except_unwind_info.
10199         (switch_to_exception_section): Use targetm_common.have_named_sections.
10200         * explow.c: Include common/common-target.h.
10201         * expr.c: Include common/common-target.h.
10202         (build_personality_function): Use targetm_common.except_unwind_info.
10203         * function.c: Include common/common-target.h.
10204         (expand_function_end): Use targetm_common.except_unwind_info.
10205         * haifa-sched.c: Include common/common-target.h.
10206         (sched_create_recovery_edges): Use targetm_common.have_named_sections.
10207         * lto-opts.c: Include common/common-target.h instead of target.h.
10208         (lto_reissue_options): Use targetm_common.handle_option.
10209         * opts.c: Include common/common-target.h.
10210         (target_handle_option): Use targetm_common.handle_option.
10211         (init_options_struct): Update comment referring to
10212         targetm.target_option.optimization.  Use
10213         targetm_common.default_target_flags,
10214         targetm_common.unwind_tables_default and
10215         targetm_common.option_init_struct.
10216         (default_options_optimization): Use
10217         targetm_common.option_optimization_table.
10218         (finish_options): Use targetm_common.except_unwind_info,
10219         targetm_common.unwind_tables_default,
10220         targetm_common.have_named_sections and
10221         targetm_common.supports_split_stack.
10222         * toplev.c: Include common/common-target.h.
10223         (process_options): Use targetm_common.have_named_sections.
10224         * tree-tailcall.c: Include common/common-target.h.
10225         (suitable_for_tail_call_opt_p): Use targetm_common.except_unwind_info.
10226         * tree.c: Include common/common-target.h.
10227         (build_common_builtin_nodes): Use targetm_common.except_unwind_info.
10228         * varasm.c: Include common/common-target.h.
10229         (resolve_unique_section, hot_function_section,
10230         default_function_section): Use targetm_common.have_named_sections.
10231
10232 2011-06-14  Easwaran Raman  <eraman@google.com>
10233
10234         PR rtl-optimization/44194
10235         * dse.c: Include tree-flow.h
10236         (insn_info): Add new field non_frame_wild_read.
10237         (group_info): Add new fields escaped_n and escaped_p.
10238         (kill_on_calls): New variable.
10239         (get_group_info): Initialize gi->escaped_n and gi->escaped_p.
10240         (dse_step0): Initialize kill_on_calls.
10241         (can_escape): New function.
10242         (set_usage_bits): Add additional parameter; record information
10243         about escaped locations.
10244         (record_store): Pass EXPR corresponding to MEM to set_usage_bits.
10245         (dse_step2_nospill): Set kill_on_calls based on
10246         group->escaped_n and group->escaped_n.
10247         (add_wild_read): Refactor into...
10248         (reset_active_stores): ... New function, and
10249         (free_read_records): ... New function.
10250         (add_non_frame_wild_read): New function.
10251         (scan_insn): Call add_non_frame_wild_read on non-const calls.
10252         (scan_reads_nospill): Handle instructions with non_frame_wild_read.
10253         (dse_step5_nospill): Call scan_reads_nospill for instructions
10254         marked as non_frame_wild_read.
10255         (dse_step7): Free escaped_n, escaped_p and kill_on_calls bitmaps.
10256
10257 2011-06-14  Joseph Myers  <joseph@codesourcery.com>
10258
10259         * common/common-target-def.h, common/common-target.def,
10260         common/common-target.h, common/config/default-common.c,
10261         common/config/pa/pa-common.c: New files.
10262         * Makefile.in (common_out_file, common_out_object_file,
10263         COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
10264         (OBJS-libcommon-target): Include $(common_out_object_file).
10265         (prefix.o): Update dependencies.
10266         ($(common_out_object_file), common/common-target-hooks-def.h,
10267         s-common-target-hooks-def-h): New.
10268         (s-tm-texi): Also check timestamp on common-target.def.
10269         (build/genhooks.o): Update dependencies.
10270         * config.gcc (common_out_file, target_has_targetm_common): Define.
10271         * config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
10272         TARGET_ALWAYS_STRIP_DOTDOT.
10273         * configure.ac (common_out_object_file): Define.
10274         (common_out_file, common_out_object_file): Substitute.
10275         (common): Create directory.
10276         * configure: Regenerate.
10277         * doc/tm.texi.in (targetm_common): Document.
10278         (TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
10279         * doc/tm.texi: Regenerate.
10280         * genhooks.c (hook_array): Also include common/common-target.def.
10281         * prefix.c (tm.h): Don't include.
10282         (common/common-target.h): Include.
10283         (ALWAYS_STRIP_DOTDOT): Don't define.
10284         (update_path): Use targetm_common.always_strip_dotdot instead of
10285         ALWAYS_STRIP_DOTDOT.
10286         * system.h (ALWAYS_STRIP_DOTDOT): Poison.
10287
10288 2011-06-14  David Li  <davidxl@google.com>
10289
10290         * passes.c (execute_function_todo): Remove TODO_dump_func.
10291         (execute_one_pass): Remove TODO_dump_func.
10292         (execute_function_dump): New function.
10293         * tree-vrp.c: Remove TODO_dump_func.
10294         * regrename.c: Remove TODO_dump_func.
10295         * fwprop.c: Remove TODO_dump_func.
10296         * tree-into-ssa.c: Remove TODO_dump_func.
10297         * tree-complex.c: Remove TODO_dump_func.
10298         * tracer.c: Remove TODO_dump_func.
10299         * tree-loop-distribution.c: Remove TODO_dump_func.
10300         * postreload-gcse.c: Remove TODO_dump_func.
10301         * postreload.c: Remove TODO_dump_func.
10302         * tree-ssa-loop-ch.c: Remove TODO_dump_func.
10303         * tree-tailcall.c: Remove TODO_dump_func.
10304         * ipa-cp.c: Remove TODO_dump_func.
10305         * final.c: Remove TODO_dump_func.
10306         * tree-emutls.c: Remove TODO_dump_func.
10307         * omp-low.c: Remove TODO_dump_func.
10308         * tree-ssa-dse.c: Remove TODO_dump_func.
10309         * tree-ssa-uncprop.c: Remove TODO_dump_func.
10310         * auto-inc-dec.c: Remove TODO_dump_func.
10311         * reorg.c: Remove TODO_dump_func.
10312         * tree-ssa-copyrename.c: Remove TODO_dump_func.
10313         * tree-ssa-ccp.c: Remove TODO_dump_func.
10314         * compare-elim.c: Remove TODO_dump_func.
10315         * mode-switching.c: Remove TODO_dump_func.
10316         * modulo-sched.c: Remove TODO_dump_func.
10317         * tree-call-cdce.c: Remove TODO_dump_func.
10318         * cse.c: Remove TODO_dump_func.
10319         * web.c: Remove TODO_dump_func.
10320         * tree-stdarg.c: Remove TODO_dump_func.
10321         * lto-streamer-out.c: Remove TODO_dump_func.
10322         * tree-ssa-math-opts.c: Remove TODO_dump_func.
10323         * tree-ssa-dom.c: Remove TODO_dump_func.
10324         * tree-nrv.c: Remove TODO_dump_func.
10325         * loop-init.c: Remove TODO_dump_func.
10326         * gimple-low.c: Remove TODO_dump_func.
10327         * ipa-inline.c: Remove TODO_dump_func.
10328         * tree-ssa-sink.c: Remove TODO_dump_func.
10329         * jump.c: Remove TODO_dump_func.
10330         * ifcvt.c: Remove TODO_dump_func.
10331         * tree-ssa-loop.c: Remove TODO_dump_func.
10332         * recog.c: Remove TODO_dump_func.
10333         * dse.c: Remove TODO_dump_func.
10334         * tree-ssa-ifcombine.c: Remove TODO_dump_func.
10335         * matrix-reorg.c: Remove TODO_dump_func.
10336         * tree-eh.c: Remove TODO_dump_func.
10337         * regmove.c: Remove TODO_dump_func.
10338         * function.c: Remove TODO_dump_func.
10339         * tree-vectorizer.c: Remove TODO_dump_func.
10340         * ipa-split.c: Remove TODO_dump_func.
10341         * gcse.c: Remove TODO_dump_func.
10342         * tree-if-conv.c: Remove TODO_dump_func.
10343         * init-regs.c: Remove TODO_dump_func.
10344         * tree-ssa-phiopt.c: Remove TODO_dump_func.
10345         * implicit-zee.c: Remove TODO_dump_func.
10346         * lower-subreg.c: Remove TODO_dump_func.
10347         * bt-load.c: Remove TODO_dump_func.
10348         * tree-dfa.c: Remove TODO_dump_func.
10349         * except.c: Remove TODO_dump_func.
10350         * emit-rtl.c: Remove TODO_dump_func.
10351         * store-motion.c: Remove TODO_dump_func.
10352         * cfgexpand.c: Remove TODO_dump_func.
10353         * tree-cfgcleanup.c: Remove TODO_dump_func.
10354         * cfgcleanup.c: Remove TODO_dump_func.
10355         * tree-ssa-pre.c: Remove TODO_dump_func.
10356         * tree-sra.c: Remove TODO_dump_func.
10357         * tree-mudflap.c: Remove TODO_dump_func.
10358         * tree-ssa-copy.c: Remove TODO_dump_func.
10359         * cfglayout.c: Remove TODO_dump_func.
10360         * tree-ssa-forwprop.c: Remove TODO_dump_func.
10361         * tree-ssa-dce.c: Remove TODO_dump_func.
10362         * ira.c: Remove TODO_dump_func.
10363         * tree-ssa.c: Remove TODO_dump_func.
10364         * integrate.c: Remove TODO_dump_func.
10365         * tree-optimize.c: Remove TODO_dump_func.
10366         * tree-ssa-phiprop.c: Remove TODO_dump_func.
10367         * tree-object-size.c: Remove TODO_dump_func.
10368         * combine.c: Remove TODO_dump_func.
10369         * bb-reorder.c: Remove TODO_dump_func.
10370         * cprop.c: Remove TODO_dump_func.
10371         * var-tracking.c: Remove TODO_dump_func.
10372         * tree-profile.c: Remove TODO_dump_func.
10373         * tree-vect-generic.c: Remove TODO_dump_func.
10374         * reg-stack.c: Remove TODO_dump_func.
10375         * sched-rgn.c: Remove TODO_dump_func.
10376         * tree-ssa-structalias.c: Remove TODO_dump_func.
10377         * tree-switch-conversion.c: Remove TODO_dump_func.
10378         * tree-cfg.c: Remove TODO_dump_func.
10379         * tree-ssa-reassoc.c: Remove TODO_dump_func.
10380         * combine-stack-adj.c: Remove TODO_dump_func.
10381         * dce.c: Remove TODO_dump_func.
10382         * tree-ssanames.c: Remove TODO_dump_func.
10383         * regcprop.c: Remove TODO_dump_func.
10384
10385 2011-06-14  H.J. Lu  <hongjiu.lu@intel.com>
10386
10387         PR middle-end/47364
10388         * builtins.c (expand_builtin_strlen): Expand strlen to Pmode
10389         and properly handle result not in Pmode.
10390
10391 2011-06-14  Robert Millan  <rmh@gnu.org>
10392
10393         * config/i386/kfreebsd-gnu.h: Resync with `config/i386/linux.h'.
10394         * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER): Resync with
10395         `config/linux.h'.
10396
10397         * config/i386/kfreebsd-gnu64.h: New file.
10398         * config.gcc (x86_64-*-kfreebsd*-gnu): Replace `i386/kfreebsd-gnu.h'
10399         with `i386/kfreebsd-gnu64.h'.
10400
10401         * config/i386/linux64.h (GNU_USER_LINK_EMULATION32)
10402         (GNU_USER_LINK_EMULATION64): New macros.
10403         * config/i386/gnu-user64.h (LINK_SPEC): Rely on
10404         `GNU_USER_LINK_EMULATION32' and `GNU_USER_LINK_EMULATION64' instead
10405         of hardcoding `elf_i386' and `elf_x86_64'.
10406
10407 2011-06-14  Nick Clifton  <nickc@redhat.com>
10408
10409         PR target/49403
10410         * config/v850/v850.c (v850_memory_move_cost): Add reg_class_t parameter.
10411
10412         PR target/49402
10413         * config.gcc(v850*-*-*): Avoid duplication of v850.opt.
10414
10415 2011-06-14  Jakub Jelinek  <jakub@redhat.com>
10416
10417         PR fortran/49103
10418         * tree.h (DECL_NONSHAREABLE): Define.
10419         (struct tree_decl_common): Change decl_common_unused to
10420         decl_nonshareable_flag.
10421         * cfgexpand.c (expand_used_vars_for_block, clear_tree_used):
10422         Ignore vars with DECL_NONSHAREABLE bit set.
10423         * tree-cfg.c (gimple_duplicate_bb): Set DECL_NONSHAREABLE
10424         on stores to automatic aggregate vars.
10425
10426         PR rtl-optimization/49390
10427         Revert:
10428         2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
10429
10430         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
10431         MEM_ALIAS_SET.
10432
10433 2011-06-14  Zdenek Dvorak  <ook@ucw.cz>
10434             Tom de Vries  <tom@codesourcery.com>
10435
10436         PR target/45098
10437         * cfgloop.h (nb_iterations_upper_bound, nb_iterations_estimate):
10438         Document changed semantics.
10439         (max_stmt_executions, max_stmt_executions_int): Declare.
10440         * tree-data-ref.c (estimated_loop_iterations)
10441         (estimated_loop_iterations_int): Move functions...
10442         * tree-ssa-loop-niter.c (estimated_loop_iterations)
10443         (estimated_loop_iterations_int): here.
10444         (record_estimate): Change nb_iterations_upper_bound and
10445         nb_iterations_estimate semantics.
10446         (max_stmt_executions, max_stmt_executions_int): New function.
10447         * tree-data-ref.c (estimated_loop_iterations_tree): Rename to ...
10448         (max_stmt_executions_tree): this.
10449         (analyze_miv_subscript): Use max_stmt_executions_tree instead of
10450         estimated_loop_iterations_tree.
10451         tree-ssa-loop-ivopts.c (avg_loop_niter): Use
10452         max_stmt_executions_int instead of estimated_loop_iterations_int.
10453         * predict.c (predict_loops): Idem.
10454         * tree-parloops.c (parallelize_loops): Idem.
10455         * tree-data-ref.c (analyze_siv_subscript_cst_affine)
10456         (compute_overlap_steps_for_affine_1_2, analyze_subscript_affine_affine)
10457         (init_omega_for_ddr_1): Idem.
10458         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse)
10459         (loop_prefetch_arrays): Idem
10460         * graphite-sese-to-poly.c (build_loop_iteration_domains): Use
10461         max_stmt_executions instead of estimated_loop_iterations.
10462         * tree-data-ref.c (estimated_loop_iterations_tree): Idem.
10463         * tree-vrp.c (adjust_range_with_scev): Use estimated_loop_iterations
10464         instead of nb_iterations_upper_bound.
10465
10466 2011-06-13  Jan Hubicka  <jh@suse.cz>
10467
10468         * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
10469
10470 2011-06-14  Richard Henderson  <rth@redhat.com>
10471
10472         PR debug/48459
10473         * dwarf2out.c (frame_pointer_fb_offset_valid): New.
10474         (based_loc_descr): Assert it's true.
10475         (compute_frame_pointer_to_fb_displacement): Set it, rather than
10476         aborting immediately.
10477
10478 2011-06-14  Sanjin Liu  <scliu@faraday-tech.com>
10479             Mingfeng Wu  <mingfeng@faraday-tech.com>
10480
10481         * doc/invoke.texi: Re-add missing -mcpu docs for Faraday cores.
10482
10483 2011-06-13  Jan Hubicka  <jh@suse.cz>
10484
10485         * ipa-cp.c (ipcp_iterate_stage): Revert accidental commit.
10486
10487 2011-06-13  Jan Hubicka  <jh@suse.cz>
10488
10489         * cgraph.c (cgraph_make_decl_local): Handle DECL_ONE_ONLY
10490         similarly to DECL_COMDAT.
10491         * cgraphunit.c (cgraph_analyze_function): Likewise.
10492         * ipa.c (function_and_variable_visibility): Likewise.
10493
10494 2011-06-13  Jan Hubicka  <jh@suse.cz>
10495
10496         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not output
10497         BINFO_VIRTUALS when streaming for ltrans unit.
10498
10499 2011-06-13  David Edelsohn  <dje.gcc@gmail.com>
10500
10501         * config/rs6000/rs6000.md (movdi_mfpgpr): Remove POWER mnemonic.
10502         (movdi_internal64): Same.
10503
10504 2011-06-13  Edmar Wienskoski  <edmar@freescale.com>
10505
10506         PR target/44618
10507         * config/rs6000/rs6000.md (save_gpregs_<mode>): Replaced pattern with
10508         a set of similar patterns, where the MATCH_OPERAND for the function
10509         argument is replaced with individual references to hardware registers.
10510         (save_fpregs_<mode>): Ditto
10511         (restore_gpregs_<mode>): Ditto
10512         (return_and_restore_gpregs_<mode>): Ditto
10513         (return_and_restore_fpregs_<mode>): Ditto
10514         (return_and_restore_fpregs_aix_<mode>): Ditto
10515
10516 2011-06-13  Jan Hubicka  <jh@suse.cz>
10517
10518         * ipa-utils.c (postorder_stack): New structure.
10519         (ipa_reverse_postorder): Handle aliases.
10520
10521 2011-06-13  Jan Hubicka  <jh@suse.cz>
10522
10523         * ipa-inline.c (reset_edge_caches): Walk aliases.
10524         (update_caller_keys): Do not test inlinability of aliases.
10525         * ipa-inline-analysis.c (do_estimate_edge_time): Look through alias.
10526         (do_estimate_growth): Fix typo.
10527
10528 2011-06-13  Jan Hubicka  <jh@suse.cz>
10529
10530         * ipa-inline-transform.c (+can_remove_node_now_p_1): Break out from...
10531         (can_remove_node_now_p): ... here; handle same comdat groups.
10532         (clone_inlined_nodes): Update use of can_remove_node_now_p add TODO.
10533         (inline_call): Update use of can_remove_node_now_p.
10534
10535 2011-06-13  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
10536
10537         * config/h8300/h8300.md (bsetqi_msx, bclrqi_msx, bnotqi_msx): Added
10538         condition to disallow non-identical memory locations.
10539         (*andqi3_2, andqi3_1, iorqi3_1, xorqi3_1): Reorder insn to give
10540         preference to bit manipulation instructions.
10541
10542 2011-06-13  Jan Hubicka  <jh@suse.cz>
10543
10544         * cgraph.c (cgraph_for_node_thunks_and_aliases,
10545         cgraph_for_node_and_aliases): Fix thinko in recursive walking.
10546         (nonremovable_p): New function.
10547         (cgraph_can_remove_if_no_direct_calls_p): New function.
10548         (used_from_object_file_p): New functoin.
10549         (cgraph_will_be_removed_from_program_if_no_direct_calls): Look for
10550         references from aliases.
10551         * cgraph.h (cgraph_can_remove_if_no_direct_calls_p): Bring offline.
10552         * ipa-inline.c (check_caller_edge): New function.
10553         (want_inline_function_called_once_p): Use it; accept aliases called
10554         once, too.
10555         * ipa-inline-analysis.c (do_estimate_growth): Remove FIXME.
10556
10557 2011-06-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10558
10559         PR target/48454
10560         * config/arm/neon.md (vec_pack_trunc): Set the lengths
10561         correctly for the case with Quad vectors.
10562
10563 2011-06-13 Jakub Jelinek  <jakub@redhat.com>
10564            Ira Rosen  <ira.rosen@linaro.org>
10565
10566         PR tree-optimization/49352
10567         * tree-vect-loop.c (vect_is_slp_reduction): Don't count debug uses at
10568         all, make sure loop_use_stmt after the loop is a def stmt of a used
10569         SSA_NAME that is the only one defined inside of the loop.  Don't
10570         check for COND_EXPR and GIMPLE_BINARY_RHS.
10571         (vect_is_simple_reduction_1): Call vect_is_slp_reduction only if
10572         check_reduction is true.
10573
10574 2011-06-11  Jan Hubicka  <jh@suse.cz>
10575
10576         PR middle-end/49373
10577         * ipa.c (cgraph_externally_visible_p): Check resolution info.
10578
10579 2011-06-11  Jan Hubicka  <jh@suse.cz>
10580
10581         PR middle-end/48836
10582         * ipa-inline-transform.c: Include tree-pass.h
10583         (inline_transform): Set TODO_update_ssa_only_virtuals.
10584         * Makefile.in (ipa-inline-transform.o): Add tree-pass.h.
10585
10586 2011-06-11  Jan Hubicka  <jh@suse.cz>
10587
10588         PR middle-end/49378
10589         * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
10590         aliases and thunks.
10591
10592 2011-06-12  Ira Rosen  <ira.rosen@linaro.org>
10593
10594         * tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
10595         Take number of iterations to peel into account for equally frequent
10596         misalignment values.
10597
10598 2011-06-11  Jan Hubicka  <jh@suse.cz>
10599
10600         * lto-streamer-out.c (produce_symtab): Stream out the newly
10601         represented aliases.
10602
10603 2011-06-11  Jan Hubicka  <jh@suse.cz>
10604
10605         * ipa-prop.c (ipa_make_edge_direct_to_target): Fix code setting
10606         varying args.
10607         (ipa_update_after_lto_read): Likewise.
10608         (ipa_write_node_info): Do not sream call_with_var_arguments.
10609         (ipa_read_node_info): Likewise.
10610
10611 2011-06-11  Jan Hubicka  <jh@suse.cz>
10612
10613         * ipa.c (cgraph_comdat_can_be_unshared_p): Fix pasto.
10614
10615 2011-06-11  Jan Hubicka  <jh@suse.cz>
10616
10617         * lto-symtab.c (lto_cgraph_replace_node): Kill same body alias code.
10618         (lto_symtab_resolve_can_prevail_p): Likewise.
10619         (lto_symtab_merge_cgraph_nodes): Update merging of aliases.
10620         * cgraph.c (same_body_aliases_done): New global var.
10621         (cgraph_same_body_alias_1): Rename to ...
10622         (cgraph_create_function_alias): ... this one; reorg to new
10623         representation.
10624         (cgraph_same_body_alias): Use cgraph_create_function_alias;
10625         record references when asked to.
10626         (cgraph_add_thunk): Fix formating.
10627         (cgraph_get_node): Kill same body alias code.
10628         (cgraph_node_for_asm): Likewise.
10629         (cgraph_remove_same_body_alias): Remove.
10630         (cgraph_remove_node): Kill same body alias code.
10631         (cgraph_mark_address_taken_node): Mark also the aliased function
10632         as having address taken.
10633         (dump_cgraph_node): Dump same body aliases.
10634         (cgraph_for_node_thunks_and_aliases): Update for new alias
10635         representation.
10636         (cgraph_for_node_and_aliases): Likewise.
10637         * cgraph.h (same_body): Kll pointer.
10638         (same_body_alias): Update comment.
10639         (same_body_aliases_done): Declare.
10640         (cgraph_remove_same_body_alias): Remove declaration.
10641         (cgraph_create_function_alias): Declare.
10642         (cgraph_process_same_body_aliases): Declare.
10643         (cgraph_function_with_gimple_body_p): Check for alias.
10644         (cgraph_can_remove_if_no_direct_calls_p): Look for aliases.
10645         (cgraph_alias_aliased_node): New function.
10646         (cgraph_function_node): Update for new aliases.
10647         (cgraph_function_or_thunk_node): Likewise.
10648         * ipa-inline-transform.c (can_remove_node_now_p): Look for aliases.
10649         (inline_call): Remove dead aliases.
10650         * cgraphunit.c (cgraph_decide_is_function_needed): Disable assembler
10651         name hack for same body aliases.
10652         (clone_of_p): Look through aliases.
10653         (verify_cgraph_node): Verify aliases.
10654         (cgraph_analyze_function): Analyze aliases; fixup C++ bugs.
10655         (cgraph_process_same_body_aliases): New function.
10656         (process_function_and_variable_attributes): Disable weakref warning on
10657         alias.
10658         (cgraph_analyze_functions): Handle aliases.
10659         (cgraph_mark_functions_to_output): Handle aliases same way as thunks.
10660         (assemble_thunks): Rename to ...
10661         (assemble_thunks_and_aliases): ... this one; handle aliases, too.
10662         (cgraph_expand_function): Remove alias output code.
10663         (cgraph_output_in_order): Skip aliases.
10664         (cgraph_preserve_function_body_p): Aliases don't need preserving.
10665         * ipa-ref.c (ipa_ref_use_name): Add alias reference.
10666         (ipa_record_reference): Do not assert on alias references.
10667         (ipa_ref_has_aliases_p): New function.
10668         * ipa-ref.h (enum ipa_ref_use): Add IPA_REF_ALIAS.
10669         (ipa_ref_has_aliases_p): Declare.
10670         * lto-cgraph.c (lto_output_node): Handle aliases.
10671         (input_node): Likewise.
10672         * lto-streamer-out.c (lto_output): Skip aliases.
10673         (produce_symtab): Kill same_body_alias code.
10674         * ipa-utils.c (ipa_reverse_postorder): Add FIXME.
10675         (ipa_reverse_postorder): Use cgraph_only_called_directly_or_aliased_p.
10676         * ipa-inline.c (update_caller_keys): Walk aliases.
10677         (inline_small_functions): Fix thinko in previous patch.
10678         * ipa.c (cgraph_externally_visible_p): Do not walk aliases.
10679         (function_and_variable_visibility): Do not walk same body aliases.
10680         * tree-ssa-structalias.c (associate_varinfo_to_alias): New function.
10681         (ipa_pta_execute): Use it.
10682
10683 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
10684
10685         * config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
10686         (*vec_dupv2df): Rename from vec_dupv2df.
10687         (vec_dupv2df): New expander.
10688
10689 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
10690
10691         * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
10692
10693 2011-06-11  Uros Bizjak  <ubizjak@gmail.com>
10694
10695         * config/i386/i386.md: Use default value in "isa" attribute.
10696         * config/i386/sse.md: Ditto.
10697         * config/i386/mmx.md: Ditto.
10698
10699 2011-06-10  Wei Guozhi  <carrot@google.com>
10700
10701         PR target/45335
10702         * config/arm/ldmstm.md (ldm2_ia, stm2_ia, ldm2_ib, stm2_ib, ldm2_da,
10703         stm2_da, ldm2_db, stm2_db): Add condition !arm_arch7 to these insns.
10704         (ldrd, ldrd_reg1, ldrd_reg2 and peephole2): New insn patterns and
10705         related peephole2.
10706         (strd, strd_reg1, strd_reg2 and peephole2): New insn patterns and
10707         related peephole2.
10708         * config/arm/arm-protos.h (arm_check_ldrd_operands): New prototype.
10709         (arm_legitimate_ldrd_p): New prototype.
10710         (arm_output_ldrd): New prototype.
10711         * config/arm/arm.c (arm_check_ldrd_operands): New function.
10712         (arm_legitimate_ldrd_p): New function.
10713         (arm_output_ldrd): New function.
10714
10715 2011-06-10  David Li  <davidxl@google.com>
10716
10717         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
10718         * passes.c (passr_eq): New function.
10719         (create_pass_tab): New function.
10720         (pass_traverse): New function.
10721         (dump_one_pass): New function.
10722         (dump_pass_list): New function.
10723         (dump_passes): New function.
10724
10725 2011-06-10  Jan Hubicka  <jh@suse.cz>
10726
10727         * cgraph.c (cgraph_set_nothrow_flag_1): Update cgraph after
10728         setting the nothrow flag.
10729         * ipa-reference.c (propagate): Skip aliases.
10730         * ipa-pure-const.c (propagate_pure_const): Skip aliases.
10731         (propagate_nothrow): Skip aliases; do not update cgraph.
10732         (local_pure_const): Do not update cgraph.
10733         * tree-profile.c (tree_profiling): Do fixup_cfg.
10734
10735 2011-06-10  Jan Hubicka  <jh@suse.cz>
10736
10737         * ipa.c (cgraph_non_local_node_p_1): Break out from ...;
10738         (cgraph_local_node_p): ... here; handle aliases.
10739         (has_addr_references_p): Break out from ...;
10740         (cgraph_remove_unreachable_nodes) ... here.
10741
10742 2011-06-10  Jan Hubicka  <jh@suse.cz>
10743
10744         * opts.c (default_options): Enlist OPT_finline_functions_called_once.
10745         * common.opt (flag_inline_functions_called_once): Do not
10746         initialize to 1.
10747
10748 2011-06-10  Jan Hubicka  <jh@suse.cz>
10749
10750         * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
10751         (ipcp_initialize_node_lattices): Do not deal with aliases;
10752         Do not try to propagate through thunks.
10753         (ipcp_change_tops_to_bottom): Do not deal with aliases.
10754
10755 2011-06-10  Jan Hubicka  <jh@suse.cz>
10756
10757         * ipa-prop.c (ipa_write_node_info): Stream jump functions
10758         for indirect calls.
10759         (ipa_read_node_info): Likewise.
10760
10761 2011-06-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10762
10763         PR lto/49302
10764         * tree-ssa-math-opts.c (powi_as_mults): Minor cleanup.
10765         (build_and_insert_call): Likewise.
10766         (build_and_insert_ref): New.
10767         (gimple_expand_builtin_pow): Minor cleanup.
10768         (gimple_expand_builtin_cabs): New.
10769         (execute_cse_sincos): Add case for BUILT_IN_CABS.
10770
10771 2011-06-10  Jan Hubicka  <jh@suse.cz>
10772
10773         * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
10774         (ipcp_cloning_candidate_p): Aliases are not clonning candidates.
10775         (ipcp_initialize_node_lattices): We don't propagate through an aliases.
10776         (ipcp_propagate_stage): Skip aliases when propagating.
10777         (ipcp_need_redirect_p): Skip aliases.
10778         (ipcp_insert_stage): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY and
10779         collect_callers_of_node.
10780         * ipa-prop.c (ipa_init_func_list): Do not analyze datastructures
10781         for aliases.
10782         (ipa_compute_jump_functions): Look through aliases.
10783
10784 2011-06-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10785
10786         * doc/sourcebuild.texi (Effective-Target Keywords, pie): Document it.
10787
10788 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
10789
10790         * ira-costs.c: Remove #ifdefs on dead FORBIDDEN_INC_DEC_CLASSES.
10791         Adjust comments.
10792         * system.h (FORBIDDEN_INC_DEC_CLASSES): Poison.
10793
10794 2011-06-10  Jan Hubicka  <jh@suse.cz>
10795
10796         * ipa-cp.c (ipcp_process_devirtualization_opportunities):
10797         Update call of gimple_get_virt_method_for_binfo.
10798         * gimple-fold.c (gimple_get_virt_method_for_binfo): Remove
10799         refuse_thunks parameter.
10800         (gimple_fold_call): Update.
10801         * ipa-prop.c (try_make_edge_direct_virtual_call): Update.
10802
10803 2011-06-10  Jan Hubicka  <jh@suse.cz>
10804
10805         * tree-sra.c (all_callers_have_enough_arguments_p): Rename to ...
10806         (not_all_callers_have_enough_arguments_p): ... this one; turn into
10807         worker for cgraph_for_node_and_aliases.
10808         (convert_callers_for_node): Break out from ...
10809         (convert_callers): ... here.
10810         (modify_function): Use collect_callers_of_node.
10811         (ipa_early_sra): Use cgraph_for_node_and_aliases.
10812
10813 2011-06-10  Richard Guenther  <rguenther@suse.de>
10814
10815         PR tree-optimization/49361
10816         * fold-const.c (fold_binary_loc): Only fold x * x to pow (x, 2.0)
10817         when not already in gimple form.
10818
10819 2011-06-10  Richard Guenther  <rguenther@suse.de>
10820
10821         PR bootstrap/49344
10822         * tree-ssa-math-opts.c (convert_mult_to_fma): Use
10823         FOR_EACH_PHI_OR_STMT_USE.
10824
10825 2011-06-10  Jan Hubicka  <jh@suse.cz>
10826
10827         * ipa-inline-transform.c (can_remove_node_now_p): Move out of...
10828         (clone_inlined_nodes): ... here.
10829         (inline_call): Use cgraph_function_or_thunk_node; redirect edge
10830         to real destination prior inlining.
10831         * ipa-inline.c (caller_growth_limits, can_inline_edge_p,
10832         can_early_inline_edge_p, want_early_inline_function_p,
10833         want_early_inline_function_p, want_inline_small_function_p,
10834         want_inline_self_recursive_call_p, want_inline_function_called_once_p,
10835         edge_badness, update_all_callee_keys, lookup_recursive_calls,
10836         add_new_edges_to_heap, inline_small_functions, flatten_function,
10837         inline_always_inline_functions, early_inline_small_functions): Use
10838         cgraph_function_or_thunk_node.
10839         * ipa-inline-analysis.c (evaluate_conditions_for_edge,
10840         dump_inline_edge_summary, estimate_function_body_sizes): Likewise.
10841         (do_estimate_edge_growth_1): Break out from ...
10842         (do_estimate_growth) ... here; walk aliases.
10843         (inline_generate_summary): Skip aliases.
10844
10845 2011-06-10  Richard Guenther  <rguenther@suse.de>
10846
10847         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
10848         forward when combining, visit inserted stmts when a stmt was changed.
10849
10850 2011-06-10  Paolo Carlini  <paolo.carlini@oracle.com>
10851
10852         * tree.h (error_operand_p): Add.
10853         * dbxout.c (dbxout_type_fields): Use the latter.
10854         * c-decl.c (add_stmt): Likewise.
10855         * gimplify.c (omp_add_variable, omp_notice_variable,
10856         gimplify_scan_omp_clauses): Likewise.
10857
10858 2011-06-10  Georg-Johann Lay  <avr@gjlay.de>
10859
10860         * config/avr/avr.c (avr_function_arg_advance): Fix thinko about
10861         when a value is actually passed in regs.
10862
10863 2011-06-10  Eric Botcazou  <ebotcazou@adacore.com>
10864             Laurent Rougé  <laurent.rouge@menta.fr>
10865
10866         * doc/invoke.texi (SPARC options): Add -mflat.
10867         * config/sparc/sparc.opt: Likewise.
10868         * config/sparc/sparc-protos.h (sparc_expand_epilogue): Add parameter.
10869         (sparc_flat_expand_prologue): Declare.
10870         (sparc_flat_expand_epilogue): Likewise.
10871         * config/sparc/sparc.h (CPP_CPU_SPEC): Do not handle -msoft-float.
10872         (CPP_ENDIAN_SPEC): Replace with...
10873         (CPP_OTHER_SPEC): ...this.  Also handle -mflat and -msoft-float.
10874         (CPP_SPEC): Adjust to above change.
10875         (EXTRA_SPECS): Likewise.
10876         (SPARC_INCOMING_INT_ARG_FIRST): Add TARGET_FLAT handling.
10877         (INCOMING_REGNO): Likewise.
10878         (OUTGOING_REGNO): Likewise.
10879         (LOCAL_REGNO): Likewise.
10880         (SETUP_FRAME_ADDRESSES): Likewise.
10881         (FIXED_REGISTERS): Set 0 for %fp.
10882         (CALL_USED_REGISTERS): Likewise.
10883         (INITIAL_ELIMINATION_OFFSET): Pass current_function_is_leaf.
10884         (EXIT_IGNORE_STACK): Define to 1 unconditionally.
10885         (RETURN_ADDR_REGNUM): Define.
10886         (RETURN_ADDR_RTX): Use it.
10887         (INCOMING_RETURN_ADDR_REGNUM): Define.
10888         (INCOMING_RETURN_ADDR_RTX): Use it.
10889         (DWARF_FRAME_RETURN_COLUMN): Likewise.
10890         (EH_RETURN_REGNUM): Define.
10891         (EH_RETURN_STACKADJ_RTX): Use it.
10892         (EH_RETURN_HANDLER_RTX): Delete.
10893         (EPILOGUE_USES): Use them and add TARGET_FLAT handling.
10894         * config/sparc/sparc.c (apparent_fsize, actual_fsize, num_gfregs):
10895         Delete.
10896         (struct machine_function): Add frame_size, apparent_frame_size,
10897         frame_base_reg, frame_base_offset, n_global_fp_regs and
10898         save_local_in_regs_p fields.
10899         (sparc_frame_size, sparc_apparent_frame_size, sparc_frame_base_reg,
10900         sparc_frame_base_offset, sparc_n_global_fp_regs,
10901         sparc_save_local_in_regs_p): New macros.
10902         (sparc_option_override): Error out if -fcall-saved-REG is specified
10903         for Out registers.
10904         (eligible_for_restore_insn): Fix formatting.
10905         (eligible_for_return_delay): Likewise.  Add TARGET_FLAT handling.
10906         (eligible_for_sibcall_delay): Likewise.
10907         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Add MODE parameter.
10908         (sparc_legitimate_address_p): Adjust to above change.
10909         (save_global_or_fp_reg_p): New predicate.
10910         (return_addr_reg_needed_p): Likewise.
10911         (save_local_or_in_reg_p): Likewise.
10912         (sparc_compute_frame_size): Use them.  Add TARGET_FLAT handling.
10913         (SORR_SAVE, SORR_RESTORE): Delete.
10914         (sorr_pred_t): New typedef.
10915         (sorr_act_t): New enum.
10916         (save_or_restore_regs): Rename to...
10917         (emit_save_or_restore_regs): ...this.  Change type of LOW and HIGH
10918         parameters, remove ACTION parameter, add LEAF_FUNCTION_P, SAVE_P,
10919         ACTION_TRUE and ACTION_FALSE parameters.  Implement more general
10920         mechanism.  Add CFI information for double-word saves in 32-bit mode.
10921         (emit_adjust_base_to_offset): New function extracted from...
10922         (emit_save_or_restore_regs): ...this.  Rename the rest to...
10923         (emit_save_or_restore_regs_global_fp_regs): ...this.
10924         (emit_save_or_restore_regs_local_in_regs): New function.
10925         (gen_create_flat_frame_[123]): New functions.
10926         (sparc_expand_prologue): Use SIZE local variable.  Adjust.
10927         (sparc_flat_expand_prologue): New function.
10928         (sparc_asm_function_prologue): Add TARGET_FLAT handling.
10929         (sparc_expand_epilogue): Use SIZE local variable.  Adjust.
10930         (sparc_flat_expand_epilogue): New function.
10931         (sparc_can_use_return_insn_p): Add TARGET_FLAT handling.
10932         (output_return): Likewise.
10933         (output_sibcall): Likewise.
10934         (sparc_output_mi_thunk): Likewise.
10935         (sparc_frame_pointer_required): Likewise.
10936         (sparc_conditional_register_usage): If TARGET_FLAT, disable the leaf
10937         function optimization.
10938         * config/sparc/sparc.md (flat): New attribute.
10939         (prologue): Add TARGET_FLAT handling.
10940         (save_register_window): Disable if TARGET_FLAT.
10941         (create_flat_frame_[123]): New patterns.
10942         (epilogue): Add TARGET_FLAT handling.
10943         (sibcall_epilogue): Likewise.
10944         (eh_return): New expander.
10945         (eh_return_internal): New insn and splitter.
10946         (return_internal): Add TARGET_FLAT handling.
10947         (untyped_return): Remove bogus test and use RETURN_ADDR_REGNUM.
10948         (save_stack_nonlocal): Use RETURN_ADDR_REGNUM.
10949         (nonlocal_goto): Add TARGET_FLAT handling.
10950         * config/sparc/t-elf: Add -mflat multilib.
10951         * config/sparc/t-leon: Likewise.
10952
10953 2011-06-10  Jan Hubicka  <jh@suse.cz>
10954
10955         * ipa-utils.c (searchc): Use cgraph_function_or_thunk_node.
10956         * ipa-pure-const.c (analyze_function): Aliases don't need analysis.
10957         (self_recursive_p): Use cgraph_function_node.
10958         (propagate_pure_const): Likewise.
10959         (propagate_nothrow): Likewise.
10960         * ipa-reference.c (ipa_reference_get_not_read_global): Use
10961         cgraph_function_node.
10962         (propagate_bits): Likewise.
10963         (propagate): Likewise.
10964
10965 2011-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
10966             Richard Earnshaw  <rearnsha@arm.com>
10967
10968         * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
10969         * config/arm/vfp.md (*arm_movdi_vfp): Delete.
10970         (*thumb2_movdi_vfp): Delete.
10971         (*arm_movdi_vfp_cortexa8): Delete.
10972         (*movdi_vfp): Consolidate from *arm_movdi_vfp and *thumb2_movdi_vfp.
10973         (*movdi_vfp_cortexa8): Likewise.
10974
10975 2011-06-10  Richard Guenther  <rguenther@suse.de>
10976
10977         * stor-layout.c (initialize_sizetypes): Give names to all
10978         sizetype kinds.
10979
10980 2011-06-10  Ira Rosen  <ira.rosen@linaro.org>
10981
10982         PR tree-optimization/49318
10983         * tree-vect-loop.c (vect_determine_vectorization_factor): Remove
10984         irrelevant pattern statements.
10985
10986 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
10987
10988         * system.h (SETJMP_VIA_SAVE_AREA): Poison.
10989
10990         PR bootstrap/49354
10991         * ira-costs.c (setup_regno_cost_classes_by_mode): Add missing cast
10992         to last assignment.
10993
10994 2011-06-09  Jan Hubicka  <jh@suse.cz>
10995
10996         * cgraphunit.c (cgraph_reset_node): Do not set redefined_extern_inline;
10997         do not recompute reachable flag.
10998         (cgraph_finalize_function, cgraph_analyze_functions): Set
10999         redefined_extern_inline here.
11000
11001 2011-06-09  Jan Hubicka  <jh@suse.cz>
11002
11003         * cgraph.h (cgraph_only_called_directly_or_aliased_p): Rename from ...
11004         (cgraph_only_called_directly_p): ... this one; bring offline.
11005         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
11006         varpool_used_from_object_file_p): Drop names from the declaratoin.
11007         (cgraph_for_node_thunks_and_aliases, cgraph_for_node_and_aliases,
11008         collect_callers_of_node): New.
11009         (cgraph_function_node, cgraph_function_or_thunk_node): New functions.
11010         (cgraph_edge_recursive_p): Use cgraph_function_node.
11011         * cgraph.c (cgraph_add_thunk): Check that thunk is not already alias.
11012         (cgraph_node_cannot_be_local_p_1): Break out from ...
11013         (cgraph_node_can_be_local_p): ... here; walk aliases.
11014         (cgraph_for_node_thunks_and_aliases): New function.
11015         (cgraph_for_node_and_aliases): New function.
11016         (cgraph_make_node_local_1): Break out from ...
11017         (cgraph_make_node_local) ... here; use
11018         cgraph_for_node_thunks_and_aliases.
11019         (cgraph_set_nothrow_flag_1): Break out from ...
11020         (cgraph_set_nothrow_flag) ... here;
11021         use cgraph_for_node_thunks_and_aliases.
11022         (cgraph_set_const_flag_1): Break out from ...
11023         (cgraph_set_const_flag) ... here;
11024         use cgraph_for_node_thunks_and_aliases.
11025         (cgraph_set_pure_flag_1): Break out from ...
11026         (cgraph_set_pure_flag) ... here;
11027         use cgraph_for_node_thunks_and_aliases.
11028         (cgraph_propagate_frequency_1): Break out from ...
11029         (cgraph_propagate_frequency) ... here; use
11030         cgraph_for_node_thunks_and_aliases.
11031         (cgraph_used_from_object_file_p): Do not care about aliases.
11032         (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
11033         New functions.
11034         (collect_callers_of_node_1, collect_callers_of_node): New functions.
11035
11036 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
11037
11038         PR rtl-optimization/49154
11039         * config/cris/cris.h (FIXED_REGISTERS): Include CRIS_CC0_REGNUM.
11040         (enum reg_class): Add SRP_REGS and MOF_SRP_REGS.
11041         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS)
11042         (PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Adjust to fit.
11043         * config/cris/cris.h (cris_register_move_cost): Remove
11044         !TARGET_V32 code.  Tweak comments.
11045
11046 2011-06-09  Jan Hubicka  <jh@suse.cz>
11047
11048         * cgraphbuild.c (record_eh_tables): Mark personality function as having
11049         address taken.
11050
11051 2011-06-10  Hans-Peter Nilsson  <hp@axis.com>
11052
11053         PR rtl-optimization/49154
11054         * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
11055         is a matching slot in the hashtable, assign it to classes_ptr.
11056
11057         PR rtl-optimization/49154
11058         * doc/tm.texi.in (Register Classes): Document rule for the narrowest
11059         register classes.
11060         * doc/tm.texi: Regenerate.
11061
11062 2011-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
11063
11064         PR target/49307
11065         * config/sh/sh.md (UNSPEC_CHKADD): New.
11066         (chk_guard_add): New define_insn_and_split.
11067         (symGOT_load): Use chk_guard_add instead of blockage.
11068
11069 2011-06-09  Kai Tietz  <ktietz@redhat.com>
11070
11071         * libgcc2.c (L_trampoline): Include windows.h for mingw targets.
11072
11073 2011-06-09  Eric Botcazou  <ebotcazou@adacore.com>
11074
11075         * config/sparc/sparc.md (return_internal): Adjust 'length' attribute.
11076
11077 2011-06-09  Wei Guozhi  <carrot@google.com>
11078
11079         PR target/46975
11080         * config/arm/arm.md (*addsi3_carryin_compare0_<optab>): New pattern.
11081         (peephole2 for conditional move): Generate 16 bit instructions.
11082
11083 2011-06-09  Uros Bizjak  <ubizjak@gmail.com>
11084
11085         * config/i386/i386.md (*movdi_internal_rex64): Merge
11086         alternatives 6 and 8.
11087
11088 2011-06-09  David Li  <davidxl@google.com>
11089
11090         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
11091         * passes.c (passr_eq): New function.
11092         (create_pass_tab): New function.
11093         (pass_traverse): New function.
11094         (dump_one_pass): New function.
11095         (dump_pass_list): New function.
11096         (dump_passes): New function.
11097
11098 2011-06-09  David Li  <davidxl@google.com>
11099
11100         * tree-complex.c (tree_lower_complex): Gate cleanup.
11101         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
11102         (execute_optimize_stdarg): Ditto.
11103         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
11104         (execute_cleanup_eh_1): Ditto.
11105         (execute_cleanup_eh): Ditto.
11106         * gcse.c (gate_rtl_pre): Ditto.
11107         (execute_rtl_pre): Ditto.
11108         * except.c (finish_eh_generation): Ditto.
11109         (convert_to_eh_region_ranges): Ditto.
11110         * cprop.c (one_cprop_pass): Ditto.
11111
11112 2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
11113
11114         PR target/48673
11115         * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
11116         in all basic blocks.
11117
11118 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11119
11120         * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
11121         (HAVE_ENABLE_EXECUTE_STACK): Define.
11122         * config/alpha/osf5.h (ENABLE_EXECUTE_STACK): Remove.
11123         (HAVE_ENABLE_EXECUTE_STACK): Define.
11124         * config/darwin.h (ENABLE_EXECUTE_STACK): Remove.
11125         (HAVE_ENABLE_EXECUTE_STACK): Define.
11126         * config/i386/mingw32.h (MINGW_ENABLE_EXECUTE_STACK): Remove.
11127         (ENABLE_EXECUTE_STACK): Remove.
11128         (HAVE_ENABLE_EXECUTE_STACK): Define.
11129         [IN_LIBGCC2]: Don't include <windows.h>.
11130         * config/i386/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
11131         (HAVE_ENABLE_EXECUTE_STACK): Define.
11132         * config/i386/netbsd64.h (ENABLE_EXECUTE_STACK): Remove.
11133         (HAVE_ENABLE_EXECUTE_STACK): Define.
11134         * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): Remove.
11135         * config/openbsd.h (ENABLE_EXECUTE_STACK): Remove.
11136         (HAVE_ENABLE_EXECUTE_STACK): Define.
11137         * config/sol2.h (ENABLE_EXECUTE_STACK): Remove.
11138         (HAVE_ENABLE_EXECUTE_STACK): Define.
11139         * config/sparc/freebsd.h (ENABLE_EXECUTE_STACK): Remove.
11140         (HAVE_ENABLE_EXECUTE_STACK): Define.
11141         * config/sparc/netbsd-elf.h (ENABLE_EXECUTE_STACK): Remove.
11142         (HAVE_ENABLE_EXECUTE_STACK): Define.
11143         * config/alpha/alpha.c (alpha_trampoline_init): Test
11144         HAVE_ENABLE_EXECUTE_STACK.
11145         * config/i386/i386.c (ix86_trampoline_init): Likewise.
11146         * config/sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
11147         (sparc64_initialize_trampoline): Likewise.
11148         * libgcc2.c [L_enable_execute_stack]: Remove.
11149         * system.h (ENABLE_EXECUTE_STACK): Poison.
11150         * doc/tm.texi.in (Trampolines, ENABLE_EXECUTE_STACK): Remove.
11151         * doc/tm.texi: Regenerate.
11152         * Makefile.in (LIBGCC2_CFLAGS): Add -fbuilding-libgcc.
11153
11154 2011-06-09  Jakub Jelinek  <jakub@redhat.com>
11155
11156         PR middle-end/49308
11157         * dce.c (reset_unmarked_insns_debug_uses): Avoid shadowing insn
11158         variable.  After resetting and rescanning insn continue with previous
11159         statement.
11160
11161 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11162
11163         * configure.ac (gcc_cv_as_hidden): Enable on *-*-darwin*.
11164         (gcc_cv_ld_hidden): Likewise.
11165         * configure: Regenerate.
11166         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Remove TARGET_MACHO.
11167         (ix86_stack_protect_fail): Mark unused.
11168         (TARGET_STACK_PROTECT_FAIL) [TARGET_MACHO]: Don't redefine.
11169         * config/rs6000/rs6000.c (rs6000_assemble_visibility)
11170         [TARGET_MACHO]: Don't define.
11171         (TARGET_ASM_ASSEMBLE_VISIBILITY): Likewise.
11172         (TARGET_STACK_PROTECT_FAIL): Likewise.
11173         (rs6000_stack_protect_fail): Mark unused.
11174         * dwarf2asm.c (dw2_output_indirect_constant_1): Mark decl hidden if
11175         USE_LINKONCE_INDIRECT.  Don't emit .hidden expicitly.
11176
11177 2011-06-08  Andi Kleen  <ak@linux.intel.com>
11178
11179         * varasm.c (get_section): Print location of other conflict
11180         for section conflicts.
11181
11182 2011-06-08  Andi Kleen  <ak@linux.intel.com>
11183
11184         * config/i386/driver-i386.c (host_detect_local_cpu):
11185         Add model 0x2d Intel CPU.
11186
11187 2011-06-08  Andi Kleen  <ak@linux.intel.com>
11188
11189         * reginfo.c (global_regs_decl): Add.
11190         (globalize_reg): Add decl parameter. Compute location.  Pass location
11191         to warnings and add inform. Store decl in global_regs_decl.
11192         * rtl.h (globalize_reg): Update prototype.
11193         * varasm.c (make_decl_rtl): Pass decl to globalize_reg().
11194
11195 2011-06-09  Mingjie Xing  <mingjie.xing@gmail.com>
11196
11197         * treestruct.def (TS_TYPE_DECL): Fix the printable name typo.
11198
11199 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
11200
11201         PR target/49305
11202         * config/sh/predicates.md (general_movsrc_operand): Check
11203         mode for memory with indexed address for QI and HImode.
11204         (general_movdst_operand): Likewise.
11205
11206 2011-06-09  Nicola Pero  <nicola.pero@meta-innovation.com>
11207
11208         * doc/objc.texi (Traditional GNU Objective-C runtime API): Updated.
11209
11210 2011-06-08  Alexandre Oliva  <aoliva@redhat.com>
11211
11212         * tree-flow-inline.h (op_iter_init): Reject GIMPLE_PHI stmts.
11213         (num_ssa_operands): Likewise.
11214         (op_iter_init_phiuse): Forward-declare.
11215         (delink_stmt_imm_use): Iterate with FOR_EACH_PHI_OR_STMT_USE.
11216
11217 2011-06-08  Nick Clifton  <nickc@redhat.com>
11218
11219         * doc/invoke.texi (ARM Options): Update description of
11220         -mthumb-interwork.
11221
11222 2011-06-08  H.J. Lu  <hongjiu.lu@intel.com>
11223
11224         * config/i386/driver-i386.c (host_detect_local_cpu): Support
11225         unknown Intel family 0x6 CPUs.
11226
11227 2011-06-08  Martin Jambor  <mjambor@suse.cz>
11228
11229         * tree-sra.c (mark_rw_status): Removed.
11230         (analyze_access_subtree): New parameter parent instead of
11231         mark_read and mark_write, propagate from that.
11232
11233 2011-06-08  Julian Brown  <julian@codesourcery.com>
11234
11235         * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
11236         for double-precision helper functions in hard-float mode if only
11237         single-precision arithmetic is supported in hardware.
11238
11239 2011-06-08  Alexander Monakov  <amonakov@ispras.ru>
11240
11241         PR rtl-optimization/49303
11242         * sel-sched.c (move_op): Use correct type for 'res'.  Verify that
11243         code_motion_path_driver returned 0 or 1.
11244         (sel_region_finish): Clear h_d_i_d.
11245
11246 2011-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
11247
11248         * config/sh/sh.c (prepare_move_operands): Set pic register
11249         appropriately for global and local dynamic tls models even
11250         if flag_pic is unset.
11251
11252 2011-06-07  Jason Merrill  <jason@redhat.com>
11253
11254         * pretty-print.h (ATTRIBUTE_GCC_PPDIAG): Use GCC_DIAG_STYLE if set.
11255
11256 2011-06-07  Xinliang David Li  <davidxl@google.com>
11257         * passes.c (enable_disable_pass): Handle assembler name.
11258         (is_pass_explicitly_enabled_or_disabled): Ditto.
11259
11260 2011-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11261
11262         PR tree-optimization/48497
11263         * doc/sourcebuild.texi (Directives, dg-additional-options): Document.
11264
11265 2011-06-07  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11266
11267         PR tree-optimization/46728
11268         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Change FIXME
11269         to use gimple_val_nonnegative_real_p.
11270         * gimple-fold.c (gimple_val_nonnegative_real_p): New function.
11271         * gimple.h (gimple_val_nonnegative_real_p): New declaration.
11272
11273 2011-06-07  H.J. Lu  <hongjiu.lu@intel.com>
11274
11275         * config/i386/i386.md (*movsf_internal): Optimize AVX check.
11276
11277 2011-06-07  Sergey Grechanik  <mouseentity@ispras.ru>
11278
11279         * config/arm/arm.c (coproc_secondary_reload_class): Return NO_REGS for
11280         constant vectors.
11281
11282 2011-06-07  Richard Guenther  <rguenther@suse.de>
11283
11284         * stor-layout.c (initialize_sizetypes): Initialize all
11285         sizetypes based on target definitions.
11286         (set_sizetype): Remove.
11287         * tree.c (build_common_tree_nodes): Do not call set_sizetype.
11288         * tree.h (set_sizetype): Remove.
11289
11290 2011-06-07  Nick Clifton  <nickc@redhat.com>
11291
11292         * config.gcc: Unify V850 architecture options and add support for
11293         newer V850 architectures.
11294         * config/v850/t-v850e: Delete.
11295
11296 2011-06-07  Richard Guenther  <rguenther@suse.de>
11297
11298         * tree.c (build_common_tree_nodes): Also initialize size_type_node.
11299         Call set_sizetype from here.
11300
11301 2011-06-07  Andrew Stubbs  <ams@codesourcery.com>
11302
11303         * config/arm/arm.md (*maddhidi4tb, *maddhidi4tt): New define_insns.
11304         (*maddhisi4tb, *maddhisi4tt): New define_insns.
11305
11306 2011-06-07  Bernd Schmidt  <bernds@codesourcery.com>
11307             Andrew Stubbs  <ams@codesourcery.com>
11308
11309         * simplify-rtx.c (simplify_unary_operation_1): Canonicalize widening
11310         multiplies.
11311         * doc/md.texi (Canonicalization of Instructions): Document widening
11312         multiply canonicalization.
11313
11314 2011-06-07  Jakub Jelinek  <jakub@redhat.com>
11315
11316         PR gcov-profile/49299
11317         * value-prof.c (gimple_ic): Don't assume icall has a fallthru edge.
11318
11319 2011-06-07  Ira Rosen  <ira.rosen@linaro.org>
11320
11321         * tree-vectorizer.h (vect_recog_func_ptr): Make last argument to be
11322         a pointer.
11323         * tree-vect-patterns.c (vect_recog_widen_sum_pattern,
11324         vect_recog_widen_mult_pattern, vect_recog_dot_prod_pattern,
11325         vect_recog_pow_pattern): Likewise.
11326         (vect_pattern_recog_1): Remove declaration.
11327         (widened_name_p): Remove declaration.  Add new argument to specify
11328         whether to check that both types are either signed or unsigned.
11329         (vect_recog_widen_mult_pattern): Update documentation.  Handle
11330         unsigned patterns and multiplication by constants.
11331         (vect_pattern_recog_1): Update vect_recog_func references.  Use
11332         statement information from the statement returned from pattern
11333         detection functions.
11334         (vect_pattern_recog): Update vect_recog_func reference.
11335         * tree-vect-stmts.c (vectorizable_type_promotion): For widening
11336         multiplication by a constant use the type of the other operand.
11337
11338 2011-06-06  Richard Sandiford  <rdsandiford@googlemail.com>
11339
11340         PR rtl-optimization/49145
11341         * combine.c (make_compound_operation): Handle ZERO_EXTEND specially.
11342
11343 2011-06-06  Jakub Jelinek  <jakub@redhat.com>
11344
11345         PR debug/49262
11346         * dwarf2out.c (native_encode_initializer): Decrement count in each
11347         iteration.
11348
11349         PR debug/49294
11350         * dwarf2out.c (mem_loc_descriptor) <do_shift>: Give up for
11351         non-MODE_INT modes.
11352
11353         PR c++/49264
11354         * gimple-fold.c (fold_stmt_1): Don't try to fold *& on the lhs
11355         if stmt folded into nothing.
11356         * tree-inline.c (fold_marked_statements): If a builtin at the end of
11357         a bb folded into nothing, just update cgraph edges and move to next bb.
11358         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Allow new_stmt
11359         to be NULL.  Don't compute count and frequency if new_call is NULL.
11360
11361 2011-06-04  Diego Novillo  <dnovillo@google.com>
11362
11363         * Makefile.in (lto-compress.o): Add dependency on LTO_STREAMER_H.
11364         (cgraph.o): Likewise.
11365         (cgraphunit.o): Likewise.
11366         * cgraphunit.c: Include lto-streamer.h
11367         (cgraph_finalize_compilation_unit): Call lto_streamer_hooks_init
11368         if LTO is enabled.
11369         * lto-streamer-in.c (unpack_value_fields): Call
11370         streamer_hooks.unpack_value_fields if set.
11371         (lto_materialize_tree): For unhandled nodes, first try to
11372         call lto_streamer_hooks.alloc_tree, if it exists.
11373         (lto_input_ts_decl_common_tree_pointers): Move reading of
11374         DECL_INITIAL to lto_streamer_read_tree.
11375         (lto_read_tree): Call lto_streamer_hooks.read_tree if set.
11376         (lto_streamer_read_tree): New.
11377         (lto_reader_init): Rename from lto_init_reader.
11378         Move initialization code to lto/lto.c.
11379         * lto-streamer-out.c (pack_value_fields): Call
11380         streamer_hooks.pack_value_fields if set.
11381         (lto_output_tree_ref): For tree nodes that are not normally indexable,
11382         call streamer_hooks.indexable_with_decls_p before giving up.
11383         (lto_output_ts_decl_common_tree_pointers): Move handling
11384         for FUNCTION_DECL and TRANSLATION_UNIT_DECL to lto_streamer_write_tree.
11385         (lto_output_tree_header): Call streamer_hooks.is_streamable instead of
11386         lto_is_streamable.  Call lto_streamer_hooks.output_tree_header if set.
11387         (lto_write_tree): Call lto_streamer_hooks.write_tree if set.
11388         (lto_streamer_write_tree): New.
11389         (lto_output): Call lto_streamer_init directly.
11390         (lto_writer_init): Remove.
11391         * lto-streamer.c (streamer_hooks): New.
11392         (lto_streamer_cache_create): Call streamer_hooks.preload_common_nodes
11393         instead of lto_preload_common_nodes.
11394         (lto_is_streamable): Move from lto-streamer.h
11395         (lto_streamer_hooks_init): New.
11396         (streamer_hooks): New.
11397         (streamer_hooks_init): New.
11398         * lto-streamer.h (struct output_block): Forward declare.
11399         (struct lto_input_block): Likewise.
11400         (struct data_in): Likewise.
11401         (struct bitpack_d): Likewise.
11402         (struct streamer_hooks): Declare.
11403         (streamer_hooks): Declare.
11404         (lto_streamer_hooks_init): Declare.
11405         (lto_streamer_write_tree): Declare.
11406         (lto_streamer_read_tree): Declare.
11407         (streamer_hooks_init): Declare.
11408         (lto_is_streamable): Move to lto-streamer.c
11409
11410 2011-06-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11411
11412         * longlong.h (smul_ppmm): The resulting register pair contains the
11413         higher order word first.
11414
11415 2011-06-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11416
11417         PR tree-optimization/46728
11418         * builtins.c (powi_table): Remove.
11419         (powi_lookup_cost): Remove.
11420         (powi_cost): Remove.
11421         (expand_powi_1): Remove.
11422         (expand_powi): Remove.
11423         (expand_builtin_pow_root): Remove.
11424         (expand_builtin_pow): Remove.
11425         (expand_builtin_powi): Eliminate handling of constant exponent.
11426         (expand_builtin): Use expand_builtin_mathfn_2 for BUILT_IN_POW.
11427
11428 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
11429
11430         * cprop.c (local_cprop_pass): Don't set changed for debug insns.
11431
11432 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
11433
11434         * dce.c (reset_unmarked_insns_debug_uses): New.
11435         (delete_unmarked_insns): Skip debug insns.
11436         (prescan_insns_for_dce): Likewise.
11437         (rest_of_handle_ud_dce): Reset debug uses of removed sets.
11438         * reg-stack.c (subst_stack_regs_in_debug_insn): Signal when no
11439         active reg can be found.
11440         (subst_all_stack_regs_in_debug_insn): New.  Reset debug insn then.
11441         (convert_regs_1): Use it.
11442
11443 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
11444
11445         * tree-pretty-print.c (dump_function_header): Add flags.
11446         Don't dump decl_uid with nouid.
11447         * tree-pretty-print.h (dump_function_header): Adjust.
11448         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
11449         * passes.c (pass_init_dump_file): Pass dump_flags on.
11450         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
11451
11452 2011-06-06  Alexandre Oliva  <aoliva@redhat.com>
11453
11454         PR bootstrap/49270
11455         * ipa-inline-analysis.c (read_predicate): Initialize all clauses.
11456
11457 2011-06-06  Mikael Pettersson  <mikpe@it.uu.se>
11458
11459         PR tree-optimization/49243
11460         * calls.c (setjmp_call_p): Also check if fndecl has the
11461         returns_twice attribute.
11462
11463 2011-06-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11464
11465         * config/mips/iris6.h (ENDFILE_SPEC): Use crtfastmath.o if
11466         -ffast-math etc.
11467
11468 2011-06-06  Richard Henderson  <rth@redhat.com>
11469             Georg-Johann Lay  <avr@gjlay.de>
11470
11471         PR target/42210
11472         * config/avr/predicates.md (const1_operand, const_0_to_7_operand):
11473         New predicates.
11474         * config/avr/avr.md ("insv"): New insn expander.
11475         ("*movbitqi.1-6.a", "*movbitqi.1-6.b", "*movbitqi.0", "*insv.io",
11476         "*insv.not.io", "*insv.reg"): New insns.
11477
11478 2011-06-06  Hans-Peter Nilsson  <hp@bitrange.com>
11479
11480         PR target/49285
11481         * config/mmix/mmix.md ("truncdfsf2", "extendsfdf2"): Correct predicate
11482         to nonimmediate_operand from memory_operand for the operand that is to
11483         be forced to memory by the expander.  Lose the constraints.
11484
11485 2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
11486
11487         * config/sparc/sparc.c (output_return): Fix thinko in the output of an
11488         EH return when delayed branches are disabled.
11489
11490 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
11491
11492         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
11493         Remove MODE_TI handling.  Remove SSE1 handling in attribute "mode"
11494         calculation.
11495         (*movdf_internal_rex64) <case 6,7,8>: Remove MODE_TI handling.
11496         Simplify MODE_V1DF and MODE_V2SF handling.
11497         (*movsf_internal): Remove x constraint from alternative 7 of operand 1.
11498         Simplify MODE_SF handling.
11499
11500 2011-06-04  Jan Hubicka  <jh@suse.cz>
11501
11502         PR tree-optimization/48893
11503         PR tree-optimization/49091
11504         PR tree-optimization/49179
11505         * ipa-inline-analysis.c (evaluate_conditions_for_known_args):
11506         Bounds check.
11507
11508 2011-06-04  Jan Hubicka  <jh@suse.cz>
11509
11510         PR lto/48954
11511         * lto-cgraph.c (output_node_opt_summary): Handle NULL skip args
11512         bitmaps.
11513
11514 2011-06-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
11515
11516         * doc/invoke.texi: Document -Wdelete-non-virtual-dtor.
11517
11518 2011-06-04  Jakub Jelinek  <jakub@redhat.com>
11519
11520         PR target/49281
11521         * config/i386/i386.md (*lea_general_4): Require INTVAL (operands[3])
11522         to be strictly smaller than 1 << shiftcount.
11523
11524 2011-06-04  Jan Hubicka  <jh@suse.cz>
11525
11526         PR tree-optimize/48929
11527         * ipa-inline-analysis.c (remap_edge_predicates): Fix handling
11528         of empty predicate.
11529
11530 2011-06-04  Alexandre Oliva  <aoliva@redhat.com>
11531
11532         PR debug/48333
11533         * calls.c (emit_call_1): Prefer the __builtin declaration of
11534         builtin functions.
11535
11536 2011-06-03   Diego Novillo  <dnovillo@google.com>
11537
11538         * lto-streamer-in.c (unpack_value_fields): Remove unneeded asserts.
11539         (lto_input_tree_pointers): Likewise.
11540         * lto-streamer-out.c (pack_value_fields): Likewise.
11541         (lto_output_tree_pointers): Likewise.
11542         * lto-streamer.h (lto_is_streamable): Add check for OMP_CLAUSE
11543         and OPTIMIZATION_NODE.
11544
11545 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11546
11547         * config/alpha/linux.h (MD_UNWIND_SUPPORT): Remove.
11548         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Remove.
11549         * config/alpha/vms.h (MD_UNWIND_SUPPORT): Remove.
11550         * config/bfin/linux.h (MD_UNWIND_SUPPORT): Remove.
11551         * config/bfin/uclinux.h (MD_UNWIND_SUPPORT): Remove.
11552         * config/i386/linux.h (MD_UNWIND_SUPPORT): Remove.
11553         * config/i386/linux64.h (MD_UNWIND_SUPPORT): Remove.
11554         * config/i386/sol2.h (MD_UNWIND_SUPPORT): Remove.
11555         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Remove.
11556         * config/ia64/linux.h (MD_UNWIND_SUPPORT): Remove.
11557         * config/ia64/vms.h (MD_UNWIND_SUPPORT): Remove.
11558         * config/m68k/linux.h (MD_UNWIND_SUPPORT): Remove.
11559         * config/mips/linux.h (MD_UNWIND_SUPPORT): Remove.
11560         * config/pa/pa-hpux.h (MD_UNWIND_SUPPORT): Remove.
11561         * config/pa/pa32-linux.h (MD_UNWIND_SUPPORT): Remove.
11562         * config/rs6000/darwin.h (MD_UNWIND_SUPPORT): Remove.
11563         * config/rs6000/linux.h (MD_UNWIND_SUPPORT): Remove.
11564         * config/rs6000/linux64.h (MD_UNWIND_SUPPORT): Remove.
11565         * config/s390/linux.h (MD_UNWIND_SUPPORT): Remove.
11566         * config/s390/tpf.h (MD_UNWIND_SUPPORT): Remove.
11567         * config/sh/linux.h (MD_UNWIND_SUPPORT): Remove.
11568         * config/sparc/linux.h (MD_UNWIND_SUPPORT): Remove.
11569         * config/sparc/linux64.h (MD_UNWIND_SUPPORT): Remove.
11570         * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Remove.
11571         * config/xtensa/linux.h (MD_UNWIND_SUPPORT): Remove.
11572         * config/alpha/linux-unwind.h: Move to ../libgcc/config/alpha.
11573         * config/alpha/osf5-unwind.h: Move to ../libgcc/config/alpha.
11574         * config/alpha/vms-unwind.h: Move to ../libgcc/config/alpha.
11575         * config/bfin/linux-unwind.h: Move to ../libgcc/config/bfin.
11576         * config/i386/linux-unwind.h: Move to ../libgcc/config/i386.
11577         * config/i386/sol2-unwind.h: Move to ../libgcc/config/i386.
11578         * config/i386/w32-unwind.h: Move to ../libgcc/config/i386.
11579         * config/ia64/linux-unwind.h: Move to ../libgcc/config/ia64.
11580         * config/ia64/vms-unwind.h: Move to ../libgcc/config/ia64.
11581         * config/m68k/linux-unwind.h: Move to ../libgcc/config/m68k.
11582         * config/mips/linux-unwind.h: Move to ../libgcc/config/mips.
11583         * config/pa/hpux-unwind.h: Move to ../libgcc/config/pa.
11584         * config/pa/linux-unwind.h: Move to ../libgcc/config/pa.
11585         * config/rs6000/darwin-unwind.h: Move to ../libgcc/config/rs6000.
11586         * config/rs6000/linux-unwind.h: Move to ../libgcc/config/rs6000.
11587         * config/s390/linux-unwind.h: Move to ../libgcc/config/s390.
11588         * config/s390/tpf-unwind.h: Move to ../libgcc/config/s390.
11589         * config/sh/linux-unwind.h: Move to ../libgcc/config/sh.
11590         * config/sparc/linux-unwind.h: Move to ../libgcc/config/sparc.
11591         * config/sparc/sol2-unwind.h: Move to ../libgcc/config/sparc.
11592         * config/xtensa/linux-unwind.h: Move to ../libgcc/config/xtensa.
11593         * config/darwin9.h (DARWIN_LIBSYSTEM_HAS_UNWIND): Remove.
11594         * system.h (MD_UNWIND_SUPPORT): Poison.
11595         * doc/tm.texi.in (Exception Handling, MD_UNWIND_SUPPORT): Remove.
11596         * doc/tm.texi: Regenerate.
11597         * unwind-dw2.c: Include md-unwind-support.h instead of
11598         MD_UNWIND_SUPPORT.
11599         * config/ia64/unwind-ia64.c: Likewise.
11600         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
11601
11602 2011-06-03  Jack Howarth  <howarth@bromo.med.uc.edu>
11603
11604         * varpool.c (varpool_extra_name_alias): Return NULL, not false.
11605
11606 2011-06-03  Richard Henderson  <rth@redhat.com>
11607             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11608
11609         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]
11610         (sigill_hdlr): Correct insn, insn size.
11611         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Use movaps.
11612
11613 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11614
11615         * config.gcc (mips-sgi-irix6.5*): Set tmake_file to mips/t-irix6
11616         t-slibgcc-dummy.
11617         * config/mips/irix-crti.asm: Move to ../libgcc/config/mips/irix-crti.S.
11618         * config/mips/irix-crtn.asm: Move to ../libgcc/config/mips/irix-crtn.S.
11619         * config/mips/t-iris: Remove.
11620         * config/mips/t-irix6: New file.
11621         * config/mips/t-slibgcc-irix: Move to ../libgcc/config/mips.
11622
11623 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11624
11625         * Makefile.in (LIB2ADDEHDEP): Remove.
11626         * config/arm/t-bpabi (LIB2ADDEHDEP): Remove.
11627         * config/arm/t-symbian (LIB2ADDEHDEP): Remove.
11628         * config/picochip/t-picochip (LIB2ADDEHDEP): Remove.
11629         * config/t-darwin (LIB2ADDEHDEP): Remove.
11630         * config/t-freebsd (LIB2ADDEHDEP): Remove.
11631         * config/t-linux (LIB2ADDEHDEP): Remove.
11632
11633 2011-06-03  Diego Novillo  <dnovillo@google.com>
11634
11635         * lto-streamer-in.c (get_resolution): Move to lto/lto.c.
11636         (lto_register_var_decl_in_symtab): Likewise.
11637         (lto_register_function_decl_in_symtab): Likewise.
11638         (lto_read_tree): Move VAR_DECL and FUNCTION_DECL registration
11639         logic to uniquify_nodes.
11640
11641 2011-06-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11642
11643         * config/alpha/t-osf5: Remove.
11644         * config/alpha/t-osf-pthread: Remove.
11645         * config.gcc (alpha*-dec-osf5.1*): Set tmake_file to t-slibgcc-dummy.
11646         * mkmap-flat.awk: Handle osf_export for Tru64 UNIX linker -input file.
11647
11648 2011-06-03  Julian Brown  <julian@codesourcery.com>
11649
11650         * config/arm/arm-cores.def (strongarm, strongarm110, strongarm1100)
11651         (strongarm1110): Use strongarm tuning.
11652         * config/arm/arm-protos.h (tune_params): Add max_insns_skipped field.
11653         * config/arm/arm.c (arm_strongarm_tune): New.
11654         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
11655         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a5_tune)
11656         (arm_cortex_a9_tune, arm_fa726te_tune): Add max_insns_skipped field
11657         setting, using previous defaults or 1 for Cortex-A5.
11658         (arm_option_override): Set max_insns_skipped from current tuning.
11659
11660 2011-06-03  Nathan Sidwell  <nathan@codesourcery.com>
11661
11662         * doc/install.texi (Options specification): Document --with-specs.
11663
11664 2011-06-02  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
11665
11666         * config/arm/neon.md (orndi3_neon): Actually split it.
11667
11668 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
11669
11670         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): Bump default to 10.
11671         * var-tracking.c (reverse_op): Limite recurse depth to 5.
11672
11673 2011-06-02  Alexandre Oliva  <aoliva@redhat.com>
11674
11675         PR debug/47590
11676         * target.def (delay_sched2, delay_vartrack): New.
11677         * doc/tm.texi.in: Update.
11678         * doc/tm.texi: Rebuild.
11679         * sched-rgn.c (gate_handle_sched2): Fail if delay_sched2.
11680         * var-tracking.c (gate_handle_var_tracking): Likewise.
11681         * config/bfin/bfin.c (bfin_flag_schedule_insns2): Drop.
11682         (bfin_flag_var_tracking): Drop.
11683         (output_file_start): Don't save and override flag_var_tracking.
11684         (bfin_option_override): Ditto flag_schedule_insns_after_reload.
11685         (bfin_reorg): Test original variables.
11686         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
11687         * config/ia64/ia64.c (ia64_flag_schedule_insns2): Drop.
11688         (ia64_flag_var_tracking): Drop.
11689         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
11690         (ia64_file_start): Don't save and override flag_var_tracking.
11691         (ia64_override_options_after_change): Ditto
11692         flag_schedule_insns_after_reload.
11693         (ia64_reorg): Test original variables.
11694         * config/picochip/picochip.c (picochip_flag_schedule_insns2): Drop.
11695         (picochip_flag_var_tracking): Drop.
11696         (TARGET_DELAY_SCHED2, TARGET_DELAY_VARTRACK): Define.
11697         (picochip_option_override): Don't save and override
11698         flag_schedule_insns_after_reload.
11699         (picochip_asm_file_start): Ditto flag_var_tracking.
11700         (picochip_reorg): Test original variables.
11701         * config/spu/spu.c (spu_flag_var_tracking): Drop.
11702         (TARGET_DELAY_VARTRACK): Define.
11703         (spu_var_tracking): New.
11704         (spu_machine_dependent_reorg): Call it.
11705         (asm_file_start): Don't save and override flag_var_tracking.
11706
11707 2011-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
11708
11709         PR target/49163
11710         * config/sh/predicates.md (general_movsrc_operand): Return 0
11711         for memory and memory subreg of which address is an invalid
11712         indexed address for QI and HImode.
11713         (general_movdst_operand): Likewise.
11714
11715 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
11716
11717         * cse.c (cse_find_path): Refine change to exclude EDGE_ABNORMAL_CALL
11718         edges only, when there is a non-local label in the function.
11719         * postreload-gcse.c (bb_has_well_behaved_predecessors): Likewise.
11720
11721 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
11722
11723         * config/i386/constraints.md (Y3): New register constraint.
11724         * config/i386/sse.md (*vec_interleave_highv2df): Merge with
11725         *sse3_interleave_highv2df and *sse2_interleave_highv2df.
11726         (*vec_interleave_lowv2df): Merge with *sse3_interleave_lowv2df and
11727         *sse2_interleave_lowv2df.
11728
11729 2011-06-02  Julian Brown  <julian@codesourcery.com>
11730
11731         * config/arm/arm-cores.def (cortex-a5): Use cortex_a5 tuning.
11732         * config/arm/arm.c (arm_cortex_a5_branch_cost): New.
11733         (arm_cortex_a5_tune): New.
11734
11735 2011-06-02  Julian Brown  <julian@codesourcery.com>
11736
11737         * config/arm/arm-protos.h (tune_params): Add branch_cost hook.
11738         * config/arm/arm.c (arm_default_branch_cost): New.
11739         (arm_slowmul_tune, arm_fastmul_tune, arm_xscale_tune, arm_9e_tune)
11740         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a9_tune)
11741         (arm_fa726_tune): Set branch_cost field using
11742         arm_default_branch_cost.
11743         * config/arm/arm.h (BRANCH_COST): Use branch_cost hook from
11744         current_tune structure.
11745         * dojump.c (tm_p.h): Include file.
11746
11747 2011-06-02  Julian Brown  <julian@codesourcery.com>
11748
11749         * config/arm/arm-cores.def (arm1156t2-s, arm1156t2f-s): Use v6t2
11750         tuning.
11751         (cortex-a5, cortex-a8, cortex-a15, cortex-r4, cortex-r4f, cortex-m4)
11752         (cortex-m3, cortex-m1, cortex-m0): Use cortex tuning.
11753         * config/arm/arm-protos.h (tune_params): Add prefer_constant_pool
11754         field.
11755         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune)
11756         (arm_xscale_tune, arm_9e_tune, arm_cortex_a9_tune)
11757         (arm_fa726te_tune): Add prefer_constant_pool setting.
11758         (arm_v6t2_tune, arm_cortex_tune): New.
11759         * config/arm/arm.h (TARGET_USE_MOVT): Make dependent on
11760         prefer_constant_pool setting.
11761
11762 2011-06-02  Uros Bizjak  <ubizjak@gmail.com>
11763
11764         * config/i386/i386.c (standard_sse_constant_p) <case 1>: Simplify
11765         switch statement.
11766         * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>: Ditto.
11767         (*movdf_internal) <case 6,7,8>: Ditto.
11768
11769         * config/i386/constraints.md (Y4): New register constraint.
11770         * config/i386/sse.md (vec_set<mode>_0): Merge with
11771         *vec_set<mode>_0_sse4_1 and *vec_set<mode>_0_sse2.
11772         (*vec_extractv2di_1): Merge from *vec_extractv2di_1_sse2 and
11773         *vec_extractv2di_1_sse.
11774         (*vec_concatv2di_rex64): Merge from *vec_concatv2di_rex64_sse4_1
11775         and *vec_concatv2di_rex64_sse.
11776
11777 2011-06-02  Stuart Henderson  <shenders@gcc.gnu.org>
11778
11779         PR target/48807
11780         * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Check return value
11781         of cgraph_local_info for null before attempting to use it.
11782
11783 2011-06-02  Eric Botcazou  <ebotcazou@adacore.com>
11784
11785         * function.h (struct stack_usage): Remove dynamic_alloc_count field.
11786         (current_function_dynamic_alloc_count): Delete.
11787         * builtins.c (expand_builtin_setjmp_setup): Do not set calls_setjmp.
11788         (expand_builtin_nonlocal_goto): Remove obsolete comment.
11789         (expand_builtin_update_setjmp_buf): Remove dead code.
11790         * cse.c (cse_find_path): Do not follow a single abnormal incoming edge.
11791         * explow.c (allocate_dynamic_stack_space): Remove SETJMP_VIA_SAVE_AREA
11792         support.
11793         * function.c (instantiate_virtual_regs): Likewise.
11794         * postreload-gcse.c (bb_has_well_behaved_predecessors): Return false
11795         for a block with a single abnormal incoming edge.
11796         * config/sparc/sparc.h (STACK_SAVEAREA_MODE): Define.
11797         (SETJMP_VIA_SAVE_AREA): Delete.
11798         * config/sparc/sparc-protos.h (load_got_register): Declare.
11799         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
11800         (load_got_register): Make global.
11801         (sparc_frame_pointer_required): Add 'static'.
11802         (sparc_can_eliminate): Likewise.  Call sparc_frame_pointer_required.
11803         (sparc_builtin_setjmp_frame_value): New function.
11804         * config/sparc/sparc.md (UNSPECV_SETJMP): Remove.
11805         (save_stack_nonlocal): New expander.
11806         (restore_stack_nonlocal): Likewise.
11807         (nonlocal_goto): Remove modes, adjust predicates and reimplement.
11808         (nonlocal_goto_internal): New insn.
11809         (goto_handler_and_restore): Delete.
11810         (builtin_setjmp_setup): Likewise.
11811         (do_builtin_setjmp_setup): Likewise.
11812         (setjmp): Likewise.
11813         (builtin_setjmp_receiver): New expander.
11814
11815 2011-06-01  David Li  <davidxl@google.com>
11816
11817         PR middle-end/49261
11818         * tree-pretty-print.c (dump_function_header): Format cleanup.
11819
11820 2011-06-01  Kaz Kojima  <kkojima@gcc.gnu.org>
11821
11822         PR target/49238
11823         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register if
11824         needed when original operands are used for msw_skip comparison.
11825
11826 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
11827
11828         PR debug/49250
11829         * var-tracking.c (add_uses, add_stores): Don't call
11830         cselib_subst_to_values on ENTRY_VALUE.
11831
11832 2011-06-01  Diego Novillo  <dnovillo@google.com>
11833
11834         * lto-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers): Call
11835         output_record_start with LTO_null instead of output_zero.
11836         (lto_output_ts_binfo_tree_pointers): Likewise.
11837         (lto_output_tree): Likewise.
11838         (output_eh_try_list): Likewise.
11839         (output_eh_region): Likewise.
11840         (output_eh_lp): Likewise.
11841         (output_eh_regions): Likewise.
11842         (output_bb): Likewise.
11843         (output_function): Likewise.
11844         (output_unreferenced_globals): Likewise.
11845         * lto-streamer.h (enum LTO_tags): Reserve MAX_TREE_CODES
11846         instead of NUM_TREE_CODES.
11847         (lto_tag_is_tree_code_p): Check max value against MAX_TREE_CODES.
11848         (lto_output_int_in_range): Change << to >> when shifting VAL.
11849
11850 2011-06-01  Diego Novillo  <dnovillo@google.com>
11851
11852         * lto-streamer-out.c (lto_output_ts_decl_non_common_tree_pointers):
11853         Remove assertion for DECL_SAVED_TREE in FUNCTION_DECL nodes.
11854
11855 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
11856
11857         PR target/45074
11858         * optabs.h (valid_multiword_target_p): Declare.
11859         * expmed.c (extract_bit_field_1): Check valid_multiword_target_p when
11860         doing multi-word operations.
11861         * optabs.c (expand_binop): Likewise.
11862         (expand_doubleword_bswap): Likewise.
11863         (expand_absneg_bit): Likewise.
11864         (expand_unop): Likewise.
11865         (expand_copysign_bit): Likewise.
11866         (multiword_target_p): New function.
11867
11868 2011-06-01  Richard Sandiford  <rdsandiford@googlemail.com>
11869
11870         PR rtl-optimization/48830
11871         PR rtl-optimization/48808
11872         PR rtl-optimization/48792
11873         * reload.c (push_reload): Check contains_reg_of_mode.
11874         * reload1.c (strip_paradoxical_subreg): New function.
11875         (gen_reload_chain_without_interm_reg_p): Use it to handle
11876         paradoxical subregs.
11877         (emit_output_reload_insns, gen_reload): Likewise.
11878
11879 2011-06-01  David Li  <davidxl@google.com>
11880
11881         * predict.c : Change pass name
11882         * ipa.c: Ditto.
11883         * dce.c: Ditto.
11884         * tree-profile.c: Ditto.
11885         * except.c: Ditto.
11886
11887 2011-06-01  David Li  <davidxl@google.com>
11888
11889         * tree-pretty-print.c (dump_function_header): New function.
11890         * final.c (rest_of_clean_state): Use header dumper.
11891         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
11892         * passes.c (pass_init_dump_file): Use header dumper.
11893
11894 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
11895
11896         * dwarf2out.c (compare_loc_descriptor, scompare_loc_descriptor,
11897         ucompare_loc_descriptor, minmax_loc_descriptor, clz_loc_descriptor,
11898         popcount_loc_descriptor, bswap_loc_descriptor, rotate_loc_descriptor):
11899         New functions.
11900         (mem_loc_descriptor): Use them.
11901
11902         * var-tracking.c (create_entry_value): New function.
11903         (vt_add_function_parameter): Use it.
11904
11905 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11906
11907         * config/i386/crtfastmath.c [!__x86_64__ && __sun__ && __svr4__]:
11908         Include <signal.h>, <ucontext.h>.
11909         (sigill_caught): Define.
11910         (sigill_hdlr): New function.
11911         (set_fast_math) [!__x86_64__ && __sun__ && __svr4__]: Check if SSE
11912         insns can be executed.
11913         * config/sol2.h (ENDFILE_SPEC): Use crtfastmath.o if -ffast-math etc.
11914         * config/sparc/sol2.h (ENDFILE_SPEC): Remove.
11915
11916 2011-06-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11917
11918         * config/t-slibgcc-darwin: Move to ...
11919         * config/t-slibgcc-dummy: ... this.  Clarify comments.
11920         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*,
11921         powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this.
11922         (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file.
11923         (i[34567]86-*-rtems*): Remove extra_parts.  Use i386/t-rtems.
11924         Remove i386/t-crtstuff from tmake_file.
11925         (i[34567]86-*-solaris2*): Remove t-svr4,
11926         t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add
11927         t-slibgcc-dummy.
11928         (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts.
11929         (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin,
11930         sparc/t-crtfm from tmake_file.
11931         (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm,
11932         t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy.
11933         Remove extra_parts.
11934         * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define.
11935         * config/i386/t-nwld (SHLIB_LINK): Remove.
11936         * config/i386/t-rtems-i386: Rename to ...
11937         * config/i386/t-rtems: ... this.
11938         ($(T)crti.o, $(T)crtn.o): Remove.
11939         (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove.
11940         (dp-bit.c, fp-bit.c, xp-bit.c): Remove.
11941         (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove.
11942         * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC,
11943         EXTRA_MULTILIB_PARTS): Remove.
11944         * config/sparc/t-sol2-64: Likewise.
11945         * config/sparc/t-sol2: Remove.
11946         * config/sparc/t-crtin: Remove.
11947         * config/sparc/gmon-sol2.c: Move to ../libgcc/config.
11948         * config/i386/gmon-sol2.c: Remove.
11949         * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S.
11950         * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S.
11951         * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S.
11952         * config/i386/sol2-gc1.asm: Remove.
11953         * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S.
11954         * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S.
11955         * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S.
11956         * config/t-slibgcc-sld: Remove.
11957
11958 2011-06-01  Jakub Jelinek  <jakub@redhat.com>
11959
11960         * dwarf2out.c (mem_loc_descriptor) <do_ucompare>: Call
11961         base_type_for_mode with op_mode instead of mode.
11962
11963 2011-06-01  Paul Brook  <paul@cpodesourcery.com>
11964
11965         * config/arm/arm-cores.def: Add cortex-r5.  Add DIV flags to
11966         Cortex-A15.
11967         * config/arm/arm-tune.md: Regenerate.
11968         * config/arm/arm-tables.opt: Regenerate.
11969         * config/arm/arm.c (FL_DIV): Rename...
11970         (FL_THUMB_DIV): ... to this.
11971         (FL_ARM_DIV): Define.
11972         (FL_FOR_ARCH7R, FL_FOR_ARCH7M): Use FL_THUMB_DIV.
11973         (arm_arch_hwdiv): Remove.
11974         (arm_arch_thumb_hwdiv, arm_arch_arm_hwdiv): New variables.
11975         (arm_issue_rate): Add cortexr5.
11976         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set
11977         __ARM_ARCH_EXT_IDIV__.
11978         (TARGET_IDIV): Define.
11979         (arm_arch_hwdiv): Remove.
11980         (arm_arch_arm_hwdiv, arm_arch_thumb_hwdiv): New prototypes.
11981         * config/arm/arm.md (tune_cortexr4): Add cortexr5.
11982         (divsi3, udivsi3): New patterns.
11983         * config/arm/thumb2.md (divsi3, udivsi3): Remove.
11984         * doc/invoke.texi: Document ARM -mcpu=cortex-r5
11985
11986 2011-06-01  Martin Jambor  <mjambor@suse.cz>
11987
11988         * ipa-utils.c (ipa_dfs_info): New field scc_no.
11989         * ipa-utils.c (searchc): Set scc_no.
11990
11991 2011-06-01  Martin Jambor  <mjambor@suse.cz>
11992
11993         * ipa-utils.c (searchc_env): New field allow_overwritable.
11994         (searchc): do not ignore edges to overwritable nodes if indicated
11995         by env->allow_overwritable.
11996         (ipa_reduced_postorder): Set env.allow_overwritable.
11997
11998 2011-06-01  Richard Guenther  <rguenther@suse.de>
11999
12000         * tree.c (free_lang_data): Do not reset boolean_type_node nor
12001         char_type_node.
12002         * lto-streamer.c (lto_record_common_node): Take node pointer,
12003         do not register types.
12004         (lto_preload_common_nodes): Explicitly skip preloading nodes
12005         that differ between frontends.
12006
12007 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
12008
12009         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Remove vr0..vr2 from
12010         NON_FLOAT_REGS.
12011
12012 2011-05-31  Pat Haugen  <pthaugen@us.ibm.com>
12013
12014         * config/rs6000/rs6000.c (rs6000_register_move_cost): Preserve from
12015         parameter value for dump. Dump cost on outermost call only.
12016         (rs6000_memory_move_cost): Dump cost on outermost call only.
12017
12018 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
12019
12020         * dwarf2out.c (resolve_addr_in_expr): Optimize away redundant
12021         DW_OP_GNU_convert ops.
12022
12023         * cselib.c (promote_debug_loc): Allow l->next non-NULL for
12024         cselib_preserve_constants.
12025         (cselib_lookup_1): If cselib_preserve_constants,
12026         a new VALUE is being created for REG and there is a VALUE for the
12027         same register in wider mode, add another loc with lowpart SUBREG of
12028         the wider VALUE.
12029         (cselib_subst_to_values): Handle ENTRY_VALUE.
12030         * var-tracking.c  (replace_expr_with_values): Return NULL for
12031         ENTRY_VALUE too.
12032         * dwarf2out.c (convert_descriptor_to_signed): New function.
12033         (mem_loc_descriptor) <case ZERO_EXTEND>: Optimize using DW_OP_and
12034         instead of two shifts.
12035         (mem_loc_descriptor) <do_shift>: ZERO_EXTEND second argument to
12036         the right mode if needed.
12037         (mem_loc_descriptor) <case MOD>: For typed ops just use DW_OP_mod.
12038         (mem_loc_descriptor) <case UNSIGNED_FIX>: Use
12039         convert_descriptor_to_signed.
12040         (mem_loc_descriptor) <case UDIV, CLZ, CTZ, FFS, POPCOUNT, PARITY,
12041         BSWAP, ROTATE, ROTATERT>: Handle these rtls.
12042
12043         PR target/48688
12044         * config/i386/i386.md (*lea_general_4): New define_insn_and_split.
12045
12046 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
12047
12048         * config/i386/i386.md: Use SWI248x instead of X87MODEI, SWI24 instead
12049         of X87MODEI12 and SWI48x instead of SSEMODEI24.
12050         (SWI248x): New mode iterator, rename from X87MODEI.
12051         (X87MODEI): Remove mode iterator.
12052         (X87MODEI12): Ditto.
12053         (SSEMODEI24): Ditto.
12054
12055 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
12056
12057         * params.def (PARAM_MAX_VARTRACK_EXPR_DEPTH): New.
12058         * doc/invoke.texi: Document max-vartrack-expr-depth.
12059         * var-tracking.c (EXPR_DEPTH): New.
12060         (reverse_op, vt_expand_loc, vt_expand_loc_dummy): Use it.
12061
12062 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
12063
12064         * config/i386/i386.c (ix86_rtx_costs): Drop NEG from sub for FMA.
12065         * config/i386/sse.md: Add n to negated FMA pattern names.
12066
12067 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
12068
12069         * gcc.c (driver_handle_option): Fix disabling of -fcompare-debug.
12070
12071 2011-05-31  Alexandre Oliva  <aoliva@redhat.com>
12072
12073         * gengtype-state.c (read_state_params_structs): Initialize previous.
12074
12075 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
12076
12077         * config/i386/i386.md (*pushxf_nointeger): Merge alternatives 1 and 2.
12078         (FP push_operand splitters): Merge {TF,XF,DF}mode splitters.
12079
12080 2011-05-31  Uros Bizjak  <ubizjak@gmail.com>
12081
12082         * config/i386/i386.md (*movtf_internal): Avoid allocating general
12083         registers.  Penalize F*r->o alternative to prevent partial memory
12084         stalls.  Slightly penalize *roF->*r alternative.  Generate SSE
12085         CONST_DOUBLE immediates when optimizing function for size.  Do not move
12086         CONST_DOUBLEs directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
12087         (*movxf_internal): Slightly penalize Yx*roF->Yx*r alternative.
12088         (*movdf_internal): Slightly penalize Yd*roF->Yd*r alternative.
12089         (*movdf_internal_rex64): Slightly penalize rm->r, F->m and r->m
12090         alternatives.
12091         (*movsf_internal): Slightly penalize rmF->r and Fr->m alternatives.
12092
12093         (fp_register_operand splitters): Use fp_register_operand
12094         constraint.  Do not use FP_REG_P in insn condition.
12095         (any_fp_register_operand splitters): Use any_fp_register_operand
12096         constraint.  Do not use ANY_FP_REG_P in insn condition.
12097
12098 2011-05-31  Jan Hubicka  <jh@suse.cz>
12099
12100         * cgraph.h (cgraph_inline_failed_t): Give enum a name
12101         * lto-cgraph.c (LDPR_NUM_KNOWN): New macro.
12102         (LTO_cgraph_tags): Add LTO_cgraph_last_tag.
12103         (lto_output_edge): Use output_enum and var_len_unsigned.
12104         (lto_output_varpool_node): Likewise.
12105         (input_overwrite_node): Do not take resolution parameter;
12106         extract it from a bitpack.
12107         (input_node): Do not read resolution; use input_enum and
12108         var_len_unsigned.
12109         (input_varpool_node): Likewise.
12110         (input_edge): Likewise.
12111         (input_cgraph_1): Likewise.
12112
12113 2011-05-31  Richard Guenther  <rguenther@suse.de>
12114
12115         * gimple.c (gimple_register_canonical_type): Do not register
12116         any types via gimple_register_type.
12117
12118 2011-05-31  Jan Hubicka  <jh@suse.cz>
12119
12120         * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Merge alias decl
12121         of thunks.
12122
12123 2011-05-31  Jakub Jelinek  <jakub@redhat.com>
12124
12125         PR rtl-optimization/49235
12126         * tree-ssa-address.c (gen_addr_rtx): Ignore base if it is const0_rtx.
12127         (create_mem_ref_raw): Create MEM_REF even if base is INTEGER_CST.
12128
12129 2011-05-31  Ira Rosen  <ira.rosen@linaro.org>
12130
12131         PR tree-optimization/49093
12132         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail for volatile
12133         data references.
12134
12135 2011-05-31  Dodji Seketeli  <dodji@redhat.com>
12136
12137         PR debug/49047
12138         * dwarf2out.c (gen_subprogram_die): Emit linkage name attribute
12139         for concrete functions containing the code of cloned functions.
12140
12141 2011-05-31  Richard Guenther  <rguenther@suse.de>
12142
12143         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Rename
12144         to ...
12145         (forward_propagate_into_comparison_1): ... this.
12146         (forward_propagate_comparison): Rename to ...
12147         (forward_propagate_into_comparison): ... this.  Split out
12148         real forward propagation code to ...
12149         (forward_propagate_comparison): ... this.
12150         (forward_propagate_into_gimple_cond): Remove looping.
12151         (forward_propagate_into_cond): Likewise.
12152         (simplify_not_neg_expr): Return whether we have done something.
12153         (simplify_gimple_switch): Likewise.
12154         (tree_ssa_forward_propagate_single_use_vars): Rename to ...
12155         (ssa_forward_propagate_and_combine): ... this.  Re-structure
12156         to do a forward forward-propagation walk on BBs and a backward
12157         stmt combining walk on BBs.  Consistently re-scan changed statements.
12158         (pass_forwprop): Adjust.
12159
12160 2011-05-30  Ian Lance Taylor  <iant@google.com>
12161
12162         * godump.c (go_format_type): Correct length of name added to
12163         obstack for anonymous field.
12164
12165 2011-05-30  Kaz Kojima  <kkojima@gcc.gnu.org>
12166
12167         PR target/49186
12168         * config/sh/sh.c (expand_cbranchdi4): Set msw_skip when the high
12169         part of the second operand is 0.
12170
12171 2011-05-30  Uros Bizjak  <ubizjak@gmail.com>
12172
12173         * config/i386/i386.md (*movxf_internal): Penalize FYx*r->o alternative
12174         to prevent partial memory stalls.  Do not move CONST_DOUBLEs directly
12175         to memory for !TARGET_MEMORY_MISMATCH_STALL.
12176         (*movdf_internal_rex64): Do not penalize F->r alternative.
12177         (*movdf_internal): Penalize FYd*r->o alternative to prevent partial
12178         memory stalls.  Generate SSE and x87 CONST_DOUBLE immediates only
12179         when optimizing function for size.  Do not move CONST_DOUBLEs
12180         directly to memory for !TARGET_MEMORY_MISMATCH_STALL.
12181         (FP move splitters): Merge {TF,XF,DF}mode splitters.  Do not handle
12182         SUBREGs.  Do not check for MEM_P operands in the insn condition,
12183         check for ANY_FP_REGNO_P instead.
12184         * config/i386/constraints.md (Yd): Enable GENERAL_REGS for
12185         TARGET_64BIT and for TARGET_INTEGER_DFMODE_MOVES when optimizing
12186         function for speed.
12187         * config/i386/i386.c (ix86_option_override_internal): Do not
12188         set TARGET_INTEGER_DFMODE_MOVES here.
12189
12190 2011-05-30  H.J. Lu  <hongjiu.lu@intel.com>
12191
12192         PR target/49168
12193         * config/i386/i386.md (*movtf_internal): Handle misaligned load/store.
12194
12195 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
12196
12197         * dwarf2out.c (modified_type_die, gen_reference_type_die): Use
12198         DW_TAG_rvalue_reference_type even for
12199         -gdwarf-4 -fno-debug-types-section.
12200
12201 2011-05-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12202
12203         PR tree-optimization/46728
12204         * tree-ssa-math-opts.c (build_and_insert_call): Reorder parms.
12205         (build_and_insert_binop): New.
12206         (gimple_expand_builtin_pow): Reorder args for
12207         build_and_insert_call; use build_and_insert_binop; add more
12208         optimizations for fractional exponents.
12209
12210 2011-05-30  Nathan Froyd  <froydnj@gcc.gnu.org>
12211
12212         PR bootstrap/49190
12213
12214         Revert:
12215         2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
12216
12217         * tree.h (struct tree_identifier): Inherit from tree_typed, not
12218         tree_common.
12219         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
12220         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
12221         TS_BASE instead of TS_COMMON.
12222         * varasm.c (assemble_name): Remove assert.
12223
12224 2011-05-30  Richard Sandiford  <rdsandiford@googlemail.com>
12225
12226         * config.gcc: Keep obselete list sorted.
12227
12228 2011-05-30  Jakub Jelinek  <jakub@redhat.com>
12229             Eric Botcazou  <ebotcazou@adacore.com>
12230
12231         * var-tracking.c (vt_add_function_parameter): Remap incoming MEMs with
12232         crtl->args.internal_arg_pointer based address to arg_pointer_rtx if
12233         there is a DRAP register and arg_pointer_rtx is the CFA pointer.
12234         (vt_init_cfa_base): Don't equate cfa_base_rtx if stack was realigned.
12235         (vt_initialize): Initialize cfa_base_rtx if there is a DRAP register.
12236
12237 2011-05-30  Richard Guenther  <rguenther@suse.de>
12238
12239         * gimple.c (gimple_types_compatible_p_1): Compare record
12240         and union type members properly.
12241
12242 2011-05-30  Richard Guenther  <rguenther@suse.de>
12243
12244         PR tree-optimization/49210
12245         * ipa-split.c (split_function): Care for the case where the call
12246         result is not trivially convertible to the result holding variable.
12247
12248 2011-05-30  Richard Guenther  <rguenther@suse.de>
12249
12250         PR tree-optimization/49218
12251         * tree-vrp.c (adjust_range_with_scev): Properly check whether
12252         overflow occured.
12253
12254 2011-05-30  Richard Guenther  <rguenther@suse.de>
12255
12256         * tree-ssa-forwprop.c (forward_propagate_into_comparison):
12257         New function split out from ...
12258         (forward_propagate_into_gimple_cond): ... here.  Adjust.
12259         (forward_propagate_into_cond): Likewise.
12260         (forward_propagate_comparison): Also propagate into
12261         comparisons on assignment RHS.  Change return value to
12262         behave similar to forward_propagate_into_cond.
12263         (tree_ssa_forward_propagate_single_use_vars): Handle
12264         strict-overflow warnings properly for forward_propagate_comparison.
12265
12266 2011-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12267
12268         * configure.ac (gcc_cv_lto_plugin): Determine lto plugin support
12269         from plugin linker.
12270         * configure: Regenerate.
12271
12272 2011-05-30  Ira Rosen  <ira.rosen@linaro.org>
12273
12274         PR tree-optimization/49199
12275         * tree-vect-loop.c (vect_is_slp_reduction): Check that the
12276         non-reduction operands are either defined in the loop or by induction.
12277
12278 2011-05-29  Xinliang David Li  <davidxl@google.com>
12279
12280         * opts-global.c (handle_common_deferred_options): Handle new options.
12281         * passes.c (register_one_dump_file): Call register_pass_name.
12282         (execute_one_pass): Check explicit enable/disable flag.
12283         (passr_hash): New function.
12284         (passr_eq): Ditto.
12285         (register_pass_name): Ditto.
12286         (get_pass_by_name): Ditto.
12287         (pass_hash): Ditto.
12288         (pass_eq): Ditto.
12289         (enable_pass): Ditto.
12290         (disable_pass): Ditto.
12291         (is_pass_explicitly_enabled_or_disabled): Ditto.
12292
12293 2011-05-29  Uros Bizjak  <ubizjak@gmail.com>
12294
12295         * config/i386/i386.md (*movoi_internal_avx): Use
12296         standard_sse_constant_opcode for alternative 0.
12297         (*movti_internal_sse): Ditto.
12298         (*movti_internal_rex64): Use standard_sse_constant_opcode for
12299         alternative 2.
12300         (*movdi_internal_rex64): Use standard_sse_constant_opcode for
12301         sselog1 type moves.
12302         (*movsi_internal): Ditto.
12303         (*movdi_internal): Ditto.  Add ssecvt type moves.
12304
12305 2011-05-29  Eric Botcazou  <ebotcazou@adacore.com>
12306
12307         PR target/48830
12308         * rtlanal.c (simplify_subreg_regno): Adjust comment.
12309
12310 2011-05-29  Jakub Jelinek  <jakub@redhat.com>
12311
12312         PR rtl-optimization/49095
12313         * config/i386/predicates.md (plusminuslogic_operator): New predicate.
12314         * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0.
12315
12316 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
12317
12318         PR target/43995
12319         * config/mips/mips.c (mips_pic_call_symbol_from_set): Add a
12320         recurse_p argument.  Only follow register copies if it is set,
12321         and prevent mips_find_pic_call_symbol from recursing.
12322         (mips_find_pic_call_symbol): Add a recurse_p argument.
12323         Pass it to mips_pic_call_symbol_from_set.
12324         (mips_annotate_pic_calls): Update accordingly.
12325
12326 2011-05-29  Richard Sandiford  <rdsandiford@googlemail.com>
12327
12328         * emit-rtl.c (try_split): Use a loop to search for
12329         NOTE_INSN_CALL_ARG_LOCATIONs.
12330
12331 2011-05-29  Richard Guenther  <rguenther@suse.de>
12332
12333         PR tree-optimization/49217
12334         * ipa-pure-const.c (propagate_pure_const): Fix typos.
12335
12336 2011-05-28  Jan Hubicka  <jh@suse.cz>
12337
12338         * lto-streamer-out.c (hash_string_slot_node): Hash string based on its
12339         length.
12340         (string_slot_free): Remove
12341         (create_output_block): Initialize obstack.
12342         (destroy_output_block): Free obstack.
12343         (lto_string_index): Add PERSISTENT parameter; do not duplicate
12344         the string unless it needs to be added into the hash.
12345         (lto_output_string_with_length): Add persistent attribute;
12346         handle NULL strings.
12347         (lto_output_string): Add PERSISTENT parameter.
12348         (output_string_cst, output_identifier): Simplify.
12349         (lto_output_location_bitpack): Update.
12350         (lto_output_builtin_tree): Update.
12351         * lto-streamer.h (struct output_block): Add obstack.
12352         (lto_output_string, lto_output_string_with_length): Remove
12353         declarations; functions are static now.
12354
12355 2011-05-28  Jan Hubicka  <jh@suse.cz>
12356
12357         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields,
12358         pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields,
12359         pack_ts_function_decl_value_fields, lto_output_builtin_tree,
12360         output_cfg, output_gimple_stmt): Use enum and variable length i/o.
12361         * lto-streamer-in.c (input_cfg, input_gimple_stmt,
12362         unpack_ts_fixed_cst_value_fields, unpack_ts_decl_common_value_fields,
12363         unpack_ts_decl_with_vis_value_fields,
12364         unpack_ts_type_common_value_fields, unpack_ts_block_value_fields,
12365         lto_get_builtin_tree): Use enum and variable length i/o.
12366         * basic-block.h (profile_status_d): Add PROFILE_LAST.
12367         * lto-streamer.h (bp_pack_int_in_range, bp_unpack_int_in_range):
12368         New functions.
12369         (bp_pack_enum, bp_unpack_enum): New macros.
12370
12371 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
12372
12373         * genrecog.c: Remove redundant forward declarations.
12374
12375 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
12376
12377         * config.gcc: Deprecate mips*-*-openbsd*.
12378
12379 2011-05-28  Richard Sandiford  <rdsandiford@googlemail.com>
12380
12381         PR bootstrap/49195
12382         * genrecog.c (add_to_sequence): Use XEXP rather than XVECEXP
12383         for match_op_dup.
12384
12385 2011-05-27  Andrew Pinski  <pinskia@gmail.com>
12386
12387         PR middle-end/48981
12388         * gengtype.c (vec_prefix_type): New function.
12389         (note_def_vec): Use vec_prefix_type and change the length
12390         attribute to be based on the prefix.
12391         * vec.c: Include coretypes.h before vec.h.
12392         (struct vec_prefix): Remove.
12393         (vec_gc_p_reserve): Change the offsetof to sizeof.
12394         (vec_gc_p_reserve_exact): Likewise.
12395         (vec_heap_p_reserve): Likewise.
12396         (vec_heap_p_reserve_exact): Likewise.
12397         (vec_stack_o_reserve_1): Copy from +1 instead of from vec.
12398         (vec_stack_p_reserve): Change the offsetof to sizeof.
12399         (vec_stack_p_reserve_exact): Likewise.
12400         * vec.h (struct vec_prefix): New struct definition.
12401         (VEC_T(T,B)): Use vec_prefix instead of having num/alloc fields.
12402         (VEC_T_GTY(T,B)): Likewise.
12403         (DEF_VEC_FUNC_P(T)): Use prefix field.
12404         (DEF_VEC_NONALLOC_FUNCS_O(T,A)): Likewise.
12405         (DEF_VEC_NONALLOC_FUNCS_I(T,A)): Likewise.
12406
12407 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12408
12409         PR tree-optimization/46728
12410         * tree-ssa-math-opts.c (powi_as_mults_1): Add gimple_set_location.
12411         (powi_as_mults): Add gimple_set_location.
12412         (build_and_insert_call): New.
12413         (gimple_expand_builtin_pow): Add handling for pow(x,y) when y is
12414         0.5, 0.25, 0.75, 1./3., or 1./6.
12415
12416 2011-05-27  Alexander Monakov  <amonakov@ispras.ru>
12417
12418         * doc/contrib.texi: Update copyright years.
12419         (Contributors): Add Zdenek Sojka.
12420
12421 2011-05-27  Nathan Froyd  <froydnj@codesourcery.com>
12422
12423         * c-decl.c (c_push_function_context): Copy the current statement
12424         list stack.
12425         (add_stmt): Check building_stmt_list_p and push_stmt if necessary.
12426         (finish_struct): Call building_stmt_list_p instead of checking
12427         cur_stmt_list.
12428         * c-parser.c (c_parser_postfix_expression): Likewise.
12429         * c-typeck.c (c_end_compound_stmt): Likewise.
12430         * print-tree.c (print_node) [STATEMENT_LIST]: Don't print TREE_CHAIN.
12431         * tree-iterator.c (stmt_list_cache): Change to a VEC.
12432         (alloc_stmt_list): Adjust for stmt_list_cache's new type.
12433         (free_stmt_list): Likewise.
12434         * tree.h (struct tree_statement_list): Include typed_tree instead
12435         of tree_common.
12436         * tree.c (initialize_tree_contains_struct): Mark TS_STATEMENT_LIST
12437         as TS_TYPED instead of TS_COMMON.
12438
12439 2011-05-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12440             Uros Bizjak  <ubizjak@gmail.com>
12441
12442         * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check for @tlsgdplt
12443         (HAVE_AS_IX86_TLSGDPTL): Define.
12444         (gcc_cv_as_ix86_tlsldmplt): Check for @tlsldmplt.
12445         (HAVE_AS_IX86_TLSLDMPLT): Define.
12446         * configure: Regenerate.
12447         * config.in: Regenerate.
12448         * config/i386/i386.c (ix86_print_operand): Handle code 'p'.
12449         * config/i386/i386.md (*tls_global_dynamic_32_gnu): If
12450         TARGET_SUN_TLS, use @tlsgdplt or @plt.
12451         (*tls_global_dynamic_64): Use @plt if TARGET_SUN_TLS.
12452         (*tls_local_dynamic_base_32_gnu): If TARGET_SUN_TLS, use
12453         @tlsldmplt or @plt.
12454         (*tls_local_dynamic_base_64): Use @plt if TARGET_SUN_TLS.
12455
12456 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
12457
12458         * sched-int.h (struct _haifa_deps_insn_data): New members cond
12459         and reverse_cond.
12460         (INSN_COND, INSN_REVERSE_COND): New macros.
12461         * sched-deps.c (deps_analyze_insn): Call sched_get_condition_with_rev
12462         once.
12463         (sched_get_condition_with_rev): Cache the results, and look them up
12464         if possible.
12465         (sched_analyze_insn): Destroy INSN_COND of previous insns if they
12466         are clobbered by the current insn.
12467         * target.def (exposed_pipline): New sched data hook.
12468         * doc/tm.texi.in: TARGET_SCHED_EXPOSED_PIPELINE: Add hook.
12469         * doc/tm.texi: Regenerate.
12470
12471 2011-05-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12472
12473         PR tree-optimization/49170
12474         * tree-ssa-math-opts.c (execute_cse_sincos):  Add checks for
12475         sincos or cexp.
12476
12477 2011-05-27  Richard Guenther  <rguenther@suse.de>
12478
12479         PR middle-end/49189
12480         * fold-const.c (fold_unary_loc): Do not re-fold folding conversions
12481         of comparisons.
12482
12483 2011-05-27  Bernd Schmidt  <bernds@codesourcery.com>
12484
12485         * haifa-sched.c (sched_scan_info): Remove.
12486         (schedule_block): Call sched_extend_luids rather than sched_init_luids
12487         with NULL args.
12488         (extend_bb, init_bb, extend_insn, init_insn, init_insns_in_bb):
12489         Remove functions.
12490         (sched_scan): Remove.
12491         (sched_extend_luids): Renamed from luids_extend_insn and no longer
12492         static.  All callers changed.
12493         (sched_init_insn_luid): Renamed from luids_init_insn and no longer
12494         static.  All callers changed.
12495         (sched_init_luids): Remove all arguments except the first.  All
12496         callers changed.  Don't use sched_scan.
12497         (haifa_init_h_i_d): Likewise.
12498         (haifa_init_insn): Call sched_extend_luids and sched_init_insn_luid
12499         manually rather than using sched_init_luids.  Likewise with
12500         extend_h_i_d, init_h_i_d and haifa_init_h_i_d.
12501         * sel-sched.c (sel_region_target_finish): Call sched_extend_luids
12502         rather than sched_init_luids with NULL args.
12503         * sel-sched-ir.c (new_insns): Remove variable.
12504         (sched_scan): New static function, previously in haifa-sched.c.  Remove
12505         all arguments but the first two; all callers changed.
12506         (sel_init_new_insn): Call sched_extend_luids and sched_init_insn_luid
12507         rather than sched_init_luids.
12508         (sel_init_bbs): Remove second argument.  All callers changed.
12509         (sel_add_bb): Call sched_extend_luids rather than sched_init_luids
12510         with NULL arguments.
12511         (create_insn_rtx_from_pattern): Likewise.
12512         * sel-sched-ir.h (sel_init_bbs): Adjust declaration.
12513         * sched-int.h (sched_init_luids, haifa_init_h_i_d): Likewise.
12514         (sched_init_insn_luid, sched_extend_luids): Declare.
12515         (sched_scan_info_def, sched_scan_info, sched_scan): Remove
12516         declarations.
12517
12518 2011-05-27  Richard Guenther  <rguenther@suse.de>
12519
12520         PR middle-end/49177
12521         * fold-const.c (fold_unary_loc): Fold (T)(A CMP B) to
12522         A CMP B ? (T) true : (T) false for non-integral types T again.
12523
12524 2011-05-27  Jan Hubicka  <jh@suse.cz>
12525
12526         * lto-streamer-out.c (lto_string_index): break out from...; offset by 1
12527         so 0 means NULL string.
12528         (lto_output_string_with_length): ... here.
12529         (lto_output_string, output_string_cst, output_identifier): Update
12530         handling of NULL strings.
12531         (lto_output_location_bitpack): New function.
12532         (lto_output_location): Use it.
12533         (lto_output_tree_ref): Use output_record_start.
12534         (pack_ts_type_common_value_fields): Pack aliagn & alias set in var
12535         len values.
12536         * lto-streamer-in.c (string_for_index): Break out from ...; offset
12537         values by 1.
12538         (input_string_internal): ... here;
12539         (input_string_cst, input_identifier, lto_input_string): Update handling
12540         of NULL strings.
12541         (lto_input_location_bitpack): New function
12542         (lto_input_location): Use it.
12543         (unpack_ts_type_common_value_fields): Pack align & alias in var len
12544         values.
12545         * lto-streamer.h (bp_pack_val_len_unsigned, bp_pack_val_len_int,
12546         bp_unpack_val_len_unsigned, bp_unpack_val_len_int): Declare.
12547         (bp_pack_value): Sanity check the value range.
12548         * lto-section-in.c (bp_unpack_val_len_unsigned, bp_unpack_val_len_int):
12549         New functions.
12550         * lto-section-out.h (bp_pack_val_len_unsigned, bp_pack_val_len_int):
12551         New functions.
12552
12553 2011-05-27  Hariharan Sandanagobalane  <hariharan@picochip.com>
12554
12555         * config/picochip/picochip.c (reorder_var_tracking_notes): Drop
12556         call_arg_location instructions down the floor.
12557
12558 2011-05-26  Vladimir Makarov  <vmakarov@redhat.com>
12559
12560         PR rtl-optimization/49154
12561         * ira.c (setup_pressure_classes): Process class without sublcasses
12562         as a candidate for pressure classes.
12563
12564 2011-05-26  Richard Sandiford  <rdsandiford@googlemail.com>
12565
12566         PR rtl-optimization/48575
12567         * genrecog.c (position_type): New enum.
12568         (position): New structure.
12569         (decision): Use position structure instead of a string.
12570         (root_pos, peep2_insn_pos_list): New variables.
12571         (next_position, compare_positions): New functions.
12572         (new_decision): Use position structures instead of strings.
12573         (maybe_both_true): Likewise.
12574         (change_state): Likewise.
12575         (write_tree): Likewise.
12576         (make_insn_sequence): Likewise.
12577
12578 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
12579
12580         * tree.c (initialize_tree_contains_struct): Mark TS_BLOCK as
12581         TS_BASE instead of TS_COMMON.
12582         (find_decls_types_r): Check for TS_TYPED structure before looking at
12583         TREE_TYPE.
12584         * tree.h (struct tree_block): Inherit from tree_base, not tree_common.
12585         Add chain field.
12586         (BLOCK_CHAIN): Use new chain field.
12587
12588 2011-05-26  Pat Haugen  <pthaugen@us.ibm.com>
12589
12590         * config/rs6000/rs6000.c (rs6000_register_move_cost): Make LR/CTR
12591         moves expensive on Power7 also.
12592
12593 2011-05-26  Richard Guenther  <rguenther@suse.de>
12594
12595         * fold-const.c (fold_unary_loc): Remove bogus code.
12596
12597 2011-05-26  Nathan Froyd  <froydnj@codesourcery.com>
12598
12599         * tree.h (struct tree_identifier): Inherit from tree_typed, not
12600         tree_common.
12601         (HT_IDENT_TO_GCC_IDENT): Adjust for said change.
12602         * tree.c (initialize_tree_contains_struct): Mark TS_IDENTIFIER as
12603         TS_BASE instead of TS_COMMON.
12604         * varasm.c (assemble_name): Remove assert.
12605
12606 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
12607
12608         * Makefile.in (srcdirify): Change order so that libgcc_objdir is
12609         substituted first.
12610         * libgcc-std.ver: Delete file.
12611
12612 2011-05-26  Richard Guenther  <rguenther@suse.de>
12613
12614         PR tree-optimization/48702
12615         * tree-ssa-address.c (create_mem_ref_raw): Create MEM_REFs
12616         only when we know the base address is within bounds.
12617         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Do not
12618         assume the base address of TARGET_MEM_REFs is in bounds.
12619
12620 2011-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12621
12622         PR target/49099
12623         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Wrap
12624         declaration in TARGET_SOLARIS.
12625
12626 2011-05-26  Hariharan Sandanagobalane  <hariharan@picochip.com>
12627
12628         * config/picochip/picochip.md (cbranchhi4): No :CC for match_operator.
12629         The instruction is then expanded explicitly.
12630         (supported_compare): Callable instruction.
12631         (compare): Likewise.
12632
12633 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
12634
12635         PR c++/49165
12636         * gimplify.c (shortcut_cond_r): Don't special case
12637         COND_EXPRs if they have void type on one of their arms.
12638
12639 2011-05-26  Bernd Schmidt  <bernds@codesourcery.com>
12640
12641         * haifa-sched.c (schedule-block): Reorder the inner scheduling loop
12642         to reduce duplication, and to achieve a slightly more logical order
12643         of operations.
12644
12645 2011-05-26  Jakub Jelinek  <jakub@redhat.com>
12646
12647         PR tree-optimization/49161
12648         * tree-vrp.c (struct case_info): New type.
12649         (compare_case_labels): Sort case_info structs instead of
12650         trees, and not primarily by CASE_LABEL uids but by
12651         label_for_block indexes.
12652         (find_switch_asserts): Put case labels into struct case_info
12653         array instead of TREE_VEC, adjust sorting, compare label_for_block
12654         values instead of CASE_LABELs.
12655
12656 2011-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12657
12658         * config/arm/neon.md ("orn<mode>3_neon"): Canonicalize not.
12659         ("orndi3_neon"): Likewise.
12660         ("bic<mode>3_neon"): Likewise.
12661
12662 2011-05-26  Ira Rosen  <ira.rosen@linaro.org>
12663
12664         PR tree-optimization/49038
12665         * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader):
12666         Ensure at least one epilogue iteration if required by data
12667         accesses with gaps.
12668         * tree-vectorizer.h (struct _loop_vec_info): Add new field
12669         to mark loops that require peeling for gaps.
12670         * tree-vect-loop.c (new_loop_vec_info): Initialize new field.
12671         (vect_get_known_peeling_cost): Take peeling for gaps into
12672         account.
12673         (vect_transform_loop): Generate epilogue if required by data
12674         access with gaps.
12675         * tree-vect-data-refs.c (vect_analyze_group_access): Mark the
12676         loop as requiring an epilogue if there are gaps in the end of
12677         the strided group.
12678
12679 2011-05-25  Ian Lance Taylor  <iant@google.com>
12680
12681         * godump.c (go_format_type): Output the first field with a usable
12682         Go type, if any.
12683
12684 2011-05-25  Ian Lance Taylor  <iant@google.com>
12685
12686         * godump.c (go_format_type): Check for invalid type names, pointer
12687         target types, and struct field types.
12688
12689 2011-05-25  Jason Merrill  <jason@redhat.com>
12690
12691         * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
12692
12693 2011-05-25  Uros Bizjak  <ubizjak@gmail.com>
12694
12695         * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
12696
12697 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
12698
12699         * config/i386/i386.md (*movqi_extv_1)): Put back
12700         "register_operand" check in "type" calculation.
12701         (*movqi_extzv_2): Likewise.
12702
12703 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
12704
12705         * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
12706
12707 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
12708
12709         PR bootstrap/49160
12710         * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
12711         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
12712         __divxc3, __divtc3): Wrap definitions in #ifndef.
12713
12714 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
12715
12716         PR target/49142
12717         * config/i386/i386.md (*movqi_extv_1_rex64): Remove
12718         "register_operand" check and replace q_regs_operand with
12719         QIreg_operand in "type" calculation.
12720         (*movqi_extv_1): Likewise.
12721         (*movqi_extzv_2_rex64): Likewise.
12722         (*movqi_extzv_2): Likewise.
12723
12724         * config/i386/predicates.md (QIreg_operand): New.
12725
12726 2011-05-25  Richard Guenther  <rguenther@suse.de>
12727
12728         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
12729         type-based offset disambiguation, streamline MEM_REF and
12730         TARGET_MEM_REF handling.
12731
12732 2011-05-25  H.J. Lu  <hongjiu.lu@intel.com>
12733
12734         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
12735         (bdesc_special_args): Add pause intrinsic.
12736
12737         * config/i386/i386.md (UNSPEC_PAUSE): New.
12738         (pause): Likewise.
12739         (*pause): Likewise.
12740         * config/i386/ia32intrin.h (__pause): Likewise.
12741
12742         * doc/extend.texi (X86 Built-in Functions): Add documentation for
12743         pause intrinsic.
12744
12745 2011-05-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12746
12747         PR tree-optimization/46728
12748         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
12749         (execute_cse_sincos): Add switch case for BUILT_IN_POW.
12750
12751 2011-05-25  Nathan Froyd  <froydnj@codesourcery.com>
12752
12753         * tree.h (struct tree_exp): Inherit from struct tree_typed.
12754         * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
12755         instead of TS_COMMON.
12756
12757 2011-05-25  Bernd Schmidt  <bernds@codesourcery.com>
12758
12759         * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
12760         LIBGCC2_GNU_PREFIX is defined.
12761         (__N): New macro.
12762         (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
12763         __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
12764         __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
12765         __clz_tab): Define using __N.
12766         (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
12767         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
12768         * target.def (libfunc_gnu_prefix): New hook.
12769         * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
12770         (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
12771         * doc/tm.texi: Regenerate.
12772         * system.h (LIBGCC2_GNU_PREFIX): Poison.
12773         * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
12774         account.
12775         (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
12776         (init_optabs): Likewise for the bswap libfuncs.
12777         * tree.c (build_common_builtin_nodes): Likewise for complex multiply
12778         and divide.
12779         * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
12780         * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
12781         * libgcc-std.ver: Remove.
12782         * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
12783         * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
12784         libgcc-std.ver.
12785         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
12786         * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
12787         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
12788         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
12789         * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
12790         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
12791         * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
12792         * config/fixed-bit.h (FIXED_OP): Define differently depending on
12793         LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
12794         (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
12795
12796 2011-05-25  Jan Hubicka  <jh@suse.cz>
12797
12798         * lto-streamer-out.c (output_record_start): Use lto_output_enum
12799         (lto_output_tree): Use output_record_start.
12800         * lto-streamer-in.c (input_record_start): Use lto_input_enum
12801         (lto_get_pickled_tree): Use input_record_start.
12802         * lto-section-in.c (lto_section_overrun): Turn into fatal error.
12803         (lto_value_range_error): New function.
12804         * lto-streamer.h (lto_value_range_error): Declare.
12805         (lto_output_int_in_range, lto_input_int_in_range): New functions.
12806         (lto_output_enum, lto_input_enum): New macros.
12807
12808 2011-05-25  Eric Botcazou  <ebotcazou@adacore.com>
12809
12810         * common.opt (flag_stack_usage_info): New variable.
12811         (-Wstack-usage): New option.
12812         * doc/invoke.texi (Warning options): Document -Wstack-usage.
12813         * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
12814         <OPT_fstack_usage>: Likewise.
12815         * toplev.c (output_stack_usage): Handle -Wstack-usage.
12816         * calls.c (expand_call): Test flag_stack_usage_info variable instead
12817         of flag_stack_usage.
12818         (emit_library_call_value_1): Likewise.
12819         * explow.c (allocate_dynamic_stack_space): Likewise.
12820         * function.c (instantiate_virtual_regs ): Likewise.
12821         (prepare_function_start): Likewise.
12822         (rest_of_handle_thread_prologue_and_epilogue): Likewise.
12823         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
12824         * config/arm/arm.c (arm_expand_prologue): Likewise.
12825         (thumb1_expand_prologue): Likewise.
12826         * config/avr/avr.c (expand_prologue): Likewise.
12827         * config/i386/i386.c (ix86_expand_prologue): Likewise.
12828         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
12829         * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
12830         * config/mips/mips.c (mips_expand_prologue): Likewise.
12831         * config/pa/pa.c (hppa_expand_prologue): Likewise.
12832         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
12833         * config/s390/s390.c (s390_emit_prologue): Likewise.
12834         * config/sh/sh.c (sh_expand_prologue): Likewise.
12835         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
12836         * config/spu/spu.c (spu_expand_prologue): Likewise.
12837
12838 2011-05-25  Richard Guenther  <rguenther@suse.de>
12839
12840         * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
12841         (gimple_canonical_types_compatible_p): Likewise.
12842
12843 2011-05-25  Jan Hubicka  <jh@suse.cz>
12844
12845         PR middle-end/49062
12846         * ipa.c (function_and_variable_visibility): Only add to same
12847         comdat group list if DECL_ONE_ONLY.
12848
12849 2011-05-25  Andrey Belevantsev  <abel@ispras.ru>
12850
12851         PR rtl-optimization/49014
12852         * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
12853
12854 2011-05-25  Jakub Jelinek  <jakub@redhat.com>
12855
12856         PR target/49128
12857         * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
12858
12859 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
12860
12861         PR rtl-optimization/48757
12862         * ira-build.c (loop_with_eh_edge_p): Rename to
12863         loop_with_complex_edge_p, check edges on complexity, make function
12864         conditional.
12865         (mark_loops_for_removal): Make call of loop_with_complex_edge_p
12866         conditional.
12867
12868 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
12869
12870         * config/sparc/sparc.c (sparc_option_override): If not set by the user,
12871         force flag_ira_share_save_slots to 0.
12872
12873 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
12874
12875         * var-tracking.c (compute_cfa_pointer): Adjust head comment.
12876         (vt_initialize): Set PROLOGUE_BB unconditionally.
12877         Add block comment about CFA_BASE_RTX machinery.
12878         Reset FP_CFA_OFFSET to -1 on all invalid paths.
12879         Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
12880
12881 2011-05-24  Nicola Pero  <nicola.pero@meta-innovation.com>
12882
12883         PR objc/48187
12884         * c-parser.c (c_parser_objc_class_instance_variables): More robust
12885         parsing of syntax error in ObjC instance variable lists.  In
12886         particular, avoid an infinite loop if there is a stray ']'.
12887         Updated error message.
12888
12889 2011-05-24  Ian Lance Taylor  <iant@google.com>
12890
12891         * godump.c (go_define): Don't accept a string immediately after
12892         another operand.
12893
12894 2011-05-24  Ian Lance Taylor  <iant@google.com>
12895
12896         * godump.c (struct godump_container): Add invalid_hash field.
12897         (go_format_type): Return false if type is found in invalid_hash.
12898         (go_output_typedef): Add invalid type to invalid_hash.
12899         (go_finish): Create and delete invalid_hash.
12900
12901 2011-05-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12902
12903         PR tree-optimization/46728
12904         * tree-ssa-math-opts.c (powi_table): New.
12905         (powi_lookup_cost): New.
12906         (powi_cost): New.
12907         (powi_as_mults_1): New.
12908         (powi_as_mults): New.
12909         (gimple_expand_builtin_powi): New.
12910         (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
12911         (gate_cse_sincos): Remove sincos/cexp restriction.
12912
12913 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12914
12915         PR target/3746
12916         * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
12917         mips-tdump native.
12918         * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
12919         * mips-tdump.c: Likewise.
12920
12921 2011-05-24  H.J. Lu  <hongjiu.lu@intel.com>
12922
12923         PR target/49128
12924         * config/i386/driver-i386.c (host_detect_local_cpu): Always
12925         add -mno-XXX.  Handle FMA.
12926
12927 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
12928
12929         PR rtl-optimization/48633
12930         * ira-build.c (loop_with_eh_edge_p): New function.
12931         (mark_loops_for_removal): Use it.
12932
12933 2011-05-24  Vladimir Makarov  <vmakarov@redhat.com>
12934
12935         PR rtl-optimization/48971
12936         * ira.c (setup_pressure_classes): Don't check register move cost
12937         for classes with one registers.  Don't add pressure class if there
12938         is a pressure class with the same available hard registers.
12939         Check contains_reg_of_mode.  Fix a typo in collecting
12940         temp_hard_regset.  Ignore hard registers not belonging to a class.
12941
12942 2011-05-24  Uros Bizjak  <ubizjak@gmail.com>
12943
12944         PR target/49133
12945         * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
12946
12947 2011-05-24  Eric Botcazou  <ebotcazou@adacore.com>
12948             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12949
12950         PR gcov-profile/48845
12951         * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
12952
12953 2011-05-24  Richard Guenther  <rguenther@suse.de>
12954
12955         * gimple.c (compare_type_names_p): Remove for_completion_p arg.
12956         (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
12957         (gimple_types_compatible_p_1): Adjust.
12958         (iterative_hash_canonical_type): Do not bother about complete vs.
12959         incomplete types.
12960         (gimple_canonical_types_compatible_p): Likewise.
12961
12962 2011-05-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12963
12964         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
12965
12966 2011-05-24  Richard Guenther  <rguenther@suse.de>
12967
12968         PR bootstrap/49078
12969         * gimple.c (gimple_register_canonical_type): Revert
12970         previous change.
12971         * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
12972         does not for a tree for the case where it matters.  Cache
12973         pointer-type alias-sets.
12974
12975 2011-05-24  Joseph Myers  <joseph@codesourcery.com>
12976
12977         * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
12978         (OBJS): Remove options.o, opts-common.o and prefix.o.
12979         (OBJS-libcommon-target): New.
12980         (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
12981         (BACKEND): Include libcommon-target.a.
12982         (MOSTLYCLEANFILES): Include libcommon-target.a.
12983         (libcommon-target.a): New.
12984         (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
12985         prefix.o.
12986
12987 2011-05-23  Joseph Myers  <joseph@codesourcery.com>
12988
12989         * optc-save-gen.awk: New.  Based on optc-gen.awk.  Don't generate
12990         parts of output shared with the driver.
12991         * optc-gen.awk: Don't generate parts of output not shared with the
12992         driver.
12993         * opth-gen.awk: Remove GCC_DRIVER conditionals.
12994         * doc/options.texi (SourcerInclude): Mention options-save.c.
12995         * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
12996         (OBJS): Add options-save.o.
12997         (options-save.c, options-save.o): New.
12998         (options.o): Update dependencies.
12999         (gcc-options.o): Remove.
13000         (mostlyclean): Remove options-save.c.
13001
13002 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
13003
13004         PR debug/49032
13005         * dbxout.c: Include cgraph.h.
13006         (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
13007         and without value expr, return NULL if no varpool node exists for
13008         it or if it is not needed.
13009         * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
13010
13011         PR c/49120
13012         * c-decl.c (start_decl): Convert expr to void_type_node.
13013
13014 2011-05-23  Richard Sandiford  <rdsandiford@googlemail.com>
13015
13016         PR rtl-optimization/48826
13017         * emit-rtl.c (try_split): When splitting a call that is followed
13018         by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
13019
13020 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
13021
13022         * cfgexpand.c (expand_debug_expr): For unused non-addressable
13023         parameters passed in memory prefer using DECL_INCOMING_RTL over
13024         the pseudos it will be copied into.
13025
13026 2011-05-23  H.J. Lu  <hongjiu.lu@intel.com>
13027
13028         PR target/47315
13029         * config/i386/i386.c (ix86_option_override_internal): Save the
13030         initial options after checking vzeroupper.
13031
13032 2011-05-23  David Li  <davidxl@google.com>
13033
13034         PR tree-optimization/48988
13035         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
13036         Initialize has_valid_pred for each pred chain.
13037
13038 2011-05-23  Richard Guenther  <rguenther@suse.de>
13039
13040         * gimple.c (gimple_types_compatible_p_1): Always compare type names.
13041         (iterative_hash_gimple_type): Always hash type names.
13042
13043 2011-05-23  Nathan Froyd  <froydnj@codesourcery.com>
13044
13045         * c-typeck.c (build_function_call_vec): Tweak call to
13046         check_function_arguments.
13047
13048 2011-05-23  Richard Guenther  <rguenther@suse.de>
13049
13050         PR tree-optimization/49115
13051         * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
13052         is not necessarily carried out, do not claim it kills the ref.
13053         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
13054
13055 2011-05-23  Richard Guenther  <rguenther@suse.de>
13056
13057         PR middle-end/15419
13058         * builtins.c (fold_builtin_memory_op): Be less restrictive about
13059         what pointer types we accept for folding.
13060
13061 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13062
13063         * gthr-gnat.c: Remove.
13064         * gthr-gnat.h: Remove.
13065         * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
13066         * config/t-freebsd (LIB2ADDEH): Likewise.
13067         * config/t-linux (LIB2ADDEH): Likewise.
13068         * config/t-sol2 (LIB2ADDEH): Likewise.
13069         * config/ia64/t-vms (LIB2ADDEH): Likewise.
13070         * configure.ac (target_thread_file): Remove gnat handling.
13071         * configure: Regenerate.
13072         * doc/install.texi (Configuration, --enable-threads): Remove gnat.
13073
13074 2011-05-23  Tristan Gingold  <gingold@adacore.com>
13075             Eric Botcazou  <ebotcazou@adacore.com>
13076
13077         * gcov.c (create_file_names): If no object directory is specified,
13078         keep the directory of the file.
13079
13080 2011-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13081
13082         * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
13083         * configure: Regenerate.
13084
13085 2011-05-23  Jakub Jelinek  <jakub@redhat.com>
13086
13087         PR middle-end/48973
13088         * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
13089         failed and the comparison has a single bit signed type, use
13090         constm1_rtx instead of const1_rtx for true value.
13091         (do_store_flag): If ops->type is single bit signed type, disable
13092         signel bit test optimization and pass -1 instead of 1 as last
13093         parameter to emit_store_flag_force.
13094
13095 2011-05-23  Tom de Vries  <tom@codesourcery.com>
13096
13097         PR target/45098
13098         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
13099         function.
13100         (infer_loop_bounds_from_undefined): Use new function.
13101
13102 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
13103
13104         * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
13105         (ASM_SPEC): Add a -O* option here.  Pass -O0 for -noasmopt,
13106         -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
13107         and -O0 otherwise.
13108         (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
13109
13110 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
13111
13112         * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
13113         (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
13114         returns true.
13115
13116 2011-05-22  Richard Sandiford  <rdsandiford@googlemail.com>
13117
13118         * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
13119
13120 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
13121
13122         * config/sparc/sparc.c (sparc_delegitimize_address): Handle
13123         UNSPEC_MOVE_PIC pattern.
13124
13125 2011-05-22  Eric Botcazou  <ebotcazou@adacore.com>
13126
13127         * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
13128         (sparc-*-rtems*): Likewise.
13129         (sparc64-*-elf*): Likewise.
13130         (sparc64-*-rtems*): Likewise.
13131         (sparc*-*-solaris2*): Likewise.  Remove crti.o crtn.o extra parts.
13132         * config/sparc/t-crtin: New file.
13133         * config/sparc/t-sol2 (crti.o): Delete rule.
13134         (crtn.o): Likewise.
13135         * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
13136         * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
13137         * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
13138         (ENDFILE_SPEC): Add crtn.o.
13139
13140 2011-05-22  Tom de Vries  <tom@codesourcery.com>
13141
13142         PR middle-end/48689
13143         * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
13144         CODE_CONTAINS_STRUCT (TS_COMMON).
13145
13146 2011-05-22  Jakub Jelinek  <jakub@redhat.com>
13147
13148         PR middle-end/49029
13149         * expmed.c (extract_fixed_bit_field): Test whether target can be used
13150         only after deciding which mode to use.
13151
13152 2011-05-22  Tom de Vries  <tom@codesourcery.com>
13153
13154         PR target/45098
13155         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
13156         for call to get_shiftadd_cost.
13157
13158 2011-05-22  Uros Bizjak  <ubizjak@gmail.com>
13159
13160         PR target/49104
13161         * config/i386/cpuid.h (bit_MMXEXT): New define.
13162
13163 2011-05-22  Nick Clifton  <nickc@redhat.com>
13164
13165         * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
13166         initialisation of non-existant args[2] element.  Use args[] array
13167         not arg[] array to pass arguments to build_function_type_list.
13168
13169 2011-05-22  Ira Rosen  <ira.rosen@linaro.org>
13170
13171         PR tree-optimization/49087
13172         * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
13173
13174 2011-05-21  Jason Merrill  <jason@redhat.com>
13175
13176         PR c++/49092
13177         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
13178         static storage duration.
13179
13180 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
13181
13182         * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
13183         frame pointer.
13184
13185 2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
13186
13187         * config/sparc/sparc.c (eligible_for_return_delay): Do not return
13188         false if there are call-saved registers here...
13189         (sparc_can_use_return_insn_p): ...but here instead.
13190         (save_or_restore_regs): Fix thinko.
13191         (sparc_expand_prologue): Use current_function_is_leaf.
13192         (sparc_frame_pointer_required): Likewise.
13193
13194 2011-05-21  Nick Clifton  <nickc@redhat.com>
13195
13196         PR target/49098
13197         * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
13198
13199 2011-05-21  Nicola Pero  <nicola.pero@meta-innovation.com>
13200
13201         * gengtype.c (walk_type): Implemented "atomic" GTY option.
13202         * doc/gty.texi (GTY Options): Document "atomic" GTY option.
13203
13204 2011-05-21  Joseph Myers  <joseph@codesourcery.com>
13205
13206         * opt-read.awk: New.  Split out of optc-gen.awk and opth-gen.awk.
13207         * optc-gen.awk: Move common code to opt-read.awk.
13208         * opth-gen.awk: Likewise.
13209         * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
13210
13211 2011-05-20  Nathan Froyd  <froydnj@codesourcery.com>
13212
13213         * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
13214
13215 2011-05-20  Tom de Vries  <tom@codesourcery.com>
13216
13217         PR target/45098
13218         * tree-ssa-loop-ivopts.c: Include expmed.h.
13219         (get_shiftadd_cost): New function.
13220         (force_expr_to_var_cost): Declare forward.  Use get_shiftadd_cost.
13221
13222 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
13223
13224         PR bootstrap/49086
13225         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
13226         for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
13227
13228 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
13229
13230         * Makefile.in: Update comment referring to $(OBJS-common).
13231
13232 2011-05-20  Ian Lance Taylor  <iant@google.com>
13233
13234         * godump.c (go_output_typedef): Put enum constants in the macro
13235         hash table to avoid duplicate Go const definitions.
13236
13237 2011-05-20  Joseph Myers  <joseph@codesourcery.com>
13238
13239         * Makefile.in (LIBDEPS): Add libcommon.a.
13240         (LIBS): Likewise.
13241         (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
13242         (OBJS-common): Remove diagnostic.o, input.o, intl.o,
13243         pretty-print.o and version.o.
13244         (OBJS-libcommon): New.
13245         (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
13246         (BACKEND): Add libcommon.a.
13247         (MOSTLYCLEANFILES): Likewise.
13248         (libcommon.a): New.
13249         (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
13250         (cpp$(exeext)): Likewise.
13251         (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
13252         pretty-print.o and input.o.
13253         (lto-wrapper$(exeext)): Don't explicitly use intl.o.
13254         (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
13255         (errors.o): Remove.
13256         (mips-tfile): Don't explicitly use version.o.
13257         (mips-tdump): Likewise.
13258         (gcov.o): Depend on $(DIAGNOSTIC_H).
13259         (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
13260         (GCOV_OBJS): Remove intl.o, version.o and errors.o.
13261         (GCOV_DUMP_OBJS): Remove version.o and errors.o.
13262         * gcov-dump.c: Include intl.h and diagnostic.h.
13263         (main): Initialize diagnostics.
13264         * gcov.c: Include diagnostic.h.
13265         (fnotice): Remove.
13266         (main): Initialize diagnostics.
13267         * lto-wrapper.c: Include diagnostic.h.
13268         (main): Initialize diagnostics.
13269
13270 2011-05-20  Michael Matz  <matz@suse.de>
13271
13272         * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
13273
13274 2011-05-20  Michael Matz  <matz@suse.de>
13275             Richard Guenther  <rguenther@suse.de>
13276
13277         * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
13278         use lto_streamer_cache_append directly instead of returning a VEC.
13279         (preload_common_node): Remove.
13280         (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
13281         track seen nodes.
13282         (lto_streamer_cache_create): Call lto_preload_common_nodes.
13283
13284 2011-05-20  Richard Guenther  <rguenther@suse.de>
13285
13286         PR tree-optimization/49079
13287         * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
13288         MEM_REFs correctly for the trailing array access detection.
13289         Special case constants the same way as decls for overall size
13290         constraining.
13291
13292 2011-05-20  Uros Bizjak  <ubizjak@gmail.com>
13293
13294         * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
13295         argument expansion.
13296
13297 2011-05-20  Jakub Jelinek  <jakub@redhat.com>
13298
13299         PR tree-optimization/49073
13300         * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
13301         PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
13302         * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
13303
13304 2011-05-20  Richard Guenther  <rguenther@suse.de>
13305
13306         PR middle-end/48849
13307         * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
13308         of pointer types the same way the middle-end does.
13309
13310 2011-05-20  Richard Guenther  <rguenther@suse.de>
13311
13312         * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
13313         or pointer-to chains.  Delay all fixup to uniquify_nodes.
13314
13315 2011-05-19  Quentin Neill  <quentin.neill@amd.com>
13316
13317         * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
13318         (fma4_fmaddsub): Likewise
13319
13320 2011-05-19  Jan Hubicka  <jh@suse.cz>
13321
13322         * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
13323         (GIMPLE_TYPE_PAIR_SIZE): New macro.
13324         (type_pair_cache): New static var.
13325         (lookup_type_pair): Use fixed sized custom hash; make inline.
13326         (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
13327         calls of lookup_type_pair.
13328         (print_gimple_types_stats): Remove cache stats.
13329         (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
13330         and gtc_ob.
13331
13332 2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
13333
13334         * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
13335         when TARGET_RDRND is active.
13336         (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
13337         Generate dummy SImode target register when target is NULL.
13338
13339 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
13340
13341         * config/arm/arm-fpus.def: New.
13342         * config/arm/genopt.sh: Generate Enum and EnumValue entries from
13343         arm-fpus.def.
13344         * config/arm/arm-tables.opt: Regenerate.
13345         * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
13346         (arm_option_override): Don't decode FPU name to string here.
13347         * config/arm/arm.opt (mfpu=): Use Enum.
13348         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
13349         Update dependencies.
13350
13351 2011-05-19  Joseph Myers  <joseph@codesourcery.com>
13352
13353         * collect2.c: Include diagnostic.h.
13354         (fatal_perror, fatal, error, fancy_abort): Remove.
13355         (main): Set progname.  Call xmalloc_set_program_name and
13356         diagnostic_initialize.
13357         (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
13358         scan_libraries, resolve_lib_name): Call fatal_error instead of
13359         fatal and fatal_perror.
13360         * collect2.h (error, fatal, fatal_perror): Don't declare.
13361         * tlink.c: Include diagnostic-core.h.
13362         (recompile_files): Call fatal_error instead of fatal_perror.
13363         * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
13364         pretty-print.o and input.o.
13365         (collect2.o, tlink.o): Update dependencies.
13366
13367 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13368
13369         * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
13370
13371 2011-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13372
13373         PR target/40483
13374         * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
13375         COMDAT group syntax, both SPARC and x86 variants.
13376         (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
13377         * configure: Regenerate.
13378         * config/sol2.h (TARGET_SOLARIS): Define.
13379         (PUSHSECTION_FORMAT): Remove.
13380         (SECTION_NAME_FORMAT): Define.
13381         * config/sol2.c: Include hashtab.h.
13382         (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
13383         expansion, using SECTION_NAME_FORMAT.
13384         (solaris_comdat_htab): New variable.
13385         (struct comdat_entry): Define.
13386         (comdat_hash): New function.
13387         (comdat_eq): New function.
13388         (solaris_elf_asm_comdat_section): New function.
13389         (solaris_define_comdat_signature): New function.
13390         (solaris_code_end): New function.
13391         * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
13392         (solaris_code_end): Declare.
13393         * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
13394         * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
13395         solaris_code_end.
13396         (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
13397         Remove ATTRIBUTE_UNUSED.
13398         [!USE_GAS]: Call solaris_elf_asm_comdat_section for
13399         SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
13400         * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
13401         * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
13402         * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
13403         * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
13404         (PUSHSECTION_FORMAT): Remove.
13405         (SECTION_NAME_FORMAT): Redefine.
13406
13407 2011-05-19  Kai Tietz  <ktietz@redhat.com>
13408
13409         * tree-cfg.c (verify_gimple_assign_binary): Barf on
13410         TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
13411         (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
13412
13413 2011-05-19  Anatoly Sokolov  <aesok@post.ru>
13414             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13415
13416         * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
13417
13418 2011-05-19  Richard Guenther  <rguenther@suse.de>
13419
13420         PR middle-end/48985
13421         * tree-object-size.c (addr_object_size): If the pointed-to
13422         variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
13423
13424 2011-05-19  Richard Guenther  <rguenther@suse.de>
13425
13426         * gimple.c (gimple_types_compatible_p_1): Compare names of
13427         the types themselves.
13428         (iterative_hash_gimple_type): And hash them that way.
13429         (gimple_register_type_1): If we register a main variant properly
13430         initialize the leader to ourselves.
13431
13432 2011-05-19  Tom de Vries  <tom@codesourcery.com>
13433
13434         PR target/45098
13435         * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
13436         get_loop_invariant_expr_id.
13437         (get_loop_invariant_expr_id): Use get_expr_id.
13438         (parm_decl_cost): New function.
13439         (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
13440         Improve bound cost estimation.  Use different inv_expr_id for elim and
13441         express cases.
13442
13443 2011-05-19  Tom de Vries  <tom@codesourcery.com>
13444
13445         PR target/45098
13446         * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
13447         cost_base.cost == 0.
13448
13449 2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
13450
13451         PR target/49002
13452         * config/i386/sse.md
13453         (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>): Properly handle
13454         load cast.
13455
13456 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
13457
13458         PR tree-optimization/49039
13459         * tree-vrp.c (extract_range_from_binary_expr): For
13460         MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
13461         return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
13462
13463 2011-05-18  Tom de Vries  <tom@codesourcery.com>
13464
13465         PR target/45098
13466         * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
13467
13468 2011-05-18  Uros Bizjak  <ubizjak@gmail.com>
13469
13470         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
13471         (*tls_global_dynamic_64): Ditto.
13472         (*tls_local_dynamic_base_32_gnu): Ditto.
13473         (*tls_local_dynamic_base_64): Ditto.
13474         (tls_initial_exec_64_sun): Ditto.
13475
13476 2011-05-18  Stuart Henderson  <shenders@gcc.gnu.org>
13477
13478         * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
13479         * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
13480         bf592-none.
13481         * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
13482         * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
13483         * config/bfin/bfin.c (bfin_cpus): Add bf592.
13484         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
13485         __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
13486         * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
13487         * config/bfin/elf.h (LIB_SPEC): Add bf592.
13488
13489 2011-05-18  Joseph Myers  <joseph@codesourcery.com>
13490
13491         * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
13492         arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
13493         * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
13494         target_thread_pointer, arm_structure_size_boundary, struct
13495         float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
13496         struct abi_name, arm_all_abis): Remove.
13497         (arm_option_override) Don't process most enumerated option values here.
13498         Don't process target_fpe_name here.  Work with integer not string for
13499         structure size boundary; use separate diagnostics for each case.
13500         * config/arm/arm.h (enum float_abi_type, enum
13501         arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
13502         to arm-opts.h.
13503         (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
13504         arm_structure_size_boundary): Remove.
13505         * config/arm/arm.opt (mabi=): Use Enum and Init.
13506         (arm_abi_type): New Enum and EnumValue entries.
13507         (mfloat-abi=): Use Enum and Init.
13508         (float_abi_type): New Enum and EnumValue entries.
13509         (mfp=, mfpe=): Replace by separate Alias entries for each argument.
13510         (mfp16-format=): Use Enum and Init.
13511         (arm_fp16_format_type): New Enum and EnumValue entries.
13512         (mstructure-size-boundary=): Use UInteger and Init.
13513         (mtp=): Use Enum and Init.
13514         (arm_tp_type): New Enum and EnumValue entries.
13515
13516 2011-05-18  Richard Guenther  <rguenther@suse.de>
13517
13518         PR tree-optimization/49018
13519         * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
13520         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
13521         gimple_has_side_effects.
13522
13523 2011-05-18  Richard Guenther  <rguenther@suse.de>
13524
13525         * gimple.c (gimple_register_type_1): New function, split out from ...
13526         (gimple_register_type): ... here.  Avoid infinite recursion.
13527
13528 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
13529
13530         PR tree-optimization/41881
13531         * tree-vectorizer.h (struct _loop_vec_info): Add new field
13532         reduction_chains along with a macro for its access.
13533         * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
13534         (destroy_loop_vec_info): Free reduction chains.
13535         (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
13536         (vect_is_slp_reduction): New function.
13537         (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
13538         (vect_create_epilog_for_reduction): Support SLP reduction chains.
13539         * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
13540         definition types for reduction chains.
13541         (vect_supported_load_permutation_p): Don't allow permutations for
13542         reduction chains.
13543         (vect_analyze_slp_instance): Support reduction chains.
13544         (vect_analyze_slp): Try to build SLP instance from reduction chains.
13545         (vect_get_constant_vectors):  Handle reduction chains.
13546         (vect_schedule_slp_instance): Mark the first statement of the
13547         reduction chain as reduction.
13548
13549 2011-05-18  Ira Rosen  <ira.rosen@linaro.org>
13550
13551         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
13552         names for group elements access.
13553         * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
13554         reduction chains as well.  Remove data reference and interleaving
13555         related words from the fields names.
13556         * tree-vect-loop.c (vect_transform_loop): Use new names for group
13557         elements access.
13558         * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
13559         vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
13560         vect_update_interleaving_chain, vect_same_range_drs,
13561         vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
13562         vect_verify_datarefs_alignment, vector_alignment_reachable_p,
13563         vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
13564         vect_analyze_group_access, vect_analyze_data_ref_access,
13565         vect_create_data_ref_ptr, vect_transform_strided_load,
13566         vect_record_strided_load_vectors): Likewise.
13567         * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
13568         vect_model_load_cost, vectorizable_store, vectorizable_load,
13569         vect_remove_stores, new_stmt_vec_info): Likewise.
13570         * tree-vect-slp.c (vect_build_slp_tree,
13571         vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
13572
13573 2011-05-18  Richard Guenther  <rguenther@suse.de>
13574
13575         PR middle-end/48989
13576         * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
13577         operand verification.
13578         (verify_gimple_assign_binary): Likewise.
13579         * tree-ssa.c (useless_type_conversion_p): Preserve conversions
13580         to non-1-precision BOOLEAN_TYPEs.
13581
13582 2011-05-18  Tom de Vries  <tom@codesourcery.com>
13583
13584         PR target/45098
13585         * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
13586
13587 2011-05-18  Jakub Jelinek  <jakub@redhat.com>
13588
13589         PR tree-optimization/49000
13590         * tree-ssa.c (execute_update_addresses_taken): Call
13591         maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
13592         be rewritten and decl has been marked for renaming, reset
13593         the debug stmt.
13594
13595 2011-05-17  Joseph Myers  <joseph@codesourcery.com>
13596
13597         * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
13598         enum_opts_set when testing if attributes have set -mfpmath=.
13599
13600 2011-05-17  Richard Sandiford  <rdsandiford@googlemail.com>
13601
13602         * config/mips/mips.c (mips_handle_option): Remove unused variable.
13603
13604 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
13605
13606         * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
13607         info->entry with 0
13608         * tree-inline.c (maybe_inline_call_in_expr):  Initialize
13609         id.transform_lang_insert_block with NULL.
13610
13611 2011-05-17  Uros Bizjak  <ubizjak@gmail.com>
13612
13613         * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
13614         (output_fp_compare): Change args 3 and 4 to bool.
13615         (ix86_expand_call): Change arg 6 to bool.
13616         (ix86_attr_length_immediate_default): Change arg 2 to bool.
13617         (ix86_attr_length_vex_default): Change arg 3 to bool.
13618         * config/i386/i386.md: Update all uses.
13619         * config/i386/i386.c: Ditto.
13620         (ix86_flags_dependent): Change return type to bool.
13621
13622 2011-05-17  Richard Guenther  <rguenther@suse.de>
13623
13624         * gimple.c (type_hash_pair_compare): Fix comparison.
13625
13626 2011-05-17  Richard Guenther  <rguenther@suse.de>
13627
13628         * gimple.c (iterative_hash_gimple_type): Simplify singleton
13629         case some more, fix final hash value of the non-singleton case.
13630
13631 2011-05-17  Richard Guenther  <rguenther@suse.de>
13632
13633         PR bootstrap/49013
13634         Revert
13635         2011-05-16  Richard Guenther  <rguenther@suse.de>
13636
13637         * gimple.c (gimple_types_compatible_p_1): Use names of the
13638         type itself, not its main variant.
13639         (iterative_hash_gimple_type): Likewise.
13640
13641 2011-05-17  Richard Guenther  <rguenther@suse.de>
13642
13643         * gimple.c (gimple_register_canonical_type): Use the main-variant
13644         leader for computing the canonical type.
13645
13646 2011-05-17  Nick Clifton  <nickc@redhat.com>
13647
13648         * config/rx/rx.c (rx_memory_move_cost): Include cost of register
13649         moves.
13650
13651         * config/rx/rx.md: Add peephole to remove redundant extensions
13652         after loads.
13653         (bitset_in_memory): Use rx_restricted_mem_operand.
13654         (bitinvert_in_memory): Likewise.
13655         (bitclr_in_memory): Likewise.
13656
13657 2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
13658             Nick Clifton  <nickc@redhat.com>
13659
13660         * config/rx/rx.md: Add peepholes to match a register move followed
13661         by a comparison of the moved register.  Replace these with an
13662         addition of zero that does both actions in one instruction.
13663
13664 2011-05-17  Jakub Jelinek  <jakub@redhat.com>
13665
13666         PR target/48986
13667         * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
13668         predicate to allow CONST_INT.
13669         (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
13670
13671 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
13672
13673         * opts-common.c (opt_enum_arg_to_value): New.
13674         * opts.h (opt_enum_arg_to_value): Declare.
13675         * config/i386/i386.opt (fpmath): Remove.
13676         (mfpmath=): Use Enum, Init and Save.
13677         (fpmath_unit): New Enum and EnumValue entries.
13678         * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
13679         name for function fpmath state.
13680         * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
13681         * config/i386/i386.c: Include diagnostic.h.
13682         (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
13683         (ix86_target_string): Take enum fpmath_unit value instead of string.
13684         (ix86_debug_options): Update call to ix86_target_string.
13685         (ix86_option_override_internal): Don't process fpmath strings here.
13686         (x86_function_specific_save, ix86_function_specific_restore):
13687         Don't handle fpmath state specially.
13688         (ix86_function_specific_print): Pass fpmath state to
13689         ix86_target_string instead of printing in this function.
13690         (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
13691         Handle enum attributes.
13692         (IX86_ATTR_ENUM, ix86_opt_enum): New.
13693         (ix86_valid_target_attribute_tree): Update option_strings
13694         handling.  Handle fpmath as enum option.
13695         (ix86_can_inline_p): Update field names for function fpmath state.
13696         (ix86_expand_builtin): Update call to ix86_target_string.
13697         * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
13698         (ix86_fpmath): Remove.
13699         * config/i386/t-i386 (i386.o): Update dependencies.
13700
13701 2011-05-16  Joseph Myers  <joseph@codesourcery.com>
13702
13703         PR preprocessor/48677
13704         * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
13705         from decoded_options[0], not from itself.
13706
13707 2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
13708
13709         * config/i386/constraints.md (z): New constraint.
13710         * config/i386/i386.c (c): New mode attribute.
13711         (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
13712         *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
13713         constraint for operand 0.
13714         (*call_vzeroupper): Ditto.
13715         (*call_rex64_ms_sysv): Ditto.  Use "rzm" constraint for operand 0.
13716         (*call_rex64_ms_sysv_vzeroupper): Ditto.
13717         (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
13718         Use "lzm" constraint for operand 0.
13719         (*call_pop_vzeroupper): Ditto.
13720         (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
13721         *sibcall_1_rex64 patterns using "P" mode iterator.  Use "Uz"
13722         constraint for operand 0.
13723         (*sibcall_vzeroupper): Ditto.
13724         (*sibcall_rex64_ms_sysv): Ditto.
13725         (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
13726         (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
13727         *sibcall_pop_1.  Use "Uz" constraint for operand 0.
13728         (*sibcall_pop_vzeroupper): Ditto.
13729         (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
13730         *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
13731         mode iterator.  Use "<c>zm" constraint for operand 1.
13732         (*call_value_vzeroupper): Ditto.
13733         (*call_value_rex64_ms_sysv): Ditto.  Use "rzm" constraint
13734         for operand 1.
13735         (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
13736         (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
13737         *call_value_pop_1.  Use "lzm" constraint for operand 1.
13738         (*call_value_pop_vzeroupper): Ditto.
13739         (*sibcall_value): Merge insn pattern from *sibcall_value_0,
13740         *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
13741         mode iterator.  Use "Uz" constraint for operand 1.
13742         (*sibcall_value_vzeroupper): Ditto.
13743         (*sibcall_value_rex64_ms_sysv): Ditto.
13744         (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
13745         (*sibcall_value_pop): Rename from *sibcall_pop_1.  Use "Uz"
13746         constraint for operand 1.
13747         (*sibcall_value_pop_vzeroupper): Ditto.
13748         (*tls_global_dynamic_64): Use constant_call_address_operand predicate
13749         and "z" constraint for operand 2.
13750         (*tls_global_dynamic_32_gnu): Ditto.
13751         (*tls_local_dynamic_base_32_gnu): Ditto.
13752         (*tls_local_dynamic_base_64): Ditto.
13753         (*tls_local_dynamic_32_once): Ditto.
13754         * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
13755         Update all callers.
13756         * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
13757
13758 2011-05-16  Richard Guenther  <rguenther@suse.de>
13759
13760         * gimple.c (gimple_types_compatible_p_1): Use names of the
13761         type itself, not its main variant.
13762         (iterative_hash_gimple_type): Likewise.
13763
13764 2011-05-16  Richard Guenther  <rguenther@suse.de>
13765
13766         * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
13767         always visit pointer target and function result and argument types.
13768
13769 2011-05-16  Jason Merrill  <jason@redhat.com>
13770
13771         PR c++/48999
13772         * tree-inline.c (copy_statement_list): Put back recursion.
13773
13774 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
13775
13776         PR target/27663
13777         PR target/41076
13778         * config/avr/predicates.md (const_8_16_24_operand): New predicate.
13779         * config/avr/avr.md ("*ior<mode>qi.byte0",
13780         "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
13781
13782 2011-05-16  Georg-Johann Lay  <avr@gjlay.de>
13783
13784         PR target/45099
13785         * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
13786         register is needed for a function argument.
13787
13788 2011-05-16  Richard Guenther  <rguenther@suse.de>
13789
13790         * gimple.c (struct type_hash_pair): New type.
13791         (type_hash_pair_compare): New function.
13792         (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
13793
13794 2011-05-16  Revital Eres  <revital.eres@linaro.org>
13795
13796         * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
13797
13798 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
13799
13800         * config/i386/i386.md (floating point move splitters): Fix
13801         usage of standard_80387_constant_p.
13802         * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
13803
13804 2011-05-15  Uros Bizjak  <ubizjak@gmail.com>
13805
13806         * config/i386/i386.md (*movdf_internal): Simplify insn condition.
13807
13808 2011-05-14  Eric Botcazou  <ebotcazou@adacore.com>
13809
13810         * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
13811         (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
13812         (tree_ssa_lim_finalize): Likewise.
13813
13814 2011-05-14  Uros Bizjak  <ubizjak@gmail.com>
13815
13816         * config/i386/constraint.md (Yd, Yx): New register constraints.
13817         * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger.  Use
13818         Yd conditional register constraint.
13819         (*movtf_internal): Use standard_sse_constant_opcode.
13820         (*movxf_internal): Merge with *movxf_internal_nointeger.  Use
13821         Yx conditional register constraint.
13822         (*movdf_internal): Merge with *movdf_internal_nointeger.  Use
13823         Yd conditional register constraint.  Use standard_sse_constant_p to
13824         check for valid SSE constants and call standard_sse_constant_opcode to
13825         output SSE insn.
13826         (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
13827         constants and call standard_sse_constant_opcode to output SSE insn.
13828         * config/i386/i386.c (ix86_option_ovverride_internal): Set
13829         TARGET_INTEGER_DFMODE_MOVES for 64bit targets.  Clear it when
13830         optimize_size is set.
13831         (standard_sse_constant_opcode): Output conditional AVX insn templates.
13832
13833 2011-05-14  Tobias Burnus  <burnus@net-b.de>
13834
13835         * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
13836
13837 2011-05-13  Martin Jambor  <mjambor@suse.cz>
13838
13839         * ipa-prop.c (ipa_cst_from_jfunc): New function.
13840         * ipa-prop.h (ipa_cst_from_jfunc): Declare.
13841         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
13842         (evaluate_conditions_for_ipcp_clone): Removed.
13843         (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
13844         * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
13845         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
13846
13847 2011-05-13  Eric Botcazou  <ebotcazou@adacore.com>
13848
13849         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
13850         * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
13851         lieu of MAY_HAVE_DEBUG_STMTS.
13852         * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
13853         debug statements if !MAY_HAVE_DEBUG_STMTS.
13854
13855 2011-05-13  Martin Thuresson  <martint@google.com>
13856
13857         PR gcov-profile/47793
13858         * libgcov.c (gcov_exit): Support relative profile paths.
13859         * doc/invoke.texi (-fprofile-dir): Update for above change.
13860
13861 2011-05-13  Richard Guenther  <rguenther@suse.de>
13862
13863         * gimple.c (gimple_canonical_types_compatible_p): Do not use
13864         type-pair caching, do not compare hashes.
13865
13866 2011-05-13  Nathan Froyd  <froydnj@codesourcery.com>
13867
13868         PR middle-end/48965
13869         * tree-cfg.c (edge_to_cases_cleanup): Return true.
13870         (verify_expr) [CASE_LABEL_EXPR]: Add checking.
13871
13872 2011-05-13  Kai Tietz  <ktietz@redhat.com>
13873
13874         * gimplify.c (gimplify_expr): Make sure operand is boolified.
13875         * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
13876         compatible type for TRUTH_NOT_EXPR.
13877
13878 2011-05-13  H.J. Lu  <hongjiu.lu@intel.com>
13879
13880         * config/i386/i386.c (ix86_save_reg): Change return type to bool.
13881         (ix86_hard_regno_mode_ok): Change return value to bool.  Use
13882         can_create_pseudo_p ().
13883
13884 2011-05-13  Richard Guenther  <rguenther@suse.de>
13885
13886         PR lto/48978
13887         * gimple.c (iterative_hash_gimple_type): Revert change in
13888         pointer target and function result and argument hashing.
13889
13890 2011-05-13  Uros Bizjak  <ubizjak@gmail.com>
13891
13892         * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
13893         (*movxf_internal_nointeger): Ditto.
13894         (*movdf_internal_rex64): Ditto.
13895         (*movdf_internal): Ditto.
13896         (*movdf_internal_nointeger): Ditto.
13897         (*movsf_internal): Ditto.
13898         (sincos splitters): Use can_create_pseudo ().
13899
13900 2011-05-13  Joseph Myers  <joseph@codesourcery.com>
13901
13902         * config/i386/i386-opts.h: New.
13903         * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
13904         ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
13905         ix86_section_threshold): Remove.
13906         (ix86_handle_option): Move MAX_CODE_ALIGN define here.  Handle
13907         OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
13908         OPT_mbranch_cost_.
13909         (ix86_option_override_internal): Don't decode strings for options
13910         other than -march=, -mtune= and -mfpmath=.  Don't allow for
13911         __attribute__ uses in remaining diagnostics for options with
13912         string arguments.  Don't check for integer arguments being negative.
13913         * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
13914         enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
13915         (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
13916         ix86_branch_cost, ix86_section_threshold): Remove.
13917         * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
13918         HeaderInclude.
13919         (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
13920         but not Var.
13921         (masm=): Use Enum and Init.
13922         (asm_dialect): New Enum and EnumValue entries.
13923         (mbranch-cost=): Use UInteger.
13924         (mlarge-data-threshold=): Use UInteger and Init.
13925         (mcmodel=): Use Enum and Init.
13926         (cmodel): New Enum and EnumValue entries.
13927         (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
13928         (mpreferred-stack-boundary=, mincoming-stack-boundary=,
13929         mregparm=): Use UInteger.
13930         (mstringop-strategy=): Use Enum and Init.
13931         (stringop_alg): New Enum and EnumValue entries.
13932         (mtls-dialect=): Use Enum and Init.
13933         (tls_dialect): New Enum and EnumValue entries.
13934         (mabi=): Use Enum and Init.
13935         (calling_abi): New Enum and EnumValue entries.
13936         (mveclibabi=): Use Enum and Init.
13937         (ix86_veclibabi): New Enum and EnumValue entries.
13938
13939 2011-05-13  Nick Clifton  <nickc@redhat.com>
13940
13941         * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
13942         * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
13943
13944 2011-05-13  Kai Tietz  <ktietz@redhat.com>
13945
13946         PR middle-end/48984
13947         * gimplify.c (gimplify_expr): Check for boolean_type_node instead
13948         for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
13949         (gimple_boolify): Check for cast for boolean_type_node instead for
13950         BOOLEAN_TYPE.
13951
13952 2011-05-13  Richard Guenther  <rguenther@suse.de>
13953
13954         PR tree-optimization/48172
13955         * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
13956         multiplying by number of iterations for equal step.
13957         (vect_create_cond_for_alias_checks): Likewise.
13958
13959 2011-05-13  Andreas Schwab  <schwab@redhat.com>
13960
13961         * configure.ac: Use AS_HELP_STRING throughout.
13962         * configure: Regenerate.
13963
13964 2011-05-12  H.J. Lu  <hongjiu.lu@intel.com>
13965
13966         * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
13967         (ix86_emit_restore_regs_using_mov): Likewise.
13968         (ix86_emit_restore_sse_regs_using_mov): Likewise.
13969
13970 2011-05-12  Anatoly Sokolov  <aesok@post.ru>
13971
13972         * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
13973         SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
13974         (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
13975         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
13976         RTX_OK_FOR_OLO10_P): ...here.
13977         (sparc_mode_dependent_address_p): Use symbolic_operand instead of
13978         SYMBOLIC_CONST.
13979
13980 2011-05-12  Kai Tietz  <ktietz@redhat.com>
13981
13982         * gimplify.c (gimple_boolify): Re-boolify expression
13983         arguments even if expression type is of kind BOOLEAN_TYPE.
13984         (gimplify_boolean_expr): Removed.
13985         (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
13986         and XOR. Additional take care that we keep expression's type.
13987         * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
13988         of TRUTH_AND|OR|XOR_EXPR.
13989
13990 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
13991
13992         PR tree-optimization/48975
13993         * tree-if-conv.c (combine_blocks): Call free_bb_predicate
13994         on all bbs here and free and clear ifc_bbs at the end.
13995
13996 2011-05-12  Richard Guenther  <rguenther@suse.de>
13997
13998         * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
13999         NULLPTR_TYPE similar to VOID_TYPE.  Defer type-leader lookup
14000         until after simple checks.
14001         (gimple_types_compatible_p): Likewise.
14002         (iterative_hash_gimple_type): Always hash pointer targets
14003         and function return and argument types.
14004         (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
14005         hash TYPE_ALIGN.  Do not hash TYPE_MIN/MAX_VALUE.
14006         (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
14007         handle NULLPTR_TYPE similar to VOID_TYPE.  Handle non-aggregates
14008         completely in the simple compare section.
14009         (gimple_register_canonical_type): Query the cache again after
14010         registering.
14011
14012 2011-05-12  Richard Guenther  <rguenther@suse.de>
14013
14014         PR tree-optimization/48172
14015         * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
14016         the number of iterations from the segment size calculation.
14017         (vect_create_cond_for_alias_checks): Adjust.
14018
14019 2011-05-12  Jakub Jelinek  <jakub@redhat.com>
14020
14021         PR debug/48967
14022         * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
14023         if validate_subreg fails.
14024
14025 2011-05-12  Hariharan Sandanagobalane  <hariharan@picochip.com>
14026
14027         * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
14028         accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
14029         early.
14030
14031 2011-05-12  DJ Delorie  <dj@redhat.com>
14032
14033         * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
14034         (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
14035         created builtin into rx_builtins array.
14036         (rx_builtin_decl): New function.
14037         (TARGET_BUITLIN_DECL): Define.  Include gt-rx.h.
14038
14039 2011-05-12  DJ Delorie  <dj@redhat.com>
14040             Nick Clifton  <nickc@redhat.com>
14041
14042         * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
14043         * config/rx/rx.c (CC_FLAG_FP): Fix comment.
14044         (rx_is_legitimate_address): Add pre-decrement and post-increment
14045         addressing in HImode and QImode.  Fix test for out of range
14046         REG+INT addressing.
14047         (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
14048         (rx_align_for_label): Test label before extracting its usage count.
14049         (rx_adjust_insn_lengths): Fix selection of insn codes.
14050         (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
14051
14052 2011-05-11  Jason Merrill  <jason@redhat.com>
14053
14054         * tree.c (type_hash_canon): Use struct tree_type_non_common.
14055
14056 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
14057
14058         * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
14059         reindent the subsequent block.
14060
14061 2011-05-11  Satoru Takabayashi  <satorux@google.com>
14062             Paul Pluzhnikov  <ppluzhnikov@google.com>
14063
14064         * doc/install.texi (Configuration): Document --with-linker-hash-style.
14065         * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
14066         * config.in: Add LINKER_HASH_STYLE.
14067         * configure.ac: Add --with-linker-hash-style.
14068         * configure: Regenerate.
14069
14070 2011-05-11  Richard Guenther  <rguenther@suse.de>
14071
14072         PR middle-end/48964
14073         * gimple.c (iterative_hash_canonical_type): Fix typo.
14074
14075 2011-05-11  Uros Bizjak  <ubizjak@gmail.com>
14076
14077         * config/i386/i386.c (legitimize_tls_address)
14078         <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
14079         expanders directly for TARGET_GNU2_TLS.  Determine pic and
14080         __tls_get_addr symbol reference here.  Update call to
14081         gen_tls_global_dynamic_{32,64} for added arguments.
14082         <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
14083         expanders directly for TARGET_GNU2_TLS.  Determine
14084         __tls_get_addr symbol reference here.  Update call to
14085         gen_tls_local_dynamic_base_{32,64} for added arguments.  Attach
14086         unique UNSPEC REG_EQUIV to libcall block.
14087         (ix86_tls_get_addr): Declare static.
14088         * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
14089         * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
14090         Do not determine pic and __tls_get_addr symbol reference here. Do not
14091         call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
14092         (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
14093         (tls_global_dynamic_64): Add operand 2.  Do not determine
14094         __tls_get_addr symbol reference here.  Do not call
14095         gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
14096         (tls_local_dynamic_base64): Ditto for operand 1.
14097
14098 2011-05-11  Eric Botcazou  <ebotcazou@adacore.com>
14099
14100         * function.c (expand_function_start): Initialize stack_check_probe_note
14101         only if the generic stack checking mechanism is used.
14102
14103 2011-05-11  Richard Guenther  <rguenther@suse.de>
14104
14105         PR tree-optimization/15256
14106         * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
14107         (A & B) | C, combine (A op CST1) op CST2.
14108         (tree_ssa_forward_propagate_single_use_vars): Only bother to
14109         visit assigns that have uses.
14110
14111 2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
14112
14113         * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
14114         * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
14115         (unpack_ts_type_common_value_fields): ...this.  Update comment.
14116         (unpack_value_fields): Adjust for renaming.
14117         (lto_input_ts_type_tree_pointers): Split into...
14118         (lto_input_ts_type_common_tree_pointer): ...this and...
14119         (lto_input_ts_type_non_common_tree_pointers): ...this.
14120         (lto_input_tree_pointers): Adjust for above split.
14121         * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
14122         (pack_ts_type_common_value_fields): ...this.  Update comment.
14123         (lto_output_ts_type_tree_pointers): Split into...
14124         (lto_output_ts_type_common_tree_pointers): ...this and...
14125         (lto_output_ts_type_non_common_tree_pointers): ...this.
14126         (lto_output_tree_pointers): Adjust for above split.
14127         * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
14128         TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
14129         * stor-layout.c (vector_type_mode): Adjust location of mode field.
14130         * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
14131         Define.
14132         (struct tree_type): Split into...
14133         (struct tree_type_common: ...this and...
14134         (struct tree_type_with_lang_specific): ...this and...
14135         (struct tree_type_non_common): ...this.  Adjust accessor macros
14136         accordingly.
14137         (TYPE_VALUES_RAW): Define.
14138         (union tree_node): Update for above changes.
14139         * tree.c (tree_node_structure_for_code) [tcc_type]: Return
14140         TS_TYPE_NON_COMMON.
14141         (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
14142         Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
14143         (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
14144         * treestructu.def (TS_TYPE): Remove.
14145         (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
14146         Define.
14147
14148 2011-05-11  Jakub Jelinek  <jakub@redhat.com>
14149
14150         PR debug/48159
14151         * tree-ssa.c (reset_debug_uses): New function.
14152         * tree-flow.h (reset_debug_uses): New prototype.
14153         * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
14154         * tree-loop-distribution.c (generate_loops_for_partition): Call
14155         reset_debug_uses on the stmts that will be removed.  Keep around
14156         all debug stmts, don't count them as bits in partition bitmap.
14157         (generate_builtin): Don't count debug stmts or labels as bits in
14158         partition bitmap.
14159
14160 2011-05-11  Richard Guenther  <rguenther@suse.de>
14161
14162         * gimple.c (gimple_type_hash_1): Merge with ...
14163         (gimple_type_hash): ... this.
14164         (gtc_visit): Remove mode parameter and simplify accordingly.
14165         (gimple_types_compatible_p_1): Likewise.
14166         (gimple_types_compatible_p): Likewise.
14167         (iterative_hash_gimple_type): Likewise.
14168         (visit): Likewise.
14169         (gimple_type_eq): Adjust.
14170
14171 2011-05-11  Revital Eres  <revital.eres@linaro.org>
14172
14173         * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
14174         enters the branch create an anti edge in the opposite direction
14175         to prevent the creation of reg-moves.
14176         * modulo-sched.c: Adjust comment to reflect the fact we are
14177         scheduling closing branch.
14178         (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
14179         (stage_count): New field in struct partial_schedule.
14180         (calculate_stage_count): New function.
14181         (normalize_sched_times): Rename to reset_sched_times and handle
14182         incrementing the sched time of the nodes by a constant value
14183         passed as parameter.
14184         (duplicate_insns_of_cycles): Skip closing branch.
14185         (sms_schedule_by_order): Schedule closing branch.
14186         (ps_insn_find_column): Handle closing branch.
14187         (sms_schedule): Call reset_sched_times and adjust the code to
14188         support scheduling of the closing branch.
14189         (ps_insert_empty_row): Update calls to normalize_sched_times
14190         and rotate_partial_schedule functions.
14191
14192 2011-05-11  Richard Guenther  <rguenther@suse.de>
14193
14194         PR middle-end/48953
14195         * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
14196
14197 2011-05-11  Joseph Myers  <joseph@codesourcery.com>
14198
14199         * opts.c (finish_options): Move warning settings from process_options.
14200         * toplev.c (process_options): Move warning settings to finish_options.
14201
14202 2011-05-11  Richard Guenther  <rguenther@suse.de>
14203
14204         PR tree-optimization/18041
14205         * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
14206         (simplify_bitwise_binary): ... this.  Handle operand conversions
14207         by applying them to the result instead.
14208         (tree_ssa_forward_propagate_single_use_vars): Adjust.  CSE tree code.
14209
14210 2011-05-11  Richard Guenther  <rguenther@suse.de>
14211
14212         * gimple.c (gimple_canonical_types_compatible_p): Split out
14213         from gimple_types_compatible_p and friends.  Do not recurse
14214         to pointed-to types.
14215         (gimple_canonical_type_eq): Use it.
14216         (iterative_hash_canonical_type): Split out from
14217         iterative_hash_gimple_type and friends.  Do not recurse
14218         to pointed-to types.
14219         (gimple_canonical_type_hash): Use it, allocate the hash here.
14220
14221 2011-05-11  Revital Eres  <revital.eres@linaro.org>
14222
14223         * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
14224         recognizing doloop.
14225
14226 2011-05-11  Revital Eres  <revital.eres@linaro.org>
14227
14228         * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
14229         instead of PREV_INSN.
14230
14231 2011-05-11  Revital Eres  <revital.eres@linaro.org>
14232
14233         * modulo-sched.c (sms_schedule): Support new form of doloop pattern
14234         * loop-doloop.c (doloop_condition_get): Likewise.
14235         * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
14236         (doloop_end): New.
14237         * config/arm/arm.md (*addsi3_compare0): Remove "*".
14238
14239 2011-05-10  Nathan Froyd  <froydnj@codesourcery.com>
14240
14241         * tree.def (CASE_LABEL_EXPR): Add an operand.
14242         * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
14243
14244 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
14245
14246         * c-decl.c (c_override_global_bindings_to_false): Remove.
14247         (global_bindings_p): Don't check
14248         c_override_global_bindings_to_false.
14249         * c-tree.h (c_override_global_bindings_to_false): Remove.
14250         * c-typeck.c (composite_type): Don't set
14251         c_override_global_bindings_to_false.
14252
14253 2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
14254
14255         PR target/48857, 48495
14256         * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
14257         (VSX_MODE): Ditto.
14258         (VSX_MOVE_MODE): Ditto.
14259         (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
14260         VSX vector types.  Add V2DImode.
14261         (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
14262         ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
14263         (MODES_TIEABLE_P): Ditto.
14264
14265         * config/rs6000/rs6000.c (rs6000_emit_move): Use
14266         ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
14267         VSX_VECTOR_MODE.
14268         (init_cumulative_args): Ditto.
14269         (rs6000_function_arg_boundary): Ditto.
14270         (rs6000_function_arg_advance_1): Ditto.
14271         (rs6000_function_arg): Ditto.
14272         (rs6000_function_ok_for_sibcall): Ditto.
14273         (emit_frame_save): Ditto.
14274         (rs6000_function_value): Ditto.
14275         (rs6000_libcall_value): Ditto.
14276
14277 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
14278
14279         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
14280         i386/darwin-lib.h to $libgcc_tm_file.
14281         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
14282
14283 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
14284
14285         * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
14286
14287 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
14288
14289         * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
14290         * config/rs6000/rs6000-tables.opt: New file (generated).
14291         * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
14292         rs6000/rs6000-tables.opt to extra_options.
14293         * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
14294         * config/rs6000/rs6000.c (rs6000_select): Remove.
14295         (processor_target_table): Move contents to rs6000-cpus.def.
14296         (darwin_rs6000_override_options): Check
14297         global_options_set.x_rs6000_cpu_index instead of
14298         rs6000_select[1].string.
14299         (rs6000_option_override_internal): Likewise.
14300         (rs6000_handle_option): Don't assert that global structures are in
14301         use.  Don't handle OPT_mcpu_ and OPT_mtune_ here.
14302         (rs6000_default_cpu): New variable.
14303         (rs6000_file_start): Set it instead of local default_cpu.  Check
14304         rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
14305         global_options_set.x_rs6000_tune_index instead of rs6000_select.
14306         (rs6000_darwin_file_start): Check rs6000_default_cpu and
14307         global_options_set.x_rs6000_cpu_index instead of rs6000_select.
14308         * config/rs6000/rs6000.h (struct rs6000_cpu_select,
14309         rs6000_select): Remove.
14310         * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
14311         Remove.
14312         (mcpu=, mtune=): Use Var, Init, Enum and Save.
14313         * config/rs6000/t-rs6000
14314         ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
14315         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
14316         global_options_set.x_rs6000_cpu_index instead of
14317         rs6000_select[1].string.
14318         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
14319         global_options_set.x_rs6000_cpu_index instead of
14320         rs6000_select[1].string.
14321
14322 2011-05-10  Joseph Myers  <joseph@codesourcery.com>
14323
14324         * config.gcc (libgcc_tm_file): Define instead of including files
14325         from ../../libgcc/config/ in tm_file.
14326         * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
14327         * configure: Regenerate.
14328         * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
14329         libgcc_tm.h, cs-libgcc_tm.h): New.
14330         (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
14331         (clean): Remove libgcc_tm.h.
14332         * config/arm/symbian.h (RENAME_LIBRARY): Remove.
14333         * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
14334         * system.h (DECLARE_LIBRARY_RENAMES): Poison.
14335
14336 2011-05-10  Georg-Johann Lay  <avr@gjlay.de>
14337
14338         PR target/48896
14339         * config/avr/avr.c (avr_ret_register): Return unsigned int
14340         instead of int.
14341         (avr_function_value): Mark fn_decl_or_type as unused, don't pass
14342         it to avr_libcall_value.
14343         avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
14344         expand_expr.
14345         (avr_expand_binop_builtin): Ditto.
14346         (avr_expand_unop_builtin): Ditto.
14347
14348 2011-05-10  DJ Delorie  <dj@redhat.com>
14349
14350         * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
14351         (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
14352         * config/rx/rx.c (rx_align_for_label): Add label and
14353         uses_threshold parameters.  Do not align when the label is not
14354         used enough.
14355         * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
14356
14357 2011-05-10  Richard Guenther  <rguenther@suse.de>
14358
14359         * tree-ssa-forwprop.c (combine_conversions): Pattern-match
14360         a series of conversions and apply foldings similar to what
14361         fold-const does.
14362         (tree_ssa_forward_propagate_single_use_vars): Call it.
14363
14364 2011-05-10  Jakub Jelinek  <jakub@redhat.com>
14365
14366         PR tree-optimization/48611
14367         PR tree-optimization/48794
14368         * tree-eh.c (remove_unreachable_handlers): Don't remove regions
14369         referenced from RESX or EH_DISPATCH arguments.
14370
14371         PR debug/48928
14372         * dfp.c (decimal_to_decnumber): Handle conversion from
14373         dconst{1,2,m1,half}.
14374
14375 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
14376
14377         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
14378         for !flag_prefer_avx128.
14379         (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
14380
14381 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
14382
14383         * fold-const.c (fold_range_test): Pass LOC to build_range_check.
14384         (fold_ternary_loc): Use expr_location_or.
14385
14386 2011-05-09  H.J. Lu  <hongjiu.lu@intel.com>
14387
14388         PR debug/48853
14389         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
14390         POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
14391         Pmode and mem_mode is not VOIDmode.
14392
14393 2011-05-09  Ville Voutilainen  <ville.voutilainen@gmail.com>
14394
14395         * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
14396         TYPE_QUAL_RESTRICT): Convert to enum.
14397
14398 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
14399
14400         * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
14401         (const_pow2_1_to_8_operand): Ditto.
14402         (const_pow2_1_to_128_operand): Ditto.
14403         (const_pow2_1_to_32768_operand): Ditto.
14404         * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
14405         const_pow2_1_to_8_operand for operand 3 predicate.  Use exact_log2
14406         in insn constraint to check integer value of operand 3.
14407         * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
14408
14409         (PINSR_MODE): New mode iterator.
14410         (sse2p4_1): New mode attribute.
14411         (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
14412         sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
14413         iterator.  Use const_int_operand instead of
14414         const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate.  Use
14415         exact_log2 in insn constraint to check integer value of operand 3.
14416
14417 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
14418
14419         * config/i386/sse.md (blendbits): Remove mode attribute.
14420         (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
14421         instead of const_0_to_<blendbits>_operand for operand 3 predicate.
14422         Check integer value of operand 3 in insn constraint.
14423
14424 2011-05-09  Richard Guenther  <rguenther@suse.de>
14425
14426         * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
14427         for diagnostics.
14428         (lto_symtab_merge): Likewise.  Do not register types here.
14429         (lto_symtab_merge_decls_2): Likewise.
14430         (lto_symtab_merge_decls_1): Likewise.
14431         * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
14432         * gimple.c (enum gtc_mode): Declare.
14433         (gimple_types_compatible_p): Make static.
14434
14435 2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14436
14437         * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
14438         temporary register to match Pmode.
14439
14440 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
14441
14442         * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
14443         and *vec_concatv4si_1_avx.
14444
14445 2011-05-09  Uros Bizjak  <ubizjak@gmail.com>
14446
14447         PR rtl-optimization/48927
14448         * ira-conflicts.c (commutative_constraint_p): Use
14449         recog_data.alternative_enabled_p to disable alternatives where
14450         "enabled" attribute is false.
14451         (get_dup_num): Ditto.
14452         * ira-lives.c (single_reg_class): Ditto.
14453         (ira_implicitly_set_insn_hard_regs): Ditto.
14454
14455 2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
14456
14457         * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
14458         (dataflow_set_preserve_mem_locs): Likewise.
14459
14460 2011-05-09  Philipp Thomas  <pth@suse.de>
14461
14462         * config/mep/mep.c (mep_validate_vliw): Syntax description
14463         should not be translated.
14464
14465 2011-05-09  Joseph Myers  <joseph@codesourcery.com>
14466
14467         * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
14468         * config/mips/mips-tables.opt: New file (generated).
14469         * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
14470         * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
14471         MIPS_ARCH_OPTION_NATIVE): Define.
14472         * config/mips/mips.c (mips_cpu_info_table): Move contents to
14473         mips-cpus.def.
14474         (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
14475         mips_parse_cpu): Remove.
14476         (mips_cpu_info_from_opt, mips_default_arch): New.
14477         (mips_handle_option): Don't assert that global structures are in
14478         use.  Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
14479         (mips_option_override): Use new variables and functions to set
14480         state of these options.  Use strcmp to check for individual CPU names.
14481         * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
14482         definition.
14483         * config/mips/mips.opt (march=): Use ToLower and Enum.
14484         (mips): Use ToLower, Enum and Var.
14485         (mtune=): Use ToLower and Enum.
14486         * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
14487
14488 2011-05-08  Jan Hubicka  <jh@suse.cz>
14489
14490         * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
14491         Arrange type pairs to be UID ordered.
14492         (gimple_lookup_type_leader): Make inline.
14493
14494 2011-05-09  Nick Clifton  <nickc@redhat.com>
14495
14496         PR target/48899
14497         * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
14498         PROCESSOR_DEFAULT.
14499
14500         PR target/48897
14501         * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
14502         variable 's'.
14503
14504 2011-05-08  Chung-Lin Tang  <cltang@codesourcery.com>
14505
14506         * combine.c (simplify_comparison): Abstract out parts into...
14507         (simplify_compare_const): ... new function.
14508         (try_combine): Generalize parallel arithmetic/compare combining
14509         to call simplify_compare_const() and CANONICALIZE_COMPARE().
14510
14511 2011-05-08  Jan Hubicka  <jh@suse.cz>
14512
14513         * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
14514         (cgraph_create_virtual_clone): Call hooks once virtual clone
14515         is finished.
14516         * cgraph.h (cgraph_clone_node): Update prototype.
14517         * ipa-cp.c (ipcp_estimate_growth): Use
14518         estimate_ipcp_clone_size_and_time.
14519         * ipa-inline-transform.c (clone_inlined_nodes): Update.
14520         * lto-cgraph.c (input_node): Update.
14521         * ipa-inline.c (recursive_inlining): Update.
14522         * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
14523         (evaluate_conditions_for_known_args): Break out from ...
14524         (evaluate_conditions_for_edge): ... here.
14525         (evaluate_conditions_for_ipcp_clone): New function.
14526         (inline_node_duplication_hook): Update clone summary based
14527         on parameter map.
14528         (estimate_callee_size_and_time): Rename to ...
14529         (estimate_node_size_and_time): take NODE instead of EDGE;
14530         take POSSIBLE_TRUTHS as argument.
14531         (estimate_callee_size_and_time): Update.
14532         (estimate_ipcp_clone_size_and_time): New function.
14533         (do_estimate_edge_time): Update.
14534
14535 2011-05-08  Richard Guenther  <rguenther@suse.de>
14536
14537         PR middle-end/48908
14538         PR middle-end/48905
14539         * expmed.c (expand_shift_1): Compute adjusted constant shift
14540         amount manually.
14541
14542 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
14543
14544         * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
14545
14546 2011-05-08  Eric Botcazou  <ebotcazou@adacore.com>
14547
14548         * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
14549
14550 2011-05-08  Jonathan Wakely  <jwakely.gcc@gmail.com>
14551
14552         * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
14553
14554 2011-05-07  Jan Hubicka  <jh@suse.cz>
14555
14556         * ipa-inline-transform.c (inline_call): Account when program size
14557         decreases.
14558         * ipa-inline.c (relative_time_benefit): New function.
14559         (edge_badness): Reorganize to be power 2 based; fix thinko when
14560         computing badness for negative growth; update comments to match
14561         reality; better dumps.
14562
14563 2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
14564
14565         * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
14566         type to bool and adjust comment.
14567         * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
14568         (fold_mathfn_compare): Remove calls to global_bindings_p.
14569         (fold_inf_compare): Likewise.
14570         * stor-layout.c (variable_size): Adjust call to global_bindings_p.
14571         * c-tree.h (global_bindings_p): Adjust prototype.
14572         * c-decl.c (global_bindings_p): Return bool and simplify.
14573
14574 2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
14575
14576         PR tree-optimization/48837
14577         * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
14578         when accumulator transformation is performed.
14579
14580 2011-05-06  Jan Hubicka  <jh@suse.cz>
14581
14582         * i386.h (ix86_tune_indices): Add
14583         X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
14584         (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
14585         * i386.c (initial_ix86_tune_features): Add
14586         X86_SOFTARE_PREFETCHING_BENEFICIAL.
14587         (software_prefetching_beneficial_p): Remove predicate.
14588         (ix86_option_override_internal): Use new macro.
14589
14590 2011-05-06  Jan Hubicka  <jh@suse.cz>
14591
14592         * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
14593
14594 2011-05-06  Jan Hubicka  <jh@suse.cz>
14595
14596         * cgraph.c (cgraph_add_thunk): Create real function node instead
14597         of alias node; finalize it and mark needed/reachale; arrange visibility
14598         to be right and add it into the corresponding same comdat group list.
14599         (dump_cgraph_node): Dump thunks.
14600         * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
14601         cgraph_function_with_gimple_body_p,
14602         cgraph_first_function_with_gimple_body,
14603         cgraph_next_function_with_gimple_body): New functions.
14604         (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
14605         New macros.
14606         * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
14607         (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
14608         * cgraphunit.c (cgraph_finalize_function): Only look into possible
14609         devirtualization when optimizing.
14610         (verify_cgraph_node): Verify thunks.
14611         (cgraph_analyze_function): Analyze thunks.
14612         (cgraph_mark_functions_to_output): Output thunks only in combination
14613         with function they are assigned to.
14614         (assemble_thunk): Turn thunk into non-thunk; don't try to turn
14615         alias into normal node.
14616         (assemble_thunks): New functoin.
14617         (cgraph_expand_function): Use it.
14618         * lto-cgraph.c (lto_output_node): Stream thunks.
14619         (input_overwrite_node): Stream in thunks.
14620         * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
14621         * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
14622         * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
14623         * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
14624         (inline_analyze_function): Do not care about thunk jump functions.
14625         (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
14626         * ipa-prop.c (ipa_prop_write_jump_functions): Use
14627         cgraph_function_with_gimple_body_p.
14628         * passes.c (do_per_function_toporder): Use
14629         cgraph_function_with_gimple_body_p.
14630         (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
14631         (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
14632         (function_called_by_processed_nodes_p): Likewise.
14633
14634 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
14635
14636         * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
14637         rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
14638         entries.
14639         (mabi=): Replace with separate entries for mabi=altivec,
14640         mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
14641         mabi=ieeelongdouble and mabi=ibmlongdouble.
14642         * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
14643         check for -mabi=spe without SPE ABI support here.
14644         (rs6000_handle_option): Replace OPT_mabi_ handling with
14645         OPT_mabi_altivec and OPT_mabi_spe handling.
14646
14647 2011-05-06  Cary Coutant  <ccoutant@google.com>
14648
14649         * dwarf2out.c (contains_subprogram_definition): New function.
14650         (should_move_die_to_comdat): Call it.
14651
14652 2011-05-06  Jeff Law  <law@redhat.com>
14653
14654         * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
14655         remove_ctrl_stmt_and_useless_edges.
14656         (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
14657         (fixup_template_block, thread_single_edge): Likewise.
14658         (mark_threaded_blocks): Use THREAD_TARGET.
14659
14660 2011-05-06  Alan Modra  <amodra@gmail.com>
14661
14662         PR target/48900
14663         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
14664         const0_rtx as the arg to the dummy __tls_get_addr libcall.
14665
14666 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
14667
14668         * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
14669         constraint modifier to "r".
14670
14671 2011-05-06  Joseph Myers  <joseph@codesourcery.com>
14672
14673         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
14674         fall through for OPT_mcmodel_.
14675
14676 2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14677
14678         * config/s390/s390.c (s390_asm_trampoline_template): Comment
14679         instruction sizes.
14680         (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
14681
14682 2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
14683
14684         PR target/47930
14685         * config/arm/arm.opt (marm): Document it.
14686         (mthumb): Reject negative variant.
14687
14688 2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
14689
14690         PR target/48898
14691         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
14692         Fix typo in "ccvt" variable name.
14693
14694 2011-05-06  Tristan Gingold  <gingold@adacore.com>
14695
14696         PR target/48895
14697         * config/vms/vms-ar.c (main): Remove cwd variable.
14698
14699 2011-05-06  Jakub Jelinek  <jakub@redhat.com>
14700
14701         PR debug/48902
14702         * var-tracking.c (prepare_call_arguments): Move else before #endif.
14703
14704 2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
14705
14706         * except.c (sjlj_emit_dispatch_table): Call build_case_label.
14707         * gimplify.c (gimplify_switch_expr): Likewise.
14708         * omp-low.c (expand_omp_sections): Likewise.
14709         * tree-eh.c (lower_try_finally_switch): Likewise.
14710         (lower_eh_dispatch): Likewise.
14711         * tree.h (build_case_label): Declare.
14712         * tree.c (build_case_label): Define.
14713
14714 2011-05-05  Jason Merrill  <jason@redhat.com>
14715
14716         PR c++/40975
14717         * tree-inline.c (copy_tree_r): Use copy_statement_list.
14718         (copy_statement_list): Don't recurse.
14719         * stor-layout.c (copy_self_referential_tree_r): Don't allow
14720         STATEMENT_LIST.
14721
14722 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
14723
14724         * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
14725         through from -mfpu= handling.
14726         * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
14727
14728 2011-05-05  Bernd Schmidt  <bernds@codesourcery.com>
14729
14730         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
14731         POST_MODIFY.
14732
14733 2011-05-05  Steve Ellcey  <sje@cup.hp.com>
14734
14735         * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
14736         for 11.31.
14737         (hppa[12]*-*-hpux11*): Ditto.
14738         (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
14739         * config/ia64/hpux-unix2003.h: New.
14740         * config/pa/pa-hpux1131.opt: New.
14741         * config/pa/pa-hpux1131.h: New.
14742         * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
14743         * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
14744         * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
14745
14746 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
14747
14748         PR debug/48853
14749         * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
14750         instead of mode as 3rd argument to recursive call.
14751         (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
14752         emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
14753         VOIDmode.
14754         (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
14755         don't give up if mode is Pmode and mem_mode is not VOIDmode.
14756         (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
14757         use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
14758
14759 2011-05-05  Julian Brown  <julian@codesourcery.com>
14760
14761         * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
14762         parenthesis in D-register case.
14763
14764 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
14765
14766         * opt-functions.awk (var_type_struct): Handle Enum options.
14767         * optc-gen.awk: Don't check range of variables of character type.
14768         * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
14769         rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
14770         rs6000_sdata_name, rs6000_explicit_options): Remove.
14771         (rs6000_option_override_internal): Check for -malign-power here.
14772         Use global_options_set instead of rs6000_explicit_options.
14773         (rs6000_parse_fpu_option): Remove.
14774         (rs6000_handle_option): Access variables via opts and opts_set
14775         pointers.  Use error_at and warning_at.  Add fall-through
14776         comments.  Don't handle OPT_mcmodel_, OPT_maix_struct_return,
14777         OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
14778         OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
14779         OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
14780         here.  Don't use rs6000_parse_fpu_option.
14781         * config/rs6000/rs6000.h (fpu_type): Remove declaration.
14782         * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
14783         rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
14784         (mrecip=): Use Var.
14785         (mspe): Use Var and Save.
14786         (mtraceback=): Use Enum and Var.
14787         (rs6000_traceback_type): New Enum and EnumValue entries.
14788         (mfloat-gprs=): Use Enum, Var and Save.
14789         (rs6000_float_gprs): New Enum and EnumValue entries.
14790         (mlong-double-): use Var and Save.
14791         (msched-costly-dep=, minsert-sched-nops=): Use Var.
14792         (malign-): Use Enum and Var.
14793         (rs6000_alignment_flags): New Enum and EnumValue entries.
14794         (mfpu=): Use Enum.
14795         (fpu_type_t): New Enum and EnumValue entries.
14796         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
14797         global_options_set instead of rs6000_explicit_options.
14798         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
14799         global_options_set instead of rs6000_explicit_options.
14800         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
14801         global_options_set instead of rs6000_explicit_options.
14802         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
14803         global_options_set instead of rs6000_explicit_options.
14804         * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
14805         global_options_set instead of rs6000_explicit_options.
14806         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
14807         global_options_set instead of rs6000_explicit_options.
14808         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
14809         definition.
14810         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
14811         global_options_set instead of rs6000_explicit_options.
14812         * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
14813         (rs6000_cmodel): New Enum and EnumValue entries.
14814         * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
14815         global_options_set instead of rs6000_explicit_options.
14816         * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
14817         (mtls-size=): Use Enum and Var.
14818         (rs6000_tls_size): New Enum and EnumValue entries.
14819
14820 2011-05-05  Michael Matz  <matz@suse.de>
14821
14822         * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
14823         * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
14824         * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
14825         * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
14826         * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
14827         * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
14828         * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
14829         * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
14830         * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
14831         * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
14832         * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
14833         * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
14834         * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
14835         * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
14836         * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
14837         * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
14838
14839 2011-05-05  Richard Guenther  <rguenther@suse.de>
14840
14841         * expmed.c (expand_variable_shift): Rename to ...
14842         (expand_shift_1): ... this.  Take an expanded shift amount.
14843         For rotates recurse directly not building trees for the shift amount.
14844         (expand_variable_shift): Wrap around expand_shift_1.
14845         (expand_shift): Adjust.
14846
14847 2011-05-05  Jakub Jelinek  <jakub@redhat.com>
14848
14849         * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
14850
14851 2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
14852
14853         * tree.h (get_pending_sizes): Remove prototype.
14854         (put_pending_size): Likewise.
14855         (put_pending_sizes): Likewise.
14856         * stor-layout.c (pending_sizes): Delete.
14857         (get_pending_sizes): Likewise.
14858         (put_pending_size): Likewise.
14859         (put_pending_sizes): Likewise.
14860         (variable_size): Do not call put_pending_size and tidy up.
14861         * function.h (struct function): Remove dont_save_pending_sizes_p.
14862         * lto-streamer-in.c (input_function): Do not stream it.
14863         * lto-streamer-out.c (output_function): Likewise.
14864         * tree-inline.c (initialize_cfun): Do not copy it.
14865         * c-decl.c (store_parm_decls): Do not set it.
14866         * omp-low.c (create_task_copyfn): Likewise.
14867         * tree-optimize.c (tree_rest_of_compilation): Likewise.
14868
14869 2011-05-05  Uros Bizjak  <ubizjak@gmail.com>
14870
14871         * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
14872         conditions.
14873         (*movdf_internal): Ditto.
14874         (*movdf_internal_nointeger): Ditto.
14875         (*movsf_internal): Ditto.
14876
14877 2011-05-05  Joseph Myers  <joseph@codesourcery.com>
14878
14879         * c-decl.c (finish_decl): Don't call get_pending_sizes.
14880         (grokparm): Add parameter expr.  Pass it to grokdeclarator.
14881         (push_parm_decl): Add parameter expr.  Pass it to grokdeclarator.
14882         (c_variable_size): Remove.
14883         (grokdeclarator): Use save_expr instead of c_variable_size.  Don't
14884         call put_pending_sizes.
14885         (get_parm_info): Add parameter expr.  Use it to set
14886         arg_info->pending_sizes.
14887         (store_parm_decls): Use arg_info->pending_sizes instead or calling
14888         get_pending_sizes.
14889         * c-parser.c (c_parser_parms_declarator): Update call to
14890         c_parser_parms_list_declarator.
14891         (c_parser_parms_list_declarator): Take parameter expr.  Update
14892         call to push_parm_decl.  Update recursive call.  Don't call
14893         get_pending_sizes.  Update calls to get_parm_info.
14894         (c_parser_objc_method_definition): Update calls to
14895         c_parser_objc_method_decl and objc_start_method_definition.
14896         (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
14897         (c_parser_objc_method_decl): Add parameter expr.  Update call to
14898         grokparm.
14899         (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
14900         * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
14901         (get_parm_info, grokparm, push_parm_decl): Update prototypes.
14902
14903 2011-05-05  Michael Hope  <michael.hope@linaro.org>
14904
14905         PR pch/45979
14906         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
14907         __ARM_EABI__ hosts.
14908
14909 2011-05-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14910
14911         * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
14912         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
14913         (spu_output_mi_thunk): New function.
14914
14915 2011-05-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14916
14917         * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
14918         targetm.asm_out.print_operand.
14919         * config/sol2.c: Include target.h.
14920
14921 2011-05-04  Jan Hubicka  <jh@suse.cz>
14922
14923         * ipa-inline.c (reset_edge_caches): New function.
14924         (update_caller_keys): Add check_inlinablity_for; do not
14925         reset edge caches; remove now unnecesary loop.
14926         (update_callee_keys): Add comments; reset node_growth_cache of callee.
14927         (update_all_callee_keys): Likewise.
14928         (inline_small_functions): Sanity check cache; update code
14929         recomputing it.
14930
14931 2011-05-04  Bernd Schmidt  <bernds@codesourcery.com>
14932
14933         PR rtl-optimization/47612
14934         * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
14935         as the last insn of the sequence to be moved.
14936
14937 2011-05-04  Tobias Burnus  <burnus@net-b.de>
14938
14939         PR fortran/48864
14940         * doc/invoke.texi (Ofast): Document that it
14941         enables Fortran's -fno-protect-parens.
14942
14943 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
14944
14945         * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
14946
14947 2011-05-04  Eric Botcazou  <ebotcazou@adacore.com>
14948
14949         * stor-layout.c (variable_size): Do not issue errors.
14950
14951 2011-05-04  Richard Guenther  <rguenther@suse.de>
14952
14953         * coverage.c (tree_coverage_counter_ref): Use integer_type_node
14954         for array-ref indices.
14955         (tree_coverage_counter_addr): Likewise.
14956         (build_fn_info_type): Use size_int for index types.
14957         (build_gcov_info): Likewise.
14958
14959 2011-05-04  Richard Guenther  <rguenther@suse.de>
14960
14961         * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
14962         to build_int_cst.
14963         * c-typeck.c (really_start_incremental_init): Use bitsize_int
14964         for constructor indices.
14965         (push_init_level): Likewise.
14966
14967 2011-05-04  Richard Guenther  <rguenther@suse.de>
14968
14969         * explow.c (promote_mode): Move variable declarations before code.
14970
14971 2011-05-04  Nathan Froyd  <froydnj@codesourcery.com>
14972
14973         * tree.h (build_function_type_array): Declare.
14974         (build_varargs_function_type_array): Declare.
14975         (build_function_type_vec, build_varargs_function_type_vec): Define.
14976         * tree.c (build_function_type_array_1): New function.
14977         (build_function_type_array): New function.
14978         (build_varargs_function_type_array): New function.
14979
14980 2011-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
14981
14982         * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
14983         before setting STMT_VINFO_TYPE.
14984
14985 2011-05-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
14986
14987         * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
14988         instead of spu_pass_by_reference.
14989
14990 2011-05-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
14991
14992         * calls.c (emit_library_call_value_1): Invoke
14993         promote_function_mode hook on libcall arguments.
14994         * explow.c (promote_function_mode, promote_mode): Handle TYPE
14995         argument being NULL.
14996         * targhooks.c (default_promote_function_mode): Lisewise.
14997         * config/s390/s390.c (s390_promote_function_mode): Likewise.
14998         * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
14999
15000         * doc/tm.texi: Document that TYPE argument might be NULL.
15001
15002 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
15003
15004         * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
15005
15006 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
15007
15008         From Bernd Schmidt
15009         * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
15010
15011 2011-05-04  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15012
15013         * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
15014         (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
15015         Move ...
15016         * mips-tfile.c: ... here.
15017         Don't include coretypes.h, tm.h, filenames.h.
15018         (saber_stop): Remove definition and all calls.
15019         [__SABER__]: Remove.
15020         (__LINE__): Remove default.
15021         (Size_t, Ptrdiff_t): Remove definitions.
15022         Replace by size_t, ptrdiff_t.
15023         [!MIPS_DEBUGGING_INFO]: Remove.
15024         (SHASH_SIZE, THASH_SIZE): Remove defaults.
15025         (progname): Add const.
15026         (STATIC): Remove.
15027         Replace all uses by static.
15028         (ALIGN_SYMTABLE_OFFSET): Remove default.
15029         * mips-tdump.c: Don't include coretypes.h, tm.h.
15030         Remove !MIPS_IS_STAB guard.
15031         * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
15032         $(TM_H), filenames.h dependencies.
15033         (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
15034
15035 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
15036
15037         From Jie Zhang
15038         *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
15039         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
15040
15041 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
15042
15043         From Bernd Schmidt
15044         * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
15045         account and save/restore RETS.
15046         (PROFILE_BEFORE_PROLOGUE): Define.
15047         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character.  Correct
15048         the push insn to use predecrement.
15049
15050 2011-05-04  Stuart Henderson  <shenders@gcc.gnu.org>
15051
15052         From Jie Zhang
15053         * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
15054
15055 2011-05-04  Nick Clifton  <nickc@redhat.com>
15056
15057         * config/mn10300/mn10300.c: Include cfgloop.h.
15058         (DUMP): New macro.
15059         (mn10300_insert_setlb_lcc): New function.  Inserts a SETLB and a
15060         Lcc or a FLcc insn into the instruction stream.
15061         (mn10300_block_contains_call): New function.  Returns true if the
15062         given basic block contains a CALL insn.
15063         (mn10300_loop_contains_call_insn): New function.  Returns true if
15064         the given loop contains a CALL insn.
15065         (mn10300_scan_for_setlb_lcc): New function.  Finds opportunities
15066         to use the SETLB and Lcc or FLcc insns.
15067         (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
15068         (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
15069         * config/mn10300/mn10300.opt (msetlb): New option.  Used to
15070         disable the SETLB optimization.
15071         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
15072         __SETLB__ or __NO_SETLB__.
15073         * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
15074         (movsf_internal): Handle MDR register.
15075         (cmpsi): Make visible.
15076         (setlb): New pattern.
15077         (Lcc): New pattern.
15078         (FLcc): New pattern.
15079
15080 2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
15081
15082         PR target/48860
15083         * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
15084         for reg<->xmm moves.
15085         * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
15086         (vec_concatv2di_rex64_sse): Ditto.
15087         (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
15088         (*vec_extractv2di_1_rex64): Ditto.
15089
15090         Revert:
15091         2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
15092
15093         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
15094         reg<->xmm moves.
15095         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
15096
15097 2011-05-04  Richard Guenther  <rguenther@suse.de>
15098
15099         * tree.h (int_const_binop): Remove notrunc argument.
15100         * fold-const.c (int_const_binop): Remove notrunc argument.  Always
15101         create integer constants that are properly truncated.
15102         (extract_muldiv_1): Expand one notrunc int_const_binop caller.
15103         (const_binop): Remove zero notrunc argument to int_const_binop.
15104         (size_binop_loc): Likewise.
15105         (fold_div_compare): Likewise.
15106         (maybe_canonicalize_comparison_1): Likewise.
15107         (fold_comparison): Likewise.
15108         (fold_binary_loc): Likewise.
15109         (multiple_of_p): Likewise.
15110         * expr.c (store_constructor): Likewise.
15111         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
15112         (maybe_fold_stmt_addition): Likewise.
15113         * ipa-prop.c (ipa_modify_call_arguments): Likewise.
15114         * stor-layout.c (layout_type): Likewise.
15115         * tree-data-ref.c (tree_fold_divides_p): Likewise.
15116         * tree-sra.c (build_ref_for_offset): Likewise.
15117         (build_user_friendly_ref_for_offset): Likewise.
15118         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
15119         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
15120         * tree-ssa-loop-niter.c (inverse): Likewise.
15121         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
15122         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
15123         * tree-switch-conversion.c (check_range): Likewise.
15124         (build_constructors): Likewise.
15125         * tree-vect-generic.c (expand_vector_piecewise): Likewise.
15126         * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
15127         (extract_range_from_assert): Likewise.
15128         (vrp_int_const_binop): Likewise.
15129         (extract_range_from_binary_expr): Likewise.
15130         (extract_range_from_unary_expr): Likewise.
15131         (check_array_ref): Likewise.
15132         (find_case_label_range): Likewise.
15133         (simplify_div_or_mod_using_ranges): Likewise.
15134         * tree-cfg.c (group_case_labels_stmt): Use double-ints for
15135         comparing case labels for merging.
15136
15137 2011-05-03  Mark Wielaard  <mjw@redhat.com>
15138
15139         * dwarf2out.c (debug_str_hash_forced): Removed.
15140         (gen_label_for_indirect_string): Removed.
15141         (get_debug_string_label): Removed.
15142         (AT_string_form): Generate label directly.
15143         (output_indirect_string): Test indirect_string_node for
15144         DW_FORM_strp instead of checking label and refcount.
15145         (prune_indirect_string): Removed.
15146         (prune_unused_types): Don't check debug_str_hash_forced or
15147         call prune_indirect_string.
15148
15149 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
15150
15151         PR other/48093
15152         * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
15153
15154 2011-05-04  Alexandre Oliva  <aoliva@redhat.com>
15155
15156         PR debug/47994
15157         PR debug/47919
15158         * combine.c (try_combine): Skip debug insns at m_split tests.
15159
15160 2011-04-26  Mark Wielaard  <mjw@redhat.com>
15161
15162         PR42288
15163         * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
15164         when info_section_emitted.
15165
15166 2011-05-03  Joseph Myers  <joseph@codesourcery.com>
15167
15168         * config/mips/mips-opts.h: New.
15169         * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
15170         to mips-opts.h.
15171         (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
15172         (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
15173         or OPT_mr10k_cache_barrier_ here.  Access mips_cache_flush_func
15174         via opts pointer.
15175         * config/mips/mips.h (enum mips_code_readable_setting): Move to
15176         mips-opts.h.
15177         (mips_abi, mips_code_readable): Don't declare.
15178         * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
15179         (mabi=): Use Enum and Var.
15180         (mips_abi): New Enum and EnumValue entries.
15181         (mcode-readable=): Use Enum and Var.
15182         (mips_code_readable_setting): New Enum and EnumValue entries.
15183         (mr10k-cache-barrier=): Use Enum and Var.
15184         (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
15185
15186 2011-05-03  Jan Hubicka  <jh@suse.cz>
15187
15188         * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
15189         replace hash by pointer map.
15190         (cgraph_node_set_element_def, cgraph_node_set_element,
15191         const_cgraph_node_set_element, varpool_node_set_element_def,
15192         varpool_node_set_element, const_varpool_node_set_element): Remove.
15193         (free_cgraph_node_set, free_varpool_node_set): New function.
15194         (cgraph_node_set_size, varpool_node_set_size): Use vector size.
15195         * tree-emutls.c: Free varpool node set.
15196         * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
15197         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
15198         debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
15199         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
15200         dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
15201         Move here from ipa.c; implement using pointer_map
15202         * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
15203         cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
15204         debug_cgraph_node_set, varpool_node_set_new,
15205         varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
15206         dump_varpool_node_set, debug_varpool_node_set):
15207         Move to ipa-uitls.c.
15208         * passes.c (ipa_write_summaries): Update.
15209
15210 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
15211
15212         From Mike Frysinger:
15213         * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
15214         bf542/bf544/bf547/bf548/bf549.
15215
15216 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
15217
15218         * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
15219
15220 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
15221
15222         From Bernd Schmidt:
15223         * config/bfin/bfin.md (MOVCC): New mode_macro.
15224         (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
15225         movsicc_insn1, movsicc_insn2 and movsicc and macroized.  Remove
15226         comments from generated assembly.
15227
15228 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
15229
15230         From Bernd Schmidt
15231         * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
15232         * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
15233         * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
15234         * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
15235         * config/bfin/lib1funcs.asm (___muldi3): New function.
15236
15237 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
15238
15239         * config/stormy16/stormy16 (xstormy16_init_builtins): Call
15240         build_function_type_list instead of build_function_type.
15241         Rearrange initialization of `args' to do so.
15242
15243 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
15244
15245         * config/i386/i386.c (ix86_code_end): Call build_function_type_list
15246         instead of build_function_type.
15247
15248 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
15249
15250         * config/rs6000/rs6000.c (spe_init_builtins): Call
15251         build_function_type_list instead of build_function_type.
15252         (paired_init_builtins, altivec_init_builtins): Likewise.
15253         (builtin_function_type): Likewise.
15254
15255 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
15256
15257         * config/sh/sh.c (sh_media_init_builtins): Call
15258         build_function_type_list instead of build_function_type.
15259
15260 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
15261
15262         * config/sparc/sparc.c (sparc_file_end): Call
15263         build_function_type_list instead of build_function_type.
15264
15265 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
15266
15267         * config/alpha/alpha.c (alpha_init_builtins): Call
15268         build_function_type_list instead of build_function_type.
15269
15270 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
15271
15272         * config/xtensa/xtensa.c (xtensa_init_builtins): Call
15273         build_function_type_list instead of build_function_type.
15274
15275 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
15276
15277         * config/iq2000/i2000.c (iq2000_init_builtins): Call
15278         build_function_type_list instead of build_function_type.
15279         Delete `endlink' variable.
15280
15281 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
15282
15283         * config/avr/avr.c (avr_init_builtins): Call
15284         build_function_type_list instead of build_function_type.
15285
15286 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
15287
15288         * config/picochip/picochip.c (picochip_init_builtins): Call
15289         build_function_type_list instead of build_function_type.
15290         Delete `endlink' variable.
15291
15292 2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
15293
15294         * config/bfin/bfin.c (bfin_init_builtins): Call
15295         build_function_type_list instead of build_function_type.
15296
15297 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
15298
15299         From Bernd Schmidt
15300         * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
15301         that's not CONST_INT.  Seemingly redundant check is due to PR39768.
15302
15303 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
15304
15305         From Jie Zhang:
15306         * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
15307         libbffastfp overrides libgcc when -mfast-fp.
15308
15309 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
15310
15311         Originally from Bernd Schmidt
15312         * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
15313         * config/bfin/bfin.c (override_options): Test it and error if
15314         TARGET_FDPIC.
15315
15316 2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
15317
15318         Originally From Bernd Schmidt
15319         * config/bfin/bfin.c (override_options): Disable -fstack-limit for
15320         FD-PIC.
15321
15322 2011-05-03  Jeff Law  <law@redhat.com>
15323
15324         * tree-ssa-threadupdate.c (THREAD_TARGET): define.
15325         (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
15326         (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
15327         than accessing AUX field directly.  Free the AUX field before
15328         clearing it.
15329         (thread_block, thread_through_loop_header): Likewise.
15330         (thread_single_edge, mark_threaded_blocks): Likewise.
15331         (redirect_edges): Delay clearing the AUX field.  Free the AUX field.
15332         (register_jump_thread): Do not attempt to thread to a NULL edge.
15333
15334 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
15335
15336         * function.c (init_function_start): Call decide_function_section.
15337         * varasm.c (decide_function_section): New function.
15338         (assemble_start_function): When not using
15339         flag_reorder_blocks_and_partition, don't compute in_cold_section_p
15340         or first_function_block_is_cold.
15341         * rtl.h (decide_function_section): Declare.
15342
15343 2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
15344             Jakub Jelinek  <jakub@redhat.com>
15345
15346         PR target/48774
15347         * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
15348         only succeed if req_mode is the same as set_mode.
15349
15350 2011-05-03  Bernd Schmidt  <bernds@codesourcery.com>
15351
15352         * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
15353         * genemit.c (gen_exp): Handle RETURN.
15354         * emit-rtl.c (verify_rtx_sharing): Likewise.
15355         (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
15356         * rtl.c (copy_rtx): RETURN is shared.
15357         * rtl.h (enum global_rtl_index): Add GR_RETURN.
15358         (ret_rtx): New.
15359         * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
15360         * config/s390/s390.c (s390_emit_epilogue): Likewise.
15361         * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
15362         * config/cris/cris.c (cris_expand_return): Likewise.
15363         * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
15364         * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
15365         rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
15366         * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
15367         * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
15368         Likewise.
15369         * config/v850/v850.c (expand_epilogue): Likewise.
15370         * config/bfin/bfin.c (bfin_expand_call): Likewise.
15371         * config/arm/arm.md (epilogue): Likewise.
15372         * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
15373         * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
15374         variable to ret_reg.
15375
15376 2011-05-03  Richard Guenther  <rguenther@suse.de>
15377
15378         PR lto/48846
15379         * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
15380         Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
15381         * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
15382
15383 2011-05-03  Richard Guenther  <rguenther@suse.de>
15384
15385         * c-decl.c (grokdeclarator): Instead of looking at
15386         TREE_OVERFLOW check if the constant fits in the index type.
15387
15388 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
15389
15390         * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
15391         (vec_store_lanes<mode><mode>): Likewise.
15392
15393 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
15394
15395         * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
15396         * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
15397         convert_optab_index values.
15398         (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
15399         * genopinit.c (optabs): Initialize the new optabs.
15400         * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
15401         * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
15402         (expand_STORE_LANES): New functions.
15403         * tree.h (build_array_type_nelts): Declare.
15404         * tree.c (build_array_type_nelts): New function.
15405         * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
15406         (vect_model_load_cost): Likewise.
15407         (vect_store_lanes_supported, vect_load_lanes_supported)
15408         (vect_record_strided_load_vectors): Declare.
15409         * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
15410         (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
15411         (vect_transform_strided_load): Split out statement recording into...
15412         (vect_record_strided_load_vectors): ...this new function.
15413         * tree-vect-stmts.c (create_vector_array, read_vector_array)
15414         (write_vector_array, create_array_ref): New functions.
15415         (vect_model_store_cost): Add store_lanes_p argument.
15416         (vect_model_load_cost): Add load_lanes_p argument.
15417         (vectorizable_store): Try to use store-lanes functions for
15418         interleaved stores.
15419         (vectorizable_load): Likewise load-lanes and loads.
15420         * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
15421         to vect_model_store_cost.
15422         (vect_build_slp_tree): Likewise vect_model_load_cost.
15423
15424 2011-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
15425
15426         * hooks.h (hook_bool_mode_uhwi_false): Declare.
15427         * hooks.c (hook_bool_mode_uhwi_false): New function.
15428         * target.def (array_mode_supported_p): New hook.
15429         * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
15430         * doc/tm.texi: Regenerate.
15431         * stor-layout.c (mode_for_array): New function.
15432         (layout_type): Use it.
15433         * config/arm/arm.c (arm_array_mode_supported_p): New function.
15434         (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
15435
15436 2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
15437
15438         PR target/48723
15439         * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
15440         for -fstack-check if the size to allocate is negative.
15441
15442 2011-05-02  Lawrence Crowl  <crowl@google.com>
15443
15444         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
15445         (timevar_cond_start): New for starting a timer only when it is not
15446         already running.
15447         (timevar_cond_stop): New for stopping a timer when it was not already
15448         running.
15449
15450         * timevar.c (timevar_stop): Enable start/stop timers to start again.
15451         (timevar_cond_start): New as above.
15452         (timevar_cond_stop): New as above.
15453
15454         * timevar.def: Add start/stop timers for compiler phases,
15455         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
15456         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
15457         and TV_PHASE_FINALIZE.
15458         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
15459         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
15460         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
15461         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
15462         Make unused TV_OVERLOAD into a start/stop timer.
15463
15464         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
15465         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
15466         to indicate that they are start/stop timers.
15467
15468         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
15469         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
15470         Move initialization to do_compile.
15471         (do_compile): Add initialization from above.
15472         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
15473
15474         * c-decl.c (c_write_global_declarations): Add start/stop of
15475         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
15476
15477         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
15478         or TV_PARSE_INLINE, as appropriate.
15479         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
15480         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
15481
15482 2011-05-02  Jason Merrill  <jason@redhat.com>
15483
15484         PR c++/40975
15485         * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
15486
15487 2011-05-02  Simon Martin  <simartin@users.sourceforge.net>
15488
15489         PR c/35445
15490         * c-decl.c (finish_decl): Only create a composite if the types are
15491         compatible.
15492
15493 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
15494
15495         * config/fr30/fr30-protos.h (Mmode): Don't define.
15496         * config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
15497         definition where used.
15498         * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
15499         define.  Expand definitions where used.
15500         * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
15501         Expand definitions where used.
15502         * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
15503         rx_function_arg, rx_function_arg_advance,
15504         rx_function_arg_boundary): Expand definitions of those macros.
15505         * config/v850/v850-protos.h (Mmode): Don't define.  Expand
15506         definition where used.
15507
15508 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
15509
15510         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
15511         reg<->xmm moves.
15512         (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
15513         (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
15514         with *movv2sf_internal_rex64_avx.
15515         (*movv2sf_internal): Merge with *movv2sf_internal_avx.
15516         * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
15517         Use %v prefix in insn mnemonic to handle TARGET_AVX.
15518         (*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
15519         "vex" in "prefix" attribute calculation.
15520         (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
15521
15522 2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>
15523
15524         PR target/47951
15525         * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
15526         inputs match the output.
15527
15528 2011-05-02  Andreas Schwab  <schwab@linux-m68k.org>
15529
15530         PR target/47955
15531         * config/m68k/m68k.c (m68k_expand_prologue): Set
15532         current_function_static_stack_size.
15533
15534 2011-05-02   Jan Hubicka  <jh@suse.cz>
15535
15536         * lto-streamer.c (lto_streamer_cache_insert_1,
15537         lto_streamer_cache_lookup, lto_streamer_cache_create,
15538         lto_streamer_cache_delete): Use pointer map instead of hashtable.
15539         * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
15540
15541 2011-05-02  Joseph Myers  <joseph@codesourcery.com>
15542
15543         * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
15544         config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
15545         config/m68k/t-opts: New files.
15546         * config/m68k/m68k-tables.opt: New file (generated).
15547         * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
15548         extra_options and m68k/t-opts to tmake_file.
15549         * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
15550         (all_isas): Initialize using m68k-isas.def.
15551         (all_microarchs): Initialize using m68k-microarchs.def.
15552         (m68k_find_selection): Remove.
15553         (m68k_handle_option): Don't assert that global structures are in
15554         use.  Use error_at.  Access variables via opts pointer.  Don't
15555         handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
15556         directly for -m68020-40 and -m68020-60.
15557         (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
15558         m68k_tune_entry here.
15559         * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
15560         to m68k-opts.h.
15561         (m68k_library_id_string): Remove declaration.
15562         * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
15563         (m68k_library_id_string): New Variable.
15564         (march=, mcpu=, mtune=): Use Enum and Var.
15565
15566 2011-05-02  Richard Guenther  <rguenther@suse.de>
15567
15568         * varasm.c (output_constructor_regular_field): Compute zero-based
15569         index with double-ints.  Make sure to ICE instead of producing
15570         wrong code.
15571         * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
15572         in asserts.  Properly use a signed type.
15573
15574 2011-05-02  Uros Bizjak  <ubizjak@gmail.com>
15575
15576         * config/i386/sse.md (V): New mode iterator.
15577         (V_128): Rename from SSEMODE.  Make V2DF mode conditional on
15578         TARGET_SSE2.
15579         (V_256): Rename from AVX256MODE.
15580         (VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
15581         condition to all users.
15582         (VF1): Ditto.
15583         (VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
15584         condition to all users.
15585         (VF_128): Make V4SF mode unconditional.
15586         (VF_256): Rename from AVX256MODEF2P.
15587         (VI4F_128): Rename from SSEMODE4S.
15588         (VI8F_128): Rename from SSEMODE2D.
15589         (VI4F_256): Rename from AVX256MODE8P.
15590         (VI8F_256): Rename from AVX256MODE4P.
15591         (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
15592         (ssescalarmodesuffix): Remove SF and DF modes.
15593         (SSEMODE124): Remove.
15594         (SSEMODE1248): Ditto.
15595         (SSEMODEF2P): Ditto.
15596         (AVXMODEF2P): Ditto.
15597         (AVXMODEFDP): Ditto.
15598         (AVXMODEFSP): Ditto.
15599         (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
15600         unconditional.
15601         (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
15602         unconditional.
15603         (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
15604         xop_pcmov_<mode>256.  Use V mode iterator.
15605
15606         Adjust RTX patterns globally for renamed mode attributes.
15607
15608 2011-05-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
15609
15610         * haifa-sched.c (sched_emit_insn): Emit insn before first
15611         non-scheduled insn.  Inform back-end about new insn.  Add
15612         new insn to scheduled_insns list.
15613
15614 2011-05-02  Richard Guenther  <rguenther@suse.de>
15615
15616         PR tree-optimization/48822
15617         * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
15618         (process_scc): Indicate which iteration we start.
15619
15620 2011-05-02  Jan Hubicka  <jh@suse.cz>
15621
15622         * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
15623         (lto_section_overrun): New.
15624         * lto-section-out.c (append_block): Rename to ...
15625         (lto_append_block): ... this one; export.
15626         (lto_output_1_stream): Move lto lto-streamer.h
15627         (lto_output_data_stream): Update.
15628         * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
15629         (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
15630         functions.
15631
15632 2011-05-02  Richard Guenther  <rguenther@suse.de>
15633
15634         * tree.c (tree_code_counts): New global array.
15635         (record_node_allocation_statistics): Count individual tree codes.
15636         (dump_tree_statistics): Dump individual code stats.
15637
15638 2011-05-01  Jan Hubicka  <jh@suse.cz>
15639
15640         * ipa-inline.c (caller_growth_limits): Fix thinko when
15641         looking for largest stack frame.
15642         * ipa-inline.h (dump_inline_summary): Declare.
15643         * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
15644         on stack usage.
15645         (dump_inline_summary): Export.
15646         (debug_inline_summary): Declare as DEBUG_FUNCTION.
15647
15648 2011-05-01  Anatoly Sokolov  <aesok@post.ru>
15649
15650         * reginfo.c (memory_move_cost): Change rclass argument type form
15651         'enum reg_class' to reg_class_t.
15652         * reload.h (memory_move_cost): Update prototype.
15653         * postreload.c reload_cse_simplify_set): Change type dclass var to
15654         reg_class_t.
15655         * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
15656         Update prototype.
15657         (ira_allocate_and_set_costs): Change aclass argument type form
15658         'enum reg_class' to reg_class_t.
15659         * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
15660         Change aclass argument type to reg_class_t.
15661         (update_conflict_hard_reg_costs): Change type aclass and pref vars
15662         to reg_class_t.
15663         * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
15664         memory_move_cost call.
15665
15666         * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
15667         'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
15668         Change type tmp var to reg_class_t.
15669
15670 2011-04-30  Jan Hubicka  <jh@suse.cz>
15671
15672         * ipa-inline.c (can_inline_edge_p): Disregard limits when
15673         inlining into function with flatten attribute.
15674         (want_inline_small_function_p): Be more realistic about inlining
15675         cold calls where callee size grows.
15676
15677 2011-04-30  Jan Hubicka  <jh@suse.cz>
15678
15679         * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
15680         flags.
15681
15682 2011-04-30  Anatoly Sokolov  <aesok@post.ru>
15683
15684         * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
15685         PRINT_OPERAND_PUNCT_VALID_P): Remove.
15686         * config/sparc/sparc-protos.h (print_operand): Remove declaration.
15687         * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
15688         TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
15689         (print_operand): Rename to...
15690         (sparc_print_operand): ...this. Make static. Adjust
15691         sparc_print_operand function call.
15692         (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
15693         functions.
15694
15695 2011-04-30  Jan Hubicka  <jh@suse.cz>
15696
15697         PR middle-end/48752
15698         * ipa-inline.c (early_inliner): Disable when doing late
15699         addition of function.
15700
15701 2011-04-30  Jakub Jelinek  <jakub@redhat.com>
15702
15703         * dwarf2out.c (get_address_mode): New inline.
15704         (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
15705         if not dwarf_strict emit
15706         DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
15707         desirable.  Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
15708         UNSIGNED_FLOAT, FIX and UNSIGNED_FIX.  Just return NULL for
15709         FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
15710         (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
15711         dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
15712         mem_loc_descriptor callers.
15713         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
15714         output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
15715         Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
15716         DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
15717         (base_types): New variable.
15718         (get_base_type_offset, calc_base_type_die_sizes,
15719         base_type_for_mode, mark_base_types, base_type_cmp,
15720         move_marked_base_types): New functions.
15721         (calc_die_sizes): Assert that die_offset is 0 or equal to
15722         next_die_offset.
15723         (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
15724         others defer to mem_loc_descriptor.  Adjust mem_loc_descriptor
15725         callers.  If not dwarf_strict, call mem_loc_descriptor even for
15726         non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
15727         (gen_subprogram_die): Don't give up on call site parameters
15728         with non-integral or large integral modes.  Adjust
15729         mem_loc_descriptor callers.
15730         (prune_unused_types): Call prune_unused_types_mark on base_types
15731         vector entries.
15732         (resolve_addr): Call mark_base_types.
15733         (dwarf2out_finish): Call move_marked_base_types.
15734
15735         PR tree-optimization/48809
15736         * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
15737         type.
15738         (gen_inbound_check): Don't compute index_expr - range_min in utype
15739         again, instead reuse SSA_NAME initialized in build_arrays.
15740         Remove two useless gsi_for_stmt calls.
15741
15742 2011-04-29  Jeff Law  <law@redhat.com>
15743
15744         * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
15745
15746 2011-04-29  Martin Jambor  <mjambor@suse.cz>
15747
15748         * cgraph.h (cgraph_postorder): Remove declaration.
15749         * ipa-utils.h (ipa_free_postorder_info): Declare.
15750         (ipa_reverse_postorder): Likewise.
15751         * cgraphunit.c: Include ipa-utils.h.
15752         (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
15753         * ipa-inline.c: Include ipa-utils.h.
15754         (ipa_inline): Update call to ipa_reverse_postorder.
15755         * ipa-pure-const.c (propagate_pure_const): Update call to
15756         ipa_reduced_postorder and ipa_print_order.  Call
15757         ipa_free_postorder_info to clean up.
15758         (propagate_nothrow): Likewise.
15759         * ipa-reference.c (propagate): Removed a useless call to
15760         ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
15761         and ipa_print_order.  Call ipa_free_postorder_info to clean up.
15762         * ipa.c: Include ipa-utils.h.
15763         (ipa_profile): Update call to ipa_reverse_postorder.
15764         (cgraph_postorder): Moved to...
15765         * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
15766         (ipa_utils_print_order): Renamed to ipa_print_order.
15767         (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
15768         comments.
15769         (ipa_free_postorder_info): New function.
15770         * passes.c: Include ipa-utils.h.
15771         (do_per_function_toporder): Update call to ipa_reverse_postorder.
15772         (ipa_write_summaries): Likewise.
15773         * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
15774         (cgraphunit.o): Likewise.
15775         (ipa.o): Likewise.
15776         (ipa-inline.o): Likewise.
15777
15778 2011-04-29  Jan Hubicka  <jh@suse.cz>
15779
15780         * gcc.dg/tree-ssa/inline-10.c: New testcase.
15781         * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
15782         * ipa-inline.h (clause_t): Turn into unsigned int.
15783         * ipa-inline-analysis.c (add_clause): Do more simplification.
15784         (and_predicates): Shortcut more cases.
15785         (predicates_equal_p): Move forward; check that clauses are properly
15786         ordered.
15787         (or_predicates): Shortcut more cases.
15788         (edge_execution_predicate): Rewrite as...
15789         (set_cond_stmt_execution_predicate): ... this function; handle
15790         __builtin_constant_p.
15791         (set_switch_stmt_execution_predicate): New .
15792         (compute_bb_predicates): New.
15793         (will_be_nonconstant_predicate): Update TODO.
15794         (estimate_function_body_sizes): Use compute_bb_predicates
15795         and free them later, always try to estimate if stmt is constant.
15796         (estimate_time_after_inlining, estimate_size_after_inlining):
15797         Gracefully handle optimized out edges.
15798         (read_predicate): Fix off by one error.
15799
15800 2011-04-29  Nicola Pero  <nicola.pero@meta-innovation.com>
15801
15802         * Makefile.in (ENABLE_MAINTAINER_RULES): New.
15803
15804 2011-04-27  Xinliang David Li  <davidxl@google.com>
15805
15806         * tree-profile.c (init_ic_make_global_vars): Set
15807         tls attribute on ic vars.
15808         * coverage.c (coverage_end_function): Initialize
15809         function_list with zero.
15810
15811 2011-04-29  Richard Guenther  <rguenther@suse.de>
15812
15813         * builtins.c (fold_builtin_classify_type): Use integer_type_node
15814         for the type of the result.
15815         (fold_builtin_isascii): Likewise.
15816         (fold_builtin_toascii): Use integer_type_node where appropriate.
15817         (fold_builtin_logb): Likewise.
15818         (fold_builtin_frexp): Likewise.
15819         (fold_builtin_strstr): Likewise.
15820         (fold_builtin_strpbrk): Likewise.
15821         (fold_builtin_fputs): Likewise.
15822         (fold_builtin_sprintf): Likewise.
15823         (fold_builtin_snprintf): Likewise.
15824         (fold_builtin_printf): Likewise.
15825         (do_mpfr_remquo): Use a proper type for the assigned constant.
15826         (do_mpfr_lgamma_r): Likewise.
15827         * dwarf2out.c (resolve_one_addr): Use size_int.
15828         * except.c (init_eh): Likewise.
15829         (assign_filter_values): Use integer_type_node for filter values.
15830         (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
15831         indices.
15832         * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
15833         for EH region numbers.
15834         * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
15835         for the shift amount.
15836
15837 2011-04-29  Richard Guenther  <rguenther@suse.de>
15838
15839         * expr.h (expand_shift): Rename to ...
15840         (expand_variable_shift): ... this.
15841         (expand_shift): Take a constant shift amount.
15842         * expmed.c (expand_shift): Rename to ...
15843         (expand_variable_shift): ... this.
15844         (expand_shift): New wrapper around expand_variable_shift.
15845         * expr.c (convert_move, emit_group_load_1, emit_group_store,
15846         optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
15847         expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
15848         * expmed.c (store_fixed_bit_field, extract_bit_field_1,
15849         extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
15850         expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
15851         extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
15852         emit_store_flag_1, emit_store_flag): Likewise.
15853         * builtins.c (expand_builtin_signbit): Likewise.
15854         * calls.c (load_register_parameters): Likewise.
15855         * function.c (assign_parm_setup_block): Likewise.
15856         * lower-subreg.c (resolve_shift_zext): Likewise.
15857         * optabs.c (widen_bswap, expand_abs_nojump,
15858         expand_one_cmpl_abs_nojump, expand_float): Likewise.
15859         * spu/spu.c (spu_expand_extv): Likewise.
15860         * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
15861
15862 2011-04-29  Richard Guenther  <rguenther@suse.de>
15863
15864         * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
15865         for the remapped region number.
15866         * predict.c (build_predict_expr): Use integer_type_node for the
15867         predict kind.
15868         * fold-const.c (fold_binary_loc): Use integer_type_node for
15869         the shift amount.  Use a proper type for the PLUS_EXPR operand.
15870
15871 2011-04-29  Michael Matz  <matz@suse.de>
15872
15873         * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
15874         other trees that just builtins.
15875         (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
15876
15877 2011-04-29  Richard Guenther  <rguenther@suse.de>
15878
15879         * tree-nested.c (get_trampoline_type): Use size_int.
15880         (get_nl_goto_field): Likewise.
15881         * tree-eh.c (lower_try_finally_switch): Use integer_type_node
15882         for all indexes.
15883         (lower_eh_constructs_2): Likewise.
15884         (lower_resx): Likewise.
15885         (lower_eh_dispatch): Likewise.
15886         * tree-mudflap.c (mf_build_string): Use size_int.
15887         (mudflap_register_call): Use integer_type_node for the flag.
15888         (mudflap_enqueue_constant): Use size_int.
15889         * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
15890         instead of rebuilding it.
15891
15892 2011-04-29  Richard Guenther  <rguenther@suse.de>
15893
15894         * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
15895         Handle OBJ_TYPE_REF.
15896         (find_func_aliases_for_call): Use it more consistently.
15897
15898 2011-04-29  Alexandre Oliva  <aoliva@redhat.com>
15899
15900         * haifa-sched.c (last_nondebug_scheduled_insn): New.
15901         (rank_for_schedule): Use it.
15902         (schedule_block): Set it.
15903
15904 2011-04-28  David Li  <davidxl@google.com>
15905
15906         * tree.c (crc32_string): Use crc32_byte.
15907         (crc32_byte): New function.
15908         * tree.h (crc32_byte): New function.
15909         * gcov.c (read_graph_file): Handle new cfg_cksum.
15910         (read_count_file): Ditto.
15911         * profile.c (instrument_values): Ditto.
15912         (get_exec_counts): Ditto.
15913         (read_profile_edge_counts): Ditto.
15914         (compute_branch_probabilities): Ditto.
15915         (compute_value_histograms): Ditto.
15916         (branch_prob): Ditto.
15917         (end_branch_prob): Ditto.
15918         * coverage.c (read_counts_file): Ditto.
15919         (get_coverage_counts): Ditto.
15920         (tree_coverage_counter_addr): Ditto.
15921         (coverage_checksum_string): Ditto.
15922         (coverage_begin_output): Ditto.
15923         (coverage_end_function): Ditto.
15924         (build_fn_info_type): Ditto.
15925         (build_fn_info_value): Ditto.
15926         * libgcov.c (gcov_exit): Ditto.
15927         * gcov-dump.c (tag_function): Ditto.
15928         (compute_checksum): Remove.
15929
15930 2011-04-29  Alan Modra  <amodra@gmail.com>
15931
15932         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
15933         unspec plus offset.  Tidy macho code.
15934
15935 2011-04-29  Martin Jambor  <mjambor@suse.cz>
15936
15937         * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
15938         node instead of a decl.  Update all callers.
15939         * cgraph.h: Update declaration.
15940
15941 2011-04-28  Ira Rosen  <ira.rosen@linaro.org>
15942
15943         PR tree-optimization/48765
15944         * tree-vectorizer.h (vect_make_slp_decision): Return bool.
15945         * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
15946         to indicate if loop aware SLP is being used.  Scan the statements
15947         and update the vectorization factor according to the type of
15948         vectorization before statement analysis.
15949         (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
15950         pass it to vect_analyze_loop_operations.
15951         (vectorizable_reduction): Set number of copies to 1 in case of pure
15952         SLP statement.
15953         * tree-vect-stmts.c (vectorizable_conversion,
15954         vectorizable_assignment, vectorizable_shift,
15955         vectorizable_operation, vectorizable_type_demotion,
15956         vectorizable_type_promotion, vectorizable_store, vectorizable_load):
15957         Likewise.
15958         (vectorizable_condition): Move the check that it is not SLP
15959         vectorization before the number of copies check.
15960         * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
15961         to vectorize the loop using SLP.
15962
15963 2011-04-28  Jakub Jelinek  <jakub@redhat.com>
15964
15965         PR middle-end/48597
15966         * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
15967         inline asm.
15968
15969 2011-04-28  Joseph Myers  <joseph@codesourcery.com>
15970
15971         * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
15972         *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
15973         (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
15974         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
15975         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
15976         linux*.h headers.
15977         * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
15978         * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15979         * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15980         * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15981         * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
15982         * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
15983         REG_NAME.
15984         * config/i386/linux.h (REG_NAME): Don't define.
15985         * config/i386/linux64.h (REG_NAME): Don't define.
15986         * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
15987         Undefine before defining.
15988
15989 2011-04-28  Jan Hubicka  <jh@suse.cz>
15990
15991         * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
15992         nonconstant_names array.
15993         (estimate_function_body_sizes): Build nonconstant_names array; handle
15994         BUILT_IN_CONSTANT_P.
15995
15996 2011-04-28  Richard Guenther  <rguenther@suse.de>
15997
15998         PR bootstrap/48804
15999         Revert
16000         2011-04-28  Richard Guenther  <rguenther@suse.de>
16001
16002         * tree-ssa-structalias.c (solve_constraints): Build succ graph
16003         as late as possible.
16004
16005 2011-04-28  Richard Guenther  <rguenther@suse.de>
16006
16007         * tree-ssa-structalias.c (dump_constraint): Don't end the line.
16008         (debug_constraint): Do it here.
16009         (dump_constraints): And here.
16010         (rewrite_constraints): And here.
16011         (dump_constraint_edge): Remove.
16012         (dump_constraint_graph): Rewrite to produce DOT output.
16013         (solve_constraints): Build succ graph as late as possible.
16014         Dump constraint graphs before and after solving.
16015
16016 2011-04-28  Richard Guenther  <rguenther@suse.de>
16017
16018         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
16019         New function split out from ...
16020         (find_func_aliases): ... here.  Call it.
16021         (find_func_aliases_for_call): Likewise.
16022
16023 2011-04-27  Gabriel Dos Reis  <gdr@integrable-solutions.net>
16024
16025         * internal-fn.h (internal_fn_name_array): Declare.
16026         (internal_fn_flags_array): Likewise.
16027
16028 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
16029
16030         * config/i386/i386.md (ssemodesuffix):  Merge with ssevecsize,
16031         ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
16032         Move from sse.md.
16033         (ssemodefsuffix): Remove.
16034         (ssevecmodesuffix): New mode attribute.
16035         (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
16036         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
16037         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
16038         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
16039         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
16040         *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
16041         *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
16042         ssemodesuffix mode attribute.
16043         (float splitters): Use ssevecmodesuffix mode attribute.
16044         * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
16045         (sseinsmode): Rename from avxvecmode.
16046         (avxsizesuffix): Rename from avxmodesuffix.
16047         (sseintvecmode): Rename from avxpermvecmode.
16048         (ssedoublevecmode): Rename from ssedoublesizemode.
16049         (ssehalfvecmode): Rename from avxhalfvecmode.
16050         (ssescalarmode): Rename from avxscalarmode.
16051         (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
16052         templates for ssemodesuffix mode attribute.
16053         (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
16054         mode attribute.
16055
16056         Adjust RTX patterns globally for renamed mode attributes.
16057
16058 2011-04-27  Jan Hubcika  <jh@suse.cz>
16059
16060         * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
16061         * ipa-inline-analysis.c: Include alloc-pool.h.
16062         (edge_predicate_pool): New.
16063         (trye_predicate_p): New function
16064         (false_predicate_p): New function.
16065         (add_clause): Sanity check that false clauses are "optimized";
16066         never add clauses to predicate that is already known to be false.
16067         (and_predicate): Use flase_predicate_p.
16068         (evaulate_predicate): Rename to ...
16069         (evaluate_predicate): ... this one; update all callers; assert
16070         that false is not listed among possible truths.
16071         (dump_predicate): Use true_predicate_p.
16072         (account_size_time): Use false_predicate_p.
16073         (evaulate_conditions_for_edge): Rename to ...
16074         (evaluate_conditions_for_edge) ... this one.
16075         (edge_set_predicate): New function.
16076         (inline_edge_duplication_hook): Duplicate edge predicates.
16077         (inline_edge_removal_hook): Free edge predicates.
16078         (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
16079         (dump_inline_summary): Update.
16080         (estimate_function_body_sizes): Set edge predicates.
16081         (estimate_calls_size_and_time): Handle predicates.
16082         (estimate_callee_size_and_time): Update.
16083         (remap_predicate): Add toplev_predicate; update comment.
16084         (remap_edge_predicates): New function.
16085         (inline_merge_summary): Compute toplev predicate; update.
16086         (read_predicate): New function.
16087         (read_inline_edge_summary): Use it.
16088         (inline_read_section): Likewise.
16089         (write_predicate): New function.
16090         (write_inline_edge_summary): Use it.
16091         (inline_write_summary): Likewise.
16092         (inline_free_summary): Free alloc pool and edge summary vec.
16093
16094 2011-04-27  Richard Guenther  <rguenther@suse.de>
16095
16096         * tree-ssa-structalias.c (changed_count): Remove.
16097         (changed): Use a bitmap.
16098         (unify_nodes): Adjust.
16099         (do_sd_constraint): Likewise.
16100         (do_ds_constraint): Likewise.
16101         (do_complex_constraint): Likewise.
16102         (solve_graph): Likewise.
16103
16104 2011-04-27  Jan Hubicka  <jh@suse.cz>
16105
16106         * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
16107
16108 2011-04-27  Uros Bizjak  <ubizjak@gmail.com>
16109
16110         * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
16111         (avx_vperm2f128_*_operand): Ditto.
16112         * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
16113         Use avx_vpermilp_parallel in insn condition.
16114         (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.
16115         Use avx_vperm2f128_parallel in insn condition.
16116
16117 2011-04-27  Richard Guenther  <rguenther@suse.de>
16118
16119         * Makefile.in (tree-ssa-structalias.o): Remove
16120         gt-tree-ssa-structalias.h dependency.
16121         (GTFILES): Remove tree-ssa-structalias.c.
16122         * tree.c (allocate_decl_uid): New function.
16123         (make_node_stat): Use it.
16124         (copy_node_stat): Likewise.
16125         * tree.h (allocate_decl_uid): Declare.
16126         * tree-ssa-alias.h (delete_alias_heapvars): Remove.
16127         * tree-ssa.c (delete_tree_ssa): Do not call delete_alias_heapvars.
16128         * tree-flow.h (struct var_ann_d): Remove is_heapvar flag.
16129         * tree-ssa-live.c (remove_unused_locals): Do not check is_heapvar flag.
16130         * tree-ssa-structalias.c (heapvar_for_stmt): Remove.
16131         (struct heapvar_map): Likewise.
16132         (heapvar_map_eq, heapvar_map_hash, heapvar_lookup,
16133         heapvar_insert): Likewise.
16134         (make_heapvar_for): Rename to ...
16135         (make_heapvar): ... this.  Simplify.
16136         (fake_var_decl_obstack): New global var.
16137         (build_fake_var_decl): New function.
16138         (make_constraint_from_heapvar): Adjust.
16139         (handle_lhs_call): Likewise.
16140         (create_function_info_for): Likewise.
16141         (intra_create_variable_infos): Likewise.
16142         (init_alias_vars): Allocate fake_var_decl_obstack.
16143         (init_alias_heapvars, delete_alias_heapvars): Remove.
16144         (compute_points_to_sets): Do not call init_alias_heapvars.
16145         (ipa_pta_execute): Likewise.
16146         (delete_points_to_sets): Free fake_var_decl_obstack.
16147
16148 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16149
16150         * config/spu/divmovti4.c (union qword_UTItype): New data type.
16151         (si_from_UTItype, si_to_UTItype): New functions.
16152         (__udivmodti4): Use them to implement type-punning.
16153         * config/spu/multi3.c (union qword_TItype): New data type.
16154         (si_from_TItype, si_to_TItype): New functions.
16155         (__multi3): Use them to implement type-punning.
16156
16157 2011-04-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
16158
16159         * config/spu/spu.c (spu_expand_epilogue): Do not emit barrier.
16160
16161 2011-04-27  Jan Hubicka  <jh@suse.cz>
16162
16163         * ipa-prop.c (function_insertion_hook_holder): New holder.
16164         (ipa_add_new_function): New function.
16165         (ipa_register_cgraph_hooks, ipa_unregister_cgraph_hooks):
16166         Register/deregister holder.
16167
16168 2011-04-27  Richard Guenther  <rguenther@suse.de>
16169
16170         PR tree-optimization/48772
16171         * tree-ssa-pre.c (eliminate): Update call stmts after elimination only.
16172
16173 2011-04-27  Richard Guenther  <rguenther@suse.de>
16174
16175         * tree-ssa-alias.c (indirect_refs_may_alias_p): Fix
16176         TARGET_MEM_REF handling.
16177
16178 2011-04-27  Nick Clifton  <nickc@redhat.com>
16179
16180         * config/frv/frv.h (enum reg_class): Delete EVEN_ACC_REGS,
16181         ACC_REGS, FEVEN_REGS, FPR_REGS, EVEN_REGS.
16182         (REG_CLASS_NAMES): Likewise.
16183         (REG_CLASS_CONTENTS): Likewise.
16184         (EVEN_ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
16185         (ACC_REGS): New macro.  Alias for QUAD_ACC_REGS.
16186         (FEVEN_REGS): New macro.  Alias for QUAD_ACC_REGS.
16187         (FPR_REGS): New macro.  Alias for QUAD_ACC_REGS.
16188         (EVEN_REGS): New macro.  Alias for QUAD_REGS.
16189         * config/frv/frv.c (frv_secondary_reload_class): Remove use of
16190         duplicate register classes.
16191         (frv_class_likely_spilled_p): Likewise.
16192         (frv_register_move_cost): Likewise.
16193
16194         * config/mcore/mcore.h (REGNO_REG_CLASS): Do not index beyond the
16195         end of the regno_reg_class array.
16196
16197 2011-04-27  Jakub Jelinek  <jakub@redhat.com>
16198
16199         PR c/48742
16200         * c-typeck.c (build_binary_op): Don't wrap arguments if
16201         int_operands is true.
16202
16203 2011-04-26  Kaz Kojima  <kkojima@gcc.gnu.org>
16204
16205         PR target/48767
16206         * config/sh/sh.c (sh_gimplify_va_arg_expr): Don't call
16207         targetm.calls.must_pass_in_stack for void type.
16208
16209 2011-04-26  Jan Hubicka  <jh@suse.cz>
16210
16211         * cgraphbuild.c (build_cgraph_edges): Update call
16212         of cgraph_create_edge and cgraph_create_indirect_edge.
16213         * cgraph.c (cgraph_create_edge_including_clones,
16214         cgraph_create_edge_1, cgraph_allocate_init_indirect_info,
16215         cgraph_update_edges_for_call_stmt_node): Do not take nest
16216         argument; do not initialize call_stmt_size/time.
16217         (dump_cgraph_node): Do not dump nest.
16218         (cgraph_clone_edge): Do not take loop_nest argument;
16219         do not propagate it; do not clone call_stmt_size/time.
16220         (cgraph_clone_node): Likewise.
16221         (cgraph_create_virtual_clone): Update.
16222         * cgraph.h (struct cgraph_edge): Remove
16223         call_stmt_size/call_stmt_time/loop_nest.
16224         (cgraph_create_edge, cgraph_create_indirect_edge,
16225         cgraph_create_edge_including_clones, cgraph_clone_node): Update
16226         prototype.
16227         * tree-emutls.c (gen_emutls_addr): Update.
16228         * ipa-inline-transform.c (update_noncloned_frequencies): Do not handle
16229         loop_nest; handle indirect calls, too.
16230         (clone_inlined_nodes): Do not care about updating inline summaries.
16231         * cgraphunit.c (cgraph_copy_node_for_versioning): Update.
16232         * lto-cgraph.c (lto_output_edge, input_node, input_edge): Do not
16233         stream call_stmt_size/call_stmt_time/loop_nest.
16234         * ipa-inline.c (edge_badness): Update.
16235         (ipa_inline): dump summaries after inlining.
16236         * ipa-inline.h (struct inline_edge_summary, inline_edge_summary_t):
16237         New.
16238         (inline_edge_summary): New function.
16239         * ipa-inline-analysis.c (edge_duplication_hook_holder): New holder.
16240         (inline_edge_removal_hook): Handle edge summaries.
16241         (inline_edge_duplication_hook): New hook.
16242         (inline_summary_alloc): Alloc hooks.
16243         (initialize_growth_caches): Do not register removal hooks.
16244         (free_growth_caches); Do not free removal hook.
16245         (dump_inline_edge_summary): New function.
16246         (dump_inline_summary): Use it.
16247         (estimate_function_body_sizes, estimate_edge_size_and_time): Update.
16248         (inline_update_callee_summaries): New function.
16249         (inline_merge_summary): Use it.
16250         (do_estimate_edge_time, do_estimate_edge_growth): Update.
16251         (read_inline_edge_summary): New function.
16252         (inline_read_section): Use it.
16253         (write_inline_edge_summary): New function.
16254         (inline_write_summary): Use it.
16255         (inline_free_summary): Free edge new holders.
16256         * tree-inline.c (copy_bb): Update.
16257
16258 2011-04-26  Jason Merrill  <jason@redhat.com>
16259
16260         * tree-eh.c (lower_try_finally_switch): Create the label along with
16261         the CASE_LABEL_EXPR.
16262
16263 2011-04-26  David S. Miller  <davem@davemloft.net>
16264             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16265
16266         * configure.ac (gcc_cv_as_sparc_gotdata_op): Specify alignment.
16267         * configure: Regenerate.
16268
16269 2011-04-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
16270
16271         PR target/48258
16272         * config/rs6000/vector.md (UNSPEC_REDUC): New unspec for vector
16273         reduction.
16274         (VEC_reduc): New code iterator and splitters for vector reduction.
16275         (VEC_reduc_name): Ditto.
16276         (VEC_reduc_rtx): Ditto.
16277         (reduc_<VEC_reduc_name>_v2df): Vector reduction expanders for VSX.
16278         (reduc_<VEC_reduc_name>_v4sf): Ditto.
16279
16280         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
16281         support for extracting SF on VSX.
16282
16283         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): New insn for
16284         generating xscvspdp.
16285         (vsx_extract_v4sf): New insn to extract SF from V4SF vector.
16286         (vsx_reduc_<VEC_reduc_name>_v2df): New insns and splitters for
16287         double add, minimum, maximum vector reduction.
16288         (vsx_reduc_<VEC_reduc_name>_v4sf): Ditto.
16289         (vsx_reduc_<VEC_reduc_name>_v2df2_scalar): New combiner insn to
16290         optimize double vector reduction.
16291         (vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Ditto.
16292
16293 2011-04-26  Joseph Myers  <joseph@codesourcery.com>
16294
16295         * config/fr30/fr30.h (inhibit_libc): Don't define.
16296         * config/m32r/m32r-protos.h: Correct comment.
16297         * config/v850/v850.h (GHS_default_section_names,
16298         GHS_current_section_names): Use tree, not union tree_node *.
16299
16300 2011-04-26  Xinliang David Li  <davidxl@google.com>
16301
16302         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass warning code.
16303         * c-family/c-opts.c (c_common_handle_option): Set
16304         warn_maybe_uninitialized.
16305         * opts.c (common_handle_option): Ditto.
16306         * common.opt:  New option.
16307         * tree-ssa.c (warn_uninit): Add one more parameter.
16308         (warn_uninitialized_var): Pass warning code.
16309         * tree-flow.h: Interface change.
16310
16311 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16312
16313         * config/mips/iris6.h (LOCAL_LABEL_PREFIX): Don't test TARGET_NEWABI.
16314         (WINT_TYPE_SIZE): Use INT_TYPE_SIZE.
16315         (TARGET_OS_CPP_BUILTINS): Remove TARGET_IRIX6 guards.
16316
16317 2011-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16318
16319         * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Remove.
16320         * config/mips/mips.opt (mmips-tfile): Remove.
16321
16322         * doc/install.texi (Specific, mips-*-*): Move mips-tfile,
16323         mips-tdump reference to ...
16324         (Specific, alpha*-dec-osf5.1): ... here.  Adapt for Tru64 UNIX.
16325         * doc/trouble.texi (Cross-Compiler Problems): Replace MIPS
16326         reference by Tru64 UNIX.
16327
16328 2011-04-26  Jakub Jelinek  <jakub@redhat.com>
16329
16330         PR debug/48768
16331         * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
16332         is error_mark_node, set value to NULL.
16333
16334         PR tree-optimization/48734
16335         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
16336         if return value from maybe_fold_*_comparsions isn't something
16337         the code is prepared to handle.
16338
16339 2011-04-26  Uros Bizjak  <ubizjak@gmail.com>
16340
16341         * config/i386/predicates.md (ext_QIreg_operand): Remove extra
16342         mode check.
16343         (ext_QIreg_nomode_operands): Remove.
16344         * config/i386/i386.md (*anddi_1): Use ext_QIreg_operand.
16345         (*andsi_1): Ditto.
16346         (*andhi_1): Ditto.
16347
16348 2011-04-26  Andrew Stubbs  <ams@codesourcery.com>
16349
16350         * config/arm/arm.c (arm_gen_constant): Remove can_negate_initial.
16351
16352 2011-04-26  Richard Guenther  <rguenther@suse.de>
16353
16354         * c-typeck.c (build_unary_op): Do not expand array-refs via
16355         pointer arithmetic.  Only adjust qualifiers for function types.
16356
16357 2011-04-26  Richard Guenther  <rguenther@suse.de>
16358
16359         PR middle-end/48694
16360         * tree.h (OEP_CONSTANT_ADDRESS_OF): New operand_equal_flag.
16361         * fold-const.c (operand_equal_p): For TREE_CONSTANT ADDR_EXPRs
16362         compare the operands with OEP_CONSTANT_ADDRESS_OF.  Treat trees
16363         with TREE_SIDE_EFFECTS equal when OEP_CONSTANT_ADDRESS_OF is set.
16364
16365 2011-04-25  Paolo Carlini  <paolo.carlini@oracle.com>
16366
16367         * doc/extend.texi: Document __underlying_type.
16368
16369 2011-04-25  Segher Boessenkool  <segher@kernel.crashing.org>
16370
16371         * config/rs6000/titan.md (automata_option "progress"): Remove.
16372
16373 2011-04-25  Jeff Law  <law@redhat.com>
16374
16375         * tree-vrp.c (identify_jump_threads): Handle GIMPLE_SWITCH too.
16376
16377 2011-04-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
16378
16379         * system.h (ENUM_BITFIELD): Remove.
16380
16381 2011-04-25  Maxim Kuvyrkov  <maxim@codesourcery.com>
16382             Eric Botcazou  <ebotcazou@adacore.com>
16383
16384         * combine.c (combine_simplify_rtx): Avoid mis-simplifying conditionals
16385         for STORE_FLAG_VALUE==-1 case.
16386
16387 2011-04-24  Richard Sandiford  <richard.sandiford@linaro.org>
16388
16389         PR target/43804
16390         * config/m68k/constraints.md (T): Allow PIC operands that satisfy
16391         LEGITIMATE_PIC_OPERAND_P.
16392
16393 2011-04-24  Jan Hubicka  <jh@suse.cz>
16394
16395         * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove obsolette
16396         WPA hack.
16397         * ipa-prop.h (ipa_get_param, ipa_is_param_used,
16398         ipa_param_cannot_devirtualize_p, ipa_param_types_vec_empty,
16399         ipa_get_ith_jump_func, ipa_get_lattice): Fortify array bounds.
16400         * ipa-inline-analysis.c (add_clause): Fix clause ordering.
16401         (and_predicates, or_predicates, predicates_equal_p, evaulate_predicate):
16402         Sanity check predicate length.
16403         (remap_predicate): Likewise; sanity check jump functions.
16404         (inline_read_section, inline_write_summary): Sanity check
16405         predicate length.
16406
16407 2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
16408
16409         PR other/48748
16410         * doc/extend.texi (Type Traits): Document __is_standard_layout,
16411         __is_literal_type, and __is_trivial; update throughout about
16412         possibly cv-qualified void types.
16413
16414 2011-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
16415
16416         * doc/sourcebuild.texi (Ada Tests): Adjust reference to ACATS
16417         testsuite and make it version agnostic.
16418
16419 2011-04-22  Jan Hubicka  <jh@suse.cz>
16420
16421         * ipa-inline-analysis.c (inline_write_summary): Fix thinko.
16422
16423 2011-04-23  Jakub Jelinek  <jakub@redhat.com>
16424
16425         PR c/48685
16426         * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
16427         to VOID_TYPE even around MODIFY_EXPR.
16428
16429 2011-04-22  Mike Stump  <mikestump@comcast.net>
16430
16431         * gensupport.c (read_md_rtx): Fix typo in comment.
16432         * config/cris/cris.opt (moverride-best-lib-options): Fix typo in
16433         comment.
16434
16435 2011-04-22  Jan Hubicka  <jh@suse.cz>
16436
16437         * gengtype.c (open_base_files): Add ipa-inline.h include.
16438         * ipa-cp.c (ipcp_get_lattice, ipcp_lattice_from_jfunc): Move to
16439         ipa-prop.c; update all uses.
16440         * ipa-prop.c: (ipa_get_lattice, ipa_lattice_from_jfunc): ... here.
16441         * ipa-inline-transform.c (inline_call): Use inline_merge_summary to
16442         merge summary of inlined function into former caller.
16443         * ipa-inline.c (max_benefit): Remove.
16444         (edge_badness): Compensate for removal of benefits.
16445         (update_caller_keys): Use
16446         reset_node_growth_cache/reset_edge_growth_cache.
16447         (update_callee_keys): Likewise.
16448         (update_all_callee_keys): Likewise.
16449         (inline_small_functions): Do not collect max_benefit; do not reset
16450         estimated_growth; call free_growth_caches and initialize_growth_caches.
16451         * ipa-inline.h (struct condition, type clause_t, struct predicate,
16452         struct size_time_entry): New structures.
16453         (INLINE_SIZE_SCALE, INLINE_TIME_SCALE, MAX_CLAUSES): New constants.
16454         (inline_summary): Remove size_inlining_benefit, time_inlining_benefit
16455         and estimated_growth.
16456         (edge_growth_cache_entry): New structure.
16457         (node_growth_cache, edge_growth_cache): New global vars.
16458         (estimate_growth): Turn into inline.
16459         (inline_merge_summary, do_estimate_edge_growth, do_estimate_edge_time,
16460         initialize_growth_caches, free_growth_caches): Declare.
16461         (estimate_edge_growth): Rewrite.
16462         (estimate_edge_time): Implement as inline cache lookup.
16463         (reset_node_growth_cache, reset_edge_growth_cache): New inline
16464         functions.
16465         (MAX_TIME): Reduce to allow multiplicatoin by INLINE_SIZE_SCALE.
16466         (NUM_CONDITIONS): New constant.
16467         (predicate_conditions): New enum.
16468         (IS_NOT_CONSTANT): New constant.
16469         (edge_removal_hook_holder): New var.
16470         (node_growth_cache, edge_growth_cache): New global vars.
16471         (true_predicate, single_cond_predicate, false_predicate,
16472         not_inlined_predicate, add_condition, add_clause, and_predicates,
16473         or_predicates, predicates_equal_p, evaulate_predicate, dump_condition,
16474         dump_clause, dump_predicate, account_size_time,
16475         evaulate_conditions_for_edge): New functions.
16476         (inline_summary_alloc): Move to heap.
16477         (inline_node_removal_hook): Clear condition and entry vectors.
16478         (inline_edge_removal_hook): New function.
16479         (initialize_growth_caches, free_growth_caches): New function.
16480         (dump_inline_summary): Update.
16481         (edge_execution_predicate): New function.
16482         (will_be_nonconstant_predicate): New function.
16483         (estimate_function_body_sizes): Compute BB and constantness predicates.
16484         (compute_inline_parameters): Do not clear estimated_growth.
16485         (estimate_edge_size_and_time): New function.
16486         (estimate_calls_size_and_time): New function.
16487         (estimate_callee_size_and_time): New function.
16488         (remap_predicate): New function.
16489         (inline_merge_summary): New function.
16490         (do_estimate_edge_time): New function based on...
16491         (estimate_edge_time): ... this one.
16492         (do_estimate_edge_growth): New function.
16493         (do_estimate_growth): New function based on....
16494         (estimate_growth): ... this one.
16495         (inline_analyze_function): Analyze after deciding on jump functions.
16496         (inline_read_section): New function.
16497         (inline_read_summary): Use it.
16498         (inline_write_summary): Write all the new data.
16499         * ipa-prop.c (ipa_get_param_decl_index): Export.
16500         (ipa_lattice_from_jfunc): Move here from ipa-cp.c
16501         * ipa-prop.h (ipa_get_param_decl_index, ipa_lattice_from_jfunc):
16502         Declare.
16503         (ipa_get_lattice): Move here from ipa-cp.c
16504         * Makefile.in (GTFILES): Add ipa-inline.h and ipa-inline-analysis.c
16505         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 11.
16506         * cgraph.h (cgraph_clone_inlined_nodes, compute_inline_parameters,
16507         cgraph_edge_inlinable_p): Remove.
16508         * cgraphunit.c: Include ipainline.h
16509         (cgraph_process_new_functions): Update call of
16510         compute_inline_parameters.
16511
16512 2011-04-22  Richard Guenther  <rguenther@suse.de>
16513
16514         * tree.c (build_int_cst): Properly create canonicalized integer
16515         constants.
16516         (build_int_cst_type): Remove scary comments.
16517
16518 2011-04-22  Xinliang David Li  <davidxl@google.com>
16519
16520         * toplev.c (process_options): Enable -Werror=coverage-mismatch
16521         by default when -Wno-error is not specified.
16522         * opts-global.c (decode_options): Remove call to
16523         control_warning_options.
16524
16525 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
16526
16527         PR tree-optimization/48717
16528         * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
16529         ~A + A optimizations use build_int_cst_type instead of build_int_cst.
16530
16531 2011-04-22  Joseph Myers  <joseph@codesourcery.com>
16532
16533         * config/bfin/bfin-protos.h (Mmode): Don't define.  Expand
16534         definition where used.
16535
16536 2011-04-22  Jakub Jelinek  <jakub@redhat.com>
16537
16538         PR c/48716
16539         * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
16540         TREE_STATIC variables declared inside of some OpenMP construct.
16541
16542 2011-04-22  Martin Jambor  <mjambor@suse.cz>
16543
16544         PR middle-end/48585
16545         * tree-inline.c (copy_bb): Create new edges only for analyzed nodes.
16546
16547 2011-04-22  Alexander Monakov  <amonakov@ispras.ru>
16548
16549         PR c/36750
16550         * c-typeck.c (pop_init_level): Do not warn about initializing
16551         with ` = {0}'.
16552
16553 2011-04-22  Alan Modra  <amodra@gmail.com>
16554
16555         * config/rs6000/rs6000.c (rs6000_function_arg): Remove CALL_LIBCALL
16556         when returning call_cookie.
16557         (rs6000_function_ok_for_sibcall): Allow sibcalls via function
16558         pointers, to functions with no more vector args than the current
16559         function, and some non-local calls for ABI_V4.
16560         * config/rs6000/rs6000.md (sibcall_nonlocal_aix32,
16561         sibcall_nonlocal_aix64): Combine to ..
16562         (sibcall_nonlocal_aix<mode>): ..this.  Handle function pointer calls.
16563         (sibcall_value_nonlocal_aix32, sibcall_value_nonlocal_aix64): Combine..
16564         (sibcall_value_nonlocal_aix<mode>): ..likewise.
16565         (*sibcall_nonlocal_sysv<mode>): Handle function pointer calls.
16566         (sibcall_value_nonlocal_sysv<mode>): Likewise.  Correct call cookie
16567         operand.
16568         * config/rs6000/darwin.md (sibcall_nonlocal_darwin64,
16569         sibcall_value_nonlocal_darwin64, sibcall_symbolic_64,
16570         sibcall_value_symbolic_64): Delete.
16571
16572 2011-04-21  Xinliang David Li  <davidxl@google.com>
16573
16574         * cgraph.h: Remove pid.
16575         * cgraph.c: Remove pid.
16576         * value-prof.c (init_node_map): New function.
16577         (del_node_map): New function.
16578         (find_func_by_funcdef_no): New function.
16579         (gimple_ic_transform): Call new function.
16580         * cgraphunit.c (cgraph_finalize_function): Remove pid.
16581         * function.c (get_last_funcdef_no): New function.
16582         * function.h (get_last_funcdef_no): New function.
16583         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
16584         to libgcov function.
16585         (tree-profiling): Call node map init and delete function.
16586
16587 2011-04-21  Ian Lance Taylor  <iant@google.com>
16588
16589         * godump.c (go_format_type): Use exported Go name for anonymous
16590         field name.
16591
16592 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
16593
16594         * config/frv/frv.c (frv_init_builtins): Delete `endlink' variable.
16595         Call builtin_function_type_list instead of builtin_function_type.
16596         (UNARY, BINARY, TRINARY, QUAD): Likewise.
16597
16598 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
16599
16600         * config/arm/arm.c (arm_init_iwmmxt_builtins): Call
16601         build_function_type_list instead of build_function_type.
16602         Delete variable `endlink'.
16603
16604 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
16605
16606         * config/s390/s390.c (s390_init_builtins): Call
16607         build_function_type_list instead of build_function_type.
16608
16609 2011-04-21  Nathan Froyd  <froydnj@codesourcery.com>
16610
16611         * config/ia64/ia64.c (ia64_init_builtins): Call
16612         build_function_type_list instead of builtin_function_type.
16613
16614 2011-04-21  Easwaran Raman  <eraman@google.com>
16615
16616         * cfgexpand.c (stack_var): Remove OFFSET...
16617         (add_stack_var): ...and its reference here...
16618         (expand_stack_vars): ...and here.
16619         (stack_var_cmp): Sort by descending order of size.
16620         (partition_stack_vars): Change heuristic.
16621         (union_stack_vars): Fix to reflect changes in partition_stack_vars.
16622         (dump_stack_var_partition): Add newline after each partition.
16623
16624 2011-04-21  Dimitrios Apostolou  <jimis@gmx.net>
16625             Jeff Law  <law@redhat.com>
16626
16627         * gengtype-state.c (read_a_state_token): Fix argument to obstack_free.
16628         * gengtype.c (matching_file_name_substitute): Likewise.
16629
16630 2011-04-21  Richard Guenther  <rguenther@suse.de>
16631
16632         PR lto/48703
16633         * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of DECL_NAME.
16634
16635 2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
16636
16637         * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
16638
16639 2011-04-21  Richard Guenther  <rguenther@suse.de>
16640
16641         * Makefile.in (site.exp): Do not use tmp0 but site.tmp as temporary
16642         file name.
16643
16644 2011-04-21  Richard Guenther  <rguenther@suse.de>
16645
16646         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
16647         MEM_REF and TARGET_MEM_REF, do not care about INDIRECT_REFs.
16648         Use DECL_P, not SSA_VAR_P.
16649         (ptr_derefs_may_alias_p): Likewise.
16650         (ptr_deref_may_alias_ref_p_1): Likewise.
16651         (decl_refs_may_alias_p): Likewise.
16652         (refs_may_alias_p_1): Likewise.
16653         (ref_maybe_used_by_call_p_1): Likewise.
16654         (call_may_clobber_ref_p_1): Likewise.
16655         (indirect_ref_may_alias_decl_p): Assume indirect refrences
16656         are either MEM_REF or TARGET_MEM_REF.
16657         (indirect_refs_may_alias_p): Likewise.
16658         * calls.c (emit_call_1): Build a MEM_REF instead of an INDIRECT_REF
16659         for MEM_EXPR of indirect calls.
16660
16661 2011-04-21  Tristan Gingold  <gingold@adacore.com>
16662
16663         * vmsdbgout.c (write_srccorr): Compute file length from the string.
16664         (dst_file_info_struct): Remove flen field.
16665         (lookup_filename): Remove code that set flen field.
16666
16667 2011-04-21  Tristan Gingold  <gingold@adacore.com>
16668
16669         * config/ia64/ia64.c (ia64_start_function): Add a guard.
16670
16671 2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
16672
16673         PR target/48708
16674         * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
16675         vec_extract and vec_concat for non-SSE4_1 targets.
16676
16677 2011-04-21  Richard Guenther  <rguenther@suse.de>
16678
16679         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Handle
16680         return statements.
16681
16682 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
16683
16684         * config/i386/cygming.h (union tree_node, TREE): Don't define or
16685         undefine.
16686         (FILE): Don't undefine.
16687
16688 2011-04-21  Joseph Myers  <joseph@codesourcery.com>
16689
16690         * config/alpha/alpha.c (struct machine_function): Use rtx, not
16691         struct rtx_def *.
16692         * config/bfin/bfin.h (bfin_cc_rtx, bfin_rets_rtx): Use rtx, not
16693         struct rtx_def *.
16694         * config/cris/cris-protos.h (STDIO_INCLUDED): Don't define.
16695         * config/h8300/h8300.h (struct cum_arg): Use rtx, not struct rtx_def *.
16696         * config/iq2000/iq2000.h (struct iq2000_args): Use rtx, not struct
16697         rtx_def *.
16698         * config/m32c/m32c-protos.h (MM, UINT): Don't define.  Expand
16699         definitions where used.
16700         * config/microblaze/microblaze.h (struct microblaze_args): Use
16701         rtx, not struct rtx_def *.
16702         * config/pa/pa-protos.h (return_addr_rtx): Use rtx, not struct
16703         rtx_def *.
16704         * config/pa/pa.h (hppa_pic_save_rtx): Use rtx, not struct rtx_def *.
16705         * config/pdp11/pdp11.h (cc0_reg_rtx): Use rtx, not struct rtx_def *.
16706         * config/sh/sh-protos.h (sfunc_uses_reg, get_fpscr_rtx): Use rtx,
16707         not struct rtx_def *.
16708         * config/sh/sh.h (sh_compare_op0, sh_compare_op1): Use rtx, not
16709         struct rtx_def *.
16710         * config/spu/spu-protos.h (spu_float_const): Use rtx, not struct
16711         rtx_def *.
16712         * config/spu/spu.c (spu_float_const): Use rtx, not struct rtx_def *.
16713
16714 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
16715
16716         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block): Use
16717         operand_equal_p to compare DR_BASE_ADDRESSes.
16718         (vect_check_interleaving): Likewise.
16719
16720 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
16721
16722         PR target/46329
16723         * config/arm/arm.c (arm_legitimate_constant_p_1): Return false
16724         for all Neon struct constants.
16725
16726 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
16727
16728         * target.def (legitimate_constant_p): New hook.
16729         * doc/tm.texi.in (LEGITIMATE_CONSTANT_P): Replace with...
16730         (TARGET_LEGITIMATE_CONSTANT_P): ...this.
16731         * doc/tm.texi: Regenerate.
16732         * hooks.h (hook_bool_mode_rtx_true): Declare.
16733         * hooks.c (hook_bool_mode_rtx_true): Define.
16734         * system.h (LEGITIMATE_CONSTANT_P): Poison.
16735         * calls.c (precompute_register_parameters): Replace uses of
16736         LEGITIMATE_CONSTANT_P with targetm.legitimate_constant_p.
16737         (emit_library_call_value_1): Likewise.
16738         * expr.c (move_block_to_reg, can_store_by_pieces, emit_move_insn)
16739         (compress_float_constant, emit_push_insn, expand_expr_real_1): Likewise.
16740         * ira-costs.c (scan_one_insn): Likewise.
16741         * recog.c (general_operand, immediate_operand): Likewise.
16742         * reload.c (find_reloads_toplev, find_reloads_address_part): Likewise.
16743         * reload1.c (init_eliminable_invariants): Likewise.
16744
16745         * config/alpha/alpha-protos.h (alpha_legitimate_constant_p): Add a
16746         mode argument.
16747         * config/alpha/alpha.h (LEGITIMATE_CONSTANT_P): Delete.
16748         * config/alpha/alpha.c (alpha_legitimate_constant_p): Add a mode
16749         argument.
16750         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16751         * config/alpha/predicates.md (input_operand): Update call to
16752         alpha_legitimate_constant_p.
16753
16754         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Delete.
16755         * config/arm/arm.h (ARM_LEGITIMATE_CONSTANT_P): Likewise.
16756         (THUMB_LEGITIMATE_CONSTANT_P, LEGITIMATE_CONSTANT_P): Likewise.
16757         * config/arm/arm.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16758         (arm_legitimate_constant_p_1, thumb_legitimate_constant_p)
16759         (arm_legitimate_constant_p): New functions.
16760         (arm_cannot_force_const_mem): Make static.
16761
16762         * config/avr/avr.h (LEGITIMATE_CONSTANT_P): Delete.
16763
16764         * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Delete.
16765         * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Delete.
16766         * config/bfin/bfin.c (expand_move): Use targetm.legitimate_constant_p
16767         instead of bfin_legitimate_constant_p.
16768         (bfin_legitimate_constant_p): Make static.  Add a mode argument.
16769         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16770
16771         * config/cris/cris.h (LEGITIMATE_CONSTANT_P): Delete.
16772
16773         * config/fr30/fr30.h (LEGITIMATE_CONSTANT_P): Delete.
16774
16775         * config/frv/frv-protos.h (frv_legitimate_constant_p): Delete.
16776         * config/frv/frv.h (LEGITIMATE_CONSTANT_P): Delete.
16777         * config/frv/frv.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16778         (frv_legitimate_constant_p): Make static.  Add a mode argument.
16779
16780         * config/h8300/h8300-protos.h (h8300_legitimate_constant_p): Delete.
16781         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Likewise.
16782         * config/h8300/h8300.c (h8300_legitimate_constant_p): Likewise.
16783
16784         * config/i386/i386-protos.h (legitimate_constant_p): Delete.
16785         * config/i386/i386.h (LEGITIMATE_CONSTANT_P): Likewise.
16786         * config/i386/i386.c (legitimate_constant_p): Rename to...
16787         (ix86_legitimate_constant_p): ...this.  Make static.  Add a mode
16788         argument.
16789         (ix86_cannot_force_const_mem): Update accordingly.
16790         (ix86_legitimate_address_p): Likewise.
16791         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16792         * config/i386/i386.md: Update commentary.
16793
16794         * config/ia64/ia64-protos.h (ia64_legitimate_constant_p): Delete.
16795         * config/ia64/ia64.h (LEGITIMATE_CONSTANT_P): Likewise.
16796         * config/ia64/ia64.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16797         (ia64_legitimate_constant_p): Make static.  Add a mode argument.
16798
16799         * config/iq2000/iq2000.h (LEGITIMATE_CONSTANT_P): Delete.
16800
16801         * config/lm32/lm32-protos.h (lm32_legitimate_constant_p): Delete.
16802         * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Likewise.
16803         * config/lm32/lm32.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16804         (lm32_legitimate_constant_p): Make static.  Add a mode argument.
16805
16806         * config/m32c/m32c-protos.h (m32c_legitimate_constant_p): Delete.
16807         * config/m32c/m32c.h (LEGITIMATE_CONSTANT_P): Likewise.
16808         * config/m32c/m32c.c (m32c_legitimate_constant_p): Likewise.
16809
16810         * config/m32r/m32r.h (LEGITIMATE_CONSTANT_P): Delete.
16811         * config/m32r/m32r.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16812         (m32r_legitimate_constant_p): New function.
16813
16814         * config/m68k/m68k-protos.h (m68k_legitimate_constant_p): Declare.
16815         * config/m68k/m68k.h (CONSTANT_ADDRESS_P): Call it instead of
16816         LEGITIMATE_CONSTANT_P.
16817         (LEGITIMATE_CONSTANT_P): Delete.
16818         * config/m68k/m68k.c (m68k_expand_prologue): Call
16819         m68k_legitimate_constant_p instead of LEGITIMATE_CONSTANT_P.
16820         (m68k_legitimate_constant_p): New function.
16821         * config/m68k/m68k.md: Update comments.
16822
16823         * config/mcore/mcore.h (LEGITIMATE_CONSTANT_P): Delete.
16824         * config/mcore/mcore.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16825         (mcore_legitimate_constant_p): New function.
16826
16827         * config/mep/mep-protos.h (mep_legitimate_constant_p): Delete.
16828         * config/mep/mep.h (LEGITIMATE_CONSTANT_P): Likewise.
16829         * config/mep/mep.c (mep_legitimate_constant_p): Make static.
16830         Add a mode argument.
16831         (mep_legitimate_address): Update accordingly.
16832         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16833
16834         * config/microblaze/microblaze-protos.h (microblaze_const_double_ok):
16835         Delete.
16836         * config/microblaze/microblaze.h (LEGITIMATE_CONSTANT_P): Likewise.
16837         * config/microblaze/microblaze.c (microblaze_const_double_ok): Make
16838         static.  Check OP's mode for VOIDmode.
16839         (microblaze_legitimate_constant_p): New function.
16840         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16841
16842         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Delete.
16843         * config/mips/mips.c (mips_legitimate_constant_p): New function.
16844         (mips_cannot_force_const_mem): Use it instead of LEGITIMATE_CONSTANT_P.
16845         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16846         * config/mips/predicates.md: Update comments.
16847
16848         * config/mmix/mmix-protos.h (mmix_legitimate_constant_p): Delete.
16849         * config/mmix/mmix.h (LEGITIMATE_CONSTANT_P): Likewise.
16850         * config/mmix/mmix.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16851         (mmix_legitimate_constant_p): Make static, return a bool, and take
16852         a mode argument.
16853         (mmix_print_operand_address): Update accordingly.
16854
16855         * config/mn10300/mn10300-protos.h (mn10300_legitimate_constant_p):
16856         Delete.
16857         * config/mn10300/mn10300.h (LEGITIMATE_CONSTANT_P): Likewise.
16858         * config/mn10300/mn10300.c (mn10300_legitimate_constant_p): Make
16859         static.  Add a mode argument.
16860         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16861
16862         * config/moxie/moxie.h (LEGITIMATE_CONSTANT_P): Delete.
16863
16864         * config/pa/pa.h (LEGITIMATE_CONSTANT_P): Delete.
16865         * config/pa/pa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16866         (pa_legitimate_constant_p): New function.
16867
16868         * config/picochip/picochip.h (LEGITIMATE_CONSTANT_P): Delete.
16869
16870         * config/pdp11/pdp11.h (LEGITIMATE_CONSTANT_P): Delete.
16871         * config/pdp11/pdp11.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16872         (pdp11_legitimate_constant_p): New function.
16873
16874         * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Delete.
16875         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16876         (rs6000_legitimate_constant_p): New function.
16877
16878         * config/rx/rx-protos.h (rx_is_legitimate_constant): Replace with...
16879         (rx_legitimate_constant_p): ...this.
16880         * config/rx/rx.h (LEGITIMATE_CONSTANT_P): Delete.
16881         * config/rx/rx.c (rx_is_legitimate_constant): Replace with...
16882         (rx_legitimate_constant_p): ...this.
16883         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16884         * config/rx/rx.md (mov<register_modes:mode>): Update accordingly.
16885
16886         * config/s390/s390-protos.h (legitimate_constant_p): Delete.
16887         * config/s390/s390.h (LEGITIMATE_CONSTANT_P): Likewise.
16888         * config/s390/s390.c (legitimate_constant_p): Rename to...
16889         (s390_legitimate_constant_p): ...this.  Make static, return a bool,
16890         and add a mode argument.
16891         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16892
16893         * config/score/score.h (LEGITIMATE_CONSTANT_P): Delete.
16894
16895         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Delete.
16896         * config/sh/sh.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16897         (sh_legitimate_constant_p): New function.
16898
16899         * config/sparc/sparc-protos.h (legitimate_constant_p): Delete.
16900         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Delete.
16901         * config/sparc/sparc.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16902         (legitimate_constant_p): Rename to...
16903         (sparc_legitimate_constant_p): ...this.  Make static.  Add a mode
16904         argument.
16905         (constant_address_p): Update accordingly.
16906
16907         * config/spu/spu-protos.h (spu_legitimate_constant_p): Add a mode
16908         argument and return a bool.
16909         * config/spu/spu.h (LEGITIMATE_CONSTANT_P): Delete.
16910         * config/spu/spu.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16911         (spu_legitimate_constant_p): Add a mode argument and return a bool.
16912         (spu_rtx_costs): Update accordingly.
16913         * config/spu/predicates.md (vec_imm_operand): Likewise.
16914
16915         * config/stormy16/stormy16.h (LEGITIMATE_CONSTANT_P): Delete.
16916
16917         * config/v850/v850.h (LEGITIMATE_CONSTANT_P): Delete.
16918         * config/v850/v850.c (v850_legitimate_constant_p): New function.
16919         (TARGET_LEGITIMATE_CONSTANT_P): Define.
16920
16921         * config/vax/vax-protos.h (legitimate_constant_p): Delete.
16922         * config/vax/vax.h (LEGITIMATE_CONSTANT_P): Likewise.
16923         * config/vax/vax.c (legitimate_constant_p): Likewise.
16924
16925         * config/xtensa/xtensa.h (LEGITIMATE_CONSTANT_P): Delete.
16926         * config/xtensa/xtensa.c (TARGET_LEGITIMATE_CONSTANT_P): Define.
16927         (xtensa_legitimate_constant_p): New function.
16928
16929 2011-04-21  Richard Sandiford  <richard.sandiford@linaro.org>
16930
16931         * target.def (cannot_force_const_mem): Add a mode argument.
16932         * doc/tm.texi.in (TARGET_CANNOT_FORCE_CONST_MEM): Update accordingly.
16933         * doc/tm.texi: Regenerate.
16934         * hooks.h (hook_bool_mode_rtx_false): Declare.
16935         * hooks.c (hook_bool_mode_const_rtx_false): Fix commentary.
16936         (hook_bool_mode_const_rtx_true): Likewise.
16937         (hook_bool_mode_rtx_false): New function.
16938         * reload.c (CONST_POOL_OK_P): Take a mode argument and require it
16939         to be non-VOID.  Update call to cannot_force_const_mem.
16940         (find_reloads): Update accordingly.
16941         * varasm.c (force_const_mem): Update call to cannot_force_const_mem.
16942         * config/alpha/alpha.c (alpha_cannot_force_const_mem): Add a mode
16943         argument.
16944         * config/arm/arm-protos.h (arm_cannot_force_const_mem): Likewise.
16945         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Update call.
16946         * config/arm/arm.c (arm_cannot_force_const_mem): Add a mode argument.
16947         * config/bfin/bfin.c (bfin_cannot_force_const_mem): Likewise.
16948         * config/frv/frv.c (frv_cannot_force_const_mem): Likewise.
16949         * config/i386/i386.c (ix86_cannot_force_const_mem): Likewise.
16950         * config/ia64/ia64.c (ia64_cannot_force_const_mem): Likewise.
16951         * config/m68k/m68k.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
16952         (m68k_cannot_force_const_mem): ...this new function.
16953         * config/mips/mips.c (mips_cannot_force_const_mem): Add a mode
16954         argument.
16955         (mips_const_insns, mips_legitimize_const_move): Update calls.
16956         (mips_secondary_reload_class): Likewise.
16957         * config/pa/pa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to...
16958         (pa_cannot_force_const_mem): ...this new function.
16959         * config/rs6000/rs6000.c (TARGET_CANNOT_FORCE_CONST_MEM): Reefine to...
16960         (rs6000_cannot_force_const_mem): ...this new function.
16961         * config/s390/s390.c (s390_cannot_force_const_mem): Add a mode
16962         argument.
16963         * config/sparc/sparc.c (sparc_cannot_force_const_mem): Likewise.
16964         * config/xtensa/xtensa.c (TARGET_CANNOT_FORCE_CONST_MEM): Redefine
16965         to...
16966         (xtensa_cannot_force_const_mem): ...this new function.
16967
16968 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
16969
16970         * config/mips/mips.c (mips16_build_function_stub): Call
16971         build_function_type_list instead of build_function_type.
16972         (mips16_build_call_stub): Likewise.
16973
16974 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
16975
16976         * config/mep/mep.c (mep_init_builtins): Call build_function_type_list
16977         instead of build_function_type.
16978
16979 2011-04-20  Nathan Froyd  <froydnj@codesourcery.com>
16980
16981         * config/pa/pa.c (pa_init_builtins): Call build_function_type_list
16982         instead of build_function_type.
16983
16984 2011-04-20  Uros Bizjak  <ubizjak@gmail.com>
16985
16986         PR target/48678
16987         * config/i386/i386.md (insv): Change operand 0 constraint to
16988         "register_operand".  Change operand 1 and 2 constraint to
16989         "const_int_operand".  Expand to pinsr{b,w,d,q} * when appropriate.
16990         * config/i386/sse.md (sse4_1_pinsrb): Export.
16991         (sse2_pinsrw): Ditto.
16992         (sse4_1_pinsrd): Ditto.
16993         (sse4_1_pinsrq): Ditto.
16994         * config/i386/i386-protos.h (ix86_expand_pinsr): Add prototype.
16995         * config/i386/i386.c (ix86_expand_pinsr): New.
16996
16997 2011-04-20  Easwaran Raman  <eraman@google.com>
16998
16999         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
17000         containing union type only with -fstrict-aliasing.
17001
17002 2011-04-20  Jim Meyering  <meyering@redhat.com>
17003
17004         Remove useless if-before-free tests.
17005         * calls.c (expand_call, save_area): Likewise.
17006         * cfgcleanup.c (try_forward_edges): Likewise.
17007         * collect2.c (collect_execute): Likewise.
17008         * config/i386/i386.c (ix86_valid_target_attribute_tree): Likewise.
17009         * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
17010         * coverage.c (coverage_checksum_string): Likewise.
17011         * cse.c (init_cse_reg_info, delete_trivially_dead_insns): Likewise.
17012         * cselib.c (cselib_init): Likewise.
17013         * df-core.c (rest_of_handle_df_finish, df_analyze): Likewise.
17014         (df_set_clean_cfg): Likewise.
17015         * function.c (free_after_compilation): Likewise.
17016         * gcc.c (do_spec_1, main): Likewise.
17017         * gcov.c (create_file_names): Likewise.
17018         * gensupport.c (identify_predicable_attribute): Likewise.
17019         * graphite-clast-to-gimple.c (save_clast_name_index): Likewise.
17020         * graphite-sese-to-poly.c (free_data_refs_aux): Likewise.
17021         * haifa-sched.c (haifa_finish_h_i_d): Likewise.
17022         * ipa-prop.c (ipa_free_node_params_substructures): Likewise.
17023         * ipa-pure-const.c (local_pure_const): Likewise.
17024         * ipa-reference.c (propagate): Likewise.
17025         * ira-costs.c (free_ira_costs): Likewise.
17026         * ira.c (free_register_move_costs, build_insn_chain): Likewise.
17027         * matrix-reorg.c (mat_free): Likewise.
17028         * prefix.c (get_key_value): Likewise.
17029         * profile.c (compute_value_histograms): Likewise.
17030         * reload1.c (free_reg_equiv): Likewise.
17031         * sched-deps.c (free_deps): Likewise.
17032         * sel-sched-ir.c (fence_clear): Likewise.
17033         * sese.c (set_rename, if_region_set_false_region): Likewise.
17034         * tree-data-ref.c (free_rdg): Likewise.
17035         * tree-eh.c (lower_try_finally): Likewise.
17036         * tree-ssa-coalesce.c (delete_coalesce_list): Likewise.
17037         * tree-ssa-live.c (delete_var_map): Likewise.
17038         * tree-ssa-loop-ivopts.c (free_loop_data): Likewise.
17039         * tree-ssa-pre.c (phi_trans_add): Likewise.
17040
17041 2011-04-20  Jakub Jelinek  <jakub@redhat.com>
17042
17043         PR tree-optimization/48611
17044         * tree-eh.c (note_eh_region_may_contain_throw): Don't propagate
17045         beyond ERT_MUST_NOT_THROW region.
17046
17047 2011-04-20  Catherine Moore  <clm@codesourcery.com>
17048
17049         * config/mips/mips.opt (mfix-24k): New.
17050         * config/mips/mips.h (ASM_SPEC): Handle -mfix-24k.
17051         * config/mips/mips.md (length): Increase by 4 for stores if
17052         fixing 24K errata.
17053         * config/mips/mips.c (mips_reorg_process_insns): Do not allow
17054         all noreorder if fixing 24K errata.
17055         * doc/invoke.texi: Document mfix-24k.
17056
17057 2011-04-20  Chung-Lin Tang  <cltang@codesourcery.com>
17058
17059         * config/arm/arm.c (arm_legitimize_reload_address): For NEON
17060         quad-word modes, reduce to 9-bit index range when above 1016 limit.
17061
17062 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
17063
17064         * config/arm/arm.c (arm_gen_constant): Move movw support ....
17065         (const_ok_for_op): ... to here.
17066
17067 2011-04-20  Kai Tietz  <ktietz@redhat.com>
17068
17069         * fold-const.c (fold_binary_loc): Add handling for (X & ~Y) | (~X & Y)
17070         and (X && !Y) | (!X && Y) optimization to (X ^ Y).
17071
17072 2011-04-20  Andrew Stubbs  <ams@codesourcery.com>
17073
17074         * config/arm/arm.c (arm_gen_constant): Remove redundant can_invert.
17075
17076 2011-04-20  Richard Guenther  <rguenther@suse.de>
17077
17078         PR tree-optimization/47892
17079         * tree-if-conv.c (if_convertible_stmt_p): Const builtins
17080         are if-convertible.
17081
17082 2011-04-20  Eric Botcazou  <ebotcazou@adacore.com>
17083
17084         * config/alpha/vms.h (ASM_OUTPUT_ADDR_DIFF_ELT): Do not redefine.
17085
17086 2011-04-20  Tristan Gingold  <gingold@adacore.com>
17087
17088         * config/alpha/vms.h (LINK_SPEC): Do not use vms-dwarf2.o for gnu-ld.
17089
17090 2011-04-20  Georg-Johann Lay  <avr@gjlay.de>
17091
17092         PR target/18145
17093
17094         * config/avr/avr.h (TARGET_ASM_INIT_SECTIONS): Delete.
17095         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
17096         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
17097         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define.
17098         (TARGET_ASM_NAMED_SECTION): Change to avr_asm_named_section.
17099
17100         * config/avr/avr-protos.h (avr_asm_output_aligned_common):
17101         New prototype.
17102
17103         * config/avr/avr.c (TARGET_ASM_INIT_SECTIONS): Define.
17104         (avr_asm_named_section, avr_asm_output_aligned_common,
17105         avr_output_data_section_asm_op, avr_output_bss_section_asm_op):
17106         New functions to update...
17107         (avr_need_clear_bss_p, avr_need_copy_data_p): ...these new variables.
17108         (avr_asm_init_sections): Overwrite section callbacks for
17109         data_section, bss_section.
17110         (avr_file_start): Move output of __do_copy_data, __do_clear_bss
17111         from here to...
17112         (avr_file_end): ...here.
17113
17114 2011-04-20  Richard Guenther  <rguenther@suse.de>
17115
17116         PR middle-end/48695
17117         * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
17118         objects and types here.  Adjust for their offset before comparing.
17119
17120 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
17121
17122         * tree-vect-stmts.c (vectorizable_store): Only chain one related
17123         statement per copy.
17124
17125 2011-04-20  Richard Sandiford  <richard.sandiford@linaro.org>
17126
17127         * Makefile.in (INTERNAL_FN_DEF, INTERNAL_FN_H): Define.
17128         (GIMPLE_H): Include $(INTERNAL_FN_H).
17129         (OBJS-common): Add internal-fn.o.
17130         (internal-fn.o): New rule.
17131         * internal-fn.def: New file.
17132         * internal-fn.h: Likewise.
17133         * internal-fn.c: Likewise.
17134         * gimple.h: Include internal-fn.h.
17135         (GF_CALL_INTERNAL): New gf_mask.
17136         (gimple_statement_call): Put fntype into a union with a new
17137         internal_fn field.
17138         (gimple_build_call_internal): Declare.
17139         (gimple_build_call_internal_vec): Likewise.
17140         (gimple_call_same_target_p): Likewise.
17141         (gimple_call_internal_p): New function.
17142         (gimple_call_internal_fn): Likewise.
17143         (gimple_call_fntype): Return null for internal calls.
17144         (gimple_call_set_fntype): Assert that the function is not internal.
17145         (gimple_call_set_fn): Likewise.
17146         (gimple_call_set_fndecl): Likewise.
17147         (gimple_call_set_internal_fn): New function.
17148         (gimple_call_addr_fndecl): Handle null functions.
17149         (gimple_call_return_type): Likewise null types.
17150         * gimple.c (gimple_build_call_internal_1): New function.
17151         (gimple_build_call_internal): Likewise.
17152         (gimple_build_call_internal_vec): Likewise.
17153         (gimple_call_same_target_p): Likewise.
17154         (gimple_call_flags): Handle calls to internal functions.
17155         (gimple_call_fnspec): New function.
17156         (gimple_call_arg_flags, gimple_call_return_flags): Use it.
17157         (gimple_has_side_effects): Handle null functions.
17158         (gimple_rhs_has_side_effects): Likewise.
17159         (gimple_call_copy_skip_args): Handle calls to internal functions.
17160         * cfgexpand.c (expand_call_stmt): Likewise.
17161         * expr.c (expand_expr_real_1): Assert that the call isn't internal.
17162         * gimple-fold.c (gimple_fold_call): Handle null functions.
17163         (gimple_fold_stmt_to_constant_1): Don't fold
17164         calls to internal functions.
17165         * gimple-low.c (gimple_check_call_args): Handle calls to internal
17166         functions.
17167         * gimple-pretty-print.c (dump_gimple_call): Likewise.
17168         * ipa-prop.c (ipa_analyze_call_uses): Handle null functions.
17169         * tree-cfg.c (verify_gimple_call): Handle calls to internal functions.
17170         (do_warn_unused_result): Likewise.
17171         * tree-eh.c (same_handler_p): Use gimple_call_same_target_p.
17172         * tree-ssa-ccp.c (ccp_fold_stmt): Handle calls to internal functions.
17173         * tree-ssa-dom.c (hashable_expr): Use the gimple statement to record
17174         the target of a call.
17175         (initialize_hash_element): Update accordingly.
17176         (hashable_expr_equal_p): Use gimple_call_same_target_p.
17177         (iterative_hash_hashable_expr): Handle calls to internal functions.
17178         (print_expr_hash_elt): Likewise.
17179         * tree-ssa-pre.c (can_value_number_call): Likewise.
17180         (eliminate): Handle null functions.
17181         * tree-ssa-sccvn.c (visit_use): Handle calls to internal functions.
17182         * tree-ssa-structalias.c (get_fi_for_callee): Likewise.
17183         (find_func_aliases): Likewise.
17184         * value-prof.c (gimple_ic_transform): Likewise.
17185         (gimple_indirect_call_to_profile): Likewise.
17186         * lto-streamer-in.c (input_gimple_stmt): Likewise.
17187         * lto-streamer-out.c (output_gimple_stmt): Likewise.
17188
17189 2011-04-19  Jan Hubicka  <jh@suse.cz>
17190
17191         * ipa-inline-transform.c (save_inline_function_body): Add comments.
17192         * ipa-inline.c (inline_small_functions): Compute summaries first,
17193         populate heap later.
17194
17195 2011-04-19  Jan Hubicka  <jh@suse.cz>
17196
17197         * cgraph.h (save_inline_function_body): Remove.
17198         * ipa-inline-transform.c: New file, broke out of...
17199         * ipa-inline.c: ... this one; Update toplevel comment.
17200         (ncalls_inlined, nfunctions_inlined): Move to ipa-inline-transform.c;
17201         make global.
17202         (update_noncloned_frequencies): Move to ipa-inline-transform.c
17203         (cgraph_mark_inline_edge): Rename to inline_call; move to
17204         ipa-inline-transform.c.
17205         (cgraph_clone_inlined_nodes): Rename to clone_inlined_nodes;
17206         move to ipa-inline-transform.c
17207         (recursive_inlining, inline_small_functions, flatten_function,
17208         ipa_inline, inline_always_inline_functions,
17209         early_inline_small_functions): Update.
17210         (inline_transform): Move to ipa-inline-transform.c.
17211         * ipa-inline.h (inline_call, inline_transform, clone_inlined_nodes):
17212         Declare.
17213         * Makefile.in (ipa-inline-transform.o): New file.
17214         * cgraphunit.c (save_inline_function_body): Move to
17215         ipa-inline-transform.c
17216
17217 2011-04-19  DJ Delorie  <dj@redhat.com>
17218
17219         * config/m32c/m32c.c (m32c_emit_epilogue): Don't try to push
17220         registers if we already know there aren't any.
17221         (m32c_emit_epilogue): Don't emit a barrier here.
17222         (m32c_emit_eh_epilogue): Likewise.
17223         * config/m32c/blkmov.md (movstr): Don't fail on wrong-type
17224         operands at expand time.
17225         * config/m32c/m32c.h (WCHAR_TYPE_SIZE): Change to 4 to match "long
17226         int" wchar type.
17227         (REG_CLASS_CONTENTS, reg_class, REG_CLASS_NAMES): Remove
17228         duplicates.  Provide aliases instead.
17229         * config/m32c/prologue.md (eh_return): Emit a barrier here.
17230         (eh_epilogue): Add a "(return)" here as a hint to other parts of
17231         the compiler.
17232
17233 2011-04-19  Anatoly Sokolov  <aesok@post.ru>
17234
17235         * config/sparc/sparc.h (GENERAL_OR_I64, REGISTER_MOVE_COST): Remove.
17236         * config/sparc/sparc.c (TARGET_REGISTER_MOVE_COST): Define.
17237         (general_or_i64_p, sparc_register_move_cost): New function.
17238
17239 2011-04-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17240
17241         * doc/install.texi (Configuration, --enable-threads): Remove mach.
17242         Add lynx, mipssde.  Sort table.
17243
17244 2011-04-19  Xinliang David Li  <davidxl@google.com>
17245
17246         * ipa-cp.c (ipcp_update_profiling): Assert that scale_completement is
17247         not negative.
17248
17249 2011-04-19  Jakub Jelinek  <jakub@redhat.com>
17250
17251         PR target/48678
17252         * config/i386/i386.md (movstrict<mode>): FAIL if operands[0]
17253         is a SUBREG with non-MODE_INT mode inside of it.
17254
17255 2011-04-19  Martin Jambor  <mjambor@suse.cz>
17256
17257         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Devirtualize
17258         also according to actual contants.
17259         * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): New function.
17260         (gimple_fold_call): Use it.
17261         * gimple.h (gimple_extract_devirt_binfo_from_cst): Declare.
17262
17263 2011-04-19  Martin Jambor  <mjambor@suse.cz>
17264
17265         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Return false for scalar
17266         non-pointer assignments.
17267
17268 2011-04-19  Martin Jambor  <mjambor@suse.cz>
17269
17270         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Take into
17271         account anc_offset and otr_type from the indirect edge info.
17272         * ipa-prop.c (get_ancestor_addr_info): New function.
17273         (compute_complex_ancestor_jump_func): Assignment analysis moved to
17274         get_ancestor_addr_info, call it.
17275         (ipa_note_param_call): Do not initialize information about polymorphic
17276         calls, return the indirect call graph edge.  Remove the last
17277         parameter, adjust all callers.
17278         (ipa_analyze_virtual_call_uses): Process also calls to ancestors of
17279         parameters.  Initialize polymorphic information in the indirect edge.
17280
17281 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
17282
17283         PR lto/48148
17284         * gimple.c (gimple_types_compatible_p_1) <ENUMERAL_TYPE>: Do not merge
17285         the types if they have different enumeration identifiers.
17286
17287 2011-04-19  Jan Hubicka  <jh@suse.cz>
17288
17289         * cgraph.h (cgraph_optimize_for_size_p): Declare.
17290         * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
17291         * predict.c (cgraph_optimize_for_size_p): Break out from ...
17292         (optimize_function_for_size_p) ... here.
17293
17294 2011-04-19  Richard Guenther  <rguenther@suse.de>
17295
17296         PR lto/48207
17297         * tree.c (free_lang_data): Do not reset the decl-assembler-name
17298         langhook.
17299
17300 2011-04-19  Eric Botcazou  <ebotcazou@adacore.com>
17301
17302         * tree-inline.c (expand_call_inline): Do not issue a -Winline warning
17303         if DECL_NO_INLINE_WARNING_P is set on the function.
17304
17305 2011-04-19  Bernd Schmidt  <bernds@codesourcery.com>
17306
17307         PR fortran/47976
17308         * reload1.c (inc_for_reload): Return void. All callers changed.
17309         (emit_input_reload_insns): Don't try to delete previous output
17310         reloads to a register, or record spill_reg_store for autoincs.
17311
17312 2011-04-19  Basile Starynkevitch  <basile@starynkevitch.net>
17313
17314         * gengtype.h: Updated copyright year.
17315         (struct input_file_st): Add inpisplugin field.
17316         (type_fileloc): New function.
17317         * gengtype.c
17318         (write_typed_struct_alloc_def): Add gcc_assert.
17319         (write_typed_alloc_defns): Ditto. Don't output for plugin files.
17320         (write_typed_alloc_defns): Don't output for plugin files.
17321         (input_file_by_name): Clear inpisplugin field.
17322         (main): Set inpisplugin field for plugin files.
17323
17324 2011-04-19  Nicola Pero  <nicola.pero@meta-innovation.com>
17325
17326         * gengtype-state.c (string_eq): New.
17327         (read_state): Use string_eq instead of strcmp when creating the
17328         state_ident_tab.
17329
17330 2011-04-19  Wei Guozhi  <carrot@google.com>
17331
17332         PR target/47855
17333         * config/arm/arm-protos.h (thumb1_legitimate_address_p): New prototype.
17334         * config/arm/arm.c (thumb1_legitimate_address_p): Remove the static
17335         linkage.
17336         * config/arm/constraints.md (Uu): New constraint.
17337         * config/arm/arm.md (*arm_movqi_insn): Compute attr "length".
17338
17339 2011-04-19  Tristan Gingold  <gingold@adacore.com>
17340
17341         * config.gcc (-*-*-*vms): Added.
17342         (alpha64-dec-*vms*,alpha*-dec-*vms*, ia64-hp-*vms*): Common
17343         definitions moved.
17344         * config/vms/vms-ld.c: New file.
17345         * config/vms/vms-ar.c: New file.
17346         * config/vms/t-vmsnative: New file.
17347
17348 2011-04-18  Xinliang David Li  <davidxl@google.com>
17349
17350         * final.c (dump_basic_block_info): Use ASM_COMMENT_START.
17351
17352 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
17353
17354         PR middle-end/48661
17355         * gimple-fold.c (gimple_get_virt_method_for_binfo): Return NULL
17356         if TREE_TYPE (v) is non-NULL.
17357
17358         * gimple-fold.c (gimple_get_virt_method_for_binfo): Renamed from
17359         gimple_get_virt_mehtod_for_binfo.
17360         * gimple.h (gimple_get_virt_method_for_binfo): Likewise.
17361         * ipa-cp.c (ipcp_process_devirtualization_opportunities): Adjust
17362         callers.
17363         * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
17364
17365 2011-04-18  Michael Matz  <matz@suse.de>
17366             Steve Ellcey  <sje@cup.hp.com>
17367
17368         * expr.c (expand_expr_real_2) <CASE_CONVERT>: If OP0 is a constant,
17369         use its mode as source mode if it isn't VOIDmode.
17370
17371 2011-04-18  Dennis, CHENG Renquan  <crquan@fedoraproject.org>
17372
17373         * doc/passes.texi: Fill crossref nodes.
17374
17375 2011-04-18  Jim Meyering  <meyering@redhat.com>
17376
17377         Fix doubled-word typos in comments and strings
17378         * config/alpha/vms-unwind.h: s/for for/for/
17379         * config/arm/unwind-arm.h: Likewise.
17380         * config/microblaze/microblaze.c: Likewise.
17381         * config/sh/constraints.md: s/in in/in/
17382         * tree-cfg.c (verify_types_in_gimple_reference): Likewise.
17383
17384 2011-04-18  Uros Bizjak  <ubizjak@gmail.com>
17385
17386         * config/i386/i386.h (SSE_VEC_FLOAT_MODE_P): Remove.
17387         (AVX_FLOAT_MODE_P): Ditto.
17388         (AVX128_VEC_FLOAT_MODE_P): Ditto.
17389         (AVX256_VEC_FLOAT_MODE_P): Ditto.
17390         (AVX_VEC_FLOAT_MODE_P): Ditto.
17391         * config/i386/i386.md (UNSPEC_MASKLOAD): Remove.
17392         (UNSPEC_MASKSTORE): Ditto.
17393         * config/i386/sse.md (<sse>_movmsk<ssemodesuffix><avxmodesuffix>):
17394         Merge from <sse>_movmsk<ssemodesuffix> and
17395         avx_movmsk<ssemodesuffix>256.  Use VF mode iterator.
17396         (*sse2_maskmovdqu): Merge with *sse2_maskmovdqu_rex64.  Use P mode
17397         iterator.
17398         (avx_maskload<ssemodesuffix><avxmodesuffix>): New expander.
17399         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Ditto.
17400         (*avx_maskmov<ssemodesuffix><avxmodesuffix>): New insn.
17401
17402 2011-04-18  Jan Hubicka  <jh@suse.cz>
17403
17404         * ipa-inline.c (inline_small_functions): Fix pasto in previous patch.
17405
17406         * ipa-inline.c: Fix comment typos; do not inline gt-ipa-inline.h
17407         (want_inline_function_called_once_p): Break out the logic from
17408         ipa_inline.
17409         (edge_badness): Ensure that profile is not misupdated.
17410         (lookup_recursive_calls): Prioritize by call frequencies.
17411         (inline_small_functions): Move program size estimates here;
17412         actually process whole queue even when unit growth has been
17413         met. (to properly compute inline_failed reasons and for the
17414         case unit size decrease.) Revisit comments on recursive inlining.
17415         (ipa_inline): Remove unit summary code; first inline hot calls
17416         of functions called once, cold calls next.
17417         (order, nnodes): Remove unused variables.
17418         * Makefile.in (ipa-inline.o): No longer depent on ggc files.
17419         (GTFILES): Remove ipa-inline.c
17420         * sel-sched.c (fill_insns): Silence uninitialized var warning.
17421
17422 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
17423
17424         * dwarf2out.c (is_redundant_typedef): Add 'inline' to prototype.
17425
17426 2011-04-18  Jie Zhang  <jie@codesourcery.com>
17427             Richard Earnshaw  <rearnsha@arm.com>
17428
17429         * arm.c (neon_builtin_type_bits): Remove.
17430         (typedef enum neon_builtin_mode): New.
17431         (T_MAX): Don't define.
17432         (typedef enum neon_builtin_datum): Remove bits, codes[],
17433         num_vars and base_fcode.  Add mode, code and fcode.
17434         (VAR1, VAR2, VAR3, VAR4, VAR5, VAR6, VAR7, VAR8, VAR9
17435         VAR10): Change accordingly.
17436         (neon_builtin_data[]): Change accordingly
17437         (arm_init_neon_builtins): Change accordingly.
17438         (neon_builtin_compare): Remove.
17439         (locate_neon_builtin_icode): Remove.
17440         (arm_expand_neon_builtin): Change accordingly.
17441
17442         * arm.h (enum arm_builtins): Move to ...
17443         * arm.c (enum arm_builtins): ... here; and rearrange builtin code.
17444
17445         * arm.c (arm_builtin_decl): Declare.
17446         (TARGET_BUILTIN_DECL): Define.
17447         (enum arm_builtins): Correct ARM_BUILTIN_MAX.
17448         (arm_builtin_decls[]): New.
17449         (arm_init_neon_builtins): Store builtin declarations in
17450         arm_builtin_decls[].
17451         (arm_init_tls_builtins): Likewise.
17452         (arm_init_iwmmxt_builtins): Likewise.  Refactor initialization code.
17453         (arm_builtin_decl): New.
17454
17455 2011-04-18  Richard Guenther  <rguenther@suse.de>
17456
17457         * tree.c (upper_bound_in_type): Build properly canonicalized
17458         INTEGER_CSTs.
17459         (lower_bound_in_type): Likewise.
17460
17461 2011-04-18  Richard Guenther  <rguenther@suse.de>
17462
17463         * gimple.h (gimple_call_addr_fndecl): New function.
17464         (gimple_call_fndecl): Use it.
17465         * gimple-fold.c (gimple_fold_call): Fold away OBJ_TYPE_REFs
17466         for direct calls.
17467         * tree-ssa-ccp.c (ccp_fold_stmt): Remove OBJ_TYPE_REF folding.
17468         * tree-ssa-pre.c (eliminate): Also simplify indirect OBJ_TYPE_REFs.
17469
17470 2011-04-18  Richard Guenther  <rguenther@suse.de>
17471
17472         PR middle-end/48650
17473         * tree.c (build_string): STRING_CST is now derived from tree_typed.
17474
17475 2011-04-18  Eric Botcazou  <ebotcazou@adacore.com>
17476
17477         PR lto/48492
17478         * cfgexpand.c (expand_debug_expr) <VAR_DECL>: Return NULL for a
17479         DECL_IN_CONSTANT_POOL without RTL.
17480
17481 2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
17482             Ira Rosen  <ira.rosen@linaro.org>
17483
17484         PR target/48252
17485         * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
17486         to match neon_vzip/vuzp/vtrn_internal.
17487         * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
17488         outputs explicitly dependent on both inputs.
17489         (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
17490
17491 2011-04-18  Jakub Jelinek  <jakub@redhat.com>
17492
17493         PR tree-optimization/48616
17494         * tree-vect-stmts.c (vectorizable_shift): If SLP, determine
17495         whether the shift is by scalar or vector based on whether all SLP
17496         scalar stmts have the same rhs.
17497
17498 2011-04-17  Chung-Lin Tang  <cltang@codesourcery.com>
17499
17500         * config/arm/arm.c (neon_struct_mem_operand): Support POST_INC/PRE_DEC
17501         memory operands.
17502
17503 2011-04-17  Richard Sandiford  <rdsandiford@googlemail.com>
17504
17505         PR target/43700
17506         * config/mips/mips.c (mips_cfun_call_saved_reg_p): Handle global
17507         registers.
17508
17509 2011-04-17  Jan Hubicka  <jh@suse.cz>
17510
17511         * cgrpah.h (struct cgraph_node): Remove finalized_by_frontend.
17512         * cgrpahunit.c (cgraph_finalize_function): Do not set
17513         finalized_by_frontend.
17514         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
17515         finalized_by_frontend.
17516
17517 2011-04-17  Jan Hubicka  <jh@suse.cz>
17518
17519         * cgraph.c (cgraph_clone_node): Do not handle vtable_method
17520         * cgraph.h (struct cgraph_local_info): Drop vtable_method.
17521         * cgraphunit.c (cgraph_copy_node_for_versioning): Drop vtable_method.
17522         * lto-cgraph.c (lto_output_node, input_overwrite_node): Drop vtable
17523         method.
17524         * gimple-fold.c (can_refer_decl_in_current_unit_p): Mention PR20991 in
17525         gimple-fold.c
17526         * varasm.c (mark_decl_referenced): Drop vtable_method handling code.
17527
17528 2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
17529
17530         PR lto/48538
17531         * lto-cgraph.c (merge_profile_summaries): Check that lto_file_data
17532         is non-null before accessing it.
17533         (input_cgraph): Remove trailing spaces.
17534
17535 2011-04-17  Revital Eres  <revital.eres@linaro.org>
17536
17537         * params.def (sms-min-sc): New param flag.
17538         * modulo-sched.c (sms_schedule): Use it.
17539         * doc/invoke.texi (sms-min-sc): Document it.
17540
17541 2011-04-17  Jan Hubicka  <jh@suse.cz>
17542
17543         * lto-symtab.c (lto_cgraph_replace_node): When call statement is
17544         present, also set gimple_call_set_cannot_inline.
17545         * ipa-inline.c: Update toplevel comment.
17546         (MAX_TIME): Remove.
17547         (cgraph_clone_inlined_nodes): Fix linebreaks.
17548         (cgraph_check_inline_limits): Restructure to ...
17549         (caller_growth_limits): ... this one; be more tolerant
17550         on growth in nested inline chains; add explanatory comment;
17551         fix stack accounting thinko introduced by previous patch.
17552         (cgraph_default_inline_p): Remove.
17553         (report_inline_failed_reason): New function.
17554         (can_inline_edge_p): New function.
17555         (can_early_inline_edge_p): New function.
17556         (leaf_node_p): Move upwards in file.
17557         (want_early_inline_function_p): New function.
17558         (want_inline_small_function_p): New function.
17559         (want_inline_self_recursive_call_p): New function.
17560         (cgraph_edge_badness): Rename to ...
17561         (edge_badness) ... this one; fix linebreaks.
17562         (update_edge_key): Update call of edge_baddness; add
17563         detailed dump about queue updates.
17564         (update_caller_keys): Use can_inline_edge_p and
17565         want_inline_small_function_p.
17566         (cgraph_decide_recursive_inlining): Rename to...
17567         (recursive_inlining): Use can_inline_edge_p and
17568         want_inline_self_recursive_call_p; simplify and remove no longer
17569         valid FIXME.
17570         (cgraph_set_inline_failed): Remove.
17571         (add_new_edges_to_heap): Use can_inline_edge_p and
17572         want_inline_small_function_p.
17573         (cgraph_decide_inlining_of_small_functions): Rename to ...
17574         (inline_small_functions): ... this one; cleanup; use
17575         can/want predicates; cleanup debug ouput; work edges till fibheap
17576         is exhausted and do not stop once unit growth is reached; remove
17577         later loop processing remaining edges.
17578         (cgraph_flatten): Rename to ...
17579         (flatten_function): ... this one; use can_inline_edge_p
17580         and can_early_inline_edge_p predicates.
17581         (cgraph_decide_inlining): Rename to ...
17582         (ipa_inline): ... this one; remove unreachable nodes before
17583         inlining functions called once; simplify the pass.
17584         (cgraph_perform_always_inlining): Rename to ...
17585         (inline_always_inline_functions): ... this one; use
17586         DECL_DISREGARD_INLINE_LIMITS; use can_inline_edge_p predicate.
17587         (cgraph_decide_inlining_incrementally): Rename to ...
17588         (early_inline_small_functions): ... this one; simplify
17589         using new predicates; cleanup; make dumps prettier.
17590         (cgraph_early_inlining): Rename to ...
17591         (early_inliner): newer inline regular functions into always-inlines;
17592         fix updating of call stmt summaries.
17593         (pass_early_inline): Update for new names.
17594         (inline_transform): Fix formating.
17595         (gate_cgraph_decide_inlining): Rename to ...
17596         (pass_ipa_inline): ... this one.
17597         * ipa-inline.h (inline_summary): Remove disregard_inline_limits.
17598         * ipa-inline-analysis.c (dump_inline_summary): Update.
17599         (compute_inline_parameters): Do not compute disregard_inline_limits;
17600         look for mismatching arguments.
17601         (estimate_growth): Fix handlig of non-trivial self recursion.
17602         (inline_read_summary): Do not read info->disregard_inline_limits.
17603         (inline_write_summary): Do not write info->disregard_inline_limits.
17604         * tree-inline.c (inline_forbidden_into_p, tree_can_inline_p): Remove
17605         and move all checks into can_inline_edge_p predicate; re-enable code
17606         comparing optimization levels.
17607         (expand_call_inline): Do not test inline_forbidden_into_p.
17608         * Makefile.in (ipa-inline.o): Update arguments.
17609
17610 2011-04-17  Revital Eres  <revital.eres@linaro.org>
17611
17612         * ddg.c (free_ddg_all_sccs): Free sccs field in struct ddg_all_sccs.
17613
17614 2011-04-17  Revital Eres  <revital.eres@linaro.org>
17615
17616         * modulo-sched.c (sms_schedule): Avoid unfreed memory when SMS fails.
17617
17618 2011-04-17  Michael Matz  <matz@suse.de>
17619
17620         PR tree-optimization/48622
17621         PR lto/48645
17622         * ipa-inline-analysis.c (inline_read_summary): Read size/time
17623         in same order as they're written.
17624
17625 2011-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17626
17627         * config/pa/predicates.md: Reorganize and simplify predicates.
17628         Eliminate duplicate code checks.
17629         (arith_operand): Rename to arith14_operand
17630         (reg_or_ior_operand): Rename to reg_or_cint_ior_operand.
17631         * config/pa/pa.md: Use renamed operands.
17632         * config/pa/pa-protos.h (symbolic_operand): Delete declaration.
17633         (tls_symbolic_operand, function_label_operand, lhs_lshift_cint_operand,
17634         arith11_operand, adddi3_operand, indexed_memory_operand,
17635         symbolic_memory_operand, int11_operand, reg_or_cint_move_operand,
17636         arith5_operand, uint5_operand, pic_label_operand, plus_xor_ior_operator,
17637         borx_reg_operand, shadd_operand, arith_operand, read_only_operand,
17638         move_dest_operand, move_src_operand, prefetch_cc_operand,
17639         prefetch_nocc_operand, and_operand, ior_operand, arith32_operand,
17640         uint32_operand, reg_before_reload_operand, reg_or_0_operand,
17641         reg_or_0_or_nonsymb_mem_operand, pre_cint_operand, post_cint_operand,
17642         div_operand, int5_operand, movb_comparison_operator,
17643         ireg_or_int5_operand, call_operand_address, ior_operand, fp_reg_operand,
17644         arith_double_operand, ireg_operand, lhs_lshift_operand,
17645         pc_or_label_operand, non_hard_reg_operand, eq_neq_comparison_operator,
17646         integer_store_memory_operand): Likewise.
17647         * config/pa/pa.c (adddi3_operand): Move to predicates.md.
17648         (integer_store_memory_operand, read_only_operand,
17649         function_label_operand, borx_reg_operand,
17650         non_hard_reg_operand): Likewise.
17651         (eq_neq_comparison_operator): Delete unused operator.
17652         (legitimize_pic_address): Use VOIDmode for mode argument in calls to
17653         function_label_operand.
17654         (emit_move_sequence): Likewise.
17655
17656 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
17657
17658         * config/i386/sse.md (sseunpackmode): New mode attribute.
17659         (ssepackmode): Ditto.
17660         (vec_pack_trunc_<mode>): Macroize expander from
17661         vec_pack_trunc_{v8hi,v4si,v2di} using VI248_128 mode iterator.
17662         (vec_unpacks_lo_<mode>): Macroize expander from
17663         vec_unpacks_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
17664         (vec_unpacks_hi_<mode>): Macroize expander from
17665         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
17666         (vec_unpacku_lo_<mode>): Macroize expander from
17667         vec_unpacku_lo_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
17668         (vec_unpacku_hi_<mode>): Macroize expander from
17669         vec_unpacks_hi_{v16qi,v8hi,v4si} using VI124_128 mode iterator.
17670         * config/i386/i386.c (ix86_expand_sse_unpack): Merge with
17671         ix86_expand_sse4_unpack.
17672         * config/i386/i386-protos.h (ix86_expand_sse4_unpack): Remove.
17673
17674 2011-04-16  Jan Hubicka  <jh@suse.cz>
17675
17676         * cgraphbuild.c: Include ipa-inline.h.
17677         (reset_inline_failed): Use initialize_inline_failed.
17678         * cgraph.c: Include ipa-inline.h.
17679         (cgraph_create_node_1): Do not initialize estimated_growth.
17680         (initialize_inline_failed): More to ipa-inline-analysis.c
17681         (dump_cgraph_node): Do not dump inline flags.
17682         * cgraph.h (cgraph_local_info): Remove inlineable, versionable
17683         and disregard_inline_limits flags.
17684         (cgrpah_global_info): Remove estimated_stack_size, stack_frame_offset,
17685         time, size, estimated_growth.
17686         * ipa-cp.c (ipcp_versionable_function_p, ipcp_generate_summary):
17687         Update.
17688         * cgraphunit.c (cgraph_decide_is_function_needed): Use
17689         DECL_DISREGARD_INLINE_LIMITS.
17690         (cgraph_analyze_function): Do not initialize
17691         node->local.disregard_inline_limits.
17692         * lto-cgraph.c (lto_output_node, input_overwrite_node): Do not stream
17693         inlinable, versionable and disregard_inline_limits.
17694         * ipa-inline.c (cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
17695         cgraph_check_inline_limits, cgraph_default_inline_p,
17696         cgraph_edge_badness, update_caller_keys, update_callee_keys,
17697         add_new_edges_to_heap): Update.
17698         (cgraph_decide_inlining_of_small_function): Update; set
17699         CIF_FUNCTION_NOT_INLINABLE for uninlinable functions.
17700         (cgraph_decide_inlining, cgraph_edge_early_inlinable_p,
17701         cgraph_decide_inlining_incrementally): Update.
17702         * ipa-inline.h (inline_summary): Add inlinable, versionable,
17703         disregard_inline_limits, estimated_stack_size, stack_frame_offset,
17704         time, size and estimated_growth parameters.
17705         (estimate_edge_growth): Update.
17706         (initialize_inline_failed): Declare.
17707         * ipa-split.c: Include ipa-inline.h
17708         (execute_split_functions): Update.
17709         * ipa.c (cgraph_postorder): Use DECL_DISREGARD_INLINE_LIMITS.
17710         (cgraph_remove_unreachable_nodes): Do not clear inlinable flag.
17711         (record_cdtor_fn): Use DECL_DISREGARD_INLINE_LIMITS.
17712         * ipa-inline-analysis.c (inline_node_removal_hook): Update; set
17713         estimated_growth to INT_MIN.
17714         (inline_node_duplication_hook): Likewise.
17715         (dump_inline_summary): Dump new fields.
17716         (compute_inline_parameters): Update.
17717         (estimate_edge_time, estimate_time_after_inlining,
17718         estimate_size_after_inlining, estimate_growth, inline_read_summary,
17719         inline_write_summary):
17720         (initialize_inline_failed): Move here from cgraph.c.
17721         * tree-sra.c: Include ipa-inline.h.
17722         (ipa_sra_preliminary_function_checks): Update.
17723         * Makefile.in (cgraph.o, cgraphbuild.o): Add dependency on
17724         ipa-inline.h.
17725
17726 2011-04-16  Uros Bizjak  <ubizjak@gmail.com>
17727
17728         * config/i386/sse.md (V16): New mode iterator.
17729         (VI1, VI8): Ditto.
17730         (AVXMODEQI, AVXMODEDI): Remove.
17731         (sse2, sse3): New mode attribute.
17732         (mov<mode>): Use V16 mode iterator.
17733         (*mov<mode>_internal): Merge with *avx_mov<mode>_internal.
17734         (push<mode>1): Use V16 mode iterator.
17735         (movmisalign<mode>): Ditto.
17736         (<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
17737         <sse>_movu<ssemodesuffix> and avx_movu<ssemodesuffix><avxmodesuffix>.
17738         (*<sse>_movu<ssemodesuffix><avxmodesuffix>): Merge from
17739         *<sse>_movu<ssemodesuffix> and *avx_movu<ssemodesuffix><avxmodesuffix>.
17740         (<sse2>_movdqu<avxmodesuffix>): Merge from sse2_movdqu and
17741         avx_movdqu<avxmodesuffix>.
17742         (*<sse2>_movdqu<avxmodesuffix>): Merge from *sse2_movdqu and
17743         *avx_movdqu<avxmodesuffix>.
17744         (<sse3>_lddqu<avxmodesuffix>) Merge from sse3_lddqu and
17745         avx_lddqu<avxmodesuffix>.
17746         (<sse>_movnt<mode>): Merge with avx_movnt<AVXMODEF2P:mode>.
17747         (<sse2>_movnt<mode>): Merge from sse2_movntv2di and
17748         avx_movnt<AVXMODEDI:mode>.
17749         * config/i386/i386.c (ix86_expand_vector_move_misalign): Update for
17750         renamed sse_movups, sse2_movupd and sse2_movdqu patterns.
17751
17752 2011-04-16  Bernd Schmidt  <bernds@codesourcery.com>
17753
17754         PR target/48629
17755         * haifa-sched.c (prune_ready_list, schedule_block): Use
17756         sched_pressure_p rather than flag_sched_pressure.
17757
17758 2011-04-15  Pat Haugen  <pthaugen@us.ibm.com>
17759
17760         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
17761         cgraph_get_node instead of cgraph_get_create_node.
17762
17763 2011-04-15  Jakub Jelinek  <jakub@redhat.com>
17764
17765         * cfgexpand.c (expand_debug_expr): Use
17766         simplify_gen_{unary,binary,ternary} instead of gen_rtx_*.
17767
17768 2011-04-15  Michael Matz  <matz@suse.de>
17769
17770         * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
17771         * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
17772         * function.c (gimplify_parameters): Ditto.
17773         * gimplify.c (gimplify_vla_decl): Ditto.
17774
17775         * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
17776         (gimple_call_set_alloca_for_var): New inline function.
17777         (gimple_call_alloca_for_var_p): Ditto.
17778         * gimple.c (gimple_build_call_from_tree): Remember
17779         CALL_ALLOCA_FOR_VAR_P state.
17780         * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
17781
17782         * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
17783         calls if they were for VLA objects.
17784
17785 2011-04-15  Martin Jambor  <mjambor@suse.cz>
17786
17787         * ipa-prop.c (ipa_analyze_virtual_call_uses): Remove handling
17788         of ADR_EXPRs.
17789
17790 2011-04-15  Martin Jambor  <mjambor@suse.cz>
17791
17792         PR middle-end/48601
17793         * tree-emutls.c (lower_emutls_function_body): Call
17794         cgraph_get_create_node instead of cgraph_get_node.  Do not assert the
17795         result is non-NULL.
17796
17797 2011-04-15  Nicola Pero  <nicola.pero@meta-innovation.com>
17798
17799         * c-decl.c (detect_field_duplicates): Call
17800         objc_detect_field_duplicates instead of objc_get_interface_ivars.
17801
17802 2011-04-15  Nathan Froyd  <froydnj@codesourcery.com>
17803
17804         * gimple.h (gimple_asm_clobbers_memory_p): Declare.
17805         * gimple.c (gimple_asm_clobbers_memory_p): Define.
17806         * ipa-pure-const.c (check_stmt): Call it.
17807         * tree-ssa-operands.c (get_asm_expr_operands): Likewise.
17808
17809 2011-04-15  Richard Guenther  <rguenther@suse.de>
17810
17811         PR tree-optimization/48290
17812         * tree-ssa-copy.c (copy_prop_visit_phi_node): Propagate constants.
17813         Properly decide inhibiting propagation based on the valueized
17814         operand.  Do loop-closed SSA form preserving here ...
17815         (init_copy_prop): ... not here.
17816
17817 2011-04-15  H.J. Lu  <hongjiu.lu@intel.com>
17818
17819         PR target/48612
17820         * config/i386/sse.md (*ieee_smin<mode>3): Switch mnemonics.
17821         (*ieee_smax<mode>3): Likewise.
17822
17823 2011-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17824
17825         * config/s390/s390.md (popcountdi2, popcountsi2, popcounthi2):
17826         Replace match_operand with match_dup for the third operand in
17827         these expanders.
17828
17829 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
17830
17831         * combine.c (subst, combine_simlify_rtx): Add new argument, use it
17832         to track processing of conditionals.  Update all callers.
17833         (try_combine, simplify_if_then_else): Update.
17834
17835 2011-04-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
17836
17837         * config/m68k/m68k.c (m68k_sched_variable_issue): Handle
17838         -fsched-pressure.
17839
17840 2011-04-15  Georg-Johann Lay  <avr@gjlay.de>
17841
17842         * config/avr/avr.md ("rotl<mode>3",mode=HIDI): Use match_dup
17843         instead of match_operand for operand 3.
17844
17845 2011-04-15  Richard Sandiford  <richard.sandiford@linaro.org>
17846
17847         * recog.h (insn_operand_data): Add an "allows_mem" field.
17848         * genoutput.c (output_operand_data): Initialize it.
17849         * optabs.c (maybe_legitimize_operand_same_code): New function.
17850         (maybe_legitimize_operand): Use it when matching the original
17851         op->value.
17852
17853 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
17854
17855         * gimplify.c: Fix issues in comments throughout.
17856         (voidify_wrapper_expr): Fix long line.
17857         (build_stack_save_restore): Likewise.
17858         (gimplify_loop_expr): Likewise.
17859         (gimplify_compound_lval): Likewise.
17860         (gimplify_init_ctor_eval): Likewise.
17861         (gimplify_modify_expr_rhs): Likewise.
17862         (omp_notice_threadprivate_variable): Likewise.
17863
17864 2011-04-15  Eric Botcazou  <ebotcazou@adacore.com>
17865
17866         * cfgexpand.c (expand_call_stmt): Convert the function type to the
17867         original one if this is not a builtin function.
17868
17869 2011-04-14  Jakub Jelinek  <jakub@redhat.com>
17870
17871         PR target/48605
17872         * config/i386/sse.md (sse4_1_insertps): If operands[2] is a MEM,
17873         offset it as needed based on top 2 bits in operands[3], change
17874         MEM mode to SFmode and mask those 2 bits away from operands[3].
17875
17876 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
17877
17878         * c-parser.c (c_parser_objc_protocol_definition): Updated for
17879         change from objc_declare_protocols() to objc_declare_protocol().
17880
17881 2011-04-14  Uros Bizjak  <ubizjak@gmail.com>
17882
17883         * config/i386/sse.md (sse4_1): New mode attribute.
17884         (<sse4_1>_blend<ssemodesuffix><avxmodesuffix>): Macroize from
17885         avx_blend<ssemodesuffix><avxmodesuffix> and
17886         sse4_1_blend<ssemodesuffix> using VF mode iterator.
17887         (<sse4_1>_blendv<ssemodesuffix><avxmodesuffix>): Macroize from
17888         avx_blendv<ssemodesuffix><avxmodesuffix> and
17889         sse4_1_blendv<ssemodesuffix> using VF mode iterator.
17890         (<sse4_1>_dp<ssemodesuffix><avxmodesuffix>): Macroize from
17891         avx_dp<ssemodesuffix><avxmodesuffix> and
17892         sse4_1_dp<ssemodesuffix> using VF mode iterator.
17893         (sse4_1_mpsadbw): Merge with *avx_mpsadbw.
17894         (sse4_1_packusdw): Merge with *avx_packusdw.
17895         (sse4_1_pblendvb): Merge with *avx_pblendvb.
17896         (sse4_1_pblendw): Merge with *avx_pblendw.
17897         (avx_vtest<ssemodesuffix><avxmodesuffix>): Use VF mode iterator.
17898         (<sse4_1>_round<ssemodesuffix><avxmodesuffix>): Macroize from
17899         avx_round<ssemodesuffix>256 and sse4_1_round<ssemodesuffix> using
17900         VF mode iterator.
17901         (sse4_1_round<ssescalarmodesuffix>): Merge with
17902         *avx_round<ssescalarmodesuffix>.
17903         (aesenc): Merge with *avx_aesenc.
17904         (aesenclast): Merge with *avx_aesenclast.
17905         (aesdec): Merge with *avx_aesdec.
17906         (aesdeclast): Merge with *avx_aesdeclast.
17907         (pclmulqdq): Merge with *pclmulqdq.
17908         * config/i386/predicates.md (reg_not_xmm0_operand_maybe_avx):
17909         New predicate.
17910         (nonimm_not_xmm0_operand_maybe_avx): Ditto.
17911
17912 2011-04-14  H.J. Lu  <hongjiu.lu@intel.com>
17913
17914         PR middle-end/48608
17915         * cfgexpand.c (get_decl_align_unit): Renamed to ...
17916         (align_local_variable): This.  Update DECL_ALIGN.
17917         (add_stack_var): Updated.
17918         (expand_one_stack_var): Likewise.
17919
17920 2011-04-14  Richard Guenther  <rguenther@suse.de>
17921
17922         * tree-ssa-dse.c (struct dse_global_data, struct dse_block_local_data):
17923         Remove.
17924         (dse_initialize_block_local_data, dse_leave_block,
17925         record_voperand_set, get_stmt_uid): Likewise.
17926         (dse_possible_dead_store_p): Allow any kind of killing stmt.
17927         (dse_optimize_stmt): Remove voperand set handling code.
17928         Simplify and improve to handle any kind of killing stmt.
17929         (dse_record_phi): Remove.
17930         (dse_enter_block): Simplify.
17931         (tree_ssa_dse): Likewise.
17932         * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle some builtins.
17933
17934 2011-04-14  Jan Hubicka  <jh@suse.cz>
17935
17936         * cgraph.c (dump_cgraph_node): Do not dump inline summaries.
17937         * cgraph.h (struct inline_summary): Move to ipa-inline.h
17938         (cgraph_local_info): Remove inline_summary.
17939         * ipa-cp.c: Include ipa-inline.h.
17940         (ipcp_cloning_candidate_p, ipcp_estimate_growth,
17941         ipcp_estimate_cloning_cost, ipcp_insert_stage): Use inline_summary
17942         accesor.
17943         * lto-cgraph.c (lto_output_node): Do not stream inline summary.
17944         (input_overwrite_node): Do not set inline summary.
17945         (input_node): Do not stream inline summary.
17946         * ipa-inline.c (cgraph_decide_inlining): Dump inline summaries.
17947         (cgraph_decide_inlining_incrementally): Do not try to estimate overall
17948         growth; we do not have inline parameters computed for that anyway.
17949         (cgraph_early_inlining): After inlining compute call_stmt_sizes.
17950         * ipa-inline.h (struct inline_summary): Move here from ipa-inline.h
17951         (inline_summary_t): New type and VECtor.
17952         (debug_inline_summary, dump_inline_summaries): Declare.
17953         (inline_summary): Use VOCtor.
17954         (estimate_edge_growth): Kill hack computing call stmt size directly.
17955         * lto-section-in.c (lto_section_name): Add inline section.
17956         * ipa-inline-analysis.c: Include lto-streamer.h
17957         (node_removal_hook_holder, node_duplication_hook_holder): New holders
17958         (inline_node_removal_hook, inline_node_duplication_hook): New functions.
17959         (inline_summary_vec): Define.
17960         (inline_summary_alloc, dump_inline_summary, debug_inline_summary,
17961         dump_inline_summaries): New functions.
17962         (estimate_function_body_sizes): Properly compute size/time of outgoing
17963         calls.
17964         (compute_inline_parameters): Alloc inline_summary; do not compute
17965         size/time of incomming calls.
17966         (estimate_edge_time): Avoid missing time summary hack.
17967         (inline_read_summary): Read inline summary info.
17968         (inline_write_summary): Write inline summary info.
17969         (inline_free_summary): Free all hooks and inline summary vector.
17970         * lto-streamer.h: Add LTO_section_inline_summary section.
17971         * Makefile.in (ipa-cp.o, ipa-inline-analysis.o): Update dependencies.
17972         * ipa.c (cgraph_remove_unreachable_nodes): Fix dump file formating.
17973
17974 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
17975
17976         * tree-vectorizer.h (vect_strided_store_supported): Add a
17977         HOST_WIDE_INT argument.
17978         (vect_strided_load_supported): Likewise.
17979         (vect_permute_store_chain): Return void.
17980         (vect_transform_strided_load): Likewise.
17981         (vect_permute_load_chain): Delete.
17982         * tree-vect-data-refs.c (vect_strided_store_supported): Take a
17983         count argument.  Check that the count is a power of two.
17984         (vect_strided_load_supported): Likewise.
17985         (vect_permute_store_chain): Return void.  Update after above changes.
17986         Assert that the access is supported.
17987         (vect_permute_load_chain): Likewise.
17988         (vect_transform_strided_load): Return void.
17989         * tree-vect-stmts.c (vectorizable_store): Update calls after
17990         above interface changes.
17991         (vectorizable_load): Likewise.
17992         (vect_analyze_stmt): Don't check for strided powers of two here.
17993
17994 2011-04-14  Richard Guenther  <rguenther@suse.de>
17995
17996         PR tree-optimization/48590
17997         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle
17998         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
17999         (call_may_clobber_ref_p_1): Handle BUILT_IN_ALLOCA and
18000         BUILT_IN_STACK_SAVE.
18001         * tree-ssa-dce.c (propagate_necessity): Handle
18002         BUILT_IN_ALLOCA, BUILT_IN_STACK_SAVE and BUILT_IN_STACK_RESTORE.
18003
18004 2011-04-14  Nicola Pero  <nicola.pero@meta-innovation.com>
18005
18006         * c-parser.c (c_parser_objc_class_declaration): Updated call to
18007         objc_declare_class.
18008
18009 2011-04-14  Richard Guenther  <rguenther@suse.de>
18010
18011         * tree.h (get_object_alignment_1): Declare.
18012         * builtins.c (get_object_alignment_1): Split out worker from ...
18013         (get_object_alignment): ... here.
18014         * fold-const.c (get_pointer_modulus_and_residue): Use
18015         get_object_alignment_1.
18016
18017 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
18018
18019         * tree-vectorizer.h (vect_create_data_ref_ptr): Add an extra
18020         type parameter.
18021         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add an aggr_type
18022         parameter.  Generalise code to handle arrays as well as vectors.
18023         (vect_setup_realignment): Update accordingly.
18024         * tree-vect-stmts.c (vectorizable_store): Likewise.
18025         (vectorizable_load): Likewise.
18026
18027 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
18028
18029         * tree-vect-stmts.c (vectorizable_load): Allocate and free dr_chain
18030         within the per-copy loop.
18031
18032 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
18033
18034         * tree-vect-stmts.c (vectorizable_load): Print the number of copies
18035         in the dump file.
18036
18037 2011-04-14  Richard Sandiford  <richard.sandiford@linaro.org>
18038
18039         * doc/options.texi (Negative): Explicitly mention that the
18040         Negative chain must be circular.
18041
18042 2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
18043
18044         * function.h (block_chainon): Declare.
18045         * function.c (block_chainon): Define.
18046
18047 2011-04-14  Anatoly Sokolov  <aesok@post.ru>
18048             Eric Weddington  <eric.weddington@atmel.com>
18049             Georg-Johann Lay  <avr@gjlay.de>
18050
18051         * config/avr/avr.c ("insn-codes.h", "optabs.h", "langhooks.h"):
18052         New Includes
18053         (avr_init_builtins, avr_expand_builtin,
18054         avr_expand_delay_cycles, avr_expand_unop_builtin,
18055         avr_expand_binop_builtin ): New functions.
18056         (avr_builtin_id): New enum
18057         (struct avr_builtin_description): New struct
18058         (bdesc_1arg, bdesc_2arg): New arrays describing some RTL builtins.
18059         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
18060
18061         * config/avr/avr.md (UNSPEC_FMUL, UNSPEC_FMULS, UNSPEC_FMULSU,
18062         UNSPECV_ENABLE_IRQS, UNSPECV_NOP, UNSPECV_SLEEP, UNSPECV_WDR,
18063         UNSPECV_DELAY_CYCLES): new enumeration values
18064         (UNSPEC_SEI, UNSPEC_CLI): Remove enumeration values
18065         ("enable_interrupt"): Use UNSPECV_ENABLE_IRQS
18066         ("disable_interrupt"): Use UNSPECV_ENABLE_IRQS
18067         ("*rotlqi3_4"): rename insn to "rotlqi3_4"
18068         ("delay_cycles_1", "delay_cycles_2", "delay_cycles_3",
18069         "delay_cycles_4", "nopv", "sleep", "wdr", "fmul", "fmuls",
18070         "fmulsu"): New insns
18071
18072         * config/avr/avr-c.c: fix line endings
18073         (avr_cpu_cpp_builtins): New builtin defines: __BUILTIN_AVR_NOP,
18074         __BUILTIN_AVR_SEI, __BUILTIN_AVR_CLI, __BUILTIN_AVR_WDR,
18075         __BUILTIN_AVR_SLEEP, __BUILTIN_AVR_SWAP,
18076         __BUILTIN_AVR_DELAY_CYCLES, __BUILTIN_AVR_FMUL,
18077         __BUILTIN_AVR_FMULS, __BUILTIN_AVR_FMULSU.
18078
18079         * doc/extend.texi (AVR Built-in Functions): New node
18080         (Target Builtins): Add documentation of AVR
18081         built-in functions.
18082
18083 2011-04-14  Georg-Johann Lay  <avr@gjlay.de>
18084
18085         PR target/44643
18086         * config/avr/avr.c (avr_insert_attributes): Leave TREE_READONLY
18087         alone. Error if non-const data has attribute progmem.
18088
18089 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
18090
18091         * tree.h (struct tree_constructor): Include tree_typed instead of
18092         tree_common.
18093         * tree.c (initialize_tree_contains_struct): Mark TS_CONSTRUCTOR as
18094         TS_TYPED instead of TS_COMMON.
18095
18096 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
18097
18098         * config/i386/sse.md (*sse2_uavgv16qi3): Merge with *avx_uavgv16qi3.
18099         (*sse2_uavgv8hi3): Merge with *avx_uavgv8hi3.
18100         (sse2_psadbw): Merge with *avx_psadbw.
18101         (ssse3_phaddwv8hi3): Merge with *avx_phaddwv8hi3.
18102         (ssse3_phadddv4si3): Merge with *avx_phadddv4si3.
18103         (ssse3_phaddswv8hi3): Merge with *avx_phaddswv8hi3.
18104         (ssse3_phsubwv8hi3): Merge with *avx_phsubwv8hi3.
18105         (ssse3_phsubdv4si3): Merge with *avx_phsubdv4si3.
18106         (ssse3_phsubswv8hi3): Merge with *avx_phsubswv8hi3.
18107         (ssse3_pmaddubsw128): Merge with *avx_pmaddubsw128.
18108         (*ssse3_pmulhrswv8hi3): Merge with *avx_pmulhrswv8hi3.
18109         (ssse3_pshufbv16qi3): Merge with *avx_pshufbv16qi3.
18110         (ssse3_psign<mode>3): Merge with *avx_psign<mode>3.
18111         (ssse3_palignrti): Merge with *avx_palignrti.
18112
18113 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
18114
18115         * tree-flow.h (struct gimple_df): Make free_ssanames a VEC.
18116         * tree-ssanames.c (fini_ssanames): VEC_free it.
18117         (make_ssa_name_fn): Update for VECness of free_ssanames.
18118         (release_ssa_name, release_dead_ssa_names): Likewise.
18119         * tree.h (struct tree_ssa_name): Include tree_typed instead of
18120         tree_common.
18121         * tree.c (initialize_tree_contains_struct): Mark TS_SSA_NAME as
18122         TS_TYPED instead of TS_COMMON.
18123
18124 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
18125
18126         * postreload-gcse.c (gcse_after_reload_main): Add calls to
18127         statistics_counter_event.
18128         * tree-ssa-copyrename.c (stats): Define.
18129         (rename_ssa_copies): Count coalesced SSA_NAMEs.  Add call to
18130         statistics_counter_event.
18131         * tree-ssa-math-opts.c (reciprocal_stats, sincos_stats): Define.
18132         (bswap_stats, widen_mul_stats): Define.
18133         (insert_reciprocals): Increment rdivs_inserted.
18134         (execute_cse_reciprocals): Zeroize reciprocal_stats.  Increment
18135         rfuncs_inserted.  Add calls to statistics_counter_event.
18136         (execute_cse_sincos_1): Increment inserted.
18137         (execute_cse_sincos): Zeroize sincos_stats.  Add call to
18138         statistics_counter_event.
18139         (execute_optimize_bswap): Zeroize bswap_stats.  Increment fields
18140         of bswap_stats.  Add calls to statistics_counter_event.
18141         (convert_mult_to_widen): Increment widen_mults_inserted.
18142         (convert_plusminus_to_widen): Increment maccs_inserted.
18143         (convert_mult_to_fma): Increment fmas_inserted.
18144         (execute_optimize_widening_mul): Zeroize widen_mul_stats.  Add
18145         calls to statistics_counter_event.
18146
18147 2011-04-13  Vladimir Makarov  <vmakarov@redhat.com>
18148
18149         PR rtl-optimization/48455
18150         * ira-costs.c (find_costs_and_classes): Use i_mem_cost instead of
18151         `temp_costs->mem_cost'.
18152
18153 2011-04-13  Jan Hubicka  <jh@suse.cz>
18154
18155         * ipa-inline.h: New file.
18156         * ipa-inline-analysis.c: New file. Broken out of ...
18157         * ipa-inline.c: ... this file; update toplevel comment;
18158         include ipa-inline.h
18159         (inline_summary): Move to ipa-inline.h
18160         (cgraph_estimate_edge_time): Rename to estimate_edge_time; move to
18161         ipa-inline-analysis.c.
18162         (cgraph_estimate_time_after_inlining): Rename to
18163         estiamte_time_after_inlining; move to ipa-inline-analysis.c
18164         (cgraph_estimate_edge_growth): Move to ipa-inline-analysis.c; rename
18165         to estimate_edge_growth.
18166         (cgraph_estimate_size_after_inlining): Move to ipa-inline-analysis.c;
18167         rename to estimate_size_after_inlining.
18168         (cgraph_mark_inline_edge): Update for new naming convention.
18169         (cgraph_check_inline_limits): Likewise.
18170         (cgraph_edge_badness): Likewise.
18171         (cgraph_decide_recursive_inlining): Likewise.
18172         (cgraph_decide_inlining_of_small_functions): Likewise.
18173         (cgraph_decide_inlining_incrementally): Likewise.
18174         (cgraph_estimate_growth): Rename to estimate_growth; move to
18175         ipa-inline-analysis.c.
18176         (eliminated_by_inlining_prob): Move to ipa-inline-analysis.c.
18177         (estimate_function_body_sizes): Move to ipa-inline-analysis.c.
18178         (compute_inline_parameters): Likewise.
18179         (compute_inline_parameters_for_current): Likewise.
18180         (pass_inline_parameters): Likewise.
18181         (inline_indirect_intraprocedural_analysis): Likewise.
18182         (analyze_function): Rename to inline_analyze_function; likewise.
18183         (add_new_function): Move to ipa-inline-analysis.c.
18184         (inline_generate_summary): Likewise.
18185         (inline_read_summary): Likewise.
18186         (inline_write_summary): Likewise.
18187         * Makefile.in (ipa-inline-analysis.c): New file.
18188
18189 2011-04-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18190
18191         * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove GNU ld check.
18192         * configure: Regenerate.
18193
18194 2011-04-13  Nathan Froyd  <froydnj@codesourcery.com>
18195
18196         * tree.h (struct tree_int_cst, struct real_value): Include tree_typed
18197         instead of tree_common.
18198         (struct tree_fixed_cst, struct tree_string, struct tree_complex):
18199         Likewise.
18200         * tree.c (initialize_tree_contains_struct): Mark such nodes as being
18201         TS_TYPED rather than TS_COMMON.
18202         * print-tree.c (print_node) [STRING_CST]: Don't print TREE_CHAIN.
18203
18204 2011-04-01  Georg-Johann Lay  <avr@gjlay.de>
18205
18206         PR target/45263
18207         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Don't use
18208         r20 around calls of __tablejump_elpm__
18209
18210 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
18211
18212         PR middle-end/48591
18213         * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
18214         NULL.
18215         (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
18216
18217 2011-04-13  Bernd Schmidt  <bernds@codesourcery.com>
18218
18219         * dwarf2out.c (struct dw_cfi_struct): Remove member dw_cfi_next.
18220         (dw_cfi_ref): Add DEF_VEC_P and some DEF_VEC_ALLOC_Ps.
18221         (cfi_vec): New typedef.
18222         (struct dw_fde_struct): Make dw_fde_cfi a cfi_vec. Replace
18223         dw_fde_switch_cfi with an integer dw_fde_switch_cfi_index.
18224         (cie_cfi_vec): New static variable.
18225         (cie_cfi_head): Delete.
18226         (add_cfi): Accept a cfi_vec * as first argument. All callers and
18227         declaration changed. Use vector rather than list operations.
18228         (new_cfi): Don't initialize the dw_cfi_next field.
18229         (add_fde_cfi): Allocate cie_cfi_vec if necessary. Use vector
18230         rather than list operations.
18231         (lookup_cfa): Use vector rather than list operations.
18232         (output_cfis): New argument upto. Accept a cfi_vec rather than
18233         a dw_cfi_ref list head as argument. All callers changed.
18234         Iterate over the vector using upto as a maximum index.
18235         (output_all_cfis): New static function.
18236         (output_fde): Use vector rather than list operations. Use the
18237         new upto argument for output_cfis rather than manipulating a
18238         list.
18239         (dwarf2out_begin_prologue): Change initializations to match
18240         new struct members.
18241         (dwarf2out_switch_text_section): Initialize dw_fde_switch_cfi_index
18242         from the vector length rather than searching for the end of a list.
18243         Use output_all_cfis.
18244         (convert_cfa_to_fb_loc_list): Use vector rather than list operations.
18245
18246 2011-04-13  Nick Clifton  <nickc@redhat.com>
18247
18248         * config/rx/rx.md (movmemsi): Do not use this pattern when
18249         volatile pointers are involved.
18250
18251 2011-04-13  Uros Bizjak  <ubizjak@gmail.com>
18252
18253         * config/i386/sse.md (pinsrbits): Remove.
18254         (sse2_packsswb): Merge with *avx_packsswb.
18255         (sse2_packssdw): Merge with *avx_packssdw.
18256         (sse2_packuswb): Merge with *avx_packuswb.
18257         (vec_interleave_highv16qi): Merge with *avx_interleave_highv16qi.
18258         (vec_interleave_lowv16qi): Merge with *avx_interleave_lowv16qi.
18259         (vec_interleave_highv8hi): Merge with *avx_interleave_highv8hi.
18260         (vec_interleave_lowv8hi): Merge with *avx_interleave_lowv8hi.
18261         (vec_interleave_highv4si): Merge with *avx_interleave_highv4si.
18262         (vec_interleave_lowv4si): Merge with *avx_interleave_lowv4si.
18263         (*sse4_1_pinsrb): Merge with *avx_pinsr<ssevecsize>.
18264         (*sse2_pinsrw): Merge with *avx_pinsr<ssevecsize>.
18265         (*sse4_1_pinsrd): Merge with *avx_pinsr<ssevecsize>.
18266         (*sse4_1_pinsrq): Merge with *avx_pinsrq.
18267         (sse2_loadld): Merge with *avx_loadld.
18268         (*vec_extractv2di_1_rex64): Merge with *vec_extractv2di_1_rex64_avx.
18269         (*vec_extractv2di_1_sse2): Merge with *vec_extractv2di_1_avx.
18270         (*vec_concatv2si_sse4_1): Merge with *vec_concatv2si_avx.
18271         (*vec_concatv2di_rex64_sse4_1): Merge with *vec_concatv2di_rex64_avx.
18272         (vec_concatv2di): Merge with *vec_concatv2di_avx.
18273
18274 2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
18275
18276         * c-decl.c (union lang_tree_node): Check for TS_COMMON before
18277         calling TREE_CHAIN.
18278         * print-tree.c (print_node): Likewise.
18279         * tree-inline.c (copy_tree_r): Likewise.
18280         * c-lang.c (LANG_HOOKS_INIT_TS): Define.
18281         * lto-streamer-in.c (lto_input_tree_pointers): Check for TS_TYPED
18282         instead of TS_COMMON.
18283         * lto-streamer-out.c (lto_output_tree_pointers): Likewise.
18284         * tree.c (initialize_tree_contains_struct): Handle TS_TYPED.
18285         (copy_node_stat): Zero TREE_CHAIN only if necessary.
18286         (MARK_TS_BASE, MARK_TS_TYPED, MARK_TS_COMMON): Move these...
18287         (MARK_TS_DECL_COMMON, MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL):
18288         ...and these...
18289         (MARK_TS_DECL_WITH_VIS, MARK_TS_DECL_NON_COMMON): ...and these...
18290         * tree.h: ...here.
18291         (TREE_CHAIN): Check for a TS_COMMON structure.
18292         (TREE_TYPE): Check for a TS_TYPED structure.
18293
18294 2011-04-12  Pat Haugen  <pthaugen@us.ibm.com>
18295
18296         * config/rs6000/rs6000.c (call_ABI_of_interest): Call
18297         cgraph_get_create_node instead of cgraph_node.
18298
18299 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
18300
18301         * c-parser.c (c_parser_initelt): Updated call to
18302         objc_build_message_expr.
18303         (c_parser_postfix_expression): Likewise.
18304
18305 2011-04-12  Kai Tietz  <ktietz@redhat.com>
18306
18307         * config/i386/mingw32.h (TARGET_SUBTARGET_DEFAULT): Add
18308         MASK_MS_BITFIELD_LAYOUT bit.
18309
18310 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
18311
18312         * combine.c (update_cfg_for_uncondjump): Instead of testing at_end
18313         assert it is always true.
18314         (try_combine): Don't call update_cfg_for_uncondjump for noop non-jump
18315         moves.
18316
18317 2011-04-12  Nicola Pero  <nicola.pero@meta-innovation.com>
18318
18319         * c-parser.c (c_lex_one_token): Rewritten conditional used when
18320         compiling Objective-C to be more efficient.
18321
18322 2011-04-12  Axel Freyn  <axel-freyn@gmx.de>
18323
18324         * opts-common.c (decode_cmdline_options_to_array): Remove variable
18325         argv_copied.
18326
18327 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
18328
18329         * recog.h, genoutput.c, optabs.c: Revert last patch.
18330
18331 2011-04-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
18332
18333         PR target/48090
18334         * config/arm/arm.md (*arm_negdi2): Fix early clobber constraints.
18335
18336 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
18337
18338         * recog.h (insn_operand_data): Add an "allows_mem" field.
18339         * genoutput.c (output_operand_data): Initialize it.
18340         * optabs.c (maybe_legitimize_operand_same_code): New function.
18341         (maybe_legitimize_operand): Use it when matching the original
18342         op->value.
18343
18344 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
18345
18346         * genpreds.c (process_define_predicate): Move most processing
18347         to gensupport.c.  Continue to validate the expression.
18348         * genrecog.c (did_you_mean_codes, compute_predicate_codes)
18349         (process_define_predicate): Move processing to gensupport.c.
18350         (main): Remove DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE cases.
18351         * gensupport.c (did_you_mean_codes): Moved from genrecog.c.
18352         (compute_predicate_codes): Moved from genrecog.c.  Add lineno
18353         argument.
18354         (valid_predicate_name_p): New function, split out from old
18355         genpreds.c:process_define_predicate.
18356         (process_define_predicate): New function, combining code from
18357         old genpreds.c and genrecog.c functions.
18358         (process_rtx): Call it for DEFINE_PREDICATE and
18359         DEFINE_SPECIAL_PREDICATE.
18360
18361 2011-04-12  Richard Sandiford  <richard.sandiford@linaro.org>
18362
18363         * config/arm/arm.c (arm_print_operand): Use MEM_SIZE to get the
18364         size of a '%A' memory reference.
18365         (T_DREG, T_QREG): New neon_builtin_type_bits.
18366         (arm_init_neon_builtins): Assert that the load and store operands
18367         are neon_struct_operands.
18368         (locate_neon_builtin_icode): Provide the neon_builtin_type_bits.
18369         (NEON_ARG_MEMORY): New builtin_arg.
18370         (neon_dereference_pointer): New function.
18371         (arm_expand_neon_args): Add a neon_builtin_type_bits argument.
18372         Handle NEON_ARG_MEMORY.
18373         (arm_expand_neon_builtin): Update after above interface changes.
18374         Use NEON_ARG_MEMORY for loads and stores.
18375         * config/arm/predicates.md (neon_struct_operand): New predicate.
18376         * config/arm/iterators.md (V_two_elem): Tweak formatting.
18377         (V_three_elem): Use BLKmode for accesses that have no associated mode.
18378         (V_four_elem): Tweak formatting.
18379         * config/arm/neon.md (neon_vld1<mode>, neon_vld1_dup<mode>)
18380         (neon_vst1_lane<mode>, neon_vst1<mode>, neon_vld2<mode>)
18381         (neon_vld2_lane<mode>, neon_vld2_dup<mode>, neon_vst2<mode>)
18382         (neon_vst2_lane<mode>, neon_vld3<mode>, neon_vld3_lane<mode>)
18383         (neon_vld3_dup<mode>, neon_vst3<mode>, neon_vst3_lane<mode>)
18384         (neon_vld4<mode>, neon_vld4_lane<mode>, neon_vld4_dup<mode>)
18385         (neon_vst4<mode>): Replace pointer operand with a memory operand.
18386         Use %A in the output template.
18387         (neon_vld3qa<mode>, neon_vld3qb<mode>, neon_vst3qa<mode>)
18388         (neon_vst3qb<mode>, neon_vld4qa<mode>, neon_vld4qb<mode>)
18389         (neon_vst4qa<mode>, neon_vst4qb<mode>): Likewise, but halve
18390         the width of the memory access.  Remove post-increment.
18391         * config/arm/neon-testgen.ml: Allow addresses to have an alignment.
18392
18393 2011-04-12  Nick Clifton  <nickc@redhat.com>
18394
18395         * config/v850/v850.c (expand_prologue): Do not use the CALLT
18396         instruction for interrupt handlers if the target is the basic V850
18397         architecture.
18398         (expand_epilogue): Likewise.
18399
18400 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
18401
18402         PR rtl-optimization/48549
18403         * combine.c (propagate_for_debug): Also stop after BB_END of
18404         this_basic_block.  Process LAST and just stop processing after it.
18405         (combine_instructions): If last_combined_insn has been deleted,
18406         set last_combined_insn to its PREV_INSN.
18407
18408 2011-04-12  Richard Guenther  <rguenther@suse.de>
18409
18410         PR tree-optimization/46076
18411         * gimple.h (struct gimple_statement_call): Add fntype field.
18412         (gimple_call_fntype): Adjust.
18413         (gimple_call_set_fntype): New function.
18414         * gimple.c (gimple_build_call_1): Set the call function type.
18415         * gimplify.c (gimplify_call_expr): Preserve the function
18416         type the frontend used for the call.
18417         (gimplify_modify_expr): Likewise.
18418         * lto-streamer-in.c (input_gimple_stmt): Input the call stmts
18419         function type.
18420         * lto-streamer-out.c (output_gimple_stmt): Output the call stmts
18421         function type.
18422         * tree-ssa.c (useless_type_conversion_p): Function pointer
18423         conversions are useless.
18424
18425 2011-04-12  Martin Jambor  <mjambor@suse.cz>
18426
18427         * cgraph.h (cgraph_node): Remove function declaration.
18428         (cgraph_create_node): Declare.
18429         (cgraph_get_create_node): Likewise.
18430         * cgraph.c (cgraph_create_node): Renamed to cgraph_create_node_1.
18431         Updated all callers.
18432         (cgraph_node): Renamed to cgraph_create_node, assert that a node for
18433         the decl does not already exist.  Call cgraph_get_create_node instead
18434         of cgraph_node.
18435         (cgraph_get_create_node): New function.
18436         (cgraph_same_body_alias): Update comment.
18437         (cgraph_set_call_stmt): Call cgraph_get_node instead of cgraph_node,
18438         assert it does not return NULL.
18439         (cgraph_update_edges_for_call_stmt): Likewise.
18440         (cgraph_clone_edge): Likewise.
18441         (cgraph_create_virtual_clone): Likewise.
18442         (cgraph_update_edges_for_call_stmt_node): Call cgraph_get_create_node
18443         instead of cgraph_node.
18444         (cgraph_add_new_function): Call cgraph_create_node or
18445         cgraph_get_create_node instead of cgraph_node.
18446         * cgraphbuild.c (record_reference): Call cgraph_get_create_node
18447         instead of cgraph_node.
18448         (record_eh_tables): Likewise.
18449         (mark_address): Likewise.
18450         (mark_load): Likewise.
18451         (build_cgraph_edges): Call cgraph_get_create_node instead
18452         of cgraph_node.
18453         (rebuild_cgraph_edges): Likewise.
18454         * cgraphunit.c (cgraph_finalize_function): Call cgraph_get_create_node
18455         instead of cgraph_node.
18456         (cgraph_copy_node_for_versioning): Call cgraph_create_node instead of
18457         cgraph_node.
18458         * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Call
18459         cgraph_create_node instead of cgraph_node.
18460         * c-decl.c (finish_function): Call cgraph_get_create_node instead
18461         of cgraph_node.
18462         * lto-cgraph.c (input_node): Likewise.
18463         * lto-streamer-in.c (input_function): Likewise.
18464         * varasm.c (mark_decl_referenced): Likewise.
18465         (assemble_alias): Likewise.
18466
18467 2011-04-12  Martin Jambor  <mjambor@suse.cz>
18468
18469         * tree-inline.c (tree_function_versioning): Call cgraph_get_node
18470         instead of cgraph_node and assert it does not return NULL.
18471         * lto-streamer-in.c (lto_read_body): Likewise.
18472         * omp-low.c (new_omp_context): Likewise.
18473         (create_task_copyfn): Likewise.
18474         * tree-emutls.c (lower_emutls_function_body): Likewise.
18475         * matrix-reorg.c (transform_allocation_sites): Likewise.
18476
18477 2011-04-12  Jakub Jelinek  <jakub@redhat.com>
18478
18479         PR c/48552
18480         * c-typeck.c (build_asm_expr): Error out on attempts to use
18481         void type outputs or inputs for constraints that allow reg or
18482         don't allow memory.
18483
18484 2011-04-11  Chung-Lin Tang  <cltang@codesourcery.com>
18485             Richard Earnshaw  <rearnsha@arm.com>
18486
18487         PR target/48250
18488         * config/arm/arm.c (arm_legitimize_reload_address): Update cases
18489         to use sign-magnitude offsets. Reject unsupported unaligned
18490         cases. Add detailed description in comments.
18491         * config/arm/arm.md (reload_outdf): Disable for ARM mode; change
18492         condition from TARGET_32BIT to TARGET_ARM.
18493
18494 2011-04-11  Nathan Froyd  <froydnj@codesourcery.com>
18495
18496         * tree.h (struct typed_tree): New.
18497         (struct tree_common): Include it instead of tree_base.
18498         (TREE_TYPE): Update for new location of type field.
18499         (TYPE_USER_ALIGN, TYPE_PACKED): Refer to base field directly.
18500         (DECL_USER_ALIGN, DECL_PACKED): Likewise.
18501         (union tree_node): Add typed field.
18502         * treestruct.def (TS_TYPED): New.
18503         * lto-streamer.c (check_handled_ts_structures): Handle it.
18504         * tree.c (MARK_TS_TYPED): New macro.
18505         (MARK_TS_COMMON): Call it instead of MARK_TS_BASE.
18506
18507 2011-04-11  Eric Botcazou  <ebotcazou@adacore.com>
18508
18509         * cfghooks.c (redirect_edge_and_branch_force): Localize variable.
18510         (force_nonfallthru): Do not alter the loop nest if no basic block
18511         was created.
18512
18513 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
18514
18515         * config/i386/sse.md (VI): New mode iterator.
18516         (SSEMODEI): Remove.
18517         (AVX256MODEI): Ditto.
18518         (AVXMODEF4P): Ditto.
18519         (avxvecpsmode): Ditto.
18520         (one_cmpl<mode>2): Enable for TARGET_SSE.  Use VI mode iterator.
18521         (sse2_andnot<mode>3): New expander.
18522         (*andnot<mode>3): Merge with *sse2_andnot<mode>3 and
18523         *avx_andnot<mode>3.  Enable for TARGET_SSE.  Use VI mode iterator.
18524         (<any_logic:code><mode>3): Use VI mode iterator.
18525         (*<any_logic:code><mode>3): Merge with *sse2_<any_logic:code><mode>3
18526         and *avx_<any_logic:code><mode>3.  Use VI mode iterator.
18527         (*andnottf3): Handle AVX three-operand constraints.
18528         (*<any_logic:code>tf3): Handle AVX three-operand constraints.
18529
18530 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
18531             Robert Millan  <rmh@gnu.org>
18532
18533         * config.gcc (x86_64-*-kfreebsd*-gnu): Use i386/kfreebsd-gnu.h.
18534         * config/i386/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKER32,
18535         GNU_USER_DYNAMIC_LINKER64): Define.
18536         (REG_NAME): Don't undefine.
18537         (MD_UNWIND_SUPPORT): Undefine.
18538         * config/i386/knetbsd-gnu.h (GNU_USER_LINK_EMULATION): Define.
18539         (REG_NAME): Don't undefine.
18540         (MD_UNWIND_SUPPORT): Undefine.
18541         * config/i386/kopensolaris-gnu.h (GNU_USER_LINK_EMULATION): Define.
18542
18543 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
18544
18545         * config/i386/gnu.h (GNU_USER_LINK_EMULATION): Define.
18546         (CPP_SPEC, CC1_SPEC, ENDFILE_SPEC): Remove.
18547
18548 2011-04-11  Xinliang David Li  <davidxl@google.com>
18549
18550         * value-profile.c (check_ic_target): New function.
18551         (gimple_ic_transform): Sanity check indirect call target.
18552         * gimple-low.c (gimple_check_call_args): Interface change.
18553         (gimple_check_call_matching_types): New function.
18554         * tree-inline.c (tree_can_inline_p): Call new function.
18555
18556 2011-04-11  Basile Starynkevitch  <basile@starynkevitch.net>
18557
18558         * Makefile.in (PLUGIN_HEADERS): Add gimple-pretty-print.h
18559         tree-pretty-print.h & realmpfr.h.
18560
18561 2011-04-11  Vladimir Makarov  <vmakarov@redhat.com>
18562
18563         PR middle-end/48464
18564         * ira.c (setup_pressure_classes): Fix typo in loop condition.
18565         (setup_allocno_and_important_classes): Ditto.
18566
18567 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
18568
18569         * config/alpha/linux-elf.h (LINUX_DYNAMIC_LINKER): Rename to
18570         GNU_USER_DYNAMIC_LINKER.
18571         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Change
18572         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18573         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Change
18574         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
18575         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
18576         GNU_USER_TARGET_OS_CPP_BUILTINS.
18577         * config/bfin/linux.h (TARGET_OS_CPP_BUILTINS): Change
18578         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18579         * config/bfin/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
18580         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18581         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): Change
18582         LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
18583         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
18584         GNU_USER_TARGET_OS_CPP_BUILTINS.
18585         * config/frv/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18586         GNU_USER_DYNAMIC_LINKER.
18587         * config/gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
18588         GNU_USER_TARGET_OS_CPP_BUILTINS.
18589         * config/i386/gnu-user.h (TARGET_OS_CPP_BUILTINS): Change
18590         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18591         * config/i386/gnu-user64.h (TARGET_OS_CPP_BUILTINS): Change
18592         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18593         * config/i386/linux.h (GNU_USER_DYNAMIC_LINKER): Remove.
18594         * config/i386/linux64.h (GNU_USER_DYNAMIC_LINKER32,
18595         GNU_USER_DYNAMIC_LINKER64): Remove.
18596         * config/ia64/linux.h (TARGET_OS_CPP_BUILTINS): Change
18597         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18598         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18599         GNU_USER_DYNAMIC_LINKER.
18600         * config/kfreebsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
18601         GNU_USER_TARGET_OS_CPP_BUILTINS.
18602         * config/knetbsd-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
18603         GNU_USER_TARGET_OS_CPP_BUILTINS.
18604         * config/kopensolaris-gnu.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename
18605         to GNU_USER_TARGET_OS_CPP_BUILTINS.
18606         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Rename to
18607         GNU_USER_TARGET_OS_CPP_BUILTINS.
18608         (LINUX_DYNAMIC_LINKER): Rename to GNU_USER_DYNAMIC_LINKER.
18609         (LINUX_DYNAMIC_LINKER32): Rename to GNU_USER_DYNAMIC_LINKER32.
18610         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
18611         * config/lm32/uclinux-elf.h (TARGET_OS_CPP_BUILTINS): Change
18612         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18613         * config/m32r/linux.h (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18614         GNU_USER_DYNAMIC_LINKER.
18615         (TARGET_OS_CPP_BUILTINS): Change LINUX_TARGET_OS_CPP_BUILTINS to
18616         GNU_USER_TARGET_OS_CPP_BUILTINS.
18617         * config/m68k/linux.h (TARGET_OS_CPP_BUILTINS): Change
18618         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18619         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18620         GNU_USER_DYNAMIC_LINKER.
18621         * config/m68k/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
18622         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18623         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Change
18624         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18625         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18626         GNU_USER_DYNAMIC_LINKER.
18627         * config/mips/linux64.h (LINUX_DYNAMIC_LINKERN32): Rename to
18628         GNU_USER_DYNAMIC_LINKERN32.
18629         (LINK_SPEC): Change LINUX_DYNAMIC_LINKERN32 to
18630         GNU_USER_DYNAMIC_LINKERN32.  Change LINUX_DYNAMIC_LINKER64 to
18631         GNU_USER_DYNAMIC_LINKER64.  Change LINUX_DYNAMIC_LINKER32 to
18632         GNU_USER_DYNAMIC_LINKER32.
18633         * config/mn10300/linux.h (TARGET_OS_CPP_BUILTINS): Change
18634         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18635         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18636         GNU_USER_DYNAMIC_LINKER.
18637         * config/moxie/uclinux.h (TARGET_OS_CPP_BUILTINS): Change
18638         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18639         * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Change
18640         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18641         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
18642         * config/rs6000/linux64.h (LINUX_DYNAMIC_LINKER32): Rename to
18643         GNU_USER_DYNAMIC_LINKER32.
18644         (LINUX_DYNAMIC_LINKER64): Rename to GNU_USER_DYNAMIC_LINKER64.
18645         * config/rs6000/sysv4.h (LINUX_DYNAMIC_LINKER): Rename to
18646         GNU_USER_DYNAMIC_LINKER.
18647         * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): Change
18648         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18649         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER32 to
18650         GNU_USER_DYNAMIC_LINKER32.  Change LINUX_DYNAMIC_LINKER64 to
18651         GNU_USER_DYNAMIC_LINKER64.
18652         * config/sh/linux.h (TARGET_OS_CPP_BUILTINS): Change
18653         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18654         (SUBTARGET_LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18655         GNU_USER_DYNAMIC_LINKER.
18656         * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Change
18657         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18658         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to
18659         GNU_USER_DYNAMIC_LINKER.
18660         * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Change
18661         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18662         (LINK_ARCH32_SPEC): Change LINUX_DYNAMIC_LINKER32 to
18663         GNU_USER_DYNAMIC_LINKER32.
18664         (LINK_ARCH64_SPEC): Change LINUX_DYNAMIC_LINKER64 to
18665         GNU_USER_DYNAMIC_LINKER64.
18666         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER64 to
18667         GNU_USER_DYNAMIC_LINKER64.
18668         * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Change
18669         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18670         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Change
18671         LINUX_TARGET_OS_CPP_BUILTINS to GNU_USER_TARGET_OS_CPP_BUILTINS.
18672         (LINK_SPEC): Change LINUX_DYNAMIC_LINKER to GNU_USER_DYNAMIC_LINKER.
18673
18674 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
18675
18676         * config/i386/gnu-user.h: Copy from linux.h.  Update comments.
18677         (LINK_EMULATION, GLIBC_DYNAMIC_LINKER): Remove.
18678         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_LINK_EMULATION and
18679         GNU_USER_DYNAMIC_LINKER.
18680         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
18681         * config/i386/gnu-user64.h: Copy from linux64.h.  Update comments.
18682         (GLIBC_DYNAMIC_LINKER32, GLIBC_DYNAMIC_LINKER64): Remove.
18683         (LINK_SPEC): Use GNU_USER_DYNAMIC_LINKER32 and
18684         GNU_USER_DYNAMIC_LINKER64.
18685         (MD_UNWIND_SUPPORT, REG_NAME): Remove.
18686         * config/i386/kfreebsd-gnu.h (LINK_EMULATION): Change to
18687         GNU_USER_LINK_EMULATION.
18688         * config/i386/linux.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE,
18689         DEFAULT_PCC_STRUCT_RETURN, TARGET_TLS_DIRECT_SEG_REFS_DEFAULT,
18690         ASM_COMMENT_START, DBX_REGISTER_NUMBER, NO_PROFILE_COUNTERS,
18691         MCOUNT_NAME, SUBTARGET_FRAME_POINTER_REQUIRED, SIZE_TYPE,
18692         PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS,
18693         CPP_SPEC, CC1_SPEC): Remove.
18694         (LINK_EMULATION): Change to GNU_USER_LINK_EMULATION.
18695         (GNU_USER_DYNAMIC_LINKER): Define.
18696         (ASM_SPEC, SUBTARGET_EXTRA_SPECS, LINK_SPEC, ENDFILE_SPEC,
18697         ASM_OUTPUT_ALIGNED_BSS, ASM_OUTPUT_MAX_SKIP_ALIGN,
18698         ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX, CRT_GET_RFIB_DATA,
18699         LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT, TF_SIZE,
18700         TARGET_ASM_FILE_END, STACK_CHECK_MOVING_SP,
18701         STACK_CHECK_STATIC_BUILTIN, TARGET_THREAD_SSP_OFFSET,
18702         TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
18703         * config/i386/linux64.h (TARGET_OS_CPP_BUILTINS, CPP_SPEC,
18704         CC1_SPEC, DEFAULT_PCC_STRUCT_RETURN,
18705         TARGET_TLS_DIRECT_SEG_REFS_DEFAULT, SPEC_32, SPEC_64, ASM_SPEC,
18706         LINK_SPEC, ENDFILE_SPEC, MULTILIB_DEFAULTS, LIBGCC2_HAS_TF_MODE,
18707         LIBGCC2_TF_CEXT, TF_SIZE, TARGET_ASM_FILE_END): Remove.
18708         (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Define.
18709         (STACK_CHECK_MOVING_SP, STACK_CHECK_STATIC_BUILTIN,
18710         TARGET_THREAD_SSP_OFFSET, TARGET_CAN_SPLIT_STACK,
18711         TARGET_THREAD_SPLIT_STACK_OFFSET): Remove.
18712         * config/i386/gnu.h (GLIBC_DYNAMIC_LINKER): Change to
18713         GNU_USER_DYNAMIC_LINKER.
18714         * config/kfreebsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
18715         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
18716         * config/knetbsd-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
18717         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
18718         * config/kopensolaris-gnu.h (GLIBC_DYNAMIC_LINKER): Change to
18719         GNU_USER_DYNAMIC_LINKER.  Unconditionally undefine and redefine.
18720         * config.gcc (i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu |
18721         i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* |
18722         i[34567]86-*-kopensolaris*-gnu, x86_64-*-linux* |
18723         x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Use the new headers.
18724
18725 2011-04-11  Kai Tietz  <ktietz@redhat.com>
18726
18727         PR target/9601
18728         PR target/11772
18729         * config/i386/i386-protos.h (ix86_get_callcvt): New prototype.
18730         * config/i386/i386.c (ix86_handle_cconv_attribute): Adjust
18731         comment.
18732         (ix86_is_msabi_thiscall): Removed.
18733         (ix86_is_type_thiscall): Likewise.
18734         (ix86_get_callcvt): New function.
18735         (ix86_comp_type_attributes): Simplify check.
18736         (ix86_function_regparm): Use ix86_get_callcvt for calling
18737         convention attribute checks.
18738         (ix86_return_pops_args): Likewise.
18739         (ix86_static_chain): Likewise.
18740         (x86_this_parameter): Likewise.
18741         (x86_output_mi_thunk): Likewise.
18742         (ix86_function_type_abi): Optimize check for types without attributes.
18743         * config/i386/i386.h (IX86_CALLCVT_CDECL, IX86_CALLCVT_STDCALL,
18744         IX86_CALLCVT_FASTCALL, IX86_CALLCVT_THISCALL, IX86_CALLCVT_REGPARM,
18745         IX86_CALLCVT_SSEREGPARM): New macros to represent calling convention
18746         by flag-values.
18747         (IX86_BASE_CALLCVT): Helper macro.
18748         * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
18749         Use ix86_get_callcvt for calling convention attribute checks and avoid
18750         symbol-decoration for stdcall in TARGET_RTD case.
18751         * config/i386/winnt.c (i386_pe_maybe_mangle_decl_assembler_name):
18752         Likewise.
18753         (gen_stdcall_or_fastcall_suffix): Adjust ident and use DECL_ORIGIN
18754         for declaration.
18755
18756 2011-04-11  Uros Bizjak  <ubizjak@gmail.com>
18757
18758         * config/i386/sse.md (VI_128): New mode iterator.
18759         (VI12_128): Rename from SSEMODE12.
18760         (VI14_128): Rename from SSEMODE14.
18761         (VI124_128): New mode iterator.
18762         (VI24_128): Rename from SSEMODE248.
18763         (VI248_128): Rename from SSEMODE248.
18764         (SSEMODE124C8): Remove.
18765         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
18766         (*sse2_<plusminus_insn><mode>3): Merge with
18767         *avx_<plusminus_insn><mode>3.
18768         (*mulv8hi3): Merge with *avx_mulv8hi3.
18769         (*<s>mulv8hi3_highpart): Merge with *avx_<s>mulv8hi3_highpart.
18770         (*sse2_umulv2siv2di3): Merge with *avx_umulv2siv2di3.
18771         (*sse2_pmaddwd): Merge with *avx_pmaddwd.
18772         (*sse4_1_mulv4si3): Merge with *avx_mulv4si3.
18773         (ashr<mode>3): Merge with *avx_ashr<mode>3.
18774         (lshr<mode>3): Merge with *avx_lshr<mode>3.
18775         (ashl<mode>3): Merge with *avx_ashl<mode>3.
18776         (sse2_ashlv1ti3): Merge with *avx_ashlv1ti3.
18777         (sse2_lshrv1ti3): Merge with *avx_lshrv1ti3.
18778         (*sse4_1_<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
18779         (*<smaxmin:code>v8hi3): Ditto.
18780         (*sse4_1_<umaxmin:code><mode>3): Merge with *avx_<umaxmin:code><mode>3.
18781         (*<smaxmin:code>v16qi3): Ditto.
18782         (*sse4_1_eqv2di3): Merge with *avx_eq<mode>3.
18783         (*sse2_eq<mode>3): Ditto.
18784         (*sse4_2_eqv2di3): Merge with *avx_gt<mode>3.
18785         (*sse2_gt<mode>3): Ditto.
18786         (vcondv2di): Split out of vcond<mode>.
18787         (vconduv2di): Split out of vcondu<mode>.
18788
18789 2011-04-11  Richard Guenther  <rguenther@suse.de>
18790
18791         * gimplify.c (gimple_fold_indirect_ref): Check host_integerp
18792         before calling tree_low_cst.
18793
18794 2011-04-11  Richard Guenther  <rguenther@suse.de>
18795
18796         * stor-layout.c (layout_type): Compute all array index size operations
18797         in the original type.
18798         (initialize_sizetypes): Add comment.
18799         (set_sizetype): Do not set TREE_TYPE of a TREE_VEC.
18800
18801 2011-04-11  Joseph Myers  <joseph@codesourcery.com>
18802
18803         * common.opt (Tbss=, Tdata=, Ttext=): New options.
18804
18805 2011-04-11  Martin Jambor  <mjambor@suse.cz>
18806
18807         * cgraph.c (cgraph_local_info): Call cgraph_get_node instead
18808         of cgraph_node, handle NULL return value.
18809         (cgraph_global_info): Likewise.
18810         (cgraph_rtl_info): Likewise.
18811         * tree-inline.c (estimate_num_insns): Likewise.
18812         * gimplify.c (unshare_body): Likewise.
18813         (unvisit_body): Likewise.
18814         (gimplify_body): Likewise.
18815         * predict.c (optimize_function_for_size_p): Likewise.
18816         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
18817         (call_may_clobber_ref_p_1): Likewise.
18818         * varasm.c (function_section_1): Likewise.
18819         (assemble_start_function): Likewise.
18820
18821 2011-04-11  Martin Jambor  <mjambor@suse.cz>
18822
18823         * except.c (set_nothrow_function_flags): Call cgraph_get_node instead
18824         of cgraph_node.
18825         * final.c (rest_of_clean_state): Likewise.
18826         * gimple-iterator.c (update_call_edge_frequencies): Likewise.
18827         * passes.c (pass_init_dump_file): Likewise.
18828         (execute_all_ipa_transforms): Likewise.
18829         (function_called_by_processed_nodes_p): Likewise.
18830         * predict.c (maybe_hot_frequency_p): Likewise.
18831         (probably_never_executed_bb_p): Likewise.
18832         (compute_function_frequency): Likewise.
18833         * tree-nested.c (check_for_nested_with_variably_modified): Likewise.
18834         (unnest_nesting_tree_1): Likewise.
18835         (lower_nested_functions): Likewise.
18836         * tree-optimize.c (execute_fixup_cfg): Likewise.
18837         (tree_rest_of_compilation): Likewise.
18838         * tree-profile.c (gimple_gen_ic_func_profiler): Likewise.
18839         * tree-sra.c (ipa_early_sra): Likewise.
18840         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
18841         * config/i386/i386.c (ix86_compute_frame_layout): Likewise.
18842         * ipa.c (record_cdtor_fn): Likewise.
18843         * ipa-inline.c (cgraph_early_inlining): Likewise.
18844         (compute_inline_parameters_for_current): Likewise.
18845         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
18846         * ipa-pure-const.c (local_pure_const): Likewise.
18847         * ipa-split.c (split_function): Likewise.
18848         (execute_split_functions): Likewise.
18849         * cgraphbuild.c (build_cgraph_edges): Likewise.
18850         (rebuild_cgraph_edges): Likewise.
18851         (cgraph_rebuild_references): Likewise.
18852         (remove_cgraph_callee_edges): Likewise.
18853         * cgraphunit.c (cgraph_mark_if_needed): Likewise.
18854         (verify_cgraph_node): Likewise.
18855         (cgraph_analyze_functions): Likewise.
18856         (cgraph_preserve_function_body_p): Likewise.
18857         (save_inline_function_body): Likewise.
18858         (save_inline_function_body): Likewise.
18859         * tree-inline.c (copy_bb): Likewise.
18860         (optimize_inline_calls): Likewise.
18861
18862 2011-04-11  Martin Jambor  <mjambor@suse.cz>
18863
18864         PR tree-optimization/48195
18865         * ipa-cp.c (ipcp_driver): Call ipa_check_create_node_params and
18866         ipa_check_create_edge_args.
18867         (ipcp_generate_summary): Do not call ipa_check_create_node_params and
18868         ipa_check_create_edge_args.
18869         * ipa-inline.c (inline_generate_summary): Do not call
18870         ipa_check_create_node_params and ipa_check_create_edge_args.
18871         * ipa-prop.c (ipa_analyze_node): Call ipa_check_create_node_params and
18872         ipa_check_create_edge_args.
18873
18874 2011-04-09  Anatoly Sokolov  <aesok@post.ru>
18875
18876         * expr.c (expand_expr_real_1): Use add_to_hard_reg_set function
18877         instead of loop.
18878         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
18879         * function.c (record_hard_reg_sets): Likewise.
18880         * ira.c (compute_regs_asm_clobbered): Likewise.
18881         * sched-deps.c (sched_analyze_1): Likewise.
18882         * reload1.c (mark_reload_reg_in_use, choose_reload_regs): Likewise.
18883
18884 2011-04-09  Xinliang David Li  <davidxl@google.com>
18885
18886         PR tree-optimization/PR48484
18887         * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Set
18888         has_valid_pred lazily
18889
18890 2011-04-09  Duncan Sands  <baldrick@free.fr>
18891
18892         * tree.c (array_type_nelts): Bail out if TYPE_MAX_VALUE not set.
18893
18894 2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
18895
18896         * combine.c (combine_validate_cost): Adjust comments.  Set registered
18897         cost of I0 to zero at the end, if any.
18898
18899 2011-04-08  Xinliang David Li  <davidxl@google.com>
18900
18901         * ipa-cp.c (ipcp_update_profiling): Correct negative scale factor due
18902         to insane profile data.
18903
18904 2011-04-08  Xinliang David Li  <davidxl@google.com>
18905
18906         * ipa-cp.c (ipcp_update_profiling): Correct
18907          negative scale factor due to insane profile data.
18908
18909 2011-04-08  Xinliang David Li  <davidxl@google.com>
18910
18911         * final.c (dump_basic_block_info): New function.
18912         (final): Dump basic block.
18913         (final_scan_insn): Remove old dump.
18914
18915 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
18916
18917         PR target/47829
18918         * config.gcc (i386-*-freebsd): Disable unwind table generation for
18919         crtbegin/crtend.
18920
18921 2011-04-08  Michael Matz  <matz@suse.de>
18922
18923         PR middle-end/48389
18924         * jump.c (rebuild_jump_labels_1, rebuild_jump_labels_chain): New
18925         functions.
18926         (rebuild_jump_labels): Call rebuild_jump_labels_1.
18927         * rtl.h (rebuild_jump_labels_chain): Declare.
18928         * cfgexpand.c (gimple_expand_cfg): Initialize JUMP_LABEL also on
18929         insns inserted on edges.
18930
18931 2011-04-08  Joseph Myers  <joseph@codesourcery.com>
18932
18933         * config.gcc (arm*-*-*): Add arm/arm-tables.opt to extra_options.
18934         * config/arm/arm-arches.def: New.
18935         * config/arm/arm-opts.h: New.
18936         * config/arm/genopt.sh: New.
18937         * config/arm/arm-tables.opt: New (generated).
18938         * config/arm/arm.c (arm_handle_option, arm_target_help,
18939         TARGET_HANDLE_OPTION, TARGET_HELP, arm_find_cpu): Remove.
18940         (all_architectures): Get most table contents from arm-arches.def.
18941         (arm_option_override): Set arm_selected_arch, arm_selected_cpu and
18942         arm_selected_tune here.
18943         * config/arm/arm.h (enum processor_type): Move to arm-opts.h.
18944         * config/arm/arm.opt (config/arm/arm-opts.h): New HeaderInclude.
18945         (march=, mcpu=, mtune=): Use Enum and Var.
18946         * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt): New.
18947         (arm.o): Update dependencies.
18948
18949 2011-04-08  Basile Starynkevitch  <basile@starynkevitch.net>
18950
18951         * gengtype.c (write_typed_alloc_def): New argument f. Use it instead
18952         of header_file.
18953         (write_typed_struct_alloc_def, write_typed_typedef_alloc_def)
18954         (write_typed_alloc_defns): Likewise.
18955         (main): Calls write_typed_alloc_defns with output_header.
18956
18957 2011-04-08  Vladimir Makarov  <vmakarov@redhat.com>
18958
18959         PR inline-asm/48435
18960         * ira-color.c (setup_profitable_hard_regs): Add comments.
18961         Don't take prohibited hard regs into account.
18962         (setup_conflict_profitable_regs): Rename to
18963         get_conflict_profitable_regs.
18964         (check_hard_reg_p): Check prohibited hard regs.
18965
18966 2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
18967
18968         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Call use_reg.
18969         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Likewise.
18970         * config/sparc/sparc.c (sparc_legitimize_tls_address): Likewise.
18971
18972 2011-04-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18973
18974         PR target/48366
18975         * config/pa/pa.c (hppa_register_move_cost): Increase to 18 cost of
18976         move from floating point to shift amount register.
18977         (emit_move_sequence): Remove secondary reload support for floating
18978         point to shift amount amount register copies.
18979         (pa_secondary_reload): Return GENERAL_REGS for floating point/shift
18980         amount register copies.
18981         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): For shift amount
18982         register, return false if mode isn't a scalar integer mode.
18983         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Likewise.
18984
18985 2011-04-08  Richard Guenther  <rguenther@suse.de>
18986
18987         * gimple.c (gimple_call_flags): Remove kludge.
18988
18989 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
18990
18991         * sel-sched.c (sel_region_init): Move call to
18992         sel_setup_region_sched_flags after setup_current_loop_nest.
18993
18994 2011-04-08  Andrey Belevantsev  <abel@ispras.ru>
18995
18996         PR rtl-optimization/48272
18997         * sched-deps.c (setup_insn_reg_pressure_info): Export and rename to
18998         init_insn_reg_pressure_info.  Adjust a caller.
18999         * sched-int.h (init_insn_reg_pressure_info): Declare.
19000         * haifa-sched.c (haifa_init_insn): Call init_insn_reg_pressure_info
19001         when sched-pressure is enabled.
19002
19003 2011-04-08  Richard Guenther  <rguenther@suse.de>
19004
19005         * gimple.c (gimple_set_modified): Do not queue calls to
19006         MODIFIED_NORETURN_CALLS here ...
19007         * tree-ssa-operands.c (update_stmt_operands): ... but here.
19008
19009 2011-04-08  Richard Guenther  <rguenther@suse.de>
19010
19011         PR lto/48467
19012         * toplev.c (lang_dependent_init): Do not open asm_out_file
19013         in WPA mode, nor perform debug machinery initialization.
19014         (finalize): Do not unlink asm_out_file in WPA mode.
19015
19016 2011-04-08  Richard Guenther  <rguenther@suse.de>
19017
19018         * gimple.h (gimple_call_fntype): New function.
19019         (gimple_call_return_type): Use it.
19020         * expr.c (expand_expr_real_1): Use gimple_call_fntype.
19021         * gimple-low.c (gimple_check_call_args): Likewise.
19022         * gimple.c (gimple_call_flags): Likewise.
19023         (gimple_call_arg_flags): Likewise.
19024         (gimple_call_return_flags): Likewise.
19025         * tree-cfg.c (verify_gimple_call): Likewise.
19026         (do_warn_unused_result): Likewise.
19027         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
19028         * value-prof.c (gimple_ic_transform): Fix fndecl check.
19029
19030 2011-04-08  Dmitry Melnik  <dm@ispras.ru>
19031
19032         PR rtl-optimization/48235
19033         * sel-sched.c (code_motion_process_successors): Recompute the last
19034         insn in basic block if control flow changed.
19035         (code_motion_path_driver): Ditto.  Recompute the first insn as well.
19036         Update condition for ilist_remove.
19037
19038 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
19039
19040         PR rtl-optimization/48302
19041         * sel-sched-ir.h (sel_add_loop_preheaders): Update prototype.
19042         * sel-sched-ir.c (sel_add_loop_preheaders): Add 'bbs' argument.  Use
19043         it to record added preheader blocks.
19044         * sel-sched.c (setup_current_loop_nest): Add 'bbs' argument.  Pass it
19045         on to sel_add_loop_preheaders.
19046         (sel_region_init): Move call to setup_current_loop_nest after
19047         sel_init_bbs.
19048
19049 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
19050
19051         PR target/48273
19052         * cfgloop.h (loop_has_exit_edges): New helper.
19053         * sel-sched-ir.c (init_global_and_expr_for_insn): Make CALLs
19054         non-clonable.
19055         * sel-sched.c (sel_setup_region_sched_flags): Don't pipeline loops
19056         that have no exit edges.
19057
19058 2011-04-08  Alexander Monakov  <amonakov@ispras.ru>
19059
19060         PR rtl-optimization/48442
19061         * sel-sched.c (init_seqno): Remove number_of_insns argument.  Update
19062         all callers.  Adjust assert.
19063
19064 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
19065
19066         PR tree-optimization/48377
19067         * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
19068         is_packed to true even for types with smaller TYPE_ALIGN than
19069         TYPE_SIZE.
19070
19071 2011-04-08  Richard Guenther  <rguenther@suse.de>
19072
19073         PR bootstrap/48513
19074         * doc/tm.texi: Re-generate.
19075
19076 2011-04-08  Wei Guozhi  <carrot@google.com>
19077
19078         PR target/47855
19079         * config/arm/arm-protos.h (arm_attr_length_push_multi): New prototype.
19080         * config/arm/arm.c (arm_attr_length_push_multi): New function.
19081         * config/arm/arm.md (*push_multi): Change the length computation to
19082         call a C function.
19083
19084 2011-04-08  Anatoly Sokolov  <aesok@post.ru>
19085
19086         * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
19087         (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
19088         * doc/tm.texi: Regenerate.
19089         * system.h (ASM_OUTPUT_BSS): Poison.
19090         * varasm.c (asm_output_bss): Remove function.
19091         (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
19092
19093         * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
19094         * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
19095         * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
19096         * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
19097         Likewise.
19098         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
19099         Likewise.
19100         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
19101         Likewise.
19102         * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
19103
19104 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
19105
19106         * config/rx/rx.opt (rx610, rx200, rx600): Use Enum not Name on
19107         EnumValue lines.
19108
19109 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
19110
19111         * config/m68k/m68k.c (m68k_handle_option): Don't handle
19112         OPT_m68000, OPT_mc68000, OPT_m68010, OPT_m68020, OPT_mc68020,
19113         OPT_m68030, OPT_m68040, OPT_m68060, OPT_m68302, OPT_m68332 and
19114         OPT_mcpu32.
19115         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
19116         handle -mc68000, -m68000, -m68302, -m68010, -mc68020, -m68020,
19117         -m68030, -m68040, -m68060, -mcpu32 and -m68332.
19118         * config/m68k/m68k.opt (m68000, m68010, m68020, m68030, m68040,
19119         m68060, m68302, m68332, mc68000, mc68020, mcpu32): Use Alias.
19120         * config/m68k/t-mlibs (CANONICALIZE_OPTIONS): Remove.
19121         (MULTILIB_OPTIONS): Don't use $(CANONICALIZE_OPTIONS).
19122         (MULTILIB_MATCHES): Map -march= options to corresponding -mcpu=
19123         options.  Don't map other m68k options manually.  Don't handle
19124         old-style options as canonical.
19125         (MULTILIB_EXCEPTIONS): Don't use $(CANONICALIZE_OPTIONS).
19126         * doc/install.texi (m68k-*-*): Document binutils version requirement.
19127
19128 2011-04-07  Eric Botcazou  <ebotcazou@adacore.com>
19129
19130         * basic-block.h (force_nonfallthru): Move to...
19131         * cfghooks.h (struct cfg_hooks): Add force_nonfallthru hook.
19132         (force_nonfallthru): ...here.
19133         * cfghooks.c (force_nonfallthru): New function.
19134         * cfgrtl.c (force_nonfallthru): Rename into...
19135         (rtl_force_nonfallthru): ...this.
19136         (commit_one_edge_insertion): Do not set AUX field.
19137         (commit_edge_insertions): Do not discover new basic blocks.
19138         (rtl_cfg_hooks): Add rtl_force_nonfallthru.
19139         (cfg_layout_rtl_cfg_hooks): Likewise.
19140         * function.c (thread_prologue_and_epilogue_insns): Remove bogus
19141         ATTRIBUTE_UNUSED.  Discover new basic blocks in the prologue insns.
19142         * tree-cfg.c (gimple_cfg_hooks): Add NULL for force_nonfallthru.
19143
19144 2011-04-07  Anatoly Sokolov  <aesok@post.ru>
19145
19146         * config/mips/mips.h (REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
19147         Remove macros.
19148
19149 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
19150
19151         * config/i386/sse.md: Update copyright year.
19152         (avxcvtvecmode): Remove.
19153         (sse_movhlps): Merge with *avx_movhlps.
19154         (sse_movlhps): Merge with *avx_movlhps.
19155         (vec_interleave_highv4sf): Merge with *avx_interleave_highv4sf.
19156         (vec_interleave_lowv4sf): Merge with *avx_interleave_lowv4sf.
19157         (sse_shufps_<mode>): Merge with *avx_shufps_<mode>.
19158         (sse_loadhps): Merge with *avx_loadhps.
19159         (sse_storelps): Merge with *avx_storelps.
19160         (sse_loadlps): Merge with *avx_loadlps.
19161         (sse_movss): Merge with *avx_movss.
19162         (*vec_concatv2sf_sse4_1): Merge with *vec_concatv2sf_avx.
19163         (*vec_concatv4sf_sse): Merge with *vec_concatv4sf_avx.
19164         (*vec_set<mode>_0_sse4_1): Merge with *vec_set<mode>_0_avx.
19165         (*vec_set<mode>_0_sse2): Split multi-unit alternative.
19166         (vec_set<mode>_0): Ditto.
19167         (*vec_setv4sf_sse4_1): Merge with *vec_setv4sf_avx.
19168         (sse4_1_insertps): Merge with *avx_insertps.
19169         (*sse3_interleave_highv2df): Merge with *avx_interleave_highv2df.
19170         (*sse3_interleave_lowv2df): Merge with *avx_interleave_lowv2df.
19171         (vec_interleave_highv2di): Merge with *avx_interleave_highv2di.
19172         (sse2_shufpd_<mode>): Merge with *avx_shufpd_<mode>.
19173         (sse2_storehpd): Merge with *avx_storehpd.
19174         (sse2_loadhpd): Merge with *avx_loadhpd.
19175         (sse2_loadlpd): Merge with *avx_loadlpd.
19176         (sse2_movsd): Merge with *avx_movsd.
19177         (*vec_concatv2df): Merge with *vec_concatv2df.
19178
19179 2011-04-07  Jakub Jelinek  <jakub@redhat.com>
19180
19181         PR debug/48343
19182         * combine.c (combine_instructions): Add last_combined_insn,
19183         update it if insn is after it, pass it to all try_combine calls.
19184         (try_combine): Add last_combined_insn parameter, pass it instead of
19185         i3 to propagate_for_debug.
19186
19187 2011-04-07  Nick Clifton  <nickc@redhat.com>
19188
19189         * config/mn10300/mn10300.md (movqi_internal): Add alternatives
19190         to handle MDR <-> data register transfers.
19191         (movhi_internal): Likewise.
19192
19193 2011-04-07  Alan Modra  <amodra@gmail.com>
19194
19195         * config/rs6000/rs6000.c (rs6000_stack_info): Don't compare against
19196         previous stack info.
19197
19198 2011-04-07  Tom de Vries  <tom@codesourcery.com>
19199
19200         PR target/43920
19201         * cfgcleanup.c (try_crossjump_to_edge): Add dir parameter.  Pass dir to
19202         flow_find_cross_jump.  Swap variables to implement backward replacement.
19203         (try_crossjump_bb): Add argument to try_crossjump_to_edge.
19204
19205 2011-04-07  Tom de Vries  <tom@codesourcery.com>
19206
19207         PR target/43920
19208         * cfgcleanup.c (walk_to_nondebug_insn): New function.
19209         (flow_find_cross_jump): Use walk_to_nondebug_insn.  Recalculate bb1
19210         and bb2.
19211         (try_crossjump_to_edge): Handle case that newpos1 or newpos2 is not
19212         src1 or src2.  Redirect edges to the last basic block.  Update
19213         frequency and count on multiple basic blocks in case of fallthru.
19214
19215 2011-04-07  Tom de Vries  <tom@codesourcery.com>
19216
19217         PR target/43920
19218         * cfgcleanup.c (equal_different_set_p, can_replace_by, merge_dir): New
19219         function.
19220         (old_insns_match_p): Change return type.  Replace return false/true
19221         with return dir_none/dir_both.  Use can_replace_by.
19222         (flow_find_cross_jump): Add dir_p parameter.  Init replacement
19223         direction from dir_p.  Register replacement direction in dir, last_dir
19224         and afterlast_dir.  Handle new return type of old_insns_match_p using
19225         merge_dir.  Return replacement direction in dir_p.
19226         (flow_find_head_matching_sequence, outgoing_edges_match): Handle new
19227         return type of old_insns_match_p.
19228         (try_crossjump_to_edge): Add argument to call to flow_find_cross_jump.
19229         * ifcvt.c ( cond_exec_process_if_block): Add argument to call to
19230         flow_find_cross_jump.
19231         * basic-block.h (enum replace_direction): New type.
19232         (flow_find_cross_jump): Add parameter to declaration.
19233
19234 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
19235
19236         * config/i386/sse.md (AVXMODEDCVTDQ2PS): Remove.
19237         (AVXMODEDCVTPS2DQ): Ditto.
19238         (VEC_FLOAT_MODE): Ditto.
19239         (<sse>_andnot<mode>3): Merge with avx_andnot<mode>3.  Use VF mode
19240         iterator.  Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
19241         (<any_logic:code><mode>3): Use VF mode iterator.
19242         (*<any_logic:code><mode>3): Merge with *avx_<any_logic:code><mode>3.
19243         Use VF mode iterator.
19244         (copysign<mode>3): Use VF mode iterator.
19245         (*andnot<MODEF:mode>3): Merge with *avx_andnot<MODEF:mode>3.  Handle
19246         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL target flag.
19247         (*<any_logic:code><MODEF:mode>3): Merge with
19248         *avx_<any_logic:code><MODEF:mode>3.
19249         (sse_cvtsi2ss): Merge with *avx_cvtsi2ss.
19250         (sse_cvtsi2ssq): Merge with *avx_cvtsi2ssq.
19251         (avx_cvtdq2ps256): Split from avx_cvtdq2ps<avxmodesuffix>.
19252         (avx_cvtdq2ps<avxmodesuffix>): Remove.
19253         (sse2_cvtdq2ps): Use %v modifier.
19254         (avx_cvtps2dq256): Split from avx_cvtps2dq<avxmodesuffix>.
19255         (avx_cvtps2dq<avxmodesuffix>): Remove.
19256         (sse2_cvtps2dq): Use %v modifier.
19257         (avx_cvttps2dq256): Split from avx_cvttps2dq<avxmodesuffix>.
19258         (avx_cvttps2dq<avxmodesuffix>): Remove.
19259         (sse2_cvttps2dq): Use %v modifier.
19260         (sse2_cvtsi2sd): Merge with *avx_cvtsi2sd.
19261         (sse2_cvtsi2sdq): Merge with *avx_cvtsi2sdq.
19262         (sse2_cvtsd2siq): Fix insn template.
19263         (sse2_cvtsd2siq_2): Ditto.
19264         (sse2_cvttsd2siq): Ditto.
19265         (sse2_cvtsd2ss): Merge with *avx_cvtsd2ss.
19266         (sse2_cvtss2sd): Merge with *avx_cvtss2sd.
19267
19268 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
19269
19270         * gcov-io.c: Use GCC Runtime Library Exception.
19271
19272 2011-04-06  Jakub Jelinek  <jakub@redhat.com>
19273
19274         PR debug/48466
19275         * dwarf2out.c (based_loc_descr): If drap_reg is INVALID_REGNUM, use
19276         as base_reg whatever register reg has been eliminated to, instead
19277         of hardcoding STACK_POINTER_REGNUM.
19278
19279 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
19280
19281         * doc/tm.texi.in: Document C target hooks as separate from general
19282         target hooks.
19283         * doc/tm.texi: Regenerate.
19284         * genhooks.c (struct hook_desc): Add docname field.
19285         (HOOK_VECTOR_1, DEFHOOKPOD, DEFHOOK, DEFHOOK_UNDOC).  Initialize
19286         docname field.
19287         (hook_array): Include c-target.def.
19288         (emit_documentation): Use docname field in output.
19289         (emit_init_macros): Take docname argument.  Only emit definitions
19290         for hooks matching docname.
19291         (main): Expect additional arguments in all cases.  Pass argument
19292         to emit_init_macros.
19293         * target.def: Move initial macro definitions and comments to
19294         target-hooks-macros.h.
19295         (gcc_targetcm): Move to c-family/c-target.def.
19296         * target.h (targetcm): Move declaration to c-family/c-target.h.
19297         * targhooks.c (default_handle_c_option): Move to
19298         c-family/c-opts.c.
19299         * targhooks.h (default_handle_c_option): Move declaration to
19300         c-family/c-common.h.
19301         * target-hooks-macros.h: New file.
19302         * config.gcc (target_has_targetcm): Define and use to add to
19303         c_target_objs and cxx_target_objs.
19304         * config/default-c.c: New file.
19305         * config/darwin-c.c: Include c-target.h and c-target-def.h instead
19306         of target.h and target-def.h.
19307         (TARGET_HANDLE_C_OPTION, targetcm): Define later in file.
19308         (darwin_objc_construct_string, darwin_cfstring_ref_p,
19309         darwin_check_cfstring_format_arg): Make static.
19310         (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
19311         TARGET_STRING_OBJECT_REF_TYPE_P,
19312         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): Define here.
19313         * config/darwin-protos.h (darwin_objc_construct_string,
19314         darwin_cfstring_ref_p, darwin_check_cfstring_format_arg): Don't
19315         declare.
19316         * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT,
19317         TARGET_STRING_OBJECT_REF_TYPE_P,
19318         TARGET_CHECK_STRING_OBJECT_FORMAT_ARG, TARGET_HAS_TARGETCM): Remove.
19319         * config/t-darwin (darwin-c.o): Update dependencies.
19320         * system.h (TARGET_HAS_TARGETCM): Poison.
19321         * Makefile.in (TARGET_H): Update.
19322         (TARGET_DEF, C_TARGET_DEF, C_TARGET_H, C_TARGET_DEF_H): Define.
19323         (c-family/c-format.o, c-family/c-opts.o): Update dependencies.
19324         (default-c.o): New target.
19325         (s-target-hooks-def-h): Pass "Target Hook" string to genhooks.
19326         (c-family/c-target-hooks-def.h, s-c-target-hooks-def-h): New targets.
19327         (s-tm-texi): Pass -d option to genhooks.  Also test timestamp on
19328         c-target.def.
19329         (build/genhooks.o): Update dependencies.
19330
19331 2011-04-06  Richard Guenther  <rguenther@suse.de>
19332
19333         * ipa-inline.c (enum inlining_mode): Remove.
19334         (cgraph_flatten): Use some other token.
19335         (cgraph_edge_early_inlinable_p): New function, split out from ...
19336         (cgraph_perform_always_inlining): New function, split out from ...
19337         (cgraph_decide_inlining_incrementally): ... here.
19338         (cgraph_mark_inline_edge): Adjust.
19339         (cgraph_early_inlining): Re-structure.
19340         (pass_early_inline): Require SSA form.
19341
19342 2011-04-06  Andrew Stubbs  <ams@codesourcery.com>
19343             Julian Brown  <julian@codesourcery.com>
19344             Mark Shinwell  <shinwell@codesourcery.com>
19345
19346         * config/arm/arm.h (arm_class_likely_spilled_p): Check against
19347         LO_REGS only for Thumb-1.
19348         (MODE_BASE_REG_CLASS): Restrict base registers to those which can
19349         be used in short instructions when optimising for size on Thumb-2.
19350
19351 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
19352
19353         * gimple-low.c (lower_gimple_return): When not optimizing, force labels
19354         associated with user returns to be preserved.
19355
19356 2011-04-06  Tristan Gingold  <gingold@adacore.com>
19357
19358         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index,
19359         symbol_queue_size, DBXOUT_DECR_NESTING,
19360         (DBXOUT_DECR_NESTING_AND_RETURN): Also define
19361         if XCOFF_DEBUGGING_INFO.
19362
19363 2011-04-06  Uros Bizjak  <ubizjak@gmail.com>
19364
19365         * config/i386/i386.md (attribute isa): New.
19366         (attribute enabled): New.
19367         (setcc_<mode>_sse): Merge from *{avx,sse}_setcc<mode>.
19368         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_mixed_avx.
19369         (*fop_<mode>_comm_sse): Merge with *fop_<mode>_comm_avx.
19370         (*fop_<mode>_1_mixed): Merge with *fop_<mode>_1_mixed_avx.
19371         (*fop_<mode>_1_sse): Merge with *fop_<mode>_1_avx.
19372         (<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
19373         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.
19374         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.
19375
19376         * config/i386/sse.md (VF): New mode iterator.
19377         (VF1): Ditto.
19378         (VF2): Ditto.
19379         (VF_128): Ditto.
19380         (SSEMODEF4): Remove.
19381         (attribute sse): Handle V8SF and V4DF modes.
19382         (<absneg:code><mode>2): Use VF mode iterator.
19383         (*absneg<mode>2): Merge from *{avx,sse}_absneg<mode>2.  Use VF
19384         mode iterator.
19385         (<plusminus_insn><mode>3): Use VF mode iterator.
19386         (*<plusminus_insn><mode>3): Merge with *avx_<plusminus_insn><mode>3.
19387         Use VF mode iterator.
19388         (<sse>_vm<plusminus_insn><mode>3): Merge with
19389         *avx_vm<plusminus_insn><mode>3.  Use VF_128 mode iterator.
19390         (mul<mode>3): Use VF mode iterator.
19391         (*mul<mode>3): Merge with *avx_mul<mode>3.  Use VF mode iterator.
19392         (<sse>_vmmul<mode>3): Merge with *avx_vmmul<mode>3.  Use VF_128
19393         mode iterator.
19394         (div<VF2:mode>3): Merge from divv2df3 and divv4df3.
19395         (div<VF1:mode>3): Merge from divv4sf3 and divv8sf3.
19396         (<sse>_div<mode>3): Merge with *avx_div<mode>3.  Use VF mode iterator.
19397         (<sse>_vmdiv<mode>3): Merge with *avx_vmdiv<mode>3.  Use VF_128
19398         mode iterator.
19399         (<sse>_rcp<mode>2): Merge from avx_rcpv8sf2 and sse_rcpv4sf2.
19400         Use VF1 mode iterator.
19401         (sse_vmrcpv4sf2): Merge with *avx_vmrcpv4sf2.
19402         (sqrt<VF2:mode>2): New expander.
19403         (sqrt<VF1:mode>2): Merge from sqrtv4sf2 and sqrtv8sf2.
19404         (<sse>_sqrt<mode>2): Merge from avx_sqrtv8sf2, sse_sqrtv4sf, sqrtv4df2
19405         and sqrtv2df2.  Use VF mode iterator.
19406         (<sse>_vmsqrt<mode>2): Merge with *avx_vmsqrt<mode>2.  Use VF_128
19407         mode iterator.
19408         (rsqrt<VF1:mode>2): Merge from rsqrtv4sf2 and rsqrtv8sf2.
19409         (<sse>_rsqrt<mode>2): Merge from avx_rsqrtv8sf2 and sse_rsqrt4sf2.
19410         Use VF1 mode iterator.
19411         (sse_vmrsqrtv4sf2): Merge with *avx_vmrsqrtv4sf2.
19412         (<smaxmin:code><mode>3): Use VF mode iterator.
19413         (*<smaxmin:code><mode>3_finite): Merge with
19414         *avx_<smaxmin:code><mode>3_finite.  Use VF mode iterator.
19415         (*<smaxmin:code><mode>3): Merge with *avx_<smaxmin:code><mode>3.
19416         (<sse>_vm<smaxmin:code><mode>2): Merge with
19417         *avx_vm<smaxmin:code><mode>2.  Use VF_128 mode iterator.
19418         (*ieee_smin<mode>3): Merge with *avx_ieee_smin<mode>3.  Use VF
19419         mode iterator.
19420         (*ieee_smax<mode>3): Merge with *avx_ieee_smax<mode>3.  Use VF
19421         mode iterator.
19422         (sse3_addsubv2df3): Merge with *avx_addsubv2df3.
19423         (sse3_addsubv4sf3): Merge with *avx_addsubv4sf3.
19424         (sse3_h<plusminus_insn>v2df3): Merge with *avx_h<plusminus_insn>v2df3.
19425         (sse3_h<plusminus_insn>v4sf3): Merge with *avx_h<plusminus_insn>v4sf3.
19426         (avx_cmp<mode>3): Rename from avx_cmp<ssemodesuffix><mode>3.  Use
19427         VF mode iterator.
19428         (avx_vmcmp<mode>3): Rename from avx_cmp<ssescalarmodesuffix><mode>3.
19429         Use VF_128 mode iterator.
19430         (<sse>_maskcmp<mode>3): Merge with *avx_maskcmp<mode>3.  Use VF
19431         mode iterator.
19432         (<sse>_vmmaskcmp<mode>3): Merge with *avx_vmmaskcmp<mode>3.  Use
19433         VF_128 mode iterator.
19434         (vcond<mode>): Use VF mode iterator.
19435         * config/i386/predicates.md (sse_comparison_operator): Merge with
19436         avx_comparison_float_operator.  Do not declare as special_predicate.
19437         * config/i386/i386.c (struct builtin_description): Update for renamed
19438         compare patterns.
19439         (ix86_expand_args_builtin): Ditto.
19440         (ix86_expand_sse_compare_mask): Ditto.
19441
19442 2011-04-06  Richard Guenther  <rguenther@suse.de>
19443
19444         * tree-inline.c (estimate_num_insns): For calls simply account
19445         for all passed arguments and a used return value.
19446
19447 2011-04-06  Richard Guenther  <rguenther@suse.de>
19448
19449         PR tree-optimization/47663
19450         * cgraph.h (struct cgraph_edge): Add call_stmt_size and
19451         call_stmt_time fields.
19452         (cgraph_edge_inlinable_p): Declare.
19453         (cgraph_edge_recursive_p): New inline function.
19454         * cgraph.c (cgraph_create_edge_1): Initialize call_stmt_size.
19455         (cgraph_clone_edge): Copy it.
19456         * ipa-inline.c (cgraph_estimate_edge_time): New function.
19457         Account for call stmt time.
19458         (cgraph_estimate_time_after_inlining): Take edge argument.
19459         (cgraph_estimate_edge_growth): Account call stmt size.
19460         (cgraph_estimate_size_after_inlining): Take edge argument.
19461         (cgraph_mark_inline_edge): Adjust.
19462         (cgraph_check_inline_limits): Likewise.
19463         (cgraph_recursive_inlining_p): Remove.
19464         (cgraph_edge_badness): Use cgraph_edge_recursive_p.
19465         (cgraph_decide_recursive_inlining): Take edge argument and
19466         adjust.
19467         (cgraph_decide_inlining_of_small_functions): Do not avoid
19468         diags for recursive inlining here.
19469         (cgraph_flatten): Adjust.
19470         (cgraph_decide_inlining_incrementally): Likewise.
19471         (estimate_function_body_sizes): Remove call cost handling.
19472         (compute_inline_parameters): Initialize caller edge call costs.
19473         (cgraph_estimate_edge_growth): New function.
19474         (cgraph_estimate_growth): Use it.
19475         (cgraph_edge_badness): Likewise.
19476         (cgraph_check_inline_limits): Take an edge argument.
19477         (cgraph_decide_inlining_of_small_functions): Adjust.
19478         (cgraph_decide_inlining): Likewise.
19479         * tree-inline.c (estimate_num_insns): Only account for call
19480         return value if it is used.
19481         (expand_call_inline): Avoid diagnostics on recursive inline
19482         functions here.
19483         * lto-cgraph.c (lto_output_edge): Output edge call costs.
19484         (input_edge): Input edge call costs.
19485
19486 2011-04-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19487
19488         * config/alpha/osf5.h (MAX_OFILE_ALIGNMENT): Define.
19489
19490 2011-04-06  Jonathan Wakely  <jwakely.gcc@gmail.com>
19491
19492         * doc/invoke.texi (Spec Files): Fix typo.
19493
19494 2011-04-06  Eric Botcazou  <ebotcazou@adacore.com>
19495
19496         * profile.c (branch_prob): Move declaration of local variable.  Remove
19497         obsolete ??? comment.  Expand the location explicitly instead of using
19498         the LOCATION_FILE and LOCATION_LINE macros.
19499
19500 2011-04-06  Wei Guozhi  <carrot@google.com>
19501
19502         PR target/47855
19503         * config/arm/arm.md (arm_cmpsi_insn): Compute attr "length".
19504         (arm_cond_branch): Likewise.
19505         (arm_cond_branch_reversed): Likewise.
19506         (arm_jump): Likewise.
19507         (push_multi): Likewise.
19508         * config/arm/constraints.md (Py): New constraint.
19509
19510 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19511
19512         PR bootstrap/48471
19513         * dbxout.c (debug_nesting, symbol_queue, symbol_queue_index):
19514         Move these...
19515         (symbol_queue_size, DBXOUT_DECR_NESTING): ...and these...
19516         (DBXOUT_DECR_NESTING_AND_RETURN): ...and this under
19517         #ifdef DBX_DEBUGGING_INFO.
19518
19519 2011-04-05  Bernd Schmidt  <bernds@codesourcery.com>
19520
19521         PR bootstrap/48403
19522         * haifa-sched.c (schedule_block): Increment cycle_issued_insns only
19523         if old and new states differ.
19524
19525 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
19526
19527         * config/m68k/m68k.c (m68k_handle_option): Don't handle OPT_m5200,
19528         OPT_m5206e, OPT_m528x, OPT_m5307, OPT_m5407 and OPT_mcfv4e.
19529         * config/m68k/m68k.h (OPTION_DEFAULT_SPECS, ASM_CPU_SPEC): Don't
19530         handle -m5200, -m5206e, -m528x, -m5307, -m5407 and -mcfv4e.
19531         * config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407,
19532         mcfv4e): Use Alias.
19533         * config/m68k/t-mlibs (MULTILIB_MATCHES): Don't map legacy
19534         ColdFire options to -mcpu= options.
19535
19536 2011-04-05  Jeff Law  <law@redhat.com>
19537
19538         * tree-ssa-threadupdate.c (determine_bb_domination_status): Always
19539         check if BB is a successor of LOOP->header and return
19540         NONDOMINATING if it is not, regardless of ENABLE_CHECKING.
19541
19542 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
19543
19544         * cprop.c (struct reg_use): Remove.
19545         (reg_use_table): Make an array of RTX.
19546         (find_used_regs, constprop_register, local_cprop_pass,
19547         bypass_block): Simplify users of reg_use_table.
19548         (cprop_insn): Likewise.  Iterate if copy propagation succeeded
19549         on one of the uses found by find_used_regs.
19550
19551 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19552
19553         PR bootstrap/48469
19554         * combine.c (combine_instructions): #ifdef AUTO_INC_DEC links
19555         declaration.
19556
19557 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19558
19559         * combine.c (combine_instructions) [AUTO_INC_DEC]: Declare links
19560         as an rtx.
19561         (try_combine) [AUTO_INC_DEC]: Declare a local link rtx.
19562
19563 2011-04-05  Steven Bosscher  <steven@gcc.gnu.org>
19564
19565         PR middle-end/48441
19566         * cprop.c (one_cprop_pass): Do not mark_oprs_set of deleted insns.
19567
19568 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19569
19570         * combine.c: Include obstack.h.
19571         (struct insn_link): Define.
19572         (uid_log_links): Adjust type.
19573         (FOR_EACH_LOG_LINK): New macro.
19574         (insn_link_obstack): Declare.
19575         (alloc_insn_link): Define.
19576         (create_log_links): Call it.  Use FOR_EACH_LOG_LINK and adjust
19577         type of link variables.
19578         (find_single_use, insn_a_feeds_b, combine_instructions): Likewise.
19579         (try_combine, record_promoted_values, distribute_notes): Likewise.
19580         (distribute_links): Likewise.  Tweak prototype.
19581         (clear_log_links): Delete.
19582         (adjust_for_new_dest): Call alloc_insn_link.
19583         * Makefile.in (combine.o): Depend on $(OBSTACK_H).
19584
19585 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19586
19587         * gcse.c (modify_mem_list): Convert to an array of VECs.
19588         (canon_modify_mem_list, compute_transp): Tweak formatting.
19589         (alloc_gcse_mem): Likewise.  Adjust for modify_mem_list change.
19590         (load_killed_in_block_p): Likewise.
19591         (record_last_mem_set_info): Likewise.
19592         (clear_modify_mem_tables): Likewise.
19593
19594 2011-04-05  Tom de Vries  <tom@codesourcery.com>
19595
19596         PR middle-end/48461
19597         * function.c (emit_use_return_register_into_block): Only define if
19598         HAVE_return.
19599
19600 2011-04-05  Eric Botcazou  <ebotcazou@adacore.com>
19601
19602         * stor-layout.c (self_referential_size): Fix 2010-07-13 commit.
19603
19604 2011-04-05  Joseph Myers  <joseph@codesourcery.com>
19605
19606         * config/rx/rx-opts.h: New.
19607         * config/rx/rx.c (rx_cpu_type): Remove.
19608         (rx_handle_option): Don't assert that global structures are in
19609         use.  Access variables via opts pointer.  Defer most handling of
19610         OPT_mint_register_.  Use error_at.
19611         (rx_option_override): Handle deferred OPT_mint_register_ here.
19612         * config/rx/rx.h (enum rx_cpu_types): Move to rx-opts.h.
19613         * config/rx/rx.opt (config/rx/rx-opts.h: New HeaderInclude.
19614         (mcpu=): Use Enum and specifiy rx_cpu_type with Var.
19615         (rx_cpu_types): New Enum and EnumValue entries.
19616         (mint-register=): Use Defer and use Var accordingly.
19617
19618 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19619
19620         * debug.h (debug_flush_symbol_queue, debug_queue_symbol): Delete.
19621         (debug_free_queue, debug_nesting, symbol_queue_index): Delete.
19622         * final.c (debug_flush_symbol_queue, debug_queue_symbol):
19623         Move these...
19624         (debug_free_queue, debug_nesting, symbol_queue_index):
19625         ...and these...
19626         * dbxout.c: ...to here.  Make static.
19627
19628 2011-04-05  Nathan Froyd  <froydnj@codesourcery.com>
19629
19630         * gcse.c (modify_pair): Define.  Define a VEC of it.
19631         (canon_modify_mem_list): Convert to an array of VECs.
19632         (free_insn_expr_list_list): Delete.
19633         (clear_modify_mem_tables): Call VEC_free instead.
19634         (record_last_mem_set_info): Don't modify canon_modify_mem_list.
19635         (alloc_gcse_mem): Adjust for canon_modify_mem_list change.
19636         (canon_list_insert, compute_transp): Likewise.
19637
19638 2011-04-05  Tom de Vries  <tom@codesourcery.com>
19639
19640         PR target/43920
19641         * config/arm/arm.h (BRANCH_COST): Set to 1 for Thumb-2 when optimizing
19642         for size.
19643
19644 2011-04-05  Tom de Vries  <tom@codesourcery.com>
19645
19646         PR target/43920
19647         * function.c (emit_use_return_register_into_block): New function.
19648         (thread_prologue_and_epilogue_insns): Use
19649         emit_use_return_register_into_block.
19650
19651 2011-04-05  Tom de Vries  <tom@codesourcery.com>
19652
19653         PR target/43920
19654         * cfgcleanup.c (flow_find_cross_jump): Don't count USE or CLOBBER as
19655         insn.
19656
19657 2011-04-05  Tom de Vries  <tom@codesourcery.com>
19658
19659         * cfgcleanup.c (try_crossjump_bb): Remove 2 superfluous variables.
19660
19661 2011-04-05  Yufeng Zhang  <yufeng.zhang@arm.com>
19662
19663         * config/arm/arm.md (define_constants for unspec): Replace with
19664         define_c_enum.
19665         (define_constants for unspecv): Replace with define_c_enum.
19666         * config/arm/neon.md (define_constants for unspec): Replace with
19667         define_c_enum.
19668
19669 2011-04-04  Richard Henderson  <rth@redhat.com>
19670
19671         PR bootstrap/48400
19672         * dwarf2out.c (output_line_info): Always emit line info from
19673         at least one section.
19674         (dwarf2out_init): Create text_section_line_info here ...
19675         (set_cur_line_info_table): ... not here.
19676
19677 2011-04-04  Vladimir Makarov  <vmakarov@redhat.com>
19678
19679         PR target/48380
19680         * ira.c (ira): Call grow_reg_equivs when fix_reg_equiv_init is
19681         not called.
19682
19683         * ira-emit.c (emit_move_list): Update reg_equiv_init insn list.
19684
19685 2011-04-04  Steven Bosscher  <steven@gcc.gnu.org>
19686
19687         * cprop.c (struct expr): Split 'expr' field in 'dest' and 'src'.
19688         (expr_equiv_p): Remove.
19689         (insert_set_in_table): Look at <dest, src> pair instead of expr.
19690         (hash_scan_set): Update call to insert_set_in_table.
19691         (dump_hash_table): Dump <dest, src> pair.
19692         (lookup_set): Simplify.  Lookup <dest, src> pair.
19693         (compute_transp): Remove, fold heavily simplified code into...
19694         (compute_local_properties): ...here.  Expect COMP and TRANSP
19695         unconditionally.
19696         (find_avail_set): Take set directly from struct expr.
19697         (find_bypass-set): Likewise.
19698         (bypass_block): Likewise.
19699         (cprop_insn): Likewise.  Remove redundant INSN_P test.
19700
19701         * cprop.c (implicit_set_cond_p): Assume nothing about COND, move
19702         checks on form of COND from find_implicit_sets to here.
19703         (find_implicit_sets): Cleanup control flow. Split critical edges
19704         if it exposes implicit sets.  Allocate/resize implicit_sets as
19705         necessary.
19706         (one_cprop_pass): Only delete unreachable blocks if local_cprop_pass
19707         changed something.  Run df_analyze after find_implicit_sets if any
19708         edges were split.  Do not allocate implicit_sets here.
19709
19710         * cprop.c: s/gcse/cprop/ everywhere except for flag_gcse.
19711         (gcse_obstack): Renamed to cprop_obstack.
19712         (GNEW, GNEWVEC, GNEWVAR): Remove.
19713         (gmalloc): Remove.
19714         (alloc_hash_table): Use XNEWVAR instead of GNEWVAR.
19715         (GOBNEW, GOBNEWVAR): Adjust for gcse_obstack renaming.
19716         (gcse_alloc): Likewise, and rename to cprop_alloc.
19717         (alloc_gcse_men, free_gcse_mem): Remove.
19718         (gcse_constant_p): Rename to cprop_constant_p, and adjust all callers.
19719         (compute_hash_table_work): Allocate and free reg_set_bitmap here.
19720         (one_cprop_pass): Likewise. Adjust for gcse_obstack renaming.
19721
19722         * cprop.c (oprs_not_set_p): Remove.
19723         (mark_set, mark_clobber): Remove.
19724         (mark_oprs_set): Rewrite using DF_INSN_INFO_DEFS cache.
19725         (reg_not_set_p): New function.
19726         (find_avail_set): Use reg_not_set_p instead of oprs_not_set_p.
19727         (cprop_insn): Likewise.
19728         (cprop_jump): Use FOR_EACH_EDGE.
19729
19730 2011-04-04  Bernd Schmidt  <bernds@codesourcery.com>
19731
19732         PR bootstrap/48403
19733         * haifa-sched.c (nonscheduled_insns_begin): New static variable.
19734         (rank_for_schedule): Use scheduled_insns vector instead of
19735         last_scheduled_insn.
19736         (ok_for_early_queue_removal): Likewise.
19737         (queue_to_ready): Search forward in nonscheduled_insns_begin if
19738         we have a dbg_cnt.
19739         (choose_ready): Likewise.
19740         (commit_schedule): Use VEC_iterate.
19741         (schedule_block): Initialize nonscheduled_insns_begin.  If we have
19742         a dbg_cnt, use it and ensure the first insn is in the ready list.
19743         (haifa_sched_init): Allocate scheduled_insns.
19744         (sched_extend_ready_list): Don't allocate it; reserve space.
19745         (haifa_sched_finish): Free it.
19746
19747 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
19748
19749         * optc-gen.awk: Always remove type from Variable entry before
19750         recording in var_seen.
19751
19752 2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
19753
19754         * cfghooks.c (tidy_fallthru_edges): Add ??? comment.
19755         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Remove
19756         call to tidy_fallthru_edges.
19757
19758 2011-04-04  Joseph Myers  <joseph@codesourcery.com>
19759
19760         * doc/options.texi (ToLower): Document.
19761         * opt-functions.awk (switch_bit_fields): Initialize cl_tolower field.
19762         * opts-common.c (decode_cmdline_option): Handle cl_tolower.
19763         * opts.h (cl_option): Add cl_tolower field.
19764         * config/rx/rx.c (rx_handle_option): Use strcmp of -mcpu=
19765         arguments with lowercase strings.
19766         * config/rx/rx.opt (mcpu=): Add ToLower.
19767         * config/rx/t-rx (MULTILIB_MATCHES): Don't handle uppercase -mcpu=
19768         argument.
19769
19770 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
19771
19772         * config/pdp11/pdp11.h (IRA_COVER_CLASSES): Delete.
19773
19774 2011-04-04  Richard Sandiford  <richard.sandiford@linaro.org>
19775
19776         * config/vax/vax.c: Include reload.h.
19777
19778 2011-04-04  Anatoly Sokolov  <aesok@post.ru>
19779
19780         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Remove.
19781         * config/sparc/sparc.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
19782         (sparc_preferred_reload_class): New function.
19783
19784 2011-04-04  Jakub Jelinek  <jakub@redhat.com>
19785
19786         PR debug/48401
19787         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
19788         Use PAT_VAR_LOCATION_LOC instead of INSN_VAR_LOCATION_LOC.
19789
19790 2011-04-03  Nathan Froyd  <froydnj@codesourcery.com>
19791
19792         * tree.h (struct tree_const_decl): Inherit from tree_decl_common.
19793         * tree.c (initialize_tree_contains_struct): Adjust accordingly.
19794
19795 2011-04-03  Anatoly Sokolov  <aesok@post.ru>
19796
19797         * config/avr/avr.h (ASM_OUTPUT_BSS): Remove.
19798         (ASM_OUTPUT_ALIGNED_BSS): Define.
19799
19800 2011-04-03  Michael Matz  <matz@suse.de>
19801
19802         * lto-streamer.h (struct lto_streamer_cache_d): Remove offsets
19803         and next_slot members.
19804         (lto_streamer_cache_insert, lto_streamer_cache_insert_at,
19805         lto_streamer_cache_lookup, lto_streamer_cache_get): Adjust prototypes.
19806         (lto_streamer_cache_append): Declare.
19807         * lto-streamer.c (lto_streamer_cache_add_to_node_array): Use
19808         unsigned index, remove offset parameter, ensure that we append
19809         or update existing entries.
19810         (lto_streamer_cache_insert_1): Use unsigned index, remove offset_p
19811         parameter, update next_slot for append.
19812         (lto_streamer_cache_insert): Use unsigned index, remove offset_p
19813         parameter.
19814         (lto_streamer_cache_insert_at): Likewise.
19815         (lto_streamer_cache_append): New function.
19816         (lto_streamer_cache_lookup): Use unsigned index.
19817         (lto_streamer_cache_get): Likewise.
19818         (lto_record_common_node): Don't test tree_node_can_be_shared.
19819         (preload_common_node): Adjust call to lto_streamer_cache_insert.
19820         (lto_streamer_cache_delete): Don't free offsets member.
19821         * lto-streamer-out.c (eq_string_slot_node): Use memcmp.
19822         (lto_output_string_with_length): Use lto_output_data_stream.
19823         (lto_output_tree_header): Remove ix parameter, don't write it.
19824         (lto_output_builtin_tree): Likewise.
19825         (lto_write_tree): Adjust callers to above, don't track and write
19826         offset, write unsigned index.
19827         (output_unreferenced_globals): Don't emit all global vars.
19828         (write_global_references): Use unsigned indices.
19829         (lto_output_decl_state_refs): Likewise.
19830         (write_symbol): Likewise.
19831         * lto-streamer-in.c (lto_input_chain): Move earlier.
19832         (input_function): Use unsigned index.
19833         (input_alias_pairs): Don't read and then ignore all global vars.
19834         (lto_materialize_tree): Remove ix_p parameter, don't read index,
19835         don't pass it back, use lto_streamer_cache_append.
19836         (lto_register_var_decl_in_symtab): Use unsigned index.
19837         (lto_register_function_decl_in_symtab): Likewise.
19838         (lto_get_pickled_tree): Don't read in or handle offset, read unsigned
19839         index.
19840         (lto_get_builtin_tree): Don't read index, use
19841         lto_streamer_cache_append.
19842         (lto_read_tree): Adjust call to lto_materialize_tree.
19843
19844         * ipa-inline.c (cgraph_edge_badness): Move growth calculaton,
19845         don't use function calls in arguments to MIN.
19846
19847         * varasm.c (decl_binds_to_current_def_p): Don't check TREE_PUBLIC
19848         twice.
19849
19850         * gimple.c (gimple_type_leader_entry): Mark deletable.
19851
19852 2011-04-03  Alan Modra  <amodra@gmail.com>
19853
19854         * dwarf2out.c (mem_loc_descriptor): Recurse on LO_SUM.
19855
19856 2011-04-03  Michael Matz  <matz@suse.de>
19857
19858         * tree.c (free_lang_data_in_decl): Zero DECL_VINDEX if it's not
19859         an integer.
19860         * tree.h (tree_decl_non_common.vindex): Adjust comment.
19861
19862 2011-04-03  Michael Matz  <matz@suse.de>
19863
19864         * cgraphbuild.c (record_reference): Canonicalize constructor values.
19865         * gimple-fold.c (canonicalize_constructor_val): Accept being called
19866         without function context.
19867         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear
19868         current_function_decl and cfun.
19869
19870 2011-04-03  Michael Matz  <matz@suse.de>
19871
19872         * tree.c (decl_init_priority_insert): Don't create entry for
19873         default priority.
19874         (decl_fini_priority_insert): Ditto.
19875         (fields_compatible_p, find_compatible_field): Remove.
19876         * tree.h (fields_compatible_p, find_compatible_field): Remove.
19877         * gimple.c (gimple_compare_field_offset): Adjust block comment.
19878
19879 2011-04-03  Eric Botcazou  <ebotcazou@adacore.com>
19880
19881         * combine.c (try_combine): Remove useless local variable.
19882
19883 2011-04-03  Richard Guenther  <rguenther@suse.de>
19884             Ira Rosen  <ira.rosen@linaro.org>
19885
19886         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Strip all
19887         non-variable offsets and compare the remaining bases of the two
19888         accesses instead of looking for exact same data-ref.
19889
19890 2011-04-02  Kai Tietz  <ktietz@redhat.com>
19891
19892         PR target/48416
19893         * i386.c (ix86_function_arg_boundary): Fix printf formatter.
19894
19895         * i386.c (ix86_is_msabi_thiscall): New helper function.
19896         (ix86_is_type_thiscall): New helper function.
19897         (ix86_comp_type_attributes): Handle thiscall for method-functions
19898         special.
19899         (init_cumulative_args): Likewise.
19900         (find_drap_reg): Likewise.
19901         (ix86_static_chain): Likewise.
19902         (x86_this_parameter): Likewise.
19903         (x86_output_mi_thunk): Likewise.
19904
19905 2011-04-01  Olivier Hainque  <hainque@adacore.com>
19906             Nicolas Setton  <setton@adacore.com>
19907             Eric Botcazou  <ebotcazou@adacore.com>
19908
19909         * dwarf2out.c (dwarf_attr_name): Map DW_AT_GNAT_descriptive_type.
19910         (add_gnat_descriptive_type_attribute): New function.
19911         (gen_array_type_die): Call it.
19912         (gen_enumeration_type_die): Likewise.
19913         (gen_struct_or_union_type_die): Likewise.
19914         (modified_type_die): Likewise.
19915         * langhooks.h (lang_hooks_for_types): New descriptive_type hook.
19916         * langhooks-def.h (LANG_HOOKS_DESCRIPTIVE_TYPE): Default to NULL.
19917         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_DESCRIPTIVE_TYPE.
19918
19919 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
19920
19921         PR bootstrap/48148
19922         * dwarf2out.c (resolve_addr): Don't call force_decl_die
19923         if DECL_EXTERNAL has non-NULL DECL_ABSTRACT_ORIGIN.
19924
19925         Revert:
19926         2011-03-17  Richard Guenther  <rguenther@suse.de>
19927
19928         PR bootstrap/48148
19929         * lto-cgraph.c (input_overwrite_node): Clear the abstract
19930         origin for decls in other ltrans units.
19931         (input_varpool_node): Likewise.
19932
19933 2011-04-01  Jakub Jelinek  <jakub@redhat.com>
19934
19935         PR middle-end/48335
19936         * expr.c (expand_assignment): Handle all possibilities
19937         if TO_RTX is CONCAT.
19938         * expmed.c (store_bit_field_1): Avoid trying to create invalid SUBREGs.
19939         (store_split_bit_field): If SUBREG_REG (op0) or
19940         op0 itself has smaller mode than word, return it
19941         for offset 0 and const0_rtx for out-of-bounds stores.
19942         If word is const0_rtx, skip it.
19943
19944 2011-04-01  Naveen H.S  <naveen.S@kpitcummins.com>
19945
19946         * config/h8300/h8300.c (print_operand_address): Rename to...
19947         (h8300_print_operand_address): ...this. Make static. Adjust comments.
19948         Call h8300_print_operand and h8300_print_operand_address instead of
19949         print_operand and print_operand_address. Declare.
19950         (print_operand): Renake to...
19951         (h8300_print_operand): ...this. Make static. Adjust comments.
19952         Call h8300_print_operand instead of print_operand. Declare.
19953         (h8300_print_operand_punct_valid_p): Moved from h8300.h file.
19954         (h8300_register_move_cost): Likewise.
19955         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_PRINT_OPERAND
19956         TARGET_PRINT_OPERAND_ADDRESS, TARGET_REGISTER_MOVE_COST): Define.
19957         * config/h8300/h8300.h (PRINT_OPERAND_ADDRESS, PRINT_OPERAND
19958         PRINT_OPERAND_PUNCT_VALID_P, REGISTER_MOVE_COST): Delete.
19959         * config/h8300/h8300-protos.h (print_operand): Delete.
19960         (print_operand_address): Delete.
19961
19962 2011-04-01  Richard Henderson  <rth@redhat.com>
19963
19964         PR 48400
19965         * dwarf2out.c (dwarf2out_source_line): Disable discriminators
19966         in strict mode before dwarf4.  Re-order tests to early out
19967         before switching sections.
19968
19969 2011-04-01  Nathan Froyd  <froydnj@codesourcery.com>
19970
19971         * config/h8300/constraints.md: New file.
19972         * config/h8300/h8300.md: Include it.  Use satisfies_constraint_J,
19973         satisfies_constraint_L, and satisfies_constraint_N for peephole2s.
19974         (*tst_extzv_1_n, *tstsi_variable_bit_qi): Use satisfies_constraint_U.
19975         * config/h8300/predicates.md (bit_operand): Likewise.
19976         (incdec_operand): Use satisfies_constraint_M and
19977         satisfies_constraint_O.  Don't use C code block.
19978         * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Delete.
19979         * config/h8300/h8300.c (h8300_reg_class_from_letter): Delete.
19980         (compute_mov_length): Use satisfies_constraint_G.
19981         (fix_bit_operand): Use satisfies_constraint_U.
19982         * config/h8300/h8300.h (REG_CLASS_FROM_LETTER): Delete.
19983         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Delete.
19984         (CONST_OK_FOR_M, CONST_OK_FOR_N, CONST_OK_FOR_O): Delete.
19985         (CONST_OK_FOR_Ppositive, CONST_OK_FOR_Pnegative): Delete.
19986         (CONST_OK_FOR_P, CONSTRAINT_LEN_FOR_P): Delete.
19987         (CONST_OK_FOR_CONSTRAINT_P, CONST_OK_FOR_LETTER_P): Delete.
19988         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
19989         (OK_FOR_Q, OK_FOR_R, OK_FOR_S, OK_FOR_T, OK_FOR_U, OK_FOR_WU): Delete.
19990         (OK_FOR_W, CONSTRAINT_LEN_FOR_W, OK_FOR_Y2, OK_FOR_Y0): Delete.
19991         (OK_FOR_Y, CONSTRAINT_LEN_FOR_Y, OK_FOR_Z): Delete.
19992         (EXTRA_CONSTRAINT_STR, CONSTRAINT_LEN): Delete.
19993         (EXTRA_MEMORY_CONSTRAINT): Delete.
19994
19995 2011-04-01  Andrew Pinski  <pinskia@gmail.com>
19996             Michael Meissner  <meissner@linux.vnet.ibm.com>
19997
19998         PR target/48262
19999         * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
20000         operands, as per the specifications.
20001
20002         * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
20003         (vec_extract_evenv4sf): Ditto.
20004         (vec_extract_evenv8hi): Ditto.
20005         (vec_extract_evenv16qi): Ditto.
20006         (vec_extract_oddv4si): Ditto.
20007
20008 2011-03-31  Mark Wielaard  <mjw@redhat.com>
20009
20010         * dwarf2out.c (dwarf2out_finish): Don't add low_pc and/or
20011         high_pc attribute if the CU has no associated code. Only output
20012         DW_AT_entry_pc for CU if not generating strict dwarf and
20013         dwarf_version < 4.
20014
20015 2011-04-01  Bernd Schmidt  <bernds@codesourcery.com>
20016
20017         * dwarf2out.h (dwarf2out_frame_debug_init): Declare.
20018         * dwarf2out.c (dwarf2out_frame_debug_init): New function, broken
20019         out of ...
20020         (dwarf2out_frame_debug): ... here. Don't handle a NULL argument.
20021         * final.c (final_start_function): Call the new function rather
20022         than using a NULL argument for dwarf2out_frame_debug.
20023
20024         * ifcvt.c (cond_exec_process_insns): Disallow converting a block
20025         that contains the prologue.
20026
20027         * haifa-sched.c (queue_insn): New arg REASON.  All callers
20028         changed.  Print it in debugging output.
20029
20030         * sched-ebb.c (schedule_ebbs): Honor the BB_DISABLE_SCHEDULE flag.
20031
20032         * sched-ebb.c (begin_schedule_ready): Remove second argument.
20033         Split most of the code into...
20034         (begin_move_insn): ... here.  New function.
20035         (ebb_sched_info): Add a pointer to it.
20036         * haifa-sched.c (scheduled_insns): New static variable.
20037         (sched_extend_ready_list): Allocate it.
20038         (schedule_block): Use it to record the order of scheduled insns.
20039         Perform RTL changes to move insns only after all scheduling
20040         decisions have been made.
20041         * modulo-sched.c (sms_sched_haifa_sched_info): Add NULL entry for the
20042         begin_move_insn field.
20043         * sel-sched-ir.c (sched_sel_haifa_sched_info): Likewise.
20044         * sched-int.h (struct haifa_sched_info): Remove second argument
20045         from begin_schedule_ready hook.  Add new member begin_move_insn.
20046         * sched-rgn.c (begin_schedule_ready): Remove second argument.
20047         (rgn_const_sched_info): Add NULL entry for the begin_move_insn field.
20048
20049         * haifa-sched.c (prune_ready_list): New function, broken out of
20050         schedule_block.
20051         (schedule_block): Use it.
20052
20053 2011-04-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
20054
20055         * config/spu/t-spu-elf (dp-bit.c): Use > instead of >>.
20056
20057 2011-04-01  Kai Tietz  <ktietz@redhat.com>
20058
20059         * config.gcc (*-*-mingw*): Allow as option the
20060         posix threading model.
20061         * config/i386/mingw32.h (SPEC_PTHREAD1,  SPEC_PTHREAD2):
20062         New macros defined dependent to TARGET_USE_PTHREAD_BY_DEFAULT
20063         definition.
20064         (CPP_SPEC): Add pthread/no-pthread handling.
20065         (LIB_SPEC): Likewise.
20066         * config/i386/mingw-w64.h (CPP_SPEC):Likewise.
20067         (LIB_SPEC): Likewise.
20068         * config/i386/t-cygming (SHLIB_PTHREAD_CFLAG): New
20069         flag to pass -pthread option for shared libgcc build.
20070         (SHLIB_PTHREAD_LDFLAG): New option to pass -lpthread
20071         for shared libgcc build.
20072         * config/i386/t-mingw-pthread: New file.
20073         * config/i386/mingw-pthread.h (TARGET_USE_PTHREAD_BY_DEFAULT):
20074         New define to enable use of library pthread by default.
20075         * config/i386/mingw.opt (pthread): New driver option.
20076         (no-pthread): New driver option.
20077         * config/i386/cygming.opt: Make sure trailing empty line is retained.
20078         * config/i386/mingw-w64.opt: Likewise.
20079
20080 2011-04-01  Gary Funck  <gary@intrepid.com>
20081
20082         * c-decl.c (grokdeclarator): Fix formatting.
20083
20084 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
20085
20086         * expr.c (emit_block_move_via_movmem): Use n_generator_args
20087         instead of n_operands.
20088         (set_storage_via_setmem): Likewise.
20089         * optabs.c (maybe_gen_insn): Likewise.
20090         * config/arm/arm.c (arm_init_neon_builtins): Likewise.
20091         * config/mips/mips.c (mips_expand_builtin_compare_1): Likewise.
20092         (mips_expand_builtin_direct): Likewise.
20093         * config/spu/spu.c (expand_builtin_args): Likewise.
20094
20095 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
20096
20097         * recog.h (insn_data_d): Add n_generator_args.
20098         * genoutput.c (data): Likewise.
20099         (output_insn_data): Print it.
20100         (max_opno, num_dups): Delete.
20101         (scan_operands): Just fill in "d->operand[...]".
20102         (gen_insn, gen_peephole, gen_expand, gen_split): Use get_pattern_stats.
20103
20104 2011-04-01  Richard Sandiford  <richard.sandiford@linaro.org>
20105
20106         * gensupport.h (pattern_stats): New structure.
20107         * gensupport.c (get_pattern_stats_1, get_pattern_stats): New functions.
20108         * genemit.c (max_opno, max_dupno, max_scratch_opno): Delete.
20109         (max_operand_1, max_operand_vec): Delete.
20110         (gen_insn, gen_expand, gen_split): Use get_pattern_stats.
20111
20112 2011-03-31  Nathan Froyd  <froydnj@codesourcery.com>
20113
20114         * emit-rtl.c (emit_pattern_after_setloc): New function.
20115         (emit_insn_after_setloc, emit_jump_insn_after_setloc): Call it.
20116         (emit_call_insn_after_setloc, emit_debug_insn_after_setloc): Likewise.
20117         (emit_pattern_after): New function.
20118         (emit_insn_after, emit_jump_insn_after): Call it.
20119         (emit_call_insn_after, emit_debug_insn_after): Likewise.
20120         (emit_pattern_before_setloc): New function.
20121         (emit_insn_before_setloc, emit_jump_insn_before_setloc): Call it.
20122         (emit_call_insn_before_setloc, emit_debug_insn_before_setloc):
20123         Likewise.
20124         (emit_pattern_before): New function.
20125         (emit_insn_before, emit_jump_insn_before): Call it.
20126         (emit_call_insn_before, emit_debug_insn_before): Likewise.
20127
20128 2011-03-31  Richard Henderson  <rth@redhat.com>
20129
20130         * dwarf2out.c (dw_separate_line_info_ref): Remove.
20131         (dw_separate_line_info_entry): Remove.
20132         (enum dw_line_info_opcode): New.
20133         (dw_line_info_entry): Use it.
20134         (dw_line_info_table, dw_line_info_table_p): New.
20135         (DWARF_LINE_OPCODE_BASE): Include dwarf3 opcodes.
20136         (line_info_table, line_info_label_num): Remove.
20137         (line_info_table_in_use): Remove.
20138         (separate_line_info_table): Remove.
20139         (separate_line_info_table_allocated): Remove.
20140         (separate_line_info_table_in_use): Remove.
20141         (LINE_INFO_TABLE_INCREMENT): Remove.
20142         (line_info_label_num): New.
20143         (cur_line_info_table): New.
20144         (text_section_line_info, cold_text_section_line_info): New.
20145         (separate_line_info): New.
20146         (SEPARATE_LINE_CODE_LABEL): Remove.
20147         (print_dwarf_line_table): Remove.
20148         (debug_dwarf): Don't dump it.
20149         (output_one_line_info_table): New.
20150         (output_line_info): Use it.
20151         (new_line_info_table): New.
20152         (set_cur_line_info_table): New.
20153         (dwarf2out_switch_text_section): Use it.
20154         (dwarf2out_begin_function): Likewise.
20155         (push_dw_line_info_entry): New.
20156         (dwarf2out_source_line): Rewrite for new line info tables.
20157         (dwarf2out_init): Remove dead initailizations.
20158
20159 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
20160
20161         * opts.h (cl_option): Add comments to fields.  Add bit-fields for
20162         various flags.
20163         (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK,
20164         CL_SEPARATE_ALIAS, CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE,
20165         CL_DISABLED, CL_REPOR, CL_REJECT_NEGATIVE, CL_MISSING_OK,
20166         CL_UINTEGER, CL_NEGATIVE_ALIAS): Remove.
20167         (CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED): Update bit positions.
20168         * opt-functions.awk (flag_init, switch_bit_fields): New.
20169         (switch_flags): Don't handle flags moved to bit-fields.  Don't
20170         generate CL_MISSING_OK or CL_SAVE.
20171         * optc-gen.awk: Update to generate bit-field output as well as
20172         flags field.
20173         * gcc.c (driver_wrong_lang_callback): Use cl_reject_driver
20174         bit-field instead of CL_REJECT_DRIVER flag.
20175         * opts-common.c (generate_canonical_option,
20176         decode_cmdline_option): Use bit-fields instead of CL_* flags.
20177         * opts.c (maybe_default_option): Use cl_reject_negative bit-field
20178         instead of CL_REJECT_NEGATIVE flag.
20179         * toplev.c (print_switch_values): Use cl_report bit-field instead
20180         of CL_REPORT flag.
20181
20182 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
20183
20184         * tree-ssa-pre.c (create_component_ref_by_pieces_1) <ARRAY_REF>: Drop
20185         a zero minimum index only if it is redundant.
20186
20187 2011-03-31  Vladimir Makarov  <vmakarov@redhat.com>
20188
20189         PR rtl-optimization/48381
20190         * ira-color.c (assign_hard_reg): Use hard reg set intersection
20191         instead of ira_class_hard_reg_index for calculating conflicting
20192         hard registers.
20193
20194 2011-03-31  Steven Bosscher  <steven@gcc.gnu.org>
20195
20196         * cprop.c: Clean up hash table building.
20197         (reg_avail_info): Remove.
20198         (oprs_available_p): Remove.
20199         (record_last_reg_set_info): Remove.
20200         (record_last_set_info): Remove.
20201         (reg_available_p): New function.
20202         (gcse_constant_p): Do not treat unfolded conditions as constants.
20203         (make_set_regs_unavailable): New function.
20204         (hash_scan_set): Simplify with new reg_available_p.
20205         (compute_hash_table_work): Traverse insns stream only once.
20206         Do not compute reg_avail_info. Traverse insns in reverse order.
20207         Record implicit sets after recording explicit sets from the block.
20208
20209 2011-03-31  Michael Matz  <matz@suse.de>
20210
20211         * builtins.c (build_va_arg_indirect_ref): Use build_simple_mem_ref_loc.
20212
20213 2011-03-31  Anatoly Sokolov  <aesok@post.ru>
20214
20215         * config/h8300/h8300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove macro.
20216         * config/h8300/h8300-protos.h (h8300_get_index): Remove.
20217         * config/h8300/h8300.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20218         (h8300_mode_dependent_address_p): New function.
20219         (h8300_get_index): Make static.
20220
20221 2011-03-31  Jeff Law  <law@redhat.com>
20222
20223         * reload1.c (elimination_effects): Fix typo in recent change.
20224
20225         * tree-ssa-forwprop.c (forward_propagate_into_cond): Avoid
20226         typo potentially leading to null pointer dereference.
20227
20228         * caller-save.c (new_saved_hard_reg): Eliminate return value.
20229         (setup_save_areas): Corresponding changes to avoid useless
20230         assignments.
20231
20232         * jump.c (reversed_comparison_code_parts): Avoid successive return
20233         statements when REVERSE_CONDITION is defined.
20234
20235         * expr.c (expand_assignment): Avoid useless assignments.
20236         (expand_expr_real_1): Likewise.
20237         (expand_expr_real_2): Avoid useless statements.
20238
20239         * tree-ssa-phiopt.c (minmax_replacement): Avoid useless statement.
20240
20241         * cfgexpand.c (expand_gimple_basic_block): Avoid useless assignment.
20242
20243         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Avoid useless
20244         statements.
20245
20246         * stmt.c (expand_expr_stmt): Avoid useless assignment.
20247
20248 2011-03-31  Joseph Myers  <joseph@codesourcery.com>
20249
20250         PR target/47109
20251         * doc/tm.texi.in (TARGET_VERSION): Remove.
20252         * doc/tm.texi: Regenerate.
20253         * system.h (TARGET_VERSION, MACHINE_TYPE): Poison.
20254         * collect2.c (main): Don't use TARGET_VERSION.
20255         * mips-tdump.c (main): Don't use TARGET_VERSION.
20256         * mips-tfile.c (main): Don't use TARGET_VERSION.
20257         * config.gcc (powerpc-wrs-vxworksae): Don't use rs6000/vxworksae.h.
20258         * config/rs6000/vxworksae.h: Remove.
20259         * config/alpha/alpha.h (TARGET_VERSION): Remove.
20260         * config/alpha/freebsd.h (TARGET_VERSION): Remove.
20261         * config/alpha/linux-elf.h (TARGET_VERSION): Remove.
20262         * config/alpha/netbsd.h (TARGET_VERSION): Remove.
20263         * config/alpha/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
20264         * config/arm/arm.h (TARGET_VERSION): Remove.
20265         * config/arm/coff.h (TARGET_VERSION): Remove.
20266         * config/arm/ecos-elf.h (TARGET_VERSION): Remove.
20267         * config/arm/elf.h (TARGET_VERSION): Remove.
20268         * config/arm/freebsd.h (TARGET_VERSION): Remove.
20269         * config/arm/linux-elf.h (TARGET_VERSION): Remove.
20270         * config/arm/netbsd-elf.h (TARGET_VERSION): Remove.
20271         * config/arm/pe.h (TARGET_VERSION): Remove.
20272         * config/arm/rtems-elf.h (TARGET_VERSION): Remove.
20273         * config/arm/semi.h (TARGET_VERSION): Remove.
20274         * config/arm/uclinux-elf.h (TARGET_VERSION): Remove.
20275         * config/arm/unknown-elf.h (TARGET_VERSION): Remove.
20276         * config/arm/vxworks.h (TARGET_VERSION): Remove.
20277         * config/avr/avr.h (TARGET_VERSION): Remove.
20278         * config/bfin/bfin.h (TARGET_VERSION): Remove.
20279         * config/fr30/fr30.h (TARGET_VERSION): Remove.
20280         * config/frv/frv.h (TARGET_VERSION): Remove.
20281         * config/h8300/h8300.h (TARGET_VERSION): Remove.
20282         * config/i386/cygwin.h (TARGET_VERSION): Remove.
20283         * config/i386/darwin.h (TARGET_VERSION): Remove.
20284         * config/i386/darwin64.h (TARGET_VERSION): Remove.
20285         * config/i386/djgpp.h (TARGET_VERSION): Remove.
20286         * config/i386/freebsd.h (TARGET_VERSION): Remove.
20287         * config/i386/freebsd64.h (TARGET_VERSION): Remove.
20288         * config/i386/gnu.h (TARGET_VERSION): Remove.
20289         * config/i386/i386-interix.h (TARGET_VERSION): Remove.
20290         * config/i386/i386elf.h (TARGET_VERSION): Remove.
20291         * config/i386/linux.h (TARGET_VERSION): Remove.
20292         * config/i386/linux64.h (TARGET_VERSION): Remove.
20293         * config/i386/lynx.h (TARGET_VERSION): Remove.
20294         * config/i386/mingw32.h (TARGET_VERSION): Remove.
20295         * config/i386/netbsd-elf.h (TARGET_VERSION): Remove.
20296         * config/i386/netbsd64.h (TARGET_VERSION): Remove.
20297         * config/i386/netware.h (TARGET_VERSION): Remove.
20298         * config/i386/nto.h (TARGET_VERSION): Remove.
20299         * config/i386/openbsd.h (TARGET_VERSION): Remove.
20300         * config/i386/vxworks.h (TARGET_VERSION): Remove.
20301         * config/ia64/elf.h (TARGET_VERSION): Remove.
20302         * config/ia64/freebsd.h (TARGET_VERSION): Remove.
20303         * config/ia64/hpux.h (TARGET_VERSION): Remove.
20304         * config/ia64/linux.h (TARGET_VERSION): Remove.
20305         * config/ia64/vms.h (TARGET_NAME, TARGET_VERSION): Remove.
20306         * config/iq2000/iq2000.h (IQ2000_VERSION, MACHINE_TYPE,
20307         TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
20308         * config/lm32/lm32.h (TARGET_VERSION): Remove.
20309         * config/lm32/uclinux-elf.h (TARGET_VERSION): Remove.
20310         * config/m32c/m32c.h (TARGET_VERSION): Remove.
20311         * config/m32r/linux.h (LINUX_DEFAULT_ELF, TARGET_VERSION): Remove.
20312         * config/m32r/m32r.h (TARGET_VERSION): Remove.
20313         * config/m68k/linux.h (TARGET_VERSION): Remove.
20314         * config/m68k/m68k.h (TARGET_VERSION): Remove.
20315         * config/m68k/netbsd-elf.h (TARGET_VERSION): Remove.
20316         * config/m68k/uclinux.h (TARGET_VERSION): Remove.
20317         * config/mcore/mcore-elf.h (TARGET_VERSION): Remove.
20318         * config/mep/mep.h (TARGET_VERSION): Remove.
20319         * config/microblaze/microblaze.h (MICROBLAZE_VERSION,
20320         MACHINE_TYPE, TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
20321         * config/mips/iris6.h (MACHINE_TYPE): Remove.
20322         * config/mips/linux.h (TARGET_VERSION): Remove.
20323         * config/mips/netbsd.h (MACHINE_TYPE): Remove.
20324         * config/mips/vxworks.h (TARGET_VERSION): Remove.
20325         * config/mmix/mmix.h (TARGET_VERSION): Remove.
20326         * config/mn10300/linux.h (TARGET_VERSION): Remove.
20327         * config/mn10300/mn10300.h (TARGET_VERSION): Remove.
20328         * config/pa/pa.h (TARGET_VERSION): Remove.
20329         * config/pdp11/pdp11.h (TARGET_VERSION): Remove.
20330         * config/picochip/picochip.h (TARGET_VERSION): Remove.
20331         * config/rs6000/aix.h (TARGET_VERSION): Remove.
20332         * config/rs6000/darwin.h (TARGET_VERSION): Remove.
20333         * config/rs6000/darwin64.h (TARGET_VERSION): Remove.
20334         * config/rs6000/eabi.h (TARGET_VERSION): Remove.
20335         * config/rs6000/eabialtivec.h (TARGET_VERSION): Remove.
20336         * config/rs6000/eabisim.h (TARGET_VERSION): Remove.
20337         * config/rs6000/eabispe.h (TARGET_VERSION): Remove.
20338         * config/rs6000/freebsd.h (TARGET_VERSION): Remove.
20339         * config/rs6000/linux.h (TARGET_VERSION): Remove.
20340         * config/rs6000/linux64.h (TARGET_VERSION): Remove.
20341         * config/rs6000/linuxaltivec.h (TARGET_VERSION): Remove.
20342         * config/rs6000/linuxspe.h (TARGET_VERSION): Remove.
20343         * config/rs6000/lynx.h (TARGET_VERSION): Remove.
20344         * config/rs6000/netbsd.h (TARGET_VERSION): Remove.
20345         * config/rs6000/sysv4.h (TARGET_VERSION): Remove.
20346         * config/rs6000/vxworks.h (TARGET_VERSION): Remove.
20347         * config/s390/linux.h (TARGET_VERSION): Remove.
20348         * config/s390/s390.h (TARGET_VERSION): Remove.
20349         * config/s390/tpf.h (TARGET_VERSION): Remove.
20350         * config/score/score.h (TARGET_VERSION): Remove.
20351         * config/sh/linux.h (TARGET_VERSION): Remove.
20352         * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN,
20353         TARGET_VERSION_CPU, TARGET_VERSION): Remove.
20354         * config/sh/sh.h (TARGET_VERSION): Remove.
20355         * config/sh/sh64.h (TARGET_VERSION): Remove.
20356         * config/sh/superh.h (TARGET_VERSION): Remove.
20357         * config/sh/vxworks.h (TARGET_VERSION): Remove.
20358         * config/sparc/freebsd.h (TARGET_VERSION): Remove.
20359         * config/sparc/linux.h (TARGET_VERSION): Remove.
20360         * config/sparc/linux64.h (TARGET_VERSION): Remove.
20361         * config/sparc/netbsd-elf.h (TARGET_VERSION, TARGET_NAME64,
20362         TARGET_NAME32, TARGET_NAME): Remove.
20363         * config/sparc/openbsd64.h (TARGET_VERSION): Remove.
20364         * config/sparc/sp-elf.h (TARGET_VERSION): Remove.
20365         * config/sparc/sp64-elf.h (TARGET_VERSION): Remove.
20366         * config/sparc/sysv4.h (TARGET_VERSION): Remove.
20367         * config/sparc/vxworks.h (TARGET_VERSION): Remove.
20368         * config/spu/spu.h (TARGET_VERSION): Remove.
20369         * config/stormy16/stormy16.h (TARGET_VERSION): Remove.
20370         * config/v850/v850.h (TARGET_VERSION): Remove.
20371         * config/vax/linux.h (TARGET_VERSION): Remove.
20372         * config/vax/vax.h (TARGET_NAME, TARGET_VERSION): Remove.
20373         * config/xtensa/elf.h (TARGET_VERSION): Remove.
20374         * config/xtensa/linux.h (TARGET_VERSION): Remove.
20375
20376 2011-03-31  Eric Botcazou  <ebotcazou@adacore.com>
20377
20378         PR target/48142
20379         * config/i386/i386.c (ix86_adjust_stack_and_probe): Differentiate
20380         frame-related from frame-unrelated adjustments to the stack pointer.
20381
20382 2011-03-31  Jakub Jelinek  <jakub@redhat.com>
20383
20384         * common.opt (fdebug-types-section): Move earlier.
20385         * doc/invoke.texi: Fix up -fno-debug-types-section documentation.
20386
20387 2011-03-31  Andreas Tobler  <andreast@fgznet.ch>
20388
20389         * config/rs6000/rs6000.c (rs6000_handle_option): Remove unused isel
20390         var.
20391
20392 2011-03-30  Nathan Froyd  <froydnj@codesourcery.com>
20393
20394         * tree.h (CASE_CHAIN): Define.
20395         * tree-cfg.c (edge_to_cases_cleanup, get_cases_for_edge): Use it.
20396         (gimple_redirect_edge_and_branch): Likewise.
20397
20398 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
20399
20400         PR middle-end/48367
20401         * ira-costs.c (find_costs_and_classes): Fix a typo in i_mem_cost
20402         calculation.
20403
20404 2011-03-30  Jeff Law  <law@redhat.com>
20405
20406         * PR bootstrap/48371
20407         * reload1.c (reload): Fix botch in last change.
20408
20409         * reload.h (struct reload): Fix typo introduced in last change.
20410
20411 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
20412
20413         * config/arm/arm.opt (mhard-float, msoft-float): Mark
20414         Undocumented.  Remove help text.
20415         * doc/invoke.texi (ARM Options): Don't document -msoft-float and
20416         -mhard-float.
20417
20418 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
20419
20420         * doc/options.texi (NegativeAlias): Document.
20421         (Alias): Mention NegativeAlias.
20422         * opt-functions.awk: Handle NegativeAlias.
20423         * optc-gen.awk: Disallow NegativeAlias with multiple Alias arguments.
20424         * opts-common.c (decode_cmdline_option): Handle CL_NEGATIVE_ALIAS.
20425         * opts.h (CL_NEGATIVE_ALIAS): Define.
20426         * config/rs6000/rs6000.c (rs6000_parse_yes_no_option): Remove.
20427         (rs6000_handle_option): Don't handle OPT_mvrsave_, OPT_misel_ and
20428         OPT_mspe_.
20429         * config/rs6000/rs6000.opt (mvrsave=, misel=, mspe=): Replace with
20430         Alias entries.
20431         * config/rs6000/t-spe (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
20432         mno-spe and mno-isel instead of mspe=no and -misel=no.
20433
20434 2011-03-29  Mark Wielaard  <mjw@redhat.com>
20435
20436         * common.opt (fdebug-types-section): New flag.
20437         * doc/invoke.texi: Document new -fno-debug-types-section flag.
20438         * dwarf2out.c (use_debug_types): New define.
20439         (struct die_struct): Mark die_id with GTY desc use_debug_types.
20440         (print_die): Guard output of type unit signatures using
20441         use_debug_types.
20442         (build_abbrev_table): Replace assert of dwarf_version >= 4
20443         with assert on use_debug_types.
20444         (size_of_die): Likewise.
20445         (unmark_dies): Likewise.
20446         (value_format): Decide AT_ref_external form on use_debug_types.
20447         (output_die): Replace dwarf_version version check guard with
20448         use_debug_types where appropriate.
20449         (modified_type_die): Likewise.
20450         (gen_reference_type_die): Likewise.
20451         (dwarf2out_start_source_file): Likewise.
20452         (dwarf2out_end_source_file): Likewise.
20453         (prune_unused_types_walk_attribs): Likewise.
20454         (dwarf2out_finish): Likewise.
20455
20456 2011-03-30  Vladimir Makarov  <vmakarov@redhat.com>
20457
20458         * ira-color.c (ira_assign_hard_reg): Use only one variable 'mode'.
20459
20460 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
20461
20462         PR rtl-optimization/48332
20463         * optabs.c (expand_binop_directly): Set xmodeN to the target-mandated
20464         mode of input operand N and modeN to its actual mode.
20465
20466 2011-03-30  Jeff Law  <law@redhat.com>
20467
20468         * reload.h (reg_equiv_constant): Move into new structure reg_equivs,
20469         define accessor macro.
20470         (reg_equiv_invariant, reg_equiv_memory_loc): Likewise.
20471         (reg_equiv_address, reg_equiv_mem, reg_equiv_alt_mem_list): Likewise.
20472         (reg_equiv_init): Likewise.
20473         (reg_equivs_size): New variable.
20474         (reg_equiv_init_size): Remove.
20475         (allocate_initial_values): Move prototype to here from....
20476         * integrate.h (allocate_initial_values): Remove prototype.
20477         * integrate.c: Include reload.h.
20478         (allocate_initial_values): Corresponding changes.
20479         * ira.c (find_reg_equiv_invariant_cost): Corresponding changes.
20480         (fix_reg_equiv_init, no_equiv): Corresponding changes.
20481         (update_equiv_regs): Corresponding changes.
20482         (ira): Corresponding changes.
20483         * reload.c (push_reg_equiv_alt_mem): Corresponding changes.
20484         (push_secondary_reload): Corresponding changes.
20485         (push_reload, find_reloads, find_reloads_toplev): Corresponding changes.
20486         (make_memloc, find_reloads_address): Corresponding changes.
20487         (subst_reg_equivs, subst_indexed_address): Corresponding changes.
20488         (find_reloads_address_1): Corresponding changes.
20489         (find_reloads_subreg_address, subst_reloads): Corresponding changes.
20490         (refers_to_regno_for_reload_p): Corresponding changes.
20491         (reg_overlap_mentioned_for_reload_p): Corresponding changes.
20492         (refers_to_mem_for_reload_p, find_equiv_reg): Corresponding changes.
20493         * reload1.c: Include ggc.h.
20494         (grow_reg_equivs): New function.
20495         (replace_pseudos_in, reload): Corresponding changes.
20496         (calculate_needs_all_insns, alter_regs): Corresponding changes.
20497         (eliminate_regs_1, elimination_effects): Corresponding changes.
20498         (emit_input_reload_insns, emit_output_reload_insns): Likewise.
20499         (delete_output_reload): Likewise.
20500         * caller-save.c (mark_referenced_regs): Corresponding changes.
20501         * alpha/alpha.c (resolve_reload_operand): Corresponding changes.
20502         * frv/predicates.md (frv_load_operand): Corresponding changes.
20503         * microblaze/microblaze.c (double_memory_operand): Corresponding
20504         changes.
20505         * avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Corresponding changes.
20506         * xtensa/xtensa.c (fixup_subreg_mem): Corresponding changes.
20507         * mn10300/mn10300.c (mn10300_secondary_reload): Corresponding changes.
20508         * m68k/m68k.c (emit_move_sequence): Corresponding changes.
20509         * arm/arm.c (arm_reload_in_hi, arm_reload_out_hi): Corresponding
20510         changes.
20511         * pa/pa.c (emit_move_sequence): Corresponding changes.
20512         * vax/vax.c (nonindexed_address_p): Corresponding changes.
20513
20514 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
20515
20516         PR target/47551
20517         * config/arm/arm.c (coproc_secondary_reload_class): Handle
20518         structure modes.  Don't check neon_vector_mem_operand for
20519         vector or structure modes.
20520
20521 2011-03-30  Richard Sandiford  <richard.sandiford@linaro.org>
20522             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
20523
20524         PR target/43590
20525         * config/arm/neon.md (neon_vld3qa<mode>, neon_vld4qa<mode>): Remove
20526         operand 1 and reshuffle the operands to match.
20527         (neon_vld3<mode>, neon_vld4<mode>): Update accordingly.
20528
20529 2011-03-30  Christian Schüler  <cschueler@gmx.de>
20530
20531         PR driver/48208
20532         * config/c.opt (F): Added 'Driver' to -F option.
20533
20534         PR driver/48260
20535         * config/darwin-driver.c (darwin_driver_init): Add '-arch' to
20536           handler function.
20537         * config/darwin.opt: Added '-arch' option.
20538
20539 2011-03-30  Nick Clifton  <nickc@redhat.com>
20540
20541         * config/rx/rx.md: Add peepholes and patterns to combine
20542         extending loads and simple arithmetic instructions.
20543         * config/rx/rx.h (ADJUST_INSN_LENGTH): Define.
20544         * config/rx/rx-protos.h (rx_adjust_insn_length): Prototype.
20545         * config/rx/rx.c (rx_is_legitimate_address): Allow QI and HI
20546         modes to use pre-decrement and post-increment addressing.
20547         (rx_is_restricted_memory_address): Add range checking of REG+INT
20548         addresses.
20549         (rx_print_operand): Add support for %Q.  Fix handling of %Q.
20550         (rx_memory_move_cost): Adjust cost of stores.
20551         (rx_adjust_insn_length): New function.
20552
20553 2011-03-30  Jakub Jelinek  <jakub@redhat.com>
20554
20555         PR c/48305
20556         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
20557         arg10/arg11 in (X ^ Y) == (Z ^ W) are always fold converted to
20558         matching arg00/arg01 types.
20559
20560 2011-03-30  Eric Botcazou  <ebotcazou@adacore.com>
20561
20562         * cfglayout.c (insn_locators_alloc): Initialize curr_location and
20563         last_location to UNKNOWN_LOCATION.
20564
20565 2011-03-30  H.J. Lu  <hongjiu.lu@intel.com>
20566
20567         PR target/48349
20568         * config/i386/i386.h (REG_CLASS_CONTENTS): Fix a typo in
20569         FLOAT_SSE_REGS.
20570
20571 2011-03-30  Joseph Myers  <joseph@codesourcery.com>
20572             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20573
20574         PR bootstrap/48337
20575         * config/sparc/sparc.opt (sparc_cpu_and_features): Add
20576         Init(PROCESSOR_V7).
20577         (sparc_cpu): Likewise.
20578         * config/sparc/sparc.c (sparc_option_override): Replace 0 by
20579         PROCESSOR_V7.
20580
20581 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
20582
20583         PR target/48336
20584         PR middle-end/48342
20585         PR rtl-optimization/48345
20586         * ira-color.c (setup_conflict_profitable_regs): Exclude prohibited
20587         hard regs for given mode from profitable regs when doing secondary
20588         allocation.
20589
20590 2011-03-29  Jeff Law  <law@redhat.com>
20591
20592         PR bootstrap/48327
20593         * tree-ssa-threadupdate.c (struct redirection_data): Remove
20594         do_not_duplicate field.
20595         (lookup_redirection_data): Corresponding changes.
20596         (create_duplicates): Always create a template block.
20597         (redirect_edges): Remove code which reused the original block
20598         when it was going to become unreachable code.
20599         (thread_block): Don't set do_not_duplicate field.
20600
20601 2011-03-29  Joseph Myers  <joseph@codesourcery.com>
20602
20603         * lto-opts.c (register_user_option_p, lto_register_user_option):
20604         Make type argument unsigned.
20605         * lto-streamer.h (lto_register_user_option): Make type argument
20606         unsigned.
20607         * opth-gen.awk: Make CL_* macros unsigned.
20608         * opts-common.c (find_opt): Make lang_mask argument unsigned.
20609         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
20610         CL_TARGET, CL_COMMON, CL_SEPARATE_NARGS_MASK, CL_SEPARATE_ALIAS,
20611         CL_NO_DRIVER_ARG, CL_REJECT_DRIVER, CL_SAVE, CL_DISABLED,
20612         CL_REPORT, CL_JOINED, CL_SEPARATE, CL_REJECT_NEGATIVE,
20613         CL_MISSING_OK, CL_UINTEGER, CL_UNDOCUMENTED): Make unsigned.
20614         (find_opt): Make lang_mask argument unsigned.
20615
20616 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
20617
20618         PR rtl-optimization/48331
20619         PR rtl-optimization/48334
20620         * ira-color.c (color_allocnos): Call setup_profitable_hard_regs
20621         for any used algorithm.
20622
20623 2011-03-29  Vladimir Makarov  <vmakarov@redhat.com>
20624
20625         * ira-conflicts.c (build_object_conflicts): Add unused attribute
20626         to parent_max.
20627
20628 2011-03-29  Uros Bizjak  <ubizjak@gmail.com>
20629
20630         * config/alpha/alpha.c (alpha_sr_alias_set): Don't define.
20631         (alpha_option_override): Don't set alpha_sr_alias_set.
20632         (emit_frame_store_1): Use gen_frame_mem rather than calling
20633         set_mem_alias_set.
20634         (alpha_expand_epilogue): Ditto.
20635
20636 2011-03-29  Ira Rosen  <ira.rosen@linaro.org>
20637
20638         PR tree-optimization/48290
20639         * tree-vect-loop.c (vect_analyze_loop_operations): In outer loop
20640         vectorization, check that relevant phis in the basic block after
20641         the inner loop are really inner loop's exit phis.
20642
20643 2011-03-29  Richard Sandiford  <richard.sandiford@linaro.org>
20644
20645         PR debug/48190
20646         * dwarf2out.c (dw_loc_list_node): Add resolved_addr and replaced.
20647         (cached_dw_loc_list_def): New structure.
20648         (cached_dw_loc_list): New typedef.
20649         (cached_dw_loc_list_table): New variable.
20650         (cached_dw_loc_list_table_hash): New function.
20651         (cached_dw_loc_list_table_eq): Likewise.
20652         (add_location_or_const_value_attribute): Take a bool cache_p.
20653         Cache the list when the parameter is true.
20654         (gen_formal_parameter_die): Update caller.
20655         (gen_variable_die): Likewise.
20656         (dwarf2out_finish): Likewise.
20657         (dwarf2out_abstract_function): Nullify cached_dw_loc_list_table
20658         while generating debug info for the decl.
20659         (dwarf2out_function_decl): Clear cached_dw_loc_list_table.
20660         (dwarf2out_init): Initialize cached_dw_loc_list_table.
20661         (resolve_addr): Cache the result of resolving a chain of
20662         location lists.
20663
20664 2011-03-28  Vladimir Makarov  <vmakarov@redhat.com>
20665
20666         * ira-color.c (update_left_conflict_sizes_p): Don't assume that
20667         conflict object hard regset nodes have intersecting hard reg sets.
20668
20669         * regmove.c (regmove_optimize): Move ira_set_pseudo_classes call
20670         after regstat_init_n_sets_and_refs.
20671
20672         * ira.c: Add more comments at the top.
20673         (setup_stack_reg_pressure_class, setup_pressure_classes):
20674         Add comments how we compute the register pressure classes.
20675         (setup_allocno_and_important_classes): Add more comments.
20676         (setup_class_translate_array, reorder_important_classes)
20677         (setup_reg_class_relations): Add comments.
20678
20679         * ira-emit.c: Add 2011 to the Copyright line.  Add comments at the
20680         start of the file.
20681
20682         * ira-color.c: Add 2011 to the Copyright line.
20683         (assign_hard_reg):  Add more comments.
20684         (improve_allocation): Ditto.
20685
20686         * ira-costs.c: Add 2011 to the Copyright line.
20687         (setup_cost_classes, setup_regno_cost_classes_by_aclass): Add more
20688         comments.
20689         (setup_regno_cost_classes_by_mode): Ditto.
20690
20691         Initial patches from ira-improv branch:
20692
20693         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
20694
20695         * ira-build.c (ira_create_object): Remove initialization of
20696         OBJECT_PROFITABLE_HARD_REGS.  Initialize OBJECT_ADD_DATA.
20697         (ira_create_allocno): Remove initialization of
20698         ALLOCNO_MEM_OPTIMIZED_DEST, ALLOCNO_MEM_OPTIMIZED_DEST_P,
20699         ALLOCNO_SOMEWHERE_RENAMED_P, ALLOCNO_CHILD_RENAMED_P,
20700         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
20701         ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO,
20702         ALLOCNO_FIRST_COALESCED_ALLOCNO, ALLOCNO_NEXT_COALESCED_ALLOCNO.
20703         Initialize ALLOCNO_ADD_DATA.
20704         (copy_info_to_removed_store_destinations): Use ALLOCNO_EMIT_DATA
20705         and allocno_emit_reg instead of ALLOCNO_MEM_OPTIMIZED_DEST_P and
20706         ALLOCNO_REG.
20707         (ira_flattening): Ditto.  Use ALLOCNO_EMIT_DATA instead of
20708         ALLOCNO_MEM_OPTIMIZED_DEST and ALLOCNO_SOMEWHERE_RENAMED_P.
20709
20710         * ira.c (ira_reallocate): Remove.
20711         (setup_pressure_classes): Call
20712         ira_init_register_move_cost_if_necessary.  Use
20713         ira_register_move_cost instead of ira_get_register_move_cost.
20714         (setup_allocno_assignment_flags): Use ALLOCNO_EMIT_DATA.
20715         (ira): Call ira_initiate_emit_data and ira_finish_emit_data.
20716
20717         * ira-color.c: Use ALLOCNO_COLOR_DATA instead of
20718         ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P, ALLOCNO_COLORABLE_P,
20719         ALLOCNO_AVAILABLE_REGS_NUM, ALLOCNO_NEXT_BUCKET_ALLOCNO,
20720         ALLOCNO_PREV_BUCKET_ALLOCNO. ALLOCNO_TEMP. Use OBJECT_COLOR_DATA
20721         instead of OBJECT_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE,
20722         OBJECT_HARD_REGS_SUBNODES_START, OBJECT_HARD_REGS_SUBNODES_NUM.
20723         Fix formatting.
20724         (object_hard_regs_t, object_hard_regs_node_t): Move from ira-int.h.
20725         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
20726         (struct allocno_color_data): New.
20727         (allocno_color_data_t): New typedef.
20728         (allocno_color_data): New definition.
20729         (ALLOCNO_COLOR_DATA): New macro.
20730         (struct object_color_data): New.
20731         (object_color_data_t): New typedef.
20732         (object_color_data): New definition.
20733         (OBJECT_COLOR_DATA): New macro.
20734         (update_copy_costs, calculate_allocno_spill_cost): Call
20735         ira_init_register_move_cost_if_necessary.  Use
20736         ira_register_move_cost instead of ira_get_register_move_cost.
20737         (move_spill_restore, update_curr_costs): Ditto.
20738         (allocno_spill_priority): Make it inline.
20739         (color_pass): Allocate and free allocno_color_dat and object_color_data.
20740         (struct coalesce_data, coalesce_data_t): New.
20741         (allocno_coalesce_data): New definition.
20742         (ALLOCNO_COALESCE_DATA): New macro.
20743         (merge_allocnos, coalesced_allocno_conflict_p): Use
20744         ALLOCNO_COALESCED_DATA instead of ALLOCNO_FIRST_COALESCED_ALLOCNO,
20745         ALLOCNO_NEXT_COALESCED_ALLOCNO, ALLOCNO_TEMP.
20746         (coalesce_allocnos): Ditto.
20747         (setup_coalesced_allocno_costs_and_nums): Ditto.
20748         (collect_spilled_coalesced_allocnos): Ditto.
20749         (slot_coalesced_allocno_live_ranges_intersect_p): Ditto.
20750         (setup_slot_coalesced_allocno_live_ranges): Ditto.
20751         (coalesce_spill_slots): Ditto.
20752         (ira_sort_regnos_for_alter_reg): Ditto.  Allocate, initialize and
20753         free allocno_coalesce_data.
20754
20755         * ira-conflicts.c: Fix formatting.
20756         (process_regs_for_copy): Call
20757         ira_init_register_move_cost_if_necessary.  Use
20758         ira_register_move_cost instead of ira_get_register_move_cost.
20759         (build_object_conflicts): Optimize.
20760
20761         * ira-costs.c (record_reg_classes): Optimize.  Call
20762         ira_init_register_move_cost_if_necessary.  Use
20763         ira_register_move_cost, ira_may_move_in_cost, and
20764         ira_may_move_out_cost instead of ira_get_register_move_cost and
20765         ira_get_may_move_cost.
20766         (record_address_regs): Ditto.
20767         (scan_one_insn): Optimize.
20768         (find_costs_and_classes): Optimize.
20769         (process_bb_node_for_hard_reg_moves): Call
20770         ira_init_register_move_cost_if_necessary.  Use
20771         ira_register_move_cost instead of ira_get_register_move_cost.
20772
20773         * ira-emit.c: Use allocno_emit_reg, ALLOCNO_EMIT_DATA instead of
20774         ALLOCNO_REG, ALLOCNO_CHILD_RENAMED_P, ALLOCNO_MEM_OPTIMIZED_DEST,
20775         ALLOCNO_MEM_OPTIMIZED_DEST_P, and ALLOCNO_SOMEWHERE_RENAMED_P.
20776         (ira_allocno_emit_data, void_p, new_allocno_emit_data_vec): New
20777         definitions.
20778         (ira_initiate_emit_data, ira_finish_emit_data)
20779         (create_new_allocno): New functions.
20780         (modify_move_list): Call create_new_alloc instead of ira_create_allocno.
20781         (emit_move_list): Call ira_init_register_move_cost_if_necessary.
20782         Use ira_register_move_cost instead of ira_get_register_move_cost.
20783
20784         * ira-int.h: Fix some comments.
20785         (object_hard_regs_t, object_hard_regs_node_t): Move to ira-color.c.
20786         (struct object_hard_regs, struct object_hard_regs_node): Ditto.
20787         (struct ira_object): Remove profitable_hard_regs, hard_regs_node,
20788         hard_regs_subnodes_start, hard_regs_subnodes_num.  Add new member
20789         add_data.
20790         (struct ira_allocno): Make mode and aclass a bitfield.  Move other
20791         bitfield after mode.  Make hard_regno a short int.  Make
20792         hard_regno short.  Remove first_coalesced_allocno and
20793         next_coalesced_allocno.  Move mem_optimized_dest_p,
20794         somewhere_renamed_p, child_renamed_p, reg, and mem_optimized_dest
20795         into struct ira_emit_data.  Remove in_graph_p, may_be_spilled_p,
20796         available_regs_num, next_bucket_allocno, prev_bucket_allocno,
20797         temp, colorable_p.  Add new member add_data.
20798         (ALLOCNO_IN_GRAPH_P, ALLOCNO_MAY_BE_SPILLED_P): Remove.
20799         (ALLOCNO_COLORABLE_P, ALLOCNO_AVAILABLE_REGS_NUM): Remove.
20800         (ALLOCNO_NEXT_BUCKET_ALLOCNO, ALLOCNO_PREV_BUCKET_ALLOCNO): Remove.
20801         (ALLOCNO_TEMP, ALLOCNO_FIRST_COALESCED_ALLOCNO): Remove.
20802         (ALLOCNO_NEXT_COALESCED_ALLOCNO): Remove.
20803         (ALLOCNO_ADD_DATA): New macro.
20804         (ira_emit_data_t): New typedef.
20805         (struct ira_emit_data): New.  Move mem_optimized_dest_p,
20806         somewhere_renamed_p, child_renamed_p, reg, mem_optimized_dest
20807         from struct ira_allocno.
20808         (ALLOCNO_EMIT_DATA): New macro.
20809         (ira_allocno_emit_data, allocno_emit_reg): New.
20810         (ALLOCNO_PROFITABLE_HARD_REGS, OBJECT_HARD_REGS_NODE): Remove.
20811         (OBJECT_HARD_REGS_SUBNODES_STAR, OBJECT_HARD_REGS_SUBNODES_NUM): Remove.
20812         (OBJECT_ADD_DATA): New macro.
20813         (ira_reallocate): Remove.
20814         (ira_initiate_emit_data, ira_finish_emit_data): New.
20815         (ira_get_register_move_cost, ira_get_may_move_cost): Remove.
20816         (ira_init_register_move_cost_if_necessary): New.
20817         (ira_object_conflict_iter_next): Merge into
20818         ira_object_conflict_iter_cond.
20819         (FOR_EACH_OBJECT_CONFLICT): Don't use ira_object_conflict_iter_next.
20820
20821         * ira-live.c (process_single_reg_class_operands): Call
20822         ira_init_register_move_cost_if_necessary.  Use
20823         ira_register_move_cost instead of ira_get_register_move_cost.
20824
20825         2010-08-13  Vladimir Makarov  <vmakarov@redhat.com>
20826
20827         * ira-int.h (struct target_ira_int): Remove x_cost_classes.
20828
20829         * ira-costs.c: Fix formatting.
20830         (cost_classes, cost_classes_num): Remove.
20831         (struct cost_classes, cost_classes_t, const_cost_classes_t): New.
20832         (regno_cost_classes, cost_classes_hash, cost_classes_eq): New.
20833         (cost_classes_del, cost_classes_htab): New.
20834         (cost_classes_aclass_cache, cost_classes_mode_cache): New.
20835         (initiate_regno_cost_classes, setup_cost_classes): New.
20836         (setup_regno_cost_classes_by_aclass): New.
20837         (setup_regno_cost_classes_by_mode, finish_regno_cost_classes): New.
20838         (record_reg_classes): Use regno_cost_classes instead of
20839         cost_classes.  Move checking opposite operand up.
20840         (record_address_regs): Use regno_cost_classes
20841         instead of cost_classes.
20842         (scan_one_insn): Ditto.  Use always general register.
20843         (print_allocno_costs): Use regno_cost_classes instead of
20844         cost_classes.
20845         (print_pseudo_costs): Ditto.  Use Reg_N_REFS.
20846         (find_costs_and_classes): Set up cost classes for each registers.
20847         Use also their mode for this.  Use regno_cost_classes instead of
20848         cost_classes.
20849         (setup_allocno_class_and_costs): Use regno_cost_classes instead of
20850         cost_classes.
20851         (free_ira_costs, ira_init_costs): Don't use cost_classes.
20852         (ira_costs, ira_set_pseudo_classes): Call
20853         initiate_regno_cost_classes and finish_regno_cost_classes.
20854
20855         2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
20856
20857         * target-def.h (TARGET_IRA_COVER_CLASSES): Remove.
20858
20859         * target.def (ira_cover_classes): Remove.
20860
20861         * doc/tm.texi: Remove TARGET_IRA_COVER_CLASSES and IRA_COVER_CLASSES.
20862
20863         * doc/tm.texi.in: Ditto.
20864
20865         * ira-conflicts.c: Remove mentioning cover classes from the file.
20866         Use ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Use
20867         ALLOCNO_COVER_CLASS_COST instead of ALLOCNO_CLASS_COST.  Fix formatting.
20868
20869         * targhooks.c (default_ira_cover_classes): Remove.
20870
20871         * targhooks.h (default_ira_cover_classes): Ditto.
20872
20873         * haifa-sched.c: Remove mentioning cover classes from the file.
20874         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
20875         ira_pressure_classes and ira_pressure_classes_num instead of
20876         ira_reg_class_cover_size and ira_reg_class_cover.  Use
20877         sched_regno_pressure_class instead of sched_regno_cover_class.
20878         (mark_regno_birth_or_death, setup_insn_reg_pressure_info): Use
20879         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
20880
20881         * ira-int.h: Add 2010 to Copyright.  Remove mentioning cover
20882         classes from the file.
20883         (object_hard_regs_t, object_hard_regs_node_t): New typedefs.
20884         (struct object_hard_regs, struct object_hard_regs_node): New.
20885         (struct ira_object): New members profitable_hard_regs,
20886         hard_regs_node, hard_regs_subnodes_start, hard_regs_subnodes_num.
20887         (struct ira_allocno): Rename cover_class to aclass.  Rename
20888         cover_class_cost and updated_cover_class_cost to class_cost and
20889         updated_class_cost.  Remove splay_removed_p and
20890         left_conflict_size.  Add new members colorable_p.
20891         (ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICTS_SIZE): Remove.
20892         (ALLOCNO_COLORABLE_P): New macro.
20893         (ALLOCNO_COVER_CLASS): Rename to ALLOCNO_CLASS.
20894         (ALLOCNO_COVER_CLASS_COST, ALLOCNO_UPDATED_COVER_CLASS_COST):
20895         Rename to ALLOCNO_CLASS_COST and ALLOCNO_UPDATED__CLASS_COST.
20896         (OBJECT_...): Rename parameter C to O.
20897         (OBJECT_PROFITABLE_HARD_REGS): New macro.
20898         (OBJECT_HARD_REGS_NODE, OBJECT_HARD_REGS_SUBNODES_START)
20899         (OBJECT_HARD_REGS_SUBNODES_NUM): New macros.
20900         (struct target_ira_int): New members x_ira_max_memory_move_cost,
20901         x_ira_max_register_move_cost, x_ira_max_may_move_in_cost,
20902         x_ira_max_may_move_out_cost, x_ira_reg_allocno_class_p,
20903         x_ira_reg_pressure_class_p, x_ira_important_class_nums,
20904         x_ira_reg_class_superunion.  Rename x_prohibited_class_mode_reg to
20905         x_ira_prohibited_class_mode_reg.  Rename x_ira_reg_class_union to
20906         x_ira_reg_class_subunion.
20907         (ira_max_memory_move_cost, ira_max_register_move_cost)
20908         (ira_max_may_move_in_cost, ira_max_may_move_out_cost)
20909         (ira_reg_allocno_class_p, ira_reg_pressure_class_p)
20910         (ira_important_class_nums, ira_reg_class_superunion): New macros.
20911         (prohibited_class_mode_regs): Rename to ira_prohibited_class_mode_regs.
20912         (ira_reg_class_union): Rename to ira_reg_class_subunion.
20913         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
20914         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
20915         (ira_tune_allocno_costs_and_cover_classes): Rename to
20916         ira_tune_allocno_costs.
20917         (ira_debug_hard_regs_forest): New.
20918         (ira_object_conflict_iter_init, ira_object_conflict_iter_cond)
20919         (ira_object_conflict_iter_next): Fix comments.
20920         (ira_hard_reg_set_intersection_p, hard_reg_set_size): New functions.
20921         (ira_allocate_and_set_costs, ira_allocate_and_copy_costs): Rename
20922         cover_class to aclass.
20923         (ira_allocate_and_accumulate_costs): Ditto.
20924         (ira_allocate_and_set_or_copy_costs): Ditto.
20925
20926         * opts.c (decode_options): Remove ira_cover_class check.
20927
20928         * ira-color.c: Remove mentioning cover classes from the file.  Use
20929         ALLOCNO_CLASS, ALLOCNO_CLASS_COST, and ALLOCNO_UPDATED_CLASS_COST
20930         instead of ALLOCNO_COVER_CLASS, ALLOCNO_COVER_CLASS_COST, and
20931         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
20932         (splay-tree.h): Remove include.
20933         (allocno_coalesced_p, processed_coalesced_allocno_bitmap): Move
20934         before copy_freq_compare_func.
20935         (allocnos_for_spilling, removed_splay_allocno_vec): Remove.
20936         (object_hard_regs_vec, object_hard_regs_htab, node_check_tick):
20937         New definitions.
20938         (hard_regs_roots, hard_regs_node_vec): Ditto.
20939         (object_hard_regs_hash, object_hard_regs_eq, find_hard_regs): Ditto.
20940         (insert_hard_regs, init_object_hard_regs, add_object_hard_regs): Ditto.
20941         (finish_object_hard_regs, object_hard_regs_compare): Ditto.
20942         (create_new_object_hard_regs_node): Ditto.
20943         (add_new_object_hard_regs_node_to_forest): Ditto.
20944         (add_object_hard_regs_to_forest, collect_object_hard_regs_cover): Ditto.
20945         (setup_object_hard_regs_nodes_parent, first_common_ancestor_node):
20946         Ditto.
20947         (print_hard_reg_set, print_hard_regs_subforest): Ditto.
20948         (print_hard_regs_forest, ira_debug_hard_regs_forest): Ditto.
20949         (remove_unused_object_hard_regs_nodes): Ditto.
20950         (enumerate_object_hard_regs_nodes): Ditto.
20951         (object_hard_regs_nodes_num, object_hard_regs_nodes): Ditto.
20952         (object_hard_regs_subnode_t): Ditto.
20953         (struct object_hard_regs_subnode): Ditto.
20954         (object_hard_regs_subnodes, object_hard_regs_subnode_index): Ditto.
20955         (setup_object_hard_regs_subnode_index): Ditto.
20956         (get_object_hard_regs_subnodes_num): Ditto.
20957         (form_object_hard_regs_nodes_forest): Ditto.
20958         (finish_object_hard_regs_nodes_tree): Ditto.
20959         (finish_object_hard_regs_nodes_forest): Ditto.
20960         (allocnos_have_intersected_live_ranges_p): Rename to
20961         allocnos_conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
20962         (pseudos_have_intersected_live_ranges_p): Rename to
20963         conflict_by_live_ranges_p.  Move before copy_freq_compare_func.
20964         (setup_left_conflict_sizes_p, update_left_conflict_sizes_p): Ditto.
20965         (empty_profitable_hard_regs, setup_profitable_hard_regs): Ditto.
20966         (update_copy_costs): Remove assert.  Skip cost update if the hard
20967         reg does not belong the class.
20968         (assign_hard_reg): Process only profitable hard regs.
20969         (uncolorable_allocnos_num): Make it scalar.
20970         (allocno_spill_priority): Use ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
20971         and ira_reg_class_max_nregs instead of ALLOCNO_LEFT_CONFLICTS_SIZE
20972         and ira_reg_class_max_nregs.
20973         (bucket_allocno_compare_func): Check frequency first.
20974         (sort_bucket): Add compare function as a parameter.
20975         (add_allocno_to_ordered_bucket): Assume no coalesced allocnos.
20976         (uncolorable_allocnos_splay_tree, USE_SPLAY_P): Remove.
20977         (push_allocno_to_stack): Rewrite for checking new allocno
20978         colorability.
20979         (remove_allocno_from_bucket_and_push): Print cost too.  Remove assert.
20980         (push_only_colorable): Pass new parameter to sort_bucket.
20981         (push_allocno_to_spill): Remove.
20982         (allocno_spill_priority_compare): Make it inline and rewrite.
20983         (splay_tree_allocate, splay_tree_free): Remove.
20984         (allocno_spill_sort_compare): New function.
20985         (push_allocnos_to_stack): Sort allocnos for spilling once.  Don't
20986         build and use splay tree.  Choose first allocno in uncolorable
20987         allocno bucket to spill.  Remove setting spill cost.
20988         (all_conflicting_hard_regs): Remove.
20989         (setup_allocno_available_regs_num): Check only profitable hard
20990         regs.  Print info about hard regs nodes.
20991         (setup_allocno_left_conflicts_size): Remove.
20992         (put_allocno_into_bucket): Don't call
20993         setup_allocno_left_conflicts_size.  Use setup_left_conflict_sizes_p.
20994         (improve_allocation): New.
20995         (color_allocnos): Call setup_profitable_hard_regs,
20996         form_object_hard_regs_nodes_forest, improve_allocation,
20997         finish_object_hard_regs_nodes_forest.  Setup spill cost.
20998         (print_loop_title): Use pressure classes.
20999         (color_allocnso): Ditto.
21000         (do_coloring): Remove allocation and freeing splay_tree_node_pool
21001         and allocnos_for_spilling.
21002         (ira_sort_regnos_for_alter_reg): Don't setup members
21003         {first,next}_coalesced_allocno.
21004         (color): Remove allocating and freeing removed_splay_allocno_vec.
21005         (fast_allocation): Use ira_prohibited_class_mode_regs instead of
21006         prohibited_class_mode_regs.
21007
21008         * ira-lives.c: Remove mentioning cover classes from the file.  Fix
21009         formatting.
21010         (update_allocno_pressure_excess_length): Use pressure classes.
21011         (inc_register_pressure, dec_register_pressure): Check for pressure
21012         class.
21013         (mark_pseudo_regno_live, mark_pseudo_regno_subword_live): Use
21014         pressure class.  Use ira_reg_class_nregs instead of
21015         ira_reg_class_max_nregs.
21016         (mark_pseudo_regno_dead, mark_pseudo_regno_subword_dead): Ditto.
21017         (mark_hard_reg_live, mark_hard_reg_dead): Use pressure class.
21018         (single_reg_class): Use ira_reg_class_nregs instead of
21019         ira_reg_class_max_nregs.
21020         (process_bb_node_lives): Use pressure classes.
21021
21022         * ira-emit.c: Remove mentioning cover classes from the file.  Use
21023         ALLOCNO_CLASS instead of ALLOCNO_COVER_CLASS.  Fix formatting.
21024         (change_loop): Use pressure classes.
21025         (modify_move_list): Call ira_set_allocno_class instead of
21026         ira_set_allocno_cover_class.
21027
21028         * ira-build.c: Remove mentioning cover classes from the file.  Use
21029         ALLOCNO_CLASS and ALLOCNO_CLASS_COST instead of
21030         ALLOCNO_COVER_CLASS and ALLOCNO_COVER_CLASS_COST.  Use
21031         ALLOCNO_UPDATED_CLASS_COST instead of
21032         ALLOCNO_UPDATED_COVER_CLASS_COST.  Fix formatting.
21033         (ira_create_object): Initiate OBJECT_PROFITABLE_HARD_REGS.
21034         (ira_create_allocno): Remove initialization of
21035         ALLOCNO_SPLAY_REMOVED_P, ALLOCNO_LEFT_CONFLICT_SIZE.  Initialize
21036         ALLOCNO_COLORABLE_P.
21037         (ira_set_allocno_cover_class): Rename to ira_set_allocno_class.
21038         Update conflict regs for the objects.
21039         (create_cap_allocno): Remove assert.  Don't propagate
21040         ALLOCNO_AVAILABLE_REGS_NUM.
21041         (ira_free_allocno_costs): New function.
21042         (finish_allocno): Change a part of code into call of
21043         ira_free_allocno_costs.
21044         (low_pressure_loop_node_p): Use pressure classes.
21045         (object_range_compare_func): Don't compare classes.
21046         (setup_min_max_conflict_allocno_ids): Ditto.
21047
21048         * loop-invariant.c: Remove mentioning cover classes from the file.
21049         Use ira_pressure_classes and ira_pressure_classes_num instead of
21050         ira_reg_class_cover_size and ira_reg_class_cover.  Fix formatting.
21051         (get_cover_class_and_nregs): Rename to get_cover_pressure_and_nregs.
21052         Use ira_reg_class_max_nregs instead of ira_reg_class_nregs.
21053         Use reg_allocno_class instead of reg_cover_class.
21054         (get_inv_cost): Use instead ira_stack_reg_pressure_class of
21055         STACK_REG_COVER_CLASS.
21056         (get_regno_cover_class): Rename to get_regno_pressure_class.
21057         (move_loop_invariants): Initialize and finalize regstat.
21058
21059         * ira.c: Remove mentioning cover classes from the file.  Add
21060         comments about coloring without cover classes.  Use ALLOCNO_CLASS
21061         instead of ALLOCNO_COVER_CLASS.  Fix formatting.
21062         (alloc_reg_class_subclasses, setup_reg_subclasses): Move it before
21063         setup_class_subset_and_memory_move_costs.
21064         (setup_stack_reg_pressure_class, setup_pressure_classes): New.
21065         (setup_cover_and_important_classes): Rename to
21066         setup_allocno_and_important_classes.
21067         (setup_class_translate_array): New.
21068         (setup_class_translate): Call it for allocno and pressure classes.
21069         (cover_class_order): Rename to allocno_class_order.
21070         (comp_reg_classes_func): Use ira_allocno_class_translate instead
21071         of ira_class_translate.
21072         (reorder_important_classes): Set up ira_important_class_nums.
21073         (setup_reg_class_relations): Set up ira_reg_class_superunion.
21074         (print_class_cover): Rename to print_classes.  Add parameter.
21075         (ira_debug_class_cover): Rename to ira_debug_allocno_classes.
21076         Print pressure classes too.
21077         (find_reg_class_closure): Rename to find_reg_classes.  Don't call
21078         setup_reg_subclasses.
21079         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
21080         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
21081         (setup_prohibited_class_mode_regs): Use
21082         ira_prohibited_class_mode_regs instead of prohibited_class_mode_regs.
21083         (clarify_prohibited_class_mode_regs): New function.
21084         (ira_init_register_move_cost): Set up ira_max_register_move_cost,
21085         ira_max_may_move_in_cost, and ira_max_may_move_out_cost.
21086         (ira_init_once): Initialize them.
21087         (free_register_move_costs): Process them.
21088         (ira_init): Move calls of find_reg_classes and
21089         setup_hard_regno_aclass after setup_prohibited_class_mode_regs.
21090         Call clarify_prohibited_class_mode_regs.
21091         (ira_no_alloc_reg): Remove.
21092         (too_high_register_pressure_p): Use pressure classes.
21093
21094         * sched-deps.c: Remove mentioning cover classes from the file.
21095         Use ira_reg_pressure_cover instead of ira_reg_class_cover.  Use
21096         ira_pressure_classes and ira_pressure_classes_num instead of
21097         ira_reg_class_cover_size and ira_reg_class_cover.
21098         (mark_insn_hard_regno_birth, mark_hard_regno_death): Use
21099         sched_regno_pressure_class instead of sched_regno_cover_class.
21100         (mark_insn_pseudo_birth, mark_pseudo_death): Ditto.  Use
21101         ira_reg_class_max_nregs instead of ira_reg_class_nregs.
21102
21103         * ira.h: Add 2010 to Copyright.
21104         (ira_no_alloc_reg): Remove external.
21105         (struct target_ira): Rename x_ira_hard_regno_cover_class,
21106         x_ira_reg_class_cover_size, x_ira_reg_class_cover, and
21107         x_ira_class_translate to x_ira_hard_regno_allocno_class,
21108         x_ira_allocno_classes_num, x_ira_allocno_classes, and
21109         x_ira_allocno_class_translate.  Add x_ira_pressure_classes_num,
21110         x_ira_pressure_classes, x_ira_pressure_class_translate, and
21111         x_ira_stack_reg_pressure_class.  Rename x_ira_reg_class_nregs to
21112         x_ira_reg_class_max_nregs.  Add x_ira_reg_class_min_nregs and
21113         x_ira_no_alloc_regs.
21114         (ira_hard_regno_cover_class): Rename to ira_hard_regno_allocno_class.
21115         (ira_reg_class_cover_size, ira_reg_class_cover): Rename to
21116         ira_allocno_classes_num and ira_allocno_classes.
21117         (ira_class_translate): Rename to ira_allocno_class_translate.
21118         (ira_pressure_classes_num, ira_pressure_classes): New definitions.
21119         (ira_pressure_class_translate, ira_stack_reg_pressure_class): Ditto.
21120         (ira_reg_class_nregs): Rename to ira_reg_class_max_nregs.
21121         (ira_reg_class_min_nregs, ira_stack_reg_pressure_class): New
21122         (ira_no_alloc_regs): New.
21123
21124         * ira-costs.c: Add 2010 to Copyright.  Remove mentioning cover
21125         classes from the file.  Use ALLOCNO_CLASS instead of
21126         ALLOCNO_COVER_CLASS.  Use ALLOCNO_CLASS_COST instead of
21127         ALLOCNO_COVER_CLASS_COST.
21128         (regno_cover_class): Rename to regno_aclass.
21129         (record_reg_classes): Use ira_reg_class_subunion instead of
21130         ira_reg_class_union.
21131         (record_address_regs): Check overflow.
21132         (scan_one_insn): Ditto.
21133         (print_allocno_costs): Print total mem cost fore regional allocation.
21134         (print_pseudo_costs): Use REG_N_REFS.
21135         (find_costs_and_classes): Use classes intersected with them on the
21136         1st pass. Check overflow.  Use ira_reg_class_subunion instead of
21137         ira_reg_class_union.  Use ira_allocno_class_translate and
21138         regno_aclass instead of ira_class_translate and regno_cover_class.
21139         Modify code for finding regno_aclass.  Setup preferred classes for
21140         the next pass.
21141         (setup_allocno_cover_class_and_costs): Rename to
21142         setup_allocno_class_and_costs.  Use regno_aclass instead of
21143         regno_cover_class.  Use ira_set_allocno_class instead of
21144         ira_set_allocno_cover_class.
21145         (init_costs, finish_costs): Use regno_aclass instead of
21146         regno_cover_class.
21147         (ira_costs): Use setup_allocno_class_and_costs instead of
21148         setup_allocno_cover_class_and_costs.
21149         (ira_tune_allocno_costs_and_cover_classes): Rename to
21150         ira_tune_allocno_costs.  Check overflow.  Skip conflict hard regs
21151         by processing objects.  Use ira_reg_class_max_nregs instead of
21152         ira_reg_class_nregs.
21153
21154         * rtl.h (reg_cover_class): Rename to reg_allocno_class.
21155
21156         * sched-int.h: Remove mentioning cover classes from the file.
21157         (sched_regno_cover_class): Rename to sched_regno_pressure_class.
21158
21159         * reginfo.c: Add 2010 to Copyright.  Remove mentioning cover
21160         classes from the file.
21161         (struct reg_pref): Rename coverclass into allocnoclass.
21162         (reg_cover_class): Rename to reg_allocno_class.
21163
21164         * Makefile.in (ira-color.o): Remove SPLAY_TREE_H from dependencies.
21165
21166         * config/alpha/alpha.h (IRA_COVER_CLASSES): Remove.
21167
21168         * config/arm/arm.h (IRA_COVER_CLASSES): Ditto.
21169
21170         * config/avr/avr.h (IRA_COVER_CLASSES): Ditto.
21171
21172         * config/bfin/bfin.h (IRA_COVER_CLASSES): Ditto.
21173
21174         * config/cris/cris.h (IRA_COVER_CLASSES): Ditto.
21175
21176         * config/fr30/fr30.h (IRA_COVER_CLASSES): Ditto.
21177
21178         * config/frv/frv.h (IRA_COVER_CLASSES): Ditto.
21179
21180         * config/h8300/h8300.h (IRA_COVER_CLASSES): Ditto.
21181
21182         * config/i386/i386.h (STACK_REG_COVER_CLASS): Ditto.
21183
21184         * config/i386/i386.c (TARGET_IRA_COVER_CLASSES)
21185         (i386_ira_cover_classes): Ditto.
21186
21187         * config/ia64/ia64.h (IRA_COVER_CLASSES): Ditto.
21188
21189         * config/iq2000/iq2000.h (IRA_COVER_CLASSES): Ditto.
21190
21191         * config/m32r/m32r.h (IRA_COVER_CLASSES): Ditto.
21192
21193         * config/m68k/m68k.h (IRA_COVER_CLASSES): Ditto.
21194
21195         * config/mcore/mcore.h (IRA_COVER_CLASSES): Ditto.
21196
21197         * config/mep/mep.h (IRA_COVER_CLASSES): Ditto.
21198
21199         * config/mips/mips.c (TARGET_IRA_COVER_CLASSES)
21200         (mips_ira_cover_classes): Ditto.
21201
21202         * config/mn10300/mn10300.h (IRA_COVER_CLASSES): Ditto.
21203
21204         * config/moxie/moxie.h (IRA_COVER_CLASSES): Ditto.
21205
21206         * config/pa/pa64-regs.h (IRA_COVER_CLASSES): Ditto.
21207
21208         * config/pa/pa32-regs.h (IRA_COVER_CLASSES): Ditto.
21209
21210         * config/picochip/picochip.h (IRA_COVER_CLASSES): Ditto.
21211
21212         * config/rs6000/rs6000.h (IRA_COVER_CLASSES_PRE_VSX)
21213         (IRA_COVER_CLASSES_VSX): Ditto.
21214
21215         * config/rs6000/rs6000.c (TARGET_IRA_COVER_CLASSES)
21216         (rs6000_ira_cover_classes): Ditto.
21217
21218         * config/rx/rx.h (IRA_COVER_CLASSES): Ditto.
21219
21220         * config/s390/s390.h (IRA_COVER_CLASSES): Ditto.
21221
21222         * config/score/score.h (IRA_COVER_CLASSES): Ditto.
21223
21224         * config/sh/sh.h (IRA_COVER_CLASSES): Ditto.
21225
21226         * config/sparc/sparc.h (IRA_COVER_CLASSES): Ditto.
21227
21228         * config/spu/spu.h (IRA_COVER_CLASSES): Ditto.
21229
21230         * config/stormy16/stormy16.h (IRA_COVER_CLASSES): Ditto.
21231
21232         * config/v850/v850.h (IRA_COVER_CLASSES): Ditto.
21233
21234         * config/vax/vax.h (IRA_COVER_CLASSES): Ditto.
21235
21236         * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Ditto.
21237
21238 2011-03-29  Jakub Jelinek  <jakub@redhat.com>
21239
21240         PR debug/48253
21241         * dwarf2out.c (struct dw_fde_struct): Remove dw_fde_hot_section_label,
21242         dw_fde_hot_section_end_label, dw_fde_unlikely_section_label,
21243         dw_fde_unlikely_section_end_label, cold_in_std_section,
21244         dw_fde_switched_sections and dw_fde_switched_cold_to_hot fields.
21245         Add dw_fde_second_begin, dw_fde_second_end and second_in_std_section
21246         fields.
21247         (output_fde): Use dw_fde_second_{begin,end} if second is
21248         true, otherwise dw_fde_{begin,end}.
21249         (output_call_frame_info): Test dw_fde_second_begin != NULL
21250         instead of dw_fde_switched_sections.
21251         (dwarf2out_begin_prologue): Stop initializing removed dw_fde_struct
21252         fields, initialize new fields.  Initialize in_std_section
21253         unconditionally from the first partition.
21254         (dwarf2out_end_epilogue): Don't override dw_fde_end when
21255         dw_fde_second_begin is non-NULL.
21256         (dwarf2out_switch_text_section): Stop initializing removed
21257         dw_fde_struct fields, initialize new fields, initialize
21258         also dw_fde_end here.  Set dw_fde_switch_cfi even when
21259         dwarf2out_do_cfi_asm ().  Call var_location_switch_text_section.
21260         (struct var_loc_list_def): Add last_before_switch field.
21261         (arange_table, arange_table_allocated, arange_table_in_use,
21262         ARANGE_TABLE_INCREMENT, add_arange): Removed.
21263         (size_of_aranges): Count !in_std_section and !second_in_std_section
21264         hunks in fdes, instead of looking at arange_table_in_use.
21265         (output_aranges): Add aranges_length argument, don't call
21266         size_of_aranges here.  Instead of using aranges_table*
21267         emit ranges for fdes when !in_std_section resp.
21268         !second_in_std_section.
21269         (dw_loc_list): Break ranges crossing section switch.
21270         (convert_cfa_to_fb_loc_list): Likewise.  If switched sections,
21271         use dw_fde_second_end instead of dw_fde_end as end of last range.
21272         (gen_subprogram_die): Don't call add_arange.  Use
21273         dw_fde_{begin,end} for first partition and if switched
21274         section dw_fde_second_{begin,end} for the second.
21275         (var_location_switch_text_section_1,
21276         var_location_switch_text_section): New functions.
21277         (dwarf2out_begin_function): Initialize cold_text_section even
21278         when function_section () isn't text_section.
21279         (prune_unused_types): Don't walk arange_table.
21280         (dwarf2out_finish): Don't needlessly test
21281         flag_reorder_blocks_and_partition when testing cold_text_section_used.
21282         If info_section_emitted, call size_of_aranges and if it indicates
21283         non-empty .debug_aranges, call output_aranges with the computed
21284         size.  Stop using removed dw_fde_struct fields, use
21285         dw_fde_{begin,end} for first partition and dw_fde_second_{begin,end}
21286         for second.
21287
21288         PR debug/48203
21289         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Only
21290         create ENTRY_VALUE if incoming or address of incoming's MEM
21291         is a hard REG.
21292         * dwarf2out.c (mem_loc_descriptor): Don't emit
21293         DW_OP_GNU_entry_value of DW_OP_fbreg.
21294         * var-tracking.c (vt_add_function_parameter): Ensure cselib_lookup
21295         on ENTRY_VALUE is able to find the canonical parameter VALUE.
21296         * cselib.c (rtx_equal_for_cselib_1) <case ENTRY_VALUE>: Use
21297         rtx_equal_p instead of rtx_equal_for_cselib_1 to compare
21298         ENTRY_VALUE_EXPs.
21299         (cselib_hash_rtx) <case ENTRY_VALUE>: If ENTRY_VALUE_EXP
21300         is a REG_P or MEM_P with REG_P address, compute hash directly
21301         instead of calling cselib_hash_rtx on ENTRY_VALUE_EXP.
21302         (preserve_only_constants): Don't clear VALUES forwaring
21303         ENTRY_VALUE to some other VALUE.
21304
21305 2011-03-28  Richard Sandiford  <richard.sandiford@linaro.org>
21306
21307         * builtins.c (expand_builtin_memset_args): Use gen_int_mode
21308         instead of GEN_INT.
21309
21310 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
21311
21312         * cfgexpand.c (expand_gimple_cond): Always set the source location and
21313         block before expanding the statement.
21314         (expand_gimple_stmt_1): Likewise.  Set them here...
21315         (expand_gimple_stmt): ...and not here.  Tidy.
21316         * cfglayout.c (curr_insn_locator): Return 0 if the current location is
21317         unknown.
21318
21319 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
21320
21321         * Makefile.in: New rule for cprop.o.
21322         * gcse.c: Move constant/copy propagation to cprop.c.
21323         (compute_local_properties): Only handle expression tables.
21324         (hash_scan_set, compute_hash_table_work, alloc_hash_table,): Likewise.
21325         (one_pre_gcse_pass, one_code_hoisting_pass): Likewise.
21326         (hash_set, insert_set_in_table, gcse_constant_p, lookup_set,
21327         next_set, reset_opr_set_tables, oprs_not_set_p, mark_call, mark_set,
21328         mark_clobber, mark_oprs_set, alloc_cprop_mem, free_cprop_mem,
21329         compute_cprop_data, find_used_regs, try_replace_reg,
21330         find_avail_set, cprop_jump, constprop_register, cprop_insn,
21331         local_cprop_find_used_regs, do_local_cprop, local_cprop_pass,
21332         fis_get_condition, implicit_set_cond_p, find_implicit_sets,
21333         find_bypass_set, reg_killed_on_edge, bypass_block,
21334         bypass_conditional_jumps, one_cprop_pass, gate_rtl_cprop,
21335         execute_rtl_cprop, pass_rtl_cprop): Move to...
21336         * cprop.c: ...here.  New file, constant/copy propagation for RTL
21337         moved from gcse.c to here with minor cleanups in duplicated code.
21338
21339 2011-03-28  H.J. Lu  <hongjiu.lu@intel.com>
21340
21341         * config/i386/i386.c (flag_opts): Fix a typo in
21342         -mavx256-split-unaligned-store.
21343
21344 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
21345
21346         * config/h8300/h8300.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
21347         LIBCALL_VALUE): Remove macros.
21348         * config/h8300/h8300.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21349         TARGET_FUNCTION_VALUE_REGNO_P): Define.
21350         (h8300_function_value, h8300_libcall_value,
21351         h8300_function_value_regno_p): New functions.
21352
21353 2011-03-28  Anatoly Sokolov  <aesok@post.ru>
21354
21355         * config/h8300/h8300.h (ASM_OUTPUT_BSS): Remove macro.
21356
21357 2011-03-28  Jeff Law  <law@redhat.com>
21358
21359         * tree-ssa-threadupdate.c (redirect_edges): Call
21360         create_edge_and_update_destination_phis as needed.
21361         (create_edge_and_update_destination_phis): Accept new BB argument.
21362         All callers updated.
21363         (thread_block): Do not update the profile when threading around
21364         intermediate blocks.
21365         (thread_single_edge): Likewise.
21366         (determine_bb_domination_status): If BB is not a successor of the
21367         loop header, return NONDOMINATING.
21368         (register_jump_thread): Note when we register a jump thread around
21369         an intermediate block.
21370         * tree-ssa-threadedge.c (thread_around_empty_block): New function.
21371         (thread_across_edge): Use it.
21372
21373 2011-03-28  Tristan Gingold  <gingold@adacore.com>
21374
21375         * config/ia64/ia64.c (ia64_promote_function_mode): Fix promotion
21376         when for_return is 2.
21377
21378 2011-03-28  Jeff Law  <law@redhat.com>
21379
21380         * var-tracking.c (canonicalize_values_mark): Delete unused
21381         lhs assignment.
21382         (canonicalize_values_star, set_variable_part): Likewise.
21383         (clobber_variable_part, delete_variable_part): Likewise.
21384
21385 2011-03-28  Steven Bosscher  <steven@gcc.gnu.org>
21386
21387         * gcse.c (free_gcse_mem): Free reg_set_bitmap.
21388
21389 2011-03-28  Martin Jambor  <mjambor@suse.cz>
21390
21391         * tree-inline.c (expand_call_inline): Do not check that destination
21392         node is analyzed.
21393         (optimize_inline_calls): Assert that destination node is analyzed.
21394         * cgraph.c (cgraph_add_new_function): Call cgraph_analyze_function, do
21395         not call tree_lowering_passes.
21396         * cgraph.h (cgraph_analyze_function): Declare.
21397         * cgraphunit.c (cgraph_analyze_function): Make public.
21398
21399 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
21400
21401         * config/sparc/sparc-opts.h: New.
21402         * config/sparc/sparc.c (sparc_handle_option, sparc_select,
21403         sparc_cpu, fpu_option_set, TARGET_HANDLE_OPTION): Remove.
21404         (sparc_option_override): Store processor_type enumeration rather
21405         than string in cpu_default.  Remove name and enumeration from
21406         cpu_table.  Directly default -mcpu then default -mtune from -mcpu
21407         without using sparc_select.  Use target_flags_explicit instead of
21408         fpu_option_set.
21409         * config/sparc/sparc.h (enum processor_type): Move to
21410         sparc-opts.h.
21411         (sparc_cpu, struct sparc_cpu_select, sparc_select): Remove.
21412         * config/sparc/sparc.opt (config/sparc/sparc-opts.h): New
21413         HeaderInclude entry.
21414         (mcpu=, mtune=): Use Var and Enum.
21415         (sparc_processor_type): New Enum and EnumValue entries.
21416
21417 2011-03-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21418             Iain Sandoe  <iains@gcc.gnu.org>
21419
21420         PR target/48245
21421         * config/darwin.h (LINK_COMMAND_SPEC_A): Use LINK_PLUGIN_SPEC.
21422
21423 2011-03-28  Eric Botcazou  <ebotcazou@adacore.com>
21424
21425         * tree-vectorizer.h (vect_create_data_ref_ptr): Adjust prototype.
21426         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Add GSI parameter.
21427         Insert new statements at it in lieu of STMT.
21428         (vect_setup_realignment): Adjust call to vect_create_data_ref_ptr.
21429         * tree-vect-stmts.c (vectorizable_store): Likewise.
21430         (vectorizable_load): Likewise.
21431
21432 2011-03-28  Uros Bizjak  <ubizjak@gmail.com>
21433
21434         * config/alpha/alpha.md (addtf3): Change mode of operands to TFmode.
21435         (divtf3): Ditto.
21436         (multf3): Ditto.
21437         (subtf3): Ditto.
21438
21439 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
21440
21441         * config/i386/sse.md (*avx_mov<mode>_internal): Don't assert
21442         unaligned 256bit load/store.
21443         (*avx_movu<ssemodesuffix><avxmodesuffix>): Likewise.
21444         (*avx_movdqu<avxmodesuffix>): Likewise.
21445
21446 2011-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21447
21448         PR target/48288
21449         * config/pa/predicates.md (reg_or_ior_operand): New predicate.
21450         * config/pa/pa.md (iordi3): Use new predicate in expander.
21451         (iorsi3): Likewise.
21452
21453 2011-03-27  Anatoly Sokolov  <aesok@post.ru>
21454
21455         * config/mips/mips.h (LIBCALL_VALUE, FUNCTION_VALUE,
21456         FUNCTION_VALUE_REGNO_P): Remove macros.
21457         * config/mips/mips-protos.h (mips_function_value): Remove.
21458         * config/mips/mips.c (mips_function_value): Rename to...
21459         (mips_function_value_1): ... this. Make static.  Handle receiving
21460         the function type in 'fn_decl_or_type' argument.
21461         (mips_function_value, mips_libcall_value,
21462         mips_function_value_regno_p): New function.
21463         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21464         TARGET_FUNCTION_VALUE_REGNO_P): Define.
21465
21466 2011-03-27  H.J. Lu  <hongjiu.lu@intel.com>
21467
21468         * config/i386/i386.c (flag_opts): Add -mavx256-split-unaligned-load
21469         and -mavx256-split-unaligned-store.
21470         (ix86_option_override_internal): Split 32-byte AVX unaligned
21471         load/store by default.
21472         (ix86_avx256_split_vector_move_misalign): New.
21473         (ix86_expand_vector_move_misalign): Use it.
21474
21475         * config/i386/i386.opt: Add -mavx256-split-unaligned-load and
21476         -mavx256-split-unaligned-store.
21477
21478         * config/i386/sse.md (*avx_mov<mode>_internal): Verify unaligned
21479         256bit load/store.  Generate unaligned store on misaligned memory
21480         operand.
21481         (*avx_movu<ssemodesuffix><avxmodesuffix>): Verify unaligned
21482         256bit load/store.
21483         (*avx_movdqu<avxmodesuffix>): Likewise.
21484
21485         * doc/invoke.texi: Document -mavx256-split-unaligned-load and
21486         -mavx256-split-unaligned-store.
21487
21488 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
21489
21490         PR target/38598
21491         * config/mips/mips.md (extendsidi2): Add an "l" alternative.
21492         Update commentary.
21493
21494 2011-03-27  Richard Sandiford  <rdsandiford@googlemail.com>
21495
21496         * config/mips/mips.c (mips_prepare_builtin_arg): Replace icode and
21497         opno arguments with an expand_operand.  Use create_input_operand.
21498         (mips_prepare_builtin_target): Delete.
21499         (mips_expand_builtin_insn, mips_expand_builtin_compare_1): New
21500         functions.
21501         (mips_expand_builtin_direct): Use create_output_operand and
21502         mips_expand_builtin_insn.  Update call to mips_prepare_builtin_arg.
21503         (mips_expand_builtin_movtf): Likewise.  Use mips_expand_fp_comparison.
21504         (mips_expand_builtin_compare): Use mips_expand_fp_comparison.
21505
21506 2011-03-27  Ira Rosen  <ira.rosen@linaro.org>
21507
21508         * config/arm/arm.c (arm_autovectorize_vector_sizes): New
21509         function.
21510         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
21511
21512 2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
21513
21514         * basic-block.h (fixup_abnormal_edges): Adjust prototype.
21515         * reload1.c (reload): Adjust call to fixup_abnormal_edges.  Rediscover
21516         basic blocks and call commit_edge_insertions directly.
21517         (fixup_abnormal_edges): Move from here to...
21518         * cfgrtl.c (fixup_abnormal_edges): ...here.  Only insert instructions
21519         on the edges and return whether some have actually been inserted.
21520         * reg-stack.c (convert_regs): Fix up abnormal edges before inserting
21521         compensation code.
21522
21523 2011-03-26  Andrey Belevantsev  <abel@ispras.ru>
21524
21525         PR rtl-optimization/48144
21526         * sel-sched-ir.c (merge_history_vect): Factor out from ...
21527         (merge_expr_data): ... here.
21528         (av_set_intersect): Rename to av_set_code_motion_filter.
21529         Update all callers.  Call merge_history_vect when an expression
21530         is found in both sets.
21531         * sel-sched-ir.h (av_set_code_motion_filter): Add prototype.
21532
21533 2011-03-26  Alan Modra  <amodra@gmail.com>
21534
21535         * config/rs6000/predicates.md (word_offset_memref_op): Handle
21536         cmodel medium addresses.
21537         * config/rs6000/rs6000.c (rs6000_secondary_reload): Handle misaligned
21538         64-bit gpr loads and stores.
21539         (rs6000_secondary_reload_ppc64): New function.
21540         * config/rs6000/rs6000-protos.h: Declare it.
21541         * config/rs6000/rs6000.md (reload_di_store, reload_di_load): New.
21542
21543 2011-03-26  Alan Modra  <amodra@gmail.com>
21544
21545         PR target/47487
21546         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Support
21547         GNU Go in traceback table.
21548
21549 2011-03-25  Richard Henderson  <rth@redhat.com>
21550
21551         * expr.c (emit_block_move_via_movmem): Only use 6 operand variant
21552         if there are exactly 6 operands.
21553         (set_storage_via_setmem): Similarly.
21554
21555 2011-03-25  Kai Tietz  <ktietz@redhat.com>
21556
21557         * collect2.c (write_c_file_stat): Handle backslash
21558         as right-hand directory separator.
21559         (resolve_lib_name): Use IS_DIR_SEPARATOR instead of
21560         checking just for slash.
21561         * coverage.c (coverage_init): Use IS_ABSOLUTE_PATH
21562         instead of checking for trailing slash.
21563         * gcc.c (record_temp_file): Use filename_cmp instead
21564         of strcmp.
21565         (do_spec_1): Likewise.
21566         (replace_outfile_spec_function): Likewise.
21567         (is_directory): Use filename_ncmp instead of strncmp.
21568         (print_multilib_info): Likewise.
21569         * gcov.c (find_source): Use filename_cmp instead
21570         instead of strcmp.
21571         (make_gcov_file_name): Fix order of slash/backslash
21572         checks.
21573         * incpath.c (DIRS_EQ): Use filename_cmp instead of strcmp.
21574         (add_standard_paths): Likewise.
21575         * mips-tfile.c (saber_stop): Handle backslash.
21576         * prefix.c (update_path): Use filename_ncmp instead of
21577         strncmp.
21578         * profile.c (output_location): Use filename_cmp instead
21579         of strcmp.
21580         * read-md.c (handle_toplevel_file): Handle backslash.
21581         * tlink.c (frob_extension):  Likewise.
21582         * tree-cfg.c (same_line_p): Use filename_cmp instead of
21583         strcmp.
21584         * tree-dump.c (dequeue_and_dump): Handle backslash.
21585         * tree.c (get_file_function_name): Likewise.
21586         * gengtype.c (read_input_list): Likewise.
21587         (get_file_realbasename): Likewise.
21588         (get_output_file_with_visibility): Use filename_cmp
21589         instead of strcmp.
21590
21591 2011-03-25  Richard Sandiford  <richard.sandiford@linaro.org>
21592
21593         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Restrict FPA_REGS
21594         case to VFPv1.
21595
21596 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
21597
21598         * fold-const.c (expr_location_or): New function.
21599         (fold_truth_not_expr): Call it.
21600
21601 2011-03-25  Jeff Law  <law@redhat.com>
21602
21603         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add missing
21604         va_end.
21605         * c-family/c-common.c (def_fn_type): Likewise.
21606         * ada/gcc-interface/utils.c (def_fn_type): Likewise.
21607         * emit-rtl.c (gen_rtvec): Likewise.
21608         * lto/lto-lang.c (def_fn_type): Likewise.
21609
21610 2011-03-25  Richard Guenther  <rguenther@suse.de>
21611
21612         * tree-ssa-copy.c (stmt_may_generate_copy): Copies from constants
21613         also generate copies.
21614         (fini_copy_prop): Handle constant values properly.
21615
21616 2011-03-25  Jakub Jelinek  <jakub@redhat.com>
21617
21618         * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Compare
21619         mode size instead of bitsize with DWARF2_ADDR_SIZE.
21620         (hash_loc_operands, compare_loc_operands): Handle
21621         DW_OP_GNU_entry_value.
21622
21623 2011-03-25  Kai Tietz  <ktietz@redhat.com>
21624
21625         * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Adjust comment.
21626         (STACK_BOUNDARY): Check for bit-ness in case of MS_ABI.
21627         * config/i386/i386.c (ix86_conditional_register_usage): Adjust
21628         comment and use macro TARGET_64BIT_MS_ABI instead.
21629         (ix86_keep_aggregate_return_pointer): Optimize for 64-bit case
21630         and change default behavior for 32-bit MS_ABI.
21631         (ix86_reg_parm_stack_space): Check additionally for bit-ness.
21632         (ix86_function_type_abi): Allow check for ms_abi/sysv_abi for
21633         32-bit, too.
21634         (ix86_cfun_abi): Likewise.
21635         (ix86_maybe_switch_abi): Adjust comment.
21636         (init_cumulative_args): Check for bit-ness in MS_ABI case.
21637         (ix86_gimplify_va_arg): Check just for not TARGET_64BIT_MS_ABI
21638         instead of checking for SYSV_ABI.
21639         (ix86_nsaved_sseregs): Likewise.
21640         (ix86_compute_frame_layout): Set only for 64-bit MS_ABI alignment
21641         to 16 bytes.
21642         (ix86_expand_call): Use TARGET_64BIT_MS_ABI macro.
21643         * config/i386.h (TARGET_32BIT_MS_ABI): New macro.
21644         (ACCUMULATE_OUTGOING_ARGS): Check explicit for 64-bit MS_ABI.
21645         (OUTGOING_REG_PARM_STACK_SPACE): Likewise.
21646         * config/mingw32.h (DEFAULT_ABI): Change default always to MS_ABI.
21647
21648 2011-03-25  Richard Guenther  <rguenther@suse.de>
21649
21650         * tree-flow.h (verify_stmts): Rename to verify_gimple_in_cfg.
21651         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
21652         (verify_gimple): Remove.
21653         * tree-cfg.c (verify_gimple_call): Merge verification
21654         from verify_stmts.
21655         (verify_gimple_phi): Merge verification from verify_stmts.
21656         (verify_gimple_label): New function.
21657         (verify_types_in_gimple_seq_2): Rename to verify_gimple_in_seq_2.
21658         (verify_types_in_gimple_seq): Rename to verify_gimple_in_seq.
21659         (verify_stmt): Merge into verify_gimple_in_cfg and callees.
21660         (verify_stmts): Rename to verify_gimple_in_cfg.
21661         (verify_gimple_in_cfg): New function.
21662         * passes.c (execute_function_todo): Call verify_gimple_in_cfg.
21663         * tree-ssa.c (verify_ssa): Likewise.
21664         * gimplify.c (gimplify_body): Call verify_gimple_in_seq.
21665
21666 2011-03-25  Richard Guenther  <rguenther@suse.de>
21667
21668         * passes.c (init_optimization_passes): Add FRE pass after
21669         early SRA.
21670
21671 2011-03-25  Bernd Schmidt  <bernds@codesourcery.com>
21672             Andrew Stubbs  <ams@codesourcery.com>
21673
21674         * config/arm/vfp.md (arm_movdi_vfp): Enable only when not tuning
21675         for Cortex-A8.
21676         (arm_movdi_vfp_cortexa8): New pattern.
21677         * config/arm/neon.md (adddi3_neon, subdi3_neon, anddi3_neon,
21678         iordi3_neon, xordi3_neon): Add alternatives to discourage Neon
21679         instructions when tuning for Cortex-A8.  Set attribute "arch".
21680         * config/arm/arm.md: Move include arm-tune.md up a bit.
21681         (define_attr "arch"): Add "onlya8" and "nota8" values.
21682         (define_attr "arch_enabled"): Handle "onlya8" and "nota8".
21683
21684 2011-03-25  Nathan Froyd  <froydnj@codesourcery.com>
21685
21686         PR bootstrap/48282
21687         Revert:
21688         2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
21689
21690         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
21691         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
21692         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
21693         * passes.c (init_optimization_passes): Move
21694         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
21695
21696 2011-03-25  Kai Tietz  <ktietz@redhat.com>
21697
21698         * c-typeck.c (comptypes_internal): Replace target
21699         hook call of comp_type_attributes by version in tree.c file.
21700         * gimple.c (gimple_types_compatible_p_1): Likewise.
21701         * tree-ssa.c (useless_type_conversion_p): Likewise.
21702         * tree.c (build_type_attribute_qual_variant): Likewise.
21703         (attribute_value_equal): New static helper function.
21704         (comp_type_attributes): New function.
21705         (merge_attributes): Use attribute_value_equal for comparison.
21706         (attribute_list_contained): Likewise.
21707         * tree.h (comp_type_attributes): New prototype.
21708
21709 2011-03-25  Richard Guenther  <rguenther@suse.de>
21710
21711         * tree-cfg.c (verify_gimple_assign_unary): Drop special casing
21712         of complex types at -O0.
21713         (verify_gimple_assign_binary): Likewise.
21714         (verify_gimple_assign_ternary): Likewise.
21715
21716 2011-03-24  Mark Wielaard  <mjw@redhat.com>
21717
21718         * dwarf2out.c (size_of_die): Modify comment to say DW_FORM_ref_sig8.
21719         (value_format): Use DW_FORM_ref_sig8, not DW_FORM_sig8.
21720
21721 2011-03-24  Mark Wielaard  <mjw@redhat.com>
21722
21723         PR debug/48041
21724         * dwarf2out.c (output_abbrev_section): Only write table when
21725         abbrev_die_table_in_use > 1.
21726
21727 2011-02-24  Richard Henderson  <rth@redhat.com>
21728
21729         * config/alpha/alpha.c (alpha_expand_unaligned_load): Use extql.
21730         (alpha_expand_unaligned_store): Use mskwl, mskll, mskql.
21731         (alpha_expand_unaligned_load_words): Use extql.
21732         (alpha_expand_unaligned_store_words): Use insqh, mskqh, mskql.
21733         (emit_insxl): Handle all modes for consistency.
21734
21735 2011-02-24  Richard Henderson  <rth@redhat.com>
21736
21737         * config/alpha/alpha.c (get_aligned_mem): Don't test WORDS_BIG_ENDIAN.
21738         (alpha_expand_unaligned_load): Likewise.
21739         (alpha_expand_unaligned_store): Likewise.
21740         (alpha_expand_unaligned_load_words): Likewise.
21741         (alpha_expand_unaligned_store_words): Likewise.
21742         (emit_insxl, alpha_split_compare_and_swap_12): Likewise.
21743         (alpha_split_lock_test_and_set_12): Likewise.
21744         (print_operand, alpha_fold_builtin_extxx): Likewise.
21745         (alpha_fold_builtin_insxx, alpha_fold_builtin_mskxx): Likewise.
21746         * config/alpha/alpha.md (bswapsi2, insv, extv, extzv): Likewise.
21747         (builtin_extwh, builtin_extlh, builtin_extql): Likewise.
21748         (unaligned_extendqidi_be, unaligned_extendhidi_be, extxl_be): Remove.
21749         (*extxl_1_be, *extql_2_be, extqh_be, extlh_be, extwh_be): Remove.
21750         (insbl_be, inswl_be, insll_be, insql_be, mskxl_be): Remove.
21751         (unaligned_loadqi_be, unaligned_loadhi_be): Remove.
21752         (unaligned_storeqi_be, unaligned_storehi_be): Remove.
21753         (extbl): Rename from builtin_extbl; don't test WORDS_BIG_ENDIAN.
21754         (extwl, extll, extql): Similarly.
21755         (inswh, inslh, insqh): Similarly.
21756         (mskbl, mskwl, mskll, mskql): Similarly.
21757         (mskwh, msklh, mskqh): Similarly.
21758
21759 2011-02-24  Richard Henderson  <rth@redhat.com>
21760
21761         * config/alpha/alpha.md (attribute isa): Add er, ner.
21762         (attribute enabled): Handle them.
21763         (*movdi): Merge *movdi_{er_nofix,nofix,er_fix,fix}.
21764
21765 2011-02-24  Richard Henderson  <rth@redhat.com>
21766
21767         * config/alpha/alpha.md (attribute isa): Add vms.
21768         (attribute enabled): Handle it.
21769         (*movsf): Merge *movsf_{nofix,fix,nofp}.
21770         (*movdf): Merge *movdf_{nofix,fix,nofp}.
21771         (*movtf): Rename from *movtf_internal for consistency.
21772         (*movsi): Merge with *movsi_nt_vms.
21773         (*movhi): Merge *movhi_nobwx, *movhi_bwx.
21774         (*movqi): Merge *movqi_nobwx, *movqi_bwx.
21775         (*mov<VEC>): Merge *mov<VEC>_fix, *mov<VEC>_nofix.
21776         * config/alpha/constraint.md ("f"): Use NO_REGS when fpu is disabled.
21777
21778 2011-02-24  Richard Henderson  <rth@redhat.com>
21779
21780         * config/alpha/alpha.md (extendqihi2): Implement for BWX only.
21781         (extendqisi2, extendhisi2): Likewise.
21782         (extendqidi2): Simplify BWX/non-BWX expansions.
21783         (extendhidi2): Similarly.
21784
21785 2011-02-24  Richard Henderson  <rth@redhat.com>
21786
21787         * config/alpha/alpha.md (attribute isa): New.
21788         (attribute enabled): New.
21789         (zero_extendqihi2): Merge from *zero_extendqihi2_{bwx,nobwx}.
21790         (zero_extendqisi2, zero_extendqidi2): Similarly.
21791         (zero_extendhisi2, zero_extendhidi2): Similarly.
21792         * config/alpha/predicates.md (reg_or_bwx_memory_operand): New.
21793
21794 2011-02-24  Richard Henderson  <rth@redhat.com>
21795
21796         * config/alpha/predicates.md (input_operand): Revert last change;
21797         update comment to mention 32-bit VMS rather than Windows.
21798
21799 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
21800
21801         * function.c (instantiate_virtual_regs): Use FOR_EACH_BB and
21802         FOR_BB_INSNS_SAFE to iterate through insns.  Re-indent.
21803         (pass_instantiate_virtual_regs): Require PROP_cfglayout.
21804         * passes.c (init_optimization_passes): Move
21805         pass_instantiate_virtual_regs after pass_into_cfg_layout_mode.
21806
21807 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
21808
21809         * dojump.c (do_jump_by_parts_greater_rtx): Optimize in specific cases.
21810
21811 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
21812
21813         * config/i386/i386.md (ix86_print_operand): Output DFmode const_double
21814         correctly.
21815
21816 2011-03-24  Jakub Jelinek  <jakub@redhat.com>
21817
21818         PR debug/48204
21819         * simplify-rtx.c (simplify_const_unary_operation): Call
21820         real_convert when changing mode class with FLOAT_EXTEND.
21821
21822 2011-03-24  Nick Clifton  <nickc@redhat.com>
21823
21824         * config/rx/rx.h (LABEL_ALIGN_FOR_BARRIER): Define.
21825         (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
21826         * config/rx/rx.c (rx_option_override): Set align_jumps,
21827         align_loops and align_labels if not set by the user.
21828         (rx_align_for_label): New function.
21829         (rx_max_skip_for_label): New function.
21830         (TARGET_ASM_JUMP_ALIGN_MAX_SKIP): Define.
21831         (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define.
21832         (TARGET_ASM_LABEL_ALIGN_MAX_SKIP): Define.
21833         (TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Define.
21834         * config/rx/rx-protos.h (rx_align_for_label): Add prototype.
21835
21836 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
21837
21838         PR rtl-optimization/48263
21839         * optabs.c (expand_binop_directly): Reinstate convert_modes code
21840         and original commutative_p handling.  Use maybe_gen_insn.
21841
21842 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21843
21844         * reload.c (find_reloads_subreg_address): Add address_reloaded
21845         parameter and return true there if the full address has been
21846         reloaded.
21847         (find_reloads_toplev): Pass address_reloaded flag.
21848         (find_reloads_address_1): Don't use address_reloaded parameter.
21849
21850 2011-03-24  Jeff Law  <law@redhat.com>
21851
21852         * tree-ssa-live.c (remove_unused_scope_block_p): Remove set but
21853         unused variable "ann".
21854         (remove_unused_locals): Likewise.
21855
21856         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove useless
21857         statement.
21858
21859         * cfglayout.c (fixup_reorder_chain): Do not dereference E_FALL
21860         after it is freed.
21861
21862 2011-03-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
21863
21864         * config/s390/s390.c (s390_preferred_reload_class): Return NO_REGS
21865         for invalid symbolic addresses.
21866         (s390_secondary_reload): Don't use s390_check_symref_alignment for
21867         larl operands.
21868
21869 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
21870
21871         * fold-const.c (fold_ternary_loc): Preserve the location (if any) of
21872         the argument in calls to fold_truth_not_expr.
21873
21874 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
21875
21876         * tree.c (record_node_allocation_statistics): New function.
21877         (make_node_stat, copy_node_stat, build_string): Call it.
21878         (make_tree_binfo_stat, make_tree_vec_stat, tree_cons_stat): Likewise.
21879         (build1_stat, build_omp_clause): Likewise.
21880
21881 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
21882
21883         * builtins.c (expand_movstr): Fix endp == 1 adjustment after
21884         last commit.
21885
21886 2011-03-24  Richard Guenther  <rguenther@suse.de>
21887
21888         PR tree-optimization/48271
21889         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only cleanup
21890         blocks that still exist.
21891
21892 2011-03-24  Richard Guenther  <rguenther@suse.de>
21893
21894         PR tree-optimization/48270
21895         * tree-ssa-phiopt.c (cond_if_else_store_replacement): Do
21896         not free datarefs before ddrs.
21897
21898 2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
21899
21900         * tree-sra.c (build_ref_for_offset): Strip useless type conversions
21901         from the address built for a reference with variable offset.
21902
21903 2011-03-24  Uros Bizjak  <ubizjak@gmail.com>
21904
21905         PR target/48237
21906         * config/i386/i386.md (*movdf_internal_rex64): Do not split
21907         alternatives that can be handled with movq or movabsq insn.
21908         (*movdf_internal): Disable for !TARGET_64BIT.
21909         (*movdf_internal_nointeger): Ditto.
21910         * config/i386/i386.c (ix86_print_operand): Handle DFmode immediates.
21911
21912 2011-03-24  Nathan Froyd  <froydnj@codesourcery.com>
21913
21914         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
21915         (FUNCTION_ARG_ADVANCE): Likewise.
21916         * tm.texi.in: Change references to them to hook references.
21917         * tm.texi: Regenerate.
21918         * targhooks.c (default_function_arg): Eliminate check for target macro.
21919         (default_function_incoming_arg): Likewise.
21920         (default_function_arg_advance): Likewise.
21921         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
21922         (function_arg_advance): Likewise.
21923         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
21924
21925 2011-03-24  Richard Guenther  <rguenther@suse.de>
21926
21927         PR middle-end/48269
21928         * tree-object-size.c (addr_object_size): Do not double-account
21929         for MEM_REF offsets.
21930
21931 2011-03-24  Diego Novillo  <dnovillo@google.com>
21932
21933         * lto-opts.c (input_data_block): Move to lto-streamer-in.c.
21934         * lto-streamer-in.c (input_string_internal): Add clarifying comments.
21935         (lto_input_data_block): Move from lto-opts.c.  Make extern.
21936         Update all users.
21937         (lto_input_string): Rename from input_string.  Make extern.
21938         Update all users.
21939         * lto-streamer-out.c (lto_output_string_with_length): Rename from
21940         output_string_with_length.
21941         Output 0 to indicate a non-NULL string.  Update all callers to
21942         not emit 0.
21943         (lto_output_string): Rename from output_string.  Make extern.
21944         Update all users.
21945         (lto_output_decl_state_streams): Make extern.
21946         (lto_output_decl_state_refs): Make extern.
21947         * lto-streamer.h (lto_input_string): Declare.
21948         (lto_input_data_block): Declare.
21949         (lto_output_string): Declare.
21950         (lto_output_string_with_length): Declare.
21951         (lto_output_decl_state_streams): Declare.
21952         (lto_output_decl_state_refs): Declare.
21953
21954 2011-03-24  Richard Guenther  <rguenther@suse.de>
21955
21956         PR tree-optimization/46562
21957         * tree.c (build_invariant_address): New function.
21958         * tree.h (build_invariant_address): Declare.
21959         * tree-dfa.c (get_addr_base_and_unit_offset): Wrap around
21960         a renamed function moved ...
21961         * tree-flow-inline.h (get_addr_base_and_unit_offset_1): ... here.
21962         Take valueization callback parameter.
21963         * tree-flow.h (gimple_fold_stmt_to_constant): Declare.
21964         * gimple-fold.h: New file.
21965         * tree-ssa-ccp.c (ccp_fold): Use gimple_fold_stmt_to_constant_1.
21966         (ccp_fold, fold_const_aggregate_ref,
21967         fold_ctor_reference, fold_nonarray_ctor_reference,
21968         fold_array_ctor_reference, fold_string_cst_ctor_reference,
21969         get_base_constructor): Move ...
21970         * gimple-fold.c: ... here.
21971         (gimple_fold_stmt_to_constant_1): New function
21972         split out from ccp_fold.  Take a valueization callback parameter.
21973         Valueize all operands.
21974         (gimple_fold_stmt_to_constant): New wrapper function.
21975         (fold_const_aggregate_ref_1): New function split out from
21976         fold_const_aggregate_ref.  Take a valueization callback parameter.
21977         (fold_const_aggregate_ref): Wrap fold_const_aggregate_ref_1.
21978         * tree-ssa-sccvn.c (simplify_binary_expression): Simplify
21979         invariant POINTER_PLUS_EXPRs to invariant form.
21980         (vn_valueize): New function.
21981         (try_to_simplify): Simplify by using gimple_fold_stmt_to_constant.
21982         * tree-vrp.c (vrp_valueize): New function.
21983         (vrp_visit_assignment_or_call): Use gimple_fold_stmt_to_constant
21984         to fold statements to constants.
21985         * tree-ssa-pre.c (eliminate): Properly guard propagation of
21986         function declarations.
21987         * Makefile.in (tree-ssa-sccvn.o, tree-vrp.o, gimple-fold.o,
21988         tree-ssa-ccp.o): Add gimple-fold.h dependencies.
21989
21990 2011-03-24  Richard Sandiford  <richard.sandiford@linaro.org>
21991
21992         * config/h8300/predicates.md (jump_address_operand): Fix register
21993         mode check.
21994
21995 2011-03-24  Ira Rosen  <ira.rosen@linaro.org>
21996
21997         * doc/invoke.texi (max-stores-to-sink): Document.
21998         * params.h (MAX_STORES_TO_SINK): Define.
21999         * opts.c (finish_options): Set MAX_STORES_TO_SINK to 0
22000         if either vectorization or if-conversion is disabled.
22001         * tree-data-ref.c (dr_equal_offsets_p1): Moved and renamed from
22002         tree-vect-data-refs.c vect_equal_offsets.
22003         (dr_equal_offsets_p): New function.
22004         (find_data_references_in_bb): Remove static.
22005         * tree-data-ref.h (find_data_references_in_bb): Declare.
22006         (dr_equal_offsets_p): Likewise.
22007         * tree-vect-data-refs.c (vect_equal_offsets): Move to tree-data-ref.c.
22008         (vect_drs_dependent_in_basic_block): Update calls to
22009         vect_equal_offsets.
22010         (vect_check_interleaving): Likewise.
22011         * tree-ssa-phiopt.c: Include cfgloop.h and tree-data-ref.h.
22012         (cond_if_else_store_replacement): Rename to...
22013         (cond_if_else_store_replacement_1): ... this.  Change arguments and
22014         documentation.
22015         (cond_if_else_store_replacement): New function.
22016         * Makefile.in (tree-ssa-phiopt.o): Adjust dependencies.
22017         * params.def (PARAM_MAX_STORES_TO_SINK): Define.
22018
22019 2011-03-23  Chung-Lin Tang  <cltang@codesourcery.com>
22020
22021         PR target/46934
22022         * config/arm/arm.md (casesi): Use the gen_int_mode() function
22023         to subtract lower bound instead of GEN_INT().
22024
22025 2011-03-23  Jonathan Wakely  <jwakely.gcc@gmail.com>
22026
22027         PR other/48179
22028         PR other/48221
22029         PR other/48234
22030         * doc/extend.texi (Alignment): Move section to match order in TOC.
22031         * doc/invoke.texi (i386 and x86-64 Windows Options): Likewise.
22032         (Warning Options): Adjust -Wno-cpp summary and remove stray backslash.
22033
22034 2011-03-23  Jeff Law  <law@redhat.com>
22035
22036         * cfg.c (redirect_edge_succ_nodup): Duplicate the varm map
22037         before removing the edge.
22038
22039         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Do not use E after
22040         it may have been freed by redirect_branch_edge or
22041         redirect_edge_succ_nodup.
22042
22043 2011-03-23  Richard Guenther  <rguenther@suse.de>
22044
22045         * tree-stdarg.c (va_list_counter_bump): Handle bumps via MEM_REF.
22046         (check_va_list_escapes): Likewise.
22047         (check_all_va_list_escapes): Likewise.
22048
22049 2011-03-23  Richard Guenther  <rguenther@suse.de>
22050
22051         * Makefile.in (IPA_TYPE_ESCAPE_H): Remove.
22052         (OBJS-archive): Remove ipa-struct-reorg.o and ipa-type-escape.o.
22053         (tree-ssa-alias.o): Do not depend on IPA_TYPE_ESCAPE_H.
22054         (alias.o): Likewise.
22055         (ipa-type-escape.o): Remove.
22056         (ipa-struct-reorg.o): Likewise.
22057         (GTFILES): Remove ipa-struct-reorg.c.
22058         * alias.c: Do not include ipa-type-escape.h.
22059         * tree-ssa-alias.c: Likewise.
22060         * common.opt (fipa-struct-reorg): Preserve for backward compatibility.
22061         * opts.c (finish_options): Do not reset flag_ipa_struct_reorg.
22062         * passes.c (init_optimization_passes): Remove ipa-struct-reorg
22063         and ipa-type-escape passes.
22064         * tree-pass.h (pass_ipa_type_escape): Remove.
22065         (pass_ipa_struct_reorg): Likewise.
22066         * ipa-struct-reorg.h: Remove.
22067         * ipa-struct-reorg.c: Likewise.
22068         * ipa-type-escape.h: Likewise.
22069         * ipa-type-escape.c: Likewise.
22070         * doc/invoke.texi (-fipa-struct-reorg): Remove.
22071         (--param struct-reorg-cold-struct-ratio): Likewise.
22072         * params.def (PARAM_STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
22073         * params.h (STRUCT_REORG_COLD_STRUCT_RATIO): Likewise.
22074         * timevar.def (TV_IPA_TYPE_ESCAPE): Likewise.
22075
22076 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22077
22078         * config/s390/2084.md: Enable all insn reservations also for z9_ec
22079         cpu attribute value.
22080         * config/s390/s390-opts.h (enum s390_arch_option): Remove.
22081         (enum processor_type): Add PROCESSOR_2094_Z9_EC.
22082         * config/s390/s390.c (processor_flags_table): New constant array.
22083         (s390_handle_arch_option): Remove.
22084         (s390_handle_option): Remove s390_handle_arch_option invocations
22085         and OPT_mwarn_framesize_ handling.
22086         (s390_option_override): Remove s390_handle_arch_option invocation.
22087         (s390_emit_prologue): Remove use of HOST_WIDE_INT_PRINT_DEC in
22088         warnings.
22089         * config/s390/s390.md (cpu attribute): Add z9_ec value.
22090         * config/s390/s390.opt (s390_tune, s390_arch)
22091         (march=): Replace s390_arch_option enum and values with
22092         processor_type.  Set variable name to s390_arch.  Set
22093         initialization value.
22094         (mtune=): Replace s390_arch_option with processor_type.  Set
22095         variable name to s390_tune.  Set initialization value.
22096
22097 2011-03-23  Julian Brown  <julian@codesourcery.com>
22098
22099         * expr.c (expand_expr_real_1): Only use BLKmode for volatile
22100         accesses which are not naturally aligned.
22101
22102 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
22103
22104         PR target/47553
22105         * config/arm/predicates.md (neon_lane_number): Accept 0..15.
22106
22107 2011-03-23  Richard Sandiford  <richard.sandiford@linaro.org>
22108
22109         * optabs.h (emit_unop_insn, maybe_emit_unop_insn): Change insn code
22110         parameter from "int" to "enum insn_code".
22111         (expand_operand_type): New enum.
22112         (expand_operand): New structure.
22113         (create_expand_operand): New function.
22114         (create_fixed_operand, create_output_operand): Likewise
22115         (create_input_operand, create_convert_operand_to): Likewise.
22116         (create_convert_operand_from, create_address_operand): Likewise.
22117         (create_integer_operand): Likewise.
22118         (create_convert_operand_from_type, maybe_legitimize_operands): Declare.
22119         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
22120         (expand_insn, expand_jump_insn): Likewise.
22121         * builtins.c (expand_builtin_prefetch): Use the new interfaces.
22122         (expand_builtin_interclass_mathfn, expand_builtin_strlen): Likewise.
22123         (expand_movstr, expand_builtin___clear_cache): Likewise.
22124         (expand_builtin_lock_release): Likewise.
22125         * explow.c (allocate_dynamic_stack_space): Likewise.
22126         (probe_stack_range): Likewise.  Allow check_stack to FAIL,
22127         and use the default handling in that case.
22128         * expmed.c (check_predicate_volatile_ok): Delete.
22129         (store_bit_field_1, extract_bit_field_1): Use the new interfaces.
22130         (emit_cstore): Likewise.
22131         * expr.c (emit_block_move_via_movmem): Likewise.
22132         (set_storage_via_setmem, expand_assignment): Likewise.
22133         (emit_storent_insn, try_casesi): Likewise.
22134         (emit_single_push_insn): Likewise.  Allow the expansion to fail.
22135         * optabs.c (expand_widen_pattern_expr, expand_ternary_op): Likewise.
22136         (expand_vec_shift_expr, expand_binop_directly): Likewise.
22137         (expand_twoval_unop, expand_twoval_binop): Likewise.
22138         (expand_unop_direct, emit_indirect_jump): Likewise.
22139         (emit_conditional_move, vector_compare_rtx): Likewise.
22140         (expand_vec_cond_expr, expand_val_compare_and_swap_1): Likewise.
22141         (expand_sync_operation, expand_sync_fetch_operation): Likewise.
22142         (expand_sync_lock_test_and_set): Likewise.
22143         (maybe_emit_unop_insn): Likewise.  Change icode to an insn_code.
22144         (emit_unop_insn): Likewise.
22145         (expand_copysign_absneg): Change icode to an insn_code.
22146         (create_convert_operand_from_type): New function.
22147         (maybe_legitimize_operand, maybe_legitimize_operands): Likewise.
22148         (maybe_gen_insn, maybe_expand_insn, maybe_expand_jump_insn): Likewise.
22149         (expand_insn, expand_jump_insn): Likewise.
22150         * config/i386/i386.md (setmem<mode>): Use nonmemory_operand rather
22151         than const_int_operand for operand 2.
22152
22153 2011-03-23  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22154
22155         * dwarf2out.c (const_ok_for_output_1): Print the unspec enum name
22156         if possible.
22157
22158 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
22159
22160         * emit-rtl.c (emit_pattern_before_noloc): New function.
22161         (emit_insn_before_noloc, emit_jump_insn_before_noloc): Call it.
22162         (emit_call_insn_before_noloc, emit_debug_insn_before_noloc): Likewise.
22163         (emit_pattern_after_noloc): New function.
22164         (emit_insn_after_noloc, emit_jump_insn_after_noloc): Call it.
22165         (emit_call_insn_after_noloc, emit_debug_insn_after_noloc): Likewise.
22166
22167 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
22168
22169         * libgcc2.c (__lshrdi3, __ashldi3, __ashrdi3): Use W_TYPE_SIZE.
22170         (__ffsDI2): Likewise.
22171
22172 2011-03-22  Richard Henderson  <rth@redhat.com>
22173
22174         * config/alpha/alpha.c (direct_return): Use TARGET_ABI_OSF instead
22175         of !TARGET_ABI_OPEN_VMS.
22176         (alpha_trampoline_init, alpha_start_function): Likewise.
22177         (alpha_expand_epilogue, alpha_file_start): Likewise.
22178         * config/alpha/alpha.md (divsi3, modsi3): Likewise.
22179         (udivsi3, umodsi3, divdi3, moddi3, udivdi3, umoddi3): Likewise.
22180         (*divmodsi_internal_er, *divmodsi_internal_er_1): Likewise.
22181         (*divmodsi_internal, *divmoddi_internal_er): Likewise.
22182         (*divmoddi_internal_er_1, *divmoddi_internal): Likewise.
22183
22184 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22185
22186         * config/s390/s390-opts.h: New.
22187         * config/s390/s390.c (s390_tune, s390_tune_flags, s390_arch,
22188         s390_arch_flags, s390_warn_framesize, s390_stack_size,
22189         s390_stack_guard): Remove.
22190         (s390_handle_arch_option): Return void.  Take enum
22191         s390_arch_option value instead of string and searching array.
22192         (s390_handle_option): Don't assert that global structures are in
22193         use.  Access variables via opts pointer.  Use error_at.  Don't use
22194         sscanf for -mstack-guard= or -mstack-size=.  Update call to
22195         s390_handle_arch_option.
22196         (s390_option_override): Update call to s390_handle_arch_option.
22197         (s390_emit_prologue): Use %d format for s390_stack_size in
22198         diagnostic.  Use %wd for HOST_WIDE_INT.
22199         * config/s390/s390.h (enum processor_type): Move to s390-opts.h.
22200         (s390_tune, s390_tune_flags, s390_arch, s390_arch_flags): Remove.
22201         * config/s390/s390.opt (config/s390/s390-opts.h): New
22202         HeaderInclude entry.
22203         (s390_arch_string, s390_tune, s390_tune_flags, s390_arch,
22204         s390_arch_flags, s390_warn_framesize): New Variable entries.
22205         (s390_arch_option): New Enum and EnumValue entries.
22206         (march=): Use Enum instead of Var.
22207         (mstack-guard=, mstack-size=): Use UInteger and Var.
22208         (mtune=): Use Enum.
22209
22210 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22211
22212         * config/score/score.c (score_handle_option): Don't assert that
22213         global structures are in use.  Access target_flags via opts
22214         pointer.  Use value of -march= option to determine target_flags
22215         settings.
22216         * config/score/score.opt (march=): Use Enum.
22217         (score_arch): New Enum and EnumValue entries.
22218
22219 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22220
22221         * config/mep/mep.c (option_mtiny_specified): Remove.
22222         (mep_option_override): Move register handling for -mivc2 from
22223         mep_handle_option.  Use global_options_set.x_mep_tiny_cutoff
22224         instead of option_mtiny_specified.
22225         (mep_handle_option): Access target_flags via opts pointer.  Don't
22226         assert that global structures are in use.  Defer part of -mivc2
22227         handling and move it to mep_option_override.
22228         * config/mep/mep.opt (IVC2): New Mask entry.
22229         (mivc2): Use Var and Defer instead of Mask.
22230
22231 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22232
22233         * config/v850/v850-opts.h: New.
22234         * config/v850/v850.c (small_memory): Replace with
22235         small_memory_physical_max array.  Make that array static const.
22236         (v850_handle_memory_option): Take integer value of argument.  Take
22237         gcc_options pointer, option text and location.  Return void.
22238         Update for changes to small memory structures.
22239         (v850_handle_option): Access target_flags via opts pointer.  Don't
22240         assert that global structures are in use.  Update calls to
22241         v850_handle_memory_option.
22242         (v850_encode_data_area): Update references to small memory settings.
22243         * config/v850/v850.h (struct small_memory_info, small_memory): Remove.
22244         (enum small_memory_type): Move to v850-opts.h.
22245         * config/v850/v850.opt (config/v850/v850-opts.h): New
22246         HeaderInclude entry.
22247         (small_memory_max): New Variable entry.
22248         (msda): Replace by pair of options msda= and msda-.  Use UInteger.
22249         (mtda, mzda): Likewise.
22250
22251 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22252
22253         * config/sh/sh.c (sh_handle_option): Access target_flags via opts
22254         pointer.  Don't assert that global structures are in use.
22255
22256 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22257
22258         * config/pdp11/pdp11.c (pdp11_handle_option): Access target_flags
22259         via opts pointer.  Don't assert that global structures are in use.
22260
22261 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22262
22263         * config/pa/pa-hpux.opt (flag_pa_unix): New Variable entry.
22264         (munix=93): Use Var.
22265         * config/pa/pa-hpux1010.opt (munix=95): Use Var.
22266         * config/pa/pa-hpux1111.opt (munix=98): Use Var.
22267         * config/pa/pa-opts.h: New.
22268         * config/pa/pa.c (pa_cpu, flag_pa_unix): Remove.
22269         (pa_handle_option): Don't assert that global structures are in
22270         use.  Access target_flags via opts pointer.  Don't handle
22271         OPT_mschedule_, OPT_mfixed_range_, OPT_munix_93, OPT_munix_95 or
22272         OPT_munix_98 here.
22273         (pa_option_override): Handle deferred OPT_mfixed_range_.
22274
22275 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22276
22277         * config/mn10300/mn10300-opts.h: New.
22278         * config/mn10300/mn10300.c (mn10300_processor,
22279         mn10300_tune_string): Remove.
22280         (mn10300_handle_option): Don't assert that global structures are
22281         in use.  Access mn10300_processor via opts pointer.  Don't handle
22282         OPT_mtune_ here.
22283         * config/mn10300/mn10300.h (enum processor_type): Move to
22284         mn10300-opts.h.
22285         (mn10300_processor): Remove.
22286         * config/mn10300/mn10300.opt (config/mn10300/mn10300-opts.h): New
22287         HeaderInclude entry.
22288         (mn10300_processor): New Variable entry.
22289         (mtune=): Use Var.
22290
22291 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22292
22293         * config/microblaze/microblaze.c: Don't include opts.h.
22294         (microblaze_handle_option, TARGET_HANDLE_OPTION): Remove.
22295         * config/microblaze/microblaze.opt (mxl-stack-check): Use Warn.
22296         (mno-clearbss): Use Var and Warn.
22297
22298 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22299
22300         * config/m32r/m32r-opts.h: New.
22301         * config/m32r/m32r.c (m32r_model, m32r_sdata): Remove.
22302         (m32r_handle_option): Don't assert that global structures are in
22303         use.  Access target_flags and m32r_cache_flush_func via opts
22304         pointer.  Don't handle OPT_mmodel_, OPT_msdata_ or
22305         OPT_mno_flush_trap here.
22306         * config/m32r/m32r.h (Code Models, Small Data Area): Replace by
22307         include of m32r-opts.h.
22308         * config/m32r/m32r.opt (config/m32r/m32r-opts.h): New
22309         HeaderInclude entry.
22310         (m32r_model_selected, m32r_sdata_selected): New Variable entries.
22311         (mmodel=): Use Enum and Var.
22312         (m32r_model): New Enum and EnumValue entries.
22313         (mno-flush-trap): Use Var.
22314         (msdata=): Use Enum and Var.
22315         (m32r_sdata): New Enum and EnumValue entries.
22316
22317 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22318
22319         * config/m32c/m32c.c: Don't include opts.h.
22320         (target_memregs, target_memregs_set, TARGET_HANDLE_OPTION,
22321         m32c_handle_option): Remove.
22322         (m32c_option_override): Check global_options_set.x_target_memregs
22323         instead of target_memregs_set.
22324         * config/m32c/m32c.h (target_memregs): Remove.
22325         * config/m32c/m32c.opt (memregs=): Use UInteger with integer
22326         variable.
22327
22328 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22329
22330         * config/iq2000/iq2000-opts.h: New.
22331         * config/iq2000/iq2000.c: Don't include opts.h.
22332         (iq2000_tune, iq2000_handle_option, TARGET_HANDLE_OPTION): Remove.
22333         * config/iq2000/iq2000.h (enum processor_type, iq2000_tune): Remove.
22334         * config/iq2000/iq2000.opt (config/iq2000/iq2000-opts.h): New
22335         HeaderInclude entry.
22336         (iq2000_tune): New Variable entry.
22337         (march=): Add comment.  Use Enum.
22338         (iq2000_arch): New Enum and EnumValue entries.
22339         (mcpu=): Use Enum and Var.
22340         (iq2000_tune): New Enum and EnumValue entries.
22341
22342 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22343
22344         * config/ia64/ia64-opts.h: New.
22345         * config/ia64/ia64.c (ia64_tune): Remove.
22346         (ia64_handle_option): Don't handle OPT_mfixed_range_ or OPT_mtune_
22347         here.  Use error_at.
22348         (ia64_option_override): Handle deferred OPT_mfixed_range_.
22349         * config/ia64/ia64.h (enum processor_type, ia64_tune): Remove.
22350         * config/ia64/ia64.opt (config/ia64/ia64-opts.h): New
22351         HeaderInclude entry.
22352         (ia64_tune): New Variable entry.
22353         (mfixed-range=): Use Defer and Var.
22354         (mtune=): Use Enum and Var.
22355         (ia64_tune): New Enum and EnumValue entries.
22356
22357 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22358
22359         * config/frv/frv-opts.h: New.
22360         * config/frv/frv-protos.h (enum frv_cpu, frv_cpu_t): Move to
22361         frv-opts.h.
22362         (frv_cpu_type): Remove.
22363         * config/frv/frv.c: Don't include opts.h.
22364         (frv_cpu_type, frv_handle_option, TARGET_HANDLE_OPTION): Remove.
22365         * config/frv/frv.opt (config/frv/frv-opts.h): New HeaderInclude entry.
22366         (frv_cpu_type): New Variable entry.
22367         (frv_cpu): New Enum and EnumValue entries.
22368
22369 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22370
22371         * config/cris/cris.c (cris_handle_option): Access target_flags via
22372         opts pointer.  Don't assert that global structures are in use.
22373         Don't call CRIS_SUBTARGET_HANDLE_OPTION.
22374         * config/cris/cris.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't define.
22375
22376 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22377
22378         * config/bfin/bfin-opts.h: New.
22379         * config/bfin/bfin.c (bfin_lib_id_given, bfin_cpu_type,
22380         bfin_si_revision, bfin_workarounds): Remove.
22381         (bfin_cpus): Make static const.
22382         (bfin_load_pic_reg): Check global_options_set.x_bfin_library_id
22383         not bfin_lib_id_given.
22384         (bfin_handle_option): Don't set bfin_lib_id_given.  Access
22385         bfin_cpu_type, bfin_si_revision and bfin_workarounds via opts
22386         pointer. Use error_at.  Don't assert that global structures are in use.
22387         * config/bfin/bfin.h: Include bfin-opts.h.
22388         (enum bfin_cpu_type, bfin_cpu_t): Move to bfin-opts.h.
22389         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): Remove.
22390         * bfin.opt (config/bfin/bfin-opts.h): New HeaderInclude entry.
22391         (bfin_cpu_type, bfin_si_revision, bfin_workarounds): New Variable
22392         entries.
22393
22394 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22395
22396         * config/arm/arm.opt (mhard-float, msoft-float): Use Alias.
22397         * config/arm/arm.c (arm_handle_option): Don't handle -mhard-float
22398         or -msoft-float here.
22399         * config/arm/arm.h (CPP_SPEC): Handle -mfloat-abi=*, not
22400         -msoft-float and -mhard-float.
22401         (OPTION_DEFAULT_SPECS): Don't handle -mhard-float and -msoft-float.
22402         * config/arm/coff.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
22403         msoft-float.
22404         * config/arm/elf.h (ASM_SPEC): Don't handle -mhard-float and
22405         -msoft-float.
22406         (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not msoft-float.
22407         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Use mfloat-abi=hard,
22408         not mhard-float.
22409         (LIBGCC_SPEC): Don't handle -msoft-float.
22410         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Don't handle
22411         -mhard-float.
22412         * config/arm/pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft, not
22413         msoft-float.
22414         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Handle
22415         -mfloat-abi=*, not -msoft-float and -mhard-float.
22416         * config/arm/semi.h((ASM_SPEC): Don't handle -mhard-float and
22417         -msoft-float.
22418         * config/arm/t-arm-elf (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS):
22419         Use mfloat-abi=hard and mfloat-abi=soft in comments, not
22420         mhard-float and msoft-float.
22421         * config/arm/t-linux (MULTILIB_OPTIONS): Use mfloat-abi=hard and
22422         mfloat-abi=soft in comments, not mhard-float and msoft-float.
22423         * config/arm/t-rtems (MULTILIB_OPTIONS, MULTILIB_EXCEPTIONS): Use
22424         mfloat-abi=soft and mfloat-abi=hard, not msoft-float and
22425         mhard-float.
22426         * config/arm/t-strongarm-elf (MULTILIB_OPTIONS): Use
22427         mfloat-abi=hard and mfloat-abi=soft, not mhard-float and
22428         msoft-float.
22429         * config/arm/t-wince-pe (MULTILIB_OPTIONS): Use mfloat-abi=hard,
22430         not mhard-float.
22431         * config/arm/wince-pe.h (MULTILIB_DEFAULTS): Use mfloat-abi=soft,
22432         not msoft-float.
22433
22434 2011-03-22  Richard Henderson  <rth@redhat.com>
22435
22436         * config/alpha/alpha.c (alpha_expand_prologue): Don't test
22437         TARGET_ABI_WINDOWS_NT.
22438         (alpha_output_function_end_prologue): Likewise.
22439         * config/alpha/alpha.h (TARGET_ABI_OSF): Likewise.
22440         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
22441         * config/alpha/alpha.md (call, call_value, tablejump): Likewise.
22442         (trap, *movsi_nt_vms): Likewise.
22443         (call_nt, call_value_nt, *call_nt_1, *call_value_nt_1): Remove.
22444         (*tablejump_osf_nt_internal): Remove.
22445         * config/alpha/predicates.md (input_operand): Only test Pmode.
22446
22447 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22448
22449         * config/alpha/alpha.c (alpha_handle_option): Access target_flags
22450         via opts pointer.  Use error_at.  Don't assert that global
22451         structures are in use.
22452
22453 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22454
22455         * config/i386/i386.c (ix86_isa_flags_explicit): Remove.
22456         (ix86_handle_option): Access ix86_isa_flags and
22457         ix86_isa_flags_explicit via opts pointer.  Don't assert that
22458         global structures are in use.
22459         (ix86_function_specific_save, ix86_function_specific_restore):
22460         Update ix86_isa_flags_explicit field name.
22461         * config/i386/i386.opt (ix86_isa_flags_explicit): New Variable entry.
22462         (ix86_isa_flags_explicit): Rename TargetSave entry to
22463         x_ix86_isa_flags_explicit.
22464
22465 2011-03-22  Richard Henderson  <rth@redhat.com>
22466
22467         * config/alpha/alpha.c (NUM_ARGS): Don't test TARGET_ABI_UNICOSMK.
22468         (alpha_option_override, direct_return): Likewise.
22469         (alpha_arg_partial_bytes, alpha_setup_incoming_varargs): Likewise.
22470         (alpha_va_start, alpha_gimplify_va_arg, alpha_sa_mask): Likewise.
22471         (alpha_sa_size, compute_frame_size, alpha_expand_prologue): Likewise.
22472         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
22473         (alpha_expand_epilogue, alpha_end_function): Likewise.
22474         (alpha_init_libfuncs): Likewise.
22475         (struct machine_function): Remove unicosmk members.
22476         (print_operand) ['t']: Remove.
22477         (unicosmk_must_pass_in_stack, unicosmk_initial_elimination_offset,
22478         unicosmk_output_module_name, unicosmk_output_common,
22479         current_section_align, unicosmk_output_text_section_asm_op,
22480         unicosmk_output_data_section_asm_op, unicosmk_init_sections,
22481         unicosmk_section_type_flags, unicosmk_unique_section,
22482         unicosmk_asm_named_section, unicosmk_insert_attributes,
22483         unicosmk_output_align, unicosmk_defer_case_vector,
22484         unicosmk_output_addr_vec, unicosmk_output_deferred_case_vectors,
22485         SSIB_PREFIX, SSIB_PREFIX_LEN, unicosmk_ssib_name, unicosmk_gen_dsib,
22486         unicosmk_output_ssib, unicosmk_add_call_info_word,
22487         unicosmk_extern_head, unicosmk_output_default_externs,
22488         unicosmk_output_externs, unicosmk_add_extern, unicosmk_dex_list,
22489         unicosmk_dex_count, unicosmk_special_name, unicosmk_need_dex,
22490         unicosmk_output_dex, unicosmk_file_start, unicosmk_file_end): Remove.
22491         * config/alpha/alpha-protos.h: Update.
22492         * config/alpha/alpha.h (TARGET_ABI_OSF): Don't test TARGET_ABI_UNICOSMK.
22493         * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM): Remove.
22494         (UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): Remove.
22495         (mulsi3): Don't test TARGET_ABI_UNICOSMK.
22496         (*mulsi_se, mulvsi3): Likewise.
22497         (divsi3, udivsi3, modsi3, umodsi3, divdi3, udivdi3): Likewise.
22498         (*divmodsi_internal, call, call_value, realign): Likewise.
22499         (moddi3, umoddi3): Likewise; remove duplicate expander.
22500         (moddi3_umk, umoddi3_umk, call_umk, call_value_umk): Remove.
22501         (*call_umk_1, *movsi, umk_laum, umk_lalm, *umk_load_ciw): Remove.
22502         (*movdi_nofix): Remove r/U alternative.
22503         (umk_mismatch_args, arg_home_umk, *call_value_umk): Remove.
22504         * config/alpha/constraints.md ("U"): Remove.
22505         * config/alpha/predicates.md (call_operand"): Don't test
22506         TARGET_ABI_UNICOSMK.
22507
22508 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22509
22510         * target.def (handle_option): Take gcc_options and
22511         cl_decoded_option pointers and location_t.
22512         * doc/tm.texi.in (TARGET_HANDLE_OPTION): Update documentation.
22513         * doc/tm.texi: Regenerate.
22514         * hooks.c (hook_bool_size_t_constcharptr_int_true): Remove.
22515         * hooks.h (hook_bool_size_t_constcharptr_int_true): Don't declare.
22516         * lto-opts.c (lto_reissue_options): Generate option structure for
22517         targetm.handle_option call.
22518         * opts.c (target_handle_option): Update call to
22519         targetm.handle_option.  Remove assertions about values now passed
22520         down to hook.
22521         * targhooks.c (default_target_handle_option): New.
22522         * targhooks.h (default_target_handle_option): Declare.
22523         * config/alpha/alpha.c: Include opts.h.
22524         (alpha_handle_option): Update to new hook interface.
22525         * config/arm/arm.c: Include opts.h.
22526         (arm_handle_option): Update to new hook interface.
22527         * config/arm/t-arm (arm.o): Update dependencies.
22528         * config/bfin/bfin.c: Include opts.h.
22529         (bfin_handle_option): Update to new hook interface.
22530         * config/cris/cris.c: Include opts.h.
22531         (cris_handle_option): Update to new hook interface.
22532         * config/frv/frv.c: Include opts.h.
22533         (frv_handle_option): Update to new hook interface.
22534         * config/i386/i386.c: Include opts.h.
22535         (ix86_handle_option): Update to new hook interface.
22536         (ix86_valid_target_attribute_inner_p): Generate option structure
22537         for call to ix86_handle_option.
22538         * config/i386/t-i386 (i386.o): Update dependencies.
22539         * config/ia64/ia64.c: Include opts.h.
22540         (ia64_handle_option): Update to new hook interface.
22541         * config/ia64/t-ia64 (ia64.o): Update dependencies.
22542         * config/iq2000/iq2000.c: Include opts.h.
22543         (iq2000_handle_option): Update to new hook interface.
22544         * config/m32c/m32c.c: Include opts.h.
22545         (m32c_handle_option): Update to new hook interface.
22546         * config/m32r/m32r.c: Include opts.h.
22547         (m32r_handle_option): Update to new hook interface.
22548         * config/m68k/m68k.c: Include opts.h.
22549         (m68k_handle_option): Update to new hook interface.
22550         * config/mep/mep.c: Include opts.h.
22551         (mep_handle_option): Update to new hook interface.
22552         * config/microblaze/microblaze.c: Include opts.h.
22553         (microblaze_handle_option): Update to new hook interface.
22554         * config/mips/mips.c: Include opts.h.
22555         (mips_handle_option): Update to new hook interface.
22556         * config/mn10300/mn10300.c: Include opts.h.
22557         (mn10300_handle_option): Update to new hook interface.
22558         * config/pa/pa.c: Include opts.h.
22559         (pa_handle_option): Update to new hook interface.
22560         * config/pdp11/pdp11.c: Include opts.h.
22561         (pdp11_handle_option): Update to new hook interface.
22562         * config/rs6000/rs6000.c: Include opts.h.
22563         (rs6000_handle_option): Update to new hook interface.
22564         * config/rs6000/t-rs6000 (rs6000.o): Update dependencies.
22565         * config/rx/rx.c: Include opts.h.
22566         (rx_handle_option): Update to new hook interface.
22567         * config/s390/s390.c: Include opts.h.
22568         (s390_handle_option): Update to new hook interface.
22569         * config/score/score.c: Include opts.h.
22570         (score_handle_option): Update to new hook interface.
22571         * config/sh/sh.c: Include opts.h.
22572         (sh_handle_option): Update to new hook interface.
22573         * config/sparc/sparc.c: Include opts.h.
22574         (sparc_handle_option): Update to new hook interface.
22575         * config/v850/v850.c: Include opts.h.
22576         (v850_handle_option): Update to new hook interface.
22577
22578 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22579
22580         * gcc.c (driver_unknown_option_callback): Only permit and save
22581         unknown -Wno- options.
22582         (driver_wrong_lang_callback): Save options directly instead of via
22583         driver_unknown_option_callback.
22584
22585 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
22586
22587         * combine.c (simplify_set): Try harder to find the best CC mode when
22588         simplifying a nested COMPARE on the RHS.
22589
22590 2011-03-22  Joseph Myers  <joseph@codesourcery.com>
22591
22592         * config/alpha/gnu.h: Remove.
22593         * config/arc: Remove directory.
22594         * config/arm/netbsd.h: Remove.
22595         * config/arm/t-pe: Remove.
22596         * config/crx: Remove directory.
22597         * config/i386/netbsd.h: Remove.
22598         * config/m68hc11: Remove directory.
22599         * config/m68k/uclinux-oldabi.h: Remove.
22600         * config/mcore/mcore-pe.h: Remove.
22601         * config/mcore/t-mcore-pe: Remove.
22602         * config/netbsd-aout.h: Remove.
22603         * config/rs6000/gnu.h: Remove.
22604         * config/sh/sh-symbian.h: Remove.
22605         * config/sh/symbian-base.c: Remove.
22606         * config/sh/symbian-c.c: Remove.
22607         * config/sh/symbian-cxx.c: Remove.
22608         * config/sh/symbian-post.h: Remove.
22609         * config/sh/symbian-pre.h: Remove.
22610         * config/sh/t-symbian: Remove.
22611         * config/svr3.h: Remove.
22612         * config/vax/netbsd.h: Remove.
22613         * config.build: Don't handle i[34567]86-*-pe.
22614         * config.gcc: Remove handling of deprecations for most deprecated
22615         targets.
22616         (m68k-*-uclinuxoldabi*): Add to second deprecated list.
22617         (alpha*-*-gnu*, arc-*-elf*, arm*-*-netbsd*, arm-*-pe*, crx-*-elf,
22618         i[34567]86-*-netbsd*, i[34567]86-*-pe, m68hc11-*-*|m6811-*-*,
22619         m68hc12-*-*|m6812-*-*, m68k-*-uclinuxoldabi*, mcore-*-pe*,
22620         powerpc64-*-gnu*, powerpc-*-gnu-gnualtivec*, powerpc-*-gnu*,
22621         sh-*-symbianelf* | sh[12346l]*-*-symbianelf*, vax-*-netbsd*):
22622         Remove cases.
22623         * config.host: Don't handle i[34567]86-*-pe.
22624         * config/rs6000/linux64.h (LINK_OS_GNU_SPEC): Remove.
22625         (ASM_SPEC32): Don't handle -mcall-gnu.
22626         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't handle
22627         -mcall-gnu.
22628         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, CPP_SPEC,
22629         STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): Don't handle -mcall-gnu.
22630         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
22631         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): Remove.
22632         (SUBTARGET_EXTRA_SPECS): Remove *_gnu specs.
22633         * config/sh/sh-protos.h, config/sh/sh.c: Remove all code
22634         conditional on SYMBIAN.
22635         * configure.ac: Don't handle powerpc*-*-gnu*.
22636         * configure: Regenerate.
22637         * doc/extend.texi (interrupt attribute): Don't mention CRX.
22638         * doc/install-old.texi (m6811, m6812): Don't mention.
22639         * doc/install.texi (arc-*-elf*): Don't document multilib option.
22640         (arc-*-elf, CRX, m6811-elf, m6812-elf): Remove.
22641         (m68k-uclinuxoldabi): Don't mention.
22642         * doc/invoke.texi (ARC Options, CRX Options, M68hc1x Options):
22643         Remove.
22644         (-mcall-gnu): Remove.
22645         * doc/md.texi (CRX Architecture, Motorola 68HC11 & 68HC12
22646         families): Remove constraint documentation.
22647
22648 2011-03-22  Marius Strobl  <marius@FreeBSD.org>
22649
22650         * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Replace with...
22651         (FBSD_TARGET_CPU_CPP_BUILTINS): ...this.
22652         (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
22653
22654 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
22655
22656         PR target/48226
22657         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If we see a
22658         vector when peeking at the next token for vector, don't expand the
22659         keywords.
22660
22661 2011-03-21  Georg-Johann Lay  <avr@gjlay.de>
22662
22663         * config/avr/avr-protos.h (expand_epilogue): Change prototype
22664         * config/avr/avr.h (struct machine_function): Add field sibcall_fails.
22665         * config/avr/avr.c (init_cumulative_args)
22666         (avr_function_arg_advance): Use it.
22667         * config/avr/avr.c (expand_epilogue): Add bool parameter. Handle
22668         sibcall epilogues.
22669         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to...
22670         (avr_function_ok_for_sibcall): ...this new function.
22671         (avr_lookup_function_attribute1): New static Function.
22672         (avr_naked_function_p, interrupt_function_p)
22673         (signal_function_p, avr_OS_task_function_p)
22674         (avr_OS_main_function_p): Use it.
22675         * config/avr/avr.md ("sibcall", "sibcall_value")
22676         ("sibcall_epilogue"): New expander.
22677         ("*call_insn", "*call_value_insn"): New insn.
22678         ("call_insn", "call_value_insn"): Remove
22679         ("call", "call_value", "epilogue"): Change expander to handle
22680         sibling calls.
22681
22682 2011-03-21  Nick Clifton  <nickc@redhat.com>
22683
22684         * doc/invoke.texi (Overall Options): Move closing brace to end of
22685         options list.
22686         (Optimization Options): Add missing @gol.
22687         (Directory Options): Likewise.
22688         (i386 and x86-64 Options): Likewise.
22689         (RS6000 and PowerPC Options): Likewise.
22690         (i386 and x86-64 Windows Options): Likewise.
22691         (V850 Options): Add text missing from descriptions.
22692
22693 2011-03-22  Richard Henderson  <rth@redhat.com>
22694
22695         * config/avr/avr.c (TARGET_EXCEPT_UNWIND_INFO): New.
22696         (avr_incoming_return_addr_rtx): New.
22697         (emit_push_byte): New.
22698         (expand_prologue): Use it.  Remove incorrect dwarf annotation for
22699         SREG, RAMPZ, zero register.  Push frame pointer by bytes.  Add dwarf
22700         annotation for __prologue_saves__.  Fixup dwarf annotation for CFA.
22701         (emit_pop_byte): New.
22702         (expand_epilogue): Use it.  Pop frame pointer by bytes.
22703         * config/avr/avr.h (FRAME_POINTER_CFA_OFFSET): Remove.
22704         (INCOMING_RETURN_ADDR_RTX): New.
22705         (INCOMING_FRAME_SP_OFFSET): New.
22706         (ARG_POINTER_CFA_OFFSET): New.
22707         * config/avr/avr.md (*pushqi): Fix mode of auto-inc.
22708         (*pushhi, *pushsi, *pushsf, popqi): Likewise.
22709         (pophi): Remove.
22710
22711         * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 11]: Handle post_dec.
22712
22713 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
22714
22715         * system.h (FUNCTION_ARG, FUNCTION_INCOMING_ARG): Poison.
22716         (FUNCTION_ARG_ADVANCE): Likewise.
22717         * tm.texi.in: Change references to them to hook references.
22718         * tm.texi: Regenerate.
22719         * targhooks.c (default_function_arg): Eliminate check for target
22720         macro.
22721         (default_function_incoming_arg): Likewise.
22722         (default_function_arg_advance): Likewise.
22723         * target.def (function_arg, function_incoming_arg): Change to DEFHOOK.
22724         (function_arg_advance): Likewise.
22725         * target-def.h: Eliminate FUNCTION_INCOMING_ARG check.
22726
22727 2011-03-22  Nathan Froyd  <froydnj@codesourcery.com>
22728
22729         * tree.c (build_call_1): New function.
22730         (build_call_valist, build_call_array_loc, build_call_vec): Call it.
22731
22732 2011-03-22  Richard Guenther  <rguenther@suse.de>
22733
22734         PR tree-optimization/48228
22735         * tree-vrp.c (vrp_visit_phi_node): Do not stop propagating
22736         for single-arg PHIs.
22737
22738 2011-03-22  Andrey Belevantsev  <abel@ispras.ru>
22739
22740         PR rtl-optimization/48143
22741         * config/i386/sse.md (*sse2_cvtpd2dq): Add athlon_decode attribute.
22742         (*sse2_cvttpd2dq, sse2_cvtss2sd, *sse2_cvtpd2ps,
22743         sse2_cvtps2pd): Likewise.
22744
22745 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22746
22747         * recog.c (canonicalize_change_group): Use validate_unshare_change.
22748
22749 2011-03-22  Richard Guenther  <rguenther@suse.de>
22750
22751         * gimple.c (gimple_rhs_class_table): POLYNOMIAL_CHREC is not
22752         a valid RHS.  Make DOT_PROD_EXPR and REALIGN_LOAD_EXPR ternary.
22753         * tree-cfg.c (verify_gimple_assign_ternary): Allow DOT_PROD_EXPR
22754         and REALIGN_LOAD_EXPR.
22755         (verify_gimple_assign_single): Do not allow POLYNOMIAL_CHREC,
22756         DOT_PROD_EXPR or REALIGN_LOAD_EXPR.
22757         * expr.c (expand_expr_real_1): Move REALIGN_LOAD_EXPR and
22758         DOT_PROD_EXPR case ...
22759         (expand_expr_real_2): ... here.
22760         * gimple-pretty-print.c (dump_ternary_rhs): Handle DOT_PROD_EXPR
22761         and REALIGN_LOAD_EXPR.
22762         * tree-data-ref.c (split_constant_offset): Bail out for all CHRECs.
22763         * tree-vect-loop.c (vect_model_reduction_cost): Handle ternaries.
22764         (vect_create_epilog_for_reduction): Likewise.
22765         (vectorizable_reduction): Likewise.
22766         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Adjust.
22767         * tree-vect-stmts.c (vectorizable_load): Likewise.
22768
22769 2011-03-22  Eric Botcazou  <ebotcazou@adacore.com>
22770
22771         * gimplify.c (gimplify_cond_expr): Gimplify COMPOUND_EXPR conditions.
22772
22773 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22774
22775         * config/s390/s390.c (s390_delegitimize_address): Fix offset
22776         handling for PLTOFF/GOTOFF.
22777
22778 2011-03-22  Nick Clifton  <nickc@redhat.com>
22779
22780         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
22781         trailing backslash from the end of the macro definition.
22782
22783 2011-03-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
22784
22785         * config/s390/s390.c (s390_delegitimize_address): Handle PLTOFF
22786         and PLT unspecs.
22787
22788 2011-03-21  Richard Sandiford  <richard.sandiford@linaro.org>
22789
22790         * expr.h (prepare_operand): Move to...
22791         * optabs.h (prepare_operand): ...here and change the insn code
22792         parameter from "int" to "enum insn_code".
22793         (insn_operand_matches): Declare.
22794         * expr.c (init_expr_target): Use insn_operand_matches.
22795         (compress_float_constant): Likewise.
22796         * function.c (safe_insn_predicate, assign_parm_setup_reg): Likewise.
22797         * optabs.c (can_compare_p, prepare_cmp_insn): Likewise.
22798         (emit_cmp_and_jump_insn_1, gen_add2_insn, gen_add3_insn): Likewise.
22799         (have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn):
22800         Likewise.
22801         (gen_cond_trap): Likewise.
22802         (prepare_operand): Likewise.  Change icode to an insn_code.
22803         (insn_operand_matches): New function.
22804         * reload.c (find_reloads_address_1): Use insn_operand_matches.
22805         * reload1.c (gen_reload): Likewise.
22806         * targhooks.c (default_secondary_reload): Likewise.
22807
22808 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
22809
22810         * config/alpha/alpha.md (unspec): New define_c_enum.
22811         (unspecv): Ditto.
22812
22813 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
22814
22815         PR debug/48214
22816         * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
22817         between a call and its CALL_ARG_LOCATION note.
22818
22819 2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
22820
22821         * gimplify.c (gimplify_vla_decl): Set TREE_THIS_NOTRAP flag.
22822
22823 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
22824
22825         PR c/42544
22826         PR c/48197
22827         * c-common.c (shorten_compare): If primopN is first sign-extended
22828         to opN and then zero-extended to result type, set primopN to opN.
22829
22830 2011-03-21  Daniel Jacobowitz  <dan@codesourcery.com>
22831
22832         * config/arm/unwind-arm.c (__gnu_unwind_pr_common): Correct test
22833         for barrier handlers.
22834
22835 2011-03-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
22836
22837         * config/rs6000/rs6000.md (UNSPEC_*, UNSPECV_*): Redefine all
22838         UNSPEC constants to be in the unspec enumeration, and redefine
22839         all UNSPECV constants to be in the unspecv enumeration, so that
22840         dumps print which unspec/unspec_volatile this is.
22841         * config/rs6000/vector.md (UNSPEC_*): Ditto.
22842         * config/rs6000/paired.md (UNSPEC_*): Ditto.
22843         * config/rs6000/vsx.md (UNSPEC_*): Ditto.
22844         * config/rs6000/altivec.md (UNSPEC_*, UNSPECV_*): Ditto.
22845         * config/rs6000/dfp.md (UNSPEC_*): Ditto.
22846
22847         * config/rs6000/rs6000.md (UNSPECV_ISYNC, UNSPECV_LWSYNC): Rename
22848         UNSPEC_ISYNC and UNSPEC_HWSYNC to UNSPECV_ISYNC and
22849         UNSPECV_LWSYNC, since these are used as unspec_volatile.
22850         * config/rs6000/sync.md (isync, lwsync): Ditto.
22851
22852 2011-03-21  Richard Guenther  <rguenther@suse.de>
22853
22854         * params.def (lto-min-partition): Fix typo.
22855
22856 2011-03-21  Richard Guenther  <rguenther@suse.de>
22857
22858         PR c/47939
22859         * c-decl.c (grokdeclarator): Drop to the main variant only
22860         for array types.  Drop flag_gen_aux_info check.
22861
22862 2011-03-21  Richard Guenther  <rguenther@suse.de>
22863
22864         PR translation/47911
22865         * params.def (lto-partitions): Fix typo.
22866         (lto-min-partition): Fix wording.
22867
22868 2011-03-21  Andreas Tobler  <andreast@fgznet.ch>
22869
22870         * config/rs6000/t-freebsd: Remove duplication from file.
22871
22872 2011-03-21  Richard Guenther  <rguenther@suse.de>
22873
22874         PR middle-end/47661
22875         * gimple.c (is_gimple_condexpr): Use tree_could_throw_p.
22876
22877 2011-03-21  Richard Guenther  <rguenther@suse.de>
22878
22879         PR lto/48210
22880         * params.def (lto-partitions): Require at least 1 partition.
22881
22882 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22883
22884         * gthr-solaris.h: Remove.
22885         * gthr.h (_SOLARIS_THREADS): Don't include gthr-solaris.h, remove.
22886         * config/sol2.h (CPP_SUBTARGET_SPEC): Remove -threads support.
22887         (LIB_SPEC): Likewise.
22888         * config/sol2.opt (threads): Remove.
22889         * config.gcc (i[34567]86-*-solaris2*): Remove solaris threads support.
22890         (sparc*-*-solaris2*): Likewise.
22891         * configure.ac (enable_threads): Enable solaris support.
22892         * configure: Regenerate.
22893         * doc/invoke.texi (Option Summary, Solaris 2 Options): Remove -threads.
22894         * doc/install.texi (Configuration, --enable-threads=lib): Remove
22895         solaris.
22896
22897 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22898
22899         * config.gcc: Obsolete *-*-solaris2.8*.
22900         * doc/install.texi (Specific, *-*-solaris2*): Document it.
22901
22902 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22903
22904         PR bootstrap/48135
22905         * doc/install.texi (Prerequisites, Perl): Remove Glob.pm
22906         reference.  Solaris 8 perl works.
22907
22908 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22909
22910         PR bootstrap/48135
22911         * doc/install.texi (Prerequisites): Move jar etc. up.
22912         Explain support library version requirements.
22913
22914 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22915
22916         PR bootstrap/48135
22917         * doc/install.texi (Prerequisites): Move Perl to build
22918         requirements.  Always necessary on Solaris 2 with Sun ld.
22919
22920 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22921
22922         * doc/install.texi (Specific, alpha*-dec-osf5.1): Update for
22923         binutils 2.21.
22924         (Specific, i?86-*-solaris2.[89]): Likewise.
22925         (Specific, i?86-*-solaris2.10): Likewise.
22926         (Specific, mips-sgi-irix6): Likewise.
22927         (Specific, *-*-solaris2*): Remove Sun Studio download URL.
22928         Update for binutils 2.21.
22929
22930 2011-03-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22931
22932         * configure.ac (gcc_cv_lto_plugin): Fix typo.
22933         Allow -fuse-linker-plugin for non-default plugin linker.
22934         * configure: Regenerate.
22935
22936 2011-03-21  Nicola Pero  <nicola.pero@meta-innovation.com>
22937
22938         PR bootstrap/48167
22939         * gengtype.c (files_rules): Added rule for cp/parser.h.
22940
22941 2011-03-21  Jakub Jelinek  <jakub@redhat.com>
22942
22943         PR target/48213
22944         * config/s390/s390.c (s390_delegitimize_address): Don't call
22945         lowpart_subreg if orig_x has BLKmode.
22946
22947 2011-03-21  Kai Tietz  <ktietz@redhat.com>
22948
22949         PR target/12171
22950         * doc/plugins.texi: Adjust documentation for plugin register_callback.
22951         * tree.h (attribute_spec): Add new member affects_type_identity.
22952         * attribs.c (empty_attribute_table): Adjust attribute_spec
22953         initializers.
22954         * config/alpha/alpha.c: Likewise.
22955         * config/arc/arc.c: Likewise.
22956         * config/arm/arm.c: Likewise.
22957         * config/avr/avr.c: Likewise.
22958         * config/bfin/bfin.c: Likewise.
22959         * config/crx/crx.c: Likewise.
22960         * config/darwin.h: Likewise.
22961         * config/h8300/h8300.c: Likewise.
22962         * config/i386/cygming.h: Likewise.
22963         * config/i386/i386.c: Likewise.
22964         * config/ia64/ia64.c: Likewise.
22965         * config/m32c/m32c.c: Likewise.
22966         * config/m32r/m32r.c: Likewise.
22967         * config/m68hc11/m68hc11.c: Likewise.
22968         * config/m68k/m68k.c: Likewise.
22969         * config/mcore/mcore.c: Likewise.
22970         * config/mep/mep.c: Likewise.
22971         * config/microblaze/microblaze.c: Likewise.
22972         * config/mips/mips.c: Likewise.
22973         * config/rs6000/rs6000.c: Likewise.
22974         * config/rx/rx.c: Likewise.
22975         * config/sh/sh.c: Likewise.
22976         * config/sol2.h: Likewise.
22977         * config/sparc/sparc.c: Likewise.
22978         * config/spu/spu.c: Likewise.
22979         * config/stormy16/stormy16.c: Likewise.
22980         * config/v850/v850.c: Likewise.
22981
22982 2011-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
22983
22984         * simplify-rtx.c (simplify_binary_operation_1): Handle
22985         (xor (and A B) C) case when B and C are both constants.
22986
22987 2011-03-21  Mingjie Xing  <mingjie.xing@gmail.com>
22988
22989         * tree-dfa.c (add_referenced_var): Fix typo in comment.
22990
22991 2011-03-20  Eric Botcazou  <ebotcazou@adacore.com>
22992
22993         PR bootstrap/48168
22994         * config/sparc/sparc.c (sparc_delegitimize_address): Add new pattern.
22995
22996 2011-03-20  Jakub Jelinek  <jakub@redhat.com>
22997
22998         PR rtl-optimization/48156
22999         * df-core.c (df_get_bb_dirty): Use df_lr if df_live is NULL,
23000         assume df and df_lr are not NULL.
23001
23002 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
23003
23004         PR debug/48023
23005         * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
23006         between a call and its CALL_ARG_LOCATION note.
23007
23008 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
23009
23010         PR debug/48178
23011         * config/sh/sh.c (find_barrier): Don't emit a constant pool
23012         between a call and its corresponding CALL_ARG_LOCATION note.
23013
23014 2011-03-19  Anatoly Sokolov  <aesok@post.ru>
23015
23016         * cfgcleanup.c (mark_effect): Use bitmap_set_range/bitmap_clear_range
23017         instead of loop. Use HARD_REGISTER_NUM_P predicate.
23018         * haifa-sched.c (setup_ref_regs): Ditto.
23019         * caller-save.c (add_used_regs_1): Ditto.
23020         * dse.c (look_for_hardregs): Ditto.
23021         * df-problems.c (df_simulate_one_insn_forwards): Ditto.
23022         * sched-rgn.c (check_live_1): Ditto.
23023
23024 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
23025
23026         * c-decl.c (diagnose_mismatched_decls): Give an error for
23027         redefining a typedef with variably modified type.
23028
23029 2011-03-18  Joseph Myers  <joseph@codesourcery.com>
23030
23031         * c-decl.c (grokfield): Don't allow typedefs for structures or
23032         unions with no tag by default.
23033         * doc/extend.texi (Unnamed Fields): Update.
23034
23035 2011-03-18  Uros Bizjak  <ubizjak@gmail.com>
23036
23037         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
23038         Rewrite using indirect functions.
23039         (lwp_slwpcb): Ditto.
23040         * config/i386/sse.md (avx_vextractf128<mode>): Ditto.
23041         (avx_vinsertf128<mode>): Ditto.
23042
23043 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23044
23045         * config/s390/s390.c (s390_delegitimize_address): Handle GOTOFF
23046         unspecs.
23047
23048 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23049
23050         * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
23051         splitting between a call and its corresponding CALL_ARG_LOCATION note.
23052
23053 2011-03-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
23054
23055         PR rtl-optimization/48170
23056         * gcse.c (hoist_code): Remove bogus asserts.
23057
23058 2011-03-18  Georg-Johann Lay  <avr@gjlay.de>
23059
23060         * ira-color.c (assign_hard_reg): Honor LOCAL_REGNO in cost
23061         computation for prologue/epilogue.
23062
23063 2011-03-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23064
23065         * Makefile.in (check-consistency): Remove.
23066
23067 2011-03-18  Jakub Jelinek  <jakub@redhat.com>
23068
23069         PR debug/48176
23070         * dwarf2out.c (dwarf2out_finish): Call output_aranges even when
23071         arange_table_in_use is 0, but either text_section_used or
23072         cold_text_section_used is true.  Don't call it if
23073         !info_section_emitted.
23074
23075 2011-03-18  Anatoly Sokolov  <aesok@post.ru>
23076
23077         * config/avr/avr.h (RET_REGISTER, LIBCALL_VALUE,
23078         FUNCTION_VALUE_REGNO_P): Remove.
23079         * config/avr/avr-protos.h (avr_ret_register, avr_libcall_value):
23080         Remove.
23081         * config/avr/avr.c (avr_ret_register): Make static inline.
23082         (avr_function_value_regno_p): New function.
23083         (avr_libcall_value): Make static. Add 'func' argument.
23084         (avr_function_value): Make static. Rename 'func' argument to
23085         'fn_decl_or_type', forward it to avr_libcall_value. Call
23086         avr_ret_register function instead of RET_REGISTER macro.
23087         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
23088
23089 2011-03-18  Jason Merrill  <jason@redhat.com>
23090
23091         PR c++/23372
23092         * gimplify.c (gimplify_arg): Strip redundant TARGET_EXPR.
23093
23094 2011-03-18  Richard Guenther  <rguenther@suse.de>
23095
23096         * doc/install.texi (--enable-gold): Remove.
23097         (--with-plugin-ld): Document.
23098         * doc/invoke.texi (-fuse-linker-plugin): Clarify.
23099
23100 2011-03-18  Andrew Pinski  <pinskia@gmail.com>
23101
23102         PR middle-end/47790
23103         * expr.c (optimize_bitfield_assignment_op): Revamp to work
23104         again after expansion changes.
23105
23106 2011-03-18  Chung-Lin Tang  <cltang@codesourcery.com>
23107
23108         * combine.c (try_combine): Do simplification only call of
23109         subst() on i2 even when i1 is present. Update comments.
23110
23111 2011-03-18  Kaz Kojima  <kkojima@gcc.gnu.org>
23112
23113         * config/sh/sh.c (sh_delegitimize_address): Handle UNSPEC_SYMOFF
23114         and UNSPEC_PCREL_SYMOFF.
23115
23116 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23117
23118         * config/s390/s390.md: Use define_c_enum for the unspec constant
23119         definitions.
23120
23121 2011-03-18  Richard Henderson  <rth@redhat.com>
23122             Jakub Jelinek  <jakub@redhat.com>
23123
23124         PR bootstrap/48161
23125         * expr.c (expand_expr_addr_expr_1): Use simplify_gen_binary
23126         instead of gen_rtx_PLUS if EXPAND_SUM or EXPAND_INITIALIZER.
23127
23128 2011-03-17  Anatoly Sokolov  <aesok@post.ru>
23129
23130         * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
23131         * config/v850/v850-protos.h (v850_output_addr_const_extra): Remove.
23132         * config/v850/v850.c (v850_output_addr_const_extra): Make static.
23133         Change return type to bool.
23134         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
23135
23136 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
23137
23138         PR debug/48163
23139         * var-tracking.c (prepare_call_arguments): If CALL target
23140         is a non-SYMBOL_REF CONSTANT_P, just add that into the list as
23141         pc instead of looking it up using cselib_lookup and use
23142         Pmode for it if x has VOIDmode.
23143         * dwarf2out.c (gen_subprogram_die): If also both first and
23144         second CONCAT arguments are VOIDmode, use mode of CONCAT itself.
23145
23146         PR debug/48163
23147         * function.c (assign_parms): For data.passed_pointer parms
23148         use MEM of data.entry_parm instead of data.entry_parm itself
23149         as DECL_INCOMING_RTL.
23150         * dwarf2out.c (rtl_for_decl_location): Use DECL_INCOMING_RTL
23151         also when passed and declared mode is the same, DECL_RTL
23152         is a MEM with pseudo as address and DECL_INCOMING_RTL is
23153         a MEM too.
23154
23155 2011-03-16  Jeff Law  <law@redhat.com>
23156
23157         PR rtl-optimization/37273
23158         * ira-costs.c (scan_one_insn): Detect constants living in memory and
23159         handle them like argument loads from stack slots.  Do not double
23160         count memory for memory constants and argument loads from stack slots.
23161
23162 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
23163
23164         PR debug/48160
23165         * var-tracking.c (prepare_call_arguments): Check SUBREG.
23166
23167 2011-03-17  H.J. Lu  <hongjiu.lu@intel.com>
23168
23169         PR target/48171
23170         * config/i386/i386.opt: Add Save to -mavx and -mfma.
23171
23172 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
23173
23174         PR bootstrap/48153
23175         * dwarf2out.c (mem_loc_descriptor) <case ENTRY_VALUE>: Return NULL
23176         if dwarf_strict.
23177         (gen_subprogram_die): Don't add call_site DIEs if dwarf_strict.
23178         Clear call_arg_locations and call_arg_loc_last always.
23179
23180         PR middle-end/48152
23181         * var-tracking.c (prepare_call_arguments): If argument needs to be
23182         passed by reference, adjust argtype and mode.
23183
23184 2011-03-17  Richard Guenther  <rguenther@suse.de>
23185
23186         PR middle-end/48134
23187         * tree-ssa.c (insert_debug_temp_for_var_def): If we propagated
23188         a value make sure to fold the statement.
23189
23190 2011-03-17  Chung-Lin Tang  <cltang@codesourcery.com>
23191
23192         PR target/43872
23193         * config/arm/arm.c (arm_get_frame_offsets): Adjust early
23194         return condition with !cfun->calls_alloca.
23195
23196 2011-03-17  Richard Guenther  <rguenther@suse.de>
23197
23198         PR bootstrap/48148
23199         * lto-cgraph.c (input_overwrite_node): Clear the abstract
23200         origin for decls in other ltrans units.
23201         (input_varpool_node): Likewise.
23202
23203 2011-03-17  Richard Guenther  <rguenther@suse.de>
23204
23205         PR middle-end/48165
23206         * tree-object-size.c (compute_object_offset): Properly return
23207         the offset operand of MEM_REFs as sizetype.
23208
23209 2011-03-17  Jakub Jelinek  <jakub@redhat.com>
23210
23211         PR rtl-optimization/48141
23212         * params.def (PARAM_MAX_DSE_ACTIVE_LOCAL_STORES): New.
23213         * dse.c: Include params.h.
23214         (active_local_stores_len): New variable.
23215         (add_wild_read, dse_step1): Clear it when setting active_local_stores
23216         to NULL.
23217         (record_store, check_mem_read_rtx): Decrease it when removing
23218         from the chain.
23219         (scan_insn): Likewise.  Increase it when adding to chain, if it
23220         reaches PARAM_MAX_DSE_ACTIVE_LOCAL_STORES limit, set to 1 and
23221         set active_local_stores to NULL before the addition.
23222         * Makefile.in (dse.o): Depend on $(PARAMS_H).
23223
23224         PR rtl-optimization/48141
23225         * dse.c (record_store): If no positions are needed in an insn
23226         that cannot be deleted, at least unchain it from active_local_stores.
23227
23228 2011-03-16  Dodji Seketeli  <dodji@redhat.com>
23229
23230         PR debug/47510
23231         * dwarf2out.c (strip_naming_typedef): Factorize out of ...
23232         (lookup_type_die_strip_naming_typedef): ... here.
23233         (get_context_die): Use it.
23234         (gen_typedef_die): Add a DW_AT_{,MIPS_}linkage_name attribute to
23235         the anonymous struct named by the naming typedef.
23236
23237 2011-03-16  H.J. Lu  <hongjiu.lu@intel.com>
23238
23239         PR target/48154
23240         * config/i386/i386.c (ix86_builtin_vectorized_function): Check
23241         TARGET_ROUND for BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
23242
23243 2011-03-16  Jeff Law  <law@redhat.com>
23244
23245         * tree-vrp.c (identify_jump_threads): Slightly simplify type
23246         check for operands of conditional.  Allow type to be a pointer.
23247
23248 2011-03-16  Richard Guenther  <rguenther@suse.de>
23249
23250         PR tree-optimization/48149
23251         * fold-const.c (fold_binary_loc): Fold
23252         COMPLEX_EXPR <REALPART_EXPR <x>, IMAGPART_EXPR <x>>.
23253
23254 2011-03-16  Richard Guenther  <rguenther@suse.de>
23255
23256         PR tree-optimization/26134
23257         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle rewriting
23258         complex part accesses to REALPART_EXPR and IMAGPART_EXPR.
23259         (non_rewritable_mem_ref_base): Handle complex type component
23260         accesses, constrain offsets for vector and complex extracts
23261         more properly.
23262
23263 2011-03-16  Richard Guenther  <rguenther@suse.de>
23264
23265         PR tree-optimization/48146
23266         * tree-ssa-sink.c (sink_code_in_bb): Manually update virtual
23267         operands avoiding the need for renaming.
23268
23269 2011-03-16  Richard Guenther  <rguenther@suse.de>
23270
23271         * gimple-fold.c (maybe_fold_reference): Open-code relevant
23272         constant folding.  Move MEM_REF canonicalization first.
23273         Rely on fold_const_aggregate_ref for initializer folding.
23274         * tree-ssa-ccp.c (ccp_fold): Handle constant vector extracts.
23275
23276 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
23277
23278         PR middle-end/48136
23279         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Make sure
23280         arg0/arg1 or their arguments are always fold converted to matching
23281         types.
23282
23283         * var-tracking.c (prepare_call_arguments): Add ATTRIBUTE_UNUSED
23284         to nargs.
23285
23286 2011-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23287
23288         PR lto/46944
23289         * configure.ac (gcc_cv_gld_major_version, gcc_cv_gld_minor):
23290         Handle in-tree gold.
23291         (ld_vers): Extract binutils version for gold.
23292         (gcc_cv_ld_hidden): Handle gold here.
23293         (gcc_cv_lto_plugin): Determine level of linker plugin support.
23294         * configure: Regenerate.
23295         * config.in: Regenerate.
23296         * gcc.c: Only use LTO plugin if HAVE_LTO_PLUGIN > 0, reject
23297         -fuse-linker-plugin otherwise.
23298         (LINK_PLUGIN_SPEC): Define.  Extract from LINK_COMMAND_SPEC.
23299         (LINK_COMMAND_SPEC): Use it.
23300         (main): Only look for LTOPLUGINSONAME if HAVE_LTO_PLUGIN > 0.
23301
23302 2011-03-16  Jakub Jelinek  <jakub@redhat.com>
23303
23304         * emit-rtl.c (try_split): Don't call copy_call_info debug hook.
23305         * calls.c: Remove debug.h include.
23306         (emit_call_1): Don't call virtual_call_token debug hook.
23307         * dwarf2out.c (debug_dcall_section, debug_vcall_section,
23308         dcall_entry, vcall_entry, dcall_table, vcall_table, vcall_insn,
23309         vcall_insn_table, DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION,
23310         size_of_dcall_table, output_dcall_table, size_of_vcall_table,
23311         output_vcall_table, dwarf2out_direct_call, vcall_insn_table_hash,
23312         vcall_insn_table_eq, store_vcall_insn, lookup_vcall_insn,
23313         dwarf2out_virtual_call_token, dwarf2out_copy_call_info,
23314         dwarf2out_virtual_call): Remove.
23315         (dwarf2_debug_hooks): Remove direct_call, virtual_call_token,
23316         copy_call_info and virtual_call hooks.
23317         (dwarf2out_init): Don't initialize vcall_insn_table,
23318         debug_dcall_section and debug_vcall_section.
23319         (prune_unused_types): Don't mark nodes from dcall_table.
23320         (dwarf2out_finish): Don't output dcall or vcall tables.
23321         * final.c (final_scan_insn): Don't call direct_call or
23322         virtual_call debug hooks.
23323         * debug.h (struct gcc_debug_hooks): Remove direct_call,
23324         virtual_call_token, copy_call_info and virtual_call hooks.
23325         (debug_nothing_uid): Remove prototype.
23326         * sdbout.c (sdb_debug_hooks): Remove direct_call, virtual_call_token,
23327         copy_call_info and virtual_call hooks.
23328         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
23329         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
23330         * debug.c (do_nothing_debug_hooks): Likewise.
23331         (debug_nothing_uid): Remove.
23332         * doc/invoke.texi (-fenable-icf-debug): Remove.
23333         * common.opt (-fenable-icf-debug): Likewise.
23334
23335         * calls.c (emit_call_1): Set MEM_EXPR on call's MEM.
23336         * var-tracking.c (prepare_call_arguments): Use MEM_EXPR on
23337         call's MEM.  Handle functions returning aggregate through a hidden
23338         first pointer.  For virtual calls add clobbered pc to call arguments
23339         chain.
23340         * dwarf2out.c (gen_subprogram_die): Emit
23341         DW_AT_GNU_call_site_target_clobbered if DW_AT_GNU_call_site_target
23342         can't be emitted.
23343
23344         PR debug/45882
23345         * rtl.def (ENTRY_VALUE): Change format from "e" to "0".
23346         * rtl.h (ENTRY_VALUE_EXP): Define.
23347         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle ENTRY_VALUE.
23348         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
23349         * print-rtl.c (print_rtx): Likewise.
23350         * gengtype.c (adjust_field_rtx_def): Likewise.
23351         * var-tracking.c (vt_add_function_parameter): Adjust
23352         gen_rtx_ENTRY_VALUE uses, use ENTRY_VALUE_EXP macro.
23353         * dwarf2out.c (mem_loc_descriptor): Use ENTRY_VALUE_EXP macro.
23354         * cfgexpand.c (expand_debug_expr): If a SSA_NAME without
23355         partition is a default definition of a PARM_DECL, use ENTRY_VALUE
23356         of its DECL_INCOMING_RTL if possible, or its DECL_RTL if set.
23357
23358         * final.c (final_scan_insn): Handle NOTE_INSN_CALL_ARG_LOCATION.
23359         Call var_location debug hook even on CALL_INSNs.
23360         (rest_of_clean_state): Don't print NOTE_INSN_CALL_ARG_LOCATION.
23361         * rtl.def (ENTRY_VALUE): New.
23362         * dwarf2out.c: Include cfglayout.h.
23363         (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
23364         output_loc_operands_raw): Handle DW_OP_GNU_entry_value.
23365         (struct call_arg_loc_node): New type.
23366         (call_arg_locations, call_arg_loc_last, block_map, call_site_count,
23367         tail_call_site_count): New variables.
23368         (dwarf_tag_name): Handle DW_TAG_GNU_call_site and
23369         DW_TAG_GNU_call_site_parameter.
23370         (dwarf_attr_name): Handle DW_AT_GNU_call_site_value,
23371         DW_AT_GNU_call_site_data_value, DW_AT_GNU_call_site_target,
23372         DW_AT_GNU_call_site_target_clobbered, DW_AT_GNU_tail_call,
23373         DW_AT_GNU_all_tail_call_sites, DW_AT_GNU_all_call_sites
23374         and DW_AT_GNU_all_source_call_sites.
23375         (mem_loc_descriptor): Handle ENTRY_VALUE.
23376         (add_src_coords_attributes): Don't add enything if
23377         DECL_SOURCE_LOCATION is UNKNOWN_LOCATION.
23378         (dwarf2out_abstract_function): Save and clear call_arg_location,
23379         call_site_count and tail_call_site_count around dwarf2out_decl call.
23380         (gen_call_site_die): New function.
23381         (gen_subprogram_die): Emit DW_TAG_GNU_call_site DIEs for call sites.
23382         (gen_lexical_block_die, gen_inlined_subroutine_die): Update block_map.
23383         (dwarf2out_function_decl): Clear call_arg_locations,
23384         call_arg_loc_last, set call_site_count and tail_call_site_count
23385         to -1 and free block_map.
23386         (dwarf2out_var_location): Handle NOTE_INSN_CALL_ARG_LOCATION and
23387         CALL_INSNs.  Add NOTE_DURING_CALL_P var location notes even when not
23388         followed by any real instructions.
23389         (dwarf2out_begin_function): Set call_site_count and
23390         tail_call_site_count to 0.
23391         (resolve_addr): If DW_AT_abstract_origin of DW_TAG_GNU_call_site
23392         is dw_val_class_addr, attempt to look it up again, for DECL_EXTERNAL
23393         attempt to force a DIE for it and worst case remove the attribute.
23394         (resolve_one_addr): For TREE_CONSTANT_POOL_ADDRESS_P SYMBOL_REFs
23395         check TREE_ASM_WRITTEN of DECL_INITIAL of the decl instead of
23396         the decl itself.
23397         * var-tracking.c: Include tm_p.h.
23398         (vt_stack_adjustments): For calls call note_register_arguments.
23399         (argument_reg_set): New variable.
23400         (add_stores): For MO_VAL_SET of non-tracked regs from argument_reg_set
23401         ensure the VALUE is resolved.
23402         (call_arguments): New variable.
23403         (prepare_call_arguments): New function.
23404         (add_with_sets): For MO_CALL set u.loc from call_arguments and clear it.
23405         (struct expand_loc_callback_data): Add ignore_cur_loc field.
23406         (vt_expand_loc_callback): If ignore_cur_loc, don't look at cur_loc and
23407         always use the best expression.
23408         (vt_expand_loc): Add ignore_cur_loc argument.
23409         (vt_expand_loc_dummy): Clear ignore_cur_loc field.
23410         (emit_note_insn_var_location): Adjust vt_expand_loc callers.
23411         (emit_notes_in_bb) <case MO_CALL>: Add NOTE_INSN_CALL_ARG_LOCATION
23412         note for all calls.
23413         (vt_add_function_parameter): Use cselib_lookup_from_insn.
23414         If dv is a VALUE, enter into hash table also ENTRY_VALUE for the
23415         argument.  Don't call cselib_preserve_only_values and
23416         cselib_reset_table.
23417         (note_register_arguments): New function.
23418         (vt_initialize): Compute argument_reg_set.  Call
23419         vt_add_function_parameters before processing basic blocks instead of
23420         afterwards.  For calls call prepare_call_arguments before calling
23421         cselib_process_insn.
23422         * print-rtl.c (print_rtx): Handle NOTE_INSN_CALL_ARG_LOCATION.
23423         * Makefile.in (dwarf2out.o): Depend on $(CFGLAYOUT_H).
23424         (var-tracking.o): Depend on $(TM_P_H).
23425         * cfglayout.h (insn_scope): New prototype.
23426         * gengtype.c (adjust_field_rtx_def): Handle NOTE_INSN_CALL_ARG_LOCATION.
23427         * cfglayout.c (insn_scope): No longer static.
23428         * insn-notes.def (CALL_ARG_LOCATION): New.
23429         * calls.c (expand_call, emit_library_call_value_1): Put USEs for
23430         MEM arguments into CALL_INSN_FUNCTION_USAGE unconditionally.
23431         * integrate.c (set_block_origin_self, set_block_abstract_flags): Do
23432         nothing for DECL_EXTERNAL BLOCK_VARS.
23433
23434 2011-03-16  Alan Modra  <amodra@gmail.com>
23435
23436         PR target/45844
23437         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
23438         create invalid offset address for vsx splat insn.
23439         * config/rs6000/predicates.md (splat_input_operand): New.
23440         * config/rs6000/vsx.md (vsx_splat_*): Use it.
23441
23442 2011-03-15  Xinliang David Li  <davidxl@google.com>
23443
23444         PR c/47837
23445         * tree-ssa-uninit.c (pred_chain_length_cmp): New function.
23446         (normalize_preds): New function.
23447         (is_use_properly_guarded): Normalize def predicates.
23448
23449 2011-03-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
23450
23451         PR target/46788
23452         * config/arm/arm.md (arm_movtas_ze): Use 'L' instead of 'c'
23453         in the output template.
23454
23455 2011-03-15  Richard Guenther  <rguenther@suse.de>
23456
23457         PR middle-end/47650
23458         * tree-pretty-print.c (dump_function_declaration): Properly
23459         dump unprototyped and varargs function types.
23460
23461 2011-03-15  Richard Guenther  <rguenther@suse.de>
23462
23463         PR tree-optimization/13954
23464         * tree-ssa-sccvn.c (vn_reference_lookup_3): Look through memcpy
23465         and friends.
23466
23467 2011-03-15  Richard Guenther  <rguenther@suse.de>
23468
23469         PR tree-optimization/48037
23470         * tree-ssa.c (maybe_rewrite_mem_ref_base): Rewrite vector
23471         selects into BIT_FIELD_REFs.
23472         (non_rewritable_mem_ref_base): Check if a MEM_REF is a
23473         vector select.
23474
23475 2011-03-15  Jakub Jelinek  <jakub@redhat.com>
23476
23477         PR tree-optimization/48129
23478         * builtins.c (fold_builtin_snprintf): Convert to type of
23479         built_in_decls[BUILT_IN_SNPRINTF] retval instead of
23480         implicit_built_in_decls[BUILT_IN_SNPRINTF] retval.
23481
23482 2011-03-15  Richard Guenther  <rguenther@suse.de>
23483
23484         PR tree-optimization/41490
23485         * tree-ssa-dce.c (propagate_necessity): Handle returns without
23486         value but with VUSE.
23487         * tree-ssa-operands.c (parse_ssa_operands): Add a VUSE on all
23488         return statements.
23489         * tree-ssa-sink.c (statement_sink_location): Fix store sinking.
23490         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Handle virtual PHIs.
23491         * tree-tailcall.c (find_tail_calls): Ignore returns.
23492
23493 2011-03-15  Richard Guenther  <rguenther@suse.de>
23494
23495         PR middle-end/48031
23496         * fold-const.c (fold_indirect_ref_1): Do not create new variable-sized
23497         or variable-indexed array accesses when in gimple form.
23498
23499 2011-03-15  Richard Guenther  <rguenther@suse.de>
23500
23501         * config/i386/i386.c (ix86_emit_swdivsf): Implement more efficiently.
23502
23503 2011-03-15  Alan Modra  <amodra@gmail.com>
23504
23505         PR target/48032
23506         * config/rs6000/rs6000.c (offsettable_ok_by_alignment): Do not
23507         presume symbol_refs without a symbol_ref_decl are suitably
23508         aligned, nor other trees we may see here.  Handle anchor symbols.
23509         (legitimate_constant_pool_address_p): Comment.  Add mode param.
23510         Check cmodel=medium addresses.  Adjust all calls.
23511         (rs6000_emit_move): Don't call offsettable_ok_by_alignment on
23512         creating cmodel=medium optimized access to locals.
23513         * config/rs6000/constraints.md (R): Pass QImode to
23514         legitimate_constant_pool_address_p.
23515         * config/rs6000/predicates.md (input_operand): Pass mode to
23516         legitimate_constant_pool_address_p.
23517         * config/rs6000/rs6000-protos.h (legitimate_constant_pool_address_p):
23518         Update prototype.
23519
23520 2011-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
23521
23522         PR target/48053
23523         * config/rs6000/rs6000.md (movdi split for 32-bit): Don't split up
23524         64-bit constants being loaded into registers other than GPRs such
23525         as loading 0 into a VSX register.
23526
23527 2011-03-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23528
23529         * config/sol2.c (solaris_assemble_visibility): Remove obsolete URLs.
23530
23531 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
23532
23533         PR middle-end/47917
23534         * builtins.c (fold_builtin_snprintf): New function.
23535         (fold_builtin_3): Call it for BUILT_IN_SNPRINTF.
23536         (fold_builtin_4): Likewise.
23537
23538         PR middle-end/38878
23539         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Add
23540         STRIP_NOPS on arg0 and arg1.  When optimizing X +- C == X
23541         and C - X == X also strip nops from +/-/p+ operand.
23542         When optimizing -X == C, fold C to arg0's type.
23543
23544         PR debug/47946
23545         * dwarf2out.c (add_bit_offset_attribute): If bit_offset is negative,
23546         emit it as add_AT_int instead of add_AT_unsigned.
23547
23548 2011-03-14  Tom Tromey  <tromey@redhat.com>
23549
23550         * unwind-dw2.c: Include sys/sdt.h if it exists.
23551         (_Unwind_DebugHook): Use STAP_PROBE2.
23552         * config.in, configure: Rebuild.
23553         * configure.ac: Check for sys/sdt.h.
23554
23555 2011-03-14  Uros Bizjak  <ubizjak@gmail.com>
23556
23557         * config/i386/i386.md (ROUND_FLOOR): New constant.
23558         (ROUND_CEIL): Ditto.
23559         (ROUND_TRUNC): Ditto.
23560         (ROUND_MXCSR): Ditto.
23561         (ROUND_NO_EXC): Ditto.
23562         (rint<mode>2): Use new defines instead of numerical constants.
23563         (floor<mode>2): Ditto.
23564         (ceil<mode>2): Ditto.
23565         (btrunc<mode>2): Ditto.
23566         * config/i386/i386-builtin-types.def: Define ROUND function type
23567         aliases.
23568         * config/i386/i386.c (enum ix86_builtins): Add
23569         IX86_BUILTIN_{FLOOR,CEIL,TRUNC,RINT}{PS,PD}{,256} defines.
23570         (struct builtin_description): Add
23571         __builtin_ia32_{floor,ceil,trunc,rint}{pd,ps}{,256} descriptions.
23572         (ix86_expand_sse_round): New static function.
23573         (ix86_expand_args_builtin): Call ix86_expand_sse_round for ROUND
23574         function types.
23575         (ix86_builtin_vectorized_function): Handle
23576         BUILT_IN_{FLOOR,CEIL,TRUNC,RINT}{,F} builtins.
23577
23578 2011-03-14  Tom Tromey  <tromey@redhat.com>
23579
23580         * c-parser.c (c_parser_asm_string_literal): Clear
23581         warn_overlength_strings.
23582
23583 2011-03-14  Tom Tromey  <tromey@redhat.com>
23584
23585         * c-parser.c (disable_extension_diagnostics): Save
23586         warn_overlength_strings.
23587         (restore_extension_diagnostics): Restore warn_overlength_strings.
23588
23589 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
23590
23591         * BASE-VER: Change to 4.7.0.
23592
23593 2011-03-14  Richard Guenther  <rguenther@suse.de>
23594
23595         PR middle-end/48098
23596         * tree.c (build_vector_from_val): Adjust assert to requirements
23597         and reality.
23598
23599 2011-03-14  Jakub Jelinek  <jakub@redhat.com>
23600
23601         PR bootstrap/48102
23602         * graphite-cloog-compat.h (build_cloog_prog): Remove STATE parameter.
23603
23604 2011-03-14  Andreas Tobler  <andreast@fgznet.ch>
23605
23606         * config/rs6000/freebsd.h (RELOCATABLE_NEEDS_FIXUP): Define in
23607         terms of target_flags_explicit. Adjust copyright year.
23608
23609         * config.gcc: Add FreeBSD PowerPC soft-float libgcc bits.
23610         * config/rs6000/t-freebsd: New file. Add override for
23611         LIB2FUNCS_EXTRA.
23612
23613 2011-03-13  Chris Demetriou  <cgd@google.com>
23614
23615         * doc/invoke.texi (-fdiagnostics-show-option): Replace with...
23616         (-fno-diagnostics-show-option): this, to reflect current default.
23617         (-Werror=): Update text about -fno-diagnostics-show-option.
23618
23619 2011-03-12  Peter Bergner  <bergner@vnet.ibm.com>
23620
23621         PR target/48053
23622         * config/rs6000/predicates.md (easy_vector_constant_add_self,
23623         easy_vector_constant_msb): Do not handle V2DImode and V2DFmode.
23624         * config/rs6000/rs6000.c (const_vector_elt_as_int): Add assert that
23625         mode is not V2DImode or V2DFmode.
23626         (vspltis_constant): Do not handle V2DImode and V2DFmode.
23627         (rs6000_expand_vector_init): Replace copy_to_reg with copy_to_mode_reg.
23628         * config/rs6000/rs6000.md (movdi_internal32): Allow setting VSX
23629         registers to 0.
23630         (movdi_internal64): Likewise.
23631
23632 2011-03-12  Sebastian Pop  <sebastian.pop@amd.com>
23633
23634         PR tree-optimization/47127
23635         * graphite-clast-to-gimple.c (build_cloog_prog): Removed state
23636         parameter.
23637         (set_cloog_options): Same.
23638         (scop_to_clast): Same.
23639         (print_clast_stmt): Do not call cloog_state_malloc and
23640         cloog_state_free.
23641         (print_generated_program): Same.
23642         (gloog): Same.
23643         * graphite-clast-to-gimple.h (cloog_state): Declared.
23644         (scop_to_clast): Adjust declaration.
23645         * graphite.c (cloog_state): Defined here.
23646         (graphite_initialize): Call cloog_state_malloc.
23647         (graphite_finalize): Call cloog_state_free.
23648
23649 2011-03-11  Jason Merrill  <jason@redhat.com>
23650
23651         * attribs.c (lookup_attribute_spec): Take const_tree.
23652         * tree.h: Adjust.
23653
23654 2011-03-11  Joseph Myers  <joseph@codesourcery.com>
23655
23656         * config/sparc/sparc.c (sparc_option_override): Use
23657         PROCESSOR_NIAGARA2 not PROCESSOR_NIAGARA for "niagara2".
23658
23659 2011-03-11  Richard Guenther  <rguenther@suse.de>
23660
23661         PR tree-optimization/48067
23662         * tree-ssa-math-opts.c (convert_mult_to_fma): Verify the
23663         multiplication result will be only used once on the target
23664         stmt.
23665
23666 2011-03-11  Richard Guenther  <rguenther@suse.de>
23667
23668         * doc/invoke.texi (max-inline-insns-single): Adjust default value.
23669
23670 2011-03-11  Richard Guenther  <rguenther@suse.de>
23671
23672         PR lto/48073
23673         * tree.c (find_decls_types_r): Do not walk types only reachable
23674         from IDENTIFIER_NODEs.
23675
23676 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
23677
23678         PR middle-end/48044
23679         * ipa.c (cgraph_remove_unreachable_nodes): Enqueue
23680         all vnode->force_output nodes as needed.
23681
23682 2011-03-11  Jason Merrill  <jason@redhat.com>
23683
23684         PR c++/48069
23685         * tree.c (type_hash_eq): Use COMPLETE_TYPE_P, not
23686         COMPLETE_OR_UNBOUND_ARRAY_TYPE_P.
23687
23688 2011-03-11  Martin Jambor  <mjambor@suse.cz>
23689
23690         * cgraphunit.c (verify_cgraph_node): Call cgraph_get_node instead of
23691         cgraph_node.
23692
23693 2011-03-11  Jakub Jelinek  <jakub@redhat.com>
23694
23695         PR tree-optimization/48063
23696         * ipa-inline.c (cgraph_decide_inlining): Don't try to
23697         inline functions called once if !tree_can_inline_p (node->callers).
23698
23699 2011-03-11  Chen Liqin  <liqin.gcc@gmail.com>
23700
23701         * config.gcc (score-*-elf): Add extra_parts .., update tmake_file and
23702         extra_objs.
23703         * config/score/score3.c: Delete.
23704         * config/score/score3.h: Delete.
23705         * config/score/mul-div.S: Delete.
23706         * config/score/sfp-machine.h: Add new file.
23707         * config/score/constraints.md: Add new file.
23708         * config/score/t-score-softfp: Add new file.
23709         * config/score/t-score-elf: Remove score3.o, do not generate multilib.
23710         * config/score/score7.c (score7_const_ok_for_letter_p): Delete.
23711         (score7_extra_constraint): Delete.
23712         (score7_option_override): Remove unused code.
23713         * config/score/score.c: Remove score3 and score5 define and code.
23714         * config/score/score.h: Remove score3 and score5 define and code.
23715         * config/score/score.md: Remove score3 template and unusual insn.
23716         * config/score/score.opt: Remove score3 and score5 options.
23717
23718 2011-03-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
23719
23720         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Define _REENTRANT
23721         when _HPUX_SOURCE is defined.
23722         (LIB_SPEC): Use -lc instead of -lc_r when -threads is specified.
23723
23724 2011-03-10  Jason Merrill  <jason@redhat.com>
23725
23726         PR c++/48029
23727         * stor-layout.c (layout_type): Don't set structural equality
23728         on arrays of incomplete type.
23729         * tree.c (type_hash_eq): Handle comparing them properly.
23730
23731 2011-03-10  Jakub Jelinek  <jakub@redhat.com>
23732
23733         PR debug/48043
23734         * config/s390/s390.c (s390_delegitimize_address): Make sure the
23735         result mode matches original rtl mode.
23736
23737 2011-03-10  Nick Clifton  <nickc@redhat.com>
23738
23739         * config/rx/rx.md (bitset_in_memory, bitclr_in_memory: Fix timings.
23740         (andsi3, andsi3_flags): Fix timings for three operand alternative.
23741
23742 2011-03-09  Jakub Jelinek  <jakub@redhat.com>
23743
23744         PR rtl-optimization/47866
23745         * expr.c (store_field): If MEM_SCALAR_P (target), don't use
23746         MEM_SET_IN_STRUCT_P (to_rtx, 1), just set MEM_IN_STRUCT_P (to_rtx)
23747         if target wasn't scalar.
23748         * function.c (assign_stack_temp_for_type): Assert that neither
23749         MEM_SCALAR_P nor MEM_IN_STRUCT_P is set previously, set either
23750         MEM_IN_STRUCT_P or MEM_SCALAR_P instead of using MEM_SET_IN_STRUCT_P
23751         macro.
23752         * rtl.h (MEM_SET_IN_STRUCT_P): Removed.
23753
23754 2011-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23755
23756         * config/s390/s390-protos.h (s390_label_align): New prototype.
23757         * config/s390/s390.c (s390_label_align): New function.
23758         * config/s390/s390.h (LABEL_ALIGN): New target macro definition.
23759
23760 2011-03-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
23761
23762         PR target/47755
23763         * config/rs6000/rs6000.c (easy_altivec_constant): Correctly handle
23764         V2DI/V2DF constants.  Only all 0's or all 1's are easy.
23765         (output_vec_const_move): Ditto.
23766
23767 2011-03-08  Anatoly Sokolov  <aesok@post.ru>
23768
23769         * config/mips/mips.h (PREFERRED_RELOAD_CLASS): Remove macro.
23770         * config/mips/mips-protos.h (mips_preferred_reload_class): Remove.
23771         * config/mips/mips.c (mips_preferred_reload_class): Make static.
23772         Change 'rclass' argument and result type to reg_class_t.
23773         (TARGET_PREFERRED_RELOAD_CLASS): Define.
23774
23775 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
23776
23777         * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
23778         * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
23779         (TARGET_MEMORY_MOVE_COST): Define.
23780         (avr_register_move_cost, avr_memory_move_cost): New Functions.
23781
23782 2011-03-08  Jakub Jelinek  <jakub@redhat.com>
23783
23784         PR debug/47881
23785         * ira.c (ira): Call df_analyze again if delete_trivially_dead_insns
23786         removed anything.
23787
23788         PR tree-optimization/48022
23789         * fold-const.c (fold_comparison): Don't call fold_overflow_warning
23790         for EQ/NE_EXPR.
23791
23792 2011-03-07  Jakub Jelinek  <jakub@redhat.com>
23793
23794         PR debug/47991
23795         * var-tracking.c (find_use_val): Return NULL for
23796         cui->sets && cui->store_p BLKmode MEMs.
23797
23798 2011-03-07  Anatoly Sokolov  <aesok@post.ru>
23799
23800         * config/stormy16/stormy16.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS):
23801         Remove.
23802         * config/stormy16/stormy16-protos.h (xstormy16_print_operand,
23803         xstormy16_print_operand_address): Remove.
23804         * config/stormy16/stormy16.c (xstormy16_print_operand,
23805         xstormy16_print_operand_address): Make static.
23806         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
23807
23808 2011-03-07  Pat Haugen  <pthaugen@us.ibm.com>
23809
23810         PR target/47862
23811         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
23812         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Undefine
23813         before definition.
23814
23815 2011-03-07  Zdenek Dvorak  <ook@ucw.cz>
23816
23817         PR bootstrap/48000
23818         * cfgloopmanip.c (fix_bb_placements): Return immediately
23819         if FROM is BASE_LOOP's header.
23820
23821 2011-03-07  Paul Wögerer  <paul_woegerer@mentor.com>
23822
23823         * gimplify.c (gimplify_function_tree): Fix building calls
23824         to __builtin_return_address.
23825
23826 2011-03-07  Alan Modra  <amodra@gmail.com>
23827
23828         * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define.
23829         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define.
23830         * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define.
23831         * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and
23832         return_mode args.
23833         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes".
23834         (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode.
23835         (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode.
23836         (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE.
23837         * config/rs6000/rs6000.c
23838         (rs6000_elf_end_indicate_exec_stack): Rename to..
23839         (rs6000_elf_file_end): ..this.  Only call file_end_indicate_exec_stack
23840         for POWERPC_LINUX.  Move code emitting .gnu_attribute to here, from..
23841         (rs6000_file_start): ..here.
23842         (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New
23843         file scope variables.
23844         (call_ABI_of_interest): New function.
23845         (init_cumulative_args): Set above vars when function return value
23846         is a float, vector, or small struct.
23847         (rs6000_function_arg_advance_1): Likewise for function args.
23848         (rs6000_va_start): Set rs6000_passes_float if variable arg function
23849         references float args.
23850
23851 2011-03-07  Mingjie Xing  <mingjie.xing@gmail.com>
23852
23853         * doc/cfg.texi: Remove "See" before @ref.
23854         * doc/invoke.texi: Likewise.
23855
23856 2011-03-05  Jason Merrill  <jason@redhat.com>
23857
23858         * doc/invoke.texi (C++ Dialect Options): Document ABI v5.
23859
23860 2011-03-05  Anthony Green  <green@moxielogic.com>
23861
23862         * config.gcc (moxie-*-elf): Add newlib-stdint.h to tmfile.
23863
23864 2011-03-05  Zdenek Dvorak  <ook@ucw.cz>
23865
23866         PR rtl-optimization/47899
23867         * cfgloopmanip.c (fix_bb_placements): Fix first argument
23868         to flow_loop_nested_p when moving the loop upward.
23869
23870 2011-03-05  Richard Earnshaw  <rearnsha@arm.com>
23871
23872         PR target/47719
23873         * arm.md (movhi_insn_arch4):  Accept any immediate constant.
23874
23875 2011-03-05  Jakub Jelinek  <jakub@redhat.com>
23876
23877         PR tree-optimization/47967
23878         * ipa-cp.c (build_const_val): Return NULL instead of creating
23879         VIEW_CONVERT_EXPR for mismatching sizes.
23880         (ipcp_create_replace_map): Return NULL if build_const_val failed.
23881         (ipcp_insert_stage): If ipcp_create_replace_map returns NULL,
23882         give up on versioning.
23883
23884 2011-03-05  Alan Modra  <amodra@gmail.com>
23885
23886         PR target/47986
23887         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
23888         full cmodel medium/large lo_sum + high addresses.
23889
23890 2011-03-04  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23891
23892         * config/s390/s390.c (s390_decompose_address): Reject non-literal
23893         pool references in UNSPEC_LTREL_OFFSET.
23894
23895 2011-03-04  Jan Hubicka  <jh@suse.cz>
23896
23897         PR lto/47497
23898         * lto-symtab.c (lto_cgraph_replace_node): Do not set thunk.alias.
23899         (lto_symtab_merge_cgraph_nodes_1): Update thunk.alias pointers here.
23900         * cgraph.h (cgraph_same_body_alias, cgraph_add_thunk):
23901         Add node pointers.
23902         * cgraph.c (cgraph_same_body_alias_1, cgraph_same_body_alias,
23903         cgraph_add_thunk): Add node pointers.
23904         * lto-cgraph.c (lto_output_node): Verify that thunks&aliases are
23905         associated to right node.
23906         (input_node): Update use of cgraph_same_body_alias
23907         and cgraph_add_thunk.
23908
23909 2011-03-04  Changpeng Fang  <changpeng.fang@amd.com>
23910
23911         * config/i386/i386.opt (mprefer-avx128): New flag.
23912         * config/i386/i386.c (ix86_preferred_simd_mode): Prefer 128-bit AVX
23913         modes when the flag -mprefer-avx128 is on.
23914
23915 2011-03-04  Richard Sandiford  <richard.sandiford@linaro.org>
23916
23917         * dwarf2out.c (compare_loc_operands): Fix address handling.
23918
23919 2011-03-04  Alan Modra  <amodra@gmail.com>
23920
23921         * tree.h (TREE_ADDRESSABLE): Update FUNCTION_DECL comment.
23922
23923 2011-03-04  Richard Guenther  <rguenther@suse.de>
23924
23925         PR middle-end/47968
23926         * expmed.c (extract_bit_field_1): Prefer vector modes that
23927         vec_extract patterns can handle.
23928
23929 2011-03-04  Richard Guenther  <rguenther@suse.de>
23930
23931         PR middle-end/47975
23932         * optabs.c (optab_for_tree_code): Do not use VECTOR_MODE_P.
23933
23934 2011-03-04  Richard Henderson  <rth@redhat.com>
23935
23936         * explow.c (emit_stack_save): Remove 'after' parameter.
23937         (emit_stack_restore): Likewise.
23938         * expr.h: Update to match.
23939         * builtins.c, calls.c, stmt.c: Likewise.
23940         * config/alpha/alpha.md, config/avr/avr.md: Likewise.
23941         * config/mips/mips.md, config/pa/pa.md, config/vax/vax.md: Likewise.
23942         * function.c (expand_function_end): Insert the emit_stack_save
23943         sequence before parm_birth_insn instead of after.
23944
23945 2011-03-03  Uros Bizjak  <ubizjak@gmail.com>
23946
23947         * config/i386/sse.md (*avx_pmaddubsw128): Fix mode of VEC_SELECT RTX.
23948         (ssse3_pmaddubsw128): Ditto.
23949         (ssse3_pmaddubsw): Ditto.
23950
23951 2011-03-03  Steve Ellcey  <sje@cup.hp.com>
23952
23953         * config/ia64/t-hpux: Add $(srcdir)/unwind-c.c to LIB2ADDEH
23954
23955 2011-03-03  Jakub Jelinek  <jakub@redhat.com>
23956
23957         PR c/47963
23958         * gimplify.c (omp_add_variable): Only call omp_notice_variable
23959         on TYPE_SIZE_UNIT if it is a DECL.
23960
23961         PR debug/47283
23962         * cfgexpand.c (expand_debug_expr) <case MEM_REF>: If MEM_REF
23963         first operand is not is_gimple_mem_ref_addr, try to fold it.
23964         If the operand still isn't is_gimple_mem_ref_addr, clear
23965         MEM_EXPR on op0.
23966
23967 2011-03-03  Richard Guenther  <rguenther@suse.de>
23968
23969         PR middle-end/47283
23970         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Make code
23971         match comment.
23972         (refs_may_alias_p_1): For release branches return true if
23973         we are confused by our input.
23974
23975 2011-03-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
23976
23977         * config/s390/s390.c (s390_function_value): Rename to ...
23978         (s390_function_and_libcall_value): ... this.
23979         (s390_function_value): New function.
23980         (s390_libcall_value): New function.
23981         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Define target hooks.
23982         * config/s390/s390.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove
23983         target macro definitions.
23984         * config/s390/s390-protos.h (s390_function_value): Remove prototype.
23985
23986 2011-03-02  Joseph Myers  <joseph@codesourcery.com>
23987
23988         * config/i386/freebsd64.h (CC1_SPEC): Define.
23989         * config/i386/linux64.h (CC1_SPEC): Define.
23990         * config/i386/x86-64.h (CC1_SPEC): Don't define.
23991
23992 2011-03-02  Anatoly Sokolov  <aesok@post.ru>
23993
23994         * config/stormy16/stormy16.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
23995         Remove.
23996         * config/stormy16/stormy16.c: Include reload.h.
23997         (xstormy16_memory_move_cost): New function.
23998         (TARGET_MEMORY_MOVE_COST): Define.
23999
24000 2011-03-02  Richard Sandiford  <richard.sandiford@linaro.org>
24001
24002         PR rtl-optimization/47925
24003         * cse.c (count_reg_usage): Don't ignore the SET_DEST of instructions
24004         with side effects.  Remove the more-specific check for volatile asms.
24005
24006 2011-03-02  Alan Modra  <amodra@gmail.com>
24007
24008         PR target/47935
24009         * config/rs6000/predicates.md (lwa_operand): Check cmodel medium
24010         toc relative addresses for valid offsets.
24011
24012 2011-03-01  Richard Guenther  <rguenther@suse.de>
24013
24014         PR tree-optimization/47890
24015         * tree-vect-loop.c (get_initial_def_for_induction): Set
24016         related stmt properly.
24017
24018 2011-03-01  Richard Guenther  <rguenther@suse.de>
24019
24020         PR lto/47924
24021         * lto-streamer.c (lto_record_common_node): Also register
24022         the canonical type.
24023
24024 2011-03-01  Richard Guenther  <rguenther@suse.de>
24025
24026         PR lto/46911
24027         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
24028         Do not stream DECL_ABSTRACT_ORIGIN.
24029         (lto_input_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
24030         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
24031         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
24032         Do not stream DECL_ABSTRACT_ORIGIN.
24033         (lto_output_ts_block_tree_pointers): Nor BLOCK_SOURCE_LOCATION,
24034         BLOCK_NONLOCALIZED_VARS or BLOCK_ABSTRACT_ORIGIN.
24035
24036 2011-02-28  Anatoly Sokolov  <aesok@post.ru>
24037
24038         * config/stormy16/stormy16.h (FUNCTION_VALUE, LIBCALL_VALUE,
24039         FUNCTION_VALUE_REGNO_P): Remove.
24040         * config/stormy16/stormy16-protos.h (xstormy16_function_value): Remove.
24041         * config/stormy16/stormy16.c (xstormy16_function_value): Make static.
24042         Add 'outgoing' argument.
24043         (xstormy16_libcall_value, xstormy16_function_value_regno_p): New
24044         function.
24045         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
24046         TARGET_FUNCTION_VALUE_REGNO_P): Define.
24047
24048 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
24049
24050         PR debug/28047
24051         * dwarf2out.c (file_table_eq): Use filename_cmp instead of strcmp.
24052         (lookup_filename): Likewise.
24053         * final.c (remap_debug_filename): Use filename_ncmp instead of strncmp.
24054
24055 2011-02-28  Bernd Schmidt  <bernds@codesourcery.com>
24056             Jakub Jelinek  <jakub@redhat.com>
24057
24058         PR middle-end/47893
24059         * rtl.h (ASLK_REDUCE_ALIGN, ASLK_RECORD_PAD): Define.
24060         (assign_stack_local_1): Change last argument type to int.
24061         * function.c (assign_stack_local_1): Replace reduce_alignment_ok
24062         argument with kind.  If bit ASLK_RECORD_PAD is not set in it,
24063         don't record padding space into frame_space_list nor use those areas.
24064         (assign_stack_local): Adjust caller.
24065         (assign_stack_temp_for_type): Call assign_stack_local_1 instead
24066         of assign_stack_local, pass 0 as last argument.
24067         * caller-save.c (setup_save_areas): Adjust assign_stack_local_1
24068         callers.
24069
24070 2011-02-28  Jakub Jelinek  <jakub@redhat.com>
24071
24072         PR debug/47283
24073         * cfgexpand.c (convert_debug_memory_address): Add AS parameter.
24074         Use target address_mode and pointer_mode hooks instead of hardcoded
24075         Pmode and ptr_mode.  Handle some simple cases of extending if
24076         POINTERS_EXTEND_UNSIGNED < 0.
24077         (expand_debug_expr) <case MEM_REF, INDIRECT_REF, TARGET_MEM_REF>:
24078         Call convert_debug_memory_address.
24079         (expand_debug_expr) <case ADDR_EXPR>: Pass as to
24080         convert_debug_memory_address.
24081
24082         PR middle-end/46790
24083         * configure.ac (HAVE_LD_EH_GC_SECTIONS_BUG): New test.
24084         * configure: Regenerated.
24085         * config.in: Regenerated.
24086         * varasm.c (default_function_section): Return NULL
24087         if HAVE_LD_EH_GC_SECTIONS_BUG and decl has implicit section name.
24088
24089 2011-02-28  Martin Jambor  <mjambor@suse.cz>
24090
24091         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Fix
24092         the description to match the printed values.
24093
24094 2011-02-28  Richard Guenther  <rguenther@suse.de>
24095
24096         * tree-inline.c (tree_function_versioning): Set BLOCK_SUPERCONTEXT
24097         of the copied scope tree.
24098
24099 2011-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24100
24101         * doc/extend.texi (Function Attributes): Avoid deeply (and
24102         wrongly) nested tables.
24103
24104 2011-02-27  Jakub Jelinek  <jakub@redhat.com>
24105
24106         PR middle-end/47903
24107         * real.c (real_arithmetic) <case PLUS_EXPR, MINUS_EXPR,
24108         MULT_EXPR, RDIV_EXPR>: Clear padding bits in *r first if
24109         r isn't op0 nor op1.
24110
24111 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
24112
24113         * config/avr/avr.md: Remove magic comment for emacs.
24114
24115 2011-02-23  Georg-Johann Lay  <avr@gjlay.de>
24116
24117         PR target/45261
24118         * config/avr/avr.c (avr_option_override): Use error on bad options.
24119         (avr_help): New function.
24120         (TARGET_HELP): Define.
24121
24122 2011-02-22  Georg-Johann Lay  <avr@gjlay.de>
24123
24124         PR target/42240
24125         * config/avr/avr.c (avr_cannot_modify_jumps_p): New function.
24126         (TARGET_CANNOT_MODIFY_JUMPS_P): Define.
24127
24128 2011-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
24129
24130         * doc/invoke.texi (ARC Options): Use CPU instead of cpu.
24131         (ARM Options): Ditto.
24132         (i386 and x86-64 Options): Ditto.
24133         (RX Options): Ditto.
24134         (SPARC Options): Ditto.
24135
24136 2011-02-26  Tijl Coosemans  <tijl@coosemans.org>
24137
24138         * config.gcc (i386-*-freebsd*): Make i486 the default arch on
24139         FreeBSD 6 and later.  Generally use cpu generic.
24140
24141 2011-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
24142
24143         * doc/cpp.texi: Update copyright years.
24144
24145 2011-02-25  Sebastien Bourdeauducq  <sebastien@milkymist.org>
24146
24147         PR target/46898
24148         * config/lm32/lm32.md (ashrsi3): Added needed variable.
24149
24150 2011-02-25  Jon Beniston  <jon@beniston.com>
24151
24152         PR target/46898
24153         * config/lm32/lm32.h (INCOMING_RETURN_ADDR_RTX): New.
24154         * config/lm32/lm32.md (ashlsi3): Remove unused variable.
24155         * config/lm32/lm32.c (TARGET_EXCEPT_UNWIND_INFO): New.
24156         (lm32_block_move_inline): Add type cast to remove warning.
24157         (lm32_expand_prologue): Generate fp in a way compatible with dwarf2out.
24158         (gen_int_relational): Move declarations to start of function.
24159
24160 2011-02-25  Eric Botcazou  <ebotcazou@adacore.com>
24161
24162         PR tree-optimization/45470
24163         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
24164         can throw internally only.
24165         * tree-vect-stmts.c (vectorizable_call): Likewise.
24166
24167 2011-02-24  Anatoly Sokolov  <aesok@post.ru>
24168
24169         * config/stormy16/stormy16.h (PREFERRED_RELOAD_CLASS,
24170         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
24171         * config/stormy16/stormy16-protos.h
24172         (xstormy16_preferred_reload_class): Remove.
24173         * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Make
24174         static. Change 'rclass' argument and return type to reg_class_t.
24175         (TARGET_PREFERRED_RELOAD_CLASS,
24176         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
24177
24178 2011-02-24  Richard Guenther  <rguenther@suse.de>
24179
24180         * lto-streamer-in.c (input_bb): Do not find referenced vars
24181         in debug statements.
24182
24183 2011-02-23  Jason Merrill  <jason@redhat.com>
24184
24185         * common.opt (fabi-version): Document v5 and v6.
24186
24187 2011-02-23  Richard Guenther  <rguenther@suse.de>
24188
24189         PR tree-optimization/47849
24190         * tree-if-conv.c (main_tree_if_conversion): Free postdom info.
24191
24192 2011-02-23  Jie Zhang  <jie@codesourcery.com>
24193
24194         * opts-common.c (decode_cmdline_option): Print empty string
24195         argument as "" in decoded->orig_option_with_args_text.
24196         * gcc.c (execute): Print empty string argument as ""
24197         in the verbose output.
24198         (do_spec_1): Keep empty string argument.
24199
24200 2011-02-23  Nathan Froyd  <froydnj@codesourcery.com>
24201
24202         * config.gcc: Declare score-* and crx-* obsolete.
24203
24204 2011-02-23  Jie Zhang  <jie@codesourcery.com>
24205
24206         PR rtl-optimization/47763
24207         * web.c (web_main): Ignore naked clobber when replacing register.
24208
24209 2011-02-22  Anatoly Sokolov  <aesok@post.ru>
24210
24211         * config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
24212         Remove.
24213
24214 2011-02-22  Sebastian Pop  <sebastian.pop@amd.com>
24215
24216         PR doc/47848
24217         * doc/invoke.texi: Do not mention -ftree-loop-if-convert-memory-writes.
24218
24219 2011-02-22  Mike Stump  <mikestump@comcast.net>
24220
24221         * acinclude.m4 (gcc_cv_gas_vers): Add -arch ppc for probing darwin
24222         assembler.
24223         * configure: Regenerate.
24224
24225 2011-02-21  Chung-Lin Tang  <cltang@codesourcery.com>
24226
24227         PR rtl-optimization/46002
24228         * ira-color.c (update_copy_costs): Change class intersection
24229         test to reg_class_contents[] test of 'hard_regno'.
24230
24231 2011-02-21  Joseph Myers  <joseph@codesourcery.com>
24232
24233         * config/alpha/osf5.opt (mno-mips-tfile): Mark as Target rather
24234         than Driver option.
24235         * config/hpux11.opt (mt): Likewise.
24236         * config/microblaze/microblaze.opt (mxl-mode-xilkernel): Likewise.
24237         * config/rs6000/xilinx.opt (mno-clearbss, mppcperflib): Likewise.
24238         * config/vax/elf.opt (mno-asm-pic): Likewise.
24239         * config/vms/vms.opt (map, mvms-return-codes): Likewise.
24240
24241 2011-02-21  Mike Stump  <mikestump@comcast.net>
24242
24243         PR target/47822
24244         * config/darwin-protos.h (darwin_init_cfstring_builtins): Return a
24245         tree so we can get save the type.
24246         * config/i386/darwin.h (SUBTARGET_INIT_BUILTINS): Reserve builtin slot
24247         for CFString instead of trying to use past the end of the builtins.
24248         * config/i386/i386.c (IX86_BUILTIN_CFSTRING): Likewise.
24249         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_CFSTRING): Likewise.
24250         * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Likewise.
24251         * config/darwin.c (DARWIN_BUILTIN_CFSTRINGMAKECONSTANTSTRING):
24252         Rename to darwin_builtin_cfstring.
24253         (darwin_init_cfstring_builtins): Return the built type.
24254
24255 2011-02-21  Uros Bizjak  <ubizjak@gmail.com>
24256
24257         PR target/47840
24258         * config/i386/avxintrin.h (_mm256_insert_epi32): Use _mm_insert_epi32.
24259         (_mm256_insert_epi64): Use _mm_insert_epi64.
24260
24261 2011-02-21  Anatoly Sokolov  <aesok@post.ru>
24262
24263         * config/stormy16/stormy16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
24264         * config/stormy16/stormy16-protos.h
24265         (xstormy16_mode_dependent_address_p): Remove.
24266         * config/stormy16/stormy16.c (xstormy16_mode_dependent_address_p):
24267         Make static. Change return type to bool. Change argument type to
24268         const_rtx. Remove dead code.
24269         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
24270
24271 2011-02-21  Richard Guenther  <rguenther@suse.de>
24272
24273         PR lto/47820
24274         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
24275         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
24276         (lto_input_ts_block_tree_pointers): Hook a BLOCK into the
24277         TUs context.
24278         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
24279         Do not stream DECL_INITIAL for TRANSLATION_UNIT_DECLs.
24280
24281 2011-02-20  Richard Guenther  <rguenther@suse.de>
24282
24283         PR lto/47822
24284         * tree.c (free_lang_data_in_decl): Clean builtins from
24285         the TU decl BLOCK_VARS.
24286
24287 2011-02-19  Alexandre Oliva  <aoliva@redhat.com>
24288
24289         PR debug/47620
24290         PR debug/47630
24291         * haifa-sched.c (fix_tick_ready): Skip tick computation
24292         for debug insns.
24293
24294 2011-02-19  Richard Guenther  <rguenther@suse.de>
24295
24296         PR lto/47647
24297         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
24298         Remove lazy BLOCK_VARS streaming.
24299         (lto_input_ts_block_tree_pointers): Likewise.
24300         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
24301
24302 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
24303
24304         * config.gcc (i[34567]86-pc-msdosdjgpp*): Use i386/djgpp-stdint.h.
24305
24306 2011-02-19  Joseph Myers  <joseph@codesourcery.com>
24307
24308         * config/i386/biarch32.h, config/i386/mach.h,
24309         config/rs6000/aix.opt, config/sh/superh64.h: Remove.
24310
24311 2011-02-19  Jakub Jelinek  <jakub@redhat.com>
24312
24313         PR target/47800
24314         * config/i386/i386.md (peephole2 for shift and plus): Use
24315         operands[1] original mode in the first insn.
24316
24317 2011-02-18  Mike Stump  <mikestump@comcast.net>
24318
24319         * config/t-darwin (TM_H): Add dependency on darwin-sections.def.
24320
24321 2011-02-18  Jan Hubicka  <jh@suse.cz>
24322
24323         PR middle-end/47788
24324         * ipa-inline.c (compute_inline_parameters): Set disregard_inline_limits
24325         to zero when the function is not inlinable at all.
24326
24327 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24328
24329         * config.gcc (hppa[12]*-*-hpux11*): Set extra_parts.
24330         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
24331         pthread_mutex_unlock, pthread_once): Reinstate pthread stubs.
24332         * config/pa/t-pa-hpux11: Add rules to build pthread stubs.
24333         * config/pa/t-pa64: Likewise.
24334         * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
24335
24336 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
24337
24338         PR driver/47787
24339         * gcc.c (default_compilers): Clear combinable field for "@cpp-output".
24340
24341 2011-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
24342
24343         PR target/47792
24344         * gthr-dce.h (__gthread_mutx_destroy): Fix typo in name.
24345
24346 2011-02-18  Anatoly Sokolov  <aesok@post.ru>
24347
24348         * config/m32r/m32r.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
24349         RTX_OK_FOR_BASE_P, RTX_OK_FOR_OFFSET_P, LEGITIMATE_OFFSET_ADDRESS_P,
24350         LEGITIMATE_LO_SUM_ADDRESS_P, LOAD_POSTINC_P, STORE_PREINC_PREDEC_P,
24351         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
24352         * config/m32r/m32r.c (TARGET_LEGITIMATE_ADDRESS_P): Define.
24353         (m32r_rtx_ok_for_base_p, m32r_rtx_ok_for_offset_p,
24354         m32r_legitimate_offset_addres_p, m32r_legitimate_lo_sum_addres_p,
24355         m32r_load_postinc_p, m32r_store_preinc_predec_p,
24356         m32r_legitimate_address_p): New functions.
24357         * config/m32r/constraints.md (constraint "S"): Don't use
24358         STORE_PREINC_PREDEC_P.
24359         (constraint "U"): Don't use LOAD_POSTINC_P.
24360
24361 2011-02-18  Chung-Lin Tang  <cltang@codesourcery.com>
24362
24363         PR rtl-optimization/46178
24364         * ira.c (setup_hard_regno_class): Use ira_class_translate[] to
24365         compute ira_hard_regno_cover_class[].
24366
24367 2011-02-18  Richard Guenther  <rguenther@suse.de>
24368
24369         PR lto/47798
24370         * lto-streamer.h (lto_global_var_decls): Declare.
24371         * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register
24372         statics for global var processing.
24373
24374 2011-02-18  Richard Guenther  <rguenther@suse.de>
24375
24376         PR tree-optimization/47737
24377         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Fix
24378         edge dominance check.
24379
24380 2011-02-18  Jakub Jelinek  <jakub@redhat.com>
24381
24382         PR debug/47780
24383         * cfgexpand.c (expand_debug_expr) <case SSA_NAME>: Call copy_rtx to
24384         avoid invalid rtx sharing.
24385
24386 2011-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
24387
24388         * doc/cpp.texi (Obsolete Features): Add background on the
24389         origin of assertions.
24390
24391 2011-02-17  Iain Sandoe  <iains@gcc.gnu.org>
24392
24393         * config/darwin-c.c (darwin_cpp_builtins): Define __OBJC2__ for
24394         objc_abi == 2.
24395         * config/darwin.c (output_objc_section_asm_op): Added support for
24396         ABI v1 and v2.
24397         (is_objc_metadata): New.
24398         (darwin_objc2_section): New.
24399         (darwin_objc1_section): New.
24400         (machopic_select_section): Added support for ABI v1 and v2.
24401         (darwin_emit_objc_zeroed): New.
24402         (darwin_output_aligned_bss): Detect objc metadata and treat it
24403         appropriately.
24404         (darwin_asm_output_aligned_decl_common): Same.
24405         (darwin_asm_output_aligned_decl_local): Same.
24406         * config/darwin-sections.def: Updated for ABI v1 and v2.
24407         * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): When
24408         compiling Objective-C code for the NeXT runtime, default to using
24409         ABI version 0 for 32-bit, and version 2 for 64-bit.
24410
24411 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
24412
24413         * common.opt (optimize_fast): New Variable.
24414         * opts.c (default_options_optimization): Use opts->x_optimize_fast
24415         instead of local variable ofast.
24416
24417 2011-02-17  Nicola Pero  <nicola.pero@meta-innovation.com>
24418
24419         * doc/invoke.texi (fobjc-abi-version): Documented.
24420         (fobjc-nilcheck): Documented.
24421         (fno-nil-receiver): Updated documentation to refer to the NeXT ABI
24422         version.
24423
24424 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
24425
24426         PR driver/47390
24427         * common.opt (export-dynamic): New Driver option.
24428         * gcc.c (LINK_COMMAND_SPEC): Add comment about %{e*}.
24429
24430 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
24431
24432         * config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
24433
24434 2011-02-17  Alexandre Oliva  <aoliva@redhat.com>
24435             Jan Hubicka  <jh@suse.cz>
24436
24437         PR debug/47106
24438         PR debug/47402
24439         * cfgexpand.c (account_used_vars_for_block): Remove.
24440         (estimated_stack_frame_size): Use referenced vars.
24441         * tree-inline.c (remap_decl): Only mark VAR_DECLs as referenced
24442         that were referenced in the original function.  Test src_fn
24443         rather than cfun.  Drop redundant get_var_ann.
24444         (setup_one_parameter): Drop redundant get_var_ann.
24445         (declare_return_variable): Likewise.
24446         (copy_decl_for_dup_finish): Mark VAR_DECLs referenced in src_fn.
24447         (copy_arguments_for_versioning): Drop redundant get_var_ann.
24448         * ipa-inline.c (compute_inline_parameters): Do not compute
24449         disregard_inline_limits here.
24450         (compute_inlinable_for_current, pass_inlinable): New.
24451         (pass_inline_parameters): Require PROP_referenced_vars.
24452         * cgraphunit.c (cgraph_process_new_functions): Don't run
24453         compute_inline_parameters explicitly unless function is in SSA form.
24454         (cgraph_analyze_function): Set .disregard_inline_limits.
24455         * tree-sra.c (convert_callers): Compute inliner parameters
24456         only for functions already in SSA form.
24457
24458 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
24459
24460         * config/sparc/sparc.h (CPP_ENDIAN_SPEC): Don't handle
24461         -mlittle-endian-data.
24462
24463 2011-02-17  Joseph Myers  <joseph@codesourcery.com>
24464
24465         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Match -mfpu and
24466         -mno-fpu, not -fpu and -no-fpu.
24467         * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): Likewise.
24468         * config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Likewise.
24469
24470 2011-02-17  Uros Bizjak  <ubizjak@gmail.com>
24471
24472         PR target/43653
24473         * config/i386/i386.c (ix86_secondary_reload): Handle SSE
24474         input reload with PLUS RTX.
24475
24476 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24477
24478         * config/mips/mips.opt (mno-mdmx): Use Var(TARGET_MDMX, 0) instead
24479         of InverseVar(MDMX).
24480
24481 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24482
24483         * config/sh/embed-elf.h (LIBGCC_SPEC): Match -m4-340 instead of
24484         --m4-340.
24485
24486 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24487
24488         * config/mn10300/mn10300.opt (mno-crt0): New.
24489
24490 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24491
24492         * config/m68k/uclinux.opt (static-libc): New Driver option.
24493
24494 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24495
24496         * config/m32c/m32c.h (LIB_SPEC): Match -msim not -msim*.
24497
24498 2011-02-16  Joseph Myers  <joseph@codesourcery.com>
24499
24500         * config/lm32/lm32.h (ASM_SPEC): Use %{muser-enabled} instead of
24501         %{muser-extend-enabled}.
24502
24503 2011-02-16  Richard Guenther  <rguenther@suse.de>
24504
24505         PR tree-optimization/47738
24506         * tree-ssa-loop.c (run_tree_predictive_commoning): Return
24507         the TODO from tree_predictive_commoning.
24508
24509 2011-02-15  Jeff Law  <law@redhat.com>
24510
24511         Revert
24512         2011-01-25  Jeff Law  <law@redhat.com>
24513
24514         PR rtl-optimization/37273
24515         * ira-costs.c (scan_one_insn): Detect constants living in memory and
24516         handle them like argument loads from stack slots.  Do not double
24517         count memory for memory constants and argument loads from stack slots.
24518
24519 2011-02-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
24520
24521         PR target/47755
24522         * config/rs6000/predicates.md (easy_vector_constant): Allow V2DI
24523         mode for vector constants.  Remove code that checks for TImode.
24524
24525 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
24526
24527         PR debug/47106
24528         PR debug/47402
24529         * cgraph.h (compute_inline_parameters): Return void.
24530         * ipa-inline.c (compute_inline_parameters): Adjust.
24531
24532 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
24533
24534         PR debug/47106
24535         PR debug/47402
24536         * tree-inline.h (estimated_stack_frame_size): Take cgraph node
24537         rather than decl.
24538         * cfgexpand.c (estimated_stack_frame_size): Likewise.
24539         * ipa-inline.c (compute_inline_parameters): Adjust.
24540
24541 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
24542
24543         PR debug/47106
24544         PR debug/47402
24545         * tree-flow.h (FOR_EACH_REFERENCED_VAR): Add FN argument.
24546         Adjust all users.  Pass FN to...
24547         * tree-flow-inline.h (first_referenced_var): ... this.  Add
24548         fn argument.
24549         * ipa-struct-reorg.c: Adjust.
24550         * tree-dfa.c: Adjust.
24551         * tree-into-ssa.c: Adjust.
24552         * tree-sra.c: Adjust.
24553         * tree-ssa-alias.c: Adjust.
24554         * tree-ssa-live.c: Adjust.
24555         * tree-ssa.c: Adjust.
24556         * tree-ssanames.c: Adjust.
24557         * tree-tailcall.c: Adjust.
24558
24559 2011-02-15  Alexandre Oliva  <aoliva@redhat.com>
24560
24561         PR debug/47106
24562         PR debug/47402
24563         * tree-flow.h (referenced_var_lookup): Add fn parameter.
24564         Adjust all callers.
24565         * tree-dfa.c (referenced_var_lookup): Use fn instead of cfun.
24566         * tree-flow-inline.h: Adjust.
24567         * gimple-pretty-print.c: Adjust.
24568         * tree-into-ssa.c: Adjust.
24569         * tree-ssa.c: Adjust.
24570         * cfgexpand.c: Adjust.
24571
24572 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
24573
24574         * config/iq2000/i2000.h (REG_CLASS_FROM_LETTER): Delete.
24575         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24576         (EXTRA_CONSTRAINT): Delete.
24577         * config/iq2000/constraints.md: New file.
24578         * config/iq2000/iq2000.md: Include it.
24579         (define_insn ""): Delete.
24580         (movsi_internal2, movhi_internal2, movqi_internal2): Delete
24581         unsupported constraint letters from patterns.
24582         (call_value, call_value_internal1): Likewise.
24583         (call_value_multiple_internal1): Likewise.
24584
24585 2011-02-15  Nick Clifton  <nickc@redhat.com>
24586
24587         * config/mn10300/mn10300.c: Include tm-constrs.h.
24588         (struct liw_data): New data structure describing an LIW candidate
24589         instruction.
24590         (extract_bundle): Use struct liw_data.  Allow small integer
24591         operands for some instructions.
24592         (check_liw_constraints): Use struct liw_data.  Remove swapped
24593         parameter.  Add comments describing the checks.  Fix bug when
24594         assigning the source of liw1 to the source of liw2.
24595         (liw_candidate): Delete.  Code moved into extract_bundle.
24596         (mn10300_bundle_liw): Use struct liw_data.  Check constraints
24597         before swapping.
24598         * config/mn10300/predicates.md (liw_operand): New predicate.
24599         Allows registers and small integer constants.
24600         * config/mn10300/constraints.md (O): New constraint.  Accetps
24601         integers in the range -8 to +7 inclusive.
24602         * config/mn10300/mn10300.md (movesi_internal): Add an alternative
24603         for moving a small integer into a register.  Give this alternative
24604         LIW attributes.
24605         (addsi3, subsi3, cmpsi, lshrsi3, ashrsi3): Likewise.
24606         (ashlsi3): Likewise, plus give LIW attributes to the alternatives
24607         using the J,K,L and M constraints,
24608         (liw): Remove SI mode on second operands to allow for HI and QI
24609         mode values.
24610         (cmp_liw, liw_cmp): Likewise.  Plus fix order of operands in the
24611         instruction.
24612
24613 2011-02-15  Richard Guenther  <rguenther@suse.de>
24614
24615         PR tree-optimization/47743
24616         * tree-ssa-pre.c (phi_translate_1): If we didn't get a value-number
24617         for a non-type-compatible VN lookup bail out.
24618
24619 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
24620
24621         * config/fr30/constraints.md: New file.
24622         * config/fr30/fr30.md: Include it.
24623         * config/fr30/fr30.h (REG_CLASS_FROM_LETTER): Delete.
24624         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24625         (EXTRA_CONSTRAINT): Delete.
24626
24627 2011-02-15  Nathan Froyd  <froydnj@codesourcery.com>
24628
24629         * config/frv/constraints.md: New file.
24630         * config/frv/predicates.md: Include it.
24631         * config/frv/frv.c (reg_class_from_letter): Delete.
24632         (frv_option_override): Don't initialize it.
24633         * config/frv/frv.h (REG_CLASS_FROM_LETTER): Delete.
24634         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_K): Delete.
24635         (CONST_OK_FOR_L, CONST_OK_FOR_M, CONST_OK_FOR_N): Delete.
24636         (CONST_OK_FOR_O, CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
24637         (CONST_DOUBLE_OK_FOR_G, CONST_DOUBLE_OK_FOR_H): Delete.
24638         (CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24639         (EXTRA_CONSTRAINT_FOR_Q, EXTRA_CONSTRAINT_FOR_R): Delete.
24640         (EXTRA_CONSTRAINT_FOR_S, EXTRA_CONSTRAINT_FOR_T): Delete.
24641         (EXTRA_CONSTRAINT_FOR_U, EXTRA_CONSTRAINT): Delete.
24642         (EXTRA_MEMORY_CONSTRAINT, CONSTRAINT_LEN): Delete.
24643         (REG_CLASS_FROM_CONSTRAINT): Delete.
24644
24645 2011-02-15  Jakub Jelinek  <jakub@redhat.com>
24646
24647         PR middle-end/47581
24648         * config/i386/i386.c (ix86_compute_frame_size): Don't align offset
24649         if frame size is 0 in a leaf function.
24650
24651 2011-02-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24652
24653         PR pch/14940
24654         * config/alpha/host-osf.c: New file.
24655         * config/alpha/x-osf: New file.
24656         * config.host (alpha*-dec-osf*): Use it.
24657
24658 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
24659
24660         * config/rx/rx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
24661         * config/rx/rx-protos.h (rx_is_mode_dependent_addr): Remove.
24662         * config/xtensa/xtensa.c (rx_is_mode_dependent_addr): Rename to...
24663         (rx_mode_dependent_address_p): ...this. Make static. Change argument
24664         type to const_rtx.
24665         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
24666
24667 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
24668
24669         * config/stormy16/constraints.md: New file.
24670         * config/stormy16/predicates.md (nonimmediate_nonstack_operand):
24671         Use satisfies_constraint_Q and satisfies_constraint_R.
24672         * config/stormy16/stomry16-protos.h (xstormy16_extra_constraint_p):
24673         Delete.
24674         (xstormy16_legitiamte_address_p): Declare.
24675         * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Delete.
24676         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24677         (EXTRA_CONSTRAINT): Delete.
24678         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
24679         Un-staticize.
24680         (xstormy16_extra_constraint_p): Delete.
24681
24682 2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
24683
24684         PR tree-optimization/46494
24685         * loop-unroll.c (split_edge_and_insert): Adjust comment.
24686         * loop-init.c (loop_optimizer_finalize): Do not call verify_flow_info.
24687         (pass_rtl_loop_done): Add TODO_verify_flow.
24688         * fwprop.c (pass_rtl_fwprop): Likewise.
24689         * modulo-sched.c (pass_sms): Likewise.
24690         * tree-ssa-dom.c (pass_dominator): Likewise.
24691         * tree-ssa-loop-ch.c (pass_ch): Likewise.
24692         * tree-ssa-loop.c (pass_complete_unrolli): Likewise.
24693         (pass_tree_loop_done): Likewise.
24694         * tree-ssa-pre.c (execute_pre): Likewise.
24695         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
24696         * tree-ssa-sink.c (pass_sink_code): Likewise.
24697         * tree-vrp.c (pass_vrp): Likewise.
24698
24699 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
24700
24701         * config/v850/constraints.md: New file.
24702         * config/v850/v850.md: Include it.
24703         * config/v850/predicates.md (reg_or_0_operand): Use
24704         satisfies_constraint_G.
24705         (special_symbolref_operand): Use satisfies_constraint_K.
24706         * config/v850/v850.h (CONSTANT_ADDRESS_P): Use constraint_satisfied_p.
24707         (GO_IF_LEGITIMATE_ADDRESS): Likewise.
24708         (REG_CLASS_FROM_LETTER, INT_7_BITS, INT_8_BITS): Delete.
24709         (CONST_OK_FOR_P, CONST_OK_FOR_LETTER_P): Delete.
24710         (EXTRA_CONSTRAINT): Delete.
24711         (CONST_OK_FOR_I, CONST_OK_FOR_J): Use insn_const_int_ok_for_constraint.
24712         (CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M): Likewise.
24713         (CONST_OK_FOR_N, CONST_OK_FOR_O): Likewise.
24714
24715 2011-02-14  Anatoly Sokolov  <aesok@post.ru>
24716
24717         PR target/47696
24718         * config/avr/avr-devices.c (avr_mcu_types): Fix ATmega2560 device
24719         description.
24720
24721 2011-02-14  Nathan Froyd  <froydnj@codesourcery.com>
24722
24723         * config/mcore/constraints.md: New file.
24724         * config/mcore/mcore.md: Include it.
24725         * config/mcore/mcore.c (reg_class_from_letter): Delete.
24726         * config/mcore/mcore.h (reg_class_from_letter): Delete.
24727         (REG_CLASS_FROM_LETTER): Delete.
24728         (CONST_OK_FOR_I, CONST_OK_FOR_J, CONST_OK_FOR_L): Use
24729         insn_const_int_ok_for_constraint.
24730         (CONST_OK_FOR_K, CONST_OK_FOR_M, CONST_OK_FOR_N): Likewise.
24731         (CONST_OK_FOR_O, CONST_OK_FOR_P): Likewise.
24732         (CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P): Delete.
24733         (EXTRA_CONSTRAINT): Delete.
24734
24735 2011-02-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24736
24737         PR ada/41929
24738         * config/sparc/sol2-unwind.h: Include <sys/frame.h>, <sys/stack.h>
24739         (IS_SIGHANDLER): Define.
24740         (sparc64_is_sighandler): New function, split off from
24741         sparc64_fallback_frame_state.
24742         (sparc_is_sighandler): New function, split off from
24743         sparc_fallback_frame_state.
24744         (sparc64_fallback_frame_state): Merge with ...
24745         (sparc_fallback_frame_state): ... this into ...
24746         (MD_FALLBACK_FRAME_STATE_FOR): ... this.
24747         Change new_cfa to long.  Remove regs_off, fpu_save_off, fpu_save.
24748         Define nframes, mctx.  Use IS_SIGHANDLER, handler_args, mctx, walk
24749         stack instead of hardcoded offsets.
24750
24751 2011-02-14  Andriy Gapon  <avg@freebsd.org>
24752
24753         PR target/45808
24754         * config/freebsd-spec.h (FBSD_LIB_SPEC): Handle the shared case.
24755
24756 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
24757
24758         * configure: Regenerate.
24759
24760 2011-02-12  Joseph Myers  <joseph@codesourcery.com>
24761
24762         PR driver/45731
24763         * gcc.c (asm_options): Correct spec matching --target-help.
24764
24765 2011-02-12  Martin Jambor  <mjambor@suse.cz>
24766
24767         * tree-cfg.c (verify_gimple_call): Return true upon invalid argument
24768         to gimple call error.
24769
24770 2011-02-12  Mike Stump  <mikestump@comcast.net>
24771
24772         * config/frv/frv.h (TRANSFER_FROM_TRAMPOLINE): Canonicalize
24773         comments in backslash regions.
24774
24775 2011-02-12  Mike Stump  <mikestump@comcast.net>
24776             Jakub Jelinek  <jakub@redhat.com>
24777             Iain Sandoe  <iains@gcc.gnu.org>
24778
24779         PR target/47324
24780         * dwarf2out.c (output_cfa_loc): When required, apply the
24781         DWARF2_FRAME_REG_OUT macro to adjust register numbers.
24782         (output_loc_sequence): Likewise.
24783         (output_loc_operands_raw): Likewise.
24784         (output_loc_sequence_raw): Likewise.
24785         (output_cfa_loc): Likewise.
24786         (output_loc_list): Suppress register number adjustment when
24787         calling output_loc_sequence()
24788         (output_die): Likewise.
24789
24790 2011-02-12  Anatoly Sokolov  <aesok@post.ru>
24791
24792         * config/xtensa/xtensa.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
24793         Remove macros.
24794         * config/xtensa/xtensa.c (xtensa_register_move_cost,
24795         xtensa_memory_move_cost): New functions.
24796         (TARGET_REGISTER_MOVE_COST, TARGET_REGISTER_MOVE_COST): Define.
24797
24798 2011-02-12  Alexandre Oliva  <aoliva@redhat.com>
24799
24800         PR lto/47225
24801         * configure.ac (gcc_cv_lto_plugin): Test for liblto_plugin.la
24802         in the current directory.
24803         * configure: Rebuilt.
24804
24805 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
24806
24807         * config/darwin.c (darwin_override_options): Add a hunk missed
24808         from the commit of r168571.  Trim comment line lengths and
24809         correct indents of the preceding block.
24810
24811 2011-02-12  Iain Sandoe  <iains@gcc.gnu.org>
24812
24813         * gcc.c (driver_handle_option): Concatenate the argument to -F with
24814         the switch.
24815
24816 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
24817
24818         * common.opt (nostartfiles): New Driver option.
24819
24820 2011-02-11  Xinliang David Li  <davidxl@google.com>
24821
24822         PR tree-optimization/47707
24823         * tree-chrec.c (convert_affine_scev): Keep type precision.
24824
24825 2011-02-11  Eric Botcazou  <ebotcazou@adacore.com>
24826
24827         PR tree-optimization/47420
24828         * ipa-split.c (visit_bb): Punt on any kind of GIMPLE_RESX.
24829
24830 2011-02-11  Pat Haugen  <pthaugen@us.ibm.com>
24831
24832         PR rtl-optimization/47614
24833         * rtl.h (check_for_inc_dec): Declare.
24834         * dse.c (check_for_inc_dec): Externalize...
24835         * postreload.c (reload_cse_simplify): ...use it before deleting stmt.
24836         (reload_cse_simplify_operands): Don't simplify opnds with side effects.
24837
24838 2011-02-11  Joseph Myers  <joseph@codesourcery.com>
24839
24840         PR driver/47678
24841         * gcc.c (main): Do not compile inputs if there were errors in
24842         option handling.
24843         * opts-common.c (read_cmdline_option): Check for wrong language
24844         after other error checks.
24845
24846 2011-02-11  Nathan Froyd  <froydnj@codesourcery.com>
24847
24848         * cgraph.c: Fix comment typos.
24849         * cgraph.h: Likewise.
24850         * cgraphunit.c: Likewise.
24851         * ipa-cp.c: Likewise.
24852         * ipa-inline.c: Likewise.
24853         * ipa-prop.c: Likewise.
24854         * ipa-pure-const.c: Likewise.
24855         * ipa-ref.c: Likewise.
24856         * ipa-reference.c: Likewise.
24857
24858 2011-02-11  Jakub Jelinek  <jakub@redhat.com>
24859
24860         PR debug/47684
24861         * tree-predcom.c (single_nonlooparound_use): Ignore debug uses.
24862
24863 2011-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24864
24865         PR testsuite/47400
24866         * doc/sourcebuild.texi (Require Support): Document
24867         dg-require-ascii-locale.
24868
24869 2011-02-11  Mingjie Xing  <mingjie.xing@gmail.com>
24870
24871         * doc/lto.texi (Write summary): Fix missing parentheses.
24872
24873 2011-02-10  DJ Delorie  <dj@redhat.com>
24874
24875         * config/m32c/m32c.c (m32c_option_override): Disable
24876         -fcombine-stack-adjustments until flag value tracking and compare
24877         optimization can be rewritten.
24878
24879 2011-02-10  Peter Bergner  <bergner@vnet.ibm.com>
24880
24881         * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Change to
24882         PROCESSOR_POWER7.
24883         (PROCESSOR_DEFAULT64): Likewise.
24884
24885 2011-02-10  Richard Henderson  <rth@redhat.com>
24886
24887         * config/rx/predicates.md (rx_zs_comparison_operator): Revert
24888         change from 2011-02-03.
24889         * config/rx/rx.c (flags_from_code): Likewise.
24890         (rx_print_operand) ['B']: For LT/GE, use lt/ge if overflow flag
24891         is valid, n/pz otherwise.
24892         (rx_select_cc_mode): Return CCmode if Y is not zero.
24893
24894 2011-02-10  Richard Guenther  <rguenther@suse.de>
24895
24896         * tree-ssa-structalias.c (bitpos_of_field): Use BITS_PER_UNIT, not 8.
24897
24898 2011-02-10  Richard Guenther  <rguenther@suse.de>
24899
24900         PR tree-optimization/47677
24901         * tree-vrp.c (vrp_bitmap_equal_p): Fix comparison of empty bitmaps.
24902
24903 2011-02-10  Jakub Jelinek  <jakub@redhat.com>
24904
24905         PR target/47665
24906         * combine.c (make_compound_operation): Only change shifts into
24907         multiplication for SCALAR_INT_MODE_P.
24908
24909 2011-02-10  Jie Zhang  <jie@codesourcery.com>
24910
24911         PR testsuite/47622
24912         Revert
24913         2011-02-05  Jie Zhang  <jie@codesourcery.com>
24914         PR debug/42631
24915         * web.c (entry_register): Don't clobber the number of the
24916         first uninitialized reference in used[].
24917
24918 2011-02-09  Richard Guenther  <rguenther@suse.de>
24919
24920         PR tree-optimization/47664
24921         * ipa-inline.c (cgraph_decide_inlining_incrementally): Visit
24922         all edges again.
24923
24924 2011-02-09  David Edelsohn  <dje.gcc@gmail.com>
24925
24926         PR target/46481
24927         PR target/47032
24928         * config/rs6000/aix61.h (PROCESSOR_DEFAULT): Change to
24929         PROCESSOR_POWER7.
24930         (PROCESSOR_DEFAULT64): Same.
24931         (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Delete.
24932
24933 2011-02-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24934
24935         * config/mips/iris6.h (TARGET_C99_FUNCTIONS): Define.
24936
24937 2011-02-09  Martin Jambor  <mjambor@suse.cz>
24938
24939         PR middle-end/45505
24940         * tree-sra.c (struct access): New flags grp_scalar_read and
24941         grp_scalar_write.  Changed description of assignment read and write
24942         flags.
24943         (dump_access): Dump new flags, reorder all of them.
24944         (sort_and_splice_var_accesses): Set the new flag accordingly, use them
24945         to detect multiple scalar reads.
24946         (analyze_access_subtree): Use the new scalar read write flags instead
24947         of the old flags.  Adjusted comments.
24948
24949 2011-02-08  DJ Delorie  <dj@redhat.com>
24950
24951         PR target/47548
24952         * config/m32c/m32c.c (m32c_subreg): Don't try to validate interim
24953         patterns.
24954
24955 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24956
24957         * config/m68k/uclinux.opt: New.
24958         * config.gcc (m68k-*-uclinux*): Use m68k/uclinux.opt.
24959
24960 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24961
24962         * config/cris/elf.opt (sim): New Driver option.
24963
24964 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24965
24966         * config/xtensa/elf.opt: New.
24967         * config.gcc (xtensa*-*-elf*): Use xtensa/elf.opt.
24968
24969 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24970
24971         * config/vax/elf.opt: New.
24972         * config.gcc (vax-*-linux*, vax-*-netbsdelf*): Use vax/elf.opt.
24973
24974 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24975
24976         * config/rs6000/aix64.opt (posix, pthread): New Driver options.
24977
24978 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
24979
24980         * config/gnu-user.opt: New.
24981         * config.gcc (*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu |
24982         *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu,
24983         *-*-uclinux*): Use gnu-user.opt.
24984
24985 2011-02-08  Thomas Schwinge  <thomas@schwinge.name>
24986
24987         * config/gnu.h (CPP_SPEC, LIB_SPEC): Remove handling of -bsd option.
24988         * config/i386/gnu.h (CPP_SPEC): Likewise.
24989
24990 2011-02-08  Ian Lance Taylor  <iant@google.com>
24991
24992         * common.opt (fcx-limited-range): Add SetByCombined flag.
24993         (ffinite-math-only, fmath-errno, frounding-math): Likewise.
24994         (fsignaling-nans, fsigned-zeros, ftrapping-math): Likewise.
24995         (fassociative-math, freciprocal-math): Likewise.
24996         (funsafe-math-optimizations): Likewise.
24997         * opth-gen.awk: Handle SetByCombined.
24998         * optc-gen.awk: Likewise.
24999         * opts.c (set_fast_math_flags): Don't override flag if set by frontend.
25000         (set_unsafe_math_optimizations_flags): Likewise.
25001         * doc/options.texi (Option properties): Document SetByCombined.
25002
25003 2011-02-08  Joseph Myers  <joseph@codesourcery.com>
25004
25005         * config.gcc (arc-*, alpha*-*-gnu*, arm*-*-netbsd*, arm-*-pe*,
25006         i[34567]86-*-interix3*, i[34567]86-*-netbsd*, i[34567]86-*-pe,
25007         m68hc11-*-*, m6811-*-*, m68hc12-*-*, m6812-*-*,
25008         m68k-*-uclinuxoldabi*, mcore-*-pe*, powerpc*-*-gnu*,
25009         sh*-*-symbianelf*, vax-*-netbsd*): Mark obsolete.
25010
25011 2011-02-08  Sebastian Pop  <sebastian.pop@amd.com>
25012
25013         PR tree-optimization/46834
25014         PR tree-optimization/46994
25015         PR tree-optimization/46995
25016         * graphite-sese-to-poly.c (used_outside_reduction): New.
25017         (detect_commutative_reduction): Call used_outside_reduction.
25018         (rewrite_commutative_reductions_out_of_ssa_close_phi): Call
25019         translate_scalar_reduction_to_array only when at least one
25020         loop-phi/close-phi tuple has been detected.
25021
25022 2011-02-08  Richard Guenther  <rguenther@suse.de>
25023
25024         PR middle-end/47639
25025         * tree-vect-generic.c (expand_vector_operations_1): Update
25026         stmts here ...
25027         (expand_vector_operations): ... not here.  Cleanup EH info
25028         and the CFG if required.
25029
25030 2011-02-08  Richard Guenther  <rguenther@suse.de>
25031
25032         PR tree-optimization/47641
25033         * tree-ssa.c (execute_update_addresses_taken): For asm outputs
25034         require type compatibility.
25035
25036 2011-02-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25037
25038         * gimple-low.c (lower_function_body): Don't remove the location of
25039         the return statement here.
25040         (lower_gimple_return): Do it here instead but only if the return
25041         statement is actually used twice.
25042
25043 2011-02-08  Richard Guenther  <rguenther@suse.de>
25044
25045         PR tree-optimization/47632
25046         * tree-ssa-forwprop.c (remove_prop_source_from_use): Remove
25047         unused up_to_stmt parameter, return whether cfg-cleanup is
25048         necessary, remove EH info properly.
25049         (forward_propagate_into_gimple_cond): Adjust caller.
25050         (forward_propagate_into_cond): Likewise.
25051         (forward_propagate_comparison): Likewise.
25052         (tree_ssa_forward_propagate_single_use_vars): Make
25053         forward_propagate_comparison case similar to the two others.
25054
25055 2011-02-08  Nick Clifton  <nickc@redhat.com>
25056
25057         * config/mn10300/mn10300.opt (mliw): New command line option.
25058         * config/mn10300/mn10300.md (UNSPEC_LIW): New unspec.
25059         (liw_bundling): New automaton.
25060         (liw): New attribute.
25061         (liw_op): New attribute.
25062         (liw_op1, liw_op2, liw_both, liw_either): New reservations.
25063         (movsi_internal): Add LIW attributes.
25064         (andsi3): Likewise.
25065         (iorsi3): Likewise.
25066         (xorsi3): Likewise.
25067         (addsi3): Separate register and immediate alternatives.
25068         Add LIW attributes.
25069         (subsi3): Likewise.
25070         (cmpsi): Likewise.
25071         (aslsi3): Likewise.
25072         (lshrsi3): Likewise.
25073         (ashrsi3): Likewise.
25074         (liw): New pattern.
25075         * config/mn10300/mn10300.c (liw_op_names): New
25076         (mn10300_print_operand): Handle 'W' operand descriptor.
25077         (extract_bundle): New function.
25078         (check_liw_constraints): New function.
25079         (liw_candidate): New function.
25080         (mn10300_bundle_liw): New function.
25081         (mn10300_reorg): New function.
25082         (TARGET_MACHINE_DEPENDENT_REORG): Define.
25083         (TARGET_DEFAULT_TARGET_FLAGS): Add MASK_ALLOW_LIW.
25084         * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Define
25085         __LIW__ or __NO_LIW__.
25086         * doc/invoke.texi: Describe the -mliw command line option.
25087
25088 2011-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
25089
25090         * config.gcc (hppa[12]*-*-hpux11*): Don't set extra_parts.
25091         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
25092         pthread_mutex_unlock): Remove.
25093         * config/pa/t-pa-hpux11: Remove rules to build pthread stubs.
25094         * config/pa/t-pa64: Likewise.
25095         * config/pa/pa64-hpux.h (LIB_SPEC): In static links, link against
25096         shared libc if not linking against libpthread.
25097         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
25098
25099 2011-02-07  Iain Sandoe  <iains@gcc.gnu.org>
25100
25101         PR target/47558
25102         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Put -lSystem first
25103         on 10.6 and later to ensure that we always use the unwinder from
25104         the system.  Only add -no_compact_unwind when tarteting darwin
25105         10.6 or later.
25106
25107 2011-02-07  Steve Ellcey  <sje@cup.hp.com>
25108
25109         PR target/46997
25110         * vect.md (vec_interleave_highv2sf): Change fmix for TARGET_BIG_ENDIAN.
25111         (vec_interleave_lowv2sf): Ditto.
25112         (vec_extract_evenv2sf): Add TARGET_BIG_ENDIAN check.
25113         (vec_extract_oddv2sf): Ditto.
25114
25115 2011-02-07  Mike Stump  <mikestump@comcast.net>
25116
25117         PR target/42333
25118         Add __ieee_divdc3 entry point.
25119         * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Retain ___divdc3
25120         entry point.
25121         (SUBTARGET_INIT_BUILTINS): Call darwin_rename_builtins.
25122         * config/i386/i386.c (TARGET_INIT_LIBFUNCS): Likewise.
25123         * config/darwin.c (darwin_rename_builtins): Add.
25124         * config/darwin-protos.h (darwin_rename_builtins): Add.
25125
25126 2011-02-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
25127
25128         PR target/47636
25129         * config/rs6000/rs6000.md (rsqrt<mode>2): Use the correct macro
25130         for the condition.
25131
25132 2011-02-07  Mike Stump  <mikestump@comcast.net>
25133
25134         * config/darwin.opt (mmacosx-version-min): Update default OS version.
25135
25136 2011-02-07  Denis Chertykov  <chertykov@gmail.com>
25137
25138         PR target/47534
25139         * config/avr/libgcc.S (exit): Move .endfunc
25140
25141 2011-02-07  Richard Guenther  <rguenther@suse.de>
25142
25143         PR tree-optimization/47615
25144         * tree-ssa-sccvn.h (run_scc_vn): Take a vn-walk mode argument.
25145         * tree-ssa-sccvn.c (default_vn_walk_kind): New global.
25146         (run_scc_vn): Initialize it.
25147         (visit_reference_op_load): Use it.
25148         * tree-ssa-pre.c (execute_pre): Use VN_WALK if in PRE.
25149
25150 2011-02-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25151
25152         * config/spu/spu.c (spu_init_libfuncs): Install SImode and
25153         DImode trapping arithmetic libfuncs.
25154
25155 2011-02-07  Richard Guenther  <rguenther@suse.de>
25156
25157         PR tree-optimization/47621
25158         * tree-ssa.c (non_rewritable_lvalue_p): New function, split out from
25159         two duplicates ...
25160         (execute_update_addresses_taken): ... here.  Make it more
25161         conservative in what we accept.
25162
25163 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
25164
25165         * config/sparc/freebsd.h (ASM_SPEC): Define.
25166         * config/sparc/vxworks.h (ASM_SPEC): Define.
25167
25168 2011-02-06  Joseph Myers  <joseph@codesourcery.com>
25169
25170         * config/sparc/sol2-bi.h (CC1_SPEC): Remove %{sun4:} %{target:}.
25171
25172 2011-02-06  Steven Bosscher  <steven@gcc.gnu.org>
25173
25174         * doc/invoke.texi: Remove reference to compiler internals from
25175         user documentation.
25176
25177         * reg-notes.def: Remove REG_VALUE_PROFILE.
25178         * combine.c (distribute_notes): Do not handle REG_VALUE_PROFILE.
25179
25180 2011-02-05  Jakub Jelinek  <jakub@redhat.com>
25181
25182         PR middle-end/47610
25183         * varasm.c (default_section_type_flags): If decl is NULL,
25184         and name is .data.rel.ro or .data.rel.ro.local, set SECTION_RELRO bit.
25185
25186 2011-02-05  Jie Zhang  <jie@codesourcery.com>
25187
25188         PR debug/42631
25189         * web.c (entry_register): Don't clobber the number of the
25190         first uninitialized reference in used[].
25191
25192 2011-02-04  Sebastian Pop  <sebastian.pop@amd.com>
25193
25194         PR tree-optimization/46194
25195         * tree-data-ref.c (analyze_miv_subscript): Remove comment.
25196         (build_classic_dist_vector_1): Do not represent classic distance
25197         vectors when the access functions are variating in different loops.
25198
25199 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
25200
25201         * config/mips/iris6.opt: New.
25202         * config.gcc (mips-sgi-irix6.5*): Use mips/iris6.opt.
25203
25204 2011-02-04  Richard Henderson  <rth@redhat.com>
25205             Steve Ellcey  <sje@cup.hp.com>
25206
25207         PR target/46997
25208         * config/ia64/predicates.md (mux1_brcst_element): New.
25209         * config/ia64/ia64-protos.h (ia64_unpack_assemble): New.
25210         * config/ia64/ia64.c (ia64_unpack_assemble): New.
25211         (ia64_unpack_sign): New.
25212         (ia64_expand_unpack): Rewrite using new routines.
25213         (ia64_expand_widen_sum): Ditto.
25214         (ia64_expand_dot_prod_v8qi): Ditto.
25215         * config/ia64/vect.md (mulv8qi3): Rewrite to use new
25216         routines, add endian check.
25217         (pmpy2_even): Rename from pmpy2_r, add endian check.
25218         (pmpy2_odd): Rename from pmpy2_l, add endian check.
25219         (vec_widen_smult_lo_v4hi): Rewrite using new routines.
25220         (vec_widen_smult_hi_v4hi): Ditto.
25221         (vec_widen_umult_lo_v4hi): Ditto.
25222         (vec_widen_umult_hi_v4hi): Ditto.
25223         (mulv2si3): Change endian checks.
25224         (sdot_prodv4hi): Rewrite with new calls.
25225         (udot_prodv4hi): New.
25226         (vec_pack_ssat_v4hi): Add endian check.
25227         (vec_pack_usat_v4hi): Ditto.
25228         (vec_pack_ssat_v2si): Ditto.
25229         (max1_even): Rename from max1_r, add endian check.
25230         (max1_odd): Rename from max1_l, add endian check.
25231         (*mux1_rev): Format change.
25232         (*mux1_mix): Ditto.
25233         (*mux1_shuf): Ditto.
25234         (*mux1_alt): Ditto.
25235         (*mux1_brcst_v8qi): Use new predicate.
25236         (vec_extract_evenv8qi): Remove endian check.
25237         (vec_extract_oddv8qi): Ditto.
25238         (vec_interleave_lowv4hi): Format change.
25239         (vec_interleave_highv4hi): Ditto.
25240         (mix2_even): Rename from mix2_r, add endian check.
25241         (mix2_odd): Rename from mux2_l, add endian check.
25242         (*mux2): Fix mask setting for TARGET_BIG_ENDIAN.
25243         (vec_extract_evenodd_helper): Format change.
25244         (vec_extract_evenv4hi): Remove endian check.
25245         (vec_extract_oddv4hi): Remove endian check.
25246         (vec_interleave_lowv2si): Format change.
25247         (vec_interleave_highv2si): Format change.
25248         (vec_initv2si): Remove endian check.
25249         (vecinit_v2si): Add endian check.
25250         (reduc_splus_v2sf): Add endian check.
25251         (reduc_smax_v2sf): Ditto.
25252         (reduc_smin_v2sf): Ditto.
25253         (vec_initv2sf): Remove endian check.
25254         (fpack): Add endian check.
25255         (fswap): Add endian check.
25256         (vec_interleave_highv2sf): Add endian check.
25257         (vec_interleave_lowv2sf): Add endian check.
25258         (fmix_lr): Add endian check.
25259         (vec_setv2sf): Format change.
25260         (*vec_extractv2sf_0_be): Use shift to extract operand.
25261         (*vec_extractv2sf_1_be): New.
25262         (vec_pack_trunc_v4hi): Add endian check.
25263         (vec_pack_trunc_v2si): Format change.
25264
25265 2011-02-04  Jakub Jelinek  <jakub@redhat.com>
25266
25267         PR inline-asm/23200
25268         * tree-ssa-ter.c (is_replaceable_p): Add TER argument.  Don't
25269         do bb, locus and block comparison and disallow loads if it is not set.
25270         (stmt_is_replaceable_p): New function.
25271         (process_replaceable, find_replaceable_in_bb): Adjust is_replaceable_p
25272         callers.
25273         * expr.c (expand_expr_real_1) <case SSA_NAME>: If
25274         get_gimple_for_ssa_name try for EXPAND_INITIALIZER harder to use
25275         SSA_NAME_DEF_STMT.
25276         * tree-flow.h (stmt_is_replaceable_p): New prototype.
25277
25278 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
25279
25280         * config/rs6000/xilinx.opt: New.
25281         * config.gcc (powerpc-xilinx-eabi*): Use rs6000/xilinx.opt.
25282
25283 2011-02-04  Joseph Myers  <joseph@codesourcery.com>
25284
25285         * config/mips/mips.opt (EB, EL, noasmopt): New Driver options.
25286
25287 2011-02-03  Anatoly Sokolov  <aesok@post.ru>
25288
25289         * config/xtensa/xtensa.h (PREFERRED_RELOAD_CLASS,
25290         PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
25291         * config/xtensa/xtensa-protos.h (xtensa_preferred_reload_class,
25292         secondary_reload_info, xtensa_secondary_reload): Remove.
25293         * config/xtensa/xtensa.c (TARGET_PREFERRED_RELOAD_CLASS,
25294         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
25295         (xtensa_preferred_reload_class): Make static. Change return and
25296         'rclass' argument type to reg_class_t. Remove 'isoutput' argument.
25297         Use CONST_DOUBLE_P predicate.
25298         (xtensa_preferred_output_reload_class): New function.
25299         (xtensa_secondary_reload): Make static.
25300
25301 2011-02-03  Joseph Myers  <joseph@codesourcery.com>
25302
25303         * config/microblaze/microblaze.opt (Zxl-mode-bootstrap,
25304         Zxl-mode-executable, Zxl-mode-novectors, Zxl-mode-xilkernel,
25305         Zxl-mode-xmdstub, mxl-mode-xilkernel): New Driver options.
25306
25307 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
25308
25309         PR middle-end/31490
25310         * output.h (SECTION_RELRO): Define.
25311         (SECTION_MACH_DEP): Adjust.
25312         (get_variable_section): New prototype.
25313         * varpool.c (varpool_finalize_named_section_flags): New function.
25314         (varpool_assemble_pending_decls): Call it.
25315         * cgraph.h (varpool_finalize_named_section_flags): New prototype.
25316         * cgraphunit.c (cgraph_output_in_order): Call
25317         varpool_finalize_named_section_flags.
25318         * varasm.c (get_section): Allow section flags conflicts between
25319         relro and read-only sections if the section hasn't been declared yet.
25320         Set SECTION_OVERRIDE after diagnosing section type conflict.
25321         (get_variable_section): No longer static.
25322         (default_section_type_flags): Use SECTION_WRITE | SECTION_RELRO for
25323         readonly sections that need relocations.
25324         (decl_readonly_section_1): New function.
25325         (decl_readonly_section): Use it.
25326
25327         Revert:
25328         2010-11-17  Dinar Temirbulatov  <dtemirbulatov@gmail.com>
25329                     Steve Ellcey  <sje@cup.hp.com>
25330
25331         PR middle-end/31490
25332         * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
25333         if section attribute used.
25334
25335 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
25336
25337         * config/darwin.h (SECTION_NO_ANCHOR): Remove.
25338         * config/darwin.c (SECTION_NO_ANCHOR): Define.
25339         (darwin_init_sections): Remove assertion.
25340
25341 2011-02-03  Nick Clifton  <nickc@redhat.com>
25342
25343         * config/rx/predicates.md (rx_zs_comparison_operator): Remove
25344         lt and ge.
25345         * config/rx/rx.md (abssi2_flags): Use CC_ZSmode rather than CC_ZSOmode.
25346         * config/rx/rx.c (rx_print_operand): Use "lt" and "ge" suffixes
25347         instead of "n" and "pz".
25348         (flags_from_code): LT and GE tests need CC_FLAG_O as well as
25349         CC_FLAG_S.
25350
25351 2011-02-03  Jakub Jelinek  <jakub@redhat.com>
25352
25353         PR target/47312
25354         * expr.c (expand_expr_real_2) <case FMA_EXPR>: If target doesn't expand
25355         fma, expand FMA_EXPR as fma{,f,l} call.
25356
25357         PR lto/47274
25358         * lto-streamer-out.c (write_symbol): When writing kind and visibility,
25359         copy them into a unsigned char variable and pass address of it to
25360         lto_output_data_stream.
25361
25362         PR target/47564
25363         * toplev.c (target_reinit): Save and restore *crtl and regno_reg_rtx
25364         around backend_init_target and lang_dependent_init_target calls.
25365         * cgraphunit.c (cgraph_debug_gimple_stmt): New function.
25366         (verify_cgraph_node): Don't call set_cfun here.  Use
25367         cgraph_debug_gimple_stmt instead of debug_gimple_stmt.
25368         Set error_found for incorrectly represented calls to thunks.
25369
25370 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
25371
25372         PR debug/43092
25373         PR rtl-optimization/43494
25374         * rtl.h (for_each_inc_dec_fn): New type.
25375         (for_each_inc_dec): Declare.
25376         * rtlanal.c (struct for_each_inc_dec_ops): New type.
25377         (for_each_inc_dec_find_inc_dec): New fn.
25378         (for_each_inc_dec_find_mem): New fn.
25379         (for_each_inc_dec): New fn.
25380         * dse.c (struct insn_size): Remove.
25381         (replace_inc_dec, replace_inc_dec_mem): Remove.
25382         (emit_inc_dec_insn_before): New fn.
25383         (check_for_inc_dec): Use it, along with for_each_inc_dec.
25384         (canon_address): Pass mem modes to cselib_lookup.
25385         * cselib.h (cselib_lookup): Add memmode argument.  Adjust callers.
25386         (cselib_lookup_from_insn): Likewise.
25387         (cselib_subst_to_values): Likewise.
25388         * cselib.c (find_slot_memmode): New var.
25389         (cselib_find_slot): New fn.  Use it instead of
25390         htab_find_slot_with_hash everywhere.
25391         (entry_and_rtx_equal_p): Use find_slot_memmode.
25392         (autoinc_split): New fn.
25393         (rtx_equal_for_cselib_p): Rename and implement in terms of...
25394         (rtx_equal_for_cselib_1): ... this.  Take memmode, pass it on.
25395         Deal with autoinc.  Special-case recursion into MEMs.
25396         (cselib_hash_rtx): Likewise.
25397         (cselib_lookup_mem): Infer pmode from address mode.  Distinguish
25398         address and MEM modes.
25399         (cselib_subst_to_values): Add memmode, pass it on.
25400         Deal with autoinc.
25401         (cselib_lookup): Add memmode argument, pass it on.
25402         (cselib_lookup_from_insn): Add memmode.
25403         (cselib_invalidate_rtx): Discard obsolete push_operand handling.
25404         (struct cselib_record_autoinc_data): New.
25405         (cselib_record_autoinc_cb): New fn.
25406         (cselib_record_sets): Use it, along with for_each_inc_dec.  Pass MEM
25407         mode to cselib_lookup.  Reset autoinced REGs here instead of...
25408         (cselib_process_insn): ... here.
25409         * var-tracking.c (replace_expr_with_values, use_type): Pass MEM mode
25410         to cselib_lookup.
25411         (add_uses): Likewise, also to cselib_subst_to_values.
25412         (add_stores): Likewise.
25413         * sched-deps.c (add_insn_mem_dependence): Pass mode to
25414         cselib_subst_to_values.
25415         (sched_analyze_1, sched_analyze_2): Likewise.  Adjusted.
25416         * gcse.c (do_local_cprop): Adjusted.
25417         * postreload.c (reload_cse_simplify_set): Adjusted.
25418         (reload_cse_simplify_operands): Adjusted.
25419         * sel-sched-dump (debug_mem_addr_value): Pass mode.
25420
25421 2011-02-03  Alexandre Oliva  <aoliva@redhat.com>
25422
25423         PR tree-optimization/45122
25424         * tree-ssa-loop-niter.c (number_of_iterations_exit): Don't make
25425         unsafe assumptions when there's more than one loop exit.
25426
25427 2011-02-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
25428
25429         PR target/47272
25430         * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
25431         Document using vector double with the load/store builtins, and
25432         that the load/store builtins always use Altivec instructions.
25433
25434         * config/rs6000/vector.md (vector_altivec_load_<mode>): New insns
25435         to use altivec memory instructions, even on VSX.
25436         (vector_altivec_store_<mode>): Ditto.
25437
25438         * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): New
25439         function.
25440
25441         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
25442         V2DF, V2DI support to load/store overloaded builtins.
25443
25444         * config/rs6000/rs6000-builtin.def (ALTIVEC_BUILTIN_*): Add
25445         altivec load/store builtins for V2DF/V2DI types.
25446
25447         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
25448         set avoid indexed addresses on power6 if -maltivec.
25449         (altivec_expand_ld_builtin): Add V2DF, V2DI support, use
25450         vector_altivec_load/vector_altivec_store builtins.
25451         (altivec_expand_st_builtin): Ditto.
25452         (altivec_expand_builtin): Add VSX memory builtins.
25453         (rs6000_init_builtins): Add V2DI types to internal types.
25454         (altivec_init_builtins): Add support for V2DF/V2DI altivec
25455         load/store builtins.
25456         (rs6000_address_for_altivec): Insure memory address is appropriate
25457         for Altivec.
25458
25459         * config/rs6000/vsx.md (vsx_load_<mode>): New expanders for
25460         vec_vsx_ld and vec_vsx_st.
25461         (vsx_store_<mode>): Ditto.
25462
25463         * config/rs6000/rs6000.h (RS6000_BTI_long_long): New type
25464         variables to hold long long types for VSX vector memory builtins.
25465         (RS6000_BTI_unsigned_long_long): Ditto.
25466         (long_long_integer_type_internal_node): Ditti.
25467         (long_long_unsigned_type_internal_node): Ditti.
25468
25469         * config/rs6000/altivec.md (UNSPEC_LVX): New UNSPEC.
25470         (altivec_lvx_<mode>): Make altivec_lvx use a mode iterator.
25471         (altivec_stvx_<mode>): Make altivec_stvx use a mode iterator.
25472
25473         * config/rs6000/altivec.h (vec_vsx_ld): Define VSX memory builtin
25474         short cuts.
25475         (vec_vsx_st): Ditto.
25476
25477 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
25478
25479         * config/pa/pa-hpux10.opt: New.
25480         * config/hpux11.opt (pthread): New Driver option.
25481         * config/pa/pa-hpux.opt (nolibdld, rdynamic): New Driver options.
25482         * config.gcc (hppa[12]*-*-hpux10*): Use pa/pa-hpux10.opt.
25483
25484 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
25485
25486         * config/ia64/vms.opt: New.
25487         * config.gcc (ia64-hp-*vms*): Use ia64/vms.opt.
25488
25489 2011-02-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
25490
25491         PR target/47580
25492         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Use
25493         gpc_reg_operand instead of vsx_register_operand to match rs6000.md
25494         generator functions.
25495         (vsx_floatuns<VSi><mode>2): Ditto.
25496         (vsx_fix_trunc<mode><VSi>2): Ditto.
25497         (vsx_fixuns_trunc<mode><VSi>2): Ditto.
25498
25499 2011-02-02  Joseph Myers  <joseph@codesourcery.com>
25500
25501         * config/i386/djgpp.opt (posix): New Driver option.
25502
25503 2011-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
25504
25505         * config.gcc (*-*-freebsd[12], *-*-freebsd[12].*, *-*-freebsd*aout*):
25506         Move to the unsupported targets list.
25507
25508 2011-02-02  Peter Bergner  <bergner@vnet.ibm.com>
25509
25510         PR rtl-optimization/47525
25511         * df-scan.c: Update copyright years.
25512         (df_get_call_refs): Do not mark global registers as DF_REF_REG_USE
25513         and non-clobber DF_REF_REG_DEF for calls to const and pure functions.
25514
25515 2011-02-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25516
25517         * config/i386/sysv4.h (TARGET_VERSION): Remove.
25518         (SUBTARGET_RETURN_IN_MEMORY): Remove.
25519         (ASM_OUTPUT_ASCII): Remove.
25520         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove #undef.
25521
25522 2011-02-02  Jeff Law  <law@redhat.com>
25523
25524         PR middle-end/47543
25525         * reload.c (find_reloads_address): Handle reg+d address where both
25526         components are invalid by reloading the entire address.
25527
25528 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
25529             Richard Guenther  <rguenther@suse.de>
25530
25531         PR tree-optimization/40979
25532         PR bootstrap/47044
25533         * passes.c (init_optimization_passes): After LIM call copy_prop
25534         and DCE to clean up.
25535         * tree-ssa-loop.c (pass_graphite_transforms): Add TODO_dump_func.
25536
25537 2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>
25538
25539         PR tree-optimization/47576
25540         PR tree-optimization/47555
25541         * doc/invoke.texi (scev-max-expr-complexity): Documented.
25542         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
25543         (PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
25544         * tree-scalar-evolution.c (follow_ssa_edge): Use
25545         PARAM_SCEV_MAX_EXPR_COMPLEXITY.
25546
25547 2011-02-02  Richard Guenther  <rguenther@suse.de>
25548
25549         PR tree-optimization/47566
25550         * builtins.c (builtin_save_expr): No SAVE_EXPR for SSA_NAMEs.
25551
25552 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
25553
25554         PR debug/47106
25555         PR debug/47402
25556         * tree-inline.c (declare_return_variable): Remove unused caller
25557         variable.
25558
25559         PR debug/47106
25560         PR debug/47402
25561         * tree-flow-inline.h (clear_is_used, is_used_p): New.
25562         * cfgexpand.c (account_used_vars_for_block): Use them.
25563         * tree-nrv.c (tree_nrv): Likewise.
25564         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
25565         (dump_scope_block): Likewise.
25566         (remove_unused_locals): Likewise.
25567
25568         PR debug/47106
25569         PR debug/47402
25570         * tree-inline.c (declare_return_variable): Add result decl to
25571         local decls only once.
25572         * gimple-low.c (record_vars_into): Mark newly-created variables
25573         as referenced.
25574
25575 2011-02-02  Alexandre Oliva  <aoliva@redhat.com>
25576
25577         PR debug/47498
25578         PR debug/47501
25579         PR debug/45136
25580         PR debug/45130
25581         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
25582         debug insns.
25583         (no_real_insns_p, schedule_block, set_priorities): Drop special
25584         treatment of boundary debug insns.
25585         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
25586         * sched-ebb.c (schedule_ebbs): Adjust skipping of debug insns.
25587         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
25588         (BOUNDARY_DEBUG_INSN_P): Likewise.
25589         (SCHEDULE_DEBUG_INSN_P): Likewise.
25590         * sched-rgn.c (init_ready_list): Drop special treatment of
25591         boundary debug insns.
25592         * final.c (rest_of_clean_state): Clear notes' BB.
25593
25594 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25595
25596         * config/openbsd.opt (assert=): New Driver option.
25597
25598 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25599
25600         * config/i386/nto.opt: New.
25601         * config.gcc (i[34567]86-*-nto-qnx*): Use i386/nto.opt.
25602
25603 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25604
25605         * config/i386/netware.opt: New.
25606         * config.gcc (i[3456x]86-*-netware*): Use i386/netware.opt.
25607
25608 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25609
25610         * config/interix.opt (posix): New Driver option.
25611
25612 2011-02-01  DJ Delorie  <dj@redhat.com>
25613
25614         * config/m32c/m32c.h (PTRDIFF_TYPE): Remove extra definition.
25615
25616         * config/m32c/m32c.c (m32c_regno_reg_class): Return smallest reg
25617         class for A0/A1.
25618
25619 2011-02-01  Sebastian Pop  <sebastian.pop@amd.com>
25620
25621         PR tree-optimization/47561
25622         * toplev.c (process_options): Print the Graphite flags.  Add
25623         flag_loop_flatten to the list of options requiring Graphite.
25624
25625 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25626
25627         * config/i386/cygming.opt (posix): New Driver option.
25628
25629 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25630
25631         * config/arm/vxworks.opt: New.
25632         * config.gcc (arm-wrs-vxworks): Use arm/vxworks.opt.
25633
25634 2011-02-01  Joseph Myers  <joseph@codesourcery.com>
25635
25636         * config/alpha/elf.opt: New.
25637         * config.gcc (alpha*-*-linux*, alpha*-*-gnu*, alpha*-*-freebsd*,
25638         alpha*-*-netbsd*, alpha*-*-openbsd*): Use alpha/elf.opt.
25639
25640 2011-02-01  Richard Guenther  <rguenther@suse.de>
25641
25642         PR tree-optimization/47559
25643         * tree-ssa-loop-im.c (can_sm_ref_p): Do not perform
25644         store-motion on references that can throw.
25645
25646 2011-02-01  Bernd Schmidt  <bernds@codesourcery.com>
25647
25648         * tree-dump.c (dump_option_value_info): Add entry for TDF_CSELIB.
25649         * tree-pass.h (TDF_CSELIB): New macro.
25650         * cselib.c (new_cselib_val, expand_loc, cselib_expand_value_rtx_1,
25651         cselib_lookup): Check for it rather than for TDF_DETAILS.
25652
25653 2011-02-01  H.J. Lu  <hongjiu.lu@intel.com>
25654
25655         PR driver/47547
25656         * lto-wrapper.c (run_gcc): Don't add -dumpdir if linker_output
25657         is HOST_BIT_BUCKET.
25658
25659         * opts.c (finish_options): Don't add x_aux_base_name if it is
25660         HOST_BIT_BUCKET.
25661
25662 2011-02-01  Richard Guenther  <rguenther@suse.de>
25663
25664         PR tree-optimization/47555
25665         Revert
25666         2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
25667
25668         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
25669
25670 2011-02-01  Sebastien Bourdeauducq  <sebastien@milkymist.org>
25671
25672         PR gcc/46692
25673         * config/lm32/t-lm32: Add multilib for all CPU options.
25674
25675 2011-02-01  Richard Guenther  <rguenther@suse.de>
25676
25677         PR tree-optimization/47541
25678         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Make
25679         sure to have a field at offset zero.
25680
25681 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
25682
25683         * config/arc/arc.opt (EB, EL): New Driver options.
25684
25685 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
25686
25687         * config/alpha/osf5.opt: New.
25688         * config.gcc (alpha*-dec-osf5.1*): Use alpha/osf5.opt.
25689
25690 2011-01-31  Joseph Myers  <joseph@codesourcery.com>
25691
25692         * config/vms/vms.opt (map, mvms-return-codes): New Driver options.
25693
25694 2011-01-31  Sebastian Pop  <sebastian.pop@amd.com>
25695
25696         * common.opt (ftree-loop-linear): Use Alias to make it an alias of
25697         -floop-interchange.
25698         * invoke.texi (-ftree-loop-linear): Make it clear that this flag
25699         is an alias of -floop-interchange and that it requires the
25700         Graphite infrastructure.
25701         * tree-ssa-loop.c (gate_graphite_transforms): Do not set
25702         flag_loop_interchange based on the value of flag_tree_loop_linear.
25703
25704 2011-01-31  Jakub Jelinek  <jakub@redhat.com>
25705             Richard Guenther  <rguenther@suse.de>
25706
25707         PR tree-optimization/47538
25708         * tree-ssa-ccp.c (bit_value_binop_1): For uns computation use
25709         type instead of r1type, except for comparisons.  For right
25710         shifts and comparisons punt if there are mismatches in
25711         sizetype vs. non-sizetype types.
25712
25713 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25714
25715         * doc/sourcebuild.texi (Effective-Target Keywords): Document
25716         avx_runtime.
25717
25718 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25719
25720         * configure.ac (gcc_cv_ld_eh_frame_hdr): Update minimal Sun ld
25721         version number.
25722         * configure: Regenerate.
25723
25724 2011-01-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25725
25726         * configure.ac (gcc_cv_ld_static_option): Define.
25727         (gcc_cv_ld_dynamic_option): Define.
25728         (gcc_cv_ld_static_dynamic): Tru64 UNIX support -noso/-so_archive
25729         instead.
25730         (HAVE_LD_STATIC_DYNAMIC): Update message.
25731         (LD_STATIC_OPTION): Define.
25732         (LD_DYNAMIC_OPTION): Define.
25733         * configure: Regenerate.
25734         * config.in: Regenerate.
25735         * gcc.c (init_spec) [USE_LIBUNWIND_EXCEPTIONS &&
25736         HAVE_LD_STATIC_DYNAMIC]: Use them.
25737
25738 2011-01-31  Nick Clifton  <nickc@redhat.com>
25739
25740         * config/rx/rx.c (rx_get_stack_layout): Only save call clobbered
25741         registers inside interrupt handlers if the handler is not a leaf
25742         function.
25743
25744 2011-01-31  Nick Clifton  <nickc@redhat.com>
25745
25746         * config/mn10300/mn10300.c (mn10300_regno_in_class_p): Check for
25747         reg_renumber returning an INVALID_REGNUM.
25748
25749 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
25750
25751         PR libgcj/44341
25752         * doc/install.texi: Document host options discarded when cross
25753         configuring target libraries.
25754
25755 2011-01-31  Alexandre Oliva  <aoliva@redhat.com>
25756
25757         Reverted:
25758         2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
25759         PR debug/45136
25760         PR debug/45130
25761         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
25762         debug insns.
25763         (no_real_insns_p, schedule_block, set_priorities): Drop special
25764         treatment of boundary debug insns.
25765         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
25766         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
25767         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
25768         (BOUNDARY_DEBUG_INSN_P): Likewise.
25769         (SCHEDULE_DEBUG_INSN_P): Likewise.
25770         * sched-rgn.c (init_ready_list): Drop special treatment of
25771         boundary debug insns.
25772         * final.c (rest_of_clean-state): Clear notes' BB.
25773
25774 2011-01-31  Alan Modra  <amodra@gmail.com>
25775
25776         * config/rs6000/rs6000.c (print_operand): Rearrange addends in
25777         toc relative expressions as we do in print_operand_address.
25778
25779 2011-01-30  Kazu Hirata  <kazu@codesourcery.com>
25780
25781         * doc/extend.texi: Follow spelling conventions.
25782         * doc/invoke.texi: Fix a typo.
25783
25784 2011-01-30  Joseph Myers  <joseph@codesourcery.com>
25785
25786         * config/hpux11.opt: New.
25787         * config.gcc (hppa*64*-*-hpux11*, hppa[12]*-*-hpux11*,
25788         ia64*-*-hpux*): Use hpux11.opt.
25789
25790 2011-01-30  Jonathan Yong  <jon_y@users.sourceforge.net>
25791
25792         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add t-dfprules
25793         to tmake_file.
25794
25795 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
25796
25797         * doc/install.texi (hppa-hp-hpux10): Remove references to HP
25798         support sites.
25799
25800 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
25801
25802         * doc/install.texi (Binaries): Remove outdated reference for
25803         Motorola 68HC11/68HC12 downloads.
25804
25805 2011-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
25806
25807         * doc/extend.texi (Thread-Local): Adjust reference to Ulrich
25808         Drepper's paper.
25809
25810 2011-01-29  Jonathan Wakely  <jwakely.gcc@gmail.com>
25811
25812         PR bootstrap/47147
25813         * ginclude/stddef.h: Check for _X86_64_ANSI_H_ and _I386_ANSI_H_ as
25814         used by NetBSD.
25815
25816 2011-01-28  Ahmad Sharif  <asharif@google.com>
25817
25818         * value-prof.c (check_counter): Corrected error message.
25819
25820 2011-01-29  Jie Zhang  <jie@codesourcery.com>
25821
25822         * config/arm/arm.c (arm_legitimize_reload_address): New.
25823         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
25824         arm_legitimize_reload_address.
25825         * config/arm/arm-protos.h (arm_legitimize_reload_address): Declare.
25826
25827 2011-01-28  Ian Lance Taylor  <iant@google.com>
25828
25829         * godump.c (go_define): Ignore macros whose definitions include
25830         two adjacent operands.
25831
25832 2011-01-28  Jakub Jelinek  <jakub@redhat.com>
25833
25834         PR target/42894
25835         * varasm.c (force_const_mem): Store copy of x in desc->constant
25836         instead of x itself.
25837         * expr.c (emit_move_insn): Add a copy of y_cst instead of y_cst
25838         itself into REG_EQUAL note.
25839
25840 2011-01-28  Joseph Myers  <joseph@codesourcery.com>
25841
25842         * config/freebsd.opt (posix, rdynamic): New Driver options.
25843
25844 2011-01-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25845
25846         * configure.ac (gcc_cv_ld_static_dynamic): IRIX 6 ld supports
25847         -Bstatic/-Bdynamic.
25848         * configure: Regenerate.
25849
25850 2011-01-27  Joseph Myers  <joseph@codesourcery.com>
25851
25852         * config/rs6000/sysv4.h (LIB_NETBSD_SPEC): Don't handle -profile.
25853         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -profile.
25854
25855 2011-01-27  Anatoly Sokolov  <aesok@post.ru>
25856
25857         * config/s390/s390.h (PREFERRED_RELOAD_CLASS): Remove.
25858         * config/s390/s390-protos.h (s390_preferred_reload_class): Remove.
25859         * config/s390/s390.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
25860         (s390_preferred_reload_class): Make static. Change return and
25861         'rclass' argument type to reg_class_t.
25862
25863 2011-01-27  Jan Hubicka  <jh@suse.cz>
25864
25865         PR middle-end/46949
25866         * cgraphunit.c (process_common_attributes): Fix use of remove_attribute.
25867         (process_function_and_variable_attributes): Check defined weakrefs.
25868
25869 2011-01-27  Martin Jambor  <mjambor@suse.cz>
25870
25871         PR tree-optimization/47228
25872         * tree-sra.c (sra_modify_assign): Use build_ref_for_model instead of
25873         build_ref_for_offset.
25874
25875 2011-01-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
25876
25877         * config/spu/spu-elf.h (ASM_SPEC): Remove.
25878
25879 2011-01-26  Mikael Pettersson  <mikpe@it.uu.se>
25880
25881         PR rtl-optimization/46856
25882         * postreload.c (reload_combine_recognize_const_pattern): Do not
25883         separate cc0 setter and user on cc0 targets.
25884
25885 2011-01-26  Nicola Pero  <nicola.pero@meta-innovation.com>
25886
25887         PR c/43082
25888         * c-typeck.c (c_objc_common_truthvalue_conversion): If we are
25889         passed a VOID_TYPE expression, immediately emit an error and
25890         return error_mark_node.
25891
25892 2011-01-26  Jeff Law  <law@redhat.com>
25893
25894         PR rtl-optimization/47464
25895         * df-problems.c (can_move_insn_across): Use may_trap_or_fault_p
25896         rather than may_trap_p as needed.
25897
25898 2011-01-26  DJ Delorie  <dj@redhat.com>
25899
25900         PR rtl-optimization/46878
25901         * combine.c (insn_a_feeds_b): Check for the implicit cc0
25902         setter/user dependency as well.
25903
25904 2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
25905
25906         PR rtl-optimization/44469
25907         * cfgcleanup.c (try_optimize_cfg): Iterate in CFG layout mode too
25908         after removing trivially dead basic blocks.
25909
25910 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
25911
25912         * config/bfin/bfin.h (LINK_SPEC): Remove %{Qy:} %{!Qn:-Qy}.
25913         * config/frv/frv.h (LINK_SPEC): Likewise.
25914         * config/i386/netware.h (LINK_SPEC): Likewise.
25915         * config/m68k/linux.h (ASM_SPEC): Likewise.
25916         * config/rs6000/linux64.h (ASM_SPEC_COMMON): Likewise.
25917         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
25918         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25919         * config/sparc/linux.h (ASM_SPEC): Likewise.
25920         * config/sparc/linux64.h (ASM_SPEC): Likewise.
25921         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
25922
25923 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
25924
25925         * config/bfin/bfin.h (ASM_SPEC): Remove %{Ym,*}.
25926         * config/frv/frv.h (ASM_SPEC): Likewise.
25927         * config/m68k/linux.h (ASM_SPEC): Likewise.
25928         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
25929         * config/rs6000/linux64.h (ASM_SPEC): Likewise.
25930         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25931         * config/sparc/linux.h (ASM_SPEC): Likewise.
25932         * config/sparc/linux64.h (ASM_SPEC): Likewise.
25933         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
25934
25935 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
25936
25937         * config/bfin/bfin.h (LINK_SPEC): Remove %{YP,*}.
25938         * config/frv/frv.h (LINK_SPEC): Likewise.
25939         * config/rs6000/sysv4.h (LINK_SPEC): Likewise.
25940
25941 2011-01-26  Joseph Myers  <joseph@codesourcery.com>
25942
25943         * config/bfin/bfin.h (ASM_SPEC): Remove %{Yd,*}.
25944         * config/frv/frv.h (ASM_SPEC): Likewise.
25945         * config/i386/sol2-10.h (ASM_SPEC): Likewise.
25946         * config/m68k/linux.h (ASM_SPEC): Likewise.
25947         * config/pa/pa-linux.h (ASM_SPEC): Likewise.
25948         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
25949         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
25950         * config/sol2.h (ASM_SPEC): Remove comment about -Yd,.
25951         * config/sparc/linux.h (ASM_SPEC): Likewise.
25952         * config/sparc/linux64.h (ASM_SPEC): Likewise.
25953         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
25954         * config/sparc/sysv4.h (ASM_SPEC): Remove %{Yd,*}.
25955
25956 2011-01-26  Steve Ellcey  <sje@cup.hp.com>
25957
25958         PR target/46997
25959         * config/ia64/vect.md (mulv2si3): Enable and fix for TARGET_BIG_ENDIAN.
25960         (*mux2): Ditto.
25961         (vec_extract_evenodd_help): Ditto.
25962         (vec_extract_evenv4hi): Ditto.
25963         (vec_extract_oddv4hi): Ditto.
25964         (vec_interleave_lowv2si): Ditto.
25965         (vec_interleave_highv2si): Ditto.
25966         (vec_extract_evenv2si): Ditto.
25967         (vec_extract_oddv2si: Ditto.
25968         (vec_pack_trunc_v2si): Ditto.
25969
25970 2011-01-22  Jan Hubicka  <jh@suse.cz>
25971
25972         PR target/47237
25973         * cgraph.h (cgraph_local_info): New field can_change_signature.
25974         * ipa-cp.c (ipcp_update_callgraph): Only compute args_to_skip if callee
25975         signature can change.
25976         (ipcp_estimate_growth): Call sequence simplify only if calle signature
25977         can change.
25978         (ipcp_insert_stage): Only compute args_to_skip if signature can change.
25979         (cgraph_function_versioning): We can not change signature of functions
25980         that don't allow that.
25981         * lto-cgraph.c (lto_output_node): Stream local.can_change_signature.
25982         (lto_input_node): Likewise.
25983         * ipa-inline.c (compute_inline_parameters): Compute
25984         local.can_change_signature.
25985         * ipa-split.c (visit_bb): Never split away APPLY_ARGS.
25986         * tree-sra.c (ipa_sra_preliminary_function_checks): Give up on
25987         functions that can not change signature.
25988         * i386.c (ix86_function_regparm, ix86_function_sseregparm,
25989         init_cumulative_args): Do not use local calling conventions
25990         for functions that can not change signature.
25991
25992 2011-01-22  Jan Hubicka  <jh@suse.cz>
25993
25994         * doc/invoke.texi (hot-bb-frequency-fraction): Commit forgotten hunk.
25995
25996 2011-01-26  Richard Guenther  <rguenther@suse.de>
25997
25998         PR tree-optimization/47190
25999         * cgraphunit.c (process_common_attributes): New function.
26000         (process_function_and_variable_attributes): Use it.
26001
26002 2011-01-26  Richard Guenther  <rguenther@suse.de>
26003
26004         PR lto/47423
26005         * cgraphbuild.c (record_eh_tables): Record reference to personality
26006         function.
26007
26008 2011-01-26  Alexandre Oliva  <aoliva@redhat.com>
26009
26010         PR debug/45454
26011         * sel-sched.c (moveup_expr): Don't let debug insns prevent
26012         non-debug insns from moving up.
26013
26014 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
26015
26016         PR target/40125
26017         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Select suitable
26018         t-dlldir{,-x} fragment for build and add it to tmake_file.
26019         (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
26020         * Makefile.in (libgcc.mvars): Also export SHLIB_DLLDIR to libgcc.
26021         * config/i386/t-dlldir: New file.
26022         (SHLIB_DLLDIR): Define.
26023         * config/i386/t-dlldir-x: New file.
26024         (SHLIB_DLLDIR): Define.
26025         * config/i386/t-cygming: Error out if SHLIB_DLLDIR is not set.
26026         (SHLIB_INSTALL): Use it.
26027
26028 2011-01-26  Chung-Lin Tang  <cltang@codesourcery.com>
26029
26030         PR target/47246
26031         * config/arm/arm.c (thumb2_legitimate_index_p): Change the
26032         lower bound of the allowed Thumb-2 coprocessor load/store
26033         index range to -256. Add explaining comment.
26034
26035 2011-01-25  Ian Lance Taylor  <iant@google.com>
26036
26037         * godump.c (go_define): Improve lexing of macro expansion to only
26038         accept expressions which match Go spec.
26039
26040 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
26041
26042         PR c++/43601
26043         * tree.c (handle_dll_attribute): Handle it.
26044         * doc/extend.texi (@item dllexport): Mention it.
26045         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
26046
26047 2011-01-25  Ian Lance Taylor  <iant@google.com>
26048
26049         PR tree-optimization/26854
26050         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
26051         (decl_jump_unsafe): Move higher in file, with no other change.
26052         (bind): Set has_jump_unsafe_decl if appropriate.
26053         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
26054         (check_earlier_gotos): Likewise.
26055         (c_check_switch_jump_warnings): Likewise.
26056
26057 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
26058
26059         * doc/invoke.texi (Warning Options): Add missing hyphen.
26060         (-fprofile-dir): Minor grammatical fixes.
26061         (-fbranch-probabilities): Likewise.
26062
26063 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
26064
26065         PR debug/45136
26066         PR debug/45130
26067         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
26068         debug insns.
26069         (no_real_insns_p, schedule_block, set_priorities): Drop special
26070         treatment of boundary debug insns.
26071         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug insns.
26072         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
26073         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
26074         (BOUNDARY_DEBUG_INSN_P): Likewise.
26075         (SCHEDULE_DEBUG_INSN_P): Likewise.
26076         * sched-rgn.c (init_ready_list): Drop special treatment of
26077         boundary debug insns.
26078         * final.c (rest_of_clean-state): Clear notes' BB.
26079
26080 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26081
26082         * Makefile.in (LAMBDA_H): Removed.
26083         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
26084         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
26085         lambda-trans.o, and tree-loop-linear.o.
26086         (lto-symtab.o): Remove dependence on LAMBDA_H.
26087         (tree-loop-linear.o): Remove rule.
26088         (lambda-mat.o): Same.
26089         (lambda-trans.o): Same.
26090         (lambda-code.o): Same.
26091         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
26092         (tree-vect-slp.o): Same.
26093         * hwint.h (gcd): Moved here.
26094         (least_common_multiple): Same.
26095         * lambda-code.c: Removed.
26096         * lambda-mat.c: Removed.
26097         * lambda-trans.c: Removed.
26098         * lambda.h: Removed.
26099         * tree-loop-linear.c: Removed.
26100         * lto-symtab.c: Do not include lambda.h.
26101         * omega.c (gcd): Removed.
26102         * passes.c (init_optimization_passes): Remove pass_linear_transform.
26103         * tree-data-ref.c (print_lambda_vector): Moved here.
26104         (lambda_vector_copy): Same.
26105         (lambda_matrix_copy): Same.
26106         (lambda_matrix_id): Same.
26107         (lambda_vector_first_nz): Same.
26108         (lambda_matrix_row_add): Same.
26109         (lambda_matrix_row_exchange): Same.
26110         (lambda_vector_mult_const): Same.
26111         (lambda_vector_negate): Same.
26112         (lambda_matrix_row_negate): Same.
26113         (lambda_vector_equal): Same.
26114         (lambda_matrix_right_hermite): Same.
26115         * tree-data-ref.h: Do not include lambda.h.
26116         (lambda_vector): Moved here.
26117         (lambda_matrix): Same.
26118         (dependence_level): Same.
26119         (lambda_transform_legal_p): Removed declaration.
26120         (lambda_collect_parameters): Same.
26121         (lambda_compute_access_matrices): Same.
26122         (lambda_vector_gcd): Same.
26123         (lambda_vector_new): Same.
26124         (lambda_vector_clear): Same.
26125         (lambda_vector_lexico_pos): Same.
26126         (lambda_vector_zerop): Same.
26127         (lambda_matrix_new): Same.
26128         * tree-flow.h (least_common_multiple): Removed declaration.
26129         * tree-parloops.c (lambda_trans_matrix): Moved here.
26130         (LTM_MATRIX): Same.
26131         (LTM_ROWSIZE): Same.
26132         (LTM_COLSIZE): Same.
26133         (LTM_DENOMINATOR): Same.
26134         (lambda_trans_matrix_new): Same.
26135         (lambda_matrix_vector_mult): Same.
26136         (lambda_transform_legal_p): Same.
26137         * tree-pass.h (pass_linear_transform): Removed declaration.
26138         * tree-ssa-loop.c (tree_linear_transform): Removed.
26139         (gate_tree_linear_transform): Removed.
26140         (pass_linear_transform): Removed.
26141         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
26142         flag_loop_interchange.
26143
26144 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
26145
26146         PR tree-optimization/47265
26147         PR tree-optimization/47443
26148         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
26149         if name still has some uses.
26150
26151 2011-01-25  Martin Jambor  <mjambor@suse.cz>
26152
26153         PR tree-optimization/47382
26154         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
26155         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
26156
26157 2011-01-25  Joel Sherrill  <joel.sherrill@oarcorp.com>
26158
26159         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
26160         sjlj_except_unwind_info.
26161
26162 2011-01-25  Richard Guenther  <rguenther@suse.de>
26163
26164         PR tree-optimization/47426
26165         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
26166         visible functions results escape.
26167
26168 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
26169
26170         PR target/45701
26171         * config/arm/arm.c (any_sibcall_uses_r3): New function.
26172         (arm_get_frame_offsets): Use it.
26173
26174 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26175             Jakub Jelinek  <jakub@redhat.com>
26176
26177         PR tree-optimization/47271
26178         * tree-if-conv.c (bb_postdominates_preds): New.
26179         (if_convertible_bb_p): Call bb_postdominates_preds.
26180         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
26181         (predicate_scalar_phi): Call bb_postdominates_preds.
26182
26183 2011-01-25  Nick Clifton  <nickc@redhat.com>
26184
26185         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
26186         * config/rx/rx.c (rx_function_value): Likewise.
26187         (rx_promote_function_mode): Likewise.
26188         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
26189         in order to make it legitimate.
26190         * config/rx/rx.md (adddi3_internal): If the second operand is a MEM
26191         make sure that the first operand is the same as the result register.
26192         (addsi3_unspec): Delete.
26193         (subdi3): Do not accept immediate operands.
26194         (subdi3_internal): Likewise.
26195
26196 2011-01-25  Jeff Law  <law@redhat.com>
26197
26198         PR rtl-optimization/37273
26199         * ira-costs.c (scan_one_insn): Detect constants living in memory and
26200         handle them like argument loads from stack slots.  Do not double
26201         count memory for memory constants and argument loads from stack slots.
26202
26203 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
26204
26205         PR tree-optimization/47427
26206         PR tree-optimization/47428
26207         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
26208         coalesce if the new root var would be TREE_READONLY.
26209
26210 2011-01-25  Richard Guenther  <rguenther@suse.de>
26211
26212         PR middle-end/47414
26213         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
26214         correct type for TBAA.
26215
26216 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26217
26218         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
26219         (close_phi_written_to_memory): Call for_each_index with
26220         dr_indices_valid_in_loop.
26221
26222 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26223
26224         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
26225         when it is initialized.
26226
26227 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26228
26229         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
26230         call to graphite_find_data_references_in_stmt.
26231         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
26232         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
26233         call to graphite_find_data_references_in_stmt.
26234         (analyze_drs_in_stmts): Same.
26235         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
26236         in which the scalar analysis of indices is performed.
26237         (create_data_ref): Same.  Update call to dr_analyze_indices.
26238         (find_data_references_in_stmt): Update call to create_data_ref.
26239         (graphite_find_data_references_in_stmt): Same.
26240         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
26241         declaration.
26242         (create_data_ref): Same.
26243         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
26244         call to create_data_ref.
26245
26246 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26247
26248         * graphite-sese-to-poly.c (build_poly_scop): Move
26249         rewrite_commutative_reductions_out_of_ssa before find_scop_parameters.
26250
26251 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26252
26253         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
26254         VAR_DECL, PARM_DECL, and RESULT_DECL.
26255
26256 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26257
26258         * graphite-dependences.c (reduction_dr_1): Allow several reductions
26259         in a reduction PBB.
26260         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
26261         that have already been marked as PBB_IS_REDUCTION.
26262
26263 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26264
26265         * graphite-scop-detection.c (same_close_phi_node): New.
26266         (remove_duplicate_close_phi): New.
26267         (make_close_phi_nodes_unique): New.
26268         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
26269
26270 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26271
26272         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
26273         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
26274         of both data references to be the same.
26275
26276 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26277
26278         * graphite-dependences.c (build_lexicographical_constraint): Remove
26279         the gdim parameter.
26280         (build_lexicographical_constraint): Adjust call to
26281         ppl_powerset_is_empty.
26282         (dependence_polyhedron): Same.
26283         (graphite_legal_transform_dr): Same.
26284         (graphite_carried_dependence_level_k): Same.
26285         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params
26286         parameter.
26287         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
26288
26289 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26290
26291         * graphite-sese-to-poly.c
26292         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
26293         (close_phi_written_to_memory): New.
26294         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
26295         and unshare_expr.
26296
26297 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26298
26299         * doc/install.texi: Update the expected version number of PPL to 0.11.
26300         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
26301         #if PPL_VERSION_MINOR < 11.
26302
26303 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26304
26305         * graphite-dependences.c: Include graphite-cloog-util.h.
26306         (new_poly_ddr): Inlined into dependence_polyhedron.
26307         (free_poly_ddr): Moved close by new_poly_ddr.
26308         (dependence_polyhedron_1): Renamed dependence_polyhedron.
26309         Early return NULL when ppl_powerset_is_empty returns true.
26310         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
26311         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
26312         (graphite_legal_transform_dr): Call new_poly_ddr.
26313         (graphite_carried_dependence_level_k): Same.
26314         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
26315         (dot_transformed_deps_stmt_1): Removed.
26316         (dot_deps_stmt_1): Call dot_deps_stmt_2.
26317         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
26318         (dot_deps_1): Call dot_deps_2.
26319         * Makefile.in (graphite-dependences.o): Add missing dependence on
26320         graphite-cloog-util.h.
26321
26322 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26323
26324         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
26325         (build_lexicographical_constraint): Same.
26326         (dependence_polyhedron_1): Same.
26327         (graphite_legal_transform_dr): Same.
26328         (graphite_carried_dependence_level_k): Same.
26329         * graphite-ppl.c (ppl_powerset_is_empty): New.
26330         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
26331         * tree-data-ref.c (dump_data_reference): Print the basic block index.
26332
26333 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26334
26335         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
26336         the "a followed by b" relation and document it.
26337
26338 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26339
26340         * graphite-dependences.c (build_lexicographical_constraint): Stop the
26341         iteration when the bag of constraints is empty.
26342
26343 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26344
26345         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
26346
26347 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26348
26349         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
26350         nest and two loop depths as parameters.
26351         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
26352         lst_perfect_nestify.
26353
26354 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26355
26356         * graphite-dependences.c (print_pddr): Call
26357         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
26358
26359 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
26360
26361         * graphite-ppl.c (debug_gmp_value): New.
26362         * graphite-ppl.h (debug_gmp_value): Declared.
26363
26364 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
26365
26366         * doc/install.texi: Document availability of cloog-0.16.
26367
26368 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
26369
26370         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
26371         invalid postdominance info.
26372
26373 2011-01-24  Jan Hubicka  <jh@suse.cz>
26374
26375         PR c/21659
26376         * doc/extend.texi (weak pragma): Drop claim that it must
26377         appear before definition.
26378         * varasm.c (merge_weak, declare_weak): Only sanity check
26379         that DECL is not output at a time it is declared weak.
26380
26381 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
26382
26383         * machmode.def: Fixed comments.
26384
26385 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
26386
26387         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
26388
26389 2011-01-24  Paul Koning  <ni1d@arrl.net>
26390
26391         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
26392         WORDS_BIG_ENDIAN.
26393
26394 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
26395
26396         PR target/46519
26397         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
26398         (block_info): Add scanned and prev.
26399         (move_or_delete_vzeroupper_2): Return if the basic block
26400         has been scanned and the upper 128bit state is unchanged
26401         from the last scan.
26402         (move_or_delete_vzeroupper_1): Return true if the exit
26403         state is changed.
26404         (move_or_delete_vzeroupper): Visit basic blocks using the
26405         work-list based algorithm based on vt_find_locations in
26406         var-tracking.c.
26407
26408         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
26409
26410 2011-01-24  Nick Clifton  <nickc@redhat.com>
26411
26412         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
26413         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
26414         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
26415         then define __v850e1__.
26416         * doc/invoke.texi: Document -mv850es.
26417
26418 2011-01-24  Richard Henderson  <rth@redhat.com>
26419
26420         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
26421         compound unordered comparisons.
26422         * config/rx/rx.c (rx_split_fp_compare): Remove.
26423         * config/rx/rx-protos.h: Update.
26424         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
26425         (cbranchsf4): Don't call rx_split_fp_compare.
26426         (*cbranchsf4): Use rx_split_cbranch.
26427         (*cmpsf): Don't accept "i" constraint.
26428         (*conditional_branch): Only valid after reload.
26429         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
26430
26431 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
26432
26433         PR target/47385
26434         * config/rs6000/altivec.md (vector constant splitters): Add
26435         support for creating vector single precision constants if -mvsx is
26436         used and we would create the constant using Altivec primitives.
26437
26438 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
26439             Richard Sandiford  <rdsandiford@googlemail.com>
26440
26441         PR rtl-optimization/47166
26442         * reload1.c (emit_reload_insns): Disable the spill_reg_store
26443         mechanism for PRE_MODIFY and POST_MODIFY.
26444         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
26445         reloadreg.
26446
26447 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
26448
26449         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
26450
26451 2011-01-22  Jan Hubicka  <jh@suse.cz>
26452
26453         PR lto/47333
26454         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
26455
26456 2011-01-22  Jan Hubicka  <jh@suse.cz>
26457
26458         PR tree-optimization/43884
26459         PR lto/44334
26460         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
26461         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
26462
26463 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
26464
26465         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
26466         * config/s390/s390.c (s390_register_move_cost,
26467         s390_memory_move_cost): New.
26468         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
26469
26470 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26471
26472         PR middle-end/47401
26473         * except.c (sjlj_assign_call_site_values): Move setting the
26474         crtl->uses_eh_lsda flag to ...
26475         (sjlj_mark_call_sites): ... here.
26476         (sjlj_emit_function_enter): Support NULL dispatch label.
26477         (sjlj_build_landing_pads): In a function with no landing pads
26478         that still has must-not-throw regions, generate code to register
26479         a personality function with empty LSDA.
26480
26481 2011-01-21  Richard Henderson  <rth@redhat.com>
26482
26483         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
26484
26485         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
26486
26487         * compare-elim.c: New file.
26488         * Makefile.in (OBJS-common): Add it.
26489         (compare-elim.o): New.
26490         * common.opt (fcompare-elim): New.
26491         * opts.c (default_options_table): Add OPT_fcompare_elim.
26492         * tree-pass.h (pass_compare_elim_after_reload): New.
26493         * passes.c (init_optimization_passes): Add it.
26494         * recog.h: Protect against re-inclusion.
26495         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
26496         * doc/invoke.texi (-fcompare-elim): Document it.
26497         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
26498         * doc/tm.texi: Rebuild.
26499
26500 2011-01-22  Nick Clifton  <nickc@redhat.com>
26501
26502         * config/rx/rx.md (cstoresf4): Pass comparison operator to
26503         rx_split_fp_compare.
26504
26505 2011-01-22  Nick Clifton  <nickc@redhat.com>
26506
26507         * config/rx/rx.md (UNSPEC_CONST): New.
26508         (deallocate_and_return): Wrap the amount popped off the stack in
26509         an UNSPEC_CONST in order to stop it being rejected by
26510         -mmax-constant-size.
26511         (pop_and_return): Add a "(return)" rtx.
26512         (call): Drop the immediate operand.
26513         (call_internal): Likewise.
26514         (call_value): Likewise.
26515         (call_value_internal): Likewise.
26516         (sibcall_internal): Likewise.
26517         (sibcall_value_internal): Likewise.
26518         (sibcall): Likewise.  Generate an explicit call using
26519         sibcall_internal.
26520         (sibcall_value): Likewise.
26521         (mov<>): FAIL if a constant operand is not legitimate.
26522         (addsi3_unpsec): New pattern.
26523
26524         * config/rx/rx.c (rx_print_operand_address): Handle UNSPEC CONSTs.
26525         (ok_for_max_constant): New function.
26526         (gen_safe_add): New function.
26527         (rx_expand_prologue): Use gen_safe_add.
26528         (rx_expand_epilogue): Likewise.
26529         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
26530         UNSPEC CONSTs.
26531
26532 2011-01-21  Jeff Law  <law@redhat.com>
26533
26534         PR tree-optimization/47053
26535         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
26536         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
26537         statements are deleted.
26538         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
26539         is nonempty, then purge dead edges and cleanup the CFG.
26540
26541 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
26542
26543         PR debug/47402
26544         Temporarily revert:
26545         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
26546         PR debug/47106
26547         * tree-dfa.c (create_var_ann): Mark variable as used.
26548
26549 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
26550
26551         PR middle-end/45566
26552         * except.c (convert_to_eh_region_ranges): Emit queued no-region
26553         notes from other section in hot/cold partitioning even if
26554         last_action is -3.  Increment call_site_base.
26555
26556         PR rtl-optimization/47366
26557         * fwprop.c (forward_propagate_into): Return bool.  If
26558         any changes are made, -fnon-call-exceptions is used and
26559         REG_EH_REGION note is present, call purge_dead_edges
26560         and return true if it purged anything.
26561         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
26562         any EH edges were purged.
26563
26564 2011-01-21  Jeff Law  <law@redhat.com>
26565
26566         PR rtl-optimization/41619
26567         * caller-save.c (setup_save_areas): Break out code to determine
26568         which hard regs are live across calls by examining the reload chains
26569         so that it is always used.
26570         Eliminate code which checked REG_N_CALLS_CROSSED.
26571
26572 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
26573
26574         PR tree-optimization/47355
26575         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
26576         NOP has non-debug uses beyond PHIs in new_bb.
26577
26578 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
26579
26580         PR debug/47106
26581         * cfgexpand.c (account_used_vars_for_block): Only account vars
26582         that are annotated as used.
26583         (estimated_stack_frame_size): Don't set TREE_USED.
26584         * tree-dfa.c (create_var_ann): Mark variable as used.
26585
26586 2011-01-21  Richard Guenther  <rguenther@suse.de>
26587
26588         PR middle-end/47395
26589         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
26590
26591 2011-01-21  Richard Guenther  <rguenther@suse.de>
26592
26593         PR tree-optimization/47365
26594         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
26595         (vn_reference_lookup_pieces): Adjust.
26596         (vn_reference_lookup): Likewise.
26597         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
26598         (vn_reference_lookup_3): Only look through kills if in
26599         VN_WALKREWRITE mode.
26600         (vn_reference_lookup_pieces): Adjust.
26601         (vn_reference_lookup): Likewise.
26602         (visit_reference_op_load): Likewise.
26603         (visit_reference_op_store): Likewise.
26604         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
26605         (compute_avail): Likewise.
26606         (eliminate): Likewise.
26607
26608 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
26609
26610         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
26611         DECL_IGNORED_P non-reg vars if they are used.
26612
26613         PR tree-optimization/47391
26614         * varpool.c (const_value_known_p): Return false if
26615         decl is volatile.
26616
26617 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
26618
26619         PR bootstrap/47215
26620         * config/i386/i386.c (ix86_local_alignment): Handle
26621         case for va_list_type_node is nil.
26622         (ix86_canonical_va_list_type): Likewise.
26623
26624 2011-01-21  Alan Modra  <amodra@gmail.com>
26625
26626         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
26627         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
26628
26629 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26630
26631         * config/arm/arm.md (define_attr type): Rename f_load
26632         and f_store to f_fpa_load and f_fpa_store. Update.
26633         (write_conflict): Deal with rename fallout.
26634         (*push_fp_multi): Likewise.
26635         * config/arm/fpa.md (f_load): Use f_fpa_load.
26636         (f_store): Use f_fpa_store.
26637         (*movsf_fpa): Likewise.
26638         (*movdf_fpa): Likewise.
26639         (*movxf_fpa): Likewise.
26640         (*thumb2_movsf_fpa): Likewise.
26641         (*thumb2_movdf_fpa): Likewise.
26642         (*thumb2_movxf_fpa): Likewise.
26643         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
26644         f_loadd and f_stored.
26645         (*thumb2_movdi_vfp): Likewise.
26646         (*thumb2_movsf_vfp): Fix attribute to f_loads.
26647         (*thumb2_movsi_vfp): Likewise.
26648         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
26649         Use f_loads instead of f_load.
26650         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
26651
26652 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
26653
26654         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
26655         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
26656         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
26657         (xtensa_mode_dependent_address_p): New function.
26658         (constantpool_address_p): Make static. Change return type to bool.
26659         Change argument type to const_rtx. Use CONST_INT_P predicate.
26660
26661 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
26662
26663         PR debug/46583
26664         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
26665
26666 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
26667
26668         PR debug/47283
26669         * cfgexpand.c (expand_debug_expr): Instead of generating
26670         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
26671         etc. handling.
26672
26673 2011-01-20  Richard Guenther  <rguenther@suse.de>
26674
26675         PR middle-end/47370
26676         * tree-inline.c (remap_gimple_op_r): Recurse manually for
26677         the pointer operand of MEM_REFs.
26678
26679 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
26680
26681         PR tree-optimization/46130
26682         * ipa-split.c (consider_split): If return_bb contains non-virtual
26683         PHIs other than for retval or if split_function would not adjust it,
26684         refuse to split.
26685
26686 2011-01-20  Richard Guenther  <rguenther@suse.de>
26687
26688         PR tree-optimization/47167
26689         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
26690         Revert previous change, only avoid enumeral type changes.
26691
26692 2011-01-19  Mike Stump  <mikestump@comcast.net>
26693
26694         * doc/tm.texi.in (BRANCH_COST): Englishify.
26695         * doc/tm.texi (BRANCH_COST): Likewise.
26696
26697 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
26698
26699         PR c++/47291
26700         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
26701         (gen_scheduled_generic_parms_dies): New functions.
26702         (gen_struct_or_union_type_die): Schedule template parameters DIEs
26703         generation for the end of CU compilation.
26704         (dwarf2out_finish): Generate template parameters DIEs here.
26705
26706 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
26707
26708         PR debug/46240
26709         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
26710         debug bind stmt on merge edges.
26711
26712 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
26713
26714         PR debug/47079
26715         PR debug/46724
26716         * function.c (instantiate_expr): Instantiate incoming rtl of
26717         implicit arguments, and recurse on VALUE_EXPRs.
26718         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
26719         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
26720
26721 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
26722
26723         * c-parser.c (c_parser_for_statement): Initialize
26724         collection_expression.
26725
26726 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
26727
26728         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
26729
26730 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
26731
26732         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
26733         (LINK_SHLIB_SPEC): Don't use %(link_path).
26734         (SUBTARGET_EXTRA_SPECS): Remove link_path.
26735
26736 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
26737
26738         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
26739         (NO_SHARED_LIB_SUPPORT): Remove.
26740         (LINK_SHLIB_SPEC): Remove one conditional definition.
26741
26742 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
26743
26744         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
26745         %{call_shared}.
26746         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
26747         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
26748         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
26749         %{call_shared} and conditionals on these options not being passed.
26750         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
26751         %{call_shared}.
26752
26753 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
26754
26755         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
26756         simplify.
26757
26758         * ipa-split.c: Spelling fixes.
26759
26760 2011-01-19  Richard Henderson  <rth@redhat.com>
26761
26762         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
26763         (*mulsi3): Likewise.
26764
26765         * longlong.h [__mn10300__] (count_leading_zeros): New.
26766         [__mn10300__] (umul_ppmm, smul_ppmm): New.
26767         [__mn10300__] (add_ssaaaa, subddmmss): New.
26768         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
26769         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
26770
26771 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
26772
26773         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
26774
26775 2011-01-19  Richard Henderson  <rth@redhat.com>
26776
26777         * config/mn10300/mn10300.md (addsi3_flags): New.
26778         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
26779         (subsi3_flags, subc_internal, subdi3): New.
26780         (subdi3_internal, *subdi3_degenerate): New.
26781         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
26782
26783         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
26784         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
26785         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
26786         * config/mn10300/mn10300-protos.h: Update.
26787         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
26788         (return_ret): Likewise.  Rename from return_internal_regs.
26789         (return_internal): Remove.
26790
26791         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
26792         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
26793         (mn10300_legitimate_constant_p): Likewise.
26794         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
26795         (mn10300_frame_size): New.
26796         (mn10300_expand_prologue): Use it.
26797         (mn10300_expand_epilogue): Likewise.
26798         (mn10300_initial_offset): Likewise.
26799         * config/mn10300/mn10300-protos.h: Update.
26800         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
26801         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
26802         (prologue, epilogue, return_internal): Tidy output code.
26803         (mn10300_store_multiple_operation, return): Likewise.
26804         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
26805         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
26806         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
26807         (load_pic, am33_load_pic): New.
26808         (mn10300_load_pic0, mn10300_load_pic1): New.
26809
26810         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
26811         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
26812         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
26813         (cc_flags_for_mode, cc_flags_for_code): New.
26814         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
26815         overflow flag is not valid.  Validate that the flags we need
26816         for the comparison are valid.
26817         (mn10300_output_cmp): Remove.
26818         (mn10300_output_add): New.
26819         (mn10300_select_cc_mode): Use cc_flags_for_code.
26820         (mn10300_split_cbranch): New.
26821         (mn10300_match_ccmode): New.
26822         (mn10300_split_and_operand_count): New.
26823         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
26824         to the function.
26825         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
26826         (addsi3): ... here.  Use mn10300_output_add.
26827         (*addsi3_flags): New.
26828         (*am33_subsi3, *mn10300_subsi3): Merge...
26829         (subsi3): ... here.  Use attribute isa.
26830         (*subsi3_flags): New.
26831         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
26832         when possible.
26833         (*am33_andsi3, *mn10300_andsi3): Merge...
26834         (andsi3): ... here.
26835         (*andsi3_flags): New.
26836         (andsi3 splitters): New.
26837         (*am33_iorsi3, *mn10300_iorsi3): Merge...
26838         (iorsi3): ... here.
26839         (*iorsi3_flags): New.
26840         (*am33_xorsi3, *mn10300_xorsi3): Merge...
26841         (xorsi3): ... here.
26842         (*xorsi3_flags): New.
26843         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
26844         (one_cmplsi2): ... here.
26845         (*one_cmplsi2_flags): New.
26846         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
26847         instead of "dax" in constraints.  Use mn10300_split_cbranch.
26848         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
26849         use matching constraints to eliminate a self-comparison.
26850         (*integer_conditional_branch): Rename from integer_conditional_branch.
26851         Use int_mode_flags to match CC_REG.
26852         (*cbranchsi4_btst, *btstsi): New.
26853         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
26854         mn10300_split_cbranch.
26855         (*am33_cmpsf): Rename from am33_cmpsf.
26856         (*float_conditional_branch): Rename from float_conditional_branch.
26857         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
26858         (zero_extendqisi2): ... here.
26859         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
26860         (zero_extendhisi2): ... here.
26861         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
26862         (extendqisi2): ... here.
26863         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
26864         (extendhisi2): ... here.
26865         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
26866         (ashlsi3): ... here.
26867         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
26868         (lshrsi3): ... here.
26869         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
26870         (ashrsi3): ... here.
26871         (consecutive add peephole): Remove.
26872         * config/mn10300/predicates.md (label_ref_operand): New.
26873         (int_mode_flags): New.
26874         (CCZN_comparison_operator): New.
26875
26876         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
26877         (throughput_42_latency_43): New reservation.
26878         (mulsidi3, umulsidi3): New expanders.
26879         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
26880         the MDR register to allocation; separately allocate the low and
26881         high parts of the DImode result.
26882         (umulsidi3_internal): Similarly.
26883         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
26884         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
26885         (udivsi3, umodsi3): Remove.
26886         (udivmodsi4, divmodsi4): New expanders.
26887         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
26888         (*divmodsi4): Simiarly.
26889         (ext_internal): New.
26890
26891         * config/mn10300/constraints.md ("z"): New constraint.
26892         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
26893         (FIXED_REGISTERS): Don't fix MDR.
26894         (CALL_USED_REGSITERS): Reformat nicely.
26895         (REG_ALLOC_ORDER): Add MDR.
26896         (enum regclass): Add MDR_REGS.
26897         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
26898         (IRA_COVER_CLASSES): Add MDR_REGS.
26899         (REGNO_REG_CLASS): Handle MDR_REG.
26900         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
26901         (mn10300_register_move_cost): Likewise.
26902         * config/mn10300/mn10300.md (MDR_REG): New.
26903         (*movsi_internal): Handle moves to/from MDR_REGS.
26904
26905         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
26906         POST_MODIFY.
26907         (mn10300_secondary_reload): Tidy combination reload classes.
26908         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
26909         addresses for AM33.  Allow symbolic offsets for reg+imm.
26910         (mn10300_regno_in_class_p): New.
26911         (mn10300_legitimize_reload_address): New.
26912         * config/mn10300/mn10300.h (enum reg_class): Remove
26913         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
26914         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
26915         SP_OR_GENERAL_REGS.
26916         (REG_CLASS_NAMES): Update to match.
26917         (REG_CLASS_CONTENTS): Likewise.
26918         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
26919         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
26920         (REGNO_IN_RANGE_P): Remove.
26921         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
26922         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
26923         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
26924         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
26925         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
26926         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
26927         (REGNO_GENERAL_P): New.
26928         (HAVE_POST_MODIFY_DISP): New.
26929         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
26930         (LEGITIMIZE_RELOAD_ADDRESS): New.
26931         * config/mn10300/mn10300-protos.h: Update.
26932
26933         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
26934         DATA_REGS for AM33 stack-pointer destination.
26935         (mn10300_preferred_output_reload_class): Likewise.
26936         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
26937         into a form appropriate for ...
26938         (TARGET_SECONDARY_RELOAD): New.
26939         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
26940         * config/mn10300/mn10300-protos.h: Update.
26941         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
26942         reload_insi; use the "A" constraint for the scratch; handle AM33
26943         moves of sp to non-address registers.
26944
26945         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
26946         (*movqi_internal): ... here.
26947         (*am33_movhi, *mn10300_movhi): Merge into...
26948         (*movhi_internal): ... here.
26949         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
26950         as the source/destination of moves from/to SP.
26951         (movsf): Only allow for AM33-2.
26952         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
26953         any integer constant constraint.  Only allow for AM33-2.  Tidy
26954         all of the alternative outputs.
26955         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
26956         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
26957         for MN103.
26958         (udivsi3, umodsi3): New patterns for MN103 only.
26959
26960 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
26961
26962         * doc/tm.texi.in: Spell out that a lack of register class unions
26963         can lead to ICEs.
26964         * doc/tm.texi: Regenerate.
26965
26966 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
26967
26968         PR rtl-optimization/47337
26969         * dce.c (check_argument_store): New function.
26970         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
26971
26972         PR tree-optimization/47290
26973         * tree-eh.c (infinite_empty_loop_p): New function.
26974         (cleanup_empty_eh): Use it.
26975
26976 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
26977
26978         PR target/46997
26979         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
26980         (a64_expand_widen_sum): Ditto.
26981         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
26982         (vec_extract_evenodd_help): Ditto.
26983         (vec_extract_evenv4hi): Ditto.
26984         (vec_extract_oddv4hi): Ditto.
26985         (vec_extract_evenv2si): Ditto.
26986         (vec_extract_oddv2si): Ditto.
26987         (vec_extract_evenv2sf): Ditto.
26988         (vec_extract_oddv2sf): Ditto.
26989         (vec_pack_trunc_v4hi: Ditto.
26990         (vec_pack_trunc_v2si): Ditto.
26991         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
26992         (vec_interleave_highv8qi): Ditto.
26993         (mix1_r): Ditto.
26994         (vec_extract_oddv8qi): Ditto.
26995         (vec_interleave_lowv4hi): Ditto.
26996         (vec_interleave_highv4hi): Ditto.
26997         (vec_interleave_lowv2si): Ditto.
26998         (vec_interleave_highv2si): Ditto.
26999
27000 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27001
27002         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
27003         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
27004         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
27005         (pa_c_mode_for_suffix): New.
27006         (TARGET_EXPAND_BUILTIN): Define.
27007         (TARGET_C_MODE_FOR_SUFFIX): Define.
27008         (pa_builtins): Define.
27009         (pa_init_builtins): Register __float128 type and init new support
27010         builtins.
27011         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
27012         * config/pa/quadlib.c (_U_Qfcopysign): New.
27013
27014 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
27015
27016         PR middle-end/46894
27017         * explow.c (allocate_dynamic_stack_space): Do not assume more than
27018         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
27019         are defined.
27020
27021 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27022
27023         PR tree-optimization/47179
27024         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
27025         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
27026
27027 2011-01-18  Richard Guenther  <rguenther@suse.de>
27028
27029         PR rtl-optimization/47216
27030         * emit-rtl.c: Include tree-flow.h.
27031         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
27032         of replicating it with different semantics.
27033         * Makefile.in (emit-rtl.o): Adjust.
27034
27035 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27036
27037         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually include.
27038         (cortex_a9_dp): Handle neon types correctly.
27039
27040 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
27041
27042         PR rtl-optimization/47299
27043         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
27044         subtarget.  Use normal multiplication if both operands are constants.
27045         * expmed.c (expand_widening_mult): Don't try to optimize constant
27046         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
27047         before using it.
27048
27049 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27050
27051         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
27052         spacing after 'e.g.', typos, comma, hyphenation.
27053
27054 2011-01-17  Richard Henderson  <rth@redhat.com>
27055
27056         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
27057         (rx_restricted_mem_operand): New.
27058         (rx_shift_operand): Use register_operand.
27059         (rx_source_operand, rx_compare_operand): Likewise.
27060         * config/rx/rx.md (addsi3_flags): New expander.
27061         (adddi3): Rewrite as expander.
27062         (adc_internal, *adc_flags, adddi3_internal): New patterns.
27063         (subsi3_flags): New expander.
27064         (subdi3): Rewrite as expander.
27065         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
27066
27067         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
27068         (rx_init_builtins): Remove sat builtin.
27069         (rx_expand_builtin): Likewise.
27070         * config/rx/rx.md (ssaddsi3): New.
27071         (*sat): Rename from sat.  Represent the CC_REG input.
27072
27073         * config/rx/predicates.md (rshift_operator): New.
27074         * config/rx/rx.c (rx_expand_insv): Remove.
27075         * config/rx/rx-protos.h: Update.
27076         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
27077         operand to the canonical position.
27078         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
27079         (*bitclr, *bitclr_in_memory): Similarly.
27080         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
27081         (insv): Retain the zero_extract in the expansion.
27082
27083         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
27084         (bswaphi2, bitinvert, revw): Likewise.
27085
27086         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
27087         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
27088         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
27089         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
27090         (bitset, bitset_in_memory): Likewise.
27091         (bitinvert, bitinvert_in_memory): Likewise.
27092         (bitclr, bitclr_in_memory): Likewise.
27093         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
27094         (rx_strend, rx_cmpstrn): Likewise.
27095         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
27096         (bitop peep2 patterns): Remove.
27097
27098         * config/rx/rx.c (rx_match_ccmode): New.
27099         * config/rx/rx-protos.h: Update.
27100         * config/rx/rx.md (abssi2): Clobber, don't set flags.
27101         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
27102         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
27103         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
27104         (fix_truncsfsi2, floatsisf2): Likewise.
27105         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
27106         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
27107         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
27108         (*subsi3_flags, *xorsi3_flags): New.
27109
27110         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
27111
27112         * config/rx/rx.c (rx_print_operand): Remove workaround for
27113         unsplit comparison operations.
27114
27115         * config/rx/rx.md (movsicc): Split after reload.
27116         (*movsicc): Merge *movsieq and *movsine via match_operator.
27117         (*stcc): New pattern.
27118
27119         * config/rx/rx.c (rx_float_compare_mode): Remove.
27120         * config/rx/rx.h (rx_float_compare_mode): Remove.
27121         * config/rx/rx.md (cstoresi4): Split after reload.
27122         (*sccc): New pattern.
27123
27124         * config/rx/predicates.md (label_ref_operand): New.
27125         (rx_z_comparison_operator): New.
27126         (rx_zs_comparison_operator): New.
27127         (rx_fp_comparison_operator): New.
27128         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
27129         Validate that the flags are set properly for the comparison.
27130         (rx_gen_cond_branch_template): Remove.
27131         (rx_cc_modes_compatible): Remove.
27132         (mode_from_flags): New.
27133         (flags_from_code): Rename from flags_needed_for_conditional.
27134         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
27135         (rx_select_cc_mode): Likewise.
27136         (rx_split_fp_compare): New.
27137         (rx_split_cbranch): New.
27138         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
27139         (*cbranchsi4): Use match_operator and rx_split_cbranch.
27140         (*cbranchsf4): Similarly.
27141         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
27142         match_operator and rx_split_cbranch.
27143         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
27144         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
27145         (*cmpsi): Rename from cmpsi.
27146         (*tstsi): Rename from tstsi.
27147         (*cmpsf): Rename from cmpsf; use CC_Fmode.
27148         (*conditional_branch): Rename from conditional_branch.
27149         (*reveresed_conditional_branch): Remove.
27150         (b<code>): Remove expander.
27151         * config/rx/rx-protos.h: Update.
27152
27153         * config/rx/rx.c (rx_compare_redundant): Remove.
27154         * config/rx/rx.md (cmpsi): Don't use it.
27155         * config/rx/rx-protos.h: Update.
27156
27157         * config/rx/rx-modes.def (CC_F): New mode.
27158         * config/rx/rx.c (rx_select_cc_mode): New.
27159         * config/rx/rx.h (SELECT_CC_MODE): Use it.
27160         * config/rx/rx-protos.h: Update.
27161
27162 2011-01-17  Richard Henderson  <rth@redhat.com>
27163
27164         * except.c (dump_eh_tree): Fix stray ; after for statement.
27165
27166 2011-01-17  Richard Guenther  <rguenther@suse.de>
27167
27168         PR tree-optimization/47313
27169         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
27170         handling before copying the body.  Properly deal with
27171         by-reference result in SSA form.
27172
27173 2011-01-17  Ian Lance Taylor  <iant@google.com>
27174
27175         PR target/47219
27176         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
27177         (struct_value_alias_set): Don't define.
27178         (sparc_option_override): Don't set sparc_sr_alias_set and
27179         struct_value_alias_set.
27180         (save_or_restore_regs): Use gen_frame_mem rather than calling
27181         set_mem_alias_set.
27182         (sparc_struct_value_rtx): Likewise.
27183
27184 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
27185
27186         PR target/47318
27187         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to __m128i.
27188         (_mm_maskstore_pd): Likewise.
27189         (_mm_maskload_ps): Likewise.
27190         (_mm_maskstore_ps): Likewise.
27191         (_mm256_maskload_pd): Change mask to __m256i.
27192         (_mm256_maskstore_pd): Likewise.
27193         (_mm256_maskload_ps): Likewise.
27194         (_mm256_maskstore_ps): Likewise.
27195
27196         * config/i386/i386-builtin-types.def: Updated.
27197         (ix86_expand_special_args_builtin): Likewise.
27198
27199         * config/i386/i386.c (bdesc_special_args): Update
27200         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
27201         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
27202         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
27203         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
27204
27205         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
27206         Use <avxpermvecmode> on mask register.
27207         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
27208
27209 2011-01-17  Olivier Hainque  <hainque@adacore.com>
27210             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
27211             Eric Botcazou  <ebotcazou@adacore.com>
27212
27213         PR target/46655
27214         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
27215         if <= USHRT_MAX in 32-bit mode.
27216
27217 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27218
27219         * doc/install.texi (Configuration, Specific): Wrap long
27220         lines in examples.  Allow line wrapping in long options
27221         and URLs where beneficial for PDF output.
27222
27223 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
27224
27225         * config/mips/mips.c (mips_classify_symbol): Don't return
27226         SYMBOL_PC_RELATIVE for nonlocal labels.
27227
27228 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
27229
27230         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
27231
27232 2011-01-15  Jan Hubicka  <jh@suse.cz>
27233
27234         PR tree-optimization/47276
27235         * ipa.c (function_and_variable_visibility): Do not try to mark alias
27236         declarations as needed.
27237
27238 2011-01-15  Martin Jambor  <mjambor@suse.cz>
27239
27240         * common.opt (fdevirtualize): New flag.
27241         * doc/invoke.texi (Option Summary): Document it.
27242         * opts.c (default_options_table): Add devirtualize flag.
27243         * ipa-prop.c (detect_type_change): Return immediately if
27244         devirtualize flag is not set.
27245         (detect_type_change_ssa): Likewise.
27246         (compute_known_type_jump_func): Likewise.
27247         (ipa_analyze_virtual_call_uses): Likewise.
27248
27249 2011-01-14  Martin Jambor  <mjambor@suse.cz>
27250
27251         PR tree-optimization/45934
27252         PR tree-optimization/46302
27253         * ipa-prop.c (type_change_info): New type.
27254         (stmt_may_be_vtbl_ptr_store): New function.
27255         (check_stmt_for_type_change): Likewise.
27256         (detect_type_change): Likewise.
27257         (detect_type_change_ssa): Likewise.
27258         (compute_complex_assign_jump_func): Check for dynamic type change.
27259         (compute_complex_ancestor_jump_func): Likewise.
27260         (compute_known_type_jump_func): Likewise.
27261         (compute_scalar_jump_functions): Likewise.
27262         (ipa_analyze_virtual_call_uses): Likewise.
27263         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
27264
27265 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
27266
27267         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
27268         * config/i386/i386.opt (msse5): New Alias.
27269
27270 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
27271
27272         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
27273         * config/sparc/linux64.h (CC1_SPEC): Likewise.
27274         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
27275         * config/sparc/sparc.h (CC1_SPEC): Likewise.
27276
27277 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
27278
27279         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
27280         -mcpu options.
27281         * config/sparc/linux64.h (CC1_SPEC): Likewise.
27282         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
27283         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
27284         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
27285         Likewise.
27286         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
27287
27288 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
27289
27290         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or -fvec-eabi.
27291
27292 2011-01-14  Mike Stump  <mikestump@comcast.net>
27293
27294         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
27295         * config/fr30/fr30.md: Likweise
27296         (movsi_push): Likewise.
27297         (movsi_pop): Likewise.
27298         (enter_func): Likewise.
27299         * config/moxie/moxie.md (movsi_push): Likewise.
27300         (movsi_pop): Likewise.
27301
27302 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
27303
27304         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
27305         %{no_archive} %{exact_version}.
27306         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
27307         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
27308         %{no_archive} %{exact_version}.
27309         * config/mips/openbsd.h (LINK_SPEC): Likewise.
27310         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
27311         * config/mips/vxworks.h: Likewise.
27312
27313 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
27314
27315         * config/microblaze/microblaze.h (ASM_SPEC): Remove %{microblaze1}.
27316
27317 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
27318
27319         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
27320         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
27321
27322 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
27323
27324         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
27325         -nodefaultlib.
27326
27327 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
27328
27329         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
27330         for mcpu not cpu.
27331         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
27332         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
27333         not cpu.
27334         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
27335         Don't handle -shlib.
27336
27337 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
27338
27339         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
27340         (CC1_SPEC): Don't handle -profile.
27341
27342 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
27343
27344         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
27345         * config/mips/mips.h (CC1_SPEC): Likewise.
27346
27347 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
27348
27349         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
27350         * config/mips/mips.h (CC1_SPEC): Likewise.
27351
27352 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
27353
27354         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
27355         * config/m32r/linux.h (LINK_SPEC): Likewise.
27356         * config/mips/linux.h (LINK_SPEC): Likewise.
27357         * config/mips/linux64.h (LINK_SPEC): Likewise.
27358         * config/sparc/linux.h (LINK_SPEC): Likewise.
27359         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
27360         LINK_SPEC): Likewise.
27361         * config/xtensa/linux.h (LINK_SPEC): Likewise.
27362
27363 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
27364
27365         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
27366         %{version:-v}.
27367         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
27368
27369 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
27370
27371         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
27372         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
27373
27374 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
27375
27376         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
27377
27378 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27379
27380         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
27381         supports -Bstatic/-Bdynamic.
27382         * configure: Regenerate.
27383
27384 2011-01-14  Jan Hubicka  <jh@suse.cz>
27385             Jack Howarth  <howarth@bromo.med.uc.edu>
27386
27387         PR target/46037
27388         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
27389         when checking debug_info_level. Test write_symbols instead of
27390         debug_hooks->var_location when setting flag_var_tracking_uninit.
27391
27392 2011-01-14  Richard Guenther  <rguenther@suse.de>
27393
27394         PR tree-optimization/47179
27395         * target.def (ref_may_alias_errno): New target hook.
27396         * targhooks.h (default_ref_may_alias_errno): Declare.
27397         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
27398         (default_ref_may_alias_errno): New function.
27399         * target.h (struct ao_ref_s): Declare.
27400         * tree-ssa-alias.c: Include target.h.
27401         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
27402         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
27403         (targhooks.o): Likewise.
27404         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
27405         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
27406
27407 2011-01-14  Richard Guenther  <rguenther@suse.de>
27408
27409         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
27410
27411 2011-01-14  Richard Guenther  <rguenther@suse.de>
27412
27413         PR tree-optimization/47280
27414         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
27415         return CFG changes.
27416         (tree_ssa_forward_propagate_single_use_vars): Deal with
27417         CFG changes from associate_plusminus.
27418
27419 2011-01-14  Richard Guenther  <rguenther@suse.de>
27420
27421         PR middle-end/47281
27422         Revert
27423         2011-01-11  Richard Guenther  <rguenther@suse.de>
27424
27425         PR tree-optimization/46076
27426         * tree-ssa.c (useless_type_conversion_p): Conversions from
27427         unprototyped to empty argument list function types are useless.
27428
27429 2011-01-14  Richard Guenther  <rguenther@suse.de>
27430
27431         PR tree-optimization/47286
27432         * tree-ssa-structalias.c (new_var_info): Register variables are global.
27433
27434 2011-01-14  Martin Jambor  <mjambor@suse.cz>
27435
27436         PR middle-end/46823
27437         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
27438
27439 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
27440
27441         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
27442         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
27443         * config/xtensa/xtensa.c (xtensa_libcall_value,
27444         xtensa_function_value_regno_p): New functions.
27445         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
27446
27447 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
27448
27449         PR c++/47213
27450         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
27451         PE specific hook.
27452         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
27453         New function prototype.
27454         * config/i386/winnt.c (i386_pe_assemble_visibility):
27455         Warn only if attribute was specified by user.
27456
27457 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
27458
27459         PR target/47251
27460         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
27461         floating point.
27462         (floatunsdidf2_fcfidu): Ditto.
27463
27464 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27465
27466         * config/s390/s390.c (print_operand_address): Replace 'error' with
27467         'output_operand_lossage'.
27468         (print_operand): Likewise.
27469
27470 2011-01-13  Jeff Law  <law@redhat.com>
27471
27472         PR rtl-optimization/39077
27473         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
27474         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
27475         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
27476         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
27477         * gcse.c (prune_insertions_deletions): New function.
27478         (compute_pre_data): Use it.
27479
27480 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
27481
27482         PR debug/PR46973
27483         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
27484         static function.
27485         (prune_unused_types_mark): Use it.
27486
27487 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
27488
27489         PR rtl-optimization/45352
27490         * sel-sched.c: Update copyright years.
27491         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
27492         in the advancing loop when we have issued issue_rate insns.
27493
27494 2011-01-12  Richard Henderson  <rth@redhat.com>
27495
27496         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
27497         (TARGET_MD_ASM_CLOBBERS): New.
27498
27499         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
27500         (TARGET_DELEGITIMIZE_ADDRESS): New.
27501
27502         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
27503         (clzsi2, *bsch): New patterns.
27504
27505         * config/mn10300/mn10300.md (INT): New mode iterator.
27506         (*mov<INT>_clr): New pattern, and peep2 to generate it.
27507
27508         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
27509         flag_split_wide_types.
27510
27511         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
27512         (mn10300_trampoline_init): Rewrite without a template, an immediate
27513         load and a direct branch.
27514         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
27515
27516 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
27517
27518         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
27519         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
27520         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
27521         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
27522
27523 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
27524
27525         PR debug/47209
27526         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
27527         of type.
27528
27529 2011-01-12  Jan Hubicka  <jh@suse.cz>
27530
27531         PR driver/47244
27532         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
27533         (PLUGIN_COND_CLOSE): New macro.
27534         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
27535
27536 2011-01-12  Richard Guenther  <rguenther@suse.de>
27537
27538         PR lto/47259
27539         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
27540         register variables in a MEM_REF.
27541
27542 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
27543
27544         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
27545         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
27546         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
27547         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
27548         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
27549         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
27550         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
27551         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
27552         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
27553         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
27554         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
27555         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
27556         * config/gnu-user.h: New.  Copied from linux.h.
27557         (LINUX_TARGET_STARTFILE_SPEC): Rename to
27558         GNU_USER_TARGET_STARTFILE_SPEC.
27559         (LINUX_TARGET_ENDFILE_SPEC): Rename to
27560         GNU_USER_TARGET_ENDFILE_SPEC.
27561         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
27562         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
27563         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
27564         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
27565         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
27566         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
27567         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
27568         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
27569         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
27570         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
27571         * config/arm/linux-eabi.h (CC1_SPEC): Use
27572         GNU_USER_TARGET_CC1_SPEC.
27573         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
27574         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
27575         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
27576         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
27577         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
27578         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
27579         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
27580         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
27581
27582 2011-01-12  Richard Guenther  <rguenther@suse.de>
27583
27584         PR other/46946
27585         * doc/invoke.texi (ffast-math): Document it is turned on
27586         with -Ofast.
27587
27588 2011-01-12  Jan Hubicka  <jh@suse.cz>
27589
27590         PR tree-optimization/47233
27591         * opts.c (common_handle_option): Disable ipa-reference with profile
27592         feedback.
27593
27594 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
27595
27596         * c-parser.c (c_parser_objc_at_property_declaration): Improved
27597         error message.
27598
27599 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
27600
27601         * c-parser.c (c_lex_one_token): Updated and reindented some
27602         comments.  No changes in code.
27603
27604 2011-01-11  Ian Lance Taylor  <iant@google.com>
27605
27606         * godump.c (go_output_var): Don't output the variable if there is
27607         already a type with the same name.
27608
27609 2011-01-11  Ian Lance Taylor  <iant@google.com>
27610
27611         * godump.c (go_format_type): Don't generate float80.
27612
27613 2011-01-11  Richard Henderson  <rth@redhat.com>
27614
27615         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
27616         declaration.  Rewrite for both speed and size.
27617         (mn10300_address_cost_1): Remove.
27618         (mn10300_register_move_cost): New.
27619         (mn10300_memory_move_cost): New.
27620         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
27621         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
27622         extensions, shifts, BSWAP, CLZ.
27623         (mn10300_wide_const_load_uses_clr): Remove.
27624         (TARGET_REGISTER_MOVE_COST): New.
27625         (TARGET_MEMORY_MOVE_COST): New.
27626         * config/mn10300/mn10300-protos.h: Update.
27627         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
27628
27629         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
27630         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
27631         * config/mn10300/mn10300-protos.h: Update.
27632         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
27633         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
27634         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
27635         (*test_int_bitfield, *test_byte_bitfield): Remove.
27636         (*bit_test, *subreg_bit_test): Remove.
27637         * config/mn10300/predicates.md (const_8bit_operand): Remove.
27638
27639         * config/mn10300/constraints.md ("c"): Rename from "A".
27640         ("A", "D"): New constraint letters.
27641         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
27642         (fmssf4, fnmasf4, fnmssf4): Likewise.
27643
27644         * config/mn10300/mn10300.md (isa): New attribute.
27645         (enabled): New attribute.
27646
27647         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
27648         (abssf2, negsf2): Define only for hardware fp.
27649         (sqrtsf2): Reformat.
27650         (addsf3, subsf3, mulsf3): Merge expander and insn.
27651
27652         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
27653         (DEBUGGER_AUTO_OFFSET): Remove.
27654         (DEBUGGER_ARG_OFFSET): Remove.
27655
27656         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
27657         Emit register stores with the same offsets as the hardware.
27658         (mn10300_store_multiple_operation): Don't check that the register
27659         save offsets are monotonic.
27660         * config/mn10300/mn10300-protos.h: Update.
27661
27662         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
27663
27664         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
27665         in terms of the value on the stack, not the MDR register.
27666
27667 2011-01-11  Jan Hubicka  <jh@suse.cz>
27668
27669         PR lto/45721
27670         PR lto/45375
27671         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
27672         (symbol_alias_set_destroy, symbol_alias_set_contains,
27673         propagate_aliases_backward): Declare.
27674         * lto-streamer-out.c (struct sets): New sturcture.
27675         (trivally_defined_alias): New function.
27676         (output_alias_pair_p): Rewrite.
27677         (output_unreferenced_globals): Fix output of alias pairs.
27678         (produce_symtab): Likewise.
27679         * ipa.c (function_and_variable_visibility): Set weak alias destination
27680         as needed in lto.
27681         * varasm.c (symbol_alias_set_t): Remove.
27682         (symbol_alias_set_destroy): Export.
27683         (propagate_aliases_forward, propagate_aliases_backward): New functions
27684         based on ...
27685         (compute_visible_aliases): ... this one; remove.
27686         (trivially_visible_alias): New
27687         (trivially_defined_alias): New.
27688         (remove_unreachable_alias_pairs): Rewrite.
27689         (finish_aliases_1): Reorganize code checking if alias is defined.
27690         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
27691         in LTO mode.
27692
27693 2011-01-11  Richard Guenther  <rguenther@suse.de>
27694
27695         PR tree-optimization/46076
27696         * tree-ssa.c (useless_type_conversion_p): Conversions from
27697         unprototyped to empty argument list function types are useless.
27698
27699 2011-01-11  Richard Guenther  <rguenther@suse.de>
27700
27701         PR middle-end/45235
27702         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
27703         volatile MEMs as MEM_READONLY_P.
27704
27705 2011-01-11  Richard Guenther  <rguenther@suse.de>
27706
27707         PR tree-optimization/47239
27708         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
27709
27710 2011-01-11  Jeff Law  <law@redhat.com>
27711
27712         PR tree-optimization/47086
27713         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
27714         IVs from statements that might throw.
27715
27716 2011-01-10  Jan Hubicka  <jh@suse.cz>
27717
27718         PR lto/45375
27719         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
27720
27721 2011-01-10  Jan Hubicka  <jh@suse.cz>
27722
27723         PR lto/45375
27724         * profile.c (read_profile_edge_counts): Ignore profile inconistency
27725         when correcting profile.
27726
27727 2011-01-10  Jan Hubicka  <jh@suse.cz>
27728
27729         PR lto/46083
27730         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
27731         DECL_FINI_PRIORITY.
27732         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
27733         Restore DECL_FINI_PRIORITY.
27734
27735 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27736
27737         * doc/gimple.texi: Fix quoting of multi-word return values in
27738         @deftypefn statements.  Ensure presence of return value.  Wrap
27739         overlong @deftypefn lines.
27740         (is_gimple_operand, is_gimple_min_invariant_address): Remove
27741         descriptions of removed functions.
27742         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
27743         of multi-word return value in @deftypefn statement.
27744
27745 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27746
27747         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
27748         (Conditional Expressions, Logical Operators)
27749         (Statement and operand traversals): Do not indent smallexample
27750         code.  Fix duplicate function argument in example.
27751
27752 2011-01-10  Jeff Law  <law@redhat.com>
27753
27754         PR tree-optimization/47141
27755         * ipa-split.c (split_function): Handle case where we are
27756         returning a value and the return block has a virtual operand phi.
27757
27758 2011-01-10  Jan Hubicka  <jh@suse.cz>
27759
27760         PR tree-optimization/47234
27761         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
27762         (pass_feedback_split_functions): Declare.
27763         * passes.c (init_optimization_passes): Add ipa-split as subpass of
27764         tree-profile.
27765         * ipa-split.c (gate_split_functions): Update comments; disable
27766         split-functions for profile_arc_flag and branch_probabilities.
27767         (gate_feedback_split_functions): New function.
27768         (execute_feedback_split_functions): New function.
27769         (pass_feedback_split_functions): New global var.
27770
27771 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
27772
27773         PR lto/46760
27774         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
27775         calling gimple_call_set_cannot_inline.
27776
27777 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
27778
27779         * config/darwin-sections.def: Remove unused section.
27780
27781 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
27782
27783         PR c++/47218
27784         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
27785
27786 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
27787
27788         PR objc/47232
27789         * c-parser.c (c_parser_declaration_or_fndef): Improved
27790         error message.
27791
27792 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
27793
27794         * config/i386/winnt.c (i386_pe_start_function): Make sure
27795         to switch back to function's section.
27796
27797 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
27798
27799         PR gcc/46902
27800         PR testsuite/46912
27801         * plugin.c: Move include of dlfcn.h from here...
27802         * system.h: ... to here.
27803
27804 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27805
27806         * doc/cpp.texi (C++ Named Operators): Fix markup for header
27807         file name.
27808         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
27809         two extra empty pages in PDF output.
27810
27811 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
27812
27813         PR objc/47078
27814         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
27815         for error recovery purposes behave as if it was not specified so
27816         that the default type is usd.
27817
27818 2011-01-07  Jan Hubicka  <jh@suse.cz>
27819
27820         PR tree-optmization/46469
27821         * ipa.c (function_and_variable_visibility): Clear needed flags on
27822         nodes with external decls; handle weakrefs merging correctly.
27823
27824 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
27825
27826         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
27827         not false.
27828
27829 2011-01-07  Jan Hubicka  <jh@suse.cz>
27830
27831         * doc/invoke.texi (-flto, -fuse-linker-plugin): Update defaults
27832         and no longer claim that gold is required for linker plugin.
27833         * configure: Regenerate.
27834         * gcc.c (PLUGIN_COND): New macro.
27835         (LINK_COMMAND_SPEC): Use it.
27836         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
27837         * config.in (HAVE_LTO_PLUGIN): New.
27838         * configure.ac (--with-lto-plugin): New parameter; autodetect
27839         HAVE_LTO_PLUGIN.
27840
27841 2011-01-07  Jan Hubicka  <jh@suse.cz>
27842
27843         PR tree-optimization/46367
27844         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
27845         when we can update original.
27846         (cgraph_mark_inline_edge): Sanity check.
27847         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
27848
27849 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
27850
27851         * config/spu/spu.h (ASM_COMMENT_START): Define.
27852
27853 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
27854
27855         PR driver/42445
27856         * gcc.c (%>S): New.
27857         (SWITCH_KEEP_FOR_GCC): Likewise.
27858         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
27859         (do_spec_1): Handle "%>".
27860
27861         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
27862
27863 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
27864
27865         PR target/47201
27866         * config/i386/i386.c (ix86_delegitimize_address): If
27867         simplify_gen_subreg fails, return orig_x.
27868
27869         PR bootstrap/47187
27870         * value-prof.c (gimple_stringop_fixed_value): Handle
27871         lhs of the call properly.
27872
27873 2011-01-07  Jan Hubicka  <jh@suse.cz>
27874
27875         PR lto/45375
27876         * lto-opt.c (lto_reissue_options): Set flag_shlib.
27877
27878 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
27879
27880         * target.def (function_switched_text_sections): New hook.
27881         * doc/tm.texi: Regenerated.
27882         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
27883         * final.c (default_function_switched_text_sections): New.
27884         (final_scan_insn): Call function_switched_text_sections when a
27885         mid-function section change occurs.
27886         * output.h (default_function_switched_text_sections): Declare.
27887         * config/darwin-protos.h (darwin_function_switched_text_sections):
27888         Likewise.
27889         * config/darwin.c (darwin_function_switched_text_sections): New.
27890         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
27891
27892 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
27893
27894         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
27895         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
27896         the secondary code fragment when outputting for DWARF == 2.
27897
27898 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
27899
27900         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
27901         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
27902         Remove.
27903         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
27904         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
27905
27906 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
27907
27908         PR debug/46704
27909         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
27910         when it is not empty.
27911
27912 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
27913
27914         Bobcat Enablement
27915         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
27916         (case ${target}): Add btver1.
27917         * config/i386/driver-i386.c (host_detect_local_cpu): Let
27918         -march=native recognize btver1 processors.
27919         * config/i386/i386-c.c (ix86_target_macros_internal): Add
27920         btver1 def_and_undef
27921         * config/i386/i386.c (struct processor_costs btver1_cost): New
27922         btver1 cost table.
27923         (m_BTVER1): New definition.
27924         (m_AMD_MULTIPLE): Includes m_BTVER1.
27925         (initial_ix86_tune_features): Add btver1 tune.
27926         (processor_target_table): Add btver1 entry.
27927         (static const char *const cpu_names): Add btver1 entry.
27928         (software_prefetching_beneficial_p): Add btver1.
27929         (ix86_option_override_internal): Add btver1 instruction sets.
27930         (ix86_issue_rate): Add btver1.
27931         (ix86_adjust_cost): Add btver1.
27932         * config/i386/i386.h (TARGET_BTVER1): New definition.
27933         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
27934         (enum processor_type): Add PROCESSOR_BTVER1.
27935         * config/i386/i386.md (define_attr "cpu"): Add btver1.
27936
27937 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27938
27939         PR target/43309
27940         * config/i386/i386.c (legitimize_tls_address)
27941         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
27942         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
27943         (tls_initial_exec_64_sun): New pattern.
27944
27945 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
27946
27947         * doc/invoke.texi (Overall Options): Improve wording and markup
27948         of the description of -wrapper.
27949
27950 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
27951
27952         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
27953         rdynamic, threads): New Driver options.
27954
27955 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27956
27957         PR target/38118
27958         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
27959         if coming from .tdata.
27960         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
27961
27962 2011-01-06  Jan Hubicka  <jh@suse.cz>
27963
27964         PR lto/47188
27965         * collect2.c (main): Do not enable LTOmode when plugin is active.
27966
27967 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27968
27969         PR other/45915
27970         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
27971         --version output if supported.
27972         * configure: Regenerate.
27973
27974 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
27975
27976         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
27977         Driver options.
27978
27979 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
27980
27981         PR c/47150
27982         * c-convert.c (convert): When converting a complex expression
27983         other than COMPLEX_EXPR to a different complex type, ensure
27984         c_save_expr is called instead of save_expr, unless in_late_binary_op.
27985         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
27986         when converting COMPLEX_TYPE.
27987
27988 2011-01-06  Ira Rosen  <irar@il.ibm.com>
27989
27990         PR tree-optimization/47139
27991         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
27992         only the last reduction value is used outside the loop.  Update
27993         documentation.
27994
27995 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
27996
27997         * config/rtems.opt: New.
27998         * config.gcc (*-*-rtems*): Use rtems.opt.
27999
28000 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
28001
28002         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
28003         processors do not support 3DNow instructions.
28004
28005 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28006
28007         * config/spu/spu.c (spu_option_override): Set parameter
28008         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
28009
28010 2011-01-05  Jan Hubicka  <jh@suse.cz>
28011
28012         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
28013         at the command line.
28014
28015 2011-01-05  Martin Jambor  <mjambor@suse.cz>
28016
28017         PR lto/47162
28018         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
28019         deltas on streamed outgoing edges.
28020         (output_node_opt_summary): Output info for outgoing edges only when
28021         the node is in new parameter set.
28022         (output_cgraph_opt_summary): New parameter set, passed to the two
28023         aforementioned functions.  Update its forward declaration and its
28024         callee too.
28025
28026 2011-01-05  Tom Tromey  <tromey@redhat.com>
28027
28028         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
28029         operator to c_finish_omp_atomic.
28030         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
28031         (build_unary_op): Update.
28032         (build_modify_expr): Update.
28033         (build_asm_expr): Update.
28034
28035 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28036
28037         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
28038         newly inserted insns.
28039         (pad_bb): Likewise.
28040         (spu_emit_branch_hint): Likewise.
28041         (insert_hbrp_for_ilb_runout): Likewise.
28042         (spu_machine_dependent_reorg): Call df_finish_pass after
28043         schedule_insns returns.
28044
28045 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28046
28047         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
28048
28049 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
28050
28051         PR tree-optimization/47005
28052         * tree-sra.c (struct access): Add 'non_addressable' bit.
28053         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
28054         (decide_one_param_reduction): Return 0 if the parameter is passed by
28055         reference and one of the accesses in the group is non_addressable.
28056
28057 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
28058
28059         PR tree-optimization/47056
28060         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
28061         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
28062         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
28063
28064 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
28065
28066         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
28067         initializer.  Skip view conversions from aggregate types.
28068
28069 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
28070
28071         PR bootstrap/47055
28072         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
28073
28074 2011-01-04  Philipp Thomas  <pth@suse.de>
28075
28076         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
28077         obvious typo.
28078
28079 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28080
28081         * function.c (thread_prologue_and_epilogue_insns): Do not crash
28082         on empty epilogue sequences.
28083
28084 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
28085
28086         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
28087         non-static): New Driver options.
28088
28089 2011-01-04  Jie Zhang  <jie@codesourcery.com>
28090
28091         PR driver/47137
28092         * gcc.c (default_compilers[]): Set combinable field to 0
28093         for all assembly languages.
28094
28095 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
28096
28097         * config/mips/loongson3a.md: New file.
28098         * config/mips/mips.md: Include loongson3a.md.
28099         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
28100         TUNE_LOONGSON_3A.
28101
28102 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
28103
28104         PR middle-end/47017
28105         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
28106         instead of convert_memory_address_addr_space on the base expression.
28107
28108 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28109
28110         * config/spu/spu.c (spu_option_override): Update error text
28111         for bad -march= / -mtune= values.
28112
28113 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28114
28115         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
28116         if branch-hint optimization will be performed.
28117
28118 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
28119
28120         PR tree-optimization/47148
28121         * ipa-split.c (split_function): Convert arguments to
28122         DECL_ARG_TYPE if possible.
28123
28124         PR tree-optimization/47155
28125         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
28126         when computing uns.
28127
28128         PR rtl-optimization/47157
28129         * combine.c (try_combine): If undobuf.other_insn becomes
28130         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
28131         and set *new_direct_jump_p too.
28132
28133 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
28134
28135         PR tree-optimization/47021
28136         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
28137
28138 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
28139
28140         * gcc.c (process_command): Update copyright notice dates.
28141         * gcov.c (print_version): Likewise.
28142         * gcov-dump.c (print_version): Likewise.
28143         * mips-tfile.c (main): Likewise.
28144         * mips-tdump.c (main): Likewise.
28145
28146 2011-01-03  Martin Jambor  <mjambor@suse.cz>
28147
28148         PR tree-optimization/46801
28149         * tree-sra.c (type_internals_preclude_sra_p): Check whether
28150         aggregate fields start at byte boundary instead of the bit-field flag.
28151
28152 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
28153
28154         PR driver/47137
28155         * gcc.c (main): Revert revision 168407.
28156
28157 2011-01-03  Martin Jambor  <mjambor@suse.cz>
28158
28159         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
28160
28161 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28162
28163         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
28164         vector optab to expand vector/scalar shift, update gimple to vector.
28165
28166 2011-01-03  Martin Jambor  <mjambor@suse.cz>
28167
28168         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
28169         a thunk.
28170
28171 2011-01-03  Martin Jambor  <mjambor@suse.cz>
28172
28173         PR tree-optimization/46984
28174         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
28175         HOST_WIDE_INT.
28176         (cgraph_create_indirect_edge): Fixed line length.
28177         (cgraph_indirect_call_info): Declare.
28178         (cgraph_make_edge_direct) Update declaration.
28179         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
28180         (cgraph_create_indirect_edge): Use it.
28181         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
28182         callees.
28183         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
28184         the new thunk_delta representation.
28185         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
28186         HOST_WIDE_INT.
28187         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
28188         (ipa_read_indirect_edge_info): Likewise.
28189         * lto-cgraph.c (output_edge_opt_summary): New function.
28190         (output_node_opt_summary): Call it on all outgoing edges.
28191         (input_edge_opt_summary): New function.
28192         (input_node_opt_summary): Call it on all outgoing edges.
28193
28194 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
28195
28196         PR driver/47137
28197         * gcc.c (main): Don't check have_o when settting combine_inputs.
28198
28199 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
28200
28201         * regrename.c: Add general comment describing the pass.
28202         (struct du_head): Remove 'length' field.
28203         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
28204         (regrename_optimize): Do not sort chains.  Rework comments, add others.
28205         Force renaming to the preferred class (if any) in the first pass and do
28206         not consider registers that belong to it in the second pass.
28207         (create_new_chain): Do not set 'length' field.
28208         (scan_rtx_reg): Likewise.
28209
28210 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
28211
28212         PR tree-optimization/47140
28213         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
28214         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
28215         to bit_value_binop.
28216
28217         PR rtl-optimization/47028
28218         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
28219         parm_birth_insn instead of at the beginning of first bb.
28220
28221 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
28222
28223         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
28224         Remove the word "see" before "@pxref".
28225         * doc/rtl.texi: Remove the word "see" before "@pxref".
28226
28227 2011-01-01  Jan Hubicka  <jh@suse.cz>
28228
28229         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
28230         memory.
28231
28232 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
28233
28234         PR target/38662
28235         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
28236
28237 \f
28238 Copyright (C) 2011 Free Software Foundation, Inc.
28239
28240 Copying and distribution of this file, with or without modification,
28241 are permitted in any medium without royalty provided the copyright
28242 notice and this notice are preserved.