OSDN Git Service

938aede5fb8f738a20f85d2d4b0193fc031cf954
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-09-08  Martin Jambor  <mjambor@suse.cz>
2
3         PR tree-optimization/50287
4         * ipa-split.c (split_function): Do not create SSA names for
5         non-gimple-registers.
6
7 2011-09-08  Richard Guenther  <rguenther@suse.de>
8
9         PR tree-optimization/19831
10         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
11         skip builtins with vdefs that do not really store something.
12         (propagate_necessity): For calls to free that we can associate
13         with an allocation function do not mark the freed pointer
14         definition necessary.
15         (eliminate_unnecessary_stmts): Remove a call to free if
16         the associated call to an allocation function is not necessary.
17
18 2011-09-08  Richard Guenther  <rguenther@suse.de>
19
20         PR tree-optimization/19831
21         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
22         allocation functions as necessary.
23
24 2011-09-08  Iain Sandoe  <iains@gcc.gnu.org>
25
26         *config/darwin-driver.c (darwin_find_version_from_kernel): New routine 
27         cut from ... (darwin_default_min_version): Amended to provide defaults
28         for the cross directory case.
29         (darwin_driver_init): call darwin_default_min_version unconditionally.
30         * config/darwin.h (DEF_MIN_OSX_VERSION): New.
31         * config/darwin9.h: Likewise.
32         * config/darwin10.h: Likewise.
33         * config/rs6000/darwin7.h: Likewise.
34
35 2011-09-08  Jakub Jelinek  <jakub@redhat.com>
36
37         PR target/50310
38         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
39         code early if TARGET_AVX.
40         (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
41
42 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
43
44         * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
45         duplicates.
46
47         PR target/50310
48         * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
49         "mode" attribute computation.
50
51 2011-09-07  Bernd Schmidt  <bernds@codesourcery.com>
52
53         * regrename.c (struct du_head): Make nregs signed.
54         (closed_chains): Remove.
55         (create_new_chain): Return the new chain.
56         (chain_from_id): New static function.
57         (dump_def_use_chain): Change argument to be an int, indicating
58         the first ID to print.  All callers changed.
59         (merge_overlapping_regs): Use chain_from_id.  Assert that
60         chains don't conflict with themselves.
61         (rename_chains): Take no argument.  Iterate over id_to_chain
62         rather to find chains to rename.  Clear tick before the main
63         loop.
64         (struct incoming_reg_info): New struct.
65         (struct bb_rename_info): New struct.
66         (init_rename_info, set_incoming_from_chain, merge_chains): New
67         static functions.
68         (regrename_analyze): New static function, broken out of
69         regrename_optimize.  Record and make use of open chain information
70         at basic block boundaries, and merge chains where possible.
71         (scan_rtx_reg): Make this_nregs signed.  Don't update
72         closed_chains.
73         (build_def_use): Return a bool to indicate success.  All callers
74         changed.  Don't initialize global data here.
75         (regrename_optimize): Move most code out of here into
76         regrename_analyze.
77         * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
78         range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
79         static inline functions.
80         * vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
81
82         * bb-reorder.c (insert_section_boundary_note): Don't check
83         optimize_function_for_speed_p.
84         (gate_handle_partition_blocks): Do it here instead.
85         (gate_handle_reorder_blocks): Move preliminary checks here ...
86         (rest_of_handle_reorder_blocks): ... from here.
87
88 2011-09-07  Martin Jambor  <mjambor@suse.cz>
89
90         PR middle-end/50301
91         * ipa-cp.c (find_more_values_for_callers_subset): Check jump
92         function index bounds.
93         (perhaps_add_new_callers): Likewise.
94
95 2011-09-07  Martin Jambor  <mjambor@suse.cz>
96
97         PR tree-optimization/49911
98         * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
99         enumerations to the corresponding plain integer type.
100
101 2011-09-07  Richard Guenther  <rguenther@suse.de>
102
103         PR tree-optimization/50319
104         * tree-if-conv.c (set_bb_predicate): Assert we only set
105         canonical predicates.
106         (add_to_predicate_list): Simplify.  Allow TRUTH_NOT_EXPR
107         around canonical predicates.
108         (predicate_bbs): Do not re-gimplify already canonical
109         predicates.  Properly unshare them though.
110         (find_phi_replacement_condition): Simplify.
111
112 2011-09-07  Richard Sandiford  <richard.sandiford@linaro.org>
113
114         PR target/49030
115         * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
116         * config/arm/arm.c (maybe_get_arm_condition_code): New function,
117         reusing the old code from get_arm_condition_code.  Return ARM_NV
118         for invalid comparison codes.
119         (get_arm_condition_code): Redefine in terms of
120         maybe_get_arm_condition_code.
121         * config/arm/predicates.md (arm_comparison_operator): Use
122         maybe_get_arm_condition_code.
123
124 2011-09-07  Richard Guenther  <rguenther@suse.de>
125
126         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
127         Canonicalize negated predicates by swapping edges.
128         (forward_propagate_into_cond): Likewise.
129
130 2011-09-07  Richard Guenther  <rguenther@suse.de>
131
132         PR tree-optimization/50213
133         * tree-flow.h (simple_iv_increment_p): Declare.
134         * tree-ssa-dom.c (simple_iv_increment_p): Export.  Also handle
135         POINTER_PLUS_EXPR.
136         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
137         not propagate simple IV counter increments.
138
139 2011-09-07  Eric Botcazou  <ebotcazou@adacore.com>
140             Iain Sandoe  <iains@gcc.gnu.org>
141
142         * config/rs6000/rs6000.c (compute_save_world_info): Test
143         cfun->has_nonlocal_label to determine if the out-of-line save
144         world call may be used.
145
146 2011-09-07  Nick Clifton  <nickc@redhat.com>
147
148         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
149         label on the parallel part of the insn.
150
151 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
152
153         PR debug/50191
154         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
155         avoid_constant_pool_reference first instead of last.
156
157 2011-09-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
158
159         * doc/configfiles.texi (Configuration Files): Update documentation
160         about tm_p.h and remove FIXME comment.
161
162 2011-09-06  Uros Bizjak  <ubizjak@gmail.com>
163
164         * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
165         (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
166
167 2011-09-06  Iain Sandoe  <iains@gcc.gnu.org>
168
169         * config/darwin10.h Remove duplicate LIB_SPEC.
170
171 2011-09-06  Enkovich Ilya  <ilya.enkovich@intel.com>
172
173         PR middle-end/44382
174         * target.def (reassociation_width): New hook.
175
176         * doc/tm.texi.in (reassociation_width): Likewise.
177
178         * doc/tm.texi (reassociation_width): Likewise.
179
180         * doc/invoke.texi (tree-reassoc-width): New param documented.
181
182         * hooks.h (hook_int_uint_mode_1): New default hook.
183
184         * hooks.c (hook_int_uint_mode_1): Likewise.
185
186         * config/i386/i386.h (ix86_tune_indices): Add
187         X86_TUNE_REASSOC_INT_TO_PARALLEL and
188         X86_TUNE_REASSOC_FP_TO_PARALLEL.
189
190         (TARGET_REASSOC_INT_TO_PARALLEL): New.
191         (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
192
193         * config/i386/i386.c (initial_ix86_tune_features): Add
194         X86_TUNE_REASSOC_INT_TO_PARALLEL and
195         X86_TUNE_REASSOC_FP_TO_PARALLEL.
196
197         (ix86_reassociation_width) implementation of
198         new hook for i386 target.
199
200         * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
201
202         * tree-ssa-reassoc.c (get_required_cycles): New function.
203         (get_reassociation_width): Likewise.
204         (swap_ops_for_binary_stmt): Likewise.
205         (rewrite_expr_tree_parallel): Likewise.
206
207         (rewrite_expr_tree): Refactored. Part of code moved into
208         swap_ops_for_binary_stmt.
209
210         (reassociate_bb): Now checks reassociation width to be used
211         and call rewrite_expr_tree_parallel instead of rewrite_expr_tree
212         if needed.
213
214 2011-09-06  Richard Guenther  <rguenther@suse.de>
215
216         PR tree-optimization/47025
217         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
218         uses nothing.
219         (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
220         BUILT_IN_FREE.
221         (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
222         definitely points to.
223         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
224         BUILT_IN_VA_START doesn't let its va_list argument escape.
225         * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
226         not make any previous stores necessary.
227
228 2011-09-06  Martin Jambor  <mjambor@suse.cz>
229
230         * ipa-inline.h (struct inline_summary): Move versionable flag...
231         * cgraph.h (struct cgraph_local_info): ...here
232         * ipa-cp.c (determine_versionability): Use the new versionable flag.
233         (determine_versionability): Likewise.
234         (ipcp_versionable_function_p): Likewise.
235         (ipcp_generate_summary): Likewise.
236         * ipa-inline-analysis.c (dump_inline_summary): Do not dump the
237         versionable flag.
238         (compute_inline_parameters): Do not clear the versionable flag.
239         (inline_read_section): Do not stream the versionable flag.
240         (inline_write_summary): Likewise.
241         * lto-cgraph.c (lto_output_node): Stream the versionable flag.
242         (input_overwrite_node): Likewise.
243
244 2011-09-06  Richard Guenther  <rguenther@suse.de>
245
246         PR tree-optimization/48149
247         * tree-ssa-sccvn.c (vn_get_expr_for): Simplify.  Fix tuplification bug.
248         (vn_valueize): Move earlier.
249         (valueize_expr): Use vn_valueize.
250         (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
251         operands.
252         (simplify_unary_expression): Simplify.
253
254 2011-09-06  Richard Guenther  <rguenther@suse.de>
255
256         PR tree-optimization/48317
257         * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
258         trailing array.
259         (sizeof_vn_nary_op): New inline function.
260         (vn_nary_op_lookup_pieces): Adjust.
261         (vn_nary_op_insert_pieces): Likewise.
262         * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
263         (init_vn_nary_op_from_pieces): Adjust signature.  Deal with
264         any number of operands.
265         (vn_nary_length_from_stmt): New function.
266         (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
267         (vn_nary_op_lookup_pieces): Adjust signature and allocate properly
268         sized temporary.
269         (vn_nary_op_lookup): Likewise.
270         (vn_nary_op_lookup_stmt): Likewise.
271         (vn_nary_op_insert_into): Likewise.
272         (vn_nary_op_insert_stmt): Likewise.
273         (visit_use): Handle CONSTRUCTOR as nary.
274         * tree-ssa-pre.c (phi_translate_1): Adjust.
275         (create_expression_by_pieces): Likewise.
276         (compute_avail): Likewise.
277
278 2011-09-06  Ira Rosen  <ira.rosen@linaro.org>
279
280          * config/arm/arm.c (arm_preferred_simd_mode): Check
281         TARGET_NEON_VECTORIZE_DOUBLE instead of
282         TARGET_NEON_VECTORIZE_QUAD.
283         (arm_autovectorize_vector_sizes): Likewise.
284         * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
285         mask of mvectorize-with-neon-double.  Add RejectNegative.
286         (mvectorize-with-neon-double): New.
287
288 2011-09-06  Richard Guenther  <rguenther@suse.de>
289
290         * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify
291         matching.
292
293 2011-09-06  Tom de Vries  <tom@codesourcery.com>
294
295         * recog.c (asm_labels_ok): New function.
296         (check_asm_operands): Use asm_labels_ok.
297
298 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
299
300         PR target/49606
301         * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
302         (PMODE_INSN): New macro.
303         * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
304         (mips_got_load, mips_expand_synci_loop): Likewise.
305         (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
306         cprestore patterns.
307         (mips_emit_loadgp): Use PMODE_INSN.  Handle SImode and DImode
308         copygp_mips16 patterns.
309         (mips_expand_prologue): Handle SImode and DImode potential_cprestore
310         and use_cprestore patterns.
311         (mips_override_options): Check for incompatible -mabi and -mlong
312         combinations.
313         * config/mips/mips.md (unspec_got<mode>): Rename to...
314         (unspec_got_<mode>): ...this.
315         (copygp_mips16): Use the Pmode iterator.
316         (potential_cprestore, cprestore, use_cprestore): Likewise.
317         (clear_cache, indirect_jump): Use PMODE_INSN.
318         (indirect_jump<mode>): Rename to...
319         (indirect_jump_<mode>): ...this.
320         (tablejump): Use PMODE_INSN.
321         (tablejump<mode>): Rename to...
322         (tablejump_<mode>): ...this.
323         (exception_receiver): Handle restore_gp_si and restore_gp_di.
324         (restore_gp): Use the Pmode iterator.
325         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
326         PMODE_INSN.
327
328 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
329
330         * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
331         Fix the type of the BIT_AND_EXPR.
332
333 2011-09-05  David S. Miller  <davem@davemloft.net>
334
335         * config.host: Add driver-sparc.o and sparc/x-sparc on
336         native sparc*-*-linux* builds.
337         * config/sparc/driver-sparc.c: Correct Linux strings.
338         * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
339         * config/sparc/linux64.h: Likewise.
340         * doc/invoke.texi: Document that Linux also supports
341         -mcpu=native and -mtune=native on sparc.
342
343         * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
344         PROCESSOR_NIAGARA4): New.
345         * config/sparc/sparc.opt: Handle new processor types.
346         * config/sparc/sparc.md: Add to "cpu" attribute.
347         * config/sparc/sparc.h (TARGET_CPU_niagara3,
348         TARGET_CPU_niagara4): New, treat as niagara2.
349         * config/sparc/linux64.h: Handle niagara3 and niagara4
350         like niagara2.
351         * config/sparc/sol2.h: Likewise.
352         * config/sparc/niagara2.md: Schedule niagara3 like
353         niagara2.
354         * config/sparc/sparc.c (sparc_option_override): Add
355         niagara3 and niagara4 handling.
356         (sparc32_initialize_trampoline): Likewise.
357         (sparc64_initialize_trampoline): Likewise.
358         (sparc_use_sched_lookahead): Likewise.
359         (sparc_issue_rate): Likewise.
360         (sparc_register_move_cost): Likewise.
361         * config/sparc/driver-sparc.c (cpu_names): Use niagara3
362         and niagara4 as appropriate.
363         * doc/invoke.texi: Document new processor types.
364         * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
365         and --with-tune options.
366
367         * config/sparc/sol2-64.h: Move ...
368         * config/sparc/default-64.h: ... to here.  Update comment.
369         * config.gcc: Update Solaris sparc to use default-64.h, also
370         prefix this header into the list on sparc64-*-linux.
371         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
372         TARGET_64BIT_DEFAULT is defined.  Remove commented out reference
373         to MASK_HARD_QUAD.
374
375 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
376
377         PR target/50289
378         * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
379         that contain global register variable.
380
381 2011-09-05  Richard Guenther  <rguenther@suse.de>
382
383         * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
384
385 2011-09-05  Richard Guenther  <rguenther@suse.de>
386
387         * stor-layout.c (layout_type): Use size_binop for array size
388         calculations.
389
390 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
391
392         * config/avr/avr.h (progmem_section): Remove Declaration.
393         * config/avr/avr.c (progmem_section): Make static and rename to
394         progmem_swtable_section.
395         (avr_output_addr_vec_elt): No need to switch sections.
396         (avr_asm_init_sections): Use output_section_asm_op as section
397         callback for progmem_swtable_section.
398         (avr_output_progmem_section_asm_op): Remove Function.
399         (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
400         (avr_asm_function_rodata_section): New static Function.
401         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
402         alignment 2**1 for jump tables.
403
404 2011-09-04  Jan Hubicka  <jh@suse.cz>
405
406         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
407         parameter is SSA name.
408
409 2011-09-04  Richard Guenther  <rguenther@suse.de>
410
411         Revert
412         2011-08-31  Richard Guenther  <rguenther@suse.de>
413
414         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
415         special-casing.
416
417 2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>
418
419         PR debug/49901
420         * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
421
422 2011-09-04  Jakub Jelinek  <jakub@redhat.com>
423             Ira Rosen  <ira.rosen@linaro.org>
424
425         PR tree-optimization/50208
426         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
427         argument.  Check that def_stmt is inside the loop.
428         (vect_recog_widen_mult_pattern): Update calls to
429         vect_handle_widen_mult_by_cons.
430         (vect_operation_fits_smaller_type): Check that def_stmt is
431         inside the loop.
432
433 2011-09-04  Ira Rosen  <ira.rosen@linaro.org>
434
435         * tree-vectorizer.c (vect_print_dump_info): Print line
436         number when dumping to a file.
437         (vectorize_loops): Add new messages to dump file.
438
439 2011-09-03  Martin Jambor  <mjambor@suse.cz>
440
441         * ipa-prop.h (ipa_jump_func_t): New typedef.
442         (struct ipa_edge_args): Removed field argument_count, field
443         jump_functions turned into a vector.
444         (ipa_set_cs_argument_count): Removed.
445         (ipa_get_cs_argument_count): Updated to work on vectors.
446         (ipa_get_ith_jump_func): Likewise.
447         * ipa-prop.c (ipa_count_arguments): Removed.
448         (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
449         jump functions.  Update caller.
450         (compute_pass_through_member_ptrs): Likewise.
451         (compute_cst_member_ptr_arguments): Likewise.
452         (ipa_compute_jump_functions_for_edge): Get number of arguments from
453         the statement, allocate vector.
454         (ipa_compute_jump_functions): Do not call ipa_count_arguments.
455         (duplicate_ipa_jump_func_array): Removed.
456         (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
457         (ipa_read_node_info): Allocate vector.
458
459 2011-09-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
460
461         PR middle-end/50232
462         * config/pa/pa.md (return): Define "return" insn pattern.
463         (epilogue): Use it when no epilogue is needed.
464         * config/pa/pa.c (pa_can_use_return_insn): New function.
465         * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
466
467 2011-09-03  Eric Botcazou  <ebotcazou@adacore.com>
468
469         * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
470         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
471         Force at least BITS_PER_UNIT alignment on the new variable.
472
473 2011-09-02  Gary Funck <gary@intrepid.com>
474
475         * opts.c (print_specific_help): Fix off-by-one compare in
476         assertion check.
477         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
478         CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
479         Increase by +5 to allow for more languages.
480         * optc-gen.awk: Generate #if that ensures that the number of
481         languages is within the implementation-defined limit.
482
483 2011-09-02  Michael Matz  <matz@suse.de>
484
485         PR middle-end/50260
486         * ipa-split.c (split_function): Call add_referenced_var.
487
488         * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
489         (cond_if_else_store_replacement_1): Ditto.
490         * tree-ssa-pre.c (get_representative_for): Ditto.
491         (create_expression_by_pieces): Ditto.
492         (insert_into_preds_of_block): Ditto.
493         * tree-sra.c (create_access_replacement): Ditto.
494         (get_replaced_param_substitute): Ditto.
495
496 2011-09-02  Bernd Schmidt  <bernds@codesourcery.com>
497
498         * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
499         automata_options.
500         (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
501         (l1w, s1w, l2w, s2w): Define in the main automaton.
502         (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
503         units.
504         * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
505         (c6x_unit_names): Add the new units.
506         (c6x_unit_codes): New static array.
507         (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
508         UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
509         UNIT_QID_SIDE_OFFSET): New macros.
510         (RESERVATION_S2): Adjust value.
511         (c6x_option_override): Compute c6x_unit_codes.
512         (assign_reservations): Take the unit_mask of the last instruction
513         into account.  Detect floating point reservations by looking for
514         the new units.  Don't assign reservations if the field is already
515         nonzero.
516         (struct c6x_sched_context): Add member prev_cycle_state_ctx.
517         (init_sched_state): Initialize it.
518         (c6x_clear_sched_context): Free it.
519         (insn_set_clock): Clear reservation.
520         (prev_cycle_state): New static variable.
521         (c6x_init_sched_context): Save it.
522         (c6x_sched_init): Allocate space for it and clear it.
523         (c6x_sched_dfa_pre_cycle_insn): New static function.
524         (c6x_dfa_new_cycle): Save state at the start of a new cycle.
525         (c6x_variable_issue): Only record units in the unit_mask that
526         were not set at the start of the cycle.
527         (c6x_variable_issue): Compute and store the unit_mask from the
528         current state.
529         (reorg_split_calls): Ensure the new information remains correct.
530         (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
531         TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
532         * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
533         * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
534         Add special reservations.
535         * config/c6x/c6x-sched.md: Regenerate.
536
537 2011-09-02  Martin Jambor  <mjambor@suse.cz>
538
539         * ipa-prop.h (ipa_node_params): Removed fields
540         called_with_var_arguments and node_versionable.
541         (ipa_set_called_with_variable_arg): Removed.
542         (ipa_is_called_with_var_arguments): Likewise.
543         * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
544         (determine_versionability): Do not check for type attributes and va
545         builtins.  Record versionability into inline summary.
546         (initialize_node_lattices): Do not check
547         ipa_is_called_with_var_arguments.
548         (propagate_constants_accross_call): Likewise, ignore arguments we do
549         not have PARM_DECLs for, set variable flag for parameters that were
550         not passed a value.
551         (create_specialized_node): Dump info that we cannot change signature.
552         * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
553         number of arguments.
554         (ipa_make_edge_direct_to_target): Likewise.
555         (ipa_update_after_lto_read): Likewise.
556         (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
557         * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
558         they were remapped.
559
560 2011-09-02  Richard Guenther  <rguenther@suse.de>
561
562         PR tree-optimization/27460
563         PR middle-end/29269
564         * doc/md.texi (vcond): Document.
565         * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
566         optab with two modes.
567         * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
568         (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
569         (vcond_optab): Adjust.
570         (vcondu_optab): Likewise.
571         (expand_vec_cond_expr_p): Adjust prototype.
572         * optabs.c (get_vcond_icode): Adjust.
573         (expand_vec_cond_expr_p): Likewise.
574         (expand_vec_cond_expr): Likewise.
575         * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
576         vector type.
577         (vectorizable_condition): Allow differing types for comparison
578         and result.
579         * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
580         for the comparison.
581         * config/i386/sse.md (vcond<mode>): Split to
582         vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
583         vcond<V_128:mode><VI124_128:mode> and
584         vcondu<V_128:mode><VI124_128:mode>.
585         (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
586         (vconduv2di): Likewise.
587         * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
588         (vcondu<mode>): Likewise.
589         * config/ia64/vect.md (vcond<mode>): Likewise.
590         (vcondu<mode>): Likewise.
591         (vcondv2sf): Likewise.
592         * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
593         * config/rs6000/paired.md (vcondv2sf): Likewise.
594         * config/rs6000/vector.md (vcond<mode>): Likewise.
595         (vcondu<mode>): Likewise.
596         * config/spu/spu.md (vcond<mode>): Likewise.
597         (vcondu<mode>): Likewise.
598
599 2011-09-02  Richard Guenther  <rguenther@suse.de>
600
601         * pretty-print.h (pp_unsigned_wide_integer): New.
602         * tree-pretty-print.c (dump_generic_node): Print unsigned
603         host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
604
605 2011-09-02  Richard Sandiford  <richard.sandiford@linaro.org>
606
607         PR target/49987
608         * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
609         valid CONST_VECTOR operands.
610         (rs6000_expand_vector_init): Likewise.
611
612 2011-09-02  Martin Jambor  <mjambor@suse.cz>
613
614         * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
615         * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
616         BINFO_VTABLE.  Parameter delta removed, all callers updated.
617         * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
618         BINFO_VTABLE.
619         * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
620         all calls.
621         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
622         handling of thunk_delta.
623         * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
624         (devirtualization_time_bonus): Do not handle thunk deltas.
625         (ipcp_discover_new_direct_edges): Likewise.
626         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
627         (try_make_edge_direct_simple_call): Likewise.
628         (try_make_edge_direct_virtual_call): Likewise.
629         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
630         parameter set as unused.
631         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
632         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
633         parameter set as unused.
634         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
635         (input_edge_opt_summary): Likewise.
636         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
637         BINFO_VIRTUALS at all.
638         * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
639
640 2011-09-02  Richard Guenther  <rguenther@suse.de>
641
642         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
643         (ccp_fold_stmt): Continue replacing args when folding alloca fails.
644
645 2011-08-31  Richard Guenther  <rguenther@suse.de>
646
647         * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
648         handling here, from ...
649         (expand_expr_real_1): ... here.
650         * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
651         and VEC_COND_EXPR.
652         * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
653         a GIMPLE_TERNARY_RHS.
654         * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
655         and VEC_COND_EXPR here ...
656         (verify_gimple_assign_single): ... not here.
657         * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
658         * tree-object-size.c (cond_expr_object_size): Adjust.
659         (collect_object_sizes_for): Likewise.
660         * tree-scalar-evolution.c (interpret_expr): Don't handle
661         ternary RHSs.
662         * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
663         (ssa_forward_propagate_and_combine): Adjust.
664         * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
665         as ternary.
666         * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
667         * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
668         * tree-vect-stmt.c (vectorizable_condition): Likewise.
669         * tree-vrp.c (extract_range_from_cond_expr): Likewise.
670         (extract_range_from_assignment): Likewise.
671
672 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
673
674         * config/i386/i386.md: Use (match_test ...) for attribute tests.
675         * config/i386/mmx.md: Likewise.
676         * config/i386/sse.md: Likewise.
677         * config/i386/predicates.md (call_insn_operand): Use
678         (not (match_test "...")) instead of (match_test "!...")
679         * config/i386/constraints.md (w): Likewise.
680
681 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
682
683         * doc/md.texi: Describe the use of match_tests in attribute tests.
684         * rtl.def (MATCH_TEST): Update commentary.
685         * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
686         (write_test_expr, walk_attr_value): Handle MATCH_TEST.
687
688 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
689
690         * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
691         (attr_string): Use copy_md_ptr_loc.
692
693 2011-08-31  Martin Jambor  <mjambor@suse.cz>
694
695         PR middle-end/49886
696         * ipa-inline-analysis.c (compute_inline_parameters): Set
697         can_change_signature of noes with typde attributes.
698         * ipa-split.c (split_function): Do not skip any arguments if
699         can_change_signature is set.
700
701 2011-08-31  Martin Jambor  <mjambor@suse.cz>
702
703         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
704         check removed.
705
706 2011-08-31  Richard Guenther  <rguenther@suse.de>
707
708         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
709         special-casing.
710
711 2011-08-31  Marc Glisse  <marc.glisse@inria.fr>
712
713         * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
714
715 2011-08-31  Tom de Vries  <tom@codesourcery.com>
716
717         PR middle-end/43513
718         * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
719         * tree-ssa-ccp.c (params.h): Include.
720         (fold_builtin_alloca_for_var): New function.
721         (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
722
723 2011-08-30  Uros Bizjak  <ubizjak@gmail.com>
724
725         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
726         Handle FMA option.
727
728 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
729
730         * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
731         b3 and b4 unsigned.
732
733 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
734
735         * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
736         when code is SET.
737
738 2011-08-30  Richard Guenther  <rguenther@suse.de>
739
740         PR middle-end/48571
741         * gimple.h (maybe_fold_offset_to_address): Remove.
742         (maybe_fold_offset_to_reference): Likewise.
743         (maybe_fold_stmt_addition): Likewise.
744         (may_propagate_address_into_dereference): Likewise.
745         * tree-inline.c (remap_gimple_op_r): Do not reconstruct
746         array references.
747         * gimple-fold.c (canonicalize_constructor_val): Likewise.
748         Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
749         addresses instead.
750         (may_propagate_address_into_dereference): Remove.
751         (maybe_fold_offset_to_array_ref): Likewise.
752         (maybe_fold_offset_to_reference): Likewise.
753         (maybe_fold_offset_to_address): Likewise.
754         (maybe_fold_stmt_addition): Likewise.
755         (fold_gimple_assign): Do not reconstruct array references but
756         instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
757         MEM_REF addresses.
758         (gimple_fold_stmt_to_constant_1): Likewise.
759         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
760         * gimplify.c (gimplify_conversion): Likewise.
761         (gimplify_expr): Likewise.
762
763 2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>
764
765         * config/i386/fmaintrin.h: New.
766         * config.gcc: Add fmaintrin.h.
767         * config/i386/i386.c
768         (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
769         <IX86_BUILTIN_VFMADDSD3>: Likewise.
770         * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
771         (*fmai_fmadd_<mode>): Likewise.
772         (*fmai_fmsub_<mode>): Likewise.
773         (*fmai_fnmadd_<mode>): Likewise.
774         (*fmai_fnmsub_<mode>): Likewise.
775         * config/i386/immintrin.h: Add fmaintrin.h.
776
777 2011-08-30  Bernd Schmidt  <bernds@codesourcery.com>
778
779         * genautomata.c (NO_COMB_OPTION): New macro.
780         (no_comb_flag): New static variable.
781         (gen_automata_option): Handle NO_COMB_OPTION.
782         (comb_vect_p): False if no_comb_flag.
783         (add_vect): Move computation of min/max values.  Return early if
784         no_comb_flag.
785         * doc/md.texi (automata_option): Document no-comb-vect.
786
787         * config/i386/i386.c (get_pc_thunk_name): Change prefix to
788         "__x86.get_pc_thunk".
789
790         * bb-reorder.c (insert_section_boundary_note): Only do it if
791         we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
792
793 2011-08-30  Christian Bruel  <christian.bruel@st.com>
794
795         * coverage.c (coverage_init): Check flag_branch_probabilities instead of
796         flag_profile_use.
797
798 2011-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
799
800         * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
801         to off.  Document switch.
802         * doc/invoke.texi (-msave-toc-indirect): Ditto.
803
804 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
805
806         * gthr-posix.h (__gthread_active_p): Do not use preprocessor
807         conditionals and comments inside macro arguments.
808
809 2011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
810             Richard Guenther  <rguenther@suse.de>
811
812         * tree.h (constant_boolean_node): Adjust prototype.
813         * fold-const.c (fold_convert_loc): Move aggregate conversion
814         leeway down.
815         (constant_boolean_node): Make value parameter boolean, add
816         vector type handling.
817         (fold_unary_loc): Use constant_boolean_node.
818         (fold_binary_loc): Preserve types properly when folding
819         COMPLEX_EXPR <__real x, __imag x>.
820         * gimplify.c (gimplify_expr): Handle vector comparison.
821         * tree.def (EQ_EXPR, ...): Document behavior on vector typed
822         comparison.
823         * tree-cfg.c (verify_gimple_comparison): Verify vector typed
824         comparisons.
825
826 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
827
828         PR middle-end/48722
829         * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
830         reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
831         (verify_rtl_sharing): Likewise and verify_rtx_sharing
832         in there too.
833         (unshare_all_rtl_in_chain): For CALL_INSNs
834         copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
835
836 2011-08-29  Richard Guenther  <rguenther@suse.de>
837
838         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
839         on the built ADDR_EXPR.
840
841 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
842
843         PR debug/50215
844         * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
845         before adding ENTRY_VALUE to val->locs.
846
847 2011-08-28  Mikael Pettersson  <mikpe@it.uu.se>
848
849         PR bootstrap/50218
850         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
851         comp.
852
853 2011-08-27  Bernd Schmidt  <bernds@codesourcery.com>
854
855         * doc/rtl.texi (simple_return): Document.
856         (parallel, PATTERN): Here too.
857         * doc/md.texi (return): Mention it's allowed to expand to simple_return
858         in some cases.
859         (simple_return): Document standard pattern.
860         * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
861         * final.c (final_scan_insn): Use ANY_RETURN_P on body.
862         * reorg.c (function_return_label, function_simple_return_label):
863         New static variables, replacing...
864         (end_of_function_label): ... this.
865         (simplejump_or_return_p): New static function.
866         (optimize_skip, steal_delay_list_from_fallthrough,
867         fill_slots_from_thread): Use it.
868         (relax_delay_slots): Likewise.  Use ANY_RETURN_P on body.
869         (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
870         (find_end_label): Take a new arg which is one of the two return
871         rtxs.  Depending on which, set either function_return_label or
872         function_simple_return_label.  All callers changed.
873         (make_return_insns): Make both kinds.
874         (dbr_schedule): Adjust for two kinds of end labels.
875         * function.c (emit_return_into_block): Set JUMP_LABEL properly.
876         * genemit.c (gen_exp): Handle SIMPLE_RETURN.
877         (gen_expand, gen_split): Use ANY_RETURN_P.
878         * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
879         * rtl.def (SIMPLE_RETURN): New code.
880         * ifcvt.c (find_if_case_1): Be more careful about
881         redirecting jumps to the EXIT_BLOCK.
882         * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
883         returnjump_p_1): Handle SIMPLE_RETURNs.
884         * print-rtl.c (print_rtx): Likewise.
885         * rtl.c (copy_rtx): Likewise.
886         * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
887         * combine.c (simplify_set): Likewise.
888         * resource.c (find_dead_or_set_registers, mark_set_resources):
889         Likewise.
890         * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
891         copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
892         (init_emit_regs): Initialize simple_return_rtx.
893         * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
894         force_nonfallthru_and_redirect.
895         * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
896         (GR_SIMPLE_RETURN): New enum value.
897         (simple_return_rtx): New macro.
898         * basic-block.h (force_nonfallthru_and_redirect): Adjust
899         declaration.
900         * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
901         argument.  All callers changed.  Be careful about what kinds of
902         returnjumps to generate.
903         * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
904         ix86_pad_short_function): Likewise.
905         * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
906         of return.
907         * config/mips/mips.md (any_return): New code_iterator.
908         (optab): Add cases for return and simple_return.
909         (return): Expand to a simple_return.
910         (simple_return): New pattern.
911         (*<optab>, *<optab>_internal for any_return): New patterns.
912         (return_internal): Remove.
913         * config/mips/mips.c (mips_expand_epilogue): Make the last insn
914         a simple_return_internal.
915
916 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
917
918         * config/i386/sse.md (*absneg<mode>2): Fix split condition.
919         (vec_extract_lo_<mode>): Prevent both operands in memory.
920         (vec_extract_lo_v16hi): Ditto.
921         (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
922
923 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
924
925         * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
926         (*sse2_mulv4si3): Ditto.
927         (mulv2di3): Ditto.
928         * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
929         notes to REG_EQUAL.
930
931 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
932
933         PR target/50202
934         * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
935         when all outputs are unused.
936         (sse4_2_pcmpistr): Ditto.
937
938 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
939
940         * config/i386/i386.md (round<mode>2): New expander.
941         * config/i386/i386.c (enum ix86_builtins): Add
942         IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
943         (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
944         descriptions.
945         (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
946         (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
947
948 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
949
950         PR middle-end/50083
951         * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
952         only when TARGET_C99_FUNCTIONS.
953         <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
954         <BUILT_IN_RINT{,F,L}>: Ditto.
955
956 2011-08-26  Michael Matz  <matz@suse.de>
957             Jakub Jelinek  <jakub@redhat.com>
958
959         PR lto/50165
960         * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
961         don't call strlen twice, use memcpy.
962
963 2011-08-26  H.J. Lu  <hongjiu.lu@intel.com>
964
965         * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
966         * config/i386/bmiintrin.h: Likewise.
967         * config/i386/lzcntintrin.h: Likewise.
968
969         * config/i386/immintrin.h: Include <lzcntintrin.h>,
970         <bmiintrin.h> and <bmi2intrin.h>.
971
972 2011-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
973
974         PR target/50166
975         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
976         * configure: Regenerate.
977
978 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
979
980         PR c/50179
981         * c-typeck.c (c_process_expr_stmt): Skip over nops and
982         call mark_exp_read even if exprv is ADDR_EXPR.
983
984 2011-08-26  Richard Sandiford  <richard.sandiford@linaro.org>
985
986         * df-problems.c (df_note_bb_compute): Pass uses rather than defs
987         to df_set_dead_notes_for_mw.
988
989 2011-08-26  Richard Guenther  <rguenther@suse.de>
990
991         * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
992
993 2011-08-26  Zdenek Dvorak  <ook@ucw.cz>
994             Tom de Vries  <tom@codesourcery.com>
995
996         * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
997         (struct ivopts_data): Add loop_single_exit_p field.
998         (niter_for_exit): Change parameter desc_p into return value.  Return
999         desc if desc->may_be_zero.  Free desc if unused.
1000         (niter_for_single_dom_exit): Change return type.
1001         (find_induction_variables): Handle changed return type of
1002         niter_for_single_dom_exit.  Dump may_be_zero.
1003         (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
1004         (set_use_iv_cost): Add and handle comp parameter.
1005         (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
1006         comp argument to set_use_iv_cost.
1007         (strip_wrap_conserving_type_conversions, expr_equal_p)
1008         (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
1009         (may_eliminate_iv): Add comp parameter.  Handle new return type of
1010         niter_for_exit.  Use loop_single_exit_p.  Use iv_elimination_compare_lt.
1011         (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
1012         and may_eliminate_iv.
1013         (rewrite_use_compare): Move call to iv_elimination_compare to ...
1014         (may_eliminate_iv): Here.
1015         (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
1016
1017 2011-08-26  Tom de Vries  <tom@codesourcery.com>
1018
1019         * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
1020         accessing TREE_TYPE.
1021
1022 2011-08-26  Jiangning Liu  <jiangning.liu@arm.com>
1023
1024         * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
1025         (*ior_scc_scc_cmp): Likewise
1026         (*and_scc_scc): Likewise.
1027         (*and_scc_scc_cmp): Likewise.
1028         (*and_scc_scc_nodom): Likewise.
1029         (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
1030
1031 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
1032
1033         * rtlanal.c (nonzero_bits1): Handle CLRSB.
1034
1035 2011-08-26  Richard Guenther  <rguenther@suse.de>
1036
1037         * expr.c (string_constant): Handle &MEM_REF.
1038
1039 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
1040
1041         * config/arm/arm.c (struct four_ints): New type.
1042         (count_insns_for_constant): Delete function.
1043         (find_best_start): Delete function.
1044         (optimal_immediate_sequence): New function.
1045         (optimal_immediate_sequence_1): New function.
1046         (arm_gen_constant): Move constant splitting code to
1047         optimal_immediate_sequence.
1048         Rewrite constant negation/invertion code.
1049
1050 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
1051
1052         * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
1053         * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
1054         Remove prototype. Remove static function type.
1055         * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
1056         Add arch attribute.
1057         * config/arm/constraints.md (Pj, PJ): New constraints.
1058
1059 2011-08-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1060
1061         * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
1062         ("cortex_a9_multiply_long"): New and use above.  Handle all
1063         long multiply cases.
1064         ("cortex_a9_multiply"): Handle smmul and smmulr.
1065         ("cortex_a9_mac"): Handle smmla.
1066
1067 2011-08-25  Richard Henderson  <rth@redhat.com>
1068
1069         PR 50132
1070         PR 49864
1071         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
1072         non-constant stack adjutment.
1073         * expr.c (find_args_size_adjust): Break out from ...
1074         (fixup_args_size_notes): ... here.
1075         * rtl.h (find_args_size_adjust): Declare.
1076
1077 2011-08-25  Uros Bizjak  <ubizjak@gmail.com>
1078
1079         * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
1080         sse4 and sse4_noavx.
1081         (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
1082         (*pushdf_rex64): Change Y2 register constraint to x.
1083         (*movdf_internal_rex64): Ditto.
1084         (*zero_extendsidi2_rex64): Ditto.
1085         (*movdi_internal): Change Y2 register constraint to x
1086         and update "isa" attribute.
1087         (*pushdf): Ditto.
1088         (*movdf internal): Ditto.
1089         (zero_extendsidi2_1): Ditto.
1090         (*truncdfdf_mixed): Ditto.
1091         (*truncxfdf2_mixed): Ditto.
1092         * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
1093         register constraint to x.
1094         (*movv2sf_internal_rex64): Ditto.
1095         (*mov<mode>_internal): Change Y2 register constraint to x
1096         and add "isa" attribute.
1097         (*movv2sf_internal): Ditto.
1098         (*vec_extractv2si_1): Ditto.
1099         * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
1100         constraints to x and update "isa" attribute.
1101         (*vec_interleave_highv2df): Change Y3 registerconstraint
1102         to x and update "isa" attribute.
1103         (*vec_interleave_lowv2df): Ditto.
1104         (*vec_concatv2df): Change Y2 register constraint to x and
1105         update "isa" attribute.
1106         (sse2_loadld): Ditto.
1107         (*vec_extractv2di_1): Ditto.
1108         (*vec_dupv4si): Ditto.
1109         (*vec_dupv2di): Ditto.
1110         (*vec_concatv4si): Ditto.
1111         (vec_concatv2di): Ditto.
1112         * config/i386/constraints.md (Y2): Remove.
1113         (Y3): Ditto.
1114         (Y4): Ditto.
1115
1116 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
1117
1118         * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
1119         dump_def_use_chain): Don't declare.
1120         (mark_conflict, create_new_chain): Move before users.
1121         (regrename_optimize): Move to near end of file.
1122
1123 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
1124
1125         * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
1126         (secondary_input_reload_class): Remove Prototype.
1127         * config/avr/avr.c (byte_immediate_operand): Remove Function.
1128         * config/avr/avr.md (setmemhi): Use u8_operand.
1129         (strlenhi): Use const0_rtx for comparison.
1130         * config/avr/avr.h (avr_reg_order): Remove Declaration.
1131
1132 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
1133
1134         * config/avr/avr.c (reg_class_tab): Make local to
1135         avr_regno_reg_class.  Return smallest register class available.
1136
1137 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
1138
1139         * config/avr/avr.c (STR_PREFIX_P): New Define.
1140         (avr_asm_declare_function_name): Use it.
1141         (avr_asm_named_section): Use it.
1142         (avr_section_type_flags): Use it.
1143
1144 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
1145
1146         * doc/md.texi (automata_option): Document collapse-ndfa.
1147         * genautomata.c (COLLAPSE_OPTION): New macro.
1148         (collapse_flag): New static variable.
1149         (struct description): New member normal_decls_num.
1150         (struct automaton): New members advance_ainsn and collapse_ainsn.
1151         (gen_automata_option): Check for COLLAPSE_OPTION.
1152         (collapse_ndfa_insn_decl): New static variable.
1153         (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
1154         (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
1155         (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
1156         necessary.  Use normal_decls_num rather than decls_num, remove
1157         test for special decls.
1158         (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
1159         (make_automaton); Likewise.  Use the new advance_cycle_insn member
1160         of struct automaton.
1161         (create_composed_state): Disallow advance-cycle arcs if collapse_flag
1162         is set.
1163         (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
1164         transition.  Create the necessary transitions for it.
1165         (create_ainsns): Return void.  Take an automaton_t argument, and
1166         update its ainsn_list, advance_ainsn and collapse_ainsn members.  All
1167         callers changed.
1168         (COLLAPSE_NDFA_VALUE_NAME): New macro.
1169         (output_tables): Output code to define it.
1170         (output_internal_insn_code_evaluation): Output code to accept
1171         const0_rtx as collapse-ndfa transition.
1172         (output_default_latencies, output_print_reservation_func,
1173         output_print_description): Reorganize loops to use normal_decls_num
1174         as loop bound; remove special case for advance_cycle_insn_decl.
1175         (initiate_automaton_gen): Handle COLLAPSE_OPTION.
1176         (check_automata_insn_issues): Check for collapse_ainsn.
1177         (expand_automate): Allocate sufficient space.  Initialize
1178         normal_decls_num.
1179
1180 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
1181
1182         * config/avr/avr.md: Fix indentation from r177991.
1183
1184 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
1185
1186         * regrename.c (struct du_head): Remove member terminated.
1187         (create_new_chain): Don't initialize it.
1188         (scan_rtx_reg): Don't set or test it, test the open_chains_set
1189         bitmap instead.
1190         (tick, this_tick): New global variables, moved out of
1191         regrename_optimize.
1192         (current_id, open_chains, closed_chains, open_chains_set,
1193         live_in_chains, live_hard_regs): Reorder declarations.
1194         (dump_def_use_chain): Move function earlier in the file.
1195         (rename_chains): New static function, broken out of
1196         regrename_optimize.
1197         (regrename_optimize): Use it.  Remove #if 0'ed code.
1198
1199 2011-08-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1200
1201         * varasm.c: (default_binds_local_p_1): Commentary typo fix.
1202
1203 2011-08-24  H.J. Lu  <hongjiu.lu@intel.com>
1204
1205         PR target/50172
1206         * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
1207
1208 2011-08-24  Richard Guenther  <rguenther@suse.de>
1209
1210         * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
1211         ref in the basic-block case.  Move stripping array-refs
1212         to the place we create an access-function for it.  Remove
1213         bogus stripping down a MEM_REF to its base.
1214
1215 2011-08-24  Richard Guenther  <rguenther@suse.de>
1216
1217         * fold-const.c (fold_comparison): Fold &a < &a + 4 even
1218         with -fno-strict-overflow.
1219
1220 2011-08-24  Richard Guenther  <rguenther@suse.de>
1221
1222         * tree-vectorizer.c (vect_print_dump_info): Avoid the
1223         file and location clutter when dumping to dump files.
1224
1225 2011-08-24  Simon Baldwin  <simonb@google.com>
1226
1227         * gengtype-state.c (write_state): Remove timestamped header line.
1228
1229 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
1230
1231         * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
1232         (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
1233         (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
1234         (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
1235         (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
1236         (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
1237         (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
1238         rules.
1239         (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
1240
1241 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
1242
1243         * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
1244
1245 2011-08-24  Richard Guenther  <rguenther@suse.de>
1246
1247         PR tree-optimization/50067
1248         * tree-data-ref.c (dr_analyze_indices): Do not add an access
1249         function for a MEM_REF base that has no evolution in the loop
1250         nest or that is not analyzable.
1251
1252 2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>
1253
1254         * ira.c (ira_init_register_move_cost): Check small subclasses
1255         through ira_reg_class_max_nregs and ira_available_class_regs.
1256
1257 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
1258
1259         * config/i386/constraints.md (Yp): New register constraint.
1260         * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
1261         Yp register constraint.
1262         (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
1263         (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
1264         (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
1265
1266 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
1267
1268         * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
1269
1270 2011-08-23  Mark Heffernan  <meheff@google.com>
1271
1272         PR middle-end/38509
1273         * common.opt (Wfree-nonheap-object): New option.
1274         * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
1275         * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
1276         to warning.
1277         (expand_builtin): Make warning conditional.
1278
1279 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
1280
1281         * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
1282         (length_immediate): Handle imulx, ishiftx and rotatex.
1283         (imm_disp): Ditto.
1284         (isa): Add bmi2.
1285         (enabled): Handle bmi2.
1286         (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
1287         (*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
1288         (*bmi2_umulditi3_1): New insn pattern.
1289         (*bmi2_umulsidi3_1): Ditto.
1290         (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
1291         (*bmi2_ashl<mode>3_1): New insn pattern.
1292         (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
1293         (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
1294         (*bmi2_ashlsi3_1_zext): New insn pattern.
1295         (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
1296         (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
1297         (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
1298         (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
1299         (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
1300         flags dependency.
1301         (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
1302         (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
1303         (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
1304         flags dependency.
1305         (*bmi2_rorx<mode>3_1): New insn pattern.
1306         (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
1307         (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
1308         (*rotatert<mode>3_1 splitter): Ditto.
1309         (*bmi2_rorxsi3_1_zext): New insn pattern.
1310         (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
1311         (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
1312         (*rotatertsi3_1_zext splitter): Ditto.
1313
1314 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
1315
1316         * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
1317         (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
1318         (ix86_handle_option): Handle OPT_mbmi2 case.
1319         * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
1320         (x86_64-*-*): Likewise.
1321         * config/i386/bmi2intrin.h: New file.
1322         * config/i386/cpuid.h (bit_BMI2): New.
1323         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1324         BMI2 feature.
1325         * config/i386/i386-c.c (ix86_target_macros_internal):
1326         Conditionally define __BMI2__.
1327         * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
1328         Handle BMI2 option.
1329         (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
1330         (print_reg): New code.
1331         (ix86_print_operand): Likewise.
1332         (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
1333         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
1334         IX86_BUILTIN_PEXT64.
1335         (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
1336         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
1337         IX86_BUILTIN_PEXT64.
1338         * config/i386/i386.h (TARGET_BMI2): New.
1339         * config/i386/i386.md (UNSPEC_PDEP): New.
1340         (UNSPEC_PEXT): Likewise.
1341         (*bmi2_bzhi_<mode>3): Likewise.
1342         (*bmi2_pdep_<mode>3): Likewise.
1343         (*bmi2_pext_<mode>3): Likewise.
1344         * config/i386/i386.opt (mbmi2): New.
1345         * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
1346         is defined.
1347         * doc/extend.texi: Document BMI2 built-in functions.
1348         * doc/invoke.texi: Document -mbmi2.
1349
1350 2011-08-23  Jakub Jelinek  <jakub@redhat.com>
1351
1352         PR middle-end/50161
1353         * simplify-rtx.c (simplify_const_unary_operation): If
1354         op is CONST_INT, don't look at op_mode, but use instead mode.
1355         * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
1356         CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
1357         operation and TRUNCATE/ZERO_EXTEND if needed.
1358         * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
1359         Document that operand mode must be same as operation mode,
1360         or VOIDmode.
1361         * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
1362         *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
1363         *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
1364         *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
1365         use the mode of operand for the operation and add truncate
1366         or zero_extend around if needed.
1367         * config/c6x/c6x.md (ctzdi2): Likewise.
1368         * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
1369
1370 2011-08-12  Michael Matz  <matz@suse.de>
1371
1372         * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
1373         (gimple_expand_cfg): Merge alignment info for coalesced pointer
1374         SSA names.
1375
1376 2011-08-23  Richard Guenther  <rguenther@suse.de>
1377
1378         * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
1379         * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
1380         * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
1381         from ...
1382         * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
1383         (mem_refs_may_alias_p): Adjust.
1384         * tree-data-ref.h (dr_may_alias_p): Adjust.
1385         * tree-data-ref.c: Include tree-affine.h.
1386         (dr_analyze_indices): Do nothing for the non-loop case.
1387         (dr_may_alias_p): Distinguish loop and non-loop case.  Disambiguate
1388         more cases in the non-loop case.
1389         * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
1390         calls to dr_may_alias_p.
1391         (write_alias_graph_to_ascii_ecc): Likewise.
1392         (write_alias_graph_to_ascii_dot): Likewise.
1393         (build_alias_set_optimal_p): Likewise.
1394
1395 2011-08-23  Richard Guenther  <rguenther@suse.de>
1396
1397         PR tree-optimization/50162
1398         * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
1399
1400 2011-08-23  Richard Guenther  <rguenther@suse.de>
1401
1402         * tree-data-ref.c (dr_analyze_indices): Add comments, handle
1403         REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
1404         (create_data_ref): Also dump access functions for the created data-ref.
1405
1406 2011-08-22  Uros Bizjak  <ubizjak@gmail.com>
1407             Kirill Yukhin  <kirill.yukhin@intel.com>
1408
1409         PR target/50155
1410         * config/i386/sse.md (VI_AVX2): New.
1411         (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
1412         (*<plusminus_insn><mode>3): Ditto.
1413         (<sse2_avx2>_andnot<mode>3): Ditto.
1414         (*andnot<mode>3): Fix order of cond operands.
1415         Add asserts for correct TARGET_xxx.
1416         (*<any_logic:code><mode>3): Ditto.
1417
1418 2011-08-22  Anatoly Sokolov  <aesok@post.ru>
1419
1420         * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
1421         * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
1422         * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
1423         regclass argument type to reg_class_t. Change 'max' and 'v' vars
1424         and return types to unsigned char. Use reg_class_contents instead
1425         of class_contents.
1426         (TARGET_CLASS_MAX_NREGS): Define.
1427
1428 2011-08-22  Bernd Schmidt  <bernds@codesourcery.com>
1429
1430         * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
1431         to make computed_jump_p return true.
1432
1433 2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1434
1435         * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
1436         (PICFLAG_FOR_TARGET): Substitute.
1437         * aclocal.m4: Regenerate.
1438         * configure: Regenerate.
1439
1440 2011-08-22  Dodji Seketeli  <dodji@redhat.com>
1441
1442         * c-family/c-pch.c (c_common_read_pch): Re-set line table right
1443         after reading in the pch.
1444
1445 2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>
1446
1447         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
1448         * configure: Regenerated.
1449
1450 2011-08-22  Jakub Jelinek  <jakub@redhat.com>
1451
1452         PR tree-optimization/50133
1453         * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
1454         from stmt instead of some statement around gsi.
1455
1456         PR middle-end/50141
1457         * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
1458         innerdecl is a VAR_DECL.
1459
1460 2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
1461
1462         * config/i386/avx2intrin.h: New file.
1463         * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
1464         PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
1465         V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
1466         V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
1467         V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
1468         V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
1469         V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
1470         V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
1471         V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
1472         V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
1473         V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
1474         V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
1475         V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
1476         V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
1477         V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
1478         V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
1479         V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
1480         V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
1481         VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
1482         VOID_FTYPE_PV8SI_V8SI_V8SI,
1483         V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
1484         V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
1485         V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
1486         V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
1487         V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
1488         V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
1489         V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
1490         V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
1491         V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
1492         V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
1493         V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
1494         V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
1495         V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
1496         V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
1497         V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
1498         V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
1499         V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
1500         V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
1501         V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
1502         V4DI_FTYPE_V4DI_INT_CONVERT,
1503         V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
1504         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
1505         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
1506         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
1507         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
1508         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
1509         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
1510         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
1511         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
1512         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
1513         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
1514         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
1515         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
1516         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
1517         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
1518         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
1519         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
1520         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
1521         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
1522         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
1523         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
1524         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
1525         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
1526         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
1527         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
1528         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
1529         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
1530         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
1531         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
1532         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
1533         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
1534         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
1535         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
1536         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
1537         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
1538         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
1539         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
1540         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
1541         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
1542         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
1543         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
1544         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
1545         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
1546         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
1547         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
1548         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
1549         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
1550         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
1551         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
1552         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
1553         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
1554         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
1555         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
1556         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
1557         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
1558         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
1559         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
1560         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
1561         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
1562         IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
1563         IX86_BUILTIN_VBROADCASTSS_PS256,
1564         IX86_BUILTIN_VBROADCASTSD_PD256,
1565         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
1566         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
1567         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
1568         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
1569         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
1570         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
1571         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
1572         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
1573         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
1574         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
1575         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
1576         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
1577         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
1578         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
1579         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
1580         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
1581         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
1582         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
1583         IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
1584         IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
1585         IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
1586         IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
1587         IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
1588         IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
1589         IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
1590         IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
1591         (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
1592         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
1593         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
1594         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
1595         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
1596         (bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
1597         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
1598         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
1599         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
1600         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
1601         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
1602         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
1603         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
1604         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
1605         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
1606         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
1607         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
1608         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
1609         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
1610         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
1611         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
1612         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
1613         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
1614         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
1615         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
1616         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
1617         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
1618         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
1619         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
1620         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
1621         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
1622         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
1623         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
1624         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
1625         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
1626         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
1627         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
1628         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
1629         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
1630         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
1631         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
1632         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
1633         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
1634         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
1635         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
1636         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
1637         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
1638         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
1639         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
1640         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
1641         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
1642         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
1643         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
1644         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
1645         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
1646         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
1647         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
1648         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
1649         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
1650         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
1651         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
1652         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
1653         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
1654         IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
1655         IX86_BUILTIN_VBROADCASTSD_PD256,
1656         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
1657         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
1658         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
1659         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
1660         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
1661         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
1662         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
1663         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
1664         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
1665         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
1666         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
1667         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
1668         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
1669         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
1670         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
1671         IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
1672         IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
1673         IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
1674         IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
1675         IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
1676         IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
1677         IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
1678         IX86_BUILTIN_GATHERDIV8SI.
1679         (ix86_preferred_simd_mode): Support AVX2 modes.
1680         (ix86_expand_args_builtin): Support AVX2 builtins.
1681         (ix86_expand_special_args_builtin): Likewise.
1682         (ix86_expand_builtin): Likewise.
1683         * config/i386/i386.md (UNSPEC_VPERMSI): New.
1684         (UNSPEC_VPERMDF): Likewise.
1685         (UNSPEC_VPERMSF): Likewise.
1686         (UNSPEC_VPERMDI): Likewise.
1687         (UNSPEC_VPERMTI): Likewise.
1688         (UNSPEC_GATHER): Likewise.
1689         (ssemodesuffix): Extend.
1690         * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
1691         is defined.
1692         * config/i386/predicates.md (const1248_operand): New.
1693         * config/i386/sse.md (VI1_AVX2): New mode iterator.
1694         (VI2_AVX2): Likewise.
1695         (VI4_AVX2): Likewise.
1696         (VI8_AVX2): Likewise.
1697         (VIMAX_AVX2): Likewise.
1698         (SSESCALARMODE): Likewise.
1699         (VI12_AVX2): Likewise.
1700         (VI24_AVX2): Likewise.
1701         (VI124_AVX2): Likewise.
1702         (VI248_AVX2): Likewise.
1703         (VI48_AVX2): Likewise.
1704         (VI4SD_AVX2): Likewise.
1705         (V48_AVX2): Likewise.
1706         (AVX256MODE2P): Likewise.
1707         (AVXMODE48P_DI): Likewise.
1708         (sse2_avx2): New mode attribute.
1709         (ssse3_avx2): Likewise.
1710         (sse4_1_avx2): Likewise.
1711         (avx_avx2): Likewise.
1712         (ssebytemode): Likewise.
1713         (AVXTOSSEMODE): Likewise.
1714         (AVXMODE48P_DI): Likewise.
1715         (gthrfirstp): Likewise.
1716         (gthrlastp): Likewise.
1717         (lshift): New code_iterator
1718         (lshift): New code attribute.
1719         (lshift): Likewise.
1720         (ssescalarmodesuffix): Update.
1721         (sseunpackmode): Likewise.
1722         (ssepackmode): Likewise.
1723         (avx2_vec_dupv4sf): New insn pattern.
1724         (avx2_vec_dupv8sf): Likewise.
1725         (avx2_interleave_highv4di): Likewise.
1726         (avx2_interleave_lowv4di): Likewise.
1727         (avx2_umulv4siv4di3): Likewise
1728         (*avx2_umulv4siv4di3): Likewise
1729         (avx2_pmaddwd): Likewise.
1730         (*avx2_pmaddwd): Likewise.
1731         (avx2_lshrqv4di3): Likewise.
1732         (avx2_lshlqv4di3): Likewise.
1733         (avx2_lshl<mode>3): Likewise.
1734         (avx2_<umaxmin:code><mode>3): Likewise.
1735         (*avx2_<umaxmin:code><mode>3): Likewise.
1736         (avx2_<smaxmin:code><mode>3): Likewise.
1737         (*avx2_<smaxmin:code><mode>3): Likewise.
1738         (avx2_eq<mode>3): Likewise.
1739         (*avx2_eq<mode>3): Likewise.
1740         (avx2_gt<mode>3): Likewise.
1741         (avx2_interleave_highv32qi): New.
1742         (avx2_interleave_lowv32qi): Likewise.
1743         (avx2_interleave_highv16hi): Likewise.
1744         (avx2_interleave_lowv16hi): Likewise.
1745         (avx2_interleave_highv8si): Likewise.
1746         (avx2_interleave_lowv8si): Likewise.
1747         (avx2_pshufd): Likewise.
1748         (avx2_pshufd_1): Likewise.
1749         (avx2_pshuflwv3): Likewise.
1750         (avx2_pshuflw_1): Likewise.
1751         (avx2_pshufhwv3): Likewise.
1752         (avx2_pshufhw_1): Likewise.
1753         (avx2_uavgv32qi3): Likewise.
1754         (*avx2_uavgv32qi3): Likewise.
1755         (avx2_uavgv16hi3): Likewise.
1756         (*avx2_uavgv16hi3): Likewise.
1757         (avx2_pmovmskb): Likewise.
1758         (avx2_phaddwv16hi3): Likewise.
1759         (avx2_phadddv8si3): Likewise.
1760         (avx2_phaddswv16hi3): Likewise.
1761         (avx2_phsubwv16hi3): Likewise.
1762         (avx2_phsubdv8si3): Likewise.
1763         (avx2_phsubswv16hi3): Likewise.
1764         (avx2_pmaddubsw256): Likewise.
1765         (avx2_umulhrswv16hi3): Likewise.
1766         (*avx2_umulhrswv16hi3): Likewise.
1767         (avx2_packusdw): Likewise.
1768         (avx2_pblendd<mode>): Likewise.
1769         (avx2_<code>v16qiv16hi2): Likewise.
1770         (avx2_<code>v8qiv8si2): Likewise.
1771         (avx2_<code>v8hiv8si2): Likewise.
1772         (avx2_<code>v4qiv4di2): Likewise.
1773         (avx2_<code>v4hiv4di2): Likewise.
1774         (avx2_<code>v4siv4di2): Likewise.
1775         (avx2_pbroadcast<mode>): Likewise.
1776         (avx2_permvarv8si): Likewise.
1777         (avx2_permv4df): Likewise.
1778         (avx2_permvarv8sf): Likewise.
1779         (avx2_permv4di): Likewise.
1780         (avx2_permv2ti): Likewise.
1781         (avx2_vec_dupv4df): Likewise.
1782         (avx2_vbroadcasti128_<mode>): Likewise.
1783         (avx2_vec_set_lo_v4di): Likewise.
1784         (avx2_vec_set_hi_v4di): Likewise.
1785         (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
1786         (avx2_extracti128): Likewise.
1787         (avx2_inserti128): Likewise.
1788         (avx2_ashrvv8si): Likewise.
1789         (avx2_ashrvv4si): Likewise.
1790         (avx2_<lshift>vv8si): Likewise.
1791         (avx2_<lshift>v<mode>): Likewise.
1792         (avx2_<lshift>vv2di): Likewise.
1793         (avx2_gathersi<mode>): Likewise.
1794         (*avx2_gathersi<mode>): Likewise.
1795         (avx2_gatherdi<mode>): Likewise.
1796         (*avx2_gatherdi<mode>): Likewise.
1797         (avx2_gatherdi<mode>256): Likewise.
1798         (*avx2_gatherdi<mode>256): Likewise.
1799         (<plusminus_insn><mode>3): Use VI mode iterator.
1800         (*<plusminus_insn><mode>3): Use VI mode iterator.
1801         (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
1802         sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
1803         (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
1804         *sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
1805         (mul<mode>3): Rename from mulv8hi3.  Use VI2_AVX2 mode iterator.
1806         (*mul<mode>3): Rename from *mulv8hi3.  Use VI2_AVX2 mode iterator.
1807         (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
1808         Use VI2_AVX2 mode iterator.
1809         (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
1810         Use VI2_AVX2 mode iterator.
1811         (mul<mode>3): Rename from mulv4si3.  Use VI4_AVX2 mode iterator.
1812         (*mul<mode>3): Rename from *mulv4si3.  Use VI4_AVX2 mode iterator.
1813         (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
1814         Use VI4_AVX2 mode iterator.
1815         (ashr<mode>3): Use VI24_AVX2 mode iterator.
1816         (lshr<mode>3): Use VI248_AVX2 mode iterator.
1817         (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
1818         Use VIMAX_AVX2 mode iterator.
1819         (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
1820         Use VI mode iterator.
1821         (*andnot<mode>3): Update for AVX2.
1822         (*<any_logic:code><mode>3): Likewise.
1823         (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
1824         Use VI1_AVX mode iterator.
1825         (<sse2_avx2>_packssdw):  Rename from sse2_packssdw.
1826         Use VI2_AVX mode iterator.
1827         (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
1828         Use VI1_AVX mode iterator.
1829         (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
1830         Use VI8_AVX2 mode iterator.
1831         (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
1832         Use VI1_AVX2 mode iterator.
1833         (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
1834         Use VI124_AVX2 mode iterator.
1835         (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
1836         Use SSESCALARMODE mode iterator.
1837         (abs<mode>2): Use VI124_AVX2 mode iterator.
1838         (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
1839         Use VI8_AVX2 mode iterator.
1840         (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
1841         Use VI1_AVX2 mode iterator.
1842         (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
1843         Use VI1_AVX2 mode iterator.
1844         (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
1845         Use VI2_AVX2 mode iterator.
1846         (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
1847         avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
1848         (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
1849         avx_maskstore<ssemodesuffix><avxsizesuffix>.
1850         Use V48_AVX2 mode iterator.
1851         * doc/extend.texi: Document AVX2 built-in functions.
1852         * doc/invoke.texi: Document -mavx2.
1853
1854 2011-08-22  Matthias Klose <doko@debian.org>
1855
1856         Revert:
1857         2011-07-11  Arthur Loiret  <aloiret@debian.org>
1858                     Matthias Klose <doko@debian.org>
1859         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
1860         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
1861         convention.
1862         * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
1863
1864 2011-08-22  Mikael Pettersson  <mikpe@it.uu.se>
1865
1866         PR bootstrap/50146
1867         * ira-color.c (assign_hard_reg): Move saved_nregs declaration
1868         to #ifndef HONOR_REG_ALLOC_ORDER block.
1869
1870 2011-08-21  Richard Henderson  <rth@redhat.com>
1871
1872         * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
1873         * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
1874         * resource.c (next_insn_no_annul): Likewise.
1875         (mark_set_resources): Likewise.
1876         * reorg.c (delete_from_delay_slot): Likewise.
1877         (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
1878         (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
1879
1880 2011-08-21  Uros Bizjak  <ubizjak@gmail.com>
1881
1882         * config/i386/i386.md (any_div): Remove.
1883         (sgnprefix): Update for removal.
1884         (u): Ditto.
1885
1886 2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>
1887
1888         * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
1889         for ira_reg_class_max_nregs.  Increase pressure by 1.
1890         (mark_pseudo_regno_subword_dead): Use allocno class
1891         for ira_reg_class_max_nregs.
1892
1893 2011-08-20  Richard Henderson  <rth@redhat.com>
1894
1895         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
1896         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
1897         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
1898         config/c6x/ltf.c: Adjust include path for soft-fp.
1899
1900 2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>
1901
1902         PR other/46770
1903         * config.gcc (tm_file): Add initfini-array.h if
1904         .init_arrary/.fini_array are supported.
1905
1906         * crtstuff.c: Don't generate .ctors nor .dtors sections if
1907         USE_INITFINI_ARRAY is defined.
1908
1909         * output.h (default_elf_init_array_asm_out_constructor): New.
1910         (default_elf_fini_array_asm_out_destructor): Likewise.
1911         * varasm.c (elf_init_array_section): Likewise.
1912         (elf_fini_array_section): Likewise.
1913         (get_elf_initfini_array_priority_section): Likewise.
1914         (default_elf_init_array_asm_out_constructor): Likewise.
1915         (default_elf_fini_array_asm_out_destructor): Likewise.
1916
1917         * config/initfini-array.h: New.
1918
1919 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
1920
1921         * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
1922         OK for ST_REGS and FP_REGS before taking those classes into account.
1923
1924 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
1925
1926         * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
1927         before checking for annulled branches.
1928
1929 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
1930
1931         * config/i386/i386.c (ix86_binary_operator_ok): Use
1932         satisfies_constraint_L.
1933
1934 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
1935             Michael Matz  <matz@suse.de>
1936
1937         * config/i386/i386.c (ix86_expand_round_sse4): Expand as
1938         trunc (a + copysign (nextafter (0.5, 0.0), a)).
1939
1940 2011-08-20  Anatoly Sokolov  <aesok@post.ru>
1941
1942         * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
1943         * doc/tm.texi: Regenerate.
1944         * targhooks.c (default_preferred_output_reload_class): Don't use
1945         PREFERRED_OUTPUT_RELOAD_CLASS macro.
1946         * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
1947
1948 2011-08-20  Jakub Jelinek  <jakub@redhat.com>
1949
1950         PR tree-optimization/48739
1951         * tree-ssa.c: Include cfgloop.h.
1952         (execute_update_addresses_taken): When updating ssa, if in loop closed
1953         SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
1954         * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
1955
1956 2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>
1957
1958         PR rtl-optimization/49936
1959         * ira.c (ira_init_register_move_cost): Ignore too small subclasses
1960         for calculation of max register move costs.
1961
1962 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
1963
1964         * c-parser.c (c_parser_postfix_expression): Convert operands of
1965         __builtin_complex to their semantic types.
1966
1967 2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
1968
1969         PR middle-end/49721
1970         * explow.c (convert_memory_address_addr_space): Also permute the
1971         conversion and addition of constant for zero-extend.
1972
1973 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
1974
1975         * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
1976         * doc/extend.texi (__builtin_complex): Document.
1977
1978 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1979
1980         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
1981         beyond conversions.
1982         (convert_mult_to_widen): Convert constant inputs to the right type.
1983         (convert_plusminus_to_widen): Don't automatically reject inputs that
1984         are not an SSA_NAME.
1985         Convert constant inputs to the right type.
1986
1987 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1988
1989         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
1990         to the correct type.
1991
1992 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1993
1994         * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
1995         unsigned inputs of different modes.
1996         (convert_plusminus_to_widen): Likewise.
1997
1998 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
1999
2000         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
2001         'type'.
2002         Use 'type' from caller, not inferred from 'rhs'.
2003         Don't reject non-conversion statements. Do return lhs in this case.
2004         (is_widening_mult_p): Add new argument 'type'.
2005         Use 'type' from caller, not inferred from 'stmt'.
2006         Pass type to is_widening_mult_rhs_p.
2007         (convert_mult_to_widen): Pass type to is_widening_mult_p.
2008         (convert_plusminus_to_widen): Likewise.
2009
2010 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
2011
2012         * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
2013         Ensure the the larger type is the first operand.
2014
2015 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
2016
2017         * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
2018         unsupported unsigned multiplies to signed.
2019         (convert_plusminus_to_widen): Likewise.
2020
2021 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
2022
2023         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
2024         conversion statement separating multiply-and-accumulate.
2025
2026 2011-08-19  Richard Guenther  <rguenther@suse.de>
2027
2028         PR tree-optimization/50067
2029         * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
2030         offset only if we accounted for it.
2031
2032 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
2033
2034         * config/arm/arm.md (maddhidi4): Remove '*' from name.
2035         * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
2036         * optabs.c (find_widening_optab_handler_and_mode): New function.
2037         (expand_widen_pattern_expr): Use find_widening_optab_handler.
2038         (expand_binop_directly): Likewise.
2039         (expand_binop): Likewise.
2040         * optabs.h (find_widening_optab_handler): New macro define.
2041         (find_widening_optab_handler_and_mode): New prototype.
2042         * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
2043         type precision rules.
2044         (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
2045         * tree-ssa-math-opts.c (build_and_insert_cast): New function.
2046         (is_widening_mult_rhs_p): Allow widening by more than one mode.
2047         Explicitly disallow mis-matched input types.
2048         (convert_mult_to_widen): Use find_widening_optab_handler, and cast
2049         input types to fit the new handler.
2050         (convert_plusminus_to_widen): Likewise.
2051
2052 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
2053
2054         * expr.c (expand_expr_real_2): Use widening_optab_handler.
2055         * genopinit.c (optabs): Use set_widening_optab_handler for $N.
2056         (gen_insn): $N now means $a must be wider than $b, not consecutive.
2057         * optabs.c (widened_mode): New function.
2058         (expand_widen_pattern_expr): Use widening_optab_handler.
2059         (expand_binop_directly): Likewise.
2060         (expand_binop): Likewise.
2061         * optabs.h (widening_optab_handlers): New struct.
2062         (optab_d): New member, 'widening'.
2063         (widening_optab_handler): New function.
2064         (set_widening_optab_handler): New function.
2065         * tree-ssa-math-opts.c (convert_mult_to_widen): Use
2066         widening_optab_handler.
2067         (convert_plusminus_to_widen): Likewise.
2068
2069 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
2070
2071         * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
2072         pedantic.
2073         * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
2074         * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
2075
2076 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
2077
2078         * opth-gen.awk: Do not declare target save/restore structures and
2079         functions if IN_RTS defined.
2080
2081 2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
2082
2083         PR target/49437
2084         * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
2085         when stack was realigned in interrupt handler prologue.
2086
2087 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
2088
2089         * c-decl.c (shadow_tag_warned): Check for _Noreturn.
2090         (quals_from_declspecs): Assert _Noreturn not present.
2091         (grokdeclarator): Handle _Noreturn.
2092         (build_null_declspecs): Initialize noreturn_p.
2093         (declspecs_add_scspec): Handle RID_NORETURN.
2094         * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
2095         (c_parser_attributes): Handle RID_NORETURN.
2096         * c-tree.h (struct c_declspecs): Add noreturn_p.
2097         * ginclude/stdnoreturn.h: New.
2098         * Makefile.in (USER_H): Add stdnoreturn.h.
2099
2100 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
2101
2102         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
2103         (OPTION_MASK_ISA_AVX_UNSET): Update.
2104         (OPTION_MASK_ISA_AVX2_UNSET): New.
2105         (ix86_handle_option): Handle OPT_mavx2 case.
2106         * config/i386/cpuid.h (bit_AVX2): New.
2107         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
2108         AVX2 feature.
2109         * config/i386/i386-c.c (ix86_target_macros_internal):
2110         Conditionally define __AVX2__.
2111         * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
2112         Define "core-avx2" processor alias.  Handle avx2 option.
2113         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
2114         * config/i386/i386.h (TARGET_AVX2): New.
2115         * config/i386/i386.opt (mavx2): New.
2116         * doc/invoke.texi: Document -mavx2.
2117
2118 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
2119
2120         PR rtl-optimization/49890
2121         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
2122         subclasses of class which is superset of a pressure class.
2123
2124 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
2125             Igor Zamyatin <igor.zamyatin@intel.com>
2126
2127         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
2128         with HOST_WIDE_INT for isa_flag.
2129         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
2130         isa variables.
2131
2132         * config/i386/i386.c (ix86_target_string): Replace int with
2133         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
2134         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
2135         (pta_flags): Removed.
2136         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
2137         (pta): Use HOST_WIDE_INT on flags.
2138         (builtin_isa): Use HOST_WIDE_INT on isa.
2139         (ix86_add_new_builtins): Likewise.
2140         (def_builtin): Use HOST_WIDE_INT on mask.
2141         (def_builtin_const): Likewise.
2142         (builtin_description): Likewise.
2143
2144         * config/i386/i386.opt (ix86_isa_flags): Replace int with
2145         HOST_WIDE_INT.
2146         (ix86_isa_flags_explicit): Likewise.
2147         (x_ix86_isa_flags_explicit): Likewise.
2148
2149 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
2150
2151         PR rtl-optimization/50107
2152         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
2153         (ira_hard_reg_in_set_p): New.
2154
2155         * ira-color.c (calculate_saved_nregs): New.
2156         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
2157         hard regs.
2158         (allocno_reload_assign, fast_allocation): Use
2159         ira_hard_reg_set_intersection_p instead of
2160         ira_hard_reg_not_in_set_p.
2161
2162         * ira.c (setup_reg_renumber): Use
2163         ira_hard_reg_set_intersection_p instead of
2164         ira_hard_reg_not_in_set_p.
2165         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
2166         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
2167
2168         * ira-costs.c (ira_tune_allocno_costs): Use
2169         ira_hard_reg_set_intersection_p instead of
2170         ira_hard_reg_not_in_set_p.
2171
2172 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
2173             Igor Zamyatin <igor.zamyatin@intel.com>
2174
2175         * hwint.h (HOST_WIDE_INT_1): New.
2176
2177         * opt-functions.awk (switch_bit_fields): Initialize the
2178         host_wide_int field.
2179         (host_wide_int_var_name): New.
2180         (var_type_struct): Check and return HOST_WIDE_INT.
2181
2182         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
2183
2184         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
2185
2186         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
2187         check masks for HOST_WIDE_INT.
2188
2189         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
2190         (option_enabled): Likewise.
2191         (get_option_state): Likewise.
2192
2193         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
2194         to HOST_WIDE_INT.
2195
2196 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2197             Marc Glisse  <marc.glisse@normalesup.org>
2198
2199         PR libstdc++-v3/1773
2200         * target.def (decl_mangling_context): New C++ hook.
2201         * doc/tm.texi: Regenerate.
2202         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
2203         * config/sol2-protos.h: Group by source file.
2204         (solaris_cxx_decl_mangling_context): Declare.
2205         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
2206         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
2207         Use $<.
2208         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
2209         Add sol2-stubs.o to extra_objs.
2210
2211 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
2212
2213         PR target/50009
2214         * stor-layout.c (update_alignment_for_field): Don't ICE on
2215         packed flexible array members if ms_bitfield_layout_p.
2216
2217         PR target/50092
2218         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
2219         on the result before returning it.
2220
2221         PR debug/50017
2222         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
2223         is a debug stmt, use location of the first non-debug stmt after it.
2224
2225 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
2226
2227         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
2228         (arm_size_rtx_costs): Likewise.
2229
2230 2011-08-18  Richard Guenther  <rguenther@suse.de>
2231
2232         * tree.h (tree_int_cst_msb): Remove.
2233         * tree.c (tree_int_cst_msb): Likewise.
2234         (tree_int_cst_sign_bit): Move from ...
2235         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
2236
2237 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
2238
2239         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
2240         * doc/tm.texi: Regenerate.
2241         * target.def (rtx_costs): Add an opno parameter.
2242         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
2243         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
2244         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
2245         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
2246         * cse.c (COST_IN): Add an opno parameter.
2247         (notreg_cost): Likewise.  Update call to rtx_cost.
2248         (COST, fold_rtx): Update accordingly.
2249         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
2250         * expmed.c (emit_store_flag): Likewise.
2251         * optabs.c (avoid_expensive_constant): Add an opno parameter.
2252         Update call to rtx_cost.
2253         (expand_binop_directly, expand_binop): Likewise.
2254         (expand_twoval_binop, prepare_cmp_insn): Likewise.
2255         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
2256         (set_src_cost, get_full_set_src_cost): Update accordingly.
2257         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
2258         to target hook.
2259         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
2260         (default_adress_cost): Update calls to rtx_cost.
2261
2262         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
2263         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
2264         (arm_rtx_costs): Add an opno parameter.
2265         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
2266         adjust any recursive rtx-cost calls.
2267         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
2268         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
2269         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
2270         * config/cris/cris.c (cris_rtx_costs): Likewise.
2271         * config/frv/frv.c (frv_rtx_costs): Likewise.
2272         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
2273         * config/i386/i386.c (ix86_rtx_costs): Likewise.
2274         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
2275         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
2276         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
2277         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
2278         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
2279         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
2280         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
2281         * config/mep/mep.c (mep_rtx_cost): Likewise.
2282         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
2283         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
2284         (mips_zero_extend_cost): Add an opno parameter.
2285         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
2286         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
2287         to rtx_cost.
2288         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
2289         rtx-cost calls.
2290         * config/pa/pa.c (hppa_rtx_costs): Likewise.
2291         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
2292         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
2293         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
2294         (rs6000_debug_rtx_costs): Likewise.
2295         * config/s390/s390.c (s390_rtx_costs): Likewise.
2296         * config/score/score-protos.h (score_rtx_costs): Likewise.
2297         * config/score/score.c (score_rtx_costs): Likewise.
2298         * config/sh/sh.c (andcosts): Update call to rtx_cost.
2299         (sh_rtx_costs): Add an opno parameter.
2300         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
2301         * config/spu/spu.c (spu_rtx_costs): Likewise.
2302         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
2303         * config/v850/v850.c (v850_rtx_costs): Likewise.
2304         * config/vax/vax.c (vax_rtx_costs): Likewise.
2305         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
2306
2307 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
2308
2309         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
2310         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
2311         rtx_cost.
2312         * calls.c (precompute_register_parameters): Likewise.
2313         * combine.c (expand_compound_operation, make_extraction): Likewise.
2314         (force_to_mode, distribute_and_simplify_rtx): Likewise.
2315         * dse.c (find_shift_sequence): Likewise.
2316         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
2317         * expr.c (compress_float_constant): Likewise.
2318         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
2319         * gcse.c (want_to_gcse_p): Likewise.
2320         * ifcvt.c (noce_try_sign_mask): Likewise.
2321         * loop-doloop.c (doloop_optimize): Likewise.
2322         * loop-invariant.c (create_new_invariant): Likewise.
2323         * optabs.c (avoid_expensive_constant): Likewise.
2324         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
2325         (try_replace_in_use, reload_cse_move2add): Likewise.
2326         * reload1.c (calculate_elim_costs_all_insns): Likewise.
2327         (note_reg_elim_costly): Likewise.
2328         * rtlanal.c (insn_rtx_cost): Likewise.
2329         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2330         * stmt.c (lshift_cheap_p): Likewise.
2331         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
2332         * config/avr/avr.c (final_prescan_insn): Likewise.
2333         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
2334         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
2335
2336 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
2337
2338         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
2339         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
2340         * cfgloopanal.c (seq_cost): Likewise.
2341         * loop-invariant.c (create_new_invariant): Likewise.
2342         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
2343         (reload_cse_move2add): Use get_full_set_rtx_cost.
2344
2345 2011-08-18  Richard Guenther  <rguenther@suse.de>
2346
2347         * expr.c (get_inner_reference): Fix typo in last change.
2348
2349 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
2350             Joseph Myers  <joseph@codesourcery.com>
2351
2352         PR tree-optimization/49963
2353         * hwint.c (absu_hwi): Define.
2354         * hwint.h (absu_hwi): Declare.
2355         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
2356         of abs_hwi.
2357         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
2358         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
2359
2360 2011-08-18  Richard Guenther  <rguenther@suse.de>
2361
2362         * expr.c (get_inner_reference): Sign-extend the constant
2363         twos-complement offset before doing arbitrary precision
2364         arithmetic on it.
2365         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
2366         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
2367         to get_constraint_for_ptr_offset.
2368
2369 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
2370
2371         PR target/50068
2372         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
2373
2374 2011-08-17  Richard Guenther  <rguenther@suse.de>
2375
2376         * tree.h (convert_to_ptrofftype_loc): New function.
2377         (convert_to_ptrofftype): Define.
2378         * builtins.c (expand_builtin_bzero): Use size_type_node.
2379         (fold_builtin_bzero): Likewise.
2380         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
2381         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
2382         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
2383         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
2384         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
2385         * fold-const.c (build_range_check): Negate using the original type.
2386         (fold_unary_loc): Use fold_build_pointer_plus_loc.
2387         * gimple-fold.c (gimple_adjust_this_by_delta): Use
2388         convert_to_ptrofftype.
2389         * gimplify.c (gimplify_self_mod_expr): Likewise.
2390         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
2391         (graphite_create_new_loop_guard): Likewise.
2392         * graphite-sese-to-poly.c (my_long_long): Remove.
2393         (scop_ivs_can_be_represented): Adjust.
2394         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
2395         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
2396         * tree-loop-distribution.c (build_size_arg_loc): Use
2397         size_type_node.
2398         (generate_memset_zero): Simplify.
2399         * tree-mudflap.c: Use fold_convert, not convert.
2400         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
2401         its own type.
2402         (determine_offset): Likewise for DR_STEP.
2403         (valid_initializer_p): Likewise.
2404         * tree-profile.c (prepare_instrumented_value): Convert the pointer
2405         to an integer type of same size.
2406         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
2407         to sizetype without need.
2408         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
2409         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
2410         * tree-ssa-loop-manip.c (create_iv): Likewise.
2411         (determine_exit_conditions): Adjust comment.
2412         * tree-ssa-pre.c (create_expression_by_pieces): Use
2413         convert_to_ptrofftype.
2414         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
2415         * varasm.c (array_size_for_constructor): Compute using double_ints.
2416
2417 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2418
2419         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
2420         when generating an integer result where possible.  Short-cut
2421         comparison against 0 also for QImode.
2422
2423 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2424
2425         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
2426         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
2427         prototype.
2428         * config/spu/spu.c (spu_legitimize_reload_address): New function.
2429         (spu_legitimate_address_p): Do not check displacement if the base
2430         is an eliminable stack register.
2431
2432 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
2433
2434         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
2435         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
2436         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
2437         m32c_preferred_output_reload_class): Remove.
2438         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
2439         Change rclass argument and return types to reg_class_t. Use
2440         reg_class_subset_p instead of class_sizes.
2441         (m32c_preferred_output_reload_class): Make static. Change rclass
2442         argument and return types to reg_class_t.
2443         (TARGET_PREFERRED_RELOAD_CLASS,
2444         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
2445
2446 2011-08-16  Kai Tietz  <ktietz@redhat.com>
2447
2448         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
2449
2450 2011-08-16  Richard GUenther  <rguenther@suse.de>
2451
2452         PR tree-optimization/50082
2453         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
2454         warnings here, instead of ...
2455         (ssa_forward_propagate_and_combine): ... here.
2456         (forward_propagate_into_comparison_1): Adjust.
2457         (forward_propagate_into_comparison): Likewise.
2458         (forward_propagate_into_gimple_cond): Likewise.
2459         (forward_propagate_into_cond): Likewise.
2460
2461 2011-08-16  Andreas Schwab  <schwab@redhat.com>
2462
2463         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
2464         instead of ggc_alloc_zone_vec_rtvec_def.
2465
2466 2011-08-16  Richard Guenther  <rguenther@suse.de>
2467
2468         * tree.h (ptrofftype_p): New helper function.
2469         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
2470         offset verification.
2471         (verify_gimple_assign_binary): Likewise.
2472         * tree.c (build2_stat): Likewise.
2473         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
2474         (reset_evolution_in_loop): Likewise.
2475         * tree-chrec.h (build_polynomial_chrec): Likewise.
2476
2477 2011-08-16  Liang Wang  <lwang1@marvell.com>
2478
2479         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
2480         ggc_alloc_zone_vec_rtvec_def.
2481
2482 2011-08-16  Richard Guenther  <rguenther@suse.de>
2483
2484         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
2485         helper factored out from ...
2486         (extract_range_from_binary_expr_1): ... here.  Re-structure
2487         to not glob handling too different tree codes.
2488
2489 2011-08-15  Richard Henderson  <rth@redhat.com>
2490
2491         PR middle-end/50006
2492         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
2493         setting out to include allocate_stack named pattern as well.
2494         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
2495         * stmt.c (expand_stack_restore): Likewise.
2496
2497 2011-08-15  Richard Guenther  <rguenther@suse.de>
2498
2499         PR middle-end/50082
2500         * fold-const.c (maybe_canonicalize_comparison_1): Properly
2501         convert the modified operand to the other operand type.
2502         (fold_comparison): Call maybe_canonicalize_comparison_1 with
2503         useless conversions stripped from comparison operands.
2504
2505 2011-08-15  Richard Guenther  <rguenther@suse.de>
2506
2507         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
2508         (extract_range_from_unary_expr_1): Restructure.
2509
2510 2011-08-15  Richard Guenther  <rguenther@suse.de>
2511
2512         PR tree-optimization/50058
2513         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
2514         copy matching.
2515
2516 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2517
2518         PR target/50022
2519         * config/arm/arm.c (output_move_double): Add 2 parameters
2520         to count the number of insns emitted and whether to emit or not.
2521         Use the flag to decide when to emit and count number of instructions
2522         that will be emitted.
2523         Handle case where output_move_double might be called for calculating
2524         lengths with an invalid constant.
2525         (arm_count_output_move_double_insns): Define.
2526         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
2527         (output_move_double): Adjust prototype.
2528         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
2529         output_move_double.
2530         ("*movdi_vfp_cortexa8"): Likewise and add attribute
2531         for ce_count.
2532         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
2533         ("*movdf_soft_insn"): Likewise.
2534         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
2535         ("*cirrus_thumb2_movdi"): Likewise.
2536         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
2537         ("*cirrus_movdf_hard_insn"): Likewise.
2538         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
2539         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
2540         ("mov<mode>_internal VMMX"): Likewise.
2541         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
2542
2543 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
2544
2545         * config/i386/i386.c (ix86_expand_round_sse4): New function.
2546         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
2547         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
2548         for TARGET_ROUND.
2549
2550         (rint<mode>2): Simplify TARGET_ROUND check.
2551         (floor<mode>2): Ditto.
2552         (ceil<mode>2): Ditto.
2553         (btrunc<mode>2): Ditto.
2554
2555 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
2556
2557         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
2558         as mmix_preferred_output_reload_class.
2559
2560 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
2561
2562         * PR target/49903
2563         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
2564         (branch_unspec): New insn.
2565         (branch): Beauty farm.
2566         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
2567         to be IF_THEN_ELSE.
2568         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
2569         New static functions.
2570         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.
2571         Use CONST_INT_P.  Beauty.
2572
2573 2011-08-12  Richard Henderson  <rth@redhat.com>
2574
2575         PR rtl-opt/49994
2576         * sched-init.h (struct deps_desc): Add sched_before_next_jump.
2577         * sched-deps.c (init_deps): Clear it.
2578         (deps_analyze_insn): Consume it.
2579         (sched_analyze_insn): Fill it.
2580
2581 2011-08-12  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
2582
2583         PR target/48328
2584         * config/arm/arm.h (CASE_VECTOR_SHORTEN_MODE): Fix distance
2585         for tbh instructions.
2586
2587 2011-08-12  Diego Novillo  <dnovillo@google.com>
2588
2589         * data-streamer.h (streamer_write_zero): Rename from output_zero.
2590         (streamer_write_uhwi): Rename from lto_output_uleb128.
2591         (streamer_write_hwi): Rename from output_sleb128.
2592         (streamer_write_string): Rename from lto_output_string.
2593         (streamer_string_index): Rename from lto_string_index.
2594         (streamer_write_string_with_length): Rename from
2595         lto_output_string_with_length.
2596         (streamer_write_uhwi_stream): Rename from lto_output_uleb128_stream.
2597         (streamer_write_hwi_stream): Rename from lto_output_sleb128_stream.
2598         (streamer_read_string): Rename from lto_input_string.
2599         (streamer_read_indexed_string): Rename from input_string_internal.
2600         (streamer_read_uhwi): Rename from lto_input_uleb128.
2601         (streamer_read_hwi): Rename from lto_input_sleb128.
2602         (streamer_write_hwi_in_range): Rename from lto_output_int_in_range.
2603         (streamer_read_hwi_in_range): Rename from lto_input_int_in_range.
2604         (streamer_write_enum): Rename from lto_output_enum.
2605         (streamer_read_enum): Rename from lto_input_enum.
2606         (streamer_write_record_start): Rename from output_record_start.
2607         (streamer_read_record_start): Rename from input_record_start.
2608         (streamer_write_bitpack): Rename from lto_output_bitpack.
2609         (streamer_read_bitpack): Rename from lto_input_bitpack.
2610         (streamer_write_char_stream): Rename from lto_output_1_stream.
2611         (streamer_read_uchar): Rename from lto_input_1_unsigned.
2612         * tree-streamer.h (streamer_cache_d): Rename from lto_streamer_cache_d.
2613         (streamer_handle_as_builtin_p): Rename from lto_stream_as_builtin_p.
2614         (streamer_read_string_cst): Rename from input_string_cst.
2615         (streamer_read_chain): Rename from lto_input_chain.
2616         (streamer_alloc_tree): Rename from lto_materialize_tree.
2617         (streamer_read_tree_body): Rename from lto_input_tree_pointers.
2618         (streamer_get_pickled_tree): Rename from lto_get_pickled_tree.
2619         (streamer_get_builtin_tree): Rename from lto_get_builtin_tree.
2620         (streamer_read_integer_cst): Rename from lto_input_integer_cst.
2621         (streamer_read_tree_bitfields): Rename from tree_read_bitfields.
2622         (streamer_write_chain): Rename from lto_output_chain.
2623         (streamer_write_tree_header): Rename from lto_output_tree_header.
2624         (streamer_pack_tree_bitfields): Rename from pack_value_fields.
2625         (streamer_write_tree_body): Rename from lto_output_tree_pointers.
2626         (streamer_write_integer_cst): Rename from lto_output_integer_cst.
2627         (streamer_write_builtin): Rename from lto_output_builtin_tree.
2628         (streamer_check_handled_ts_structures): Rename from
2629         check_handled_ts_structures.
2630         (streamer_tree_cache_insert): Rename from lto_streamer_cache_insert.
2631         (streamer_tree_cache_insert_at): Rename from
2632         lto_streamer_cache_insert_at.
2633         (streamer_tree_cache_append): Rename from lto_streamer_cache_append.
2634         (streamer_tree_cache_lookup): Rename from lto_streamer_cache_lookup.
2635         (streamer_tree_cache_get): Rename from lto_streamer_cache_get.
2636         (streamer_tree_cache_create): Rename from lto_streamer_cache_create.
2637         (streamer_tree_cache_delete): Rename from lto_streamer_cache_delete.
2638         * tree-streamer-out.c (write_string_cst): Rename from output_string_cst.
2639         (write_identifier): Rename from output_identifier.
2640         (write_ts_common_tree_pointers): Rename from
2641         lto_output_ts_common_tree_pointers.
2642         (write_ts_vector_tree_pointers): Rename from
2643         lto_output_ts_vector_tree_pointers.
2644         (write_ts_complex_tree_pointers): Rename from
2645         lto_output_ts_complex_tree_pointers.
2646         (write_ts_decl_minimal_tree_pointers): Rename from
2647         lto_output_ts_decl_minimal_tree_pointers.
2648         (write_ts_decl_common_tree_pointers): Rename from
2649         lto_output_ts_decl_common_tree_pointers.
2650         (write_ts_decl_non_common_tree_pointers): Rename from
2651         lto_output_ts_decl_non_common_tree_pointers.
2652         (write_ts_decl_with_vis_tree_pointers): Rename from
2653         lto_output_ts_decl_with_vis_tree_pointers.
2654         (write_ts_field_decl_tree_pointers): Rename from
2655         lto_output_ts_field_decl_tree_pointers.
2656         (write_ts_function_decl_tree_pointers): Rename from
2657         lto_output_ts_function_decl_tree_pointers.
2658         (write_ts_type_common_tree_pointers): Rename from
2659         lto_output_ts_type_common_tree_pointers.
2660         (write_ts_type_non_common_tree_pointers): Rename from
2661         lto_output_ts_type_non_common_tree_pointers.
2662         (write_ts_list_tree_pointers): Rename from
2663         lto_output_ts_list_tree_pointers.
2664         (write_ts_vec_tree_pointers): Rename from
2665         lto_output_ts_vec_tree_pointers.
2666         (write_ts_exp_tree_pointers): Rename from
2667         lto_output_ts_exp_tree_pointers.
2668         (write_ts_block_tree_pointers): Rename from
2669         lto_output_ts_block_tree_pointers.
2670         (write_ts_binfo_tree_pointers): Rename from
2671         lto_output_ts_binfo_tree_pointers.
2672         (write_ts_constructor_tree_pointers): Rename from
2673         lto_output_ts_constructor_tree_pointers.
2674         (write_ts_target_option): Rename from lto_output_ts_target_option.
2675         (write_ts_translation_unit_decl_tree_pointers): Rename from
2676         lto_output_ts_translation_unit_decl_tree_pointers.
2677         * tree-streamer.c (streamer_tree_cache_add_to_node_array):
2678         Rename from lto_streamer_cache_add_to_node_array.
2679         (streamer_tree_cache_insert_1): Rename from lto_streamer_cache_insert_1.
2680         (record_common_node): Rename from lto_record_common_node.
2681
2682         * streamer-hooks.h (bitpack_d, lto_streamer_cache_d): Remove forward
2683         declarations.
2684         * data-streamer-in.c (lto_input_widest_uint_uleb128): Remove unused
2685         function.
2686         * data-streamer-out.c (lto_output_widest_uint_uleb128_stream): Remove
2687         unused function.
2688         * Makefile.in (lto-section-out.o): Add dependency on DATA_STREAMER_H.
2689         (ipa-reference.o): Likewise.
2690         * lto-section-out.c: Include data-streamer.h.
2691         * ipa-reference.c: Include data-streamer.h.
2692
2693 2011-08-12  Nick Clifton  <nickc@redhat.com>
2694
2695         * builtins.c (expand_builtin_memcmp): Do not use cmpstrnsi pattern.
2696         * doc/md.texi (cmpstrn): Note that the comparison stops if both
2697         fetched bytes are zero.
2698         (cmpstr): Likewise.
2699         (cmpmem): Note that the comparison does not stop if both of the
2700         fetched bytes are zero.
2701
2702 2011-08-12  Uros Bizjak  <ubizjak@gmail.com>
2703
2704         * builtins.def (BUILT_IN_ICEIL{,F,L}, BUILT_IN_IFLOOR{,F,L}
2705         BUILT_IN_IRINT{,F,L}, BUILT_IN_IROUND{,F,L}: New builtin definitions.
2706         * convert.c (convert_to_integer): Convert to BUILT_IN_ICEIL,
2707         BUILT_IN_IFLOOR, BUILT_IN_IRINT or BUILT_INT_IROUND when converting
2708         to integer_type_node.
2709         * fold-const.c (tree_call_nonnegative_warnv_p): Handle BUILT_IN_ICEIL,
2710         BUILT_IN_IFLOOR, BUILT_IN_IRINT and BUILT_INT_IROUND.
2711         * builtins.c (expand_builtin_in): Ditto.
2712         (mathfn_built_in_1): Ditto.
2713         (expand_builtin_int_roundingfn): Handle BUILT_IN_ICEIL and
2714         BUILT_IN_IFLOOR.
2715         (expand_builtin_int_roundingfn_2): Handle BUILT_IN_IRINT and
2716         BUILT_IN_IROUND.
2717         (fold_fixed_mathfn): Canonicalize BUILT_IN_ICEIL, BUILTIN_IN_IFLOOR
2718         BUILT_IN_IRINT and BUILT_IN_IROUND to BUILT_IN_LCEIL,
2719         BUILTIN_IN_LFLOOR, BUILT_IN_LRINT and BUILT_IN_LROUND on ILP32 targets.
2720
2721 2011-08-12  Richard Guenther  <rguenther@suse.de>
2722
2723         * tree-vrp.c (extract_range_from_unary_expr_1): Implement -X as 0 - X.
2724
2725 2011-08-12  Romain Geissler  <romain.geissler@gmail.com>
2726
2727         * Makefile.in (PLUGIN_HEADERS): Add C_TREE_H.
2728
2729 2011-08-12  Richard Sandiford  <rdsandiford@googlemail.com>
2730
2731         * config/arm/arm.c (get_label_padding): New function.
2732         (create_fix_barrier, arm_reorg): Use it.
2733
2734 2011-08-11  Uros Bizjak  <ubizjak@gmail.com>
2735
2736         PR target/49781
2737         * config/i386/i386.md (*lea_5_zext): New.
2738         (*lea_6_zext): Ditto.
2739         * config/i386/predicates.md (const_32bit_mask): New predicate.
2740         (lea_address_operand): Reject AND.
2741         * config/i386/i386.c (ix86_decompose_address): Allow Dimode AND with
2742         const_32bit_mask immediate.
2743         (ix86_print_operand_address): Handle AND.
2744         (memory_address_length): Ditto.
2745
2746 2011-08-11  Romain Geissler  <romain.geissler@gmail.com>
2747             Brian Hackett  <bhackett1024@gmail.com>
2748
2749         * plugin.def: Add event for finish_decl.
2750         * plugin.c (register_callback, invoke_plugin_callbacks): Same.
2751         * c-decl.c (finish_decl): Invoke callbacks on above event.
2752         * doc/plugins.texi: Document above event.
2753
2754 2011-08-11  Richard Guenther  <rguenther@suse.de>
2755
2756         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid redundant
2757         lookups, make looking through aggregate copies stronger.
2758
2759 2011-08-11  Richard Henderson  <rth@redhat.com>
2760
2761         PR bootstrap/50018
2762         * expr.c (fixup_args_size_notes): Accept and ignore normal calls.
2763
2764 2011-08-11  Richard Guenther  <rguenther@suse.de>
2765
2766         * lto-cgraph.c (input_node): Use DECL_BUILT_IN.
2767         * tree-vrp.c (stmt_interesting_for_vrp): Likewise.
2768         (vrp_visit_stmt): Likewise.
2769
2770 2011-08-11  Richard Guenther  <rguenther@suse.de>
2771
2772         PR middle-end/50040
2773         * gimplify.c (gimplify_modify_expr_complex_part): Mark the
2774         load of the other piece with TREE_NO_WARNING.
2775         * tree-flow.h (warn_uninit): Adjust prototype.
2776         * tree-ssa.c (warn_uninit): Take uninitialized SSA name,
2777         the base variable and the expression that is used separately.
2778         Properly query all TREE_NO_WARNING flags.
2779         (struct walk_data): Remove.
2780         (warn_uninitialized_var): Likewise.
2781         (warn_uninitialized_vars): Do not walk gimple pieces but simply
2782         look at all SSA uses of the statement.  Handle unused memory
2783         separately.
2784         * tree-ssa-uninit.c (warn_uninitialized_phi): Adjust.
2785
2786 2011-08-11   Kazuhiro Inaoka  <kazuhiro.inaoka.ud@renesas.com>
2787
2788         * config/rx/rx.md (movsicc): Allow register to register transfers.
2789         (*movsicc): Likewise.
2790         (*stcc): Restrict this pattern to EQ and NE compares.
2791         (*stcc_reg): New pattern.  Works for any comparison but only for
2792         register transfers.
2793
2794 2011-08-11   Diego Novillo  <dnovillo@google.com>
2795
2796         * tree-streamer-out.c (lto_output_ts_decl_with_vis_tree_pointers):
2797         Call stream_write_tree instead of output_record_start.
2798         (lto_output_ts_binfo_tree_pointers): Likewise.
2799
2800         * streamer-hooks.h (stream_write_tree): Move from tree-streamer.h.
2801         Convert it to a macro.
2802         (stream_read_tree): Likewise.
2803
2804         * lto-streamer.h (lto_stream_as_builtin_p): Move ...
2805         * tree-streamer.h (lto_stream_as_builtin_p): ... here.
2806
2807         * lto-streamer-in.c (lto_read_tree): Call lto_streamer_cache_append
2808         and tree_read_bitfields.
2809         * lto-streamer-out.c (lto_is_streamable): Move from lto-streamer.c
2810         (lto_write_tree): Call it.
2811         * lto-streamer.c (lto_is_streamable): Move to lto-streamer-out.c
2812         * streamer-hooks.h (struct streamer_hooks): Remove fields
2813         name, is_streamable and alloc_tree. Update all users.
2814         * tree-streamer-in.c (tree_read_bitfields): Factor out of ...
2815         (lto_materialize_tree): ... here.
2816         Handle CALL_EXPR codes.
2817         Remove call to lto_streamer_cache_append.
2818         * tree-streamer-out.c (lto_output_tree_header): Handle CALL_EXPR nodes.
2819         * tree-streamer.h (tree_read_bitfields): Declare.
2820
2821         * Makefile.in (TREE_STREAMER_H): Add STREAMER_HOOKS_H.
2822         (gimple-streamer-in.o): Add dependency on TREE_STREAMER_H.
2823         * tree-streamer.h (stream_read_tree): New.  Replace all calls
2824         to lto_input_tree with it.
2825         (stream_write_tree): New.  Replace all calls to lto_output_tree,
2826         lto_output_tree_ref and lto_output_tree_or_ref with it.
2827         * lto-streamer-in.c (lto_read_tree): Inline code from
2828         lto_streamer_read_tree.
2829         (lto_input_tree): Move from tree-streamer-in.c.
2830         * lto-streamer-out.c (lto_output_tree_ref): Make static.
2831         Remove handling of NULL values for EXPR.
2832         Do not handle EXPRs that are not indexable.
2833         (lto_write_tree): Move from tree-streamer-out.c.
2834         Inline lto_streamer_write_tree.
2835         (lto_output_tree): Move from tree-streamer-out.c.
2836         If REF_P is true and EXPR is indexable, call lto_output_tree_ref.
2837         * lto-streamer.c (lto_record_common_node): Move to tree-streamer.c.
2838         (lto_preload_common_nodes): Likewise.
2839         Remove assertions and adjustments for nodes
2840         main_identifier_node, ptrdiff_type_node and fileptr_type_node.
2841         (lto_streamer_hooks_init): Set streamer_hooks.write_tree to
2842         lto_output_tree and streamer_hooks.read_tree to lto_input_tree.
2843         * lto-streamer.h (lto_input_tree): Declare.
2844         (lto_output_tree_ref): Remove.
2845         * streamer-hooks.h (struct streamer_hooks): Remove fields
2846         preload_common_nodes, indexable_with_decls_p,
2847         pack_value_fields, unpack_value_fields and output_tree_header.
2848         Update all users.
2849         * tree-streamer-in.c (lto_materialize_tree): Make extern.
2850         (lto_input_tree_pointers): Likewise.
2851         (lto_read_tree): Move to lto-streamer-in.c.
2852         (lto_input_integer_cst): Make extern.
2853         (lto_get_pickled_tree): Likewise.
2854         (lto_get_builtin_tree): Likewise.
2855         (lto_input_tree): Move to lto-streamer-in.c.
2856         * tree-streamer-out.c (pack_value_fields): Make extern.
2857         (lto_output_tree_or_ref): Remove.  Replace all callers with
2858         calls to stream_write_tree.
2859         (lto_output_builtin_tree): Make extern.
2860         (lto_streamer_write_tree): Inline into lto_write_tree.
2861         (lto_output_tree_pointers): Make extern.
2862         (lto_output_tree_header): Likewise.
2863         (lto_output_integer_cst): Likewise.
2864         (lto_write_tree): Move to lto-streamer-out.c.
2865         (lto_output_tree): Likewise.
2866         * tree-streamer.c (lto_record_common_node): Move from lto-streamer.c
2867         (preload_common_nodes): Likewise.
2868         (lto_streamer_cache_create): Call it.
2869         * tree-streamer.h: Include streamer-hooks.h.
2870         (stream_write_tree): New.
2871         (stream_read_tree): New.
2872         (lto_input_tree): Remove.
2873         (lto_materialize_tree): Declare.
2874         (lto_input_tree_pointers): Declare.
2875         (lto_get_pickled_tree): Declare.
2876         (lto_get_builtin_tree): Declare.
2877         (lto_input_integer_cst): Declare.
2878         (lto_output_tree_header): Declare.
2879         (pack_value_fields): Declare.
2880         (lto_output_tree_pointers): Declare.
2881         (lto_output_integer_cst): Declare.
2882         (lto_output_builtin_tree): Declare.
2883
2884 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2885
2886         * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
2887         only if producer writes to the register given by regno.
2888
2889 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2890             Alexander Monakov  <amonakov@ispras.ru>
2891
2892         * sched-deps.c (sched_get_condition_with_rev): Rename to ...
2893         (sched_get_condition_with_rev_uncached): ... this.  Factor out
2894         condition caching logic into ...
2895         (sched_get_condition_with_rev): ... this.  Reimplement.  Do not
2896         attempt to use cache for instructions with zero luid.
2897         (sched_analyze_insn): Use INSN_CACHED_COND instead of INSN_COND.
2898         * sched-int.h (INSN_COND): Rename to INSN_CACHED_COND.
2899
2900 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2901
2902         * sel-sched-ir.c (get_seqno_of_a_pred): Rename to
2903         get_seqno_for_a_jump.  Update the caller.
2904         (get_seqno_by_succs): New.  Use it ...
2905         (get_seqno_for_a_jump): ... here to find a seqno if looking at
2906         predecessors was not sufficient.
2907         (get_seqno_by_preds): Include head in iteration range, exclude insn.
2908
2909 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
2910
2911         * sel-sched-ir.c (invalidate_av_set): Remove the assert.
2912
2913 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2914
2915         * sel-sched-ir.h (register_unavailable_p): Declare.
2916         * sel-sched-ir.c (register_unavailable_p): New.  Use it...
2917         (set_unavailable_target_for_expr): ... here to properly test
2918         availability of a register.
2919         (speculate_expr): Ditto.
2920         * sel-sched.c (substitute_reg_in_expr): Ditto.
2921         (av_set_could_be_blocked_by_bookkeeping_p): Ditto.
2922
2923 2011-08-11  Sergey Grechanik  <mouseentity@ispras.ru>
2924
2925         * sel-sched.c (verify_target_availability): Fix usage of
2926         hard_regno_nregs.
2927
2928 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
2929
2930         * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of
2931         recognized by cannot_copy_insn_p hook and volatile instructions.
2932
2933 2011-08-11  Dmitry Melnik  <dm@ispras.ru>
2934
2935         * sel-sched-ir.c (merge_expr_data): Take maximum spec.
2936
2937 2011-08-11  Richard Sandiford  <richard.sandiford@linaro.org>
2938
2939         * doc/md.texi (define_bypass): Say that the instruction names can
2940         be filename-style globs.
2941         * Makefile.in (FNMATCH_H): Define.
2942         (build/genattrtab.o, build/genautomata.o): Depend on $(FNMATCH_H).
2943         * genattrtab.c: Include fnmatch.h.
2944         (bypass_list): Change field name from "insn" to "pattern".
2945         (gen_bypass_1): Update accordingly.
2946         (process_bypasses): Use fnmatch to check for matches between
2947         insn reservations and define_bypasses.
2948         * genautomata.c: Include fnmatch.h.
2949         (bypass_decl): Rename in_insn_name and out_insn_name to in_pattern
2950         and out_pattern respectively.
2951         (gen_bypass, insert_bypass): Update accordingly.
2952         (for_each_matching_insn, process_bypass_2, process_bypass_1)
2953         (process_bypass): New functions.
2954         (process_decls): Use process_bypass.  Update after field name changes.
2955
2956 2011-08-11  Georg-Johann Lay  <avr@gjlay.de>
2957
2958         PR target/49687
2959         * config/avr/avr.md (smulqi3_highpart): New insn.
2960         (umulqi3_highpart): New insn.
2961         (*subqi3.ashiftrt7): New insn.
2962         (smulhi3_highpart): New expander.
2963         (umulhi3_highpart): Nex expander.
2964         (*smulhi3_highpart_call): New insn.
2965         (*umulhi3_highpart_call): New insn.
2966         (extend_u): New code attribute.
2967         (extend_prefix): Rename code attribute to extend_su.
2968         * config/avr/avr.c (avr_rtx_costs): Report costs of highpart of
2969         widening QI/HI multiply.
2970
2971 2011-08-11  Ira Rosen  <ira.rosen@linaro.org>
2972
2973         PR tree-optimization/50039
2974         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Check
2975         that DEF_STMT has a stmt_vec_info.
2976
2977 2011-08-10  Richard Guenther  <rguenther@suse.de>
2978
2979         * tree.h (can_trust_pointer_alignment): Remove.
2980         * builtins.c (can_trust_pointer_alignment): Remove.
2981
2982 2011-08-10  Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
2983
2984         * c-typeck.c (scalar_to_vector): New function. Try scalar to
2985         vector conversion.
2986         (stv_conv): New enum for scalar_to_vector return type.
2987         (build_binary_op): Adjust.
2988         * doc/extend.texi: Description of scalar to vector expansion.
2989
2990 2011-08-10  Richard Guenther  <rguenther@suse.de>
2991
2992         * tree.h (get_pointer_alignment): Remove max-align argument.
2993         (get_object_alignment): Likewise.
2994         * builtins.c (get_object_alignment_1): Adjust.
2995         (get_object_alignment): Remove max-align argument.
2996         (get_pointer_alignment): Likewise.
2997         (expand_builtin_strlen): Adjust.
2998         (expand_builtin_memcpy): Likewise.
2999         (expand_builtin_mempcpy_args): Likewise.
3000         (expand_builtin_strncpy): Likewise.
3001         (expand_builtin_memset_args): Likewise.
3002         (expand_builtin_memcmp): Likewise.
3003         (expand_builtin_strcmp): Likewise.
3004         (expand_builtin_strncmp): Likewise.
3005         (get_builtin_sync_mem): Likewise.
3006         (fold_builtin_memset): Likewise.
3007         (fold_builtin_memory_op): Likewise.
3008         (expand_builtin_memory_chk): Likewise.
3009         * emit-rtl.c (get_mem_align_offset): Likewise.
3010         (set_mem_attributes_minus_bitpos): Likewise.
3011         * expr.c (expand_assignment): Likewise.
3012         (expand_expr_real_1): Likewise.
3013         * tree-sra.c (tree_non_mode_aligned_mem_p): Likewise.
3014         * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
3015         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Likewise.
3016         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
3017         * value-prof.c (gimple_stringops_transform): Likewise.
3018
3019 2011-08-10  Paulo J. Matos  <paulo.matos@csr.com>
3020
3021         * doc/tm.texi.in (CLASS_MAX_NREGS): Fix typo.
3022         * doc/tm.texi: Regenerate.
3023
3024 2011-08-10  Georg-Johann Lay  <avr@gjlay.de>
3025
3026         PR target/29560
3027         * config/avr/avr.md (*ashlhiqi3): New insn-and-split.
3028         (*ashl<extend_prefix>qihiqi3): New insn-and-splits.
3029         (*ashl<extend_prefix>qihiqi3.mem): New insn-and-splits.
3030         Add peephole2 to map ashlhi3 to ashlqi3 if high part of
3031         shift target is unused.
3032
3033 2011-08-10  Richard Guenther  <rguenther@suse.de>
3034
3035         PR tree-optimization/49937
3036         * tree-ssa-ccp.c (get_value_from_alignment): Re-implement
3037         using get_object_alignment_1.
3038
3039 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
3040
3041         * config/i386/i386.c (ix86_emit_i387_round): New function.
3042         * config/i386/i386-protos.h (ix86_emit_i387_round): Declare.
3043         * config/i386/i386.md (round<mode>2): Use X87MODEF mode iterator.
3044         Use ix86_emit_i387_round to expand round function for i387 math.
3045         (lround<X87MODEF:mode><SWI248x:mode>2): Use X87MODEF mode iterator.
3046         Use ix86_emit_i387_round to expand {l,ll}round function for i387 math.
3047
3048 2011-08-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3049
3050         * config/sync.c: Move to ../libgcc.
3051         * Makefile.in (libgcc.mvars): Remove LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS.
3052         * config/mips/t-libgcc-mips16 (LIBGCC_SYNC, LIBGCC_SYNC_CFLAGS):
3053         Remove.
3054
3055 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
3056
3057         * config/mmix/mmix.h (REGISTER_MOVE_COST): Remove macro.
3058         * config/mmix/mmix-protos.h (mmix_register_move_cost): Remove.
3059         * config/mmix/mmix.c (mmix_register_move_cost): Make static.
3060         Change 'from' and 'to' arguments type to reg_class_t.
3061         (TARGET_REGISTER_MOVE_COST): Define.
3062
3063 2011-08-09  Vladimir Makarov  <vmakarov@redhat.com>
3064
3065         PR target/50026
3066         Revert:
3067         PR rtl-optimization/49990
3068         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
3069         ignore classes which can not change mode.
3070         (find_costs_and_classes): Ditto.
3071
3072 2011-08-09  Richard Guenther  <rguenther@suse.de>
3073
3074         * tree-vrp.c (zero_nonzero_bits_from_vr): Also return precise
3075         information for ranges with only negative values.
3076         (extract_range_from_binary_expr_1): Adjust BIT_IOR_EXPR and
3077         BIT_AND_EXPR handling to handle ranges with negative values.
3078
3079 2011-08-09  Kirill Yukhin  <kirill.yukhin@intel.com>
3080
3081         * config/i386/i386.c: Remove traling spaces.
3082         * config/i386/sse.md: Likewise.
3083         (*fma_fmadd_<mode>): Fix insn alternative 1 mnemonic.
3084         (*fma_fmsub_<mode>): Likewise.
3085         (*fma_fnmadd_<mode>): Likewise.
3086         (*fma_fnmsub_<mode>): Likewise.
3087
3088 2011-08-09  Nick Clifton  <nickc@redhat.com>
3089
3090         * config/rx/rx.md: Disable extender peepholes at -O3.
3091
3092 2011-08-09  Uros Bizjak  <ubizjak@gmail.com>
3093
3094         PR target/49781
3095         * config/i386/i386.md (reload_noff_load): New.
3096         (reload_noff_store): Ditto.
3097         * config/i386/i386.c (ix86_secondary_reload): Use
3098         CODE_FOR_reload_noff_load and CODE_FOR_reload_noff_store to handle
3099         double-word moves from/to non-offsetable addresses instead of
3100         generating XMM temporary.
3101
3102 2011-08-09  Anatoly Sokolov  <aesok@post.ru>
3103
3104         * config/mmix/mmix.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
3105
3106 2011-08-09  Ira Rosen  <ira.rosen@linaro.org>
3107
3108         PR tree-optimization/50014
3109         * tree-vect-loop.c (vectorizable_reduction): Get def type before
3110         calling vect_get_vec_def_for_stmt_copy ().
3111
3112 2011-08-08  Vladimir Makarov  <vmakarov@redhat.com>
3113
3114         PR rtl-optimization/49990
3115         * ira-costs.c (print_allocno_costs, print_pseudo_costs): Don't
3116         ignore classes which can not change mode.
3117         (find_costs_and_classes): Ditto.
3118
3119 2011-08-08  Richard Henderson  <rth@redhat.com>
3120
3121         PR middle-end/49990
3122         * config/i386/i386.c (ix86_expand_prologue): Call
3123         for SEH target gen_prologue_use instead of gen_blockage
3124         at prologue's end.
3125
3126 2011-08-08  Martin Jambor  <mjambor@suse.cz>
3127
3128         PR middle-end/49923
3129         * tree-sra.c (access_precludes_ipa_sra_p): Also check access
3130         memory alignment.
3131
3132 2011-08-08   Diego Novillo  <dnovillo@google.com>
3133
3134         * Makefile.in (LTO_STREAMER_H): Add DIAGNOSTIC_H.
3135         (DATA_STREAMER_H): New.
3136         (GIMPLE_STREAMER_H): New.
3137         (TREE_STREAMER_H): New.
3138         (STREAMER_HOOKS_H): New.
3139         (OBJS): Add data-streamer.o, data-streamer-in.o, data-streamer-out.o,
3140         gimple-streamer-in.o, gimple-streamer-out.o, streamer-hooks.o,
3141         tree-streamer.o, tree-streamer-in.o and tree-streamer-out.o.
3142         (data-streamer.o): New.
3143         (data-streamer-in.o): New.
3144         (data-streamer-out.o): New.
3145         (gimple-streamer-in.o): New.
3146         (gimple-streamer-out.o): New.
3147         (streamer-hooks.o): New.
3148         (tree-streamer.o): New.
3149         (tree-streamer-in.o): New.
3150         (tree-streamer-out.o): New.
3151         (lto-cgraph.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
3152         (lto-streamer-in.o): Add dependency on DATA_STREAMER_H,
3153         GIMPLE_STREAMER_H and TREE_STREAMER_H.
3154         (lto-streamer-out.o): Add dependency on DATA_STREAMER_H,
3155         GIMPLE_STREAMER_H and TREE_STREAMER_H.
3156         (lto-streamer.o): Add dependency on STREAMER_HOOKS_H.
3157         (ipa-prop.o): Add dependency on DATA_STREAMER_H and TREE_STREAMER_H.
3158         (ipa-inline-analysis.o): Likewise.
3159         (ipa-pure-const.o): Likewise.
3160         * data-streamer-in.c: New.
3161         * data-streamer-out.c: New.
3162         * data-streamer.c: New.
3163         * data-streamer.h: New.
3164         * gimple-streamer-in.c: New.
3165         * gimple-streamer-out.c: New.
3166         * gimple-streamer.h: New.
3167         * ipa-inline-analysis.c: Include data-streamer.h.
3168         * ipa-prop.c: Include data-streamer.h.
3169         * ipa-pure-const.c: Include data-streamer.h.
3170         * lto-cgraph.c: Include data-streamer.h.
3171         * lto-section-in.c (lto_input_uleb128): Move to data-streamer-in.c.
3172         (lto_input_widest_uint_uleb128): Likewise.
3173         (lto_input_sleb128): Likewise.
3174         (bp_unpack_var_len_unsigned): Likewise.
3175         (bp_unpack_var_len_int): Likewise.
3176         * lto-section-out.c (lto_output_uleb128_stream): Move to
3177         data-streamer-out.c.
3178         (lto_output_widest_uint_uleb128_stream): Likewise.
3179         (lto_output_sleb128_stream): Likewise.
3180         (bp_pack_var_len_unsigned): Likewise.
3181         (bp_pack_var_len_int): Likewise.
3182         * lto-streamer-in.c: Include data-streamer.h and gimple-streamer.h.
3183         (struct string_slot): Remove.  Update all users.
3184         (lto_tag_check_set): Make extern.
3185         (lto_tag_check_range): Move to lto-streamer.h.
3186         (lto_tag_check): Likewise.
3187         (hash_string_slot_node): Remove.  Update all users.
3188         (eq_string_slot_node): Remove.  Update all users.
3189         (string_for_index): Move to data-streamer-in.c
3190         (input_string_internal): Likewise.
3191         (input_string_cst): Move to tree-streamer-in.c.
3192         (input_identifier): Likewise.
3193         (lto_input_string): Move to data-streamer-in.c
3194         (input_record_start): Move to data-streamer.h
3195         (canon_file_name): Use new definition of struct string_slot
3196         from data-streamer.h.  Set S_SLOT.LEN.
3197         (lto_input_location): Make extern.
3198         (lto_input_chain): Move to tree-streamer-in.c.
3199         (lto_init_eh): Make extern.
3200         (input_phi): Move to gimple-streamer-in.c.
3201         (input_gimple_stmt): Likewise.
3202         (input_bb): Likewise.
3203         (unpack_ts_base_value_fields): Move to tree-streamer-in.c.
3204         (unpack_ts_real_cst_value_fields): Likewise.
3205         (unpack_ts_fixed_cst_value_fields): Likewise.
3206         (unpack_ts_decl_common_value_fields): Likewise.
3207         (unpack_ts_decl_wrtl_value_fields): Likewise.
3208         (unpack_ts_decl_with_vis_value_fields): Likewise.
3209         (unpack_ts_function_decl_value_fields): Likewise.
3210         (unpack_ts_type_common_value_fields): Likewise.
3211         (unpack_ts_block_value_fields): Likewise.
3212         (unpack_ts_translation_unit_decl_value_fields): Likewise.
3213         (unpack_value_fields): Likewise.
3214         (lto_materialize_tree): Likewise.
3215         (lto_input_ts_common_tree_pointers): Likewise.
3216         (lto_input_ts_vector_tree_pointers): Likewise.
3217         (lto_input_ts_complex_tree_pointers): Likewise.
3218         (lto_input_ts_decl_minimal_tree_pointers): Likewise.
3219         (lto_input_ts_decl_common_tree_pointers): Likewise.
3220         (lto_input_ts_decl_non_common_tree_pointers): Likewise.
3221         (lto_input_ts_decl_with_vis_tree_pointers): Likewise.
3222         (lto_input_ts_field_decl_tree_pointers): Likewise.
3223         (lto_input_ts_function_decl_tree_pointers): Likewise.
3224         (lto_input_ts_type_common_tree_pointers): Likewise.
3225         (lto_input_ts_type_non_common_tree_pointers): Likewise.
3226         (lto_input_ts_list_tree_pointers): Likewise.
3227         (lto_input_ts_vec_tree_pointers): Likewise.
3228         (lto_input_ts_exp_tree_pointers): Likewise.
3229         (lto_input_ts_block_tree_pointers): Likewise.
3230         (lto_input_ts_binfo_tree_pointers): Likewise.
3231         (lto_input_ts_constructor_tree_pointers): Likewise.
3232         (lto_input_ts_target_option): Likewise.
3233         (lto_input_ts_translation_unit_decl_tree_pointers): Likewise.
3234         (lto_input_tree_pointers): Likewise.
3235         (lto_get_pickled_tree): Likewise.
3236         (lto_get_builtin_tree): Likewise.
3237         (lto_read_tree): Likewise.
3238         (lto_input_integer_cst): Likewise.
3239         (lto_input_tree): Likewise.
3240         * lto-streamer-out.c: Include data-streamer.h,
3241         gimple-streamer.h and streamer-hooks.h.
3242         (struct string_slot): Move to data-streamer.h.
3243         (hash_string_slot_node): Likewise.
3244         (eq_string_slot_node): Likewise.
3245         (lto_string_index): Move to data-streamer-out.c.
3246         (lto_output_string_with_length): Likewise.
3247         (lto_output_string): Likewise.
3248         (output_string_cst): Move to tree-streamer-out.c.
3249         (output_identifier): Likewise.
3250         (output_zero): Move to data-streamer-out.c
3251         (output_uleb128): Likewise.
3252         (output_sleb128): Likewise.
3253         (output_record_start): Move to data-streamer.h
3254         (pack_ts_base_value_fields): Move to tree-streamer-out.c.
3255         (pack_ts_real_cst_value_fields): Likewise.
3256         (pack_ts_fixed_cst_value_fields): Likewise.
3257         (pack_ts_decl_common_value_fields): Likewise.
3258         (pack_ts_decl_wrtl_value_fields): Likewise.
3259         (pack_ts_decl_with_vis_value_fields): Likewise.
3260         (pack_ts_function_decl_value_fields): Likewise.
3261         (pack_ts_type_common_value_fields): Likewise.
3262         (pack_ts_block_value_fields): Likewise.
3263         (pack_ts_translation_unit_decl_value_fields): Likewise.
3264         (pack_value_fields): Likewise.
3265         (lto_output_chain): Likewise.
3266         (lto_output_ts_common_tree_pointers): Likewise.
3267         (lto_output_ts_vector_tree_pointers): Likewise.
3268         (lto_output_ts_complex_tree_pointers): Likewise.
3269         (lto_output_ts_decl_minimal_tree_pointers): Likewise.
3270         (lto_output_ts_decl_common_tree_pointers): Likewise.
3271         (lto_output_ts_decl_non_common_tree_pointers): Likewise.
3272         (lto_output_ts_decl_with_vis_tree_pointers): Likewise.
3273         (lto_output_ts_field_decl_tree_pointers): Likewise.
3274         (lto_output_ts_function_decl_tree_pointers): Likewise.
3275         (lto_output_ts_type_common_tree_pointers): Likewise.
3276         (lto_output_ts_type_non_common_tree_pointers): Likewise.
3277         (lto_output_ts_list_tree_pointers): Likewise.
3278         (lto_output_ts_vec_tree_pointers): Likewise.
3279         (lto_output_ts_exp_tree_pointers): Likewise.
3280         (lto_output_ts_block_tree_pointers): Likewise.
3281         (lto_output_ts_binfo_tree_pointers): Likewise.
3282         (lto_output_ts_constructor_tree_pointers): Likewise.
3283         (lto_output_ts_target_option): Likewise.
3284         (lto_output_ts_translation_unit_decl_tree_pointers): Likewise.
3285         (lto_output_tree_pointers): Likewise.
3286         (lto_output_tree_header): Likewise.
3287         (lto_output_builtin_tree): Likewise.
3288         (lto_write_tree): Likewise.
3289         (lto_output_integer_cst): Likewise.
3290         (lto_output_tree): Likewise.
3291         (output_phi): Move to gimple-streamer-out.c.
3292         (output_gimple_stmt): Likewise.
3293         (output_bb): Likewise.
3294         * lto-streamer.c: Include tree-streamer.h and streamer-hooks.h.
3295         (streamer_hooks): Move to streamer-hooks.c.
3296         (check_handled_ts_structures): Move to tree-streamer.c
3297         (lto_streamer_cache_add_to_node_array): Likewise.
3298         (lto_streamer_cache_insert_1): Likewise.
3299         (lto_streamer_cache_insert): Likewise.
3300         (lto_streamer_cache_insert_at): Likewise.
3301         (lto_streamer_cache_append): Likewise.
3302         (lto_streamer_cache_lookup): Likewise.
3303         (lto_streamer_cache_get): Likewise.
3304         (lto_record_common_node): Likewise.
3305         (lto_preload_common_nodes): Likewise.
3306         (lto_streamer_cache_create): Likewise.
3307         (lto_streamer_cache_delete): Likewise.
3308         (streamer_hooks_init): Move to streamer-hooks.c.
3309         * lto-streamer.h: Include diagnostic.h
3310         (struct output_block, struct lto_input_block,
3311         struct data_in, struct bitpack_d): Remove forward declarations.
3312         (struct bitpack_d): Move to data-streamer.h.
3313         (struct lto_streamer_cache_d): Move to tree-streamer.h.
3314         (struct streamer_hooks): Move to streamer-hooks.h.
3315         (bp_pack_var_len_unsigned): Move to data-streamer.h.
3316         (bp_pack_var_len_int): Likewise.
3317         (bp_unpack_var_len_unsigned): Likewise.
3318         (bp_unpack_var_len_int): Likewise.
3319         (lto_input_location): Declare.
3320         (lto_tag_check_set): Declare.
3321         (lto_init_eh): Declare.
3322         (lto_output_tree_ref): Declare.
3323         (lto_output_location): Declare.
3324         (bitpack_create): Move to data-streamer.h.
3325         (bp_pack_value): Likewise.
3326         (lto_output_bitpack): Likewise.
3327         (lto_input_bitpack): Likewise.
3328         (bp_unpack_value): Likewise.
3329         (lto_output_1_stream): Likewise.
3330         (lto_input_1_unsigned): Likewise.
3331         (lto_output_int_in_range): Likewise.
3332         (lto_input_int_in_range): Likewise.
3333         (bp_pack_int_in_range): Likewise.
3334         (bp_unpack_int_in_range): Likewise.
3335         (lto_output_enum): Likewise.
3336         (lto_input_enum): Likewise.
3337         (bp_pack_enum): Likewise.
3338         (bp_unpack_enum): Likewise.
3339         * streamer-hooks.c: New.
3340         * streamer-hooks.h: New.
3341         * tree-streamer-in.c: New.
3342         * tree-streamer-out.c: New.
3343         * tree-streamer.c: New.
3344         * tree-streamer.h: New.
3345
3346 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3347
3348         * gthr-posix95.h: Remove.
3349         * gthr.h [_PTHREADS95]: Remove.
3350         * configure.ac (enable_threads): Remove posix95.
3351         * configure: Regenerate.
3352         * doc/install.texi (Configuration, --enable-threads): Remove posix95.
3353
3354 2011-08-08  Uros Bizjak  <ubizjak@gmail.com>
3355
3356         PR target/49781
3357         * config/i386/i386.c (ix86_decompose_address): Allow zero-extended
3358         SImode addresses.
3359         (ix86_print_operand_address): Handle zero-extended addresses.
3360         (memory_address_length): Add length of addr32 prefix for
3361         zero-extended addresses.
3362         (ix86_secondary_reload): Handle moves to/from double-word general
3363         registers from/to zero-extended addresses.
3364         * config/i386/predicates.md (lea_address_operand): Reject
3365         zero-extended operands.
3366
3367 2011-08-08  H.J. Lu  <hongjiu.lu@intel.com>
3368
3369         PR other/48007
3370         * config.gcc (libgcc_tm_file): Add i386/value-unwind.h for Linux/x86.
3371
3372         * system.h (REG_VALUE_IN_UNWIND_CONTEXT): Poisoned.
3373         (ASSUME_EXTENDED_UNWIND_CONTEXT): Likewise.
3374
3375         * unwind-dw2.c (ASSUME_EXTENDED_UNWIND_CONTEXT): New.
3376         (_Unwind_Context_Reg_Val): Likewise.
3377         (_Unwind_Get_Unwind_Word): Likewise.
3378         (_Unwind_Get_Unwind_Context_Reg_Val): Likewise.
3379         (_Unwind_Context): Use _Unwind_Context_Reg_Val on the reg field.
3380         (_Unwind_IsExtendedContext): Check ASSUME_EXTENDED_UNWIND_CONTEXT
3381         for EXTENDED_CONTEXT_BIT.
3382         (__frame_state_for): Likewise.
3383         (uw_init_context_1): Likewise.
3384         (_Unwind_GetGR): Updated.
3385         (_Unwind_SetGR): Likewise.
3386         (_Unwind_GetGRPtr): Likewise.
3387         (_Unwind_SetGRPtr): Likewise.
3388         (_Unwind_SetGRValue): Likewise.
3389         (_Unwind_GRByValue): Likewise.
3390         (uw_install_context_1): Likewise.
3391
3392         * doc/tm.texi.in: Document REG_VALUE_IN_UNWIND_CONTEXT and
3393         ASSUME_EXTENDED_UNWIND_CONTEXT.
3394         * doc/tm.texi: Regenerated.
3395
3396 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3397
3398         * Makefile.in (gengtype$(exeext)): Add $(LDFLAGS).
3399
3400 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3401
3402         * doc/invoke.texi (DEC Alpha Options, -mcpu): native support isn't
3403         Linux/GNU-specific.
3404         (DEC Alpha Options, -mtune): Likewise.
3405         (MIPS Options, -march): native is supported on IRIX.
3406
3407 2011-08-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3408
3409         * config/sparc/driver-sparc.c: New file.
3410         * config/sparc/x-sparc: New file.
3411         * config.host: Use driver-sparc.o, sparc/x-sparc on sparc*-*-solaris2*.
3412         * config/sparc/sparc.opt (native): New value for enum processor_type.
3413         * config/sparc/sparc-opts.h (PROCESSOR_NATIVE): Declare.
3414         * config/sparc/sparc.c (sparc_option_override): Abort if
3415         PROCESSOR_NATIVE gets here.
3416         * config/sparc/sol2.h [__sparc__] (host_detect_local_cpu): Declare.
3417         (EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS,
3418         DRIVER_SELF_SPECS): Define.
3419         * doc/invoke.texi (SPARC Options, -mcpu): Document native.
3420         (SPARC Options, -mtune): Likewise.
3421         * configure.ac (EXTRA_GCC_LIBS): Check for libkstat.
3422         Substitute result.
3423         * configure: Regenerate.
3424         * Makefile.in (EXTRA_GCC_LIBS): Set.
3425         (xgcc$(exeext)): Add $(EXTRA_GCC_LIBS).
3426         (cpp$(exeext)): Likewise.
3427
3428 2011-08-08  Richard Guenther  <rguenther@suse.de>
3429
3430         * tree-vrp.c (extract_range_from_unary_expr_1): New function,
3431         split out from ...
3432         (extract_range_from_unary_expr): ... here.  Handle BIT_NOT_EXPR
3433         by composition.
3434
3435 2011-08-08  Mikael Pettersson  <mikpe@it.uu.se>
3436
3437         PR tree-optimization/50005
3438         * ipa-inline-analysis (remap_predicate): Add cast to
3439         silence signed/unsigned comparison warning.
3440
3441 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
3442
3443         * modulo-sched.c (get_sched_window): Use a table for the debug output.
3444         Print the current ii.
3445         (sms_schedule_by_order): Reduce whitespace in dump line.
3446
3447 2011-08-08  Richard Sandiford  <richard.sandiford@linaro.org>
3448
3449         * modulo-sched.c (get_sched_window): Use just one loop for predecessors
3450         and one loop for successors.  Fix upper bound of memory range.
3451
3452 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
3453
3454         PR target/50001
3455         * config/alpha/alpha.c (alpha_instantiate_decls): New function.
3456         (TARGET_INSTANTIATE_DECLS): New define.
3457
3458 2011-08-06  Paolo Bonzini  <bonzini@gnu.org>
3459             Mikael Morin   <mikael.morin@sfr.fr>
3460
3461         * Makefile.in (INCLUDES_FOR_TARGET): New.
3462         (LIBGCC2_CFLAGS): Use it.
3463         (CRTSTUFF_CFLAGS): Use it instead of INCLUDES.
3464
3465 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
3466
3467         * config/i386/i386.c (ix86_compute_frame_layout): Simplify
3468         frame->save_regs_using_mov calculation.
3469
3470 2011-08-06  Uros Bizjak  <ubizjak@gmail.com>
3471
3472         * config/i386/i386.md (ssemodesuffix): Remove V8SI mode.
3473         * config/i386/sse.md (castmode): New mode attribute.
3474         (avx_<castmode><avxsizesuffix>_<castmode>): Rename from
3475         avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>.
3476
3477 2011-08-05  Jan Hubicka  <jh@suse.cz>
3478
3479         PR middle-end/49494
3480         * ipa-inline-analysis.c (remap_predicate): Add bounds check.
3481
3482 2011-08-05  Jan Hubicka  <jh@suse.cz>
3483
3484         PR middle-end/49500
3485         * tree-emultls.c (new_emutls_decl):Add alias_of parameter;
3486         handle aliases.
3487         (create_emultls_var):New function.
3488         (ipa_lower_emutls): Handle aliases correctly.
3489
3490 2011-08-05  Jan Hubicka  <jh@suse.cz>
3491
3492         PR middle-end/49735
3493         * ipa-inline.c (recursive_inlining): Look through aliases.
3494
3495 2011-08-05  Jason Merrill  <jason@redhat.com>
3496
3497         * config/i386/i386.c (setup_incoming_varargs_ms_64): Move
3498         declarations to beginning of function.
3499
3500 2011-08-05  Bernd Schmidt  <bernds@codesourcery.com>
3501
3502         PR rtl-optimization/49900
3503         * sched-ebb.c (add_deps_for_risky_insns): Also add dependencies to
3504         ensure basic blocks stay in the same order.
3505
3506 2011-08-05  Aldy Hernandez  <aldyh@redhat.com>
3507
3508         * config/s390/s390.c (s390_expand_cs_hqi): Add new arguments to
3509         store_bit_field.
3510         (s390_expand_atomic): Same.
3511
3512 2011-08-05  Richard Henderson  <rth@redhat.com>
3513
3514         PR rtl-opt/49977
3515         * dwarf2cfi.c (scan_insn_after): Split out of ...
3516         (scan_trace): ... here.  Correctly place notes wrt sequences.
3517
3518 2011-08-05  Kaz Kojima  <kkojima@gcc.gnu.org>
3519             Richard Henderson  <rth@redhat.com>
3520
3521         PR rtl-opt/49982
3522         * expr.c (fixup_args_size_notes): Look through no-op moves.
3523
3524 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
3525
3526         * config/i386/i386.md (*push<mode>2): Use "o" constraint instead
3527         of "m" for operand 0.  Add type and mode attribute.
3528         (*pushxf_nointeger"): Use "<" constraint for operand 0.
3529         (*pushdf_rex64): New pattern, split out of *pushdf.  Use "m"
3530         constraint instead of "o" for opreand 1.
3531         (*pushdf): Disable for TARGET_64BIT.  Correct mode attribute.
3532         (*movdi_internal_rex64): Use "!o" constraint instead of "!m" for
3533         operand 0, alternative 4.
3534         (*movdf_internal_rex64): Ditto for operand 0, alernative 6.
3535
3536 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
3537
3538         * config/i386/predicates.md (lea_address_operand): Rename from
3539         no_seg_address_operand.
3540         * config/i386/i386.md (*lea_1): Update operand 1 predicate for rename.
3541         (*lea_1_zext): Ditto.
3542         (*lea_2): Ditto.
3543         (*lea_2_zext): Ditto.
3544
3545 2011-08-05  Uros Bizjak  <ubizjak@gmail.com>
3546
3547         * config/i386/i386.c (ix86_print_operand_address): Handle SUBREGs of
3548         parts.base and parts.index.
3549         * config/i386/predicates.md (aligned_operand): Ditto.
3550         (cmpxchg8b_pic_memory_operand): Ditto.
3551
3552 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3553
3554         * config/soft-fp: Move to ../libgcc.
3555         * Makefile.in (SFP_MACHINE): Remove.
3556         (libgcc-support): Remove $(SFP_MACHINE) dependency.
3557         * config/arm/sfp-machine.h: Move to ../libgcc/config/arm.
3558         * config/arm/t-arm-softfp: Move to
3559         ../libgcc/config/arm/t-softfp.
3560         * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x.
3561         * config/c6x/t-c6x-softfp: Remove.
3562         * config/i386/sfp-machine.h: Move to ../libgcc/config/i386.
3563         * config/i386/t-fprules-softfp: Move to
3564         ../libgcc/config/t-softfp-tf.
3565         * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64.
3566         * config/ia64/t-fprules-softfp: Remove.
3567         * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32.
3568         * config/lm32/t-fprules-softfp: Remove.
3569         * config/moxie/sfp-machine.h: Remove.
3570         * config/moxie/t-moxie-softfp: Remove.
3571         * config/rs6000/darwin-ldouble-format: Move to
3572         ../libgcc/config/rs6000/ibm-ldouble-format.
3573         * config/rs6000/darwin-ldouble.c: Move to
3574         ../libgcc/config/rs6000/ibm-ldouble.c
3575         * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000.
3576         * config/rs6000/libgcc-ppc64.ver: Likewise.
3577         * config/rs6000/sfp-machine.h: Likewise.
3578         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove
3579         $(srcdir)/config/rs6000/libgcc-ppc64.ver.
3580         (LIB2FUNCS_EXTRA): Remove.
3581         (TARGET_LIBGCC2_CFLAGS): Remove.
3582         * config/rs6000/t-aix52: Likewise
3583         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
3584         $(srcdir)/config/rs6000/darwin-ldouble.c.
3585         (SHLIB_MAPFILES): Remove.
3586         * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove
3587         $(srcdir)/config/rs6000/darwin-ldouble.c.
3588         * config/rs6000/t-fprules-softfp: Move to
3589         ../libgcc/config/t-softfp-sfdf.
3590         * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000.
3591         * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove.
3592         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove
3593         $(srcdir)/config/rs6000/darwin-ldouble.c.
3594         * config/score/sfp-machine.h: Move to ../libgcc/config/score.
3595         * config/score/t-score-softfp: Remove.
3596         * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp,
3597         soft-fp/t-softfp from tmake_file.
3598         (arm*-*-uclinux*): Likewise.
3599         (arm*-*-ecos-elf): Likewise.
3600         (arm*-*-eabi*, arm*-*-symbianelf*): Likewise.
3601         (arm*-*-rtems*): Likewise.
3602         (arm*-*-elf): Likewise.
3603         (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from
3604         tmake_file.
3605         (moxie-*-uclinux*): Likewise.
3606         (moxie-*-rtems*): Likewise.
3607         (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from
3608         tmake_file.
3609         (lm32-*-rtems*): Likewise.
3610         (lm32-*-uclinux*): Likewise.
3611         (powerpc-*-freebsd*): Remove rs6000/t-freebsd,
3612         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
3613         (powerpc-*-linux*, powerpc64-*-linux*): Remove
3614         rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file.
3615         (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from
3616         tmake_file.
3617         (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from
3618         tmake_file.
3619         (tic6x-*-uclinux): Likewise.
3620         (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp,
3621         soft-fp/t-softfp from tmake_file.
3622         (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu)
3623         (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise.
3624         (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise.
3625         (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise.
3626         (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise.
3627
3628 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3629
3630         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove.
3631         (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies.
3632         (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS,
3633         TPBIT, TPBIT_FUNCS.
3634         * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc.
3635         * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c):
3636         Remove.
3637         * config/arm/t-vxworks: Likewise.
3638         * config/arm/t-wince-pe: Likewise.
3639         * config/avr/t-avr (fp-bit.c, FPBIT): Remove.
3640         * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3641         * config/bfin/t-bfin-elf: Likewise.
3642         * config/bfin/t-bfin-linux: Likewise.
3643         * config/bfin/t-bfin-uclinux: Likewise.
3644         * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c):
3645         Remove.
3646         * config/fr30/t-fr30: Likewise.
3647         * config/frv/t-frv: Likewise.
3648         * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove.
3649         * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3650         * config/m32c/t-m32c: Likewise.
3651         * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove.
3652         * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3653         * config/mcore/t-mcore: Likewise.
3654         * config/mep/t-mep: Likewise.
3655         * config/microblaze/t-microblaze: Likewise.
3656         * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove.
3657         * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3658         * config/mips/t-sdemtk (FPBIT, DPBIT): Remove.
3659         * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3660         * config/mn10300/t-linux: Remove.
3661         * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3662         * config/pdp11/t-pdp11: Likewise.
3663         * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove.
3664         * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000.
3665         * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3666         (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c.
3667         * config/rs6000/t-aix52: Likewise.
3668         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove
3669         $(srcdir)/config/rs6000/ppc64-fp.c.
3670         * config/rs6000/t-fprules-fpbit: Remove.
3671         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove.
3672         * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3673         * config/sh/t-netbsd (FPBIT, DPBIT): Remove.
3674         * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3675         * config/sparc/t-elf: Likewise.
3676         * config/sparc/t-leon: Likewise.
3677         * config/sparc/t-leon3: Likewise.
3678         * config/spu/t-spu-elf: Likewise.
3679         (DPBIT_FUNCS): Remove.
3680         * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove.
3681         * config/v850/t-v850: Likewise.
3682         * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file.
3683         (avr-*-*): Likewise.
3684         (h8300-*-rtems*): Set libgcc_tm_file.
3685         (h8300-*-elf*): Likewise.
3686         (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from
3687         tmake_file.
3688         (powerpc-*-eabisim*): Likewise.
3689         (powerpc-*-elf*): Likewise.
3690         (powerpc-*-eabialtivec*): Likewise.
3691         (powerpc-xilinx-eabi*): Likewise.
3692         (powerpc-*-eabi*): Likewise.
3693         (powerpc-*-rtems*): Likewise.
3694         (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise.
3695         (powerpcle-*-elf*): Likewise.
3696         (powerpcle-*-eabisim*): Likewise.
3697         (powerpcle-*-eabi*): Likewise.
3698         (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file.
3699         (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file.
3700         * doc/fragments.texi (Target Fragment, Floating Point Emulation):
3701         Remove.
3702
3703 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3704
3705         * Makefile.in (UNWIND_H): Remove.
3706         (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to
3707         ../libgcc/Makefile.in.
3708         (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise.
3709         (LIBUNWINDDEP): Remove.
3710         (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies.
3711         (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED,
3712         LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL.
3713         (stmp-int-hdrs): Remove $(UNWIND_H) dependency.
3714         Don't copy $(UNWIND_H).
3715         * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling.
3716         * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove.
3717         * aclocal.m4: Regenerate.
3718         * configure: Regenerate.
3719         * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h,
3720         unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c,
3721         unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h,
3722         unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc.
3723         * unwind-dw2-fde-darwin.c: Move to ../libgcc/config.
3724         * config/arm/libunwind.S, config/arm/pr-support.c,
3725         config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to
3726         ../libgcc/config/arm.
3727         * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove.
3728         * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove.
3729         * config/frv/t-frv ($(T)frvbegin$(objext)): Use
3730         $(srcdir)/../libgcc to refer to unwind-dw2-fde.h.
3731         ($(T)frvend$(objext)): Likewise.
3732         * config/ia64/t-glibc (LIB2ADDEH): Remove.
3733         * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64.
3734         * config/ia64/fde-glibc.c, config/ia64/fde-vms.c,
3735         config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to
3736         ../libgcc/config/ia64.
3737         * config/ia64/t-hpux (LIB2ADDEH): Remove.
3738         * config/ia64/t-ia64 (LIB2ADDEH): Remove.
3739         * config/ia64/t-vms (LIB2ADDEH): Remove.
3740         * config/ia64/vms.h (UNW_IVMS_MODE,
3741         MD_UNW_COMPATIBLE_PERSONALITY_P): Remove.
3742         * config/picochip/t-picochip (LIB2ADDEH): Remove.
3743         * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove.
3744         * config/rs6000/t-darwin (LIB2ADDEH): Remove.
3745         * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000.
3746         * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use
3747         $(srcdir)/../libgcc to refer to unwinder sources.
3748         * config/spu/t-spu-elf (LIB2ADDEH): Remove.
3749         * config/t-darwin (LIB2ADDEH): Remove.
3750         * config/t-freebsd (LIB2ADDEH): Remove.
3751         * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove.
3752         * config/t-libunwind-elf: Move to ../libgcc/config.
3753         * config/t-linux (LIB2ADDEH): Remove.
3754         * config/t-sol2 (LIB2ADDEH): Remove.
3755         * config/xtensa/t-xtensa (LIB2ADDEH): Remove.
3756         * system.h (MD_FROB_UPDATE_CONTEXT): Poison.
3757
3758 2011-08-05  H.J. Lu  <hongjiu.lu@intel.com>
3759
3760         * config/i386/i386.c (processor_alias_table): Add core-avx-i.
3761
3762         * doc/invoke.texi: Document core-avx-i.
3763
3764 2011-08-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3765
3766         * tsystem.h (CONST_CAST2, CONST_CAST): Define.
3767
3768 2011-08-05  Ira Rosen  <ira.rosen@linaro.org>
3769
3770         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use the
3771         result of multiple results reduction when extracting the final
3772         value using scalar code.
3773
3774 2011-08-05  Richard Guenther  <rguenther@suse.de>
3775
3776         PR tree-optimization/49984
3777         * tree-vrp.c (extract_range_from_binary_expr_1): Handle BIT_XOR_EXPR.
3778
3779 2011-08-05  Richard Guenther  <rguenther@suse.de>
3780
3781         * tree-vrp.c (zero_nonzero_bits_from_vr): Make sure to always
3782         return true for constant integer ranges.
3783         (extract_range_from_binary_expr_1): Simplify BIT_AND_EXPR and
3784         BIT_IOR_EXPR handling.
3785
3786 2011-08-04  Kai Tietz  <ktietz@redhat.com>
3787
3788         * config/i386/i386.c (setup_incoming_varargs_ms_64): Set
3789         ix86_varargs_gpr_size and ix86_varargs_fpr_size to zero.
3790
3791 2011-08-04  Ira Rosen  <ira.rosen@linaro.org>
3792
3793         * tree-vectorizer.h (struct _stmt_vec_info): Add new field for
3794         pattern def statement, and its access macro.
3795         (NUM_PATTERNS): Set to 5.
3796         * tree-vect-loop.c (vect_determine_vectorization_factor): Handle
3797         pattern def statement.
3798         (vect_transform_loop): Likewise.
3799         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add new
3800         function vect_recog_over_widening_pattern ().
3801         (vect_operation_fits_smaller_type): New function.
3802         (vect_recog_over_widening_pattern, vect_mark_pattern_stmts):
3803         Likewise.
3804         (vect_pattern_recog_1): Move the code that marks pattern
3805         statements to vect_mark_pattern_stmts (), and call it.  Update
3806         documentation.
3807         * tree-vect-stmts.c (vect_supportable_shift): New function.
3808         (vect_analyze_stmt): Handle pattern def statement.
3809         (new_stmt_vec_info): Initialize pattern def statement.
3810
3811 2011-08-04  Richard Henderson  <rth@redhat.com>
3812
3813         PR target/49964
3814         * config/i386/i386.c (ix86_expand_call): Don't create nested
3815         PARALLELs for TARGET_VZEROUPPER.
3816         (ix86_split_call_vzeroupper): Fix extraction of the original call.
3817         * config/i386/i386.md (*call_rex64_ms_sysv_vzeroupper): Don't
3818         recognize nested PARALLELs.
3819         (*call_pop_vzeroupper, *sibcall_pop_vzeroupper,
3820         *call_value_rex64_ms_sysv_vzeroupper, *call_value_pop_vzeroupper,
3821         *sibcall_value_pop_vzeroupper): Likewise.
3822
3823 2011-08-04  Richard Henderson  <rth@redhat.com>
3824
3825         PR middle-end/49968
3826         * calls.c (expand_call): Use fixup_args_size_notes for
3827         emit_stack_restore.
3828         * expr.c (fixup_args_size_notes): Allow STACK_POINTER_REGNUM sets
3829         in non-standard modes.
3830
3831 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
3832
3833         * gcc.c (self_spec): New variable.
3834         (static_specs): Add self_spec.
3835         (main): Call do_self_spec on "self_spec" specs after reading
3836         user specs files.  Move compare_debug handling right after that.
3837
3838 2011-08-04  Richard Guenther  <rguenther@suse.de>
3839
3840         * tree-vrp.c (vrp_expr_computes_nonnegative): Remove.
3841         (value_range_nonnegative_p): New function.
3842         (ssa_name_nonnegative_p): Use it.
3843         (value_range_constant_singleton): New function.
3844         (op_with_constant_singleton_value_range): Use it.
3845         (extract_range_from_binary_expr_1): New function, split out from ...
3846         (extract_range_from_binary_expr): ... this.  Remove fallback
3847         constant folding done here.
3848
3849 2011-08-04  Richard Guenther  <rguenther@suse.de>
3850
3851         PR tree-optimization/49806
3852         * tree-vrp.c (op_with_boolean_value_range_p): New function.
3853         (simplify_truth_ops_using_ranges): Simplify.  Allow inserting
3854         a new statement for a final conversion to bool.
3855
3856 2011-08-04  Romain Geissler  <romain.geissler@gmail.com>
3857
3858         * gengtype-state.c: Include "bconfig.h" if
3859         GENERATOR_FILE is defined, "config.h" otherwise.
3860         * gengtype.c: Likewise.
3861         * gengtype-lex.l: Likewise.
3862         * gengtype-parse.c: Likewise.
3863         * Makefile.in (gengtype-lex.o-warn): New variable.
3864         (plugin_resourcesdir): Likewise.
3865         (plugin_bindir): Likewise.
3866         (plugin_includedir): Use $(plugin_resourcesdir) as prefix base.
3867         (MOSTLYCLEANFILES): Add gengtype$(exeext).
3868         (native): Depend on gengtype$(exeext) is $enable_plugin
3869         is set to "yes".
3870         (gtype.state): Depend on s-gtype. Use temporary file.
3871         (gengtype-lex.o): New rule.
3872         (gengtype-parse.o): Likewise.
3873         (gengtype-state.o): Likewise.
3874         (gengtype$(exeext)): Likewise.
3875         (install-gengtype): Likewise.
3876         (gengtype.o): Likewise.
3877         (build/gengtype.o): Depend on version.h.
3878         (build/gengtype-state): Depend on double-int.h, version.h,
3879         $(HASHTAB_H), $(OBSTACK_H), $(XREGEX_H) and build/errors.o.
3880         (install-plugin): Depend on install-gengtype.
3881
3882 2011-08-04  Jakub Jelinek  <jakub@redhat.com>
3883
3884         PR middle-end/49905
3885         * tree.h (init_attributes): New prototype.
3886         * attribs.c (init_attributes): No longer static.
3887
3888 2011-08-04  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3889
3890         * config/arm/arm.c (arm_set_fixed_optab_libfunc): Constify
3891         maybe_suffix.
3892
3893 2011-08-03   David Li  <davidxl@google.com>
3894
3895         * tree-optimize.c (execute_fixup_cfg): Fix up entry
3896         outgoing edge counts after inlining.
3897
3898 2011-08-03   David Li  <davidxl@google.com>
3899
3900         * profile.c (compute_branch_probabilities): Compute
3901         function frequency after profile annotation.
3902
3903 2011-08-04  Alan Modra  <amodra@gmail.com>
3904
3905         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Simplify
3906         use_backchain_to_restore_sp initialisation.
3907         (rs6000_legitimate_offset_address_p): Simplify offset test.
3908
3909 2011-08-03  Richard Henderson  <rth@redhat.com>
3910
3911         * config/spu/spu.md: Use define_c_enum instead of define_constants.
3912         (UNSPECV_BLOCKAGE, UNSPECV_LNOP, UNSPECV_SYNC): Rename from UNSPEC_*.
3913         (UNSPECV_NOP): New.
3914
3915 2011-08-03  Richard Henderson  <rth@redhat.com>
3916
3917         PR target/34888
3918         * config/avr/avr.md: New splitter for REG_ARGS_SIZE 0.
3919
3920 2011-08-03  Jakub Jelinek  <jakub@redhat.com>
3921
3922         PR tree-optimization/49948
3923         * gimple.c (walk_stmt_load_store_addr_ops): Walk CONSTRUCTOR elements.
3924
3925 2011-08-03  Anatoly Sokolov  <aesok@post.ru>
3926
3927         * config/m32c/m32c.c (class_sizes): Remove.
3928         (reduce_class): Change arguments and return type to reg_class_t.
3929         Change type cc var to HARD_REG_SET. Change type best var to
3930         reg_class_t. Change type best_size var to unsigned int. Remove
3931         initialization class_sizes var. Use reg_class_size array instead
3932         of class_sizes. Use reg_class_contents array instead
3933         of class_contents.
3934
3935 2011-08-03  Richard Guenther  <rguenther@suse.de>
3936
3937         PR middle-end/49958
3938         * fold-const.c (fold_binary_loc): Only associate
3939         (+ (+ (* a b) c) (* d e)) as (+ (+ (* a b) (* d e)) c) if
3940         overflow wraps.
3941
3942 2011-08-03  Alan Modra  <amodra@gmail.com>
3943
3944         PR rtl-optimization/49941
3945         * jump.c (mark_jump_label): Comment.
3946         (mark_jump_label_1): Set JUMP_LABEL for return jumps.
3947         * emit-rtl.c (copy_rtx_if_shared_1, copy_insn_1): Leave RETURN shared.
3948         (mark_used_flags): Don't mark RETURN.
3949
3950 2011-08-03  Richard Guenther  <rguenther@suse.de>
3951
3952         PR tree-optimization/49938
3953         * tree-scalar-evolution.c (interpret_loop_phi): Gracefully
3954         deal with a POLYNOMIAL_CHREC.
3955
3956 2011-08-03  Revital Eres  <revital.eres@linaro.org>
3957
3958         * modulo-sched.c (calculate_stage_count,
3959         calculate_must_precede_follow, get_sched_window,
3960         try_scheduling_node_in_cycle, remove_node_from_ps): Add
3961         declaration.
3962         (update_node_sched_params, set_must_precede_follow, optimize_sc):
3963         New functions.
3964         (reset_sched_times): Call update_node_sched_params.
3965         (sms_schedule): Call optimize_sc.
3966         (get_sched_window): Change function arguments.
3967         (sms_schedule_by_order): Update call to get_sched_window.
3968         Call set_must_precede_follow.
3969         (calculate_stage_count): Add function argument.
3970
3971 2011-08-02  Richard Henderson  <rth@redhat.com>
3972
3973         PR target/49864
3974         PR target/49879
3975         * reg-notes.def (REG_ARGS_SIZE): New.
3976         * calls.c (emit_call_1): Emit REG_ARGS_SIZE for call_pop.
3977         (expand_call): Add REG_ARGS_SIZE to emit_stack_restore.
3978         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jumping to
3979         different stack levels.
3980         * combin