OSDN Git Service

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