OSDN Git Service

25f5ca823edc13e71096490b3c24b5ce35a06014
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
2
3         * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref
4         throughout file.
5
6 2011-09-28  Richard Sandiford  <rdsandiford@googlemail.com>
7
8         * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref
9         throughout file.
10
11 2011-09-27  Sriraman Tallam  <tmsriram@google.com>
12
13         * output.h (SECTION_EXCLUDE): New macro.
14         * varasm.c (default_elf_asm_named_section): Check for
15         SECTION_EXCLUDE.        
16
17 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
18
19         * fwprop.c (forward_propagate_and_simplify): After checking
20         reg/subreg combinations, check whether the modes are the same.
21
22 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
23             Richard Sandiford  <rdsandiford@googlemail.com>
24
25         * config/mips/mips.c (mips_add_cfa_restore): New function.
26         (mips16e_save_restore_reg): Use it.
27         (mips_restore_reg): Likewise.  Split double FPRs for
28         REG_CFA_RESTORE notes.
29
30 2011-09-27  Richard Sandiford  <rdsandiford@googlemail.com>
31
32         PR middle-end/50386
33         PR middle-end/50326
34         * tree-sra.c (build_ref_for_model): Use the type of the field as
35         the type of the COMPONENT_REF.
36
37 2011-09-27  Jeff Law  <law@redhat.com>
38
39         * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument.  Scale
40         non-jumping insns by REG_BR_PROB_BASE and the maximum cost
41         by SCALE.
42         (find_if_case_1): Use the probability of the THEN clause when
43         determining if speculation is profitable.
44         (find_if_case_2): Similarly for the ELSE clause.
45
46 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
47
48         * common.opt: Add -foptimize-strlen option.
49         * Makefile.in (OBJS): Add tree-ssa-strlen.o.
50         (tree-sssa-strlen.o): Add dependencies.
51         * opts.c (default_options_table): Enable -foptimize-strlen
52         by default at -O2 if not -Os.
53         * passes.c (init_optimization_passes): Add pass_strlen
54         after pass_object_sizes.
55         * timevar.def (TV_TREE_STRLEN): New timevar.
56         * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
57         * tree-pass.h (pass_strlen): Declare.
58         * tree-ssa-strlen.c: New file.
59         * c-decl.c (merge_decls): If compatible stpcpy prototype
60         is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
61
62 2011-09-27  Tom de Vries  <tom@codesourcery.com>
63
64         PR middle-end/43864
65         * tree-ssa-tail-merge.c: New file.
66         (struct same_succ_def): Define.
67         (same_succ, const_same_succ): New typedef.
68         (struct bb_cluster_def): Define.
69         (bb_cluster, const_bb_cluster): New typedef.
70         (struct aux_bb_info): Define.
71         (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define.
72         (gvn_uses_equal): New function.
73         (same_succ_print, same_succ_print_traverse, update_dep_bb)
74         (stmt_update_dep_bb, local_def, same_succ_hash)
75         (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete)
76         (same_succ_reset): New function.
77         (same_succ_htab, same_succ_edge_flags)
78         (deleted_bbs, deleted_bb_preds): New var.
79         (debug_same_succ): New function.
80         (worklist): New var.
81         (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ)
82         (init_worklist, delete_worklist, delete_basic_block_same_succ)
83         (same_succ_flush_bbs, purge_bbs, update_worklist): New function.
84         (print_cluster, debug_cluster, update_rep_bb)
85         (add_bb_to_cluster, new_cluster, delete_cluster): New function.
86         (all_clusters): New var.
87         (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors)
88         (merge_clusters, set_cluster): New function.
89         (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate)
90         (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi)
91         (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect)
92         (find_clusters_1, find_clusters): New function.
93         (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function.
94         (update_bbs): New var.
95         (apply_clusters): New function.
96         (update_debug_stmt, update_debug_stmts): New function.
97         (tail_merge_optimize): New function.
98         tree-pass.h (tail_merge_optimize): Declare.
99         * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize.
100         * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o.
101         (tree-ssa-tail-merge.o): New rule.
102         * opts.c (default_options_table): Set OPT_ftree_tail_merge by default at
103         OPT_LEVELS_2_PLUS.
104         * tree-ssa-sccvn.c (vn_valueize): Move to ...
105         * tree-ssa-sccvn.h (vn_valueize): Here.
106         * timevar.def (TV_TREE_TAIL_MERGE): New timevar.
107         * common.opt (ftree-tail-merge): New switch.
108         * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS)
109         (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter.
110         * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge.
111         (-ftree-tail-merge, max-tail-merge-comparisons)
112         (max-tail-merge-iterations): New item.
113
114 2011-09-27  Jan Hubicka  <jh@suse.cz>
115
116         * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows.
117
118 2011-09-27  Jan Hubicka  <jh@suse.cz>
119
120         * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle parameters
121         passed by reference; handle loads from non-SSA scalars and update comments.
122
123 2011-09-27  Bernd Schmidt  <bernds@codesourcery.com>
124
125         PR rtl-optimization/50249
126         * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument
127         instead of opnum and type.  All callers changed.  Remove useless
128         declaration.
129         Search forward for other reloads of the same type for the same operand
130         using the same register; if any are found, return false.
131         (reload_regs_reach_end_p): Same argument changes; all callers changed.
132
133 2011-09-27  Andi Kleen  <ak@linux.intel.com>
134             Jan Hubicka  <jh@suse.cz>
135
136         * doc/invoke.texi (ffat-lto-objects): Document.
137         * toplev.c (compile_file): Do not output assembly when doing slim lto;
138         Output __gnu_slim_lto when doing slim lto.
139         * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto.
140         (cgraph_optimize): Return early when doing slim lto.
141         * opts.c (finish_options): Complain about lack of linker plugin
142         when doing slim lto.
143         * common.opt (ffat-lto-objects): New.
144
145 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
146
147         * ipa-inline-analysis.c (predicate_probability): Avoid comparison
148         between signed and unsigned.
149
150 2011-09-27  Ira Rosen  <ira.rosen@linaro.org>
151
152         * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block
153         vectorization.
154         (vectorizable_type_promotion): Likewise.
155         (vect_analyze_stmt): Call vectorizable_type_demotion and
156         vectorizable_type_promotion for basic blocks.
157         (supportable_widening_operation): Don't assume loop vectorization.
158         * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for
159         basic blocks.  Update vectorization factor for basic block
160         vectorization.
161         (vect_analyze_slp_instance): Allow multiple types for basic block
162         vectorization.  Recheck unrolling factor after construction of SLP
163         instance.
164
165 2011-09-27  Richard Guenther  <rguenther@suse.de>
166
167         * tree-object-size.c (compute_object_sizes): Fix dumping of
168         folded statement.
169
170 2011-09-27  Richard Guenther  <rguenther@suse.de>
171
172         PR tree-optimization/50363
173         * tree-ssa-pre.c (create_expression_by_pieces): Handle
174         pointer conversions in POINTER_PLUS_EXPRs properly.
175
176 2011-09-27  Richard Sandiford  <richard.sandiford@linaro.org>
177
178         * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi)
179         (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di)
180         (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si)
181         (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands
182         that produce subreg moves.  Define using VQX iterators.
183
184 2011-09-27  Georg-Johann Lay  <avr@gjlay.de>
185
186         * config/avr/avr.md (ashrqi3): Split alternative "n"
187         into its remaining parts C03, C04, C05, C06, C07 and describe
188         impact in CC by attribute "cc" appropriately.
189         * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0
190         by digging RTX.
191
192 2011-09-27  Jakub Jelinek  <jakub@redhat.com>
193
194         * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE
195         from 3 x MAX_MACHINE_MODE.
196         (CONSTM1_RTX): Define.
197         * emit-rtl.c (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE
198         from 3 x MAX_MACHINE_MODE.
199         (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are
200         CONSTM1_RTX.
201         (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and
202         MODE_VECTOR_INT modes.
203         * simplify-rtx.c (simplify_binary_operation_1) <case IOR, XOR, AND>:
204         Optimize if one operand is CONSTM1_RTX.
205         * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x
206         into mask | x.
207
208 2011-09-26  David S. Miller  <davem@davemloft.net>
209
210         * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode.
211         (fcmp{le,ne,gt,eq}{16,32}): Likewise.
212         * config/sparc/visintrin.h: Update edge and pixel-compare
213         intrinsics to return 'long' instead of 'int'.
214         * doc/extend.texi: Update documentation to match.
215         * config/sparc/sparc.c (eligible_for_return_delay): When leaf or
216         flat, allow any instruction.  Otherwise, when V9 allow parallels
217         which consist only of sets to registers outside of %o0 to %o5.
218         (sparc_vis_init_builtins): Update VIS builtin types for edge
219         and pixel-compare.
220
221         * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS
222         is enabled, mark %gsr as global.
223         * config/sparc/sparc.md (UNSPEC_WRGSR): Delete.
224         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec.
225
226         * config/sparc/sparc-c.c: New file implementing sparc_target_macros,
227         which will now define __VIS and __VIS__ when -mvis is enabled.
228         * config/sparc/t-sparc: Likewise.
229         * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs,
230         and add t-sparc to tmake_file for all sparc targets.
231         * config/sparc/sparc-protos.h (sparc_target_macros): Declare.
232         * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it.
233
234         * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit
235         builtins for VIS vector addition and subtraction.
236         * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s,
237         __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s,
238         __vis_fpsub32, __vis_fpsub32s): New.
239         * doc/extend.texi: Document new VIS intrinsics.
240
241 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
242
243         * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536.
244         * config/avr/avr.c (avr_out_compare): Print shorter sequence for
245         EQ/NE comparisons against +/-1 in the case of unused-after,
246         non-ld-regs target.
247
248 2011-09-26  Jakub Jelinek  <jakub@redhat.com>
249
250         * gimple-fold.c (gimplify_and_update_call_from_tree): Set
251         gctx.into_ssa after push_gimplify_context.
252
253         * gimple.c (gimple_build_call_valist): New function.
254         * gimple.h (gimple_build_call_valist): New prototype.
255         * tree-ssa-propagate.c (finish_update_gimple_call): New function.
256         (update_gimple_call): Likewise.
257         (update_call_from_tree): Use finish_update_gimple_call.
258         * tree-ssa-propagate.h (update_gimple_call): New prototype.
259
260 2011-09-26  Richard Guenther  <rguenther@suse.de>
261
262         PR tree-optimization/50472
263         * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold
264         volatile references.
265
266 2011-09-26  Bingfeng Mei <bmei@broadcom.com>
267
268         * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P.
269         * target.def: (addr_space_subset_p): Likewise.
270
271 2011-09-26  Tom de Vries  <tom@codesourcery.com>
272
273         * tree-ssa-alias.h (pt_solution_singleton_p): Declare.
274         * tree-ssa-structalias.c (pt_solution_singleton_p): New function.
275         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution
276         of new var.
277
278 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
279
280         PR target/50465
281         * config/avr/avr-protos.h (output_reload_insisf): Don't pass insn.
282         * config/avr/avr.md (*reload_insi, *reload_insf): Change call to
283         output_reload_insisf.
284         (adjust_len): Set default to "no".
285         Remove alternative "yes".  Add alternatives: "mov8", "mov16",
286         "mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi",
287         "lshrhi", "ashlsi, "ashrsi", "lshrsi".
288         (*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3,
289         *ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3,
290         *ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const,
291         *lshrsi3_const): Set attribute "adjust_len".
292         * config/avr/avr.c (output_reload_insisf): Remove parameter "insn".
293         (output_movsisf): Don't pass insn to output_reload_insisf.
294         (adjust_insn_length): Handle new alternatives to adjust_len.
295         Remove handling of ADJUST_LEN_YES.  Clean-up code.
296
297 2011-09-26  Eric Botcazou  <ebotcazou@adacore.com>
298
299         * ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of
300         may_trap_p to detect loads that may trap of fault.
301
302 2011-09-26  Georg-Johann Lay  <avr@gjlay.de>
303
304         * config/avr/avr-protos.h (output_reload_inhi): Change prototype.
305         * config/avr/avr.md (adjust_len): Add "reload_in16" alternative.
306         (*reload_inhi): Use it.  Adapt call to output_reload_inhi to new
307         prototype.
308         (*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L".
309         * config/avr/avr.c: Rename output_reload_insisf_1 to
310         output_reload_in_const.
311         (avr_popcount_each_byte): Handle SFmode, too.
312         (output_reload_in_const): Change so it can handle HI loads, too.
313         Use avr_popcount_each_byte to work out if scratch register must be
314         created on the fly.
315         (output_reload_inhi): Rewrite using output_reload_in_const and...
316         (output_movhi): ...use it to print constants' loads.
317         (adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code.
318
319 2011-09-25  David S. Miller  <davem@davemloft.net>
320
321         * config/sparc/constraints.md (C, P, Z): New constraints for
322         const_doube, const_int, and const_vector "all ones" values.
323         Make unused constraint letters comment match reality.
324         * config/sparc/predicates.md (const_all_ones_operand,
325         register_or_zero_or_all_ones_operand): New predicates.
326         * config/sparc/sparc.c (sparc_expand_move): Allow all ones
327         as well as zero constants when VIS.
328         (sparc_legitimate_constant_p): Likewise.
329         * config/sparc/sparc.md (movsi_insn): Add fones alternative.
330         (movsf_insn): Likewise
331         (movdi_insn_sp64): Add fone alternative.
332         (movdf_insn_sp32_v9): Likewise.
333         (movdf_insn_sp64): Likewise.
334
335         * configure.ac: Add feature check to make sure the assembler
336         supports the FMAF, HPC, and VIS 3.0 instructions found on
337         Niagara-3 and later cpus.
338         * configure: Rebuild.
339         * config.in: Likewise.
340         * config/sparc/sparc.opt: New option '-mfmaf'.
341         * config/sparc/sparc.md: Add float fused multiply-add patterns.
342         * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro.
343         (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed.
344         * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC,
345         ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise.
346         * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on
347         by default for Niagara-3 and later.  Turn it off if TARGET_FPU is
348         disabled.
349         (sparc_rtx_costs): Handle 'FMA'.
350         * doc/invoke.texi: Document -mfmaf.
351
352 2011-09-25  Jakub Jelinek  <jakub@redhat.com>
353
354         * tree-ssa-structalias.c (intra_create_variable_infos): Treat
355         TYPE_RESTRICT REFERENCE_TYPE parameters like restricted
356         DECL_BY_REFERENCE parameters.
357
358 2011-09-25  Eric Botcazou  <ebotcazou@adacore.com>
359
360         * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore
361         if there is no outgoing edge.
362
363         * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and
364         integral types.
365
366 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
367
368         * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part
369         of vect_analyze_bb here.
370         (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1.
371
372 2011-09-25  Ira Rosen  <ira.rosen@linaro.org>
373
374         * tree-data-ref.c (dr_analyze_innermost): Add new argument.
375         Allow not simple iv if analyzing basic block.
376         (create_data_ref): Update call to dr_analyze_innermost.
377         (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise.
378         * tree-loop-distribution.c (generate_memset_zero): Likewise.
379         * tree-predcom.c (find_looparound_phi): Likewise.
380         * tree-data-ref.h (dr_analyze_innermost): Add new argument.
381
382 2011-09-24  David S. Miller  <davem@davemloft.net>
383
384         * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103.
385         (SPARC_GSR_REG): Define.
386         (FIXED_REGISTERS): Mark GSR as fixed.
387         (CALL_USED_REGISTERS): Mark GSR as call used.
388         (HARD_REGNO_NREGS): GSR is always 1 register.
389         (REG_CLASS_CONTENTS): Add GSR to ALL_REGS.
390         (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end.
391         (REGISTER_NAMES): Add "%gsr".
392         * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL):
393         Delete.
394         (UNSPEC_WRGSR): New unspec.
395         (GSR_REG): New constant.
396         (type): Add new insn type 'gsr'.
397         (fpack16_vis, fpackfix_vis, fpack32_vis,
398         faligndata<V64I:MODE>_vis)): Add use of GSR_REG.
399         (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64,
400         rdgsr_v8plus): New expanders and insns.
401         (alignaddr<P:mode>_vis, alignaddrl<P:mode>_vis): Reimplement
402         using patterns which show that this is a plus in addition to a
403         modification of GSR_REG, instead of an unspec.
404         * config/sparc/ultra1_2.md: Handle 'gsr'.
405         * config/sparc/ultra3.md: Likewise.
406         * config/sparc/niagara.md: Likewise.
407         * config/sparc/niagara2.md: Likewise.
408         * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out
409         end of table.
410         (sparc_option_override): Make -mvis imply -mv8plus.
411         (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries
412         for %gsr.
413         (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and
414         __builtin_vis_read_gsr.
415         (sparc_expand_buildin): Handle builtins that take one argument and
416         return void.
417         (sparc_fold_builtin): Never fold writes to %gsr.
418         * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New.
419         * doc/extend.texi: Document new VIS intrinsics.
420
421 2011-09-23  Jan Hubicka  <jh@suse.cz>
422
423         * ipa-inline-transform.c (inline_call): Add comment.
424         * ipa-inline.h (inline_param_summary): New structure and vector.
425         (struct inline_edge_summary): Add param field.
426         * ipa-inline-analysis.c (CHANGED): New constant.
427         (add_clause): Handle CHANGED and NOT_CONSTANT.
428         (predicate_probability): New function.
429         (dump_condition): Dump CHANGED predicate.
430         (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker
431         of unknown function wide invariant.
432         (evaluate_conditions_for_edge): Handle change probabilities.
433         (inline_edge_duplication_hook): Copy param summaries.
434         (inline_edge_removal_hook): Free param summaries.
435         (dump_inline_edge_summary): Fix dumping of indirect edges and callee sizes;
436         dump param summaries.
437         (will_be_nonconstant_predicate): Use CHANGED predicate.
438         (record_modified_bb_info): New structure.
439         (record_modified): New function.
440         (param_change_prob): New function.
441         (estimate_function_body_sizes): Compute param summaries.
442         (estimate_edge_size_and_time): Add probability argument.
443         (estimate_node_size_and_time): Add inline_param_summary argument;
444         handle predicate probabilities.
445         (remap_predicate): Fix formating.
446         (remap_edge_change_prob): New function.
447         (remap_edge_summaries): Rename from ...; use remap_edge_change_prob.
448         (remap_edge_predicates): ... this one.
449         (inline_merge_summary): Remap edge summaries; handle predicate probabilities;
450         remove param summaries after we are done.
451         (do_estimate_edge_time): Update.
452         (do_estimate_edge_growth): Update.
453         (read_inline_edge_summary): Read param info.
454         (inline_read_summary): Fix formating.
455         (write_inline_edge_summary): Write param summaries.
456
457 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
458
459         * config/i386/i386.c (ix86_print_operand): Handle %~.
460         (ix86_print_operand_punct_valid_p): Return true also for '~'.
461         * config/i386/sse.md (i128): New mode_attr.
462         (vec_extract_hi_<mode>, vec_extract_hi_<mode>,
463         avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full,
464         *avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>, 
465         vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the
466         patterns, use "<sseinsnmode>" for "mode" attribute.
467         (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi,
468         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use
469         %~128 in the patterns, use "OI" for "mode" attribute.
470
471 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
472
473         PR target/50447
474         * config/avr/avr.md (adjust_len): Add alternatives "tsthi",
475         "tstsi", "compare".
476         (*cmpqi_sign_extend): Use s8_operand.
477         (*cmphi, *cmpsi): Rewrite using avr_out_compare.
478         * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove
479         prototypes.
480         (out_tsthi, out_tstsi): Remove prototypes.
481         (avr_out_tsthi, avr_out_tstsi): New prototypes.
482         * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions.
483         (avr_asm_len): Negative length now sets *plen to -length.
484         (compare_sign_p): Return bool instead of int.
485         (compare_diff_p, compare_eq_p): Ditto and make static.
486         (avr_out_tsthi): New function.
487         (avr_out_tstsi): New function.
488         (avr_out_compare): New function.
489         (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI,
490         ADJUST_LEN_COMPARE.
491
492 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
493
494         PR target/50447
495         * config/avr/avr.md: (adjust_len): Add alternative "out_plus".
496         (addsi3): Rewrite using QI scratch register.  Adjust text
497         peepholes using plus:SI.
498         (*addsi3_zero_extend.hi): New insn.
499         (*subsi3_zero_extend.hi): New insn.
500         (*subhi3_zero_extend1): Set attribute "cc" to "set_czn".
501         (*subsi3_zero_extend): Ditto.
502         (subsi3): Change predicate #2 to register_operand.
503         * config/avr/avr-protos.h (avr_out_plus): New prototype.
504         (avr_out_plus_1): New static function.
505         (avr_out_plus): New function.
506         (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS.
507
508 2011-09-23  Jakub Jelinek  <jakub@redhat.com>
509
510         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For
511         GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX.
512
513 2011-09-23  Ian Lance Taylor  <iant@google.com>
514
515         * godump.c (go_define): Treat a single character in single quotes,
516         or a string, as an operand.
517
518 2011-09-23  Martin Jambor  <mjambor@suse.cz>
519
520         * ipa-prop.h (jump_func_type): Updated comments.
521         (ipa_known_type_data): New type.
522         (ipa_jump_func): Use it to describe known type jump functions.
523         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to
524         reflect the new known type jump function contents.
525         (compute_known_type_jump_func): Likewise.
526         (combine_known_type_and_ancestor_jfs): Likewise.
527         (try_make_edge_direct_virtual_call): Likewise.
528         (ipa_write_jump_function): Likewise.
529         (ipa_read_jump_function): Likewise.
530         * ipa-cp.c (ipa_value_from_known_type_jfunc): New function.
531         (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc.
532         (propagate_accross_jump_function): Likewise.
533
534 2011-09-23  Georg-Johann Lay  <avr@gjlay.de>
535
536         PR target/50446
537         * config/avr/avr.md (rotlqi3): Support all offsets 0..7.
538         (rotlqi3_4): Turn insn into expander.
539         (*rotlqi3): New insn.
540         (rotlhi3, rotlsi3): Support rotate left/right by 1.
541         (*rotlhi2.1, *rotlhi2.15): New insns.
542         (*rotlsi2.1, *rotlsi2.31): New insns.
543         * config/avr/constraints.md (C03, C05, C06, C07): New constraints.
544
545 2011-09-23  Bin Cheng  <bin.cheng@arm.com>
546
547         * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch 
548         and processors.
549
550 2011-09-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
551
552         * ipa-prop.c (ipa_print_node_jump_functions): Fix typos.
553
554 2011-09-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
555
556         * reload.c (find_reloads): Set operand_mode to Pmode for address
557         operands consisting of just a CONST_INT.
558
559 2011-09-22  Uros Bizjak  <ubizjak@gmail.com>
560
561         PR target/50482
562         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
563         blendv, force op_true to register if it doesn't satisfy
564         nonimmediate_operand predicate.
565
566 2011-09-22  Richard Sandiford  <rdsandiford@googlemail.com>
567
568         PR middle-end/50113
569         PR middle-end/50061
570         * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to
571         get the locate.where_pad value for register-only arguments.
572         * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling.
573         (arm_pad_reg_upward): Handle null types.
574
575 2011-09-22  Jan Hubicka  <jh@suse.cz>
576
577         * ipa-inline-analysis.c: Fix overly long lines.
578
579 2011-09-22  Jan Hubicka  <jh@suse.cz>
580
581         * ipa-inline-transform.c (inline_call): Always update jump functions
582         after inlining.
583         * ipa-inline.c (ipa_inline): Likewise; do not call
584         ipa_create_all_structures_for_iinln.
585         (ipa_inline): Always free jump functions.
586         * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack.
587         (remap_edge_predicates): Fix pasto.
588         (inline_merge_summary): Remove nlined edge predicate; remove hack.
589         (inline_analyze_function): Always initialize jump functions.
590         (inline_generate_summary): Likewise.
591         (inline_write_summary): Always write jump functions when ipa-cp
592         is not doing that.
593         (inline_read_summary): Always read jump functions when ipa-cp
594         is not doing that.
595         * ipa-prop.c (iinlining_processed_edges): Remove.
596         (update_indirect_edges_after_inlining): Do not use
597         iinlining_processed_edges; instead set param_index to -1.
598         (propagate_info_to_inlined_callees): Only try to indirect inlining
599         when asked to do so; update jump functions of indirect calls, too;
600         remove jump functions of the inlined edge.
601         (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges.
602         (ipa_create_all_structures_for_iinln): Remove.
603         (ipa_free_all_structures_after_iinln): Do not free
604         iinlining_processed_edges.
605         * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove.
606
607 2011-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
608
609         * config/arm/predicates.md (expandable_comparison_operator): New
610         predicate, extracted from...
611         (arm_comparison_operator): ...here.
612         * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4)
613         (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc)
614         (movdfcc): Use expandable_comparison_operator.
615
616 2011-09-22  Georg-Johann Lay  <avr@gjlay.de>
617
618         PR target/50447
619         PR target/50465
620         * config/avr/avr-protos.h (avr_out_bitop): New prototype.
621         (avr_popcount_each_byte): New prototype.
622         * config/avr/avr.c (avr_popcount): New static function.
623         (avr_popcount_each_byte): New function.
624         (avr_out_bitop): New function.
625         (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to
626         avr_out_bitop.  Cleanup code.
627         * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints.
628         (Ca4, Co4, Cx4): New constraints.
629         * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute
630         alternative.
631         (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop.
632         (andsi3, iorsi3, xorsi3): Ditto.
633         (*iorhi3_clobber, *iorsi3_clobber): Remove insns.
634
635 2011-09-22  Ira Rosen  <ira.rosen@linaro.org>
636
637         PR tree-optimization/50451
638         * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for
639         constant operands in reduction.
640         (vect_get_slp_defs): Don't create vector operand for NULL scalar
641         operand.
642
643 2011-09-22  David S. Miller  <davem@davemloft.net>
644
645         * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark
646         fpack16, fpack32, fpackfix as const.
647
648         * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG,
649         I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New
650         constants.  Use them everywhere.
651
652 2011-09-22  Oleg Endo  <oleg.endo@t-online.de>
653
654         * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs.
655         Added AND special case.  Adapted comments.
656         (sh_rtx_costs): Added XOR and IOR case.
657
658 2011-09-21  Jan Hubicka  <jh@suse.cz>
659
660         * ipa-inline-analsis.c (compute_inline_parameters): Set
661         cfun and current_function_decl.
662
663 2011-09-21  Jan Hubicka  <jh@suse.cz>
664
665         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow
666         handled components in parameter of builtin_constant_p.
667         (will_be_nonconstant_predicate): Allow loads of non-SSA parameters.
668
669 2011-09-21  Jan Hubicka  <jh@suse.cz>
670
671         * ipa-inline.c (relative_time_benefit): Fix wrong bracketting.
672         * ipa-inline.h (estimate_edge_time): Fix pasto.
673         * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping.
674
675 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
676
677         * config/i386/i386.c (ix86_expand_sse_movcc): Use
678         blendvps, blendvpd and pblendvb if possible.
679
680 2011-09-21  Uros Bizjak  <ubizjak@gmail.com>
681
682         PR target/50464
683         * config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Change
684         operand 1 predicate to register_operand and operand 2 predicate
685         to nonimmediate_operand.
686         * config/i386/i386.c (ix86_expand_sse_movcc): When generating
687         xop_pcmov, force op_true to register.  Also, force op_false to
688         register if it doesn't satisfy nonimmediate_operand predicate.
689
690 2011-09-21  Kirill Yukhin  <kirill.yukhin@intel.com>
691
692         * config/i386/bmi2intrin.h (_mulx_u64): New.
693         (_mulx_u32): Ditto.
694
695 2011-09-21  Jan Hubicka  <jh@suse.cz>
696
697         PR tree-optimization/50433
698         * ipa-inline-analysis.c (eliminated_by_inlining_prob):
699         Use get_base_address.
700
701 2011-09-21  Jakub Jelinek  <jakub@redhat.com>
702
703         * config/i386/sse.md (<code><mode>3 smaxmin:VI124_128 expander): Use
704         nonimmediate_operand instead of register_operand predicate for operands
705         1 and 2, force them into registers if expanding them as comparison.
706         (<code><mode>3 umaxmin:VI124_128 expander): Similarly.  For UMAX
707         V8HImode force into register just operand 1.
708
709 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
710
711         PR target/45099
712         * config/avr/avr.c (avr_function_arg_advance): Change error to
713         warning if a fixed register is needed as function argument.
714
715 2011-09-21  Georg-Johann Lay  <avr@gjlay.de>
716
717         PR target/50449
718         PR target/50465
719         * config/avr/avr.md (adjust_len): New insn attribute.
720         (*reload_insi, *reload_insf): Use it.
721         (*movsi, *movsf): Use new interface of output_movsisf.
722         * config/avr/avr-protos.h (output_movsisf): Change prototype.
723         * config/avr/avr.c (output_movsisf): Ditto.
724         (adjust_insn_length): Use insn attribute "adjust_len" to adjust
725         lengths of insns *reload_insi, *reload_insf.
726         (output_reload_insisf_1): New static function.
727         (output_reload_insisf): Use it.
728
729 2011-09-21  David S. Miller  <davem@davemloft.net>
730
731         * config/sparc/sparc.c (def_builtin): Change from macro into function.
732         (def_builtin_const): New.
733         (sparc_vis_init_builtins): Use def_builtin_const for all VIS builtins
734         other than alignaddr and falignaddr.
735
736         * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE, UNSPEC_FCMPGT,
737         UNSPEC_FCMPEQ): New unspec codes.
738         (fcmple16_vis, fcmple32_vis, fcmpne16_vis, fcmpne32_vis, fcmpgt16_vis,
739         fcmpgt32_vis, fcmpeq16_vis, fcmpeq32_vis): New patterns.
740         * config/sparc/sparc.c (sparc_vis_init_builtins): Create builtins for
741         new pixel compare VIS patterns.
742         * config/sparc/visintrin.h (__vis_fcmple16, __vis_fcmple32,
743         __vis_fcmpne16, __vis_fcmpne32, __vis_fcmpgt16, __vis_fcmpgt32,
744         __vis_fcmpeq16, __vis_fcmpeq32): New.
745         * doc/extend.texi: Document new pixel compare VIS intrinsics.
746
747 2011-09-21  Tom de Vries  <tom@codesourcery.com>
748
749         * final.c (final): Handle if JUMP_LABEL is not LABEL_P.
750
751 2011-09-20  David S. Miller  <davem@davemloft.net>
752
753         * config/sparc/sparc.md (UNSPEC_ALIGNADDRL): New unspec.
754         (aligneddrl<P:mode>_vis): New pattern.
755         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
756         edge32l_vis): Adjust to take Pmode arguments, and return SImode.
757         * config/sparc/sparc.c (sparc_vis_init_builtins): Handle new
758         alignaddrl insn, and adjust edge operations for updated types.
759         * config/sparc/visintrin.h: Likewise.
760         * doc/extend.texi: Make typing in VIS documentation match reality.
761
762 2011-09-20  Terry Guo  <terry.guo@arm.com>
763
764         * config/arm/arm-arches.def: Add armv6s-m.
765         * config/arm/arm-tables.opt: Regenerate.
766
767 2011-09-20  Wei Guozhi  <carrot@google.com>
768
769         PR rtl-optimization/49452
770         * postreload.c (reload_combine): Invalidate use information when across
771         volatile insn.
772
773 2011-09-19  Maxim Kuvyrkov  <maxim@codesourcery.com>
774
775         * haifa-sched.c (has_edge_p, prev_non_location_insn, check_cfg):
776         Remove maintenance overhead.
777         (haifa_sched_init, sched_finish): Update.
778
779 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
780
781         * config/i386/mmx.md (*mov<mode>_internal_rex64): Use if_then_else RTX
782         to calculate unit, prefix_rep and prefix_data16 attributes.
783         (*mov<mode>_internal): Ditto for unit attribute.
784         (*movv2sf_internal_rex64): Ditto for unit and prefix_rep attributes.
785         (*movv2sf_internal): Ditto.
786         * config/i386/sse.md (VI1248_256): Remove mode iterator.
787         (avx2_eq<mode>3): Use VI_256 instead of VI1248_256.
788         (*avx2_eq<mode>3): Ditto.
789         (avx2_gt<mode>3): Ditto.
790
791 2011-09-19  Uros Bizjak  <ubizjak@gmail.com>
792
793         * config/i386/i386.md (maxmin): New code iterator.
794         * config/i386/sse.md (<maxmin:code><mode>3): Macroize expander
795         from <umaxmin:code><mode>3 and <smaxmin:code><mode>3 using maxmin
796         code iterator.
797         (*avx2_<maxmin:code><mode>3): Macroize isn from
798         *avx2_<umaxmin:code><mode>3 and *avx2_<smaxmin:code><mode>3 using
799         maxmin code iterator.
800         (<smaxmin:code><VI124_128:mode>3): Merge with <smaxmin:code>v8hi3.
801         (<umaxmin:code><VI124_128:mode>3): Merge with umaxv4si3 and
802         <umaxmin:code>v16qi3.
803
804 2011-09-19  Alan Modra  <amodra@gmail.com>
805             Michael Meissner  <meissner@linux.vnet.ibm.com>
806
807         PR target/50341
808         * config/rs6000/rs6000.md (call_indirect_aix<ptrsize>): Do not
809         split the load of the indirect function's TOC from the call to
810         prevent the compiler from moving the load of the new TOC above
811         code that references the current function's TOC.
812         (call_indirect_aix<ptrsize>_internal): Ditto.
813         (call_indirect_aix<ptrsize>_nor11): Ditto.
814         (call_indirect_aix<ptrsize>_internal2): Ditto.
815         (call_value_indirect_aix<ptrsize>): Ditto.
816         (call_value_indirect_aix<ptrsize>_internal): Ditto.
817         (call_value_indirect_aix<ptrsize>_nor11): Ditto.
818         (call_value_indirect_aix<ptrsize>_internal2): Ditto.
819
820 2011-09-19  Jakub Jelinek  <jakub@redhat.com>
821
822         * config/i386/sse.md (*sse4_1_extractps): Change into
823         define_insn_and_split, add =x 0 n and =x x n alternatives
824         and split them after reload.
825
826 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
827
828         * tree.h (TREE_NOT_CHECK4): Rename from bogus NON_TREE_CHECK4.
829
830 2011-09-19  Alexandre Oliva  <aoliva@redhat.com>
831
832         * emit-rtl.c (copy_insn_1): Do not copy DEBUG_EXPRs.
833
834 2011-09-19  Ira Rosen  <ira.rosen@linaro.org>
835
836         PR tree-optimization/50413
837         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail to vectorize
838         a basic block if one of its data-refs can't be analyzed.
839
840 2011-09-19  Paul Brook  <paul@codesourcery.com>
841
842         * config/arm/predicates.md (shift_amount_operand): Check constant
843         shift count is in range.
844         (const_shift_operand): Remove.
845
846 2011-09-18  Eric Botcazou  <ebotcazou@adacore.com>
847             Iain Sandoe  <developer@sandoe-acoustics.co.uk>
848
849         PR target/50091
850         * config/rs6000/rs6000.md (probe_stack): Use explicit operand.
851         * config/rs6000/rs6000.c (output_probe_stack_range): Likewise.
852
853 2011-09-18  H.J. Lu  <hongjiu.lu@intel.com>
854
855         * config/i386/bmiintrin.h: Remove tmp.
856         * config/i386/tbmintrin.h: Likewise.
857
858 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
859
860         PR tree-optimization/50414
861         * tree-vect-slp.c (vect_get_constant_vectors): Handle MAX_EXPR and
862         MIN_EXPR.
863
864 2011-09-18  Ira Rosen  <ira.rosen@linaro.org>
865
866         PR tree-optimization/50412
867         * tree-vect-data-refs.c (vect_analyze_group_access): Fail for
868         acceses that require epilogue loop if vectorizing outer loop.
869
870 2011-09-17  David S. Miller  <davem@davemloft.net>
871
872         * config/sparc/sparc.md (UNSPEC_EDGE8, UNSPEC_EDGE8L,
873         UNSPEC_EDGE16, UNSPEC_EDGE16L, UNSPEC_EDGE32, UNSPEC_EDGE32L):
874         New unspecs.
875         (define_attr type): New type 'edge'.
876         (edge8_vis, edge8l_vis, edge16_vis, edge16l_vis, edge32_vis,
877         edge32l_vis): New patterns.
878         * config/sparc/ultra1_2.md: Add insn reservation for 'edge'.
879         * config/sparc/ultra3.md: Likewise.
880         * config/sparc/niagara.md: Likewise.
881         * config/sparc/niagara2.md: Likewise.
882         * config/sparc/sparc.d (sparc_vis_init_builtins): Generate
883         builtins for VIS edge instructions.
884         * config/sparc/visintrin.h (__vis_edge8, __vis_edge8l)
885         (__vis_edge16, __vis_edge16l, __vis_edge32, __vis_edge32l): New
886         intrinsics.
887         (__v8qi, __v4qi): Make unsigned.
888         (__vis_faligndatadi, ___vis_faligndatav2si, __vis_faligndatav4hi,
889         __vis_faligndatav8qi, __vis_fmul8x16au, __vis_fmul8x16al,
890         __vis_fpack32): Fix types.
891         * doc/extend.texi: Document new 'edge' VIS intrinsics.
892
893         * gcc/config/sparc/sparc.c (niagara2_costs): Adjust integer
894         divide costs.
895         (niagara3_costs): New.
896         (sparc_option_override): Use it.
897         * gcc/config/sparc/niagara2.md: Adjust with more accurate
898         Niagara-3 reservations.
899
900 2011-09-17  Jakub Jelinek  <jakub@redhat.com>
901
902         * config/i386/sse.md (VIMAX_AVX2): Change V4DI to V2TI.
903         (sse2_avx, sseinsnmode): Add V2TI.
904         (REDUC_SMINMAX_MODE): New mode iterator.
905         (reduc_smax_v4sf, reduc_smin_v4sf, reduc_smax_v8sf,
906         reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df): Remove.
907         (reduc_<code>_<mode>): New smaxmin and umaxmin expanders.
908         (sse2_lshrv1ti3): Rename to...
909         (<sse2_avx2>_lshr<mode>3): ... this.  Use VIMAX_AVX2 mode
910         iterator.  Move before umaxmin expanders.
911         * config/i386/i386.h (VALID_AVX256_REG_MODE,
912         SSE_REG_MODE_P): Accept V2TImode.
913         * config/i386/i386.c (ix86_expand_reduc): Handle V32QImode,
914         V16HImode, V8SImode and V4DImode.
915
916         * config/i386/i386.c (ix86_build_const_vector): Handle V8SImode
917         and V4DImode.
918         (ix86_build_signbit_mask): Likewise.
919         (ix86_expand_int_vcond): Likewise.  Handle V16HImode and V32QImode.
920         (bdesc_args): Use CODE_FOR_{s,u}m{ax,in}v{32q,16h,8s}i3
921         instead of CODE_FOR_avx2_{s,u}m{ax,in}v{32q,16h,8s}i3.
922         * config/i386/sse.md (avx2_<code><mode>3 umaxmin expand): Rename to...
923         (<code><mode>3) ... this.
924         (avx2_<code><mode>3 smaxmin expand): Rename to...
925         (<code><mode>3) ... this.
926         (smax<mode>3, smin<mode>3): Macroize using smaxmin code iterator.
927         (smaxv2di3, sminv2di3): Macroize using smaxmin code iterator and
928         VI8_AVX2 mode iterator.
929         (umaxv2di3, uminv2di3): Macroize using umaxmin code iterator and
930         VI8_AVX2 mode iterator.
931         (vcond<V_256:mode><VI_256:mode>, vcondu<V_256:mode><VI_256:mode>):
932         New expanders.
933
934 2011-09-17  Richard Sandiford  <rdsandiford@googlemail.com>
935
936         * config/ia64/itanium2.md: Use match_test rather than eq/ne symbol_ref
937         throughout file.
938
939 2011-09-16  David S. Miller  <davem@davemloft.net>
940
941         * config/sparc/visintrin.h: New file.
942         * config.gcc: Add it to extra_headers on sparc.
943
944 2011-09-16  Jakub Jelinek  <jakub@redhat.com>
945
946         * config/i386/i386.c (ix86_expand_reduc_v4sf): Rename to ...
947         (ix86_expand_reduc): ... this.  Handle also V8SFmode and V4DFmode.
948         * config/i386/sse.md (reduc_splus_v4sf, reduc_smax_v4sf,
949         reduc_smin_v4sf): Adjust callers.
950         (reduc_smax_v8sf, reduc_smin_v8sf, reduc_smax_v4df, reduc_smin_v4df):
951         New expanders.
952
953         * config/i386/sse.md (vec_extract_hi_<mode>,
954         vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use
955         vextracti128 instead of vextractf128 for -mavx2 and
956         integer vectors.  For V4DFmode fix up mode attribute.
957         (VEC_EXTRACT_MODE): For TARGET_AVX add 32-byte vectors.
958         (vec_set_lo_<mode>, vec_set_hi_<mode>): For VI8F_256 modes use V4DF
959         instead of V8SF mode attribute.
960         (avx2_extracti128): Change into define_expand.
961         * config/i386/i386.c (ix86_expand_vector_extract): Handle
962         32-byte vector modes if TARGET_AVX.
963
964 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
965
966         * config/avr/avr.md: (umulqihi3, mulqihi3): Write as one pattern.
967         (umulqi3_highpart, smulqi3_highpart): Ditto.
968         (*maddqihi4.const, *umaddqihi4.uconst): Ditto.
969         (*msubqihi4.const, *umsubqihi4.uconst): Ditto.
970         (*muluqihi3.uconst, *mulsqihi3.sconst): Ditto.
971
972 2011-09-16  Georg-Johann Lay  <avr@gjlay.de>
973
974         PR target/50358
975         * config/avr/avr.md (*ashiftqihi2.signx.1): New insn.
976         (*maddqi4, *maddqi4.const): New insns.
977         (*msubqi4, *msubqi4.const): New insns.
978         * config/avr/avr.c (avr_rtx_costs): Record costs of above in cases
979         PLUS:QI and MINUS:QI.  Increase costs of multiply-add/-sub for
980         HImode by 1 in the case of multiplying with a CONST_INT.
981         Record cost of *ashiftqihi2.signx.1 in case ASHIFT:QI.
982
983 2011-09-15   Jan Hubicka  <jh@suse.cz>
984
985         PR lto/50430
986         * gimple-fold.c (gimple_get_virt_method_for_binfo): Do not ICE on
987         error_mark_node in the DECL_INITIAL of vtable.
988
989 2011-09-15   Diego Novillo  <dnovillo@google.com>
990
991         * Makefile.in (SYSROOT_CFLAGS_FOR_TARGET): Define from
992         @SYSROOT_CFLAGS_FOR_TARGET@.
993         * configure.ac (SYSROOT_CFLAGS_FOR_TARGET): Set from build-sysroot.
994         * configure: Regenerate.
995         (site.exp): Add definition of TEST_ALWAYS_FLAGS.
996         Remove setting of GCC_UNDER_TEST.
997
998 2011-09-15  Uros Bizjak  <ubizjak@gmail.com>
999
1000         * config/i386/i386.c (output_fp_compare): Return %v prefixed
1001         instruction mnemonics for TARGET_AVX.
1002
1003         * config/i386/i386.md (*movdf_internal_rex64): use cond RTX in
1004         "type" attribute calculation.
1005         (*movdf_internal): Ditto.
1006         (*movsf_internal): Ditto.
1007
1008 2011-09-15  James Greenhalgh  <james.greenhalgh@arm.com>
1009
1010         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): New builtin macro.
1011
1012 2011-09-15  Jason Merrill  <jason@redhat.com>
1013
1014         PR c++/50361
1015         * expr.c (count_type_elements): Handle NULLPTR_TYPE.
1016
1017 2011-09-15  Jan Hubicka  <jh@suse.cz>
1018
1019         * ipa-inline-analysis.c (add_condition): Add conditions parameter;
1020         simplify obviously true clauses.
1021         (and_predicates, or_predicates): Add conditions parameter.
1022         (inline_duplication_hoook): Update.
1023         (mark_modified): New function.
1024         (unmodified_parm): New function.
1025         (eliminated_by_inlining_prob, (set_cond_stmt_execution_predicate,
1026         set_switch_stmt_execution_predicate, will_be_nonconstant_predicate):
1027         Use unmodified_parm.
1028         (estimate_function_body_sizes): Update.
1029         (remap_predicate): Update.
1030
1031 2011-09-15  Ira Rosen  <ira.rosen@linaro.org>
1032
1033         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Allow
1034         read-after-read dependencies in basic block SLP.
1035
1036 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
1037
1038         * config/sparc/sparc.md: Use match_test rather than eq/ne symbol_ref
1039         throughout file.
1040
1041 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
1042
1043         * config/sh/sh.md: Use match_test rather than eq/ne symbol_ref
1044         throughout file.
1045
1046 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
1047
1048         * config/s390/s390.md: Use match_test rather than eq/ne symbol_ref
1049         throughout file.
1050
1051 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
1052
1053         * config/rs6000/rs6000.md: Use match_test rather than eq/ne symbol_ref
1054         throughout file.
1055         * config/rs6000/constraints.md: Likewise.
1056
1057 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
1058
1059         * config/microblaze/microblaze.md: Use match_test rather than
1060         eq/ne symbol_ref throughout file.
1061
1062 2011-09-14  Richard Sandiford  <rdsandiford@googlemail.com>
1063
1064         * config/bfin/bfin.md: Use match_test rather than eq/ne symbol_ref
1065         throughout file.
1066
1067 2011-09-14  Tom de Vries  <tom@codesourcery.com>
1068
1069         PR middle-end/50251
1070         * explow.c (emit_stack_restore): Set crtl->need_drap if
1071         stack_restore is emitted.
1072
1073 2011-09-14  Julian Brown  <julian@codesourcery.com>
1074
1075         * config/arm/arm.c (arm_override_options): Add unaligned_access
1076         support.
1077         (arm_file_start): Emit attribute for unaligned access as appropriate.
1078         * config/arm/arm.md (UNSPEC_UNALIGNED_LOAD)
1079         (UNSPEC_UNALIGNED_STORE): Add constants for unspecs.
1080         (insv, extzv): Add unaligned-access support.
1081         (extv): Change to expander. Likewise.
1082         (extzv_t1, extv_regsi): Add helpers.
1083         (unaligned_loadsi, unaligned_loadhis, unaligned_loadhiu)
1084         (unaligned_storesi, unaligned_storehi): New.
1085         (*extv_reg): New (previous extv implementation).
1086         * config/arm/arm.opt (munaligned_access): Add option.
1087         * config/arm/constraints.md (Uw): New constraint.
1088         * expmed.c (store_bit_field_1): Adjust bitfield numbering according
1089         to size of access, not size of unit, when BITS_BIG_ENDIAN !=
1090         BYTES_BIG_ENDIAN. Don't use bitfield accesses for
1091         volatile accesses when -fstrict-volatile-bitfields is in effect.
1092         (extract_bit_field_1): Likewise.
1093
1094 2011-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
1095
1096         * simplify-rtx.c (simplify_subreg): Check that the inner mode is
1097         a scalar integer before applying integer-only optimisations to
1098         inner arithmetic.
1099
1100 2011-09-14  Bernd Schmidt  <bernds@codesourcery.com>
1101
1102         * config/mips/mips.c (mips_expand_epilogue): Generate a
1103         simple_return only if the return address is in r31.
1104
1105 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
1106
1107         * cfgcleanup.c (try_head_merge_bb): If get_condition returns
1108         NULL for a jump that is a cc0 insn, pick the previous insn for
1109         move_before.
1110
1111 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
1112
1113         * config/v850/v850.md: Use match_test rather than eq/ne symbol_ref
1114         throughout file.
1115
1116 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
1117
1118         * config/pa/pa.md: Use match_test rather than eq/ne symbol_ref
1119         throughout file.
1120
1121 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
1122
1123         * config/mn10300/mn10300.md: Use match_test rather than eq/ne
1124         symbol_ref throughout file.
1125
1126 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
1127
1128         * config/m68k/m68k.md: Use match_test rather than eq/ne symbol_ref
1129         throughout file.
1130
1131 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
1132
1133         * config/h8300/h8300.md: Use match_test rather than eq/ne symbol_ref
1134         throughout file.
1135
1136 2011-09-13  Richard Sandiford  <rdsandiford@googlemail.com>
1137
1138         * config/arm/arm.md: Use match_test rather than eq/ne symbol_ref
1139         throughout file.
1140         * config/arm/neon.md: Likewise.
1141         * config/arm/vfp.md: Likewise.
1142         * config/arm/thumb2.md: Likewise.
1143         * config/arm/cortex-m4.md: Likewise.
1144
1145 2011-09-13  Sevak Sargsyan <sevak.sargsyan@ispras.ru>
1146
1147         * config/arm/neon.md (neon_vabd<mode>_2, neon_vabd<mode>_3): New
1148         define_insn patterns for combine.
1149
1150 2011-09-13  Giuseppe Scrivano  <gscrivano@gnu.org>
1151
1152         * reorg.c: Always define make_return_insns.
1153
1154 2011-09-13  Jan Hubicka  <jh@suse.cz>
1155
1156         PR other/49533
1157         * cgraphunit.c (assemble_thunks_and_aliases): Force alias to be output.
1158
1159 2011-09-13  Jan Hubicka  <jh@suse.cz>
1160
1161         PR other/49533
1162         * ipa-inline-transform.c (can_remove_node_now_p): Fix thunkos.
1163
1164 2011-09-13  Paul Brook  <paul@codesourcery.com>
1165
1166         * config/arm/arm.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
1167         (ARM_TARGET2_DWARF_FORMAT): Provide default definition.
1168         * config/arm/linux-eabi.h (ARM_TARGET2_DWARF_FORMAT): Define.
1169         * config/arm/symbian.h (ARM_TARGET2_DWARF_FORMAT): Define.
1170         * config/arm/uclinux-eabi.h(ARM_TARGET2_DWARF_FORMAT): Define.
1171         * config/arm/t-bpabi (EXTRA_HEADERS): Add unwind-arm-common.h.
1172         * config/arm/t-symbian (EXTRA_HEADERS): Add unwind-arm-common.h.
1173         * config/c6x/c6x.c (c6x_output_file_unwind): Don't rely on dwarf2 code
1174         enabling unwind tables.
1175         (c6x_debug_unwind_info): New function.
1176         (TARGET_ARM_EABI_UNWINDER): Define.
1177         (TARGET_DEBUG_UNWIND_INFO): Define.
1178         * config/c6x/c6x.h (DWARF_FRAME_RETURN_COLUMN): Define.
1179         (TARGET_EXTRA_CFI_SECTION): Remove.
1180         * config/c6x/t-c6x-elf (EXTRA_HEADERS): Set.
1181         * ginclude/unwind-arm-common.h: New file.
1182
1183 2011-09-13  Georg-Johann Lay  <avr@gjlay.de>
1184
1185         PR target/50358
1186         * config/avr/predicates.md (const_1_to_6_operand): New predicate.
1187         * config/avr/avr.md: (extend_s): New code attribute.
1188         (mul_r_d): New code attribute.
1189         (*maddqihi4, *umaddqihi4): New insns.
1190         (*msubqihi4, *umsubqihi4): New insns.
1191         (*usmaddqihi4, *sumaddqihi4): New insns.
1192         (*usmsubqihi4, *susubdqihi4): New insns.
1193         (*umaddqihi4.uconst, *maddqihi4.sconst): New insn-and-splits.
1194         (*umsubqihi4.uconst, *msubqihi4.sconst): New insn-and-splits.
1195         (*umsubqihi4.uconst.ashift): New insn-and-split.
1196         (*msubqihi4.sconst.ashift): New insn-and-split.
1197         (*sumaddqihi4.uconst): New insn-and-split.
1198         (*sumsubqihi4.uconst): New insn-and-split.
1199         * config/avr/avr.c (avr_rtx_costs): Report costs of above in case
1200         PLUS:HI and MINUS:HI.
1201
1202 2011-09-13  Revital Eres  <revital.eres@linaro.org>
1203
1204         modulo-sched.c (remove_node_from_ps): Return void instead of bool.
1205         (optimize_sc): Adjust call to remove_node_from_ps.
1206         (sms_schedule): Add print info.
1207
1208 2011-09-13  Bernd Schmidt  <bernds@codesourcery.com>
1209
1210         * rtl.c (copy_rtx): Do not handle frame_related, jump or call
1211         flags specially.
1212
1213 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
1214
1215         PR bootstrap/50010
1216         * dwarf2cfi.c (add_cfis_to_fde): Ignore non-active insns in between
1217         NOTE_INSN_CFI notes, with the exception of
1218         NOTE_INSN_SWITCH_TEXT_SECTIONS.
1219
1220 2011-09-12  Bernd Schmidt  <bernds@codesourcery.com>
1221             Richard Sandiford  <rdsandiford@googlemail.com>
1222
1223         * config/mips/mips.c (mips_epilogue): New structure.
1224         (mips16e_save_restore_reg): Queue REG_CFA_RESTORE notes when
1225         restoring registers.
1226         (mips_epilogue_emit_cfa_restores): New function.
1227         (mips_epilogue_set_cfa): Likewise.
1228         (mips_restore_reg): Queue REG_CFA_RESTORE notes.  When restoring
1229         the current CFA register from the stack, redefine the CFA in terms
1230         of the stack pointer.
1231         (mips_expand_epilogue): Set up mips_epilogue.  Attach CFA information
1232         to the epilogue instructions.
1233
1234 2011-09-12  Richard Sandiford  <rdsandiford@googlemail.com>
1235
1236         * config/mips/mips.c (mips16e_save_restore_reg): Add a reg_parm_p
1237         argument.
1238         (mips16e_build_save_restore): Update accordingly.
1239
1240 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
1241
1242         PR rtl-optimization/50212
1243         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
1244         Skip also lps with NULL landing_pad or non-LABEL_P landing_pad.
1245
1246         PR debug/50299
1247         * calls.c (load_register_parameters): Use use_reg_mode instead
1248         of use_reg when adding a single register CALL_INSN_FUNCTION_USAGE
1249         entry.
1250         (expand_call): Set EXPR_LIST mode to TYPE_MODE of the argument
1251         for stack CALL_INSN_FUNCTION_USAGE uses.
1252         * expr.h (use_reg_mode): New prototype.
1253         (use_reg): Changed into inline around use_reg_mode.
1254         * expr.c (use_reg): Renamed to...
1255         (use_reg_mode): ... this.  Added MODE argument, set EXPR_LIST
1256         mode to that mode instead of VOIDmode.
1257         * var-tracking.c (prepare_call_arguments): Don't track parameters
1258         whose EXPR_LIST mode is VOIDmode, BLKmode or X mode isn't convertible
1259         to it using lowpart_subreg.  Convert VALUE and REG/MEM to the
1260         EXPR_LIST mode.
1261
1262 2011-09-12  Georg-Johann Lay  <avr@gjlay.de>
1263
1264         PR target/43746
1265         * config/avr/avr.c (AVR_SECTION_PROGMEM): New Define.
1266         (progmem_section): New Variable.
1267         (avr_asm_init_sections): Initialize it.
1268         (TARGET_ASM_SELECT_SECTION): Define to...
1269         (avr_asm_select_section): ... this new Function.
1270         (avr_replace_prefix): New Function.
1271         (avr_asm_function_rodata_section): Use it.
1272         (avr_insert_attributes): Don't add section attribute for PROGMEM.
1273         (avr_section_type_flags): Use avr_progmem_p instead of section
1274         name to detect if object is in PROGMEM.
1275         (avr_asm_named_section): Set section name prefix for objects in
1276         PROGMEM.
1277
1278 2011-09-12  Jakub Jelinek  <jakub@redhat.com>
1279
1280         PR bootstrap/50352
1281         * config/arm/arm.md (*push_fp_multi): Add % before %( and %) in the
1282         sprintf format string.
1283
1284 2011-09-12  Richard Guenther  <rguenther@suse.de>
1285
1286         PR tree-optimization/50343
1287         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Check
1288         that the reduction is over an SSA name before checking its definition.
1289
1290 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
1291
1292         * config/cris/cris.md: Use match_test rather than eq/ne symbol_ref
1293         throughout file.
1294
1295 2011-09-11  Richard Sandiford  <rdsandiford@googlemail.com>
1296
1297         * config/mips/mips.md: Use match_test rather than eq/ne symbol_ref
1298         throughout file.
1299         * config/mips/sb1.md: Likewise.
1300         * config/mips/predicates.md: Replace (match_test "!...")
1301         with (not (match_test "..."))
1302         * config/mips/constraints.md: Likewise.
1303
1304 2011-09-09  Andrew Stubbs  <ams@codesourcery.com>
1305
1306         * config/arm/arm-cores.def (generic-armv7-a): New architecture.
1307         * config/arm/arm-tables.opt: Regenerate.
1308         * config/arm/arm-tune.md: Regenerate.
1309         * config/arm/arm.c (arm_file_start): Output .arch directive when
1310         user passes -mcpu=generic-*.
1311         (arm_issue_rate): Add genericv7a support.
1312         * config/arm/arm.h (EXTRA_SPECS): Add asm_cpu_spec.
1313         (ASM_CPU_SPEC): New define.
1314         * config/arm/elf.h (ASM_SPEC): Use %(asm_cpu_spec).
1315         * config/arm/semi.h (ASM_SPEC): Likewise.
1316         * doc/invoke.texi (ARM Options): Document -mcpu=generic-*
1317         and -mtune=generic-*.
1318
1319 2011-09-09  Richard Guenther  <rguenther@suse.de>
1320
1321         PR tree-optimization/50328
1322         * tree-vect-loop.c (vect_is_simple_reduction_1): Allow one
1323         constant or default-def operand.
1324
1325 2011-09-09  Richard Guenther  <rguenther@suse.de>
1326
1327         * tree-ssa-pre.c (create_expression_by_pieces): Fold the
1328         last statement.
1329
1330 2011-09-09  Richard Guenther  <rguenther@suse.de>
1331
1332         * gimple.h (fold_stmt_inplace): Adjust to take a gimple_stmt_iterator
1333         instead of a statement.
1334         * gimple-fold.c (fold_stmt_inplace): Likewise.
1335         * sese.c (graphite_copy_stmts_from_block): Adjust.
1336         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
1337         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Use
1338         fold_stmt.
1339         (forward_propagate_addr_into_variable_array_index): Likewise.
1340         (forward_propagate_addr_expr_1): adjust.
1341         (associate_plusminus): Likewise.
1342         (ssa_forward_propagate_and_combine): Likewise.
1343         * tree-ssa-mathopts.c (replace_reciprocal): Adjust.
1344         (execute_cse_reciprocals): Likewise.
1345         * tree-ssa.c (insert_debug_temp_for_var_def): Adjust.
1346
1347 2011-09-09  Nick Clifton  <nickc@redhat.com>
1348
1349         * config/mn10300/mn10300.c (mn10300_split_and_operand_count):
1350         Return a positive value to indicate that the bits at the
1351         bottom of the register should be cleared.
1352
1353 2011-09-09  Richard Guenther  <rguenther@suse.de>
1354
1355         * tree-ssa-operands.c (swap_tree_operands): Always adjust
1356         existing operand positions.
1357
1358 2011-09-09  Richard Guenther  <rguenther@suse.de>
1359
1360         PR middle-end/50333
1361         * tree-data-ref.c (split_constant_offset): Do not try to handle
1362         ternary ops.
1363
1364 2011-09-08  Andrew Stubbs  <ams@codesourcery.com>
1365
1366         PR tree-optimization/50318
1367         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Correct
1368         typo in use of mult_rhs1 and mult_rhs2.
1369
1370 2011-09-08  Uros Bizjak  <ubizjak@gmail.com>
1371
1372         * config/i386/i386.c (standard_sse_constant_p): Handle AVX2 modes.
1373         (standard_sse_constant_opcode) <case 2>: Change vpcmpeqd template.
1374
1375 2011-09-08  Bernd Schmidt  <bernds@codesourcery.com>
1376
1377         * config/arm/arm.md (push_multi): Emit predicates.
1378         (push_fp_multi): Likewise.
1379         * config/arm/arm.c (vfp_output_fstmd): Likewise.
1380
1381 2011-09-08  Dodji Seketeli  <dodji@redhat.com>
1382
1383         PR c++/33255 - Support -Wunused-local-typedefs warning
1384         * c-decl.c (lookup_name): Use the new maybe_record_typedef_use.
1385         (pushdecl): Use the new record_locally_defined_typedef.
1386         (store_parm_decls): Allocate cfun->language.
1387         (finish_function): Use the new maybe_warn_unused_local_typedefs,
1388         and free cfun->language.
1389         (c_push_function_context): Allocate cfun->language here only if needed.
1390         (c_pop_function_context): Likewise, mark cfun->language
1391         for collection only when it should be done.
1392         * c-common.c (handle_used_attribute): Don't ignore TYPE_DECL nodes.
1393         * c-typeck.c (c_expr_sizeof_type, c_cast_expr): Use the new
1394         maybe_record_local_typedef_use.
1395         * doc/invoke.texi: Update documentation for
1396         -Wunused-local-typedefs.
1397
1398 2011-09-08  Enkovich Ilya  <ilya.enkovich@intel.com>
1399
1400         * config/i386/i386-protos.h (ix86_lea_outperforms): New.
1401         (ix86_avoid_lea_for_add): Likewise.
1402         (ix86_avoid_lea_for_addr): Likewise.
1403         (ix86_split_lea_for_addr): Likewise.
1404
1405         * config/i386/i386.c (LEA_MAX_STALL): New.
1406         (increase_distance): Likewise.
1407         (insn_defines_reg): Likewise.
1408         (insn_uses_reg_mem): Likewise.
1409         (distance_non_agu_define_in_bb): Likewise.
1410         (distance_agu_use_in_bb): Likewise.
1411         (ix86_lea_outperforms): Likewise.
1412         (ix86_ok_to_clobber_flags): Likewise.
1413         (ix86_avoid_lea_for_add): Likewise.
1414         (ix86_avoid_lea_for_addr): Likewise.
1415         (ix86_split_lea_for_addr): Likewise.
1416         (distance_non_agu_define): Search in pred BBs added.
1417         (distance_agu_use): Search in succ BBs added.
1418         (IX86_LEA_PRIORITY): Value changed from 2 to 0.
1419         (LEA_SEARCH_THRESHOLD): Now depends on LEA_MAX_STALL.
1420         (ix86_lea_for_add_ok): Use ix86_lea_outperforms to make decision.
1421
1422         * config/i386/i386.md: Split added to transform non destructive
1423         add into move and add.
1424         (lea_1): transformed into insn_and_split to avoid AGU stalls.
1425         (lea<mode>_2): Likewise.
1426
1427 2011-09-08  Martin Jambor  <mjambor@suse.cz>
1428
1429         PR tree-optimization/50287
1430         * ipa-split.c (split_function): Do not create SSA names for
1431         non-gimple-registers.
1432
1433 2011-09-08  Richard Guenther  <rguenther@suse.de>
1434
1435         PR tree-optimization/19831
1436         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Also
1437         skip builtins with vdefs that do not really store something.
1438         (propagate_necessity): For calls to free that we can associate
1439         with an allocation function do not mark the freed pointer
1440         definition necessary.
1441         (eliminate_unnecessary_stmts): Remove a call to free if
1442         the associated call to an allocation function is not necessary.
1443
1444 2011-09-08  Richard Guenther  <rguenther@suse.de>
1445
1446         PR tree-optimization/19831
1447         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark
1448         allocation functions as necessary.
1449
1450 2011-09-08  Iain Sandoe  <iains@gcc.gnu.org>
1451
1452         * config/darwin-driver.c (darwin_find_version_from_kernel): New routine
1453         cut from ...
1454         (darwin_default_min_version): Amended to provide defaults
1455         for the cross directory case.
1456         (darwin_driver_init): call darwin_default_min_version unconditionally.
1457         * config/darwin.h (DEF_MIN_OSX_VERSION): New.
1458         * config/darwin9.h: Likewise.
1459         * config/darwin10.h: Likewise.
1460         * config/rs6000/darwin7.h: Likewise.
1461
1462 2011-09-08  Jakub Jelinek  <jakub@redhat.com>
1463
1464         PR target/50310
1465         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Return
1466         code early if TARGET_AVX.
1467         (ix86_expand_fp_vcond): Handle LTGT and UNEQ.
1468
1469 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
1470
1471         * config/i386/sse.md (sseinsnmode): Remove 32-byte integer vector
1472         duplicates.
1473
1474         PR target/50310
1475         * config/i386/sse.md (*andnot<mode>3, *<code><mode>3): Fix up
1476         "mode" attribute computation.
1477
1478 2011-09-07  Bernd Schmidt  <bernds@codesourcery.com>
1479
1480         * regrename.c (struct du_head): Make nregs signed.
1481         (closed_chains): Remove.
1482         (create_new_chain): Return the new chain.
1483         (chain_from_id): New static function.
1484         (dump_def_use_chain): Change argument to be an int, indicating
1485         the first ID to print.  All callers changed.
1486         (merge_overlapping_regs): Use chain_from_id.  Assert that
1487         chains don't conflict with themselves.
1488         (rename_chains): Take no argument.  Iterate over id_to_chain
1489         rather to find chains to rename.  Clear tick before the main loop.
1490         (struct incoming_reg_info): New struct.
1491         (struct bb_rename_info): New struct.
1492         (init_rename_info, set_incoming_from_chain, merge_chains): New
1493         static functions.
1494         (regrename_analyze): New static function, broken out of
1495         regrename_optimize.  Record and make use of open chain information
1496         at basic block boundaries, and merge chains where possible.
1497         (scan_rtx_reg): Make this_nregs signed.  Don't update
1498         closed_chains.
1499         (build_def_use): Return a bool to indicate success.  All callers
1500         changed.  Don't initialize global data here.
1501         (regrename_optimize): Move most code out of here into
1502         regrename_analyze.
1503         * regs.h (add_range_to_hard_reg_set, remove_range_from_hard_reg_set,
1504         range_overlaps_hard_reg_set_p, range_in_hard_reg_set_p): New
1505         static inline functions.
1506         * vec.h (FOR_EACH_VEC_ELT_FROM): New macro.
1507
1508         * bb-reorder.c (insert_section_boundary_note): Don't check
1509         optimize_function_for_speed_p.
1510         (gate_handle_partition_blocks): Do it here instead.
1511         (gate_handle_reorder_blocks): Move preliminary checks here ...
1512         (rest_of_handle_reorder_blocks): ... from here.
1513
1514 2011-09-07  Martin Jambor  <mjambor@suse.cz>
1515
1516         PR middle-end/50301
1517         * ipa-cp.c (find_more_values_for_callers_subset): Check jump
1518         function index bounds.
1519         (perhaps_add_new_callers): Likewise.
1520
1521 2011-09-07  Martin Jambor  <mjambor@suse.cz>
1522
1523         PR tree-optimization/49911
1524         * tree-sra.c (analyze_access_subtree): Change type of to-be-replaced
1525         enumerations to the corresponding plain integer type.
1526
1527 2011-09-07  Richard Guenther  <rguenther@suse.de>
1528
1529         PR tree-optimization/50319
1530         * tree-if-conv.c (set_bb_predicate): Assert we only set
1531         canonical predicates.
1532         (add_to_predicate_list): Simplify.  Allow TRUTH_NOT_EXPR
1533         around canonical predicates.
1534         (predicate_bbs): Do not re-gimplify already canonical
1535         predicates.  Properly unshare them though.
1536         (find_phi_replacement_condition): Simplify.
1537
1538 2011-09-07  Richard Sandiford  <richard.sandiford@linaro.org>
1539
1540         PR target/49030
1541         * config/arm/arm-protos.h (maybe_get_arm_condition_code): Declare.
1542         * config/arm/arm.c (maybe_get_arm_condition_code): New function,
1543         reusing the old code from get_arm_condition_code.  Return ARM_NV
1544         for invalid comparison codes.
1545         (get_arm_condition_code): Redefine in terms of
1546         maybe_get_arm_condition_code.
1547         * config/arm/predicates.md (arm_comparison_operator): Use
1548         maybe_get_arm_condition_code.
1549
1550 2011-09-07  Richard Guenther  <rguenther@suse.de>
1551
1552         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
1553         Canonicalize negated predicates by swapping edges.
1554         (forward_propagate_into_cond): Likewise.
1555
1556 2011-09-07  Richard Guenther  <rguenther@suse.de>
1557
1558         PR tree-optimization/50213
1559         * tree-flow.h (simple_iv_increment_p): Declare.
1560         * tree-ssa-dom.c (simple_iv_increment_p): Export.  Also handle
1561         POINTER_PLUS_EXPR.
1562         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Do
1563         not propagate simple IV counter increments.
1564
1565 2011-09-07  Eric Botcazou  <ebotcazou@adacore.com>
1566             Iain Sandoe  <iains@gcc.gnu.org>
1567
1568         * config/rs6000/rs6000.c (compute_save_world_info): Test
1569         cfun->has_nonlocal_label to determine if the out-of-line save
1570         world call may be used.
1571
1572 2011-09-07  Nick Clifton  <nickc@redhat.com>
1573
1574         * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Set the jump
1575         label on the parallel part of the insn.
1576
1577 2011-09-07  Jakub Jelinek  <jakub@redhat.com>
1578
1579         PR debug/50191
1580         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Try
1581         avoid_constant_pool_reference first instead of last.
1582
1583 2011-09-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
1584
1585         * doc/configfiles.texi (Configuration Files): Update documentation
1586         about tm_p.h and remove FIXME comment.
1587
1588 2011-09-06  Uros Bizjak  <ubizjak@gmail.com>
1589
1590         * config/i386/i386.c (ix86_function_value_regno_p): Use AX_REG.
1591         (function_value_32): Do not check TARGET_MMX, TARGET_SSE or TARGET_AVX.
1592
1593 2011-09-06  Iain Sandoe  <iains@gcc.gnu.org>
1594
1595         * config/darwin10.h Remove duplicate LIB_SPEC.
1596
1597 2011-09-06  Enkovich Ilya  <ilya.enkovich@intel.com>
1598
1599         PR middle-end/44382
1600         * target.def (reassociation_width): New hook.
1601
1602         * doc/tm.texi.in (reassociation_width): Likewise.
1603
1604         * doc/tm.texi (reassociation_width): Likewise.
1605
1606         * doc/invoke.texi (tree-reassoc-width): New param documented.
1607
1608         * hooks.h (hook_int_uint_mode_1): New default hook.
1609
1610         * hooks.c (hook_int_uint_mode_1): Likewise.
1611
1612         * config/i386/i386.h (ix86_tune_indices): Add
1613         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
1614
1615         (TARGET_REASSOC_INT_TO_PARALLEL): New.
1616         (TARGET_REASSOC_FP_TO_PARALLEL): Likewise.
1617
1618         * config/i386/i386.c (initial_ix86_tune_features): Add
1619         X86_TUNE_REASSOC_INT_TO_PARALLEL and X86_TUNE_REASSOC_FP_TO_PARALLEL.
1620
1621         (ix86_reassociation_width): New function.
1622
1623         * params.def (PARAM_TREE_REASSOC_WIDTH): New param added.
1624
1625         * tree-ssa-reassoc.c (get_required_cycles): New function.
1626         (get_reassociation_width): Likewise.
1627         (swap_ops_for_binary_stmt): Likewise.
1628         (rewrite_expr_tree_parallel): Likewise.
1629
1630         (rewrite_expr_tree): Refactored.  Part of code moved into
1631         swap_ops_for_binary_stmt.
1632
1633         (reassociate_bb): Now checks reassociation width to be used and
1634         call rewrite_expr_tree_parallel instead of rewrite_expr_tree if needed.
1635
1636 2011-09-06  Richard Guenther  <rguenther@suse.de>
1637
1638         PR tree-optimization/47025
1639         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): BUILT_IN_VA_END
1640         uses nothing.
1641         (call_may_clobber_ref_p_1): BUILT_IN_VA_END is a barrier like
1642         BUILT_IN_FREE.
1643         (stmt_kills_ref_p_1): BUILT_IN_VA_END kills what its argument
1644         definitely points to.
1645         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
1646         BUILT_IN_VA_START doesn't let its va_list argument escape.
1647         * tree-ssa-dce.c (propagate_necessity): BUILT_IN_VA_END does
1648         not make any previous stores necessary.
1649
1650 2011-09-06  Martin Jambor  <mjambor@suse.cz>
1651
1652         * ipa-inline.h (struct inline_summary): Move versionable flag...
1653         * cgraph.h (struct cgraph_local_info): ...here
1654         * ipa-cp.c (determine_versionability): Use the new versionable flag.
1655         (determine_versionability): Likewise.
1656         (ipcp_versionable_function_p): Likewise.
1657         (ipcp_generate_summary): Likewise.
1658         * ipa-inline-analysis.c (dump_inline_summary): Do not dump the
1659         versionable flag.
1660         (compute_inline_parameters): Do not clear the versionable flag.
1661         (inline_read_section): Do not stream the versionable flag.
1662         (inline_write_summary): Likewise.
1663         * lto-cgraph.c (lto_output_node): Stream the versionable flag.
1664         (input_overwrite_node): Likewise.
1665
1666 2011-09-06  Richard Guenther  <rguenther@suse.de>
1667
1668         PR tree-optimization/48149
1669         * tree-ssa-sccvn.c (vn_get_expr_for): Simplify.  Fix tuplification bug.
1670         (vn_valueize): Move earlier.
1671         (valueize_expr): Use vn_valueize.
1672         (simplify_binary_expression): Simplify, also combine COMPLEX_EXPR
1673         operands.
1674         (simplify_unary_expression): Simplify.
1675
1676 2011-09-06  Richard Guenther  <rguenther@suse.de>
1677
1678         PR tree-optimization/48317
1679         * tree-ssa-sccvn.h (struct vn_nary_op_s): Make op a true
1680         trailing array.
1681         (sizeof_vn_nary_op): New inline function.
1682         (vn_nary_op_lookup_pieces): Adjust.
1683         (vn_nary_op_insert_pieces): Likewise.
1684         * tree-ssa-sccvn.c (vn_nary_op_eq): Also compare the length.
1685         (init_vn_nary_op_from_pieces): Adjust signature.  Deal with
1686         any number of operands.
1687         (vn_nary_length_from_stmt): New function.
1688         (init_vn_nary_op_from_stmt): Adjust for CONSTRUCTOR handling.
1689         (vn_nary_op_lookup_pieces): Adjust signature and allocate properly
1690         sized temporary.
1691         (vn_nary_op_lookup): Likewise.
1692         (vn_nary_op_lookup_stmt): Likewise.
1693         (vn_nary_op_insert_into): Likewise.
1694         (vn_nary_op_insert_stmt): Likewise.
1695         (visit_use): Handle CONSTRUCTOR as nary.
1696         * tree-ssa-pre.c (phi_translate_1): Adjust.
1697         (create_expression_by_pieces): Likewise.
1698         (compute_avail): Likewise.
1699
1700 2011-09-06  Ira Rosen  <ira.rosen@linaro.org>
1701
1702          * config/arm/arm.c (arm_preferred_simd_mode): Check
1703         TARGET_NEON_VECTORIZE_DOUBLE instead of
1704         TARGET_NEON_VECTORIZE_QUAD.
1705         (arm_autovectorize_vector_sizes): Likewise.
1706         * config/arm/arm.opt (mvectorize-with-neon-quad): Make inverse
1707         mask of mvectorize-with-neon-double.  Add RejectNegative.
1708         (mvectorize-with-neon-double): New.
1709
1710 2011-09-06  Richard Guenther  <rguenther@suse.de>
1711
1712         * tree-ssa-sccvn.c (visit_use): CSE stmt pieces and simplify matching.
1713
1714 2011-09-06  Tom de Vries  <tom@codesourcery.com>
1715
1716         * recog.c (asm_labels_ok): New function.
1717         (check_asm_operands): Use asm_labels_ok.
1718
1719 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
1720
1721         PR target/49606
1722         * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): Check Pmode.
1723         (PMODE_INSN): New macro.
1724         * config/mips/mips.c (gen_load_const_gp): Use PMODE_INSN.
1725         (mips_got_load, mips_expand_synci_loop): Likewise.
1726         (mips_save_gp_to_cprestore_slot): Handle SImode and DImode
1727         cprestore patterns.
1728         (mips_emit_loadgp): Use PMODE_INSN.  Handle SImode and DImode
1729         copygp_mips16 patterns.
1730         (mips_expand_prologue): Handle SImode and DImode potential_cprestore
1731         and use_cprestore patterns.
1732         (mips_override_options): Check for incompatible -mabi and -mlong
1733         combinations.
1734         * config/mips/mips.md (unspec_got<mode>): Rename to...
1735         (unspec_got_<mode>): ...this.
1736         (copygp_mips16): Use the Pmode iterator.
1737         (potential_cprestore, cprestore, use_cprestore): Likewise.
1738         (clear_cache, indirect_jump): Use PMODE_INSN.
1739         (indirect_jump<mode>): Rename to...
1740         (indirect_jump_<mode>): ...this.
1741         (tablejump): Use PMODE_INSN.
1742         (tablejump<mode>): Rename to...
1743         (tablejump_<mode>): ...this.
1744         (exception_receiver): Handle restore_gp_si and restore_gp_di.
1745         (restore_gp): Use the Pmode iterator.
1746         * config/mips/mips-dsp.md (mips_lbux, mips_lhx, mips_lwx): Use
1747         PMODE_INSN.
1748
1749 2011-09-05  Richard Sandiford  <rdsandiford@googlemail.com>
1750
1751         * config/mips/mips.c (mips_gimplify_va_arg_expr): Unshare off.
1752         Fix the type of the BIT_AND_EXPR.
1753
1754 2011-09-05  David S. Miller  <davem@davemloft.net>
1755
1756         * config.host: Add driver-sparc.o and sparc/x-sparc on
1757         native sparc*-*-linux* builds.
1758         * config/sparc/driver-sparc.c: Correct Linux strings.
1759         * config/sparc/linux.h: Add DRIVER_SELF_SPECS.
1760         * config/sparc/linux64.h: Likewise.
1761         * doc/invoke.texi: Document that Linux also supports
1762         -mcpu=native and -mtune=native on sparc.
1763
1764         * config/sparc/sparc-opts.h (PROCESSOR_NIAGARA3,
1765         PROCESSOR_NIAGARA4): New.
1766         * config/sparc/sparc.opt: Handle new processor types.
1767         * config/sparc/sparc.md: Add to "cpu" attribute.
1768         * config/sparc/sparc.h (TARGET_CPU_niagara3,
1769         TARGET_CPU_niagara4): New, treat as niagara2.
1770         * config/sparc/linux64.h: Handle niagara3 and niagara4 like niagara2.
1771         * config/sparc/sol2.h: Likewise.
1772         * config/sparc/niagara2.md: Schedule niagara3 like niagara2.
1773         * config/sparc/sparc.c (sparc_option_override): Add
1774         niagara3 and niagara4 handling.
1775         (sparc32_initialize_trampoline): Likewise.
1776         (sparc64_initialize_trampoline): Likewise.
1777         (sparc_use_sched_lookahead): Likewise.
1778         (sparc_issue_rate): Likewise.
1779         (sparc_register_move_cost): Likewise.
1780         * config/sparc/driver-sparc.c (cpu_names): Use niagara3
1781         and niagara4 as appropriate.
1782         * doc/invoke.texi: Document new processor types.
1783         * config.gcc: Recognize niagara3 and niagara4 in --with-cpu
1784         and --with-tune options.
1785
1786         * config/sparc/sol2-64.h: Move ...
1787         * config/sparc/default-64.h: ... to here.  Update comment.
1788         * config.gcc: Update Solaris sparc to use default-64.h, also
1789         prefix this header into the list on sparc64-*-linux.
1790         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if
1791         TARGET_64BIT_DEFAULT is defined.  Remove commented out reference
1792         to MASK_HARD_QUAD.
1793
1794 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
1795
1796         PR target/50289
1797         * config/avr/avr.c (sequent_regs_live): Don't recognize sequences
1798         that contain global register variable.
1799
1800 2011-09-05  Richard Guenther  <rguenther@suse.de>
1801
1802         * tree-cfg.c (replace_uses_by): Use fold_stmt, not fold_stmt_inplace.
1803
1804 2011-09-05  Richard Guenther  <rguenther@suse.de>
1805
1806         * stor-layout.c (layout_type): Use size_binop for array size
1807         calculations.
1808
1809 2011-09-05  Georg-Johann Lay  <avr@gjlay.de>
1810
1811         * config/avr/avr.h (progmem_section): Remove Declaration.
1812         * config/avr/avr.c (progmem_section): Make static and rename to
1813         progmem_swtable_section.
1814         (avr_output_addr_vec_elt): No need to switch sections.
1815         (avr_asm_init_sections): Use output_section_asm_op as section
1816         callback for progmem_swtable_section.
1817         (avr_output_progmem_section_asm_op): Remove Function.
1818         (TARGET_ASM_FUNCTION_RODATA_SECTION): New Define.
1819         (avr_asm_function_rodata_section): New static Function.
1820         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Output
1821         alignment 2**1 for jump tables.
1822
1823 2011-09-04  Jan Hubicka  <jh@suse.cz>
1824
1825         * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Check that
1826         parameter is SSA name.
1827
1828 2011-09-04  Richard Guenther  <rguenther@suse.de>
1829
1830         Revert
1831         2011-08-31  Richard Guenther  <rguenther@suse.de>
1832
1833         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
1834         special-casing.
1835
1836 2011-09-04  Iain Sandoe  <iains@gcc.gnu.org>
1837
1838         PR debug/49901
1839         * config/darwin.h (DEBUG_MACRO_SECTION): New macro.
1840
1841 2011-09-04  Jakub Jelinek  <jakub@redhat.com>
1842             Ira Rosen  <ira.rosen@linaro.org>
1843
1844         PR tree-optimization/50208
1845         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add an
1846         argument.  Check that def_stmt is inside the loop.
1847         (vect_recog_widen_mult_pattern): Update calls to
1848         vect_handle_widen_mult_by_cons.
1849         (vect_operation_fits_smaller_type): Check that def_stmt is
1850         inside the loop.
1851
1852 2011-09-04  Ira Rosen  <ira.rosen@linaro.org>
1853
1854         * tree-vectorizer.c (vect_print_dump_info): Print line
1855         number when dumping to a file.
1856         (vectorize_loops): Add new messages to dump file.
1857
1858 2011-09-03  Martin Jambor  <mjambor@suse.cz>
1859
1860         * ipa-prop.h (ipa_jump_func_t): New typedef.
1861         (struct ipa_edge_args): Removed field argument_count, field
1862         jump_functions turned into a vector.
1863         (ipa_set_cs_argument_count): Removed.
1864         (ipa_get_cs_argument_count): Updated to work on vectors.
1865         (ipa_get_ith_jump_func): Likewise.
1866         * ipa-prop.c (ipa_count_arguments): Removed.
1867         (compute_scalar_jump_functions): Use ipa_get_ith_jump_func to access
1868         jump functions.  Update caller.
1869         (compute_pass_through_member_ptrs): Likewise.
1870         (compute_cst_member_ptr_arguments): Likewise.
1871         (ipa_compute_jump_functions_for_edge): Get number of arguments from
1872         the statement, allocate vector.
1873         (ipa_compute_jump_functions): Do not call ipa_count_arguments.
1874         (duplicate_ipa_jump_func_array): Removed.
1875         (ipa_edge_duplication_hook): Use VEC_copy, do not copy argument count.
1876         (ipa_read_node_info): Allocate vector.
1877
1878 2011-09-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1879
1880         PR middle-end/50232
1881         * config/pa/pa.md (return): Define "return" insn pattern.
1882         (epilogue): Use it when no epilogue is needed.
1883         * config/pa/pa.c (pa_can_use_return_insn): New function.
1884         * config/pa/pa-protos.h (pa_can_use_return_insn): Declare.
1885
1886 2011-09-03  Eric Botcazou  <ebotcazou@adacore.com>
1887
1888         * cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
1889         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
1890         Force at least BITS_PER_UNIT alignment on the new variable.
1891
1892 2011-09-02  Gary Funck <gary@intrepid.com>
1893
1894         * opts.c (print_specific_help): Fix off-by-one compare in
1895         assertion check.
1896         * opts.h (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER,
1897         CL_TARGET, CL_COMMON, CL_JOINED, CL_SEPARATE, CL_UNDOCUMENTED):
1898         Increase by +5 to allow for more languages.
1899         * optc-gen.awk: Generate #if that ensures that the number of
1900         languages is within the implementation-defined limit.
1901
1902 2011-09-02  Michael Matz  <matz@suse.de>
1903
1904         PR middle-end/50260
1905         * ipa-split.c (split_function): Call add_referenced_var.
1906
1907         * tree-ssa-phiopt.c (cond_store_replacement): Don't call get_var_ann.
1908         (cond_if_else_store_replacement_1): Ditto.
1909         * tree-ssa-pre.c (get_representative_for): Ditto.
1910         (create_expression_by_pieces): Ditto.
1911         (insert_into_preds_of_block): Ditto.
1912         * tree-sra.c (create_access_replacement): Ditto.
1913         (get_replaced_param_substitute): Ditto.
1914
1915 2011-09-02  Bernd Schmidt  <bernds@codesourcery.com>
1916
1917         * config/c6x/c6x.md (collapse-ndfa, no-comb-vect): New
1918         automata_options.
1919         (d1, l1, s1, m1, d2, l2, s2, m2): Changed to define_query_cpu_unit.
1920         (l1w, s1w, l2w, s2w): Define in the main automaton.
1921         (fps1, fpl1, adddps1, adddpl1, fps2, fpl2, adddps2, adddpl2): New
1922         units.
1923         * config/c6x/c6x.c (c6x_sched_insn_info): Add unit_mask member.
1924         (c6x_unit_names): Add the new units.
1925         (c6x_unit_codes): New static array.
1926         (UNIT_QID_D1, UNIT_QID_L1, UNIT_QID_S1, UNIT_QID_M1, UNIT_QID_FPS1,
1927         UNIT_QID_FPL1, UNIT_QID_ADDDPS1, UNIT_QID_ADDDPL1,
1928         UNIT_QID_SIDE_OFFSET): New macros.
1929         (RESERVATION_S2): Adjust value.
1930         (c6x_option_override): Compute c6x_unit_codes.
1931         (assign_reservations): Take the unit_mask of the last instruction
1932         into account.  Detect floating point reservations by looking for
1933         the new units.  Don't assign reservations if the field is already
1934         nonzero.
1935         (struct c6x_sched_context): Add member prev_cycle_state_ctx.
1936         (init_sched_state): Initialize it.
1937         (c6x_clear_sched_context): Free it.
1938         (insn_set_clock): Clear reservation.
1939         (prev_cycle_state): New static variable.
1940         (c6x_init_sched_context): Save it.
1941         (c6x_sched_init): Allocate space for it and clear it.
1942         (c6x_sched_dfa_pre_cycle_insn): New static function.
1943         (c6x_dfa_new_cycle): Save state at the start of a new cycle.
1944         (c6x_variable_issue): Only record units in the unit_mask that
1945         were not set at the start of the cycle.
1946         (c6x_variable_issue): Compute and store the unit_mask from the
1947         current state.
1948         (reorg_split_calls): Ensure the new information remains correct.
1949         (TARGET_SCHED_DFA_NEW_CYCLE, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
1950         TARGET_SCHED_DFA_PRE_CYCLE_INSN): Define.
1951         * config/c6x/c6x.h (CPU_UNITS_QUERY): Define.
1952         * config/c6x/c6x-sched.md.in (fp4_ls_N__CROSS_, adddp_ls_N__CROSS_):
1953         Add special reservations.
1954         * config/c6x/c6x-sched.md: Regenerate.
1955
1956 2011-09-02  Martin Jambor  <mjambor@suse.cz>
1957
1958         * ipa-prop.h (ipa_node_params): Removed fields
1959         called_with_var_arguments and node_versionable.
1960         (ipa_set_called_with_variable_arg): Removed.
1961         (ipa_is_called_with_var_arguments): Likewise.
1962         * ipa-cp.c (ipa_get_lattice): Fixed index check in an assert.
1963         (determine_versionability): Do not check for type attributes and va
1964         builtins.  Record versionability into inline summary.
1965         (initialize_node_lattices): Do not check
1966         ipa_is_called_with_var_arguments.
1967         (propagate_constants_accross_call): Likewise, ignore arguments we do
1968         not have PARM_DECLs for, set variable flag for parameters that were
1969         not passed a value.
1970         (create_specialized_node): Dump info that we cannot change signature.
1971         * ipa-prop.c (ipa_compute_jump_functions): Do not care about variable
1972         number of arguments.
1973         (ipa_make_edge_direct_to_target): Likewise.
1974         (ipa_update_after_lto_read): Likewise.
1975         (ipa_node_duplication_hook): Do not copy called_with_var_arguments flag.
1976         * tree-inline.c (copy_arguments_for_versioning): Copy PARM_DECLs if
1977         they were remapped.
1978
1979 2011-09-02  Richard Guenther  <rguenther@suse.de>
1980
1981         PR tree-optimization/27460
1982         PR middle-end/29269
1983         * doc/md.texi (vcond): Document.
1984         * genopinit.c (optabs): Turn vcond{,u}_optab into a conversion
1985         optab with two modes.
1986         * optabs.h (enum convert_optab_index): Add COI_vcond, COI_vcondu.
1987         (enum direct_optab_index): Remove DOI_vcond, DOI_vcondu.
1988         (vcond_optab): Adjust.
1989         (vcondu_optab): Likewise.
1990         (expand_vec_cond_expr_p): Adjust prototype.
1991         * optabs.c (get_vcond_icode): Adjust.
1992         (expand_vec_cond_expr_p): Likewise.
1993         (expand_vec_cond_expr): Likewise.
1994         * tree-vect-stmts.c (vect_is_simple_cond): Return the comparison
1995         vector type.
1996         (vectorizable_condition): Allow differing types for comparison
1997         and result.
1998         * config/i386/i386.c (ix86_expand_sse_cmp): Use proper mode
1999         for the comparison.
2000         * config/i386/sse.md (vcond<mode>): Split to
2001         vcond<V_256:mode><VF_256:mode>, vcond<V_128:mode><VF_128:mode>,
2002         vcond<V_128:mode><VI124_128:mode> and
2003         vcondu<V_128:mode><VI124_128:mode>.
2004         (vcondv2di): Change to vcond<VI8F_128:mode>v2di.
2005         (vconduv2di): Likewise.
2006         * config/arm/neon.md (vcond<mode>): Change to vcond*<mode><mode>.
2007         (vcondu<mode>): Likewise.
2008         * config/ia64/vect.md (vcond<mode>): Likewise.
2009         (vcondu<mode>): Likewise.
2010         (vcondv2sf): Likewise.
2011         * config/mips/mips-ps-3d.md (vcondv2sf): Likewise.
2012         * config/rs6000/paired.md (vcondv2sf): Likewise.
2013         * config/rs6000/vector.md (vcond<mode>): Likewise.
2014         (vcondu<mode>): Likewise.
2015         * config/spu/spu.md (vcond<mode>): Likewise.
2016         (vcondu<mode>): Likewise.
2017
2018 2011-09-02  Richard Guenther  <rguenther@suse.de>
2019
2020         * pretty-print.h (pp_unsigned_wide_integer): New.
2021         * tree-pretty-print.c (dump_generic_node): Print unsigned
2022         host-wide-int fitting INTEGER_CSTs with pp_unsigned_wide_integer.
2023
2024 2011-09-02  Richard Sandiford  <richard.sandiford@linaro.org>
2025
2026         PR target/49987
2027         * config/rs6000/rs6000.c (paired_expand_vector_init): Check for
2028         valid CONST_VECTOR operands.
2029         (rs6000_expand_vector_init): Likewise.
2030
2031 2011-09-02  Martin Jambor  <mjambor@suse.cz>
2032
2033         * cgraph.h (cgraph_indirect_call_info): Removed field thunk_delta.
2034         * gimple-fold.c (gimple_get_virt_method_for_binfo): Rewritten to use
2035         BINFO_VTABLE.  Parameter delta removed, all callers updated.
2036         * tree.c (free_lang_data_in_binfo): Clear BINFO_VIRTUALs instead
2037         BINFO_VTABLE.
2038         * cgraph.c (cgraph_make_edge_direct): Removed parameter delta, updated
2039         all calls.
2040         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Removed
2041         handling of thunk_delta.
2042         * ipa-cp.c (get_indirect_edge_target): Removed parameter delta.
2043         (devirtualization_time_bonus): Do not handle thunk deltas.
2044         (ipcp_discover_new_direct_edges): Likewise.
2045         * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
2046         (try_make_edge_direct_simple_call): Likewise.
2047         (try_make_edge_direct_virtual_call): Likewise.
2048         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
2049         parameter set as unused.
2050         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
2051         * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise.  Mark
2052         parameter set as unused.
2053         (output_edge_opt_summary): Likewise.  Mark both parameters as unused.
2054         (input_edge_opt_summary): Likewise.
2055         * lto-streamer-out.c (lto_output_ts_binfo_tree_pointers): Do not stream
2056         BINFO_VIRTUALS at all.
2057         * lto-streamer-in.c (lto_input_ts_binfo_tree_pointers): Likewise.
2058
2059 2011-09-02  Richard Guenther  <rguenther@suse.de>
2060
2061         * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Do not fold alloca (0).
2062         (ccp_fold_stmt): Continue replacing args when folding alloca fails.
2063
2064 2011-08-31  Richard Guenther  <rguenther@suse.de>
2065
2066         * expr.c (expand_expr_real_2): Move COND_EXPR and VEC_COND_EXPR
2067         handling here, from ...
2068         (expand_expr_real_1): ... here.
2069         * gimple-pretty-print.c (dump_ternary_rhs): Handle COND_EXPR
2070         and VEC_COND_EXPR.
2071         * gimple.c (gimple_rhs_class_table): Make COND_EXPR and VEC_COND_EXPR
2072         a GIMPLE_TERNARY_RHS.
2073         * tree-cfg.c (verify_gimple_assign_ternary): Handle COND_EXPR
2074         and VEC_COND_EXPR here ...
2075         (verify_gimple_assign_single): ... not here.
2076         * gimple-fold.c (fold_gimple_assign): Move COND_EXPR folding.
2077         * tree-object-size.c (cond_expr_object_size): Adjust.
2078         (collect_object_sizes_for): Likewise.
2079         * tree-scalar-evolution.c (interpret_expr): Don't handle ternary RHSs.
2080         * tree-ssa-forwprop.c (forward_propagate_into_cond): Fix and simplify.
2081         (ssa_forward_propagate_and_combine): Adjust.
2082         * tree-ssa-loop-im.c (move_computations_stmt): Build the COND_EXPR
2083         as ternary.
2084         * tree-ssa-threadedge.c (fold_assignment_stmt): Adjust.
2085         * tree-vect-loop.c (vect_is_simple_reduction_1): Likewise.
2086         * tree-vect-stmt.c (vectorizable_condition): Likewise.
2087         * tree-vrp.c (extract_range_from_cond_expr): Likewise.
2088         (extract_range_from_assignment): Likewise.
2089
2090 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
2091
2092         * config/i386/i386.md: Use (match_test ...) for attribute tests.
2093         * config/i386/mmx.md: Likewise.
2094         * config/i386/sse.md: Likewise.
2095         * config/i386/predicates.md (call_insn_operand): Use
2096         (not (match_test "...")) instead of (match_test "!...")
2097         * config/i386/constraints.md (w): Likewise.
2098
2099 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
2100
2101         * doc/md.texi: Describe the use of match_tests in attribute tests.
2102         * rtl.def (MATCH_TEST): Update commentary.
2103         * genattrtab.c (attr_copy_rtx, check_attr_test, clear_struct_flag)
2104         (write_test_expr, walk_attr_value): Handle MATCH_TEST.
2105
2106 2011-08-31  Richard Sandiford  <rdsandiford@googlemail.com>
2107
2108         * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
2109         (attr_string): Use copy_md_ptr_loc.
2110
2111 2011-08-31  Martin Jambor  <mjambor@suse.cz>
2112
2113         PR middle-end/49886
2114         * ipa-inline-analysis.c (compute_inline_parameters): Set
2115         can_change_signature of noes with typde attributes.
2116         * ipa-split.c (split_function): Do not skip any arguments if
2117         can_change_signature is set.
2118
2119 2011-08-31  Martin Jambor  <mjambor@suse.cz>
2120
2121         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Alias
2122         check removed.
2123
2124 2011-08-31  Richard Guenther  <rguenther@suse.de>
2125
2126         * fold-const.c (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE
2127         special-casing.
2128
2129 2011-08-31  Marc Glisse  <marc.glisse@inria.fr>
2130
2131         * doc/generic.texi (Types for C++): CP_TYPE_QUALS -> cp_type_quals.
2132
2133 2011-08-31  Tom de Vries  <tom@codesourcery.com>
2134
2135         PR middle-end/43513
2136         * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule.
2137         * tree-ssa-ccp.c (params.h): Include.
2138         (fold_builtin_alloca_for_var): New function.
2139         (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
2140
2141 2011-08-30  Uros Bizjak  <ubizjak@gmail.com>
2142
2143         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
2144         Handle FMA option.
2145
2146 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
2147
2148         * config/arm/arm.c (optimal_immediate_sequence_1): Make b1, b2,
2149         b3 and b4 unsigned.
2150
2151 2011-08-30  Andrew Stubbs  <ams@codesourcery.com>
2152
2153         * config/arm/arm.c (arm_gen_constant): Set can_negate correctly
2154         when code is SET.
2155
2156 2011-08-30  Richard Guenther  <rguenther@suse.de>
2157
2158         PR middle-end/48571
2159         * gimple.h (maybe_fold_offset_to_address): Remove.
2160         (maybe_fold_offset_to_reference): Likewise.
2161         (maybe_fold_stmt_addition): Likewise.
2162         (may_propagate_address_into_dereference): Likewise.
2163         * tree-inline.c (remap_gimple_op_r): Do not reconstruct
2164         array references.
2165         * gimple-fold.c (canonicalize_constructor_val): Likewise.
2166         Canonicalize invariant POINTER_PLUS_EXPRs to invariant MEM_REF
2167         addresses instead.
2168         (may_propagate_address_into_dereference): Remove.
2169         (maybe_fold_offset_to_array_ref): Likewise.
2170         (maybe_fold_offset_to_reference): Likewise.
2171         (maybe_fold_offset_to_address): Likewise.
2172         (maybe_fold_stmt_addition): Likewise.
2173         (fold_gimple_assign): Do not reconstruct array references but
2174         instead canonicalize invariant POINTER_PLUS_EXPRs to invariant
2175         MEM_REF addresses.
2176         (gimple_fold_stmt_to_constant_1): Likewise.
2177         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
2178         * gimplify.c (gimplify_conversion): Likewise.
2179         (gimplify_expr): Likewise.
2180
2181 2011-08-30  Ilya Tocar  <ilya.tocar@intel.com>
2182
2183         * config/i386/fmaintrin.h: New.
2184         * config.gcc: Add fmaintrin.h.
2185         * config/i386/i386.c
2186         (enum ix86_builtins) <IX86_BUILTIN_VFMADDSS3>: New.
2187         <IX86_BUILTIN_VFMADDSD3>: Likewise.
2188         * config/i386/sse.md (fmai_vmfmadd_<mode>): New.
2189         (*fmai_fmadd_<mode>): Likewise.
2190         (*fmai_fmsub_<mode>): Likewise.
2191         (*fmai_fnmadd_<mode>): Likewise.
2192         (*fmai_fnmsub_<mode>): Likewise.
2193         * config/i386/immintrin.h: Add fmaintrin.h.
2194
2195 2011-08-30  Bernd Schmidt  <bernds@codesourcery.com>
2196
2197         * genautomata.c (NO_COMB_OPTION): New macro.
2198         (no_comb_flag): New static variable.
2199         (gen_automata_option): Handle NO_COMB_OPTION.
2200         (comb_vect_p): False if no_comb_flag.
2201         (add_vect): Move computation of min/max values.  Return early if
2202         no_comb_flag.
2203         * doc/md.texi (automata_option): Document no-comb-vect.
2204
2205         * config/i386/i386.c (get_pc_thunk_name): Change prefix to
2206         "__x86.get_pc_thunk".
2207
2208         * bb-reorder.c (insert_section_boundary_note): Only do it if
2209         we reordered the blocks; i.e. not if !optimize_function_for_speed_p.
2210
2211 2011-08-30  Christian Bruel  <christian.bruel@st.com>
2212
2213         * coverage.c (coverage_init): Check flag_branch_probabilities instead of
2214         flag_profile_use.
2215
2216 2011-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
2217
2218         * config/rs6000/rs6000.opt (-msave-toc-indirect): Change default
2219         to off.  Document switch.
2220         * doc/invoke.texi (-msave-toc-indirect): Ditto.
2221
2222 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
2223
2224         * gthr-posix.h (__gthread_active_p): Do not use preprocessor
2225         conditionals and comments inside macro arguments.
2226
2227 2011-08-29  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
2228             Richard Guenther  <rguenther@suse.de>
2229
2230         * tree.h (constant_boolean_node): Adjust prototype.
2231         * fold-const.c (fold_convert_loc): Move aggregate conversion
2232         leeway down.
2233         (constant_boolean_node): Make value parameter boolean, add
2234         vector type handling.
2235         (fold_unary_loc): Use constant_boolean_node.
2236         (fold_binary_loc): Preserve types properly when folding
2237         COMPLEX_EXPR <__real x, __imag x>.
2238         * gimplify.c (gimplify_expr): Handle vector comparison.
2239         * tree.def (EQ_EXPR, ...): Document behavior on vector typed
2240         comparison.
2241         * tree-cfg.c (verify_gimple_comparison): Verify vector typed
2242         comparisons.
2243
2244 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
2245
2246         PR middle-end/48722
2247         * emit-rtl.c (unshare_all_rtl_again): For CALL_INSNs,
2248         reset_used_flags also in CALL_INSN_FUNCTION_USAGE.
2249         (verify_rtl_sharing): Likewise and verify_rtx_sharing
2250         in there too.
2251         (unshare_all_rtl_in_chain): For CALL_INSNs
2252         copy_rtx_if_shared also CALL_INSN_FUNCTION_USAGE.
2253
2254 2011-08-29  Richard Guenther  <rguenther@suse.de>
2255
2256         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Set a location
2257         on the built ADDR_EXPR.
2258
2259 2011-08-29  Jakub Jelinek  <jakub@redhat.com>
2260
2261         PR debug/50215
2262         * var-tracking.c (create_entry_value): Call cselib_lookup_from_insn
2263         before adding ENTRY_VALUE to val->locs.
2264
2265 2011-08-28  Mikael Pettersson  <mikpe@it.uu.se>
2266
2267         PR bootstrap/50218
2268         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Initialize
2269         comp.
2270
2271 2011-08-27  Bernd Schmidt  <bernds@codesourcery.com>
2272
2273         * doc/rtl.texi (simple_return): Document.
2274         (parallel, PATTERN): Here too.
2275         * doc/md.texi (return): Mention it's allowed to expand to simple_return
2276         in some cases.
2277         (simple_return): Document standard pattern.
2278         * gengenrtl.c (special_rtx): SIMPLE_RETURN is special.
2279         * final.c (final_scan_insn): Use ANY_RETURN_P on body.
2280         * reorg.c (function_return_label, function_simple_return_label):
2281         New static variables, replacing...
2282         (end_of_function_label): ... this.
2283         (simplejump_or_return_p): New static function.
2284         (optimize_skip, steal_delay_list_from_fallthrough,
2285         fill_slots_from_thread): Use it.
2286         (relax_delay_slots): Likewise.  Use ANY_RETURN_P on body.
2287         (rare_destination, follow_jumps): Use ANY_RETURN_P on body.
2288         (find_end_label): Take a new arg which is one of the two return
2289         rtxs.  Depending on which, set either function_return_label or
2290         function_simple_return_label.  All callers changed.
2291         (make_return_insns): Make both kinds.
2292         (dbr_schedule): Adjust for two kinds of end labels.
2293         * function.c (emit_return_into_block): Set JUMP_LABEL properly.
2294         * genemit.c (gen_exp): Handle SIMPLE_RETURN.
2295         (gen_expand, gen_split): Use ANY_RETURN_P.
2296         * df-scan.c (df_uses_record): Handle SIMPLE_RETURN.
2297         * rtl.def (SIMPLE_RETURN): New code.
2298         * ifcvt.c (find_if_case_1): Be more careful about
2299         redirecting jumps to the EXIT_BLOCK.
2300         * jump.c (condjump_p, condjump_in_parallel_p, any_condjump_p,
2301         returnjump_p_1): Handle SIMPLE_RETURNs.
2302         * print-rtl.c (print_rtx): Likewise.
2303         * rtl.c (copy_rtx): Likewise.
2304         * bt-load.c (compute_defs_uses_and_gen): Use ANY_RETURN_P.
2305         * combine.c (simplify_set): Likewise.
2306         * resource.c (find_dead_or_set_registers, mark_set_resources):
2307         Likewise.
2308         * emit-rtl.c (verify_rtx_sharing, classify_insn, copy_insn_1,
2309         copy_rtx_if_shared_1, mark_used_flags): Handle SIMPLE_RETURNs.
2310         (init_emit_regs): Initialize simple_return_rtx.
2311         * cfglayout.c (fixup_reorder_chain): Pass a JUMP_LABEL to
2312         force_nonfallthru_and_redirect.
2313         * rtl.h (ANY_RETURN_P): Allow SIMPLE_RETURN.
2314         (GR_SIMPLE_RETURN): New enum value.
2315         (simple_return_rtx): New macro.
2316         * basic-block.h (force_nonfallthru_and_redirect): Adjust
2317         declaration.
2318         * cfgrtl.c (force_nonfallthru_and_redirect): Take a new jump_label
2319         argument.  All callers changed.  Be careful about what kinds of
2320         returnjumps to generate.
2321         * config/i386/3i86.c (ix86_pad_returns, ix86_count_insn_bb,
2322         ix86_pad_short_function): Likewise.
2323         * config/arm/arm.c (arm_final_prescan_insn): Handle both kinds
2324         of return.
2325         * config/mips/mips.md (any_return): New code_iterator.
2326         (optab): Add cases for return and simple_return.
2327         (return): Expand to a simple_return.
2328         (simple_return): New pattern.
2329         (*<optab>, *<optab>_internal for any_return): New patterns.
2330         (return_internal): Remove.
2331         * config/mips/mips.c (mips_expand_epilogue): Make the last insn
2332         a simple_return_internal.
2333
2334 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
2335
2336         * config/i386/sse.md (*absneg<mode>2): Fix split condition.
2337         (vec_extract_lo_<mode>): Prevent both operands in memory.
2338         (vec_extract_lo_v16hi): Ditto.
2339         (*vec_extract_v4sf_mem): Add TARGET_SSE insn constraint.
2340
2341 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
2342
2343         * config/i386/sse.md (mulv16qi3): Attach REG_EQUAL note.
2344         (*sse2_mulv4si3): Ditto.
2345         (mulv2di3): Ditto.
2346         * config/i386/i386.c (legitimize_tls_address): Change REG_EQIV
2347         notes to REG_EQUAL.
2348
2349 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
2350
2351         PR target/50202
2352         * config/i386/sse.md (sse4_2_pcmpestr): Emit NOTE_INSN_DELETED note
2353         when all outputs are unused.
2354         (sse4_2_pcmpistr): Ditto.
2355
2356 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
2357
2358         * config/i386/i386.md (round<mode>2): New expander.
2359         * config/i386/i386.c (enum ix86_builtins): Add
2360         IX86_BUILTIN_ROUND{PS,PD}_AZ{,256}.
2361         (struct builtin_description): Add __builtin_ia32_round{ps,pd}_az{,256}
2362         descriptions.
2363         (ix86_builtin_vectorized_function): Handle BUILT_IN_ROUND{,F} builtins.
2364         (ix86_build_const_vector): Rewrite using loop with RTVEC_ELT accessor.
2365
2366 2011-08-26  Uros Bizjak  <ubizjak@gmail.com>
2367
2368         PR middle-end/50083
2369         * convert.c (convert_to_integer) <BUIT_IN_ROUND{,F,L}>: Convert
2370         only when TARGET_C99_FUNCTIONS.
2371         <BUILT_IN_NEARBYINT{,F,L}>: Ditto.
2372         <BUILT_IN_RINT{,F,L}>: Ditto.
2373
2374 2011-08-26  Michael Matz  <matz@suse.de>
2375             Jakub Jelinek  <jakub@redhat.com>
2376
2377         PR lto/50165
2378         * lto-streamer-in.c (canon_file_name): Initialize new_slot->len;
2379         don't call strlen twice, use memcpy.
2380
2381 2011-08-26  H.J. Lu  <hongjiu.lu@intel.com>
2382
2383         * config/i386/bmi2intrin.h: Allow in <immintrin.h>.
2384         * config/i386/bmiintrin.h: Likewise.
2385         * config/i386/lzcntintrin.h: Likewise.
2386
2387         * config/i386/immintrin.h: Include <lzcntintrin.h>,
2388         <bmiintrin.h> and <bmi2intrin.h>.
2389
2390 2011-08-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2391
2392         PR target/50166
2393         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Check count in main.
2394         * configure: Regenerate.
2395
2396 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
2397
2398         PR c/50179
2399         * c-typeck.c (c_process_expr_stmt): Skip over nops and
2400         call mark_exp_read even if exprv is ADDR_EXPR.
2401
2402 2011-08-26  Richard Sandiford  <richard.sandiford@linaro.org>
2403
2404         * df-problems.c (df_note_bb_compute): Pass uses rather than defs
2405         to df_set_dead_notes_for_mw.
2406
2407 2011-08-26  Richard Guenther  <rguenther@suse.de>
2408
2409         * varasm.c (decode_addr_const): Handle MEM_REF[&X, OFF].
2410
2411 2011-08-26  Zdenek Dvorak  <ook@ucw.cz>
2412             Tom de Vries  <tom@codesourcery.com>
2413
2414         * tree-ssa-loop-ivopts.c (struct cost_pair): Add comp field.
2415         (struct ivopts_data): Add loop_single_exit_p field.
2416         (niter_for_exit): Change parameter desc_p into return value.  Return
2417         desc if desc->may_be_zero.  Free desc if unused.
2418         (niter_for_single_dom_exit): Change return type.
2419         (find_induction_variables): Handle changed return type of
2420         niter_for_single_dom_exit.  Dump may_be_zero.
2421         (add_candidate_1): Keep original base and step type for IP_ORIGINAL.
2422         (set_use_iv_cost): Add and handle comp parameter.
2423         (determine_use_iv_cost_generic, determine_use_iv_cost_address): Add
2424         comp argument to set_use_iv_cost.
2425         (strip_wrap_conserving_type_conversions, expr_equal_p)
2426         (difference_cannot_overflow_p, iv_elimination_compare_lt): New function.
2427         (may_eliminate_iv): Add comp parameter.  Handle new return type of
2428         niter_for_exit.  Use loop_single_exit_p.  Use iv_elimination_compare_lt.
2429         (determine_use_iv_cost_condition): Add comp argument to set_use_iv_cost
2430         and may_eliminate_iv.
2431         (rewrite_use_compare): Move call to iv_elimination_compare to ...
2432         (may_eliminate_iv): Here.
2433         (tree_ssa_iv_optimize_loop): Initialize loop_single_exit_p.
2434
2435 2011-08-26  Tom de Vries  <tom@codesourcery.com>
2436
2437         * tree-pretty-print (dump_generic_node): Test for NULL_TREE before
2438         accessing TREE_TYPE.
2439
2440 2011-08-26  Jiangning Liu  <jiangning.liu@arm.com>
2441
2442         * config/arm/arm.md (*ior_scc_scc): Enable for Thumb2 as well.
2443         (*ior_scc_scc_cmp): Likewise
2444         (*and_scc_scc): Likewise.
2445         (*and_scc_scc_cmp): Likewise.
2446         (*and_scc_scc_nodom): Likewise.
2447         (*cmp_ite0, *cmp_ite1, *cmp_and, *cmp_ior): Handle Thumb2.
2448
2449 2011-08-26  Jakub Jelinek  <jakub@redhat.com>
2450
2451         * rtlanal.c (nonzero_bits1): Handle CLRSB.
2452
2453 2011-08-26  Richard Guenther  <rguenther@suse.de>
2454
2455         * expr.c (string_constant): Handle &MEM_REF.
2456
2457 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
2458
2459         * config/arm/arm.c (struct four_ints): New type.
2460         (count_insns_for_constant): Delete function.
2461         (find_best_start): Delete function.
2462         (optimal_immediate_sequence): New function.
2463         (optimal_immediate_sequence_1): New function.
2464         (arm_gen_constant): Move constant splitting code to
2465         optimal_immediate_sequence.
2466         Rewrite constant negation/invertion code.
2467
2468 2011-08-26  Andrew Stubbs  <ams@codesourcery.com>
2469
2470         * config/arm/arm-protos.h (const_ok_for_op): Add prototype.
2471         * config/arm/arm.c (const_ok_for_op): Add support for addw/subw.
2472         Remove prototype. Remove static function type.
2473         * config/arm/arm.md (*arm_addsi3): Add addw/subw support.
2474         Add arch attribute.
2475         * config/arm/constraints.md (Pj, PJ): New constraints.
2476
2477 2011-08-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2478
2479         * config/arm/cortex-a9.md ("cortex_a9_mult_long"): New.
2480         ("cortex_a9_multiply_long"): New and use above.  Handle all
2481         long multiply cases.
2482         ("cortex_a9_multiply"): Handle smmul and smmulr.
2483         ("cortex_a9_mac"): Handle smmla.
2484
2485 2011-08-25  Richard Henderson  <rth@redhat.com>
2486
2487         PR 50132
2488         PR 49864
2489         * cfgcleanup.c (old_insns_match_p): Don't allow cross-jump for
2490         non-constant stack adjutment.
2491         * expr.c (find_args_size_adjust): Break out from ...
2492         (fixup_args_size_notes): ... here.
2493         * rtl.h (find_args_size_adjust): Declare.
2494
2495 2011-08-25  Uros Bizjak  <ubizjak@gmail.com>
2496
2497         * config/i386/i386.md (isa): Add sse2, sse2_noavx, sse3,
2498         sse4 and sse4_noavx.
2499         (enabled): Handle sse2, sse2_noavx, sse3, sse4 and sse4_noavx.
2500         (*pushdf_rex64): Change Y2 register constraint to x.
2501         (*movdf_internal_rex64): Ditto.
2502         (*zero_extendsidi2_rex64): Ditto.
2503         (*movdi_internal): Change Y2 register constraint to x
2504         and update "isa" attribute.
2505         (*pushdf): Ditto.
2506         (*movdf internal): Ditto.
2507         (zero_extendsidi2_1): Ditto.
2508         (*truncdfdf_mixed): Ditto.
2509         (*truncxfdf2_mixed): Ditto.
2510         * config/i386/mmx.md (*mov<mode>_internal_rex64): Change Y2
2511         register constraint to x.
2512         (*movv2sf_internal_rex64): Ditto.
2513         (*mov<mode>_internal): Change Y2 register constraint to x
2514         and add "isa" attribute.
2515         (*movv2sf_internal): Ditto.
2516         (*vec_extractv2si_1): Ditto.
2517         * config/i386/sse.md ("vec_set<mode>_0): Change Y2 and Y4 register
2518         constraints to x and update "isa" attribute.
2519         (*vec_interleave_highv2df): Change Y3 registerconstraint
2520         to x and update "isa" attribute.
2521         (*vec_interleave_lowv2df): Ditto.
2522         (*vec_concatv2df): Change Y2 register constraint to x and
2523         update "isa" attribute.
2524         (sse2_loadld): Ditto.
2525         (*vec_extractv2di_1): Ditto.
2526         (*vec_dupv4si): Ditto.
2527         (*vec_dupv2di): Ditto.
2528         (*vec_concatv4si): Ditto.
2529         (vec_concatv2di): Ditto.
2530         * config/i386/constraints.md (Y2): Remove.
2531         (Y3): Ditto.
2532         (Y4): Ditto.
2533
2534 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
2535
2536         * regrename.c (scan_rtx_reg, scan_rtx_address, build_def_use,
2537         dump_def_use_chain): Don't declare.
2538         (mark_conflict, create_new_chain): Move before users.
2539         (regrename_optimize): Move to near end of file.
2540
2541 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
2542
2543         * config/avr-protos.h (byte_immediate_operand): Remove Prototype.
2544         (secondary_input_reload_class): Remove Prototype.
2545         * config/avr/avr.c (byte_immediate_operand): Remove Function.
2546         * config/avr/avr.md (setmemhi): Use u8_operand.
2547         (strlenhi): Use const0_rtx for comparison.
2548         * config/avr/avr.h (avr_reg_order): Remove Declaration.
2549
2550 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
2551
2552         * config/avr/avr.c (reg_class_tab): Make local to
2553         avr_regno_reg_class.  Return smallest register class available.
2554
2555 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
2556
2557         * config/avr/avr.c (STR_PREFIX_P): New Define.
2558         (avr_asm_declare_function_name): Use it.
2559         (avr_asm_named_section): Use it.
2560         (avr_section_type_flags): Use it.
2561
2562 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
2563
2564         * doc/md.texi (automata_option): Document collapse-ndfa.
2565         * genautomata.c (COLLAPSE_OPTION): New macro.
2566         (collapse_flag): New static variable.
2567         (struct description): New member normal_decls_num.
2568         (struct automaton): New members advance_ainsn and collapse_ainsn.
2569         (gen_automata_option): Check for COLLAPSE_OPTION.
2570         (collapse_ndfa_insn_decl): New static variable.
2571         (add_collapse_ndfa_insn_decl, special_decl_p): New functions.
2572         (find_arc): If insn is the collapse-ndfa insn, accept any arc we find.
2573         (transform_insn_regexps): Call add_collapse_ndfa_insn_decl if
2574         necessary.  Use normal_decls_num rather than decls_num, remove
2575         test for special decls.
2576         (create_alt_states, form_ainsn_with_same_reservs): Use special_decl_p.
2577         (make_automaton); Likewise.  Use the new advance_cycle_insn member
2578         of struct automaton.
2579         (create_composed_state): Disallow advance-cycle arcs if collapse_flag
2580         is set.
2581         (NDFA_to_DFA): Don't create composed states for the collapse-ndfa
2582         transition.  Create the necessary transitions for it.
2583         (create_ainsns): Return void.  Take an automaton_t argument, and
2584         update its ainsn_list, advance_ainsn and collapse_ainsn members.  All
2585         callers changed.
2586         (COLLAPSE_NDFA_VALUE_NAME): New macro.
2587         (output_tables): Output code to define it.
2588         (output_internal_insn_code_evaluation): Output code to accept
2589         const0_rtx as collapse-ndfa transition.
2590         (output_default_latencies, output_print_reservation_func,
2591         output_print_description): Reorganize loops to use normal_decls_num
2592         as loop bound; remove special case for advance_cycle_insn_decl.
2593         (initiate_automaton_gen): Handle COLLAPSE_OPTION.
2594         (check_automata_insn_issues): Check for collapse_ainsn.
2595         (expand_automate): Allocate sufficient space.  Initialize
2596         normal_decls_num.
2597
2598 2011-08-25  Georg-Johann Lay  <avr@gjlay.de>
2599
2600         * config/avr/avr.md: Fix indentation from r177991.
2601
2602 2011-08-25  Bernd Schmidt  <bernds@codesourcery.com>
2603
2604         * regrename.c (struct du_head): Remove member terminated.
2605         (create_new_chain): Don't initialize it.
2606         (scan_rtx_reg): Don't set or test it, test the open_chains_set
2607         bitmap instead.
2608         (tick, this_tick): New global variables, moved out of
2609         regrename_optimize.
2610         (current_id, open_chains, closed_chains, open_chains_set,
2611         live_in_chains, live_hard_regs): Reorder declarations.
2612         (dump_def_use_chain): Move function earlier in the file.
2613         (rename_chains): New static function, broken out of
2614         regrename_optimize.
2615         (regrename_optimize): Use it.  Remove #if 0'ed code.
2616
2617 2011-08-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
2618
2619         * varasm.c: (default_binds_local_p_1): Commentary typo fix.
2620
2621 2011-08-24  H.J. Lu  <hongjiu.lu@intel.com>
2622
2623         PR target/50172
2624         * config/i386/i386.c (ix86_expand_builtin): Convert to Pmode if needed.
2625
2626 2011-08-24  Richard Guenther  <rguenther@suse.de>
2627
2628         * tree-data-ref.c (dr_analyze_indices): Avoid unsharing the
2629         ref in the basic-block case.  Move stripping array-refs
2630         to the place we create an access-function for it.  Remove
2631         bogus stripping down a MEM_REF to its base.
2632
2633 2011-08-24  Richard Guenther  <rguenther@suse.de>
2634
2635         * fold-const.c (fold_comparison): Fold &a < &a + 4 even
2636         with -fno-strict-overflow.
2637
2638 2011-08-24  Richard Guenther  <rguenther@suse.de>
2639
2640         * tree-vectorizer.c (vect_print_dump_info): Avoid the
2641         file and location clutter when dumping to dump files.
2642
2643 2011-08-24  Simon Baldwin  <simonb@google.com>
2644
2645         * gengtype-state.c (write_state): Remove timestamped header line.
2646
2647 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
2648
2649         * Makefile.in (CFLAGS-collect2.o, CFLAGS-c-family/c-opts.o)
2650         (CFLAGS-c-family/c-pch.o, CFLAGS-prefix.o, CFLAGS-version.o)
2651         (CFLAGS-lto-compress.o, CFLAGS-toplev.o, CFLAGS-intl.o)
2652         (CFLAGS-cppbuiltin.o, CFLAGS-cppdefault.o): New.
2653         (collect2.o, c-family/c-cppbuiltin.o, c-family/c-opts.o)
2654         (c-family/c-pch.o, prefix.o, version.o, lto-compress.o, toplev.o)
2655         (intl.o, cppbuiltin.o, cppdefault.o): Remove explicit compilation
2656         rules.
2657         (lto-wrapper$(exeext)): Use $(LINKER) not $(COMPILER).
2658
2659 2011-08-24  Joseph Myers  <joseph@codesourcery.com>
2660
2661         * Makefile.in (ALL_CXXFLAGS): Include $(CFLAGS-$@).
2662
2663 2011-08-24  Richard Guenther  <rguenther@suse.de>
2664
2665         PR tree-optimization/50067
2666         * tree-data-ref.c (dr_analyze_indices): Do not add an access
2667         function for a MEM_REF base that has no evolution in the loop
2668         nest or that is not analyzable.
2669
2670 2011-08-23  Vladimir Makarov  <vmakarov@redhat.com>
2671
2672         * ira.c (ira_init_register_move_cost): Check small subclasses
2673         through ira_reg_class_max_nregs and ira_available_class_regs.
2674
2675 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
2676
2677         * config/i386/constraints.md (Yp): New register constraint.
2678         * config/i386/i386.md (*addhi_1): Merge with *addhi_1_lea using
2679         Yp register constraint.
2680         (*addqi_1): Merge with *addqi_1_lea using Yp register constraint.
2681         (*ashlhi3_1): Merge with *ashlhi3_1_lea using Yp register constraint.
2682         (*ashlqi3_1): Merge with *ashlqi3_1_lea using Yp register constraint.
2683
2684 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
2685
2686         * config/i386/sse.md (<s>mul<mode>3_highpart): Update.
2687
2688 2011-08-23  Mark Heffernan  <meheff@google.com>
2689
2690         PR middle-end/38509
2691         * common.opt (Wfree-nonheap-object): New option.
2692         * doc/invoke.texi (Warning options): Document -Wfree-nonheap-object.
2693         * builtins.c (maybe_emit_free_warning): Add OPT_Wfree_nonheap_object
2694         to warning.
2695         (expand_builtin): Make warning conditional.
2696
2697 2011-08-23  Uros Bizjak  <ubizjak@gmail.com>
2698
2699         * config/i386/i386.md (type): Add imulx, ishiftx and rotatex.
2700         (length_immediate): Handle imulx, ishiftx and rotatex.
2701         (imm_disp): Ditto.
2702         (isa): Add bmi2.
2703         (enabled): Handle bmi2.
2704         (*mul<mode><dwi>3): Split from *<u>mul<mode><dwi>3.
2705         (*umul<mode><dwi>3): Ditto.  Add imulx BMI2 alternative.
2706         (*bmi2_umulditi3_1): New insn pattern.
2707         (*bmi2_umulsidi3_1): Ditto.
2708         (*umul<mode><dwi>3 splitter): New splitter to avoid flags dependency.
2709         (*bmi2_ashl<mode>3_1): New insn pattern.
2710         (*ashl<mode>3_1): Add ishiftx BMI2 alternative.
2711         (*ashl<mode>3_1 splitter): New splitter to avoid flags dependency.
2712         (*bmi2_ashlsi3_1_zext): New insn pattern.
2713         (*ashlsi3_1_zext): Add ishiftx BMI2 alternative.
2714         (*ashlsi3_1_zext splitter): New splitter to avoid flags dependency.
2715         (*bmi2_<shiftrt_insn><mode>3_1): New insn pattern.
2716         (*<shiftrt_insn><mode>3_1): Add ishiftx BMI2 alternative.
2717         (*<shiftrt_insn><mode>3_1 splitter): New splitter to avoid
2718         flags dependency.
2719         (*bmi2_<shiftrt_insn>si3_1_zext): New insn pattern.
2720         (*<shiftrt_insn>si3_1_zext): Add ishiftx BMI2 alternative.
2721         (*<shiftrt_insn>si3_1_zext splitter): New splitter to avoid
2722         flags dependency.
2723         (*bmi2_rorx<mode>3_1): New insn pattern.
2724         (*<rotate_insn><mode>3_1): Add rotatex BMI2 alternative.
2725         (*rotate<mode>3_1 splitter): New splitter to avoid flags dependency.
2726         (*rotatert<mode>3_1 splitter): Ditto.
2727         (*bmi2_rorxsi3_1_zext): New insn pattern.
2728         (*<rotate_insn>si3_1_zext): Add rotatex BMI2 alternative.
2729         (*rotatesi3_1_zext splitter): New splitter to avoid flags dependency.
2730         (*rotatertsi3_1_zext splitter): Ditto.
2731
2732 2011-08-23  Kirill Yukhin  <kirill.yukhin@intel.com>
2733
2734         * common/config/i386/i386-common.c (OPTION_MASK_ISA_BMI2_SET): New.
2735         (OPTION_MASK_ISA_BMI2_UNSET): Likewise.
2736         (ix86_handle_option): Handle OPT_mbmi2 case.
2737         * config.gcc (i[34567]86-*-*): Add bmi2intrin.h.
2738         (x86_64-*-*): Likewise.
2739         * config/i386/bmi2intrin.h: New file.
2740         * config/i386/cpuid.h (bit_BMI2): New.
2741         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
2742         BMI2 feature.
2743         * config/i386/i386-c.c (ix86_target_macros_internal):
2744         Conditionally define __BMI2__.
2745         * config/i386/i386.c (ix86_option_override_internal): Define PTA_BMI2.
2746         Handle BMI2 option.
2747         (ix86_valid_target_attribute_inner_p): Handle BMI2 option.
2748         (print_reg): New code.
2749         (ix86_print_operand): Likewise.
2750         (ix86_builtins): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
2751         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
2752         IX86_BUILTIN_PEXT64.
2753         (bdesc_args): Add IX86_BUILTIN_BZHI32, IX86_BUILTIN_BZHI64,
2754         IX86_BUILTIN_PDEP32, IX86_BUILTIN_PDEP64, IX86_BUILTIN_PEXT32,
2755         IX86_BUILTIN_PEXT64.
2756         * config/i386/i386.h (TARGET_BMI2): New.
2757         * config/i386/i386.md (UNSPEC_PDEP): New.
2758         (UNSPEC_PEXT): Likewise.
2759         (*bmi2_bzhi_<mode>3): Likewise.
2760         (*bmi2_pdep_<mode>3): Likewise.
2761         (*bmi2_pext_<mode>3): Likewise.
2762         * config/i386/i386.opt (mbmi2): New.
2763         * config/i386/x86intrin.h: Include bmi2intrin.h when __BMI2__
2764         is defined.
2765         * doc/extend.texi: Document BMI2 built-in functions.
2766         * doc/invoke.texi: Document -mbmi2.
2767
2768 2011-08-23  Jakub Jelinek  <jakub@redhat.com>
2769
2770         PR middle-end/50161
2771         * simplify-rtx.c (simplify_const_unary_operation): If
2772         op is CONST_INT, don't look at op_mode, but use instead mode.
2773         * optabs.c (add_equal_note): For FFS, CLZ, CTZ,
2774         CLRSB, POPCOUNT, PARITY and BSWAP use operand mode for
2775         operation and TRUNCATE/ZERO_EXTEND if needed.
2776         * doc/rtl.texi (ffs, clrsb, clz, ctz, popcount, parity, bswap):
2777         Document that operand mode must be same as operation mode,
2778         or VOIDmode.
2779         * config/avr/avr.md (paritysi2, *parityqihi2.libgcc,
2780         *paritysihi2.libgcc, popcountsi2, *popcountsi2.libgcc,
2781         *popcountqihi2.libgcc, clzsi2, *clzsihi2.libgcc, ctzsi2,
2782         *ctzsihi2.libgcc, ffssi2, *ffssihi2.libgcc): For unary ops
2783         use the mode of operand for the operation and add truncate
2784         or zero_extend around if needed.
2785         * config/c6x/c6x.md (ctzdi2): Likewise.
2786         * config/bfin/bfin.md (clrsbsi2, signbitssi2): Likewise.
2787
2788 2011-08-12  Michael Matz  <matz@suse.de>
2789
2790         * cfgexpand.c (expand_one_register_var): Use get_pointer_alignment.
2791         (gimple_expand_cfg): Merge alignment info for coalesced pointer
2792         SSA names.
2793
2794 2011-08-23  Richard Guenther  <rguenther@suse.de>
2795
2796         * Makefile.in (tree-data-ref.o): Add tree-affine.h dependency.
2797         * tree-affine.h (aff_comb_cannot_overlap_p): Declare.
2798         * tree-affine.c (aff_comb_cannot_overlap_p): New function, moved
2799         from ...
2800         * tree-ssa-loop-im.c (cannot_overlap_p): ... here.
2801         (mem_refs_may_alias_p): Adjust.
2802         * tree-data-ref.h (dr_may_alias_p): Adjust.
2803         * tree-data-ref.c: Include tree-affine.h.
2804         (dr_analyze_indices): Do nothing for the non-loop case.
2805         (dr_may_alias_p): Distinguish loop and non-loop case.  Disambiguate
2806         more cases in the non-loop case.
2807         * graphite-sese-to-poly.c (write_alias_graph_to_ascii_dimacs): Adjust
2808         calls to dr_may_alias_p.
2809         (write_alias_graph_to_ascii_ecc): Likewise.
2810         (write_alias_graph_to_ascii_dot): Likewise.
2811         (build_alias_set_optimal_p): Likewise.
2812
2813 2011-08-23  Richard Guenther  <rguenther@suse.de>
2814
2815         PR tree-optimization/50162
2816         * tree-vect-stmts.c (vectorizable_call): Fix argument lookup.
2817
2818 2011-08-23  Richard Guenther  <rguenther@suse.de>
2819
2820         * tree-data-ref.c (dr_analyze_indices): Add comments, handle
2821         REALPART_EXPR and IMAGPART_EXPR similar to ARRAY_REFs.
2822         (create_data_ref): Also dump access functions for the created data-ref.
2823
2824 2011-08-22  Uros Bizjak  <ubizjak@gmail.com>
2825             Kirill Yukhin  <kirill.yukhin@intel.com>
2826
2827         PR target/50155
2828         * config/i386/sse.md (VI_AVX2): New.
2829         (<plusminus_insn><mode>3): Use VI_AVX2 mode iterator.
2830         (*<plusminus_insn><mode>3): Ditto.
2831         (<sse2_avx2>_andnot<mode>3): Ditto.
2832         (*andnot<mode>3): Fix order of cond operands.
2833         Add asserts for correct TARGET_xxx.
2834         (*<any_logic:code><mode>3): Ditto.
2835
2836 2011-08-22  Anatoly Sokolov  <aesok@post.ru>
2837
2838         * config/m32c/m32c.h (CLASS_MAX_NREGS): Remove macro.
2839         * config/m32c/m32c-protos.h (m32c_class_max_nregs): Remove.
2840         * config/m32c/m32c.c (m32c_class_max_nregs): Make static. Change
2841         regclass argument type to reg_class_t. Change 'max' and 'v' vars
2842         and return types to unsigned char. Use reg_class_contents instead
2843         of class_contents.
2844         (TARGET_CLASS_MAX_NREGS): Define.
2845
2846 2011-08-22  Bernd Schmidt  <bernds@codesourcery.com>
2847
2848         * config/c6x/c6x.md (indirect_jump_shadow): Tweak representation
2849         to make computed_jump_p return true.
2850
2851 2011-08-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2852
2853         * configure.ac (GCC_PICFLAG_FOR_TARGET): Call it.
2854         (PICFLAG_FOR_TARGET): Substitute.
2855         * aclocal.m4: Regenerate.
2856         * configure: Regenerate.
2857
2858 2011-08-22  Dodji Seketeli  <dodji@redhat.com>
2859
2860         * c-family/c-pch.c (c_common_read_pch): Re-set line table right
2861         after reading in the pch.
2862
2863 2011-08-22  H.J. Lu  <hongjiu.lu@intel.com>
2864
2865         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Error if __ELF__ isn't defined.
2866         * configure: Regenerated.
2867
2868 2011-08-22  Jakub Jelinek  <jakub@redhat.com>
2869
2870         PR tree-optimization/50133
2871         * tree-vect-stmts.c (vect_finish_stmt_generation): Copy location
2872         from stmt instead of some statement around gsi.
2873
2874         PR middle-end/50141
2875         * expr.c (get_bit_range): Only use DECL_THREAD_LOCAL_P if
2876         innerdecl is a VAR_DECL.
2877
2878 2011-08-22  Kirill Yukhin  <kirill.yukhin@intel.com>
2879
2880         * config/i386/avx2intrin.h: New file.
2881         * config/i386/i386-builtin-types.def (PCINT, PCINT64, PV4SI,
2882         PV8SI, V32QI_FTYPE_V32QI, V32QI_FTYPE_V16QI, V16HI_FTYPE_V16HI,
2883         V16HI_FTYPE_V8HI, V8SI_FTYPE_V8SI, V16HI_FTYPE_V16QI,
2884         V8SI_FTYPE_V16QI, V4DI_FTYPE_V16QI, V8SI_FTYPE_V8HI,
2885         V4DI_FTYPE_V8HI, V4DI_FTYPE_V4SI, V4DI_FTYPE_PV4DI,
2886         V4DI_FTYPE_V2DI, V2DI_FTYPE_PCV2DI_V2DI, V4SI_FTYPE_PCV4SI_V4SI,
2887         V32QI_FTYPE_V16HI_V16HI, V16HI_FTYPE_V8SI_V8SI,
2888         V32QI_FTYPE_V32QI_V32QI, V16HI_FTYPE_V32QI_V32QI,
2889         V16HI_FTYPE_V16HI_V8HI, V16HI_FTYPE_V16HI_V16HI,
2890         V16HI_FTYPE_V16HI_INT, V16HI_FTYPE_V16HI_SI,
2891         V16HI_FTYPE_V16HI_V16HI_INT, V32QI_FTYPE_V32QI_V32QI_INT,
2892         V8SI_FTYPE_V8SI_V4SI, V8SI_FTYPE_V8SI_V8SI,
2893         V8SI_FTYPE_V16HI_V16HI, V8SI_FTYPE_V8SI_INT, V8SI_FTYPE_V8SI_SI,
2894         V8SI_FTYPE_PCV8SI_V8SI, V4DI_FTYPE_V4DI_V4DI,
2895         V4DI_FTYPE_V8SI_V8SI, V4DI_FTYPE_V4DI_V2DI,
2896         V4DI_FTYPE_PCV4DI_V4DI, V4DI_FTYPE_V4DI_INT,
2897         V2DI_FTYPE_V4DI_INT, V4DI_FTYPE_V4DI_V4DI_INT,
2898         V4DI_FTYPE_V4DI_V2DI_INT, VOID_FTYPE_PV2DI_V2DI_V2DI,
2899         VOID_FTYPE_PV4DI_V4DI_V4DI, VOID_FTYPE_PV4SI_V4SI_V4SI,
2900         VOID_FTYPE_PV8SI_V8SI_V8SI,
2901         V2DF_FTYPE_V2DF_PCDOUBLE_V4SI_V2DF_INT,
2902         V4DF_FTYPE_V4DF_PCDOUBLE_V4SI_V4DF_INT,
2903         V2DF_FTYPE_V2DF_PCDOUBLE_V2DI_V2DF_INT,
2904         V4DF_FTYPE_V4DF_PCDOUBLE_V4DI_V4DF_INT,
2905         V4SF_FTYPE_V4SF_PCFLOAT_V4SI_V4SF_INT,
2906         V8SF_FTYPE_V8SF_PCFLOAT_V8SI_V8SF_INT,
2907         V4SF_FTYPE_V4SF_PCFLOAT_V2DI_V4SF_INT,
2908         V4SF_FTYPE_V4SF_PCFLOAT_V4DI_V4SF_INT,
2909         V2DI_FTYPE_V2DI_PCINT64_V4SI_V2DI_INT,
2910         V4DI_FTYPE_V4DI_PCINT64_V4SI_V4DI_INT,
2911         V2DI_FTYPE_V2DI_PCINT64_V2DI_V2DI_INT,
2912         V4DI_FTYPE_V4DI_PCINT64_V4DI_V4DI_INT,
2913         V4SI_FTYPE_V4SI_PCINT_V4SI_V4SI_INT,
2914         V8SI_FTYPE_V8SI_PCINT_V8SI_V8SI_INT,
2915         V4SI_FTYPE_V4SI_PCINT_V2DI_V4SI_INT,
2916         V4SI_FTYPE_V4SI_PCINT_V4DI_V4SI_INT,
2917         V16HI_FTYPE_V16HI_SI_COUNT, V16HI_FTYPE_V16HI_V8HI_COUNT,
2918         V8SI_FTYPE_V8SI_SI_COUNT, V8SI_FTYPE_V8SI_V4SI_COUNT,
2919         V4DI_FTYPE_V4DI_INT_COUNT, V4DI_FTYPE_V4DI_V2DI_COUNT,
2920         V4DI_FTYPE_V4DI_INT_CONVERT,
2921         V4DI_FTYPE_V4DI_V4DI_INT_CONVERT): New.
2922         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MPSADBW256,
2923         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
2924         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
2925         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
2926         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
2927         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
2928         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
2929         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
2930         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
2931         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
2932         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
2933         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
2934         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
2935         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
2936         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
2937         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
2938         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
2939         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
2940         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
2941         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
2942         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
2943         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
2944         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
2945         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
2946         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
2947         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
2948         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
2949         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
2950         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
2951         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
2952         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
2953         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
2954         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
2955         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
2956         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
2957         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
2958         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
2959         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
2960         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
2961         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
2962         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
2963         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
2964         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
2965         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
2966         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
2967         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
2968         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
2969         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
2970         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
2971         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
2972         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
2973         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
2974         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
2975         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
2976         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
2977         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
2978         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
2979         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
2980         IX86_BUILTIN_MOVNTDQA256, IX86_BUILTIN_VBROADCASTSS_PS,
2981         IX86_BUILTIN_VBROADCASTSS_PS256,
2982         IX86_BUILTIN_VBROADCASTSD_PD256,
2983         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
2984         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
2985         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
2986         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
2987         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
2988         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
2989         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
2990         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
2991         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
2992         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
2993         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
2994         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
2995         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256,
2996         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
2997         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
2998         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
2999         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
3000         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI,
3001         IX86_BUILTIN_GATHERSIV2DF, IX86_BUILTIN_GATHERSIV4DF,
3002         IX86_BUILTIN_GATHERDIV2DF, IX86_BUILTIN_GATHERDIV4DF,
3003         IX86_BUILTIN_GATHERSIV4SF, IX86_BUILTIN_GATHERSIV8SF,
3004         IX86_BUILTIN_GATHERDIV4SF, IX86_BUILTIN_GATHERDIV8SF,
3005         IX86_BUILTIN_GATHERSIV2DI, IX86_BUILTIN_GATHERSIV4DI,
3006         IX86_BUILTIN_GATHERDIV2DI, IX86_BUILTIN_GATHERDIV4DI,
3007         IX86_BUILTIN_GATHERSIV4SI, IX86_BUILTIN_GATHERSIV8SI,
3008         IX86_BUILTIN_GATHERDIV4SI, IX86_BUILTIN_GATHERDIV8SI.
3009         (bdesc_special_args): Add IX86_BUILTIN_MOVNTDQA256,
3010         IX86_BUILTIN_MASKLOADD, IX86_BUILTIN_MASKLOADQ,
3011         IX86_BUILTIN_MASKLOADD256, IX86_BUILTIN_MASKLOADQ256,
3012         IX86_BUILTIN_MASKSTORED, IX86_BUILTIN_MASKSTOREQ,
3013         IX86_BUILTIN_MASKSTORED256, IX86_BUILTIN_MASKSTOREQ256.
3014         (bdesc_args): Add  IX86_BUILTIN_MPSADBW256,
3015         IX86_BUILTIN_PABSB256, IX86_BUILTIN_PABSW256,
3016         IX86_BUILTIN_PABSD256, IX86_BUILTIN_PACKSSDW256,
3017         IX86_BUILTIN_PACKSSWB256, IX86_BUILTIN_PACKUSDW256,
3018         IX86_BUILTIN_PACKUSWB256, IX86_BUILTIN_PADDB256,
3019         IX86_BUILTIN_PADDW256, IX86_BUILTIN_PADDD256,
3020         IX86_BUILTIN_PADDQ256, IX86_BUILTIN_PADDSB256,
3021         IX86_BUILTIN_PADDSW256, IX86_BUILTIN_PADDUSB256,
3022         IX86_BUILTIN_PADDUSW256, IX86_BUILTIN_PALIGNR256,
3023         IX86_BUILTIN_AND256I, IX86_BUILTIN_ANDNOT256I,
3024         IX86_BUILTIN_PAVGB256, IX86_BUILTIN_PAVGW256,
3025         IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_PBLENDVW256,
3026         IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
3027         IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
3028         IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
3029         IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256,
3030         IX86_BUILTIN_PHADDW256, IX86_BUILTIN_PHADDD256,
3031         IX86_BUILTIN_PHADDSW256, IX86_BUILTIN_PHSUBW256,
3032         IX86_BUILTIN_PHSUBD256, IX86_BUILTIN_PHSUBSW256,
3033         IX86_BUILTIN_PMADDUBSW256, IX86_BUILTIN_PMADDWD256,
3034         IX86_BUILTIN_PMAXSB256, IX86_BUILTIN_PMAXSW256,
3035         IX86_BUILTIN_PMAXSD256, IX86_BUILTIN_PMAXUB256,
3036         IX86_BUILTIN_PMAXUW256, IX86_BUILTIN_PMAXUD256,
3037         IX86_BUILTIN_PMINSB256, IX86_BUILTIN_PMINSW256,
3038         IX86_BUILTIN_PMINSD256, IX86_BUILTIN_PMINUB256,
3039         IX86_BUILTIN_PMINUW256, IX86_BUILTIN_PMINUD256,
3040         IX86_BUILTIN_PMOVMSKB256, IX86_BUILTIN_PMOVSXBW256,
3041         IX86_BUILTIN_PMOVSXBD256, IX86_BUILTIN_PMOVSXBQ256,
3042         IX86_BUILTIN_PMOVSXWD256, IX86_BUILTIN_PMOVSXWQ256,
3043         IX86_BUILTIN_PMOVSXDQ256, IX86_BUILTIN_PMOVZXBW256,
3044         IX86_BUILTIN_PMOVZXBD256, IX86_BUILTIN_PMOVZXBQ256,
3045         IX86_BUILTIN_PMOVZXWD256, IX86_BUILTIN_PMOVZXWQ256,
3046         IX86_BUILTIN_PMOVZXDQ256, IX86_BUILTIN_PMULDQ256,
3047         IX86_BUILTIN_PMULHRSW256, IX86_BUILTIN_PMULHUW256,
3048         IX86_BUILTIN_PMULHW256, IX86_BUILTIN_PMULLW256,
3049         IX86_BUILTIN_PMULLD256, IX86_BUILTIN_PMULUDQ256,
3050         IX86_BUILTIN_POR256, IX86_BUILTIN_PSADBW256,
3051         IX86_BUILTIN_PSHUFB256, IX86_BUILTIN_PSHUFD256,
3052         IX86_BUILTIN_PSHUFHW256, IX86_BUILTIN_PSHUFLW256,
3053         IX86_BUILTIN_PSIGNB256, IX86_BUILTIN_PSIGNW256,
3054         IX86_BUILTIN_PSIGND256, IX86_BUILTIN_PSLLDQI256,
3055         IX86_BUILTIN_PSLLWI256, IX86_BUILTIN_PSLLW256,
3056         IX86_BUILTIN_PSLLDI256, IX86_BUILTIN_PSLLD256,
3057         IX86_BUILTIN_PSLLQI256, IX86_BUILTIN_PSLLQ256,
3058         IX86_BUILTIN_PSRAWI256, IX86_BUILTIN_PSRAW256,
3059         IX86_BUILTIN_PSRADI256, IX86_BUILTIN_PSRAD256,
3060         IX86_BUILTIN_PSRLDQI256, IX86_BUILTIN_PSRLWI256,
3061         IX86_BUILTIN_PSRLW256, IX86_BUILTIN_PSRLDI256,
3062         IX86_BUILTIN_PSRLD256, IX86_BUILTIN_PSRLQI256,
3063         IX86_BUILTIN_PSRLQ256, IX86_BUILTIN_PSUBB256,
3064         IX86_BUILTIN_PSUBW256, IX86_BUILTIN_PSUBD256,
3065         IX86_BUILTIN_PSUBQ256, IX86_BUILTIN_PSUBSB256,
3066         IX86_BUILTIN_PSUBSW256, IX86_BUILTIN_PSUBUSB256,
3067         IX86_BUILTIN_PSUBUSW256, IX86_BUILTIN_PUNPCKHBW256,
3068         IX86_BUILTIN_PUNPCKHWD256, IX86_BUILTIN_PUNPCKHDQ256,
3069         IX86_BUILTIN_PUNPCKHQDQ256, IX86_BUILTIN_PUNPCKLBW256,
3070         IX86_BUILTIN_PUNPCKLWD256, IX86_BUILTIN_PUNPCKLDQ256,
3071         IX86_BUILTIN_PUNPCKLQDQ256, IX86_BUILTIN_PXOR256,
3072         IX86_BUILTIN_VBROADCASTSS_PS, IX86_BUILTIN_VBROADCASTSS_PS256,
3073         IX86_BUILTIN_VBROADCASTSD_PD256,
3074         IX86_BUILTIN_VBROADCASTSI256, IX86_BUILTIN_PBLENDD256,
3075         IX86_BUILTIN_PBLENDD128, IX86_BUILTIN_PBROADCASTB256,
3076         IX86_BUILTIN_PBROADCASTW256, IX86_BUILTIN_PBROADCASTD256,
3077         IX86_BUILTIN_PBROADCASTQ256, IX86_BUILTIN_PBROADCASTB128,
3078         IX86_BUILTIN_PBROADCASTW128, IX86_BUILTIN_PBROADCASTD128,
3079         IX86_BUILTIN_PBROADCASTQ128, IX86_BUILTIN_VPERMVARSI256,
3080         IX86_BUILTIN_VPERMDF256, IX86_BUILTIN_VPERMVARSF256,
3081         IX86_BUILTIN_VPERMDI256, IX86_BUILTIN_VPERMTI256,
3082         IX86_BUILTIN_VEXTRACT128I256, IX86_BUILTIN_VINSERT128I256,
3083         IX86_BUILTIN_PSLLVV4DI, IX86_BUILTIN_PSLLVV2DI,
3084         IX86_BUILTIN_PSLLVV8SI, IX86_BUILTIN_PSLLVV4SI,
3085         IX86_BUILTIN_PSRAVV8SI, IX86_BUILTIN_PSRAVV4SI,
3086         IX86_BUILTIN_PSRLVV4DI, IX86_BUILTIN_PSRLVV2DI,
3087         IX86_BUILTIN_PSRLVV8SI, IX86_BUILTIN_PSRLVV4SI.
3088         (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_GATHERSIV2DF,
3089         IX86_BUILTIN_GATHERSIV4DF, IX86_BUILTIN_GATHERDIV2DF,
3090         IX86_BUILTIN_GATHERDIV4DF, IX86_BUILTIN_GATHERSIV4SF,
3091         IX86_BUILTIN_GATHERSIV8SF, IX86_BUILTIN_GATHERDIV4SF,
3092         IX86_BUILTIN_GATHERDIV8SF, IX86_BUILTIN_GATHERSIV2DI,
3093         IX86_BUILTIN_GATHERSIV4DI, IX86_BUILTIN_GATHERDIV2DI,
3094         IX86_BUILTIN_GATHERDIV4DI, IX86_BUILTIN_GATHERSIV4SI,
3095         IX86_BUILTIN_GATHERSIV8SI, IX86_BUILTIN_GATHERDIV4SI,
3096         IX86_BUILTIN_GATHERDIV8SI.
3097         (ix86_preferred_simd_mode): Support AVX2 modes.
3098         (ix86_expand_args_builtin): Support AVX2 builtins.
3099         (ix86_expand_special_args_builtin): Likewise.
3100         (ix86_expand_builtin): Likewise.
3101         * config/i386/i386.md (UNSPEC_VPERMSI): New.
3102         (UNSPEC_VPERMDF): Likewise.
3103         (UNSPEC_VPERMSF): Likewise.
3104         (UNSPEC_VPERMDI): Likewise.
3105         (UNSPEC_VPERMTI): Likewise.
3106         (UNSPEC_GATHER): Likewise.
3107         (ssemodesuffix): Extend.
3108         * config/i386/immintrin.h: Include avx2intrin.h when __AVX2__
3109         is defined.
3110         * config/i386/predicates.md (const1248_operand): New.
3111         * config/i386/sse.md (VI1_AVX2): New mode iterator.
3112         (VI2_AVX2): Likewise.
3113         (VI4_AVX2): Likewise.
3114         (VI8_AVX2): Likewise.
3115         (VIMAX_AVX2): Likewise.
3116         (SSESCALARMODE): Likewise.
3117         (VI12_AVX2): Likewise.
3118         (VI24_AVX2): Likewise.
3119         (VI124_AVX2): Likewise.
3120         (VI248_AVX2): Likewise.
3121         (VI48_AVX2): Likewise.
3122         (VI4SD_AVX2): Likewise.
3123         (V48_AVX2): Likewise.
3124         (AVX256MODE2P): Likewise.
3125         (AVXMODE48P_DI): Likewise.
3126         (sse2_avx2): New mode attribute.
3127         (ssse3_avx2): Likewise.
3128         (sse4_1_avx2): Likewise.
3129         (avx_avx2): Likewise.
3130         (ssebytemode): Likewise.
3131         (AVXTOSSEMODE): Likewise.
3132         (AVXMODE48P_DI): Likewise.
3133         (gthrfirstp): Likewise.
3134         (gthrlastp): Likewise.
3135         (lshift): New code_iterator
3136         (lshift): New code attribute.
3137         (lshift): Likewise.
3138         (ssescalarmodesuffix): Update.
3139         (sseunpackmode): Likewise.
3140         (ssepackmode): Likewise.
3141         (avx2_vec_dupv4sf): New insn pattern.
3142         (avx2_vec_dupv8sf): Likewise.
3143         (avx2_interleave_highv4di): Likewise.
3144         (avx2_interleave_lowv4di): Likewise.
3145         (avx2_umulv4siv4di3): Likewise
3146         (*avx2_umulv4siv4di3): Likewise
3147         (avx2_pmaddwd): Likewise.
3148         (*avx2_pmaddwd): Likewise.
3149         (avx2_lshrqv4di3): Likewise.
3150         (avx2_lshlqv4di3): Likewise.
3151         (avx2_lshl<mode>3): Likewise.
3152         (avx2_<umaxmin:code><mode>3): Likewise.
3153         (*avx2_<umaxmin:code><mode>3): Likewise.
3154         (avx2_<smaxmin:code><mode>3): Likewise.
3155         (*avx2_<smaxmin:code><mode>3): Likewise.
3156         (avx2_eq<mode>3): Likewise.
3157         (*avx2_eq<mode>3): Likewise.
3158         (avx2_gt<mode>3): Likewise.
3159         (avx2_interleave_highv32qi): New.
3160         (avx2_interleave_lowv32qi): Likewise.
3161         (avx2_interleave_highv16hi): Likewise.
3162         (avx2_interleave_lowv16hi): Likewise.
3163         (avx2_interleave_highv8si): Likewise.
3164         (avx2_interleave_lowv8si): Likewise.
3165         (avx2_pshufd): Likewise.
3166         (avx2_pshufd_1): Likewise.
3167         (avx2_pshuflwv3): Likewise.
3168         (avx2_pshuflw_1): Likewise.
3169         (avx2_pshufhwv3): Likewise.
3170         (avx2_pshufhw_1): Likewise.
3171         (avx2_uavgv32qi3): Likewise.
3172         (*avx2_uavgv32qi3): Likewise.
3173         (avx2_uavgv16hi3): Likewise.
3174         (*avx2_uavgv16hi3): Likewise.
3175         (avx2_pmovmskb): Likewise.
3176         (avx2_phaddwv16hi3): Likewise.
3177         (avx2_phadddv8si3): Likewise.
3178         (avx2_phaddswv16hi3): Likewise.
3179         (avx2_phsubwv16hi3): Likewise.
3180         (avx2_phsubdv8si3): Likewise.
3181         (avx2_phsubswv16hi3): Likewise.
3182         (avx2_pmaddubsw256): Likewise.
3183         (avx2_umulhrswv16hi3): Likewise.
3184         (*avx2_umulhrswv16hi3): Likewise.
3185         (avx2_packusdw): Likewise.
3186         (avx2_pblendd<mode>): Likewise.
3187         (avx2_<code>v16qiv16hi2): Likewise.
3188         (avx2_<code>v8qiv8si2): Likewise.
3189         (avx2_<code>v8hiv8si2): Likewise.
3190         (avx2_<code>v4qiv4di2): Likewise.
3191         (avx2_<code>v4hiv4di2): Likewise.
3192         (avx2_<code>v4siv4di2): Likewise.
3193         (avx2_pbroadcast<mode>): Likewise.
3194         (avx2_permvarv8si): Likewise.
3195         (avx2_permv4df): Likewise.
3196         (avx2_permvarv8sf): Likewise.
3197         (avx2_permv4di): Likewise.
3198         (avx2_permv2ti): Likewise.
3199         (avx2_vec_dupv4df): Likewise.
3200         (avx2_vbroadcasti128_<mode>): Likewise.
3201         (avx2_vec_set_lo_v4di): Likewise.
3202         (avx2_vec_set_hi_v4di): Likewise.
3203         (*avx2_maskmov<avx2modesuffix><avxmodesuffix>): Likewise.
3204         (avx2_extracti128): Likewise.
3205         (avx2_inserti128): Likewise.
3206         (avx2_ashrvv8si): Likewise.
3207         (avx2_ashrvv4si): Likewise.
3208         (avx2_<lshift>vv8si): Likewise.
3209         (avx2_<lshift>v<mode>): Likewise.
3210         (avx2_<lshift>vv2di): Likewise.
3211         (avx2_gathersi<mode>): Likewise.
3212         (*avx2_gathersi<mode>): Likewise.
3213         (avx2_gatherdi<mode>): Likewise.
3214         (*avx2_gatherdi<mode>): Likewise.
3215         (avx2_gatherdi<mode>256): Likewise.
3216         (*avx2_gatherdi<mode>256): Likewise.
3217         (<plusminus_insn><mode>3): Use VI mode iterator.
3218         (*<plusminus_insn><mode>3): Use VI mode iterator.
3219         (<sse2_avx2>_<plusminus_insn><mode>3): Rename from
3220         sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
3221         (*<sse2_avx2>_<plusminus_insn><mode>3): Rename from
3222         *sse2_<plusminus_insn><mode>3.  Use VI12_AVX2 mode iterator.
3223         (mul<mode>3): Rename from mulv8hi3.  Use VI2_AVX2 mode iterator.
3224         (*mul<mode>3): Rename from *mulv8hi3.  Use VI2_AVX2 mode iterator.
3225         (<s>mul<mode>3_highpart): Rename from <s>mulv8hi3_highpart.
3226         Use VI2_AVX2 mode iterator.
3227         (*<s>mul<mode>3_highpart): Rename from *<s>mulv8hi3_highpart.
3228         Use VI2_AVX2 mode iterator.
3229         (mul<mode>3): Rename from mulv4si3.  Use VI4_AVX2 mode iterator.
3230         (*mul<mode>3): Rename from *mulv4si3.  Use VI4_AVX2 mode iterator.
3231         (*<sse4_1_avx2>_mulv2siv2di3): Rename from *sse4_1_mulv4si3.
3232         Use VI4_AVX2 mode iterator.
3233         (ashr<mode>3): Use VI24_AVX2 mode iterator.
3234         (lshr<mode>3): Use VI248_AVX2 mode iterator.
3235         (<sse2_avx2>_ashl<mode>3): Rename from sse2_ashlv1ti3.
3236         Use VIMAX_AVX2 mode iterator.
3237         (<sse2_avx2>_andnot<mode>3): Rename from sse2_andnot<mode>3.
3238         Use VI mode iterator.
3239         (*andnot<mode>3): Update for AVX2.
3240         (*<any_logic:code><mode>3): Likewise.
3241         (<sse2_avx2>_packsswb): Rename from sse2_packsswb.
3242         Use VI1_AVX mode iterator.
3243         (<sse2_avx2>_packssdw):  Rename from sse2_packssdw.
3244         Use VI2_AVX mode iterator.
3245         (<sse2_avx2>_packuswb): Rename from sse2_packsswb.
3246         Use VI1_AVX mode iterator.
3247         (<sse2_avx2>_psadbw): Rename from sse2_psadbw.
3248         Use VI8_AVX2 mode iterator.
3249         (<ssse3_avx2>_pshufb<mode>3): Rename from ssse3_pshufbv16qi3.
3250         Use VI1_AVX2 mode iterator.
3251         (<ssse3_avx2>_psign<mode>3): Rename from ssse3_psign<mode>3.
3252         Use VI124_AVX2 mode iterator.
3253         (<ssse3_avx2>_palignr<mode>): Rename from ssse3_palignrti.
3254         Use SSESCALARMODE mode iterator.
3255         (abs<mode>2): Use VI124_AVX2 mode iterator.
3256         (<sse4_1_avx2>_movntdqa): Rename from sse4_1_movntdqa.
3257         Use VI8_AVX2 mode iterator.
3258         (<sse4_1_avx2>_mpsadbw): Rename from sse4_1_mpsadbw.
3259         Use VI1_AVX2 mode iterator.
3260         (<sse4_1_avx2>_pblendvb): Rename from sse4_1_pblendvb.
3261         Use VI1_AVX2 mode iterator.
3262         (<sse4_1_avx2>_pblendw): Rename from sse4_1_pblendvb.
3263         Use VI2_AVX2 mode iterator.
3264         (<avx_avx2>_maskload<avx2modesuffix><avxmodesuffix>): Rename from
3265         avx_maskload<ssemodesuffix><avxsizesuffix>. Use V48_AVX2 mode iterator.
3266         (<avx_avx2>_maskstore<avx2modesuffix><avxmodesuffix>): Rename from
3267         avx_maskstore<ssemodesuffix><avxsizesuffix>.
3268         Use V48_AVX2 mode iterator.
3269         * doc/extend.texi: Document AVX2 built-in functions.
3270         * doc/invoke.texi: Document -mavx2.
3271
3272 2011-08-22  Matthias Klose <doko@debian.org>
3273
3274         Revert:
3275         2011-07-11  Arthur Loiret  <aloiret@debian.org>
3276                     Matthias Klose <doko@debian.org>
3277         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Set to 'n32 . 64' if
3278         tm_defines contains MIPS_ABI_DEFAULT ABI_32, to follow the glibc
3279         convention.
3280         * config.gcc (tm_defines): Add MIPS_ABI_DEFAULT=ABI_32.
3281
3282 2011-08-22  Mikael Pettersson  <mikpe@it.uu.se>
3283
3284         PR bootstrap/50146
3285         * ira-color.c (assign_hard_reg): Move saved_nregs declaration
3286         to #ifndef HONOR_REG_ALLOC_ORDER block.
3287
3288 2011-08-21  Richard Henderson  <rth@redhat.com>
3289
3290         * rtl.h (INSN_ANNULLED_BRANCH_P): Only allow JUMP_INSN.
3291         * dwarf2cfi.c (scan_trace): Test JUMP_P before INSN_ANNULLED_BRANCH_P.
3292         * resource.c (next_insn_no_annul): Likewise.
3293         (mark_set_resources): Likewise.
3294         * reorg.c (delete_from_delay_slot): Likewise.
3295         (dbr_schedule, redundant_insn, try_merge_delay_insns): Likewise.
3296         (get_branch_condition): Test pc_rtx and LABEL_REF before dereferencing.
3297
3298 2011-08-21  Uros Bizjak  <ubizjak@gmail.com>
3299
3300         * config/i386/i386.md (any_div): Remove.
3301         (sgnprefix): Update for removal.
3302         (u): Ditto.
3303
3304 2011-08-20  Vladimir Makarov  <vmakarov@redhat.com>
3305
3306         * ira-lives.c (mark_pseudo_regno_subword_live): Use allocno class
3307         for ira_reg_class_max_nregs.  Increase pressure by 1.
3308         (mark_pseudo_regno_subword_dead): Use allocno class
3309         for ira_reg_class_max_nregs.
3310
3311 2011-08-20  Richard Henderson  <rth@redhat.com>
3312
3313         * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c,
3314         config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c,
3315         config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c,
3316         config/c6x/ltf.c: Adjust include path for soft-fp.
3317
3318 2011-08-20  H.J. Lu  <hongjiu.lu@intel.com>
3319
3320         PR other/46770
3321         * config.gcc (tm_file): Add initfini-array.h if
3322         .init_arrary/.fini_array are supported.
3323
3324         * crtstuff.c: Don't generate .ctors nor .dtors sections if
3325         USE_INITFINI_ARRAY is defined.
3326
3327         * output.h (default_elf_init_array_asm_out_constructor): New.
3328         (default_elf_fini_array_asm_out_destructor): Likewise.
3329         * varasm.c (elf_init_array_section): Likewise.
3330         (elf_fini_array_section): Likewise.
3331         (get_elf_initfini_array_priority_section): Likewise.
3332         (default_elf_init_array_asm_out_constructor): Likewise.
3333         (default_elf_fini_array_asm_out_destructor): Likewise.
3334
3335         * config/initfini-array.h: New.
3336
3337 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
3338
3339         * config/mips/mips.c (mips_class_max_nregs): Check that the mode is
3340         OK for ST_REGS and FP_REGS before taking those classes into account.
3341
3342 2011-08-20  Richard Sandiford  <rdsandiford@googlemail.com>
3343
3344         * config/mips/mips.c (mips_reorg_process_insns): Check for jumps
3345         before checking for annulled branches.
3346
3347 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
3348
3349         * config/i386/i386.c (ix86_binary_operator_ok): Use
3350         satisfies_constraint_L.
3351
3352 2011-08-20  Uros Bizjak  <ubizjak@gmail.com>
3353             Michael Matz  <matz@suse.de>
3354
3355         * config/i386/i386.c (ix86_expand_round_sse4): Expand as
3356         trunc (a + copysign (nextafter (0.5, 0.0), a)).
3357
3358 2011-08-20  Anatoly Sokolov  <aesok@post.ru>
3359
3360         * doc/tm.texi.in (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
3361         * doc/tm.texi: Regenerate.
3362         * targhooks.c (default_preferred_output_reload_class): Don't use
3363         PREFERRED_OUTPUT_RELOAD_CLASS macro.
3364         * system.h (PREFERRED_OUTPUT_RELOAD_CLASS): Poison.
3365
3366 2011-08-20  Jakub Jelinek  <jakub@redhat.com>
3367
3368         PR tree-optimization/48739
3369         * tree-ssa.c: Include cfgloop.h.
3370         (execute_update_addresses_taken): When updating ssa, if in loop closed
3371         SSA form, call rewrite_into_loop_closed_ssa instead of update_ssa.
3372         * Makefile.in (tree-ssa.o): Depend on $(CFGLOOP_H).
3373
3374 2011-08-19  Vladimir Makarov  <vmakarov@redhat.com>
3375
3376         PR rtl-optimization/49936
3377         * ira.c (ira_init_register_move_cost): Ignore too small subclasses
3378         for calculation of max register move costs.
3379
3380 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
3381
3382         * c-parser.c (c_parser_postfix_expression): Convert operands of
3383         __builtin_complex to their semantic types.
3384
3385 2011-08-19  H.J. Lu  <hongjiu.lu@intel.com>
3386
3387         PR middle-end/49721
3388         * explow.c (convert_memory_address_addr_space): Also permute the
3389         conversion and addition of constant for zero-extend.
3390
3391 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
3392
3393         * c-parser.c (c_parser_postfix_expression): Handle RID_BUILTIN_COMPLEX.
3394         * doc/extend.texi (__builtin_complex): Document.
3395
3396 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
3397
3398         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Handle constants
3399         beyond conversions.
3400         (convert_mult_to_widen): Convert constant inputs to the right type.
3401         (convert_plusminus_to_widen): Don't automatically reject inputs that
3402         are not an SSA_NAME.
3403         Convert constant inputs to the right type.
3404
3405 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
3406
3407         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Convert add_rhs
3408         to the correct type.
3409
3410 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
3411
3412         * tree-ssa-math-opts.c (convert_mult_to_widen): Better handle
3413         unsigned inputs of different modes.
3414         (convert_plusminus_to_widen): Likewise.
3415
3416 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
3417
3418         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): Add new argument
3419         'type'.
3420         Use 'type' from caller, not inferred from 'rhs'.
3421         Don't reject non-conversion statements. Do return lhs in this case.
3422         (is_widening_mult_p): Add new argument 'type'.
3423         Use 'type' from caller, not inferred from 'stmt'.
3424         Pass type to is_widening_mult_rhs_p.
3425         (convert_mult_to_widen): Pass type to is_widening_mult_p.
3426         (convert_plusminus_to_widen): Likewise.
3427
3428 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
3429
3430         * tree-ssa-math-opts.c (is_widening_mult_p): Remove FIXME.
3431         Ensure the the larger type is the first operand.
3432
3433 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
3434
3435         * tree-ssa-math-opts.c (convert_mult_to_widen): Convert
3436         unsupported unsigned multiplies to signed.
3437         (convert_plusminus_to_widen): Likewise.
3438
3439 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
3440
3441         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Permit a single
3442         conversion statement separating multiply-and-accumulate.
3443
3444 2011-08-19  Richard Guenther  <rguenther@suse.de>
3445
3446         PR tree-optimization/50067
3447         * tree-data-ref.c (dr_analyze_indices): Simplify, strip MEM_REF
3448         offset only if we accounted for it.
3449
3450 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
3451
3452         * config/arm/arm.md (maddhidi4): Remove '*' from name.
3453         * expr.c (expand_expr_real_2): Use find_widening_optab_handler.
3454         * optabs.c (find_widening_optab_handler_and_mode): New function.
3455         (expand_widen_pattern_expr): Use find_widening_optab_handler.
3456         (expand_binop_directly): Likewise.
3457         (expand_binop): Likewise.
3458         * optabs.h (find_widening_optab_handler): New macro define.
3459         (find_widening_optab_handler_and_mode): New prototype.
3460         * tree-cfg.c (verify_gimple_assign_binary): Adjust WIDEN_MULT_EXPR
3461         type precision rules.
3462         (verify_gimple_assign_ternary): Likewise for WIDEN_MULT_PLUS_EXPR.
3463         * tree-ssa-math-opts.c (build_and_insert_cast): New function.
3464         (is_widening_mult_rhs_p): Allow widening by more than one mode.
3465         Explicitly disallow mis-matched input types.
3466         (convert_mult_to_widen): Use find_widening_optab_handler, and cast
3467         input types to fit the new handler.
3468         (convert_plusminus_to_widen): Likewise.
3469
3470 2011-08-19  Andrew Stubbs  <ams@codesourcery.com>
3471
3472         * expr.c (expand_expr_real_2): Use widening_optab_handler.
3473         * genopinit.c (optabs): Use set_widening_optab_handler for $N.
3474         (gen_insn): $N now means $a must be wider than $b, not consecutive.
3475         * optabs.c (widened_mode): New function.
3476         (expand_widen_pattern_expr): Use widening_optab_handler.
3477         (expand_binop_directly): Likewise.
3478         (expand_binop): Likewise.
3479         * optabs.h (widening_optab_handlers): New struct.
3480         (optab_d): New member, 'widening'.
3481         (widening_optab_handler): New function.
3482         (set_widening_optab_handler): New function.
3483         * tree-ssa-math-opts.c (convert_mult_to_widen): Use
3484         widening_optab_handler.
3485         (convert_plusminus_to_widen): Likewise.
3486
3487 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
3488
3489         * c-decl.c (grokdeclarator): Diagnose _Noreturn for non-C1X if
3490         pedantic.
3491         * c-parser.c (c_parser_declspecs): Include _Noreturn in syntax comment.
3492         * ginclude/stdnoreturn.h (noreturn): Don't define for C++.
3493
3494 2011-08-19  Joseph Myers  <joseph@codesourcery.com>
3495
3496         * opth-gen.awk: Do not declare target save/restore structures and
3497         functions if IN_RTS defined.
3498
3499 2011-08-19  Matthew Gretton-Dann  <matthew.gretton-dann@arm.com>
3500
3501         PR target/49437
3502         * config/arm/arm.c (arm_output_epilogue): Properly handle epilogue
3503         when stack was realigned in interrupt handler prologue.
3504
3505 2011-08-18  Joseph Myers  <joseph@codesourcery.com>
3506
3507         * c-decl.c (shadow_tag_warned): Check for _Noreturn.
3508         (quals_from_declspecs): Assert _Noreturn not present.
3509         (grokdeclarator): Handle _Noreturn.
3510         (build_null_declspecs): Initialize noreturn_p.
3511         (declspecs_add_scspec): Handle RID_NORETURN.
3512         * c-parser.c (c_token_starts_declspecs, c_parser_declspecs)
3513         (c_parser_attributes): Handle RID_NORETURN.
3514         * c-tree.h (struct c_declspecs): Add noreturn_p.
3515         * ginclude/stdnoreturn.h: New.
3516         * Makefile.in (USER_H): Add stdnoreturn.h.
3517
3518 2011-08-18  Kirill Yukhin  <kirill.yukhin@intel.com>
3519
3520         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX2_SET): New.
3521         (OPTION_MASK_ISA_AVX_UNSET): Update.
3522         (OPTION_MASK_ISA_AVX2_UNSET): New.
3523         (ix86_handle_option): Handle OPT_mavx2 case.
3524         * config/i386/cpuid.h (bit_AVX2): New.
3525         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3526         AVX2 feature.
3527         * config/i386/i386-c.c (ix86_target_macros_internal):
3528         Conditionally define __AVX2__.
3529         * config/i386/i386.c (ix86_option_override_internal): Define PTA_AVX2.
3530         Define "core-avx2" processor alias.  Handle avx2 option.
3531         (ix86_valid_target_attribute_inner_p): Handle avx2 option.
3532         * config/i386/i386.h (TARGET_AVX2): New.
3533         * config/i386/i386.opt (mavx2): New.
3534         * doc/invoke.texi: Document -mavx2.
3535
3536 2011-08-18  Vladimir Makarov  <vmakarov@redhat.com>
3537
3538         PR rtl-optimization/49890
3539         * ira-costs.c (setup_regno_cost_classes_by_aclass): Don't exclude
3540         subclasses of class which is superset of a pressure class.
3541
3542 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
3543             Igor Zamyatin <igor.zamyatin@intel.com>
3544
3545         * config/i386/i386-c.c (ix86_target_macros_internal): Replace int
3546         with HOST_WIDE_INT for isa_flag.
3547         (ix86_pragma_target_parse): Replace int with HOST_WIDE_INT for
3548         isa variables.
3549
3550         * config/i386/i386.c (ix86_target_string): Replace int with
3551         HOST_WIDE_INT for isa.  Use HOST_WIDE_INT_PRINT to print isa.
3552         (ix86_target_opts): Replace int with HOST_WIDE_INT on mask.
3553         (pta_flags): Removed.
3554         (PTA_XXX): Redefined as (HOST_WIDE_INT_1 << X).
3555         (pta): Use HOST_WIDE_INT on flags.
3556         (builtin_isa): Use HOST_WIDE_INT on isa.
3557         (ix86_add_new_builtins): Likewise.
3558         (def_builtin): Use HOST_WIDE_INT on mask.
3559         (def_builtin_const): Likewise.
3560         (builtin_description): Likewise.
3561
3562         * config/i386/i386.opt (ix86_isa_flags): Replace int with
3563         HOST_WIDE_INT.
3564         (ix86_isa_flags_explicit): Likewise.
3565         (x_ix86_isa_flags_explicit): Likewise.
3566
3567 2011-08-17  Vladimir Makarov  <vmakarov@redhat.com>
3568
3569         PR rtl-optimization/50107
3570         * ira-int.h (ira_hard_reg_not_in_set_p): Remove.
3571         (ira_hard_reg_in_set_p): New.
3572
3573         * ira-color.c (calculate_saved_nregs): New.
3574         (assign_hard_reg): Use it.  Set up allocated_hard_reg_p for all
3575         hard regs.
3576         (allocno_reload_assign, fast_allocation): Use
3577         ira_hard_reg_set_intersection_p instead of
3578         ira_hard_reg_not_in_set_p.
3579
3580         * ira.c (setup_reg_renumber): Use
3581         ira_hard_reg_set_intersection_p instead of
3582         ira_hard_reg_not_in_set_p.
3583         (setup_allocno_assignment_flags, calculate_allocation_cost): Use
3584         ira_hard_reg_in_set_p instead of ira_hard_reg_not_in_set_p.
3585
3586         * ira-costs.c (ira_tune_allocno_costs): Use
3587         ira_hard_reg_set_intersection_p instead of
3588         ira_hard_reg_not_in_set_p.
3589
3590 2011-08-18  H.J. Lu  <hongjiu.lu@intel.com>
3591             Igor Zamyatin <igor.zamyatin@intel.com>
3592
3593         * hwint.h (HOST_WIDE_INT_1): New.
3594
3595         * opt-functions.awk (switch_bit_fields): Initialize the
3596         host_wide_int field.
3597         (host_wide_int_var_name): New.
3598         (var_type_struct): Check and return HOST_WIDE_INT.
3599
3600         * opt-read.awk: Handle HOST_WIDE_INT for "Variable".
3601
3602         * optc-save-gen.awk: Support HOST_WIDE_INT on var_target_other.
3603
3604         * opth-gen.awk: Use HOST_WIDE_INT_1 on HOST_WIDE_INT.  Properly
3605         check masks for HOST_WIDE_INT.
3606
3607         * opts-common.c (set_option): Support HOST_WIDE_INT flag_var.
3608         (option_enabled): Likewise.
3609         (get_option_state): Likewise.
3610
3611         * opts.h (cl_option): Add cl_host_wide_int.  Change var_value
3612         to HOST_WIDE_INT.
3613
3614 2011-08-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3615             Marc Glisse  <marc.glisse@normalesup.org>
3616
3617         PR libstdc++-v3/1773
3618         * target.def (decl_mangling_context): New C++ hook.
3619         * doc/tm.texi: Regenerate.
3620         * config/sol2-cxx.c, config/sol2-stubs.c: New files.
3621         * config/sol2-protos.h: Group by source file.
3622         (solaris_cxx_decl_mangling_context): Declare.
3623         * config/sol2.h (TARGET_CXX_DECL_MANGLING_CONTEXT): Define.
3624         * config/t-sol2 (sol2-cxx.o, sol2-stubs.o): New targets.
3625         Use $<.
3626         * config.gcc (*-*-solaris2*): Add sol2-cxx.o to cxx_target_objs.
3627         Add sol2-stubs.o to extra_objs.
3628
3629 2011-08-18  Jakub Jelinek  <jakub@redhat.com>
3630
3631         PR target/50009
3632         * stor-layout.c (update_alignment_for_field): Don't ICE on
3633         packed flexible array members if ms_bitfield_layout_p.
3634
3635         PR target/50092
3636         * config/i386/i386.c (assign_386_stack_local): Call validize_mem
3637         on the result before returning it.
3638
3639         PR debug/50017
3640         * tree-vect-stmts.c (vect_finish_stmt_generation): If gsi_stmt (*gsi)
3641         is a debug stmt, use location of the first non-debug stmt after it.
3642
3643 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
3644
3645         * config/arm/arm.c (arm_rtx_costs_1): Don't modify the costs of SET.
3646         (arm_size_rtx_costs): Likewise.
3647
3648 2011-08-18  Richard Guenther  <rguenther@suse.de>
3649
3650         * tree.h (tree_int_cst_msb): Remove.
3651         * tree.c (tree_int_cst_msb): Likewise.
3652         (tree_int_cst_sign_bit): Move from ...
3653         * tree-ssa-loop-ivopts.c (tree_int_cst_sign_bit): ... here.
3654
3655 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
3656
3657         * doc/tm.texi.in (TARGET_RTX_COSTS): Add an opno paramter.
3658         * doc/tm.texi: Regenerate.
3659         * target.def (rtx_costs): Add an opno parameter.
3660         * hooks.h (hook_bool_rtx_int_int_intp_bool_false): Replace with...
3661         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
3662         * hooks.c (hook_bool_rtx_int_int_intp_bool_false): Replace with...
3663         (hook_bool_rtx_int_int_int_intp_bool_false): ...this.
3664         * cse.c (COST_IN): Add an opno parameter.
3665         (notreg_cost): Likewise.  Update call to rtx_cost.
3666         (COST, fold_rtx): Update accordingly.
3667         * dojump.c (prefer_and_bit_test): Update call to rtx_cost.
3668         * expmed.c (emit_store_flag): Likewise.
3669         * optabs.c (avoid_expensive_constant): Add an opno parameter.
3670         Update call to rtx_cost.
3671         (expand_binop_directly, expand_binop): Likewise.
3672         (expand_twoval_binop, prepare_cmp_insn): Likewise.
3673         * rtl.h (rtx_cost, get_full_rtx_cost): Add opno parameters.
3674         (set_src_cost, get_full_set_src_cost): Update accordingly.
3675         * rtlanal.c (rtx_cost): Add an opno parameter.  Update call
3676         to target hook.
3677         (get_full_rtx_cost): Add an opno paramter.  Update calls to rtx_cost.
3678         (default_adress_cost): Update calls to rtx_cost.
3679
3680         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs)
3681         (arm_slowmul_rtx_costs): Adjust calls to rtx_cost.
3682         (arm_rtx_costs): Add an opno parameter.
3683         * config/alpha/alpha.c (alpha_rtx_costs): Add an opno parameter and
3684         adjust any recursive rtx-cost calls.
3685         * config/avr/avr.c (avr_operand_rtx_cost, avr_rtx_costs): Likewise.
3686         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
3687         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
3688         * config/cris/cris.c (cris_rtx_costs): Likewise.
3689         * config/frv/frv.c (frv_rtx_costs): Likewise.
3690         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
3691         * config/i386/i386.c (ix86_rtx_costs): Likewise.
3692         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
3693         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
3694         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
3695         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
3696         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
3697         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
3698         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
3699         * config/mep/mep.c (mep_rtx_cost): Likewise.
3700         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
3701         * config/mips/mips.c (mips_binary_cost): Update call to rtx_cost.
3702         (mips_zero_extend_cost): Add an opno parameter.
3703         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
3704         * config/mn10300/mn10300.c (mn10300_address_cost): Update call
3705         to rtx_cost.
3706         (mn10300_rtx_costs): Add an opno parameter and adjust any recursive
3707         rtx-cost calls.
3708         * config/pa/pa.c (hppa_rtx_costs): Likewise.
3709         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
3710         * config/picochip/picochip.c (picochip_rtx_costs): Likewise.
3711         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
3712         (rs6000_debug_rtx_costs): Likewise.
3713         * config/s390/s390.c (s390_rtx_costs): Likewise.
3714         * config/score/score-protos.h (score_rtx_costs): Likewise.
3715         * config/score/score.c (score_rtx_costs): Likewise.
3716         * config/sh/sh.c (andcosts): Update call to rtx_cost.
3717         (sh_rtx_costs): Add an opno parameter.
3718         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
3719         * config/spu/spu.c (spu_rtx_costs): Likewise.
3720         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
3721         * config/v850/v850.c (v850_rtx_costs): Likewise.
3722         * config/vax/vax.c (vax_rtx_costs): Likewise.
3723         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
3724
3725 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
3726
3727         * rtl.h (set_src_cost, get_full_set_src_cost): New functions.
3728         * auto-inc-dec.c (attempt_change): Use set_src_cost instead of
3729         rtx_cost.
3730         * calls.c (precompute_register_parameters): Likewise.
3731         * combine.c (expand_compound_operation, make_extraction): Likewise.
3732         (force_to_mode, distribute_and_simplify_rtx): Likewise.
3733         * dse.c (find_shift_sequence): Likewise.
3734         * expmed.c (init_expmed, expand_mult, expand_smod_pow2): Likewise.
3735         * expr.c (compress_float_constant): Likewise.
3736         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
3737         * gcse.c (want_to_gcse_p): Likewise.
3738         * ifcvt.c (noce_try_sign_mask): Likewise.
3739         * loop-doloop.c (doloop_optimize): Likewise.
3740         * loop-invariant.c (create_new_invariant): Likewise.
3741         * optabs.c (avoid_expensive_constant): Likewise.
3742         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands)
3743         (try_replace_in_use, reload_cse_move2add): Likewise.
3744         * reload1.c (calculate_elim_costs_all_insns): Likewise.
3745         (note_reg_elim_costly): Likewise.
3746         * rtlanal.c (insn_rtx_cost): Likewise.
3747         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3748         * stmt.c (lshift_cheap_p): Likewise.
3749         * tree-ssa-loop-ivopts.c (seq_cost, computation_cost): Likewise.
3750         * config/avr/avr.c (final_prescan_insn): Likewise.
3751         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
3752         * config/mips/mips.c (mips_binary_cost, mips_rtx_costs): Likewise.
3753
3754 2011-08-18  Richard Sandiford  <richard.sandiford@linaro.org>
3755
3756         * rtl.h (set_rtx_cost, get_full_set_rtx_cost): New functions.
3757         * auto-inc-dec.c (attempt_change): Use set_rtx_cost.
3758         * cfgloopanal.c (seq_cost): Likewise.
3759         * loop-invariant.c (create_new_invariant): Likewise.
3760         * postreload.c (move2add_use_add2_insn, move2add_use_add3_insn)
3761         (reload_cse_move2add): Use get_full_set_rtx_cost.
3762
3763 2011-08-18  Richard Guenther  <rguenther@suse.de>
3764
3765         * expr.c (get_inner_reference): Fix typo in last change.
3766
3767 2011-08-18  Paolo Carlini  <paolo.carlini@oracle.com>
3768             Joseph Myers  <joseph@codesourcery.com>
3769
3770         PR tree-optimization/49963
3771         * hwint.c (absu_hwi): Define.
3772         * hwint.h (absu_hwi): Declare.
3773         * fold-const.c (fold_plusminus_mult_expr): Use absu_hwi instead
3774         of abs_hwi.
3775         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
3776         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Likewise.
3777
3778 2011-08-18  Richard Guenther  <rguenther@suse.de>
3779
3780         * expr.c (get_inner_reference): Sign-extend the constant
3781         twos-complement offset before doing arbitrary precision
3782         arithmetic on it.
3783         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
3784         (get_constraint_for_1): Pass the offset of a MEM_REF unchanged
3785         to get_constraint_for_ptr_offset.
3786
3787 2011-08-17  Kaz Kojima  <kkojima@gcc.gnu.org>
3788
3789         PR target/50068
3790         * config/sh/sh.c (sh_output_mi_thunk): Don't call dbr_schedule.
3791
3792 2011-08-17  Richard Guenther  <rguenther@suse.de>
3793
3794         * tree.h (convert_to_ptrofftype_loc): New function.
3795         (convert_to_ptrofftype): Define.
3796         * builtins.c (expand_builtin_bzero): Use size_type_node.
3797         (fold_builtin_bzero): Likewise.
3798         (std_gimplify_va_arg_expr): Build the BIT_AND_EXPR on the pointer.
3799         * c-typeck.c (build_unary_op): Use convert_to_ptrofftype_loc.
3800         * cgraphunit.c (thunk_adjust): Use fold_build_pointer_plus_loc.
3801         (cgraph_redirect_edge_call_stmt_to_callee): Use size_int.
3802         * expr.c (expand_expr_addr_expr_1): Use fold_build_pointer_plus.
3803         * fold-const.c (build_range_check): Negate using the original type.
3804         (fold_unary_loc): Use fold_build_pointer_plus_loc.
3805         * gimple-fold.c (gimple_adjust_this_by_delta): Use
3806         convert_to_ptrofftype.
3807         * gimplify.c (gimplify_self_mod_expr): Likewise.
3808         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Likewise.
3809         (graphite_create_new_loop_guard): Likewise.
3810         * graphite-sese-to-poly.c (my_long_long): Remove.
3811         (scop_ivs_can_be_represented): Adjust.
3812         * tree-cfg.c (verify_gimple_assign_unary): Use ptrofftype_p.
3813         * tree-chrec.c (chrec_fold_plus_1): Use fold_build_pointer_plus.
3814         * tree-loop-distribution.c (build_size_arg_loc): Use
3815         size_type_node.
3816         (generate_memset_zero): Simplify.
3817         * tree-mudflap.c: Use fold_convert, not convert.
3818         * tree-predcom.c (suitable_reference_p): Expand DR_OFFSET in
3819         its own type.
3820         (determine_offset): Likewise for DR_STEP.
3821         (valid_initializer_p): Likewise.
3822         * tree-profile.c (prepare_instrumented_value): Convert the pointer
3823         to an integer type of same size.
3824         * tree-scalar-evolution.c (interpret_rhs_expr): Do not refer
3825         to sizetype without need.
3826         * tree-ssa-address.c (tree_mem_ref_addr): Likewise.
3827         * tree-ssa-loop-ivopts.c (find_bivs): Use convert_to_ptrofftype.
3828         * tree-ssa-loop-manip.c (create_iv): Likewise.
3829         (determine_exit_conditions): Adjust comment.
3830         * tree-ssa-pre.c (create_expression_by_pieces): Use
3831         convert_to_ptrofftype.
3832         * tree-ssa-structalias.c (get_constraint_for_1): Likewise.
3833         * varasm.c (array_size_for_constructor): Compute using double_ints.
3834
3835 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3836
3837         * config/spu/spu.c (spu_emit_branch_or_set): Avoid reverse tests
3838         when generating an integer result where possible.  Short-cut
3839         comparison against 0 also for QImode.
3840
3841 2011-08-16  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3842
3843         * config/spu/spu.h (LEGITIMIZE_RELOAD_ADDRESS): New macro.
3844         * config/spu/spu-protos.h (spu_legitimize_reload_address): Add
3845         prototype.
3846         * config/spu/spu.c (spu_legitimize_reload_address): New function.
3847         (spu_legitimate_address_p): Do not check displacement if the base
3848         is an eliminable stack register.
3849
3850 2011-08-16  Anatoly Sokolov  <aesok@post.ru>
3851
3852         * config/m32c/m32c.h (PREFERRED_RELOAD_CLASS,
3853         PREFERRED_OUTPUT_RELOAD_CLASS): Remove macro.
3854         * config/m32c/m32c-protos.h (m32c_preferred_reload_class,
3855         m32c_preferred_output_reload_class): Remove.
3856         * config/m32c/m32c.c (m32c_preferred_reload_class): Make static.
3857         Change rclass argument and return types to reg_class_t. Use
3858         reg_class_subset_p instead of class_sizes.
3859         (m32c_preferred_output_reload_class): Make static. Change rclass
3860         argument and return types to reg_class_t.
3861         (TARGET_PREFERRED_RELOAD_CLASS,
3862         TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
3863
3864 2011-08-16  Kai Tietz  <ktietz@redhat.com>
3865
3866         * config/i386/mingw32.h (GOMP_SELF_SPEC): Add -pthread option.
3867
3868 2011-08-16  Richard GUenther  <rguenther@suse.de>
3869
3870         PR tree-optimization/50082
3871         * tree-ssa-forwprop.c (combine_cond_expr_cond): Handle overflow
3872         warnings here, instead of ...
3873         (ssa_forward_propagate_and_combine): ... here.
3874         (forward_propagate_into_comparison_1): Adjust.
3875         (forward_propagate_into_comparison): Likewise.
3876         (forward_propagate_into_gimple_cond): Likewise.
3877         (forward_propagate_into_cond): Likewise.
3878
3879 2011-08-16  Andreas Schwab  <schwab@redhat.com>
3880
3881         * ggc.h (ggc_alloc_rtvec_sized): Use ggc_alloc_zone_rtvec_def
3882         instead of ggc_alloc_zone_vec_rtvec_def.
3883
3884 2011-08-16  Richard Guenther  <rguenther@suse.de>
3885
3886         * tree.h (ptrofftype_p): New helper function.
3887         * tree-cfg.c (verify_expr): Use ptrofftype_p for POINTER_PLUS_EXPR
3888         offset verification.
3889         (verify_gimple_assign_binary): Likewise.
3890         * tree.c (build2_stat): Likewise.
3891         * tree-chrec.c (chrec_fold_plus_poly_poly): Likewise.
3892         (reset_evolution_in_loop): Likewise.
3893         * tree-chrec.h (build_polynomial_chrec): Likewise.
3894
3895 2011-08-16  Liang Wang  <lwang1@marvell.com>
3896
3897         * ggc.h (ggc_alloc_rtvec_sized): Change arguments of
3898         ggc_alloc_zone_vec_rtvec_def.
3899
3900 2011-08-16  Richard Guenther  <rguenther@suse.de>
3901
3902         * tree-vrp.c (extract_range_from_multiplicative_op_1): New
3903         helper factored out from ...
3904         (extract_range_from_binary_expr_1): ... here.  Re-structure
3905         to not glob handling too different tree codes.
3906
3907 2011-08-15  Richard Henderson  <rth@redhat.com>
3908
3909         PR middle-end/50006
3910         * explow.c (allocate_dynamic_stack_space): Move suppress_reg_args_size
3911         setting out to include allocate_stack named pattern as well.
3912         * builtins.c (expand_builtin_apply): Add ARG_SIZE 0 note.
3913         * stmt.c (expand_stack_restore): Likewise.
3914
3915 2011-08-15  Richard Guenther  <rguenther@suse.de>
3916
3917         PR middle-end/50082
3918         * fold-const.c (maybe_canonicalize_comparison_1): Properly
3919         convert the modified operand to the other operand type.
3920         (fold_comparison): Call maybe_canonicalize_comparison_1 with
3921         useless conversions stripped from comparison operands.
3922
3923 2011-08-15  Richard Guenther  <rguenther@suse.de>
3924
3925         * tree-vrp.c (value_range_nonnegative_p): Fix anti-range case.
3926         (extract_range_from_unary_expr_1): Restructure.
3927
3928 2011-08-15  Richard Guenther  <rguenther@suse.de>
3929
3930         PR tree-optimization/50058
3931         * tree-ssa-sccvn.c (vn_reference_lookup_3): Relax aggregate
3932         copy matching.
3933
3934 2011-08-15  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
3935
3936         PR target/50022
3937         * config/arm/arm.c (output_move_double): Add 2 parameters
3938         to count the number of insns emitted and whether to emit or not.
3939         Use the flag to decide when to emit and count number of instructions
3940         that will be emitted.
3941         Handle case where output_move_double might be called for calculating
3942         lengths with an invalid constant.
3943         (arm_count_output_move_double_insns): Define.
3944         * config/arm/arm-protos.h (arm_count_output_move_double_insns): Declare.
3945         (output_move_double): Adjust prototype.
3946         * config/arm/vfp.md ("*movdi_vfp"): Adjust call to
3947         output_move_double.
3948         ("*movdi_vfp_cortexa8"): Likewise and add attribute
3949         for ce_count.
3950         * config/arm/arm.md ("*arm_movdi"): Adjust call to output_move_double.
3951         ("*movdf_soft_insn"): Likewise.
3952         * config/arm/cirrus.md ("*cirrus_arm_movdi"): Likewise.
3953         ("*cirrus_thumb2_movdi"): Likewise.
3954         ("*thumb2_cirrus_movdf_hard_insn"): Likewise.
3955         ("*cirrus_movdf_hard_insn"): Likewise.
3956         * config/arm/neon.md (*neon_mov<mode> VD): Likewise.
3957         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Likewise.
3958         ("mov<mode>_internal VMMX"): Likewise.
3959         * config/arm/fpa.md (*movdf_fpa, *thumb2_movdf_fpa): Likewise.
3960
3961 2011-08-14  Uros Bizjak  <ubizjak@gmail.com>
3962
3963         * config/i386/i386.c (ix86_expand_round_sse4): New function.
3964         * config/i386/i386-protos.h (ix86_expand_round_sse4): New prototype.
3965         * config/i386/i386.md (round<mode>2): Use ix86_expand_round_sse4
3966         for TARGET_ROUND.
3967
3968         (rint<mode>2): Simplify TARGET_ROUND check.
3969         (floor<mode>2): Ditto.
3970         (ceil<mode>2): Ditto.
3971         (btrunc<mode>2): Ditto.
3972
3973 2011-08-14  Anatoly Sokolov  <aesok@post.ru>
3974
3975         * config/mmix/mmix.c (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Redefine
3976         as mmix_preferred_output_reload_class.
3977
3978 2011-08-14  Georg-Johann Lay  <avr@gjlay.de>
3979
3980         * PR target/49903
3981         * config/avr/avr.md (UNSPEC_IDENTITY): New c_enum.
3982         (branch_unspec): New insn.
3983         (branch): Beauty farm.
3984         * config/avr/avr.c (compare_condition): Use JUMP_P.  Test SET_SRC
3985         to be IF_THEN_ELSE.
3986         (avr_compare_pattern, avr_reorg_remove_redundant_compare):
3987         New static functions.
3988         (avr_reorg): Use them.  Use next_real_insn instead of NEXT_INSN.