OSDN Git Service

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