OSDN Git Service

* config/i386/i386.md (splitters for int-float conversion): Use
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2011-11-01  Andrew Stubbs  <ams@codesourcery.com>
2
3         * config/arm/bpabi.h (BE8_LINK_SPEC): Recognize generic-armv7 tuning.
4
5 2011-11-01  Uros Bizjak  <ubizjak@gmail.com>
6
7         * config/i386/i386.md (splitters for int-float conversion): Use
8         SUBREG_REG on SUBREGs in splitter constraints.
9
10 2011-11-01  Jakub Jelinek  <jakub@redhat.com>
11
12         * config/i386/i386-protos.h (ix86_expand_adjust_ufix_to_sfix_si): New
13         prototype.
14         * config/i386/i386.c (ix86_expand_adjust_ufix_to_sfix_si): New
15         function.
16         * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): Use it.
17         (ssepackfltmode): New mode attr.
18         (vec_pack_ufix_trunc_<mode>): New expander.
19
20 2011-11-01  Uros Bizjak  <ubizjak@gmail.com>
21
22         PR target/50940
23         * config/i386/i386.md (floatsi<mode>2_vector_sse_with_temp splitter):
24         Compare <ssevecmode>mode with V4SFmode, not V4SImode.
25
26 2011-11-01  Peter Bergner  <bergner@vnet.ibm.com>
27
28         * config.gcc (powerpc*-*-linux*): Add powerpc*-*-linux*ppc476* variant.
29         * config/rs6000/476.h: New file.
30         * config/rs6000/476.opt: Likewise.
31         * config/rs6000/rs6000.h (TARGET_LINK_STACK): New define.
32         (SET_TARGET_LINK_STACK): Likewise.
33         (TARGET_ASM_CODE_END): Define.
34         * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
35         TARGET_LINK_STACK for -mtune=476 and -mtune=476fp.
36         (rs6000_legitimize_tls_address): Emit the link stack preserving GOT
37         code if TARGET_LINK_STACK.
38         (rs6000_emit_load_toc_table): Likewise.
39         (output_function_profiler): Likewise
40         (macho_branch_islands): Likewise
41         (machopic_output_stub): Likewise
42         (get_ppc476_thunk_name): New function.
43         (rs6000_code_end): Likewise.
44         * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b):
45         Convert to a define_expand.
46         (load_toc_v4_PIC_1_normal): New define_insn.
47         (load_toc_v4_PIC_1_476): Likewise.
48         (load_toc_v4_PIC_1b_normal): Likewise.
49         (load_toc_v4_PIC_1b_476): Likewise.
50
51 2011-11-01  Georg-Johann Lay  <avr@gjlay.de>
52
53         PR target/50910
54         * config/avr/avr.opt (-mbranch-cost=): New option.
55         * config/avr/avr.h (BRANCH_COST): Define to avr_branch_cost.
56         * config/avr/avr.c (avr_rtx_costs_1): Adjust [U]DIV/[U]MOD costs.
57         * config/avr/avr.md (*addqi3.lt0, *addhi3.lt0, *addsi3.lt0): New insns.
58         (*addhi3_zero_extend1): Remove % in constraint of operand 1.
59         (*addhi3.sign_extend1, *subhi3.sign_extend2): New insns.
60
61 2011-11-01  Tom de Vries  <tom@codesourcery.com>
62
63         PR tree-optimization/50908
64         * tree-ssa-tail-merge.c (update_vuses): Now that edges are removed
65         before update_vuses, test for 1 predecessor rather than two.
66         (delete_block_update_dominator_info): New function, part of it factored
67         out of ...
68         (replace_block_by): Use delete_block_update_dominator_info.  Call
69         update_vuses after deleting bb1 and updating dominator info, instead of
70         before.
71
72 2011-11-01  David S. Miller  <davem@davemloft.net>
73
74         * config/sparc/sparc.c (sparc_expand_vcond): New function.
75         * config/sparc/sparc-protos.h (sparc_expand_vcond): Declare it.
76         * config/sparc/sparc.md (vcond<mode><mode>): New VIS3 expander.
77         (vconduv8qiv8qi): Likewise.
78
79 2011-11-01  Alexandre Oliva  <aoliva@redhat.com>
80
81         PR debug/50869
82         * cselib.c (cfa_base_preserved_regno): Initialize.
83         (cselib_expand_value_rtx_1): Don't expand it.
84         * var-tracking.c (vt_expand_var_loc_chain): Initialize depth.
85         Check it's only zero if result is NULL.
86
87 2011-11-01  Jakub Jelinek  <jakub@redhat.com>
88
89         * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): New
90         expander.
91
92         * config/i386/sse.md (sseintvecmode): Remove duplicate modes.
93         (sseintvecmodelower): New mode iterator.
94         (floatv8siv8sf2, floatunsv4siv4sf2): Macroize into...
95         (float<sseintvecmodelower><mode>2): ... this using VF1 iterator.
96         (floatunsv4siv4sf2): Macroize into...
97         (floatuns<sseintvecmodelower><mode>2): ... this using VF1 iterator.
98
99 2011-10-31  David S. Miller  <davem@davemloft.net>
100
101         * config/sparc/sparc.md (cmask patterns): Allow zero operand.
102
103         * dwarf2out.c (cached_next_real_insn): New.
104         (dwarf2out_end_epilogue): Set it to NULL_RTX.
105         (dwarf2out_var_location): Remove cached_next_real_insn local static.
106
107 2011-10-31  Richard Henderson  <rth@redhat.com>
108
109         * config/i386/sse.md (floatv8siv8sf2): Rename from avx_cvtdq2ps256.
110         (floatv4siv4sf2): Rename from sse2_cvtdq2ps.
111         (floatunsv4siv4sf2): Rename from sse2_cvtudq2ps.
112         (fix_truncv8sfv8si2): Rename from avx_cvttps2dq256.
113         (fix_truncv4sfv4si2): Rename from sse2_cvttps2dq.
114         (floatv4siv4df2): Rename from avx_cvtdq2pd256.
115         (fix_truncv4dfv4si2): Rename from avx_cvttpd2dq256.
116         (vec_unpacku_float_hi_v8si): Update for insn pattern name changes.
117         * config/i386/i386.md (splitters for int-float conversion): Likewise.
118         * config/i386/i386.c (ix86_split_convert_uns_si_sse): Likewise.
119         (bdesc_args): Likewise.
120         (enum ix86_builtins) [IX86_BUILTIN_CVTUDQ2PS]: Remove.
121         (ix86_vectorize_builtin_conversion): Remove.
122         (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove.
123
124 2011-10-31  Martin Jambor  <mjambor@suse.cz>
125
126         * ipa-prop.c (mark_modified): Moved up in the file.
127         (is_parm_modified_before_call): Renamed to
128         is_parm_modified_before_stmt, moved up in the file.
129         (load_from_unmodified_param): New function.
130         (compute_complex_assign_jump_func): Also attempt to create pass
131         through jump functions for values loaded from (addressable)
132         parameters.
133
134 2011-10-31  Jakub Jelinek  <jakub@redhat.com>
135
136         * tree-vect-stmts.c (vectorizable_shift): If op1 is vect_external_def
137         in a loop and has different type from op0, cast it to op0's type
138         before the loop first.  For slp give up.  Don't crash if op1_vectype
139         is NULL.
140
141 2011-10-31  Paul Brook  <paul@codesourcery.com>
142
143         * cgraphunit.c: Don't mark clones as static constructors.
144
145 2011-10-31  David Edelsohn  <dje.gcc@gmail.com>
146
147         * gcc-ar: Do not include stdio.h.
148
149 2011-10-31  Diego Novillo  <dnovillo@google.com>
150
151         * tree-streamer-out.c (pack_ts_base_value_fields): Emit
152         TYPE_ADDR_SPACE.
153         * tree-streamer-in.c (unpack_ts_base_value_fields): Read
154         TYPE_ADDR_SPACE.
155
156 2011-10-30  David S. Miller  <davem@davemloft.net>
157
158         * config/sparc/sparc.c (vector_init_bshuffle): New function.
159         (vector_init_fpmerge): New function.
160         (sparc_expand_vector_init): Use them to improve non-const cases.
161
162         * dwarf2out.c (dwarf2out_var_location): When processing several
163         consecutive location notes, cache the result of next_real_insn().
164
165 2011-10-30  Uros Bizjak  <ubizjak@gmail.com>
166
167         * config/i386/i386.md (avx2_vec_dup<mode>): Macroize insn from
168         avx2_vec_dup{v8sf,v4sf} using VF1 mode iterator.
169         (vec_dupv4sf): Remove expander.
170         (vec_dupv4sf): Merge from *vec_dupv4sf and *vec_dupv4sf_avx.
171         (vec_dupv2df): Remove expander.
172         (vec_dupv2df): Merge from *vec_dupv2df and *vec_dupv2df_sse3.
173         (*vec_concatv2df): Merge *vec_concatv2df_sse3.
174         (*vec_dupv4si): Merge *vec_dupv4si_avx.
175         (*vec_dupv2di): Merge *vec_dupv2di_sse3.
176
177 2011-10-30  Dmitry Plotnikov  <dplotnikov@ispras.ru>
178
179         * tree-cfg.c (verify_gimple_assign_unary): Allow vector conversions.
180         * optabs.c (supportable_convert_operation): New function.
181         * optabs.h (supportable_convert_operation): New prototype.
182         * tree-vect-stmts.c (vectorizable_conversion): Change condition and
183         behavior for NONE modifier case.
184         * tree.h (VECTOR_INTEGER_TYPE_P): New macro.
185
186 2011-10-30  Jakub Jelinek  <jakub@redhat.com>
187
188         * tree-vectorizer.h (NUM_PATTERNS): Bump to 9.
189         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): New
190         function.
191         (vect_vect_recog_func_ptrs): Add it.
192
193 2011-10-30  David S. Miller  <davem@davemloft.net>
194
195         * reorg.c (label_before_next_insn): New function.
196         (relax_delay_slots): Use it instead of prev_label.
197         * rtl.h (prev_label): Delete declaration.
198         * emit-rtl.c (prev_label): Remove.
199
200 2011-10-30  Revital Eres  <revital.eres@linaro.org>
201
202         * modulo-sched.c (generate_prolog_epilog): Mark prolog and epilog
203         as BB_DISABLE_SCHEDULE.
204         (mark_loop_unsched): New function.
205         (sms_schedule): Call it.
206
207 2011-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
208
209         PR target/50617
210         * config/pa/protos.h (attr_length_save_restore_dltp): Delete.
211         (cmpib_comparison_operator): Likewise.
212         (following_cal, output_and, output_ior, output_move_double,
213         output_fp_move_double, output_block_move, output_block_clear,
214         output_cbranch, output_lbranch, output_bb, output_bvb, output_dbra,
215         output_movb, output_parallel_movb, output_parallel_addb, output_call,
216         output_indirect_call, output_millicode_call, output_mul_insn,
217         output_div_insn, output_mod_insn, singlemove_string,
218         output_arg_descriptor, output_global_address, print_operand,
219         legitimize_pic_address, hppa_encode_label, symbolic_expression_p,
220         fmpyaddoperands, fmpysuboperands, emit_bcond_fp, emit_move_sequence,
221         emit_hpdiv_const, is_function_label_plus_const, jump_in_call_delay,
222         hppa_fpstore_bypass_p, attr_length_millicode_call, attr_length_call,
223         attr_length_indirect_call, return_addr_rtx, function_arg_padding,
224         insn_refs_are_delayed, get_deferred_plabel, ldil_cint_p, zdepi_cint_p,
225         output_ascii, compute_frame_size, and_mask_p, cint_ok_for_move,
226         hppa_expand_prologue, hppa_expand_epilogue, ior_mask_p,
227         compute_zdepdi_operands, output_64bit_and, output_64bit_ior,
228         reloc_needed, magic_milli, shadd_constant_p): Consistently prefix
229         exported functions and variables with "pa_".
230         * config/pa/predicates.md: Likewise.
231         * config/pa/pa64-hpux.h: likewise.
232         * config/pa/som.h: Likewise.
233         * config/pa/elf.h: Likewise.
234         * config/pa/pa64-linux.h: Likewise.
235         * config/pa/pa.md: Likewise.
236         * config/pa/pa.c: Likewise.
237         * config/pa/pa-linux.h: Likewise.
238         * config/pa/pa.h: Likewise.
239         * config/pa/constraints.md: Likewise.
240
241 2011-10-29  Uros Bizjak  <ubizjak@gmail.com>
242
243         * config/i386/i386.md (xop_sha<mode>3): Rename from xop_ashl<mode>3.
244         Update all uses.
245         (xop_shl<mode>3): Rename from xop_lshl<mode>3.  Update all uses.
246         * config/i386/i386.c: Update all uses.
247
248 2011-10-29  Uros Bizjak  <ubizjak@gmail.com>
249
250         * config/i386/i386.md (lshlv16qi3): Remove expander.
251         (lshrv16qi3): New expander.
252         (<shift_insn>v16qi3): Macroize expander from ashrv16qi3 and lshrv16qi3
253         using any_shiftrt code iterator. Cleanup.
254         (ashlv16qi3): Cleanup.
255         (ashrv2di3): Ditto.
256
257 2011-10-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
258
259         PR target/50691
260         * config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol
261         references.
262         (pa_legitimate_constant_p): Return false for TLS_MODEL_GLOBAL_DYNAMIC
263         and TLS_MODEL_LOCAL_DYNAMIC symbol references.
264
265 2011-10-29  Georg-Johann Lay  <avr@gjlay.de>
266
267         PR target/50887
268         * config/avr/avr.opt (-maccumulate-args): New option.
269         * config/avr/avr.h (STARTING_FRAME_OFFSET): Redefine to
270         avr_starting_frame_offset.
271         (ACCUMULATE_OUTGOING_ARGS): Define to avr_accumulate_outgoing_args.
272         * config/avr/avr.md (UNSPECV_WRITE_SP_IRQ_ON): Remove.
273         (UNSPECV_WRITE_SP_IRQ_OFF): Remove.
274         (UNSPECV_WRITE_SP): New constant.
275         (*addhi3_sp_R): Rewrite to...
276         (*addhi3_sp): ...this new insn.
277         (movhi_sp_r_irq_off, movhi_sp_r_irq_on): Combine to...
278         (movhi_sp_r): ...this new insn.
279         * config/avr/avr-protos.h (avr_accumulate_outgoing_args): New.
280         (avr_starting_frame_offset): New.
281         * config/avr/avr.c (avr_accumulate_outgoing_args): New function.
282         (avr_starting_frame_offset): New function.
283         (avr_outgoing_args_size): New static function.
284         (avr_initial_elimination_offset): Use it.
285         (avr_simple_epilogue): Use it.
286         (avr_asm_function_end_prologue): Use it.
287         (expand_epilogue): Use it.
288         (expand_prologue): Use it.  Break out code to...
289         (avr_prologue_setup_frame): ...this new static function.
290         (avr_can_eliminate): Allow eliminating to frame pointer if there
291         is one.
292         (avr_frame_pointer_required_p): Use frame pointer if target has a
293         nonlocal label.
294         * config/avr/constraints.md (R): Remove.
295         (Csp): New constraint.
296         * config/avr/predicates.md (avr_sp_immediate_operand): Use it.
297
298 2011-10-29  Andi Kleen  <ak@linux.intel.com>
299
300         * gcc-ar.c (target_machine): Add.
301
302 2011-10-29  Anatoly Sokolov  <aesok@post.ru>
303
304         * config/cris/cris.c (reg_ok_for_base_p, reg_ok_for_index_p,
305         cris_constant_index_p, cris_base_p, cris_index_p,
306         cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p,
307         cris_legitimate_address_p): New functions.
308         (TARGET_LEGITIMATE_ADDRESS_P): Define.
309         (cris_pic_symbol_type, cris_valid_pic_const): Change arguments type
310         from rtx to const_rtx.
311         (cris_print_operand_address, cris_address_cost,
312         cris_side_effect_mode_ok):  Use
313         cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p,
314         cris_biap_index_p and cris_bdap_index_p.
315         * config/cris/cris.h (CONSTANT_INDEX_P, BASE_P, BASE_OR_AUTOINCR_P,
316         BDAP_INDEX_P, BIAP_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
317         REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Remove.
318         (EXTRA_CONSTRAINT_Q, EXTRA_CONSTRAINT_R, EXTRA_CONSTRAINT_T): Use
319         cris_constant_index_p, cris_base_p, cris_base_or_autoincr_p,
320         cris_biap_index_p and cris_bdap_index_p.
321         * config/cris/cris.md (moversideqi movemsideqi peephole2): Use
322         cris_base_p.
323         * config/cris/cris-protos.h (cris_constant_index_p, cris_base_p,
324         cris_base_or_autoincr_p, cris_bdap_index_p, cris_biap_index_p): New
325         prototype.
326         (cris_pic_symbol_type, cris_valid_pic_const): Update prototype.
327
328 2011-10-21  Andi Kleen  <ak@linux.intel.com>
329
330         * ggc-page (PAGE_ALIGN): Add.
331         (alloc_page, ggc_pch_total_size, ggc_pch_this_base, ggc_pch_read):
332         Replace ROUND_UP with PAGE_ALIGN.
333
334 2011-10-20  Andi Kleen  <ak@linux.intel.com>
335
336         * ggc-page (alloc_anon): Add check argument.
337         (alloc_page): Add fallback to 1 page allocation.
338         Adjust alloc_anon calls to new argument.
339
340 2011-10-18  Andi Kleen  <ak@linux.intel.com>
341
342         * ggc-page (release_pages): First free large continuous
343         chunks in the madvise path.
344
345 2011-10-18  Andi Kleen  <ak@linux.intel.com>
346
347         * ggc-page.c (alloc_pages): Always round up entry_size.
348
349 2011-10-19  Andi Kleen  <ak@linux.intel.com>
350
351         * Makefile.in (MOSTLYCLEANFILES): Add gcc-ar/nm/ranlib.
352         (native): Add gcc-ar, gcc-nm, gcc-ranlib.
353         (AR_LIBS, gcc-ar, gcc-ar.o, gcc-ranlib, gcc-ranlib.o,
354         gcc-nm, gcc-nm.o, gcc-ranlib.c, gcc-nm.c): Add.
355         (install): Depend on install-gcc-ar.
356         (install-gcc-ar): Add.
357         (uninstall): Uninstall gcc-ar, gcc-nm, gcc-ranlib.
358         * gcc-ar.c: Add new file.
359
360 2011-10-28  Pat Haugen <pthaugen@us.ibm.com>
361
362         * config/rs6000/rs6000.md (define_attr "type"): Add vecdouble.
363         * config/rs6000/vsx.md (VStype_simple, VStype_mul): Use vecdouble
364         type for V2DF.
365         (VStype_div): Use vector types for V2DF/V4SF.
366         (VStype_sqrt): Use *sqrt types.
367         (VS_spdp_type): Change type to vecdouble.
368         (*vsx_fmav2df4, *vsx_nfmsv2df4, vsx_xvcvdpsxws, vsx_xvcvdpuxws,
369         vsx_xvcvuxdsp, vsx_xvcvsxwdp, vsx_xvcvuxwdp, vsx_xvcvspsxds,
370         vsx_xvcvspuxds): Likewise.
371         (*vsx_fms<mode>4): Set type via <VStype_mul>.
372         (*vsx_eq_<mode>_p, *vsx_gt_<mode>_p, *vsx_ge_<mode>_p): Set type via
373         <VStype_simple>.
374         * config/rs6000/power7.md (power7-vecstore): Correct VSU pipe.
375         (power7-fpcompare, power7-sdiv, power7-ddiv, power7-sqrt,
376         power7-dsqrt): Correct insn latency.
377         (power7-vecsimple): Add veccmp type and correct dispatch/VSU values.
378         (power7-veccmp): Delete.
379         (power7-vecfloat): Correct latency/dispatch/VSU values.
380         (define_bypass "power7-vecfloat"): Correct latency and types.
381         (power7-veccomplex, power7-vecperm): Correct dispatch/VSU values.
382         (power7-vecdouble, power7-vecfdiv, power7-vecdiv): New.
383
384 2011-10-28  Uros Bizjak  <ubizjak@gmail.com>
385
386         * config/i386/i386.md (shift_insn): Rename code attribute from
387         shiftrt_insn.  Also handle ashift RTX.
388         (shift): Rename code attribute from shiftrt.  Also handle ashift RTX.
389         (vshift): New code attribute.
390         (<shift_insn>*): Rename from <shiftrt_insn>*. Update asm templates.
391         (any_lshift): Move and rename code iterator from ...
392         * config/i386/sse.md (lshift): ... here.
393         (lshift_insn): Remove code attribute.
394         (lshift): Remove code attribute.
395         (vlshr<mode>3): Use lshiftrt RTX.
396         (vashr<mode>3, ashrv16qi3, ashrv2di3): Use ashiftrt RTX.
397         (vashl<mode>3, ashlv16qi3): Use ashift RTX.
398         (avx2_<lshift>v<mode>): Rename from avx2_<shift_insn>v<mode>.  Use
399         any_lshift code iterator.  Update asm template.
400         (<shift_insn><mode>3): Macroize insn from lshr<mode>3 and ashl<mode>3
401         usign any_lshift code iterator.
402         * config/i386/mmx.md (mmx_<shift_insn><mode>3): Macroize insn from
403         mmx_lshr<mode>3 and mmx_ashl<mode>3 usign any_lshift code iterator.
404         * config/i386/i386.c (bdesc_args) <__builtin_ia32_psll>: Update.
405
406 2011-10-28  Georg-Johann Lay  <avr@gjlay.de>
407
408         PR target/49313
409         * config/avr/avr.md (parityhi2): Expand allowing pseudos.
410         (*parityhi2): New pre-reload insn-and-split to map 16-bit parity
411         to the libgcc insn.
412         (*parityqihi2): Same for 8-bit parity.
413
414 2011-10-28  Julian Brown  <julian@codesourcery.com>
415
416         PR rtl-optimization/47918
417         * reload1.c (set_initial_label_offsets): Use initial offsets
418         for labels on the nonlocal_goto_handler_labels chain.
419
420 2011-10-28  Iain Sandoe  <iains@gcc.gnu.org>
421
422         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
423         Move darwin-fpsave.asm from here to ... LIB2FUNCS_EXTRA.
424         (LIB2FUNCS_EXTRA):  Add darwin-gpsave.asm.
425         (TARGET_LIBGCC2_CFLAGS): Ensure that fPIC and -pipe are inherited from
426         config/t-darwin.
427         * config/rs6000/darwin.h (FP_SAVE_INLINE): Adjust to enable.
428         (GP_SAVE_INLINE): Likewise.
429         (SAVE_FP_PREFIX,  SAVE_FP_SUFFIX, RESTORE_FP_PREFIX,
430         RESTORE_FP_SUFFIX): Set to empty strings.
431         * config/rs6000/rs6000.c (rs6000_savres_strategy): Implement for Darwin.
432         (debug_stack_info): Print savres_strategy.
433         (rs6000_savres_routine_name): Implement for Darwin.
434         (rs6000_make_savres_rtx): Adjust used register for Darwin.
435         (rs6000_emit_prologue): Implement out-of-line saves for Darwin.
436         (rs6000_output_function_prologue): Don't emit .extern for Mach-O.
437         (rs6000_emit_epilogue): Implement out-of-line saves for Darwin.
438         * config/rs6000/darwin-gpsave.asm: New file.
439
440 2011-10-28  Jakub Jelinek  <jakub@redhat.com>
441
442         * config/i386/sse.md (VI4SD_AVX2): Removed.
443         (VI48_AVX2, VI128_128, VI48_128, VI48_256): New mode iterators.
444         (vashl<mode>3): Use VI12_128 iterator instead of VI124_128.
445         Add another expander using VI48_128 iterator for
446         TARGET_AVX2 || TARGET_XOP and another using VI48_256 iterator
447         for TARGET_AVX2.
448         (vlshr<mode>3): Likewise.  Change register_operand predicate to
449         nonimmediate_operand on last operand in the VI12_128 expander.
450         (vashr<mode>3): Use VI128_128 iterator instead of VI124_128.
451         (vashrv4si3, vashrv8si3): New expanders.
452         (avx2_ashrvv8si, avx2_ashrvv4si, avx2_<lshift>vv8si,
453         avx2_<lshift>vv2di): Removed.
454         (avx2_ashrv<mode>): New insn with VI4_AVX2 iterator.
455         (avx2_<lshift>v<mode>): Macroize using VI48_AVX2
456         iterator.  Simplify pattern.
457
458 2010-10-28  Richard Guenther  <rguenther@suse.de>
459
460         PR driver/50876
461         * lto-wrapper.c (get_options_from_collect_gcc_options):
462         Properly count arguments.
463         (run_gcc): Use an obstack to collect argv, properly separate
464         switches and their arguments.
465
466 2011-10-28  Jakub Jelinek  <jakub@redhat.com>
467
468         * tree-vect-stmts.c (vectorizable_shift): Give up if op1 has different
469         vector mode from vectype's mode.
470
471 2011-10-28  Chung-Lin Tang  <cltang@codesourcery.com>
472
473         PR rtl-optimization/49720
474         * simplify-rtx.c (simplify_relational_operation_1): Detect
475         infinite recursion condition in "(eq/ne (plus x cst1) cst2)
476         simplifies to (eq/ne x (cst2 - cst1))" case.
477
478 2011-10-27  David S. Miller  <davem@davemloft.net>
479
480         * config/sparc/sparc.md (snedi_special): Only match when not VIS3.
481         (*snedi_zero): Likewise.
482         (*snedi_zero_trunc): Likewise.
483         (snedi_special_vis3): New expander.
484         (*snedi_zero_vis3): New insn.
485         (*snedi_zero_trunc_vis3): Likewise.
486         (*sltu_insn_vis3): Likewise.
487         (*sltu_insn_vis3_trunc): Likewise.
488         (addxc): Likewise.
489         (*addxc_trunc_sp64_vis3): Likewise.
490         * config/sparc/sparc.c (emit_scc_insn): When VIS3 use the
491         gen_snedi_special_vis3 expander, and try GTU/LTU addx based
492         sequences on DImode values.
493
494         * config/sparc/sparc.md (64-bit vector moves): Use 'e' not 'f'
495         constraint.
496
497         * regcprop.c (copyprop_hardreg_forward_1): Reject the
498         transformation when we narrow the mode on big endian.
499
500 2011-10-27  Jakub Jelinek  <jakub@redhat.com>
501
502         * config/i386/sse.md (avx_cvtpd2dq256_2, avx_cvttpd2dq256_2,
503         vec_pack_sfix_trunc_v4df, vec_pack_sfix_v4df): New expanders.
504         (*avx_cvtpd2dq256_2, *avx_cvttpd2dq256_2): New insns.
505
506         * config/i386/i386.c (ix86_print_operand): Handle 'q' and 'x'
507         overrides for -masm=intel memory.
508         * config/i386/sse.md (sse2_cvtdq2pd, sse2_cvtps2pd,
509         sse4_1_<code>v8qiv8hi2, avx2_<code>v8qiv8si2,
510         sse4_1_<code>v4hiv4si2, avx2_<code>v4hiv4di2,
511         sse4_1_<code>v2siv2di2): Use %q1 instead of %1 for -masm=intel.
512         (sse4_1_<code>v4qiv4si2, avx2_<code>v4qiv4di2,
513         sse4_1_<code>v2hiv2di2): Use %k1 instead of %1 for -masm=intel.
514         (sse4_1_<code>v2qiv2di2): Use %w1 instead of %1 for -masm=intel.
515
516 2011-10-27  Martin Jambor  <mjambor@suse.cz>
517
518         * ipa-prop.c (compute_pass_through_member_ptrs): Rename parm_info
519         to parm_ainfo.
520         (ipa_compute_jump_functions_for_edge): Likewise.
521         (ipa_compute_jump_functions): Likewise.
522         (ipa_analyze_indirect_call_uses): Likewise.
523         (ipa_analyze_call_uses): Likewise.
524         (ipa_analyze_params_uses): Likewise.
525         (ipa_analyze_node): Likewise.
526
527 2011-10-27  Uros Bizjak  <ubizjak@gmail.com>
528
529         PR target/50875
530         * config/i386/sse.md (*avx_unpcklpd256): Remove extra insn
531         constraints.  Change alternative 1 to "x,m,1".
532
533 2011-10-27  Jakub Jelinek  <jakub@redhat.com>
534
535         * Makefile.in (build/gencheck.o): Depend on tree.def and
536         c-family/c-common.def.
537
538         * tree-ssa-strlen.c: Include expr.h.
539         (get_stridx): Don't use c_strlen, instead use string_constant
540         and compute string length from it.
541         * Makefile.in (tree-ssa-strlen.o): Depend on $(EXPR_H).
542
543 2011-10-27  Eric Botcazou  <ebotcazou@adacore.com>
544
545         PR rtl-optimization/46603
546         PR bootstrap/50879
547         * reload.c (push_reload): In the out case, restore previous behavior
548         for subregs that don't have word mode.
549
550 2011-10-27  Ian Lance Taylor  <iant@google.com>
551
552         * cppdefault.c: Undef NATIVE_SYSTEM_HEADER_DIR if
553         CROSS_DIRECTORY_STRUCTURE is defined and TARGET_SYSTEM_ROOT is not.
554         (cpp_include_defaults): Only use NATIVE_SYSTEM_HEADER_DIR if it is
555         defined.
556
557 2011-10-27  Richard Henderson  <rth@redhat.com>
558
559         * optabs.c (expand_vec_perm): Use the correct mode for scaling the
560         selector.  Save the qimode constant selector for later use by the
561         qimode vec_perm pattern.
562
563 2011-10-27  Bernd Schmidt  <bernds@codesourcery.com>
564
565         * config/c6x/c6x.c (unit_req_imbalance, res_mii): Cast the first arg
566         to unit_req_factor to the right enum type.
567         (get_unit_operand_masks, reshuffle_units, try_rename_operands,
568         hwloop_optimize): Remove unused variables.
569
570 2010-10-27  Richard Guenther  <rguenther@suse.de>
571
572         PR middle-end/50731
573         * tree-vect-generic.c (do_binop): Handle scalar operands.
574
575 2011-08-27  Uros Bizjak  <ubizjak@gmail.com>
576
577         PR target/37191
578         * config/i386/sse.md (*vec_extract_v4sf_mem): Avoid combining registers
579         from different units in a single alternative.
580
581 2011-10-26  David S. Miller  <davem@davemloft.net>
582
583         * config/sparc/sparc.c (emit_scc_insn): Force attempt of v9 sequences
584         if we're comparing DImode and comparison is other than EQ or NE.
585
586         * config/sparc/sparc.c (emit_scc_insn): Do not try v9 sequences until
587         LEU/LTU/GEU/GTU is attempted.
588         * config/sparc/sparc.md (*neg_snesi_sign_extend): New 64-bit insn
589         and split.
590         (*neg_seqsi_sign_extend): Likewise.
591         (*sltu_extend_sp64, *neg_sltu_extend_sp64, *sgeu_extend_sp64,
592         *neg_sgeu_extend_sp64): New insns.
593
594         * config/sparc/sparc-protos.h (sparc_expand_conditional_move): Declare.
595         * config/sparc/sparc.md (mov<I:mode>cc, mov<F:mode>cc): Call it.
596         (*mov<I:mode>_cc_v9): Normalize to expect operand 0 always in operand 4.
597         (*mov<I:mode>_cc_reg_sp64): Likewise.
598         (*movsf_cc_v9): Likewise.
599         (*movsf_cc_reg_sp64): Likewise.
600         (*movdf_cc_v9): Likewise.
601         (*movdf_cc_reg_sp64): Likewise.
602         (*movtf_cc_hq_v9): Likewise.
603         (*movtf_cc_reg_hq_sp64): Likewise.
604         (*movtf_cc_v9): Likewise.
605         (*movtf_cc_reg_sp64): Likewise.
606         * config/sparc/sparc.c (sparc_expand_conditional_move): New function.
607         (sparc_print_operand): Delete 'c' and 'd' handling, no longer used.
608
609 2011-10-26  Eric Botcazou  <ebotcazou@adacore.com>
610
611         * reload.c (reload_inner_reg_of_subreg): Change type of return value
612         and type of OUTPUT parameter to bool and adjust.  Document MODE and
613         OUTPUT parameters.  Use HARD_REGISTER_P.  Reorder final condition
614         and improve associated comment.
615         (push_reload): Clarify and update comments about reloading of subregs.
616         Adjust calls to reload_inner_reg_of_subreg.  Compute the class upfront
617         for the reloading of subregs in the out case as well.
618
619 2011-10-26  Alexandre Oliva  <aoliva@redhat.com>
620
621         PR debug/50826
622         * var-tracking.c (rtx_debug_expr_p): New.
623         (use_type): Don't use debug exprs to track non-VTA variables.
624
625 2011-10-26  Jeff Law  <law@redhat.com>
626
627         * doc/invoke.texi (sink-frequency-threshold): Document.
628         * tree-ssa-sink.c: Include params.h.
629         (select_best_block): New function.
630         (statement_sink_location): Use it.
631         * params.def (SINK_FREQUENCY_THRESHOLD): New PARAM.
632
633 2011-10-26  Iain Sandoe  <iains@gcc.gnu.org>
634
635         PR target/48108
636         * config/darwin.c (top level): Amend comments concerning LTO output.
637         (lto_section_num): New variable.  (darwin_lto_section_e): New GTY.
638         (LTO_SECTS_SECTION, LTO_INDEX_SECTION): New.
639         (LTO_NAMES_SECTION): Rename.
640         (darwin_asm_named_section): Record LTO section counts and switches
641         in a vec of darwin_lto_section_e.
642         (darwin_file_start): Remove unused code.
643         (darwin_file_end): Put an LTO section termination label.  Handle
644         output of the wrapped LTO sections, index and names table.
645
646 2011-10-26  Alan Modra  <amodra@gmail.com>
647
648         * config/rs6000/rs6000.c (rs6000_make_savres_rtx): Delete unneeded
649         declaration.
650         (rs6000_emit_stack_reset): Only return insn emitted when it adjusts sp.
651         (rs6000_make_savres_rtx): Rename to rs6000_emit_savres_rtx.  Use
652         simple_return in pattern, emit instruction, and set jump_label.
653         (rs6000_emit_prologue): Update for rs6000_emit_savres_rtx.  Use
654         simple_return rather than return.
655         (emit_cfa_restores): New function.
656         (rs6000_emit_epilogue): Emit cfa_restores when flag_shrink_wrap.
657         Add missing cfa_restores for SAVE_WORLD.  Add missing LR cfa_restore
658         when using out-of-line gpr restore.  Add missing LR and FP regs
659         cfa_restores for out-of-line fpr restore.  Consolidate code setting
660         up cfa_restores.  Formatting.  Use LR_REGNO define.
661         (rs6000_output_mi_thunk): Use simple_return rather than return.
662         * config/rs6000/rs6000.md (sibcall*, sibcall_value*): Likewise.
663         (return_internal*): Likewise.
664         (any_return, return_pred, return_str): New iterators.
665         (return, conditional return insns): Provide both return and
666         simple_return variants.
667         * config/rs6000/rs6000.h (EARLY_R12, LATE_R12): Define.
668         (REG_ALLOC_ORDER): Move r12 before call-saved regs when FIXED_R13.
669         Move r11 and r0 later to suit shrink-wrapping.
670
671 2011-10-26  Richard Guenther  <rguenther@suse.de>
672
673         * lto-wrapper.c (run_gcc): Properly init/free obstack.
674
675 2011-10-26  Jakub Jelinek  <jakub@redhat.com>
676
677         * config/i386/i386.md (UNSPEC_VSIBADDR): New.
678         * config/i386/predicates.md (vsib_address_operand,
679         vsib_mem_operator): New predicates.
680         * config/i386/i386.c (ix86_print_operand_address): Handle
681         UNSPEC_VSIBADDR addresses.
682         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>,
683         avx2_gatherdi<mode>256): Adjust expanders to use MEM with
684         UNSPEC_VSIBADDR address.
685         (*avx2_gathersi<mode>, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>256):
686         Adjust insns to use MEM with UNSPEC_VSIBADDR address.
687
688 2011-10-26  Tom de Vries  <tom@codesourcery.com>
689
690         PR tree-optimization/50763
691         * tree-ssa-tail-merge.c (replace_block_by): Update vops if phi_vuse1 or
692         phi_vuse2 is NULL_TREE only if bb1 dominates or is dominated by bb2.
693
694 2011-10-26  Richard Guenther  <rguenther@suse.de>
695
696         PR lto/41844
697         * Makefile.in (lto-wrapper): Depend on and link against opts-common.o.
698         (lto-wrapper.o): Depend on $(OPTS_H) and $(OPTIONS_H).
699         * lto-wrapper.c (get_options_from_collect_gcc_options): New function.
700         (run_gcc): Use it.  Filter out language specific options.
701
702 2011-10-26  Andreas Tobler  <andreast@fgznet.ch>
703
704         * config/i386/freebsd64.h (LINK_SPEC): Emit the same warning as the
705         32-bit target does.
706
707 2011-10-25  Paolo Carlini  <paolo.carlini@oracle.com>
708
709         PR driver/46617
710         * gcc.c (main): Fix fatal_error string for translation.
711
712 2011-10-25  Ian Lance Taylor  <iant@google.com>
713
714         * tree-eh.c (do_return_redirection): Remove return_value_p
715         parameter.  Change all callers.
716         (lower_try_finally_nofallthru): Remove local return_val.
717         (lower_try_finally_onedest): Likewise.
718         (lower_try_finally_copy): Likewise.
719         (lower_try_finally_switch): Likewise.
720
721 2011-10-25  H.J. Lu  <hongjiu.lu@intel.com>
722
723         * config/i386/mmx.md (*mmx_maskmovq): Replace :SI with :P and
724         remove "&& !TARGET_64BIT"
725         (*mmx_maskmovq_rex): Removed.
726
727 2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
728
729         PR rtl-optimization/46603
730         * reload.c (push_reload): In the out case, reload the subreg as well
731         as the reg if it has word mode.
732
733 2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
734
735         * dwarf2out.c (add_gnat_descriptive_type_attribute): Temporarily
736         suppress debug info for the parent type.
737
738 2011-10-25  Eric Botcazou  <ebotcazou@adacore.com>
739
740         * config/ia64/ia64.c (ia64_profile_hook): Fix thinko.
741
742 2011-10-25  Richard Henderson  <rth@redhat.com>
743
744         * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Remove.
745         (vec_extract_even<mode>, vec_extract_odd<mode>): Remove.
746
747         * config/rs6000/altivec.md (vec_extract_evenv8hi,
748         vec_extract_evenv16qi, vec_extract_oddv4si,
749         vec_extract_oddv4sf): Remove.
750
751         * config/spu/spu.md (vec_extract_evenv4si, vec_extract_evenv4sf,
752         vec_extract_evenv8hi, vec_extract_evenv16qi, vec_extract_oddv4si,
753         vec_extract_oddv4sf, vec_extract_oddv8hi, vec_extract_oddv16qi,
754         vec_interleave_highv4sf, vec_interleave_lowv4sf,
755         vec_interleave_highv4si, vec_interleave_lowv4si,
756         vec_interleave_highv8hi, vec_interleave_lowv8hi,
757         vec_interleave_highv16qi, vec_interleave_lowv16qi): Remove.
758
759         * expr.c (expand_expr_real_2) [VEC_EXTRACT_EVEN_EXPR]: Use binop.
760         [VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR]: Likewise.
761         [VEC_INTERLEAVE_LOW_EXPR]: Likewise.
762         * optabs.c (expand_binop): Implement vec_interleave_high_optab,
763         vec_interleave_low_optab, vec_extract_even_optab,
764         vec_extract_odd_optab with expand_vec_perm.
765         (can_vec_perm_for_code_p): New.
766         * optabs.h: Update.
767         * tree-vect-data-refs.c (vect_strided_store_supported): Allow for
768         fallback via can_vec_perm_for_code_p.
769         (vect_strided_load_supported): Likewise.
770         * tree-vect-generic.c (expand_vector_operations_1): Never lower
771         VEC_INTERLEAVE_HIGH_EXPR, VEC_INTERLEAVE_LOW_EXPR,
772         VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR.
773
774         * target.def (vec_perm_const_ok): Change parameters to mode and
775         array of indicies.
776         * doc/tm.texi: Rebuild.
777         * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
778         parameters to mode and array of indicies.
779         * expr.c (expand_expr_real_2) [VEC_PERM_EXPR]: Expand operands here.
780         * optabs.c (can_vec_perm_p): Rename from can_vec_perm_expr_p.
781         Change parameters to mode and array of indicies.
782         (expand_vec_perm_1): Rename from expand_vec_perm_expr_1.
783         (expand_vec_perm): Rename from expand_vec_perm_expr.  Change
784         parameters to mode and rtx inputs.  Try lowering to QImode
785         vec_perm_const before trying fully variable permutation.
786         * optabs.h: Update decls.
787         * tree-vect-generic.c (lower_vec_perm): Extract array of indices from
788         VECTOR_CST to pass to can_vec_perm_p.
789         * tree-vect-slp.c (vect_get_mask_element): Change mask parameter type
790         from int pointer to unsigned char pointer.
791         (vect_transform_slp_perm_load): Update for change to can_vec_perm_p.
792         * tree-vect-stmts.c (perm_mask_for_reverse): Likewise.
793
794         * tree.def (VEC_EXTRACT_EVEN_EXPR): Fix typo in text name.
795         (VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR,
796         VEC_INTERLEAVE_LOW_EXPR): Likewise.
797
798 2011-10-25  Mike Stump  <mikestump@comcast.net>
799
800         * reload.c (regno_clobbered_p): Fix typo.
801
802 2011-10-25  Dodji Seketeli  <dodji@redhat.com>
803
804         * input.c (expand_location): Rewrite using linemap_resolve_location
805         and linemap_expand_location.  Add a comment.
806
807 2011-10-25  Jakub Jelinek  <jakub@redhat.com>
808
809         PR tree-optimization/50596
810         * tree-vect-stmts.c (vect_mark_relevant): Only use
811         FOR_EACH_IMM_USE_FAST if lhs is SSA_NAME.
812         (vectorizable_store): If is_pattern_stmt_p look through
813         VIEW_CONVERT_EXPR on lhs.
814         * tree-vect-patterns.c (check_bool_pattern, adjust_bool_pattern):
815         Use unsigned type instead of signed.
816         (vect_recog_bool_pattern): Optimize also stores into bool memory in
817         addition to casts from bool to integral types.
818         (vect_mark_pattern_stmts): If pattern_stmt already has vinfo
819         created, don't create it again.
820
821 2011-10-25  Kai Tietz  <ktietz@redhat.com>
822
823         * config/i386/i386.c (ix86_frame_pointer_required): Require
824         frame-pointer, if setjmp is used for 32-bit ms-abi.
825
826 2011-10-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
827
828         * builtins.c (set_builtin_user_assembler_name): Remove extra
829         newline added in October 11th, 2011 change.
830
831 2011-10-24  David S. Miller  <davem@davemloft.net>
832
833         * config/sparc/little-endian.opt: Delete.
834         * config.gcc: Remove references to config/sparc/little-endian.opt
835         * doc/invoke.texi: Remove documentation of -mlittl-endian on sparc.
836         * config/sparc/linux64.h: Delete references to -mlittle-endian.
837         * config/sparc/netbsd-elf.h: Likewise.
838         * config/sparc/openbsd64.h: Likewise.
839         * config/sparc/sparc.h: Likewise.
840         * config/sparc/sp64-elf.h: Likewise and delete overrides for
841         BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
842         * config/sparc/sparc.c (dump_target_flag_bits): Remove reference
843         to MASK_LITTLE_ENDIAN.
844         * config/sparc/sparc.opt (Mask(LITTLE_ENDIAN)): Delete.
845
846         * config/sparc/sparc.md: Only use F, G, and C constraints in FP insns.
847         Only use D, Y, and Z constraints in vector insns.
848
849         * config/sparc/sparc.md (cpu_feature, enabled): New attributes.
850         (*movsi_insn_novis3, *movsi_insn_vis3): Consolidate into one pattern
851         called *movsi_insn.
852         (*movdi_insn_sp32_v9_novis3, *movdi_insn_sp32_v9_vis3): Consolidate
853         into *movdi_insn_sp32.
854         (*movdi_insn_sp64_novis3, *movdi_insn_sp64_vis3): Consolidate into
855         one pattern called *movdi_insn_sp64.
856         (*movsf_insn_novis3, *movsf_insn_vis3, *movsf_insn_no_fpu):
857         Consolidate into one pattern called *movsf_insn.
858         (*movdf_insn_sp32_no_fpu, *movdf_insn_sp32_v9_novis3,
859         *movdf_insn_sp32_v9_vis3, *movdf_insn_sp32_v9_no_fpu): Consolidate
860         into *movdf_insn_sp32.
861         (*movdf_insn_sp64_novis3, *movdf_insn_sp64_vis3,
862         *movdf_insn_sp64_no_fpu): Consolidate into one pattern called
863         *movdf_insn_sp64.
864         (*zero_extendsidi2_insn_sp64_novis3,
865         *zero_extendsidi2_insn_sp64_vis3): Consolidate into one pattern
866         called *zero_extendsidi2_insn_sp64.
867         (*sign_extendsidi2_insn_novis3, *sign_extendsidi2_insn_vis3):
868         Consolidate into one pattern named *sign_extendsidi2_insn.
869         (*mov<VM32:mode>_insn_novis3, *mov<VM32:mode>_insn_vis3):
870         Consolidate into one pattern named *mov<VM32:mode>_insn.
871         (*mov<VM64:mode>_insn_sp64_novis3,
872         *mov<VM64:mode>_insn_sp64_novis3): Consolidate into one pattern
873         named *mov<VM64:mode>_insn_sp64.
874         (*mov<VM64:mode>_insn_sp32_novis3,
875         *mov<VM64:mode>_insn_sp32_vis3): Consolidate into one pattern
876         named *mov<VM64:mode>_insn_sp32.
877
878 2011-10-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
879
880         * tree-ssa-strlen.c (get_string_length): Change assertion to STPCPY.
881         (zero_length_string): Change assertion to accept strinfo without
882         length but with stmt instead.
883         Set the endptr pointer also if starting a new chain.
884         (adjust_related_strinfos): Ignore strinfos marked for delayed
885         length computation.
886         (handle_builtin_strcpy): Mark earlier strinfo elements also for
887         delayed length computation.
888
889 2011-10-24  Georg-Johann Lay  <avr@gjlay.de>
890
891         PR target/50820
892         Port from 4.6 branch r180379
893         * doc/invoke.texi (AVR Options): New subsubsection to explain EIND
894         handling and indirect jump/calls on devices > 128k.
895
896 2011-10-24  Anatoly Sokolov  <aesok@post.ru>
897             Georg-Johann Lay  <avr@gjlay.de>
898
899         PR target/49824
900         * doc/extend.texi (Declaring Attributes of Functions):
901         Document OS_main and OS_task attributes.
902         (Specifying Attributes of Variables): Move up
903         subsection "AVR Variable Attributes" as of alphabetical order.
904
905 2011-10-24  Richard Guenther  <rguenther@suse.de>
906
907         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Convert constants
908         to vector element type.
909         (vectorizable_assignment): Bail out for non-mode-precision operations.
910         (vectorizable_shift): Likewise.
911         (vectorizable_operation): Likewise.
912         (vectorizable_type_demotion): Likewise.
913         (vectorizable_type_promotion): Likewise.
914         (vectorizable_store): Handle non-mode-precision stores.
915         (vectorizable_load): Handle non-mode-precision loads.
916         (get_vectype_for_scalar_type_and_size): Return a vector type
917         for non-mode-precision integers.
918         * tree-vect-loop.c (vectorizable_reduction): Bail out for
919         non-mode-precision reductions.
920
921 2011-10-24  Julian Brown  <julian@codesourcery.com>
922
923         * config/m68k/m68k.c (notice_update_cc): Tighten condition for
924         setting CC_REVERSED for FP comparisons.
925
926 2011-10-24  Richard Guenther  <rguenther@suse.de>
927
928         PR tree-optimization/50838
929         * tree-data-ref.c (dr_analyze_indices): Properly canonicalize
930         a MEM_REF base if we change it.
931
932 2011-10-24  Bernd Schmidt  <bernds@codesourcery.com>
933
934         PR bootstrap/50836
935         * rtlanal.c: Swap includes of "hard-reg-set.h" and "rtl.h".
936
937         PR rtl-optimization/50833
938         * function.c (thread_prologue_and_epilogue_insns): Expect the
939         return insn optimization only if optimize.
940
941 2011-10-24  Georg-Johann Lay  <avr@gjlay.de>
942
943         * config/avr/avr.c: Break long lines.
944         Define target hooks on the fly if applicable.
945         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove first definition
946         overridden later.
947         (targetm): Move definition to end of file.
948         (avr_can_eliminate): Make static on the fly.
949         (avr_frame_pointer_required_p): Ditto.
950         (avr_hard_regno_scratch_ok): Ditto.
951         (avr_builtin_setjmp_frame_value): Make static on the fly.
952         Indent according to coding rules.
953         (avr_case_values_threshold): Ditto.
954         (avr_attribute_table): Move down.
955
956 2011-10-24  Ira Rosen  <ira.rosen@linaro.org>
957
958         PR tree-optimization/50730
959         * tree-vect-data-refs.c (vect_analyze_data_refs): Stop basic block
960         analysis if encountered unsupported data-ref.
961
962 2011-10-23  David S. Miller  <davem@davemloft.net>
963
964         * config/sparc/sparc.c (sparc_option_override): Remove -mv8plus
965         cpu adjustment.
966         * config/sparc/linux64.h (CC1_SPEC): When defaulting to 64-bit,
967         append -mcpu=v9 when -mv8plus is given.
968
969         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): We can move
970         between float and non-float regs when VIS3.
971         * config/sparc/sparc.c (eligible_for_restore_insn): We can't
972         use a restore when the source is a float register.
973         (sparc_split_regreg_legitimate): When VIS3 allow moves between
974         float and integer regs.
975         (sparc_register_move_cost): Adjust to account for VIS3 moves.
976         (sparc_preferred_reload_class): On 32-bit with VIS3 when moving an
977         integer reg to a class containing EXTRA_FP_REGS, constrain to FP_REGS.
978         (sparc_secondary_reload): On 32-bit with VIS3 when moving between
979         float and integer regs we sometimes need a FP_REGS class
980         intermediate move to satisfy the reload.  When this happens
981         specify an extra cost of 2.
982         (*movsi_insn): Rename to have "_novis3" suffix and add !VIS3 guard.
983         (*movdi_insn_sp32_v9): Likewise.
984         (*movdi_insn_sp64): Likewise.
985         (*movsf_insn): Likewise.
986         (*movdf_insn_sp32_v9): Likewise.
987         (*movdf_insn_sp64): Likewise.
988         (*zero_extendsidi2_insn_sp64): Likewise.
989         (*sign_extendsidi2_insn): Likewise.
990         (*movsi_insn_vis3): New insn.
991         (*movdi_insn_sp32_v9_vis3): New insn.
992         (*movdi_insn_sp64_vis3): New insn.
993         (*movsf_insn_vis3): New insn.
994         (*movdf_insn_sp32_v9_vis3): New insn.
995         (*movdf_insn_sp64_vis3): New insn.
996         (*zero_extendsidi2_insn_sp64_vis3): New insn.
997         (*sign_extendsidi2_insn_vis3): New insn.
998         (TFmode reg/reg split): Make sure both REG operands are float.
999         (*mov<VM32:mode>_insn): Add "_novis3" suffix and !VIS3 guard. Remove
1000         easy constant to integer reg alternatives.
1001         (*mov<VM64:mode>_insn_sp64): Likewise.
1002         (*mov<VM64:mode>_insn_sp32_novis3): Likewise.
1003         (*mov<VM32:mode>_insn_vis3): New insn.
1004         (*mov<VM64:mode>_insn_sp64_vis3): New insn.
1005         (*mov<VM64:mode>_insn_sp32_vis3): New insn.
1006         (VM64 reg<-->reg split): New splitter for 32-bit.
1007
1008         * config/sparc/sparc.c (sparc_split_regreg_legitimate): New function.
1009         * config/sparc/sparc-protos.h (sparc_split_regreg_legitimate):
1010         Declare it.
1011         * config/sparc/sparc.md (DImode reg/reg split): Use it.
1012         (DFmode reg/reg split): Likewise.
1013
1014         * config/sparc/sparc.md (*movdi_insn_sp32_v9): Add alternatives for
1015         generating fzero and fone instructions.
1016         (DImode const_int --> reg splitter): Only trigger for integer regs.
1017
1018         * config/sparc/predicates.md (input_operand): Disallow vector
1019         constants other than 0 and -1.
1020         * config/sparc/sparc.c (sparc_preferred_reload_class): Return
1021         NO_REGS for vector constants other than 0 and -1.
1022
1023         * config/sparc/sparc.h (SPARC_FIRST_INT_REG, SPARC_LAST_INT_REG,
1024         SPARC_INT_REG_P): Define.
1025         (HARD_REGNO_NREGS): Use SPARC_INT_REG_P.
1026         (REGNO_OK_FOR_INDEX_P): Likewise.
1027         * config/sparc/sparc.c (gen_df_reg): Likewise.
1028         (eligible_for_return_delay): Likewise.
1029         (eligible_for_sibcall_delay): Likewise.
1030         (sparc_legitimate_address_p): Likewise.
1031         (emit_save_or_restore_regs): Likewise.
1032         (registers_ok_for_ldd_peep): Likewise.
1033         * config/spac/sparc.md (DI mode splitters): Likewise.
1034         (SF mode const splitters): Likewise.
1035         (DF mode splitters): Likewise.
1036         (32-bit DI mode logical op splitters): Likewise.
1037
1038 2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
1039
1040         PR c++/50841
1041         Revert:
1042         2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
1043
1044         PR c++/50810
1045         * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
1046
1047 2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
1048
1049         * config/i386/sse.md (avx2_lshl<mode>3): Remove insn pattern.
1050         (VI248_256): Remove mode iterator.
1051         * config/i386/i386.c (ix86_expand_vec_perm): Use gen_ashlv4di3
1052         instead of gen_avx2_lshlv4di3.
1053         (bdesc_args): Use CODE_FOR_ashl{v16hi,v8si,v4di}3 instead of
1054         CODE_FOR_avx2_lshl{v16hi,v8si,v4di}3.
1055
1056 2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
1057
1058         * config/i386/sse.md (sseintprefix): Rename from gthrfirstp.
1059         (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>): Delete expander.
1060         (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>) Merge insn
1061         pattern from *avx2_maskload<ssemodesuffix><avxsizesuffix> and
1062         *avx_maskload<ssemodesuffix><avxsizesuffix> using V48_AVX mode
1063         iterator.  Use sseintprefix mode attribute.
1064         (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>): Delete expander.
1065         (<avx_avx2>_maskstore<ssemodesuffix><avxsizesuffix>) Merge insn
1066         pattern from *avx2_maskstore<ssemodesuffix><avxsizesuffix> and
1067         *avx_maskstore<ssemodesuffix><avxsizesuffix> using V48_AVX mode
1068         iterator.  Use sseintprefix mode attribute.
1069         (*avx2_gathersi<mode>) Use sseintprefix and ssemodesuffix mode
1070         attributes.
1071         (*avx2_gatherdi<mode>): Ditto.
1072         (*avx2_gatherdi<mode>256): Ditto.
1073         (VI48_AVX2): Remove mode iterator.
1074         (gthrlastfp): Remove mode attribute.
1075
1076 2011-10-23  Paolo Carlini  <paolo.carlini@oracle.com>
1077
1078         PR c++/50810
1079         * doc/invoke.texi ([-Wnarrowing], [-Wc++0x-compat]): Update.
1080
1081 2011-10-23  Tom de Vries  <tom@codesourcery.com>
1082
1083         PR tree-optimization/50763
1084         * tree-ssa-tail-merge.c (same_succ_flush_bb): New function, factored
1085         out of ...
1086         (same_succ_flush_bbs): Use same_succ_flush_bb.
1087         (purge_bbs): Remove argument.  Remove calls to same_succ_flush_bbs,
1088         release_last_vdef and delete_basic_block.
1089         (unlink_virtual_phi): New function.
1090         (update_vuses): Add and use vuse1_phi_args argument.  Set var to
1091         SSA_NAME_VAR of vuse1 or vuse2, and use var.  Handle case that
1092         def_stmt2 is NULL.  Use phi result as phi arg in case vuse1 or vuse2
1093         is NULL_TREE.  Replace uses of vuse1 if vuse2 is NULL_TREE.  Fix code
1094         to limit replacement of uses.  Propagate phi argument for phis with a
1095         single argument.
1096         (replace_block_by): Update vops if phi_vuse1 or phi_vuse2 is NULL_TREE.
1097         Set vuse1_phi_args if vuse1 is a phi defined in bb1.  Add
1098         vuse1_phi_args as argument to call to update_vuses.  Call
1099         release_last_vdef, same_succ_flush_bb, delete_basic_block.  Update
1100         CDI_DOMINATORS info.
1101         (tail_merge_optimize): Remove argument in call to purge_bbs.  Remove
1102         call to free_dominance_info.  Only call calculate_dominance_info once.
1103
1104 2011-10-23  Eric Botcazou  <ebotcazou@adacore.com>
1105
1106         * fold-const.c (invert_tree_comparison): Always invert EQ_EXPR/NE_EXPR.
1107
1108         PR tree-optimization/44683
1109         * tree-ssa-dom.c (record_edge_info): Record simple equivalences only if
1110         we can be sure that there are no signed zeros involved.
1111
1112 2011-10-23  Jan Hubicka  <jh@suse.cz>
1113
1114         * ipa-inline.c (estimate_badness): Scale up and handle overflows.
1115
1116 2011-10-23  Uros Bizjak  <ubizjak@gmail.com>
1117
1118         PR target/50788
1119         * config/i386/sse.md (<avx_avx2>_maskload<ssemodesuffix><avxsizesuffix>):
1120         Remove (match_dup 0).
1121         (*avx2_maskload<ssemodesuffix><avxsizesuffix>): New insn pattern.
1122         (*avx_maskload<ssemodesuffix><avxsizesuffix>): Ditto.
1123         (*avx2_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
1124         (*avx_maskstore<ssemodesuffix><avxsizesuffix>): Ditto.
1125         (*avx2_maskmov<ssemodesuffix><avxsizesuffix>): Remove insn pattern.
1126         (*avx_maskmov<ssemodesuffix><avxsizesuffix>): Ditto.
1127
1128 2011-10-23  Ira Rosen  <ira.rosen@linaro.org>
1129
1130         PR tree-optimization/50819
1131         * tree-vectorizer.h (vect_analyze_data_ref_dependences): Remove
1132         the last argument.
1133         * tree-vect-loop.c (vect_analyze_loop_2): Update call to
1134         vect_analyze_data_ref_dependences.
1135         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Remove
1136         the last argument.  Check load-after-store dependence for unknown
1137         dependencies in basic blocks.
1138         (vect_analyze_data_ref_dependences): Update call to
1139         vect_analyze_data_ref_dependences.
1140         * tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo.
1141         * tree-vect-slp.c (vect_bb_vectorizable_with_dependencies): Remove.
1142         (vect_slp_analyze_bb_1): Update call to
1143         vect_analyze_data_ref_dependences.  Don't call
1144         vect_bb_vectorizable_with_dependencies.
1145
1146 2011-10-22  David S. Miller  <davem@davemloft.net>
1147
1148         * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS,
1149         SECONDARY_OUTPUT_RELOAD_CLASS): Delete.
1150         * config/sparc/sparc.c (TARGET_SECONDARY_RELOAD): Redefine.
1151         (sparc_secondary_reload): New function.
1152
1153         * config/sparc/sparc.h (sparc_costs): Remove extern decl.
1154         (struct processor_costs): Move from here..
1155         * config/sparc/sparc.c (struct processor_costs): To here.
1156         (sparc_costs): Mark static.
1157
1158         * config/sparc/sparc.c (short_branch, reg_unused_after): Delete.
1159         * config/sparc/sparc-protos.h (short_branch, reg_unused_after):
1160         Get rid of declarations.
1161
1162 2011-10-21  Paul Brook  <paul@codesourcery.com>
1163
1164         * config/c6x/c6x.c (c6x_asm_emit_except_personality,
1165         c6x_asm_init_sections): New functions.
1166         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): Define.
1167
1168 2011-10-21  Jakub Jelinek  <jakub@redhat.com>
1169
1170         PR target/50813
1171         * config/i386/i386.c (expand_vec_perm_even_odd_1): Handle
1172         V4DImode and V8SImode for !TARGET_AVX2.
1173
1174 2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
1175
1176         PR bootstrap/50825
1177         * sched-deps.c (add_dependence): If not doing predication, promote
1178         REG_DEP_CONTROL to REG_DEP_ANTI.
1179
1180 2011-10-21  Georg-Johann Lay  <avr@gjlay.de>
1181
1182         * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Pass address of X
1183         instead of X to avr_legitimize_reload_address.
1184         * config/avr/avr-protos.h (avr_legitimize_reload_address): Change
1185         first argument's type from rtx to rtx*.
1186         * config/avr/avr.c (avr_legitimize_reload_address): Ditto.
1187         Pass PX to push_reload instead of &X.  Change log messages for
1188         better distinction.
1189
1190 2011-10-21  Roland Stigge  <stigge@antcom.de>
1191
1192         PR translation/47064
1193         * params.def: Fix typo "compilatoin" -> "compilation".
1194
1195 2011-10-21  H.J. Lu  <hongjiu.lu@intel.com>
1196             Kirill Yukhin  <kirill.yukhin@intel.com>
1197
1198         PR target/50740
1199         * config/i386/driver-i386.c (host_detect_local_cpu): Do cpuid 7 only
1200         if max_level allows that.
1201
1202 2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
1203
1204         * reg-notes.def (DEP_CONTROL): New.
1205         * sched-ebb.c (add_deps_for_risky_insns): Add a REG_DEP_CONTROL when
1206         not doing speculation.
1207         * rtlanal.c (record_hard_reg_sets, find_all_hard_reg_sets,
1208         record_hard_reg_uses_1, record_hard_reg_uses): New functions.
1209         * function.c (record_hard_reg_sets, record_hard_reg_uses,
1210         record_hard_reg_uses_1): Remove; move to rtlanal.c.
1211         * lists.c (copy_INSN_LIST, concat_INSN_LIST): New functions.
1212         * haifa-sched.c: Swap includes of "rtl.h" and "hard-reg-set.h".
1213         (MUST_RECOMPUTE_SPEC_P): New macro.
1214         (real_insn_for_shadow): New function.
1215         (cond_clobbered_p, recompute_todo_spec, check_clobbered_conditions,
1216         toggle_cancelled_flags): New static functions.
1217         (schedule_insn): Relax an assert to only check for empty hard back
1218         dependencies.  Skip cancelled dependencies.  Call
1219         check_clobbered_conditions.
1220         (copy_insn_list): Remove function, renamed moved to lists.c.
1221         (save_backtrack_point): Use new spelling copy_INSN_LIST.
1222         (unschedule_insns_until): Ensure TODO_SPEC is reset properly.
1223         (restore_last_backtrack_point): Likewise.  Call toggle_cancelled_flags.
1224         (estimate_insn_tick): Ignore cancelled dependencies.
1225         (haifa_speculate_insn): Move declaration.
1226         (try_ready): Move code into recompute_todo_spec and call it.  Tweak
1227         some asserts.  Ensure predicated patterns are restored if necessary.
1228         Dump DEP_CONTROL flag.
1229         (haifa_change_pattern): Merge with sched_change_pattern.
1230         (sched_change_pattern): Remove function.
1231         * sched-deps.c (NON_FLUSH_JUMP_KIND, NON_FLUSH_JUMP): Remove.  All
1232         uses changed to simply not test NON_FLUSH_JUMP_P.
1233         (ds_to_dk, dk_to_ds, dump_dep, ds_to_dt, dump_ds, check_dep): Handle
1234         REG_DEP_CONTROL.
1235         (dep_spec_p): If DO_PREDICATION, REG_DEP_CONTROL is speculative.
1236         (reg_pending_control_uses, control_dependency_cache): New static
1237         variables.
1238         (sched_get_reverse_condition_uncached): New function.
1239         (sd_find_dep_between): Remove pointless assert.  Look in
1240         control_dependency_cache.
1241         (ask_dependency_caches, set_dependency_caches, sd_delete_dep,
1242         extend_dependency_caches, sched_deps_finish): Handle REG_DEP_CONTROL
1243         and control_dependency_cache.
1244         (sd_unresolve_dep): Use dep_spec_p.
1245         (add_dependence): Now a wrapper around add_dependence_1, handling
1246         REG_DEP_CONTROL specially.
1247         (flush_pending_lists): Clear pending_jump_insns.
1248         (sched_analyze_1): Handle pending_jump_insns like a memory flush.
1249         (sched_analyze_2): Unconditionally add to pending memory flushes,
1250         keep previous behaviour but apply it to pending_jump_insns instead.
1251         (sched_analyze_insn): Defer adding jump reg dependencies using
1252         reg_pending_control_uses; add them to the control_uses list.  Handle
1253         pending_jump_insns and control_uses when adding dependence lists.
1254         (deps_analyze_insn): Update INSN_COND_DEPS.
1255         (deps_analyze_insn): Add jumps to pending_jump_insns rather than
1256         last_pending_memory_flush.
1257         (init_deps): Initialize pending_jump_insns.
1258         (free_deps): Free control_uses.
1259         (remove_from_deps): Remove from pending_jump_insns.
1260         (init_deps_global): Allocate reg_pending_control_uses).
1261         (finish_deps_global): Free it.
1262         (add_dependence_1): Renamed from add_dependence.  Handle
1263         REG_DEP_CONTROL.
1264         * rtl.h (record_hard_reg_uses, find_all_hard_reg_sets): Declare.
1265         (copy_INSN_LIST, concat_INSN_LIST): Declare.
1266         * sched-int.h (struct deps_reg): Add control_uses.
1267         (struct deps_desc): Add pending_jump_insns.
1268         (struct _haifa_deps_insn_data): Add cond_deps.
1269         (struct _haifa_insn_data): Add must_recompute_spec and predicated_pat.
1270         (INSN_COND_DEPS, PREDICATED_PAT): New macros.
1271         (BITS_PER_DEP_WEAK): Adjust for two extra bits in the word.
1272         (DEP_CONTROL): New macro.
1273         (DEP_TYPES): Include it.
1274         (HARD_DEP): Adjust definition.
1275         (DEP_CANCELLED): New macro.
1276         (enum SCHED_FLAGS): Add DO_PREDICATION.
1277         (sched_get_reverse_condition_uncached, real_insn_for_shadow): Declare.
1278         * sched-rgn.c (concat_INSN_LIST): Remove function.
1279         (deps_join): Handle pending_jump_insns.
1280         (free_pending_lists): Likewise.
1281         * config/c6x/c6x.c (c6x_set_sched_flags): Set DO_PREDICATION for final
1282         schedule.
1283
1284 2011-10-21  Georg-Johann Lay  <avr@gjlay.de>
1285
1286         PR target/50820
1287         * config/avr/libgcc.S (__EIND__): New define to 0x3C.
1288         (__tablejump__): Consistently use EIND for indirect jump/call.
1289         (__tablejump_elpm__): Ditto.
1290
1291 2011-10-21  Bernd Schmidt  <bernds@codesourcery.com>
1292
1293         * config/c6x/c6x.md (attr "op_pattern"): New.
1294         (load_sdata_pic, mov<mode>_insn for QIHIM and SISFVM): Set it.
1295         * config/c6x/c6x-mult.md.in (mulhi3_VARIANT_, mulhisi3_insn_VARIANT_):
1296         Likewise.
1297         * config/c6x/c6x-mult.md: Regenerate.
1298         * config/c6x/c6x.c: Include "regrename.h".
1299         (unit_req_table): New typedef.
1300         (unit_reqs): Use it for the declaration.
1301         (unit_req_factor, get_unit_reqs, merge_unit_reqs, unit_req_imbalance,
1302         get_unit_operand_masks, try_rename_operands, reshuffle_units): New
1303         static functions.
1304         (count_unit_reqs): New arg reqs.  All callers changed.  Use
1305         get_unit_reqs, and don't merge here.
1306         (res_mii): New arg reqs.  All callers changed.  Rewrite to use a loop
1307         using unit_req_factor.
1308         (hwloop_optimize): Call reshuffle_units.  Call merge_unit_reqs after
1309         count_unit_reqs.
1310         (c6x_reorg): Add reg notes problem, and call df_analyze.
1311         * Makefile.in ($(out_object_file)): Depend on regrename.h.
1312
1313 2011-10-21  Kai Tietz  <ktietz@redhat.com>
1314
1315         * fold-const.c (simple_operand_p_2): Handle integral
1316         casts from boolean-operands.
1317
1318 2011-10-21  Jan Hubicka  <jh@suse.cz>
1319
1320         * cgraph.c (dump_cgraph_node): Dump alias flag.
1321         * cgraphunit.c (handle_alias_pairs): Handle weakrefs with
1322         no destination.
1323         (get_alias_symbol): New function.
1324         (output_weakrefs): Output also weakrefs with no destinatoin.
1325         (lto_output_node): Output weakref alias flag when at function boundary.
1326
1327 2011-10-21  Andrew Stubbs  <ams@codesourcery.com>
1328
1329         PR target/50809
1330         * config/arm/driver-arm.c (vendors): Make static.
1331
1332 2011-10-21  Uros Bizjak  <ubizjak@gmail.com>
1333
1334         * config/i386/i386.c (ix86_emit_swdivsf): Force b into register.
1335         (ix86_emit_swsqrtsf): Force a into register.
1336
1337 2011-10-20  Mike Stump  <mikestump@comcast.net>
1338
1339         * regcprop.c (copyprop_hardreg_forward_1): Update recog_data
1340         after validate_change wipes it out.
1341
1342 2011-10-20  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1343
1344         * config/spu/spu.md ("vec_permv16qi"): Reduce selector modulo 32
1345         before using the shufb instruction.
1346
1347 2011-10-20  Kirill Yukhin  <kirill.yukhin@intel.com>
1348
1349         PR target/50766
1350         * config/i386/i386.md (bmi_bextr_<mode>): Update register/
1351         memory operand order.
1352         (bmi2_bzhi_<mode>3): Ditto.
1353         (bmi2_pdep_<mode>3): Ditto.
1354         (bmi2_pext_<mode>3): Ditto.
1355
1356 2011-10-20  Richard Henderson  <rth@redhat.com>
1357
1358         * target.def (vec_perm_const_ok): Rename from builtin_vec_perm_ok.
1359         * optabs.c (can_vec_perm_expr_p): Update to match.
1360         (expand_vec_perm_expr): Likewise.
1361         * config/i386/i386.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Rename
1362         from TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK.
1363         * doc/tm.texi.in: Likewise.
1364
1365 2011-10-20  Sergey Ostanevich  <sergos.gnu@gmail.com>
1366
1367         PR target/50572
1368         * config/i386/i386.c (processor_target_table): Change Atom
1369         align_loops_max_skip to 15.
1370
1371 2011-10-20  Richard Henderson  <rth@redhat.com>
1372
1373         * target.def (builtin_vec_perm): Remove.
1374         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
1375
1376         * config/i386/i386.c (ix86_expand_vec_perm_builtin): Remove.
1377         (IX86_BUILTIN_VEC_PERM_*): Remove.
1378         (bdesc_args): Remove vec_perm builtins
1379         (ix86_expand_builtin): Likewise.
1380         (ix86_expand_vec_perm_const_1): Rename from
1381         ix86_expand_vec_perm_builtin_1.
1382         (extract_vec_perm_cst): Merge into...
1383         (ix86_vectorize_vec_perm_const_ok): ... here.  Rename from
1384         ix86_vectorize_builtin_vec_perm_ok.
1385         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
1386
1387         * config/rs6000/rs6000.c (rs6000_builtin_vec_perm): Remove.
1388         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
1389
1390         * config/spu/spu.c (spu_builtin_vec_perm): Remove.
1391         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Remove.
1392
1393 2011-10-20  Uros Bizjak  <ubizjak@gmail.com>
1394
1395         PR target/47989
1396         * config/i386/i386.h (RECIP_MASK_DEFAULT): New define.
1397         * config/i386/i386.op (recip_mask): Initialize with RECIP_MASK_DEFAULT.
1398         * doc/invoke.texi (ix86 Options, -mrecip): Document that GCC
1399         implements vectorized single float division and vectorized sqrtf(x)
1400         with reciprocal sequence with additional Newton-Raphson step with
1401         -ffast-math.
1402
1403 2011-10-20  Dodji Seketeli  <dodji@redhat.com>
1404
1405         * ggc-zone.c (ggc_internal_alloc_zone_stat): Rename
1406         ggc_alloced_size_order_for_request into ggc_round_alloc_size like
1407         it was done in ggc-page.c.
1408
1409         PR other/50659
1410         * doc/cppopts.texi: Use @smallexample/@end smallexample in
1411         documentation for -fdebug-cpp instead of @quotation/@end quotation
1412         that is not supported by contrib/texi2pod.pl.
1413
1414 2011-10-19  Jan Hubicka  <jh@suse.cz>
1415
1416         * ipa-inline.c (inline_small_functions): Always update all calles after
1417         inlining.
1418
1419 2011-10-19  Jan Hubicka  <jh@suse.cz>
1420
1421         PR bootstrap/50709
1422         * ipa-inline.c (inline_small_functions): Fix checking code to not make
1423         effect on fibheap stability.
1424
1425 2011-10-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
1426
1427         * config/m68k/t-linux (M68K_MLIB_CPU): Add ColdFire CPUs.
1428
1429 2011-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1430
1431         PR target/50106
1432         * config/arm/arm.c (thumb_unexpanded_epilogue): Handle return
1433         reg size from 1-3.
1434
1435 2011-10-20  Richard Guenther  <rguenther@suse.de>
1436
1437         * tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR
1438         and rotates to the set of expensive operations.
1439
1440 2011-10-19  David S. Miller  <davem@davemloft.net>
1441
1442         * config/sparc/sparc.c (sparc_expand_move): Use can_create_pseudo_p.
1443         (sparc_emit_set_const32): Likewise.
1444         (sparc_emit_set_const64_longway): Likewise.
1445         (sparc_emit_set_const64): Likewise.
1446         (sparc_legitimize_pic_address): Likewise.
1447         (memory_ok_for_ldd): Likewise.
1448
1449 2011-10-20  Dehao Chen  <dehao@google.com>
1450
1451         * profile.c (compute_branch_probabilities): Compute and dump the
1452         overlap between the static estimation and the instrumentation profile.
1453         (OVERLAP_BASE): New macro.
1454         (compute_frequency_overlap): New function
1455
1456 2011-10-19  Jakub Jelinek  <jakub@redhat.com>
1457
1458         * config/i386/i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use
1459         d->op1 instead of d->op0 for the second vpshufb.
1460         (expand_vec_perm_even_odd_1): For V8SImode fix vpshufd immediates.
1461         (ix86_expand_vec_perm_const): If mask indicates two operands are
1462         needed, but both are the same and expanding them as d.op0 == d.op1
1463         failed, retry with d.op0 != d.op1.
1464         (ix86_expand_vec_perm_builtin): Likewise.  Handle sorry printing
1465         also for d.nelt == 32.
1466
1467         PR middle-end/50754
1468         * cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore
1469         VEC_PERM_EXPR.
1470
1471 2011-10-19  Bernd Schmidt  <bernds@codesourcery.com>
1472
1473         * regrename.h: New file.
1474         * regrename.c: Include it.  Also include "emit-rtl.h".
1475         (struct du_head, struct du_chain, du_head_p DEF_VEC and
1476         DEF_VEC_ALLOC_P): Move to regrename.h.
1477         (do_replace): Remove declaration.
1478         (insn_rr): New variable.
1479         (cur_operand): New static variable.
1480         (regrename_chain_from_id): Renamed from chain_from_id and no longer
1481         static.  All callers changed.
1482         (record_operand_use): New static function.
1483         (scan_rtx_reg): Use it.
1484         (find_best_rename_reg): New function, broken out of rename_chains.
1485         (rename_chains): Use it.  Don't update chain regno and nregs here, ...
1486         (regrename_do_replace): ... do it here instead.  Renamed from
1487         do_replace, and no longer static.  All callers changed.
1488         (regrename_analyze): No longer static.  New arg bb_mask.
1489         All callers changed.  If bb_mask is nonzero, use it to limit the
1490         number of basic blocks we analyze.  If we failed to analyze a block,
1491         clear insn operand data.
1492         (record_out_operands): New arg insn_info.  Update cur_operand if it is
1493         nonnull.
1494         (build_def_use): If insn_rr is nonnull, pass an insn_info to
1495         record_out_operands, and update cur_operand here as well.
1496         (regrename_init, regrename_finish): New functions.
1497         (regrename_optimize): Use them.
1498         * Makefile.in (regrename.o): Adjust dependencies.
1499
1500 2011-10-19  Tom de Vries  <tom@codesourcery.com>
1501
1502         PR tree-optimization/50769
1503         * tree-ssa-tail-merge.c (replace_block_by): Calculate phi_vuse2
1504         unconditionally.  Handle case that phi_vuse2 is not an SSA_NAME.  Add
1505         dummy argument .MEM to phi when increasing number of arguments of phi by
1506         redirecting edges to the block with phi.
1507
1508 2011-10-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1509
1510         PR bootstrap/50777
1511         * configure.ac: Save and restore CXXFLAGS around
1512         gcc_AC_CHECK_DECLS uses.
1513         Check for madvise() declaration with g++ if --enable-build-with-cxx.
1514         * configure: Regenerate.
1515         * config.in: Regenerate.
1516         * ggc-page.c (USING_MADVISE): Also check HAVE_DECL_MADVISE.
1517
1518 2011-10-19  Alexandre Oliva  <aoliva@redhat.com>
1519
1520         PR debug/49310
1521         * var-tracking.c (loc_exp_dep, onepart_aux): New structs.
1522         (variable_part): Replace offset with union.
1523         (enum onepart_enum, onepart_enum_t): New.
1524         (variable_def): Drop cur_loc_changed, add onepart.
1525         (value_chain_def, const_value_chain): Remove.
1526         (VAR_PART_OFFSET, VAR_LOC_1PAUX): New macros, with checking.
1527         (VAR_LOC_DEP_LST, VAR_LOC_DEP_LSTP): New macros.
1528         (VAR_LOC_FROM, VAR_LOC_DEPTH, VAR_LOC_DEP_VEC): Likewise.
1529         (value_chain_pool, value_chains): Remove.
1530         (dropped_values): New.
1531         (struct parm_reg): Only if HAVE_window_save.
1532         (vt_stack_adjustments): Don't record register arguments.
1533         (dv_as_rtx): New.
1534         (dv_onepart_p): Return a onepart_enum_t.
1535         (onepart_pool): New.
1536         (dv_pool): Remove.
1537         (dv_from_rtx): New.
1538         (variable_htab_free): Release onepart aux data.  Reset flags.
1539         (value_chain_htab_hash, value_chain_htab_eq): Remove.
1540         (unshare_variable): Use onepart field.  Propagate onepart aux
1541         data or offset.  Drop cur_loc_changed.
1542         (val_store): Cope with NULL insn.  Rephrase dump output.  Check
1543         for unsuitable locs.  Add FIXME on using cselib locs.
1544         (val_reset): Remove FIXME of unfounded concerns.
1545         (val_resolve): Check for unsuitable locs.  Add FIXME on using
1546         cselib locs.
1547         (variable_union): Use onepart field, adjust access to offset.
1548         (NO_LOC_P): New.
1549         (VALUE_CHANGED, DECL_CHANGED): Update doc.
1550         (set_dv_changed): Clear NO_LOC_P when changed.
1551         (find_loc_in_1pdv): Use onepart field.
1552         (intersect_loc_chains): Likewise.
1553         (unsuitable_loc): New.
1554         (loc_cmp): Keep ENTRY_VALUEs at the end of the loc list.
1555         (add_value_chain, add_value_chains): Remove.
1556         (add_cselib_value_chains, remove_value_chain): Likewise.
1557         (remove_value_chains, remove_cselib_value_chains): Likewise.
1558         (canonicalize_loc_order_check): Use onepart.  Drop cur_loc_changed.
1559         (canonicalize_values_star, canonicalize_vars_star): Use onepart.
1560         (variable_merge_over_cur): Likewise.  Adjust access to offset.
1561         Drop cur_loc_changed.
1562         (variable_merge_over_src): Use onepart field.
1563         (remove_duplicate_values): Likewise.
1564         (variable_post_merge_new_vals): Likewise.
1565         (find_mem_expr_in_1pdv): Likewise.
1566         (dataflow_set_preserve_mem_locs): Likewise.  Drop cur_loc_changed
1567         and value chains.
1568         (dataflow_set_remove_mem_locs): Likewise.  Use VAR_LOC_FROM.
1569         (variable_different_p): Use onepart field.  Move onepart test out
1570         of the loop.
1571         (argument_reg_set): Drop.
1572         (add_uses, add_stores): Preserve but do not record in dynamic
1573         tables equivalences for ENTRY_VALUEs and CFA_based addresses.
1574         Avoid unsuitable address expressions.
1575         (EXPR_DEPTH): Unlimit.
1576         (EXPR_USE_DEPTH): Repurpose PARAM_MAX_VARTRACK_EXPR_DEPTH.
1577         (prepare_call_arguments): Use DECL_RTL_IF_SET.
1578         (dump_var): Adjust access to offset.
1579         (variable_from_dropped, recover_dropped_1paux): New.
1580         (variable_was_changed): Drop cur_loc_changed.  Use onepart.
1581         Preserve onepart aux in empty_var.  Recover empty_var and onepart
1582         aux from dropped_values.
1583         (find_variable_location_part): Special-case onepart.  Adjust
1584         access to offset.
1585         (set_slot_part): Use onepart.  Drop cur_loc_changed.  Adjust
1586         access to offset.  Initialize onepaux.  Drop value chains.
1587         (delete_slot_part): Drop value chains.  Use VAR_LOC_FROM.
1588         (VEC (variable, heap), VEC (rtx, stack)): Define.
1589         (expand_loc_callback_data): Drop dummy, cur_loc_changed,
1590         ignore_cur_loc.  Add expanding, pending, depth.
1591         (loc_exp_dep_alloc, loc_exp_dep_clear): New.
1592         (loc_exp_dep_insert, loc_exp_dep_set): New.
1593         (notify_dependents_of_resolved_value): New.
1594         (update_depth, vt_expand_var_loc_chain): New.
1595         (vt_expand_loc_callback): Revamped.
1596         (resolve_expansions_pending_recursion): New.
1597         (INIT_ELCD, FINI_ELCD): New.
1598         (vt_expand_loc): Use the new macros above.  Drop ignore_cur_loc
1599         parameter, adjust all callers.
1600         (vt_expand_loc_dummy): Drop.
1601         (vt_expand_1pvar): New.
1602         (emit_note_insn_var_location): Operate on non-debug decls only.
1603         Revamp multi-part cur_loc recomputation and one-part expansion.
1604         Drop cur_loc_changed.  Adjust access to offset.
1605         (VEC (variable, heap)): Drop.
1606         (changed_variables_stack, changed_values_stack): Drop.
1607         (check_changed_vars_0, check_changed_vars_1): Remove.
1608         (check_changed_vars_2, check_changed_vars_3): Remove.
1609         (values_to_stack, remove_value_from_changed_variables): New.
1610         (notify_dependents_of_changed_value, process_changed_values): New.
1611         (emit_notes_for_changes): Revamp onepart updates.
1612         (emit_notes_for_differences_1): Use onepart.  Drop cur_loc_changed
1613         and value chains.  Propagate onepaux.  Recover empty_var and onepaux
1614         from dropped_values.
1615         (emit_notes_for_differences_2): Drop value chains.
1616         (emit_notes_in_bb): Adjust.
1617         (vt_emit_notes): Drop value chains, changed_variables_stack.
1618         Initialize and release dropped_values.
1619         (create_entry_value): Revamp.
1620         (vt_add_function_parameter): Use new interface.
1621         (note_register_arguments): Remove.
1622         (vt_initialize): Drop value chains and register arguments.
1623         (vt_finalize): Drop value chains.  Release windowed_parm_regs only
1624         if HAVE_window_save.
1625         * rtl.h: Document various pass-local uses of RTL flags.
1626         * tree.h (DECL_RTL_KNOWN_SET): New.
1627         * doc/invoke.texi (param max-vartrack-expr-depth): Update
1628         description and default.
1629
1630 2011-10-19  Georg-Johann Lay  <avr@gjlay.de>
1631
1632         PR target/50447
1633         * config/avr/avr.md (cc): New alternative out_plus_noclobber.
1634         (adjust_len): Ditto.
1635         (addhi3): Don't pipe through short; use gen_int_mode instead.
1636         Prior to reload, expand to gen_addhi3_clobber.
1637         (*addhi3): Use avr_out_plus_noclobber if applicable, use
1638         out_plus_noclobber in cc and adjust_len attribute.
1639         (addhi3_clobber): 2 new RTL peepholes.
1640         (addhi3_clobber): New insn.
1641         * config/avr/avr-protos.h: (avr_out_plus_noclobber): New prototype.
1642         * config/avr/avr.c (avr_out_plus_noclobber): New function.
1643         (notice_update_cc): Handle CC_OUT_PLUS_NOCLOBBER.
1644         (avr_out_plus_1): Tweak if only MSB is +/-1 and other bytes are 0.
1645         Set cc0 to set_zn for adiw on 16-bit values.
1646         (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS_NOCLOBBER.
1647         (expand_epilogue): No need to add 0 to frame_pointer_rtx.
1648
1649 2011-10-19  Richard Guenther  <rguenther@suse.de>
1650
1651         PR middle-end/50780
1652         * tree-ssa-forwprop.c (forward_propagate_into_cond): Verify
1653         the condition is properly gimple before using it.
1654         * tree-eh (stmt_could_throw_1_p): Properly extract the
1655         operation type from comparisons.
1656
1657 2011-10-19  Roland Stigge  <stigge@antcom.de>
1658
1659         PR translation/48638
1660         * plugin.c (add_new_plugin): Fix typo in fatal_error message.
1661
1662 2011-10-19  Roland Stigge  <stigge@antcom.de>
1663
1664         PR translation/49517
1665         * config/rx/rx.c (rx_print_operand): Fix typo in warning message.
1666
1667 2011-10-19  Richard Guenther  <rguenther@suse.de>
1668
1669         PR middle-end/50768
1670         * gimple-fold.c (gimplify_and_update_call_from_tree): Rewrite.
1671
1672 2011-10-19  Andrey Belevantsev  <abel@ispras.ru>
1673
1674         PR rtl-optimization/50340
1675         * sel-sched-ir.c (update_target_availability): LHS register
1676         availability is not known if the unavailable LHS of the other
1677         expression is a different register.
1678
1679 2011-10-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1680
1681         PR target/50310
1682         * config/spu/spu.c (spu_emit_vector_compare): Support unordered
1683         floating-point comparisons.
1684
1685 2011-10-19  Jan Hubicka  <jh@suse.cz>
1686
1687         * cgraphunit.c (handle_alias_pairs): Also handle wekref with
1688         destination declared.
1689         (output_weakrefs): New function.
1690         * varpool.c (varpool_create_variable_alias): Handle external aliases.
1691
1692 2011-10-19  Jakub Jelinek  <jakub@redhat.com>
1693
1694         * dwarf2out.c (loc_descriptor): For SUBREG pass SUBREG_REG's mode as
1695         second argument instead of mode.
1696
1697 2011-10-18  Jakub Jelinek  <jakub@redhat.com>
1698
1699         * config/i386/i386.c (ix86_expand_vec_perm): In merge_two use
1700         mode SUBREG of operands[0] as target.
1701         (valid_perm_using_mode_p): Don't ignore higher bits of d->perm.
1702         (expand_vec_pshufb): For V8SImode vmode emit avx2_permvarv8si.
1703         (expand_vec_perm_1): Handle identity and some broadcast
1704         permutations.
1705         (expand_vec_perm_interleave2): Handle also 32-byte modes, using
1706         vperm2[fi]128 or vpunpck[lh]* followed by single insn permutation.
1707         For d->testing_p return true earlier to avoid creating more GC
1708         garbage.
1709         (expand_vec_perm_vpermq_perm_1): New function.
1710         (expand_vec_perm_vpshufb2_vpermq): For d->testing_p return true
1711         earlier to avoid creating more GC garbage.  Fix handling of
1712         V16HImode.  Avoid some SUBREGs in SET_DEST.
1713         (expand_vec_perm_broadcast_1): Return false for 32-byte integer
1714         vector modes.
1715         (expand_vec_perm_vpshufb4_vpermq2): New function.
1716         (ix86_expand_vec_perm_builtin_1): Call expand_vec_perm_vpermq_perm_1
1717         and expand_vec_perm_vpshufb4_vpermq2.
1718
1719 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
1720
1721         * config/arm/driver-arm.c (host_detect_local_cpu): Close the file
1722         before exiting.
1723
1724 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
1725
1726         PR tree-optimization/50717
1727         * tree-ssa-math-opts.c (is_widening_mult_p): Remove the 'type'
1728         parameter.  Calculate 'type' from stmt.
1729         (convert_mult_to_widen): Update call the is_widening_mult_p.
1730         (convert_plusminus_to_widen): Likewise.
1731
1732 2011-10-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1733
1734         * config/spu/spu.c (struct machine_function): New data structure.
1735         (spu_init_machine_status): New function.
1736         (spu_option_override): Install it.
1737         (get_pic_reg): Set and use cfun->machine->pic_reg.
1738         (spu_split_immediate): Do not set crtl->uses_pic_offset_table.
1739         (need_to_save_reg): Use cfun->machine->pic_reg instead of
1740         checking crtl->uses_pic_offset_table.
1741         (spu_expand_prologue): Likewise.
1742
1743 2011-10-18  Jakub Jelinek  <jakub@redhat.com>
1744
1745         PR tree-optimization/50735
1746         * function.c (gimplify_parameters): Use create_tmp_var instead of
1747         create_tmp_reg.  If parm is not TREE_ADDRESSABLE and type is complex
1748         or vector type, set DECL_GIMPLE_REG_P.
1749
1750 2011-10-18  Andrew Stubbs  <ams@codesourcery.com>
1751
1752         * config.host (arm*-*-linux*): Add driver-arm.o and x-arm.
1753         * config/arm/arm.opt: Add 'native' processor_type and
1754         arm_arch enum values.
1755         * config/arm/arm.h (host_detect_local_cpu): New prototype.
1756         (EXTRA_SPEC_FUNCTIONS): New define.
1757         (MCPU_MTUNE_NATIVE_SPECS): New define.
1758         (DRIVER_SELF_SPECS): New define.
1759         * config/arm/driver-arm.c: New file.
1760         * config/arm/x-arm: New file.
1761         * doc/invoke.texi (ARM Options): Document -mcpu=native,
1762         -mtune=native and -march=native.
1763
1764 2011-10-18  Alexander Monakov  <amonakov@ispras.ru>
1765
1766         PR rtl-optimization/50205
1767         * sel-sched.c (count_occurrences_1): Simplify on the assumption that
1768         p->x is a register.  Forbid substitution when the same register is
1769         found in a different mode.
1770         (count_occurrences_equiv): Assert that 'what' is a register.
1771
1772 2011-10-18  Richard Guenther  <rguenther@suse.de>
1773
1774         PR tree-optimization/50767
1775         * tree-ssa-pre.c (create_expression_by_pieces): Update the
1776         folded statement.
1777
1778 2011-10-18  Julian Brown  <julian@codesourcery.com>
1779
1780         * config/arm/arm.c (arm_block_move_unaligned_straight)
1781         (arm_adjust_block_mem, arm_block_move_unaligned_loop)
1782         (arm_movmemqi_unaligned): New.
1783         (arm_gen_movmemqi): Support unaligned block copies.
1784
1785 2011-10-18  Ira Rosen  <ira.rosen@linaro.org>
1786
1787         * doc/md.texi (vec_widen_ushiftl_hi, vec_widen_ushiftl_lo,
1788         vec_widen_sshiftl_hi, vec_widen_sshiftl_lo): Document.
1789         * tree-pretty-print.c (dump_generic_node): Handle WIDEN_LSHIFT_EXPR,
1790         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
1791         (op_code_prio): Likewise.
1792         (op_symbol_code): Handle WIDEN_LSHIFT_EXPR.
1793         * optabs.c (optab_for_tree_code): Handle
1794         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
1795         (init-optabs): Initialize optab codes for vec_widen_u/sshiftl_hi/lo.
1796         * optabs.h (enum optab_index): Add OTI_vec_widen_u/sshiftl_hi/lo.
1797         * genopinit.c (optabs): Initialize the new optabs.
1798         * expr.c (expand_expr_real_2): Handle
1799         VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
1800         * gimple-pretty-print.c (dump_binary_rhs): Likewise.
1801         * tree-vectorizer.h (NUM_PATTERNS): Increase to 8.
1802         * tree.def (WIDEN_LSHIFT_EXPR, VEC_WIDEN_LSHIFT_HI_EXPR,
1803         VEC_WIDEN_LSHIFT_LO_EXPR): New.
1804         * cfgexpand.c (expand_debug_expr): Handle new tree codes.
1805         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
1806         vect_recog_widen_shift_pattern.
1807         (vect_handle_widen_mult_by_const): Rename...
1808         (vect_handle_widen_op_by_const): ...to this.  Handle shifts.
1809         Add a new argument, update documentation.
1810         (vect_recog_widen_mult_pattern): Assume that only second
1811         operand can be constant.  Update call to
1812         vect_handle_widen_op_by_const.
1813         (vect_recog_over_widening_pattern): Fix typo.
1814         (vect_recog_widen_shift_pattern): New.
1815         * tree-vect-stmts.c (vectorizable_type_promotion): Handle
1816         widening shifts.
1817         (supportable_widening_operation): Likewise.
1818         * tree-inline.c (estimate_operator_cost): Handle new tree codes.
1819         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
1820         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
1821         * config/arm/neon.md (neon_vec_<US>shiftl_<mode>): New.
1822         (vec_widen_<US>shiftl_lo_<mode>, neon_vec_<US>shiftl_hi_<mode>,
1823         vec_widen_<US>shiftl_hi_<mode>, neon_vec_<US>shift_left_<mode>):
1824         Likewise.
1825         * config/arm/predicates.md (const_neon_scalar_shift_amount_operand):
1826         New.
1827         * config/arm/iterators.md (V_innermode): New.
1828         * tree-vect-slp.c (vect_build_slp_tree): Require same shift operand
1829         for widening shift.
1830
1831 2011-10-18  Richard Guenther  <rguenther@suse.de>
1832
1833         * tree-ssa-alias.h (struct pt_solution): Remove
1834         vars_contains_restrict member.
1835         (pt_solutions_same_restrict_base): Remove.
1836         (pt_solution_set): Adjust.
1837         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Remove
1838         vars_contains_restrict handling.
1839         (dump_points_to_solution): Likewise.
1840         (ptr_derefs_may_alias_p): Do not call pt_solutions_same_restrict_base.
1841         * tree-ssa-structalias.c (struct variable_info): Remove is_restrict_var
1842         field.
1843         (new_var_info): Do not initialize it.
1844         (ipa_escaped_pt): Adjust.
1845         (make_constraint_from_restrict): Make the tag global.
1846         (make_constraint_from_global_restrict): New function.
1847         (make_constraint_from_heapvar): Remove.
1848         (create_variable_info_for): Do not make restrict vars point
1849         to NONLOCAL.
1850         (intra_create_variable_infos): Likewise.
1851         (find_what_var_points_to): Remove vars_contains_restrict handling.
1852         (pt_solution_set): Adjust.
1853         (pt_solution_ior_into): Likewise.
1854         (pt_solutions_same_restrict_base): Remove.
1855         (compute_points_to_sets): Do not test is_restrict_var.
1856         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
1857         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
1858
1859 2011-10-18  Tom de Vries  <tom@codesourcery.com>
1860
1861         PR tree-optimization/50672
1862         * tree-ssa-dce.c (mark_virtual_operand_for_renaming): New function,
1863         factored out of ...
1864         (mark_virtual_phi_result_for_renaming): Use
1865         mark_virtual_operand_for_renaming.
1866         * tree-flow.h (mark_virtual_operand_for_renaming): Declare.
1867         * tree-ssa-tail-merge.c (release_last_vdef): New function.
1868         (purge_bbs): Add update_vops parameter.  Call release_last_vdef for each
1869         deleted basic block.
1870         (tail_merge_optimize): Add argument to call to purge_bbs.
1871
1872 2011-10-18  Richard Guenther  <rguenther@suse.de>
1873
1874         PR middle-end/50716
1875         * expr.c (get_object_or_type_alignment): New function.
1876         (expand_assignment): Use it.
1877         (expand_expr_real_1): Likewise.
1878
1879 2011-10-18  Dodji Seketeli  <dodji@redhat.com>
1880
1881         PR bootstrap/50760
1882         * input.c (dump_line_table_statistics): Use long, not size_t.
1883
1884 2011-10-17  Eric Botcazou  <ebotcazou@adacore.com>
1885
1886         * config/sparc/sparc.md (in_call_delay): Fix formatting issues.
1887
1888 2011-10-17  Simon Baldwin  <simonb@google.com>
1889             Ian Lance Taylor  <iant@google.com>
1890
1891         * configure.ac: Add --with-native-system-header-dir.  Set and
1892         substitute NATIVE_SYSTEM_HEADER_DIR.  Use native_system_header
1893         when setting target_header_dir.
1894         * config.gcc: Always set native_system_header_dir.
1895         (*-*-gnu*): Set native_system_header_dir.  Don't use t-gnu.
1896         (i[34567]86-pc-msdosdjgpp*): Set native_system_header_dir.  Don't
1897         use i386/t-djgpp.
1898         (i[34567]86-*-mingw* | x86_64-*-mingw*): Set
1899         native_system_header_dir.
1900         (spu-*-elf*): Set native_system_header_dir.
1901         * Makefile.in (NATIVE_SYSTEM_HEADER_DIR): Set to
1902         @NATIVE_SYSTEM_HEADER_DIR@.
1903         (PREPROCESSOR_DEFINES): Define NATIVE_SYSTEM_HEADER_DIR.
1904         * cppdefault.c (STANDARD_INCLUDE_DIR): Don't define.
1905         (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
1906         STANDARD_INCLUDE_COMPONENT.
1907         (cpp_include_defaults): Don't use SYSTEM_INCLUDE_DIR.  Rename
1908         STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
1909         * system.h: Poison SYSTEM_INCLUDE_DIR, STANDARD_INCLUDE_DIR, and
1910         STANDARD_INCLUDE_COMPONENT.
1911         * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Remove.
1912         * config/i386/t-mingw-w32: Likewise.
1913         * config/i386/t-mingw-w64: Likewise.
1914         * config/spu/t-spu-elf: Likewise.
1915         * config/i386/t-djgpp: Remove.
1916         * config/t-gnu: Remove.
1917         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Don't define.
1918         (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
1919         STANDARD_INCLUDE_COMPONENT.
1920         * config/i386/djgpp.h (STANDARD_INCLUDE_DIR): Don't define.
1921         * config/spu/spu-elf.h: Likewise.
1922         * config/vms/xm-vms.h: Likewise.
1923         * config/gnu.h: Likewise.
1924         * config/openbsd.h (INCLUDE_DEFAULTS): Change STANDARD_INCLUDE_DIR
1925         and STANDARD_INCLUDE_COMPONENT to NATIVE_SYSTEM_HEADER_DIR and
1926         NATIVE_SYSTME_HEADER_COMPONENT.
1927         * doc/install.texi (Configuration): Document
1928         --with-native-system-header-dir.  Mention it in the documentation
1929         for --with-sysroot and --with-build-sysroot.
1930         * doc/tm.texi.in (Driver): Don't document SYSTEM_INCLUDE_DIR or
1931         STANDARD_INCLUDE_DIR.  Rename STANDARD_INCLUDE_COMPONENT to
1932         NATIVE_SYSTEM_HEADER_COMPONENT.  Rename uses of
1933         STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
1934         * doc/fragments.texi (Target Fragment): Don't document
1935         NATIVE_SYSTEM_HEADER_DIR.
1936         * configure, doc/tm.texi: Rebuild.
1937
1938 2011-10-17  Richard Henderson  <rth@redhat.com>
1939
1940         * config/sparc/sparc.md: Use register_or_zero_operand where rJ
1941         is the constraint.
1942
1943         * config/sparc/sparc.md (vec_perm_constv8qi, vec_perm<mode>): New
1944         patterns.
1945         * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): New function.
1946         * config/sparc/sparc-protos.h (sparc_expand_vec_perm_bmask): Declare.
1947
1948 2011-10-17  David S. Miller  <davem@davemloft.net>
1949
1950         * config/sparc/sparc-modes.def: Add single entry vector modes for
1951         DImode and SImode.
1952         * config/sparc/sparc.md (V32, V32I, V64, V64I, V64N8): Delete
1953         mode iterators.
1954         (mov<V32:mode>): Revert back to plain SFmode pattern.
1955         (*movsf_insn): Likewise.
1956         (mov<V64:mode>): Revert back to plain DFmode pattern.
1957         (*movdf_insn_sp32): Likewise.
1958         (*movdf_insn_sp32_v9): Likewise.
1959         (*movdf_insn_sp64): Likewise.
1960         (V64 mode splitters) Likewise.
1961         (addsi3): Remove VIS alternatives.
1962         (subsi3): Likewise.
1963         (and<V64I:mode>3): Revert to DImode only pattern.
1964         (and<V64I:mode>3_sp32): Likewise.
1965         (*and<V64I:mode>3_sp64): Likewise.
1966         (and<V32I:mode>3): Likewise.
1967         (*and_not_<V64I:mode>_sp32): Likewise.
1968         (*and_not_<V64I:mode>_sp64): Likewise.
1969         (*and_not_<V32I:mode>): Likewise.
1970         (ior<V64I:mode>3): Likewise.
1971         (*ior<V64I:mode>3_sp32): Likewise.
1972         (*ior<V64I:mode>3_sp64): Likewise.
1973         (ior<V32I:mode>3): Likewise.
1974         (*or_not_<V64I:mode>_sp32): Likewise.
1975         (*or_not_<V64I:mode>_sp64): Likewise.
1976         (*or_not_<V32I:mode>): Likewise.
1977         (xor<V64I:mode>3): Likewise.
1978         (*xor<V64I:mode>3_sp32): Likewise.
1979         (*xor<V64I:mode>3_sp64): Likewise.
1980         (xor<V32I:mode>3): Likewise.
1981         (V64I mode splitters): Likewise.
1982         (*xor_not_<V64I:mode>_sp32): Likewise.
1983         (*xor_not_<V64I:mode>_sp64): Likewise.
1984         (*xor_not_<V32I:mode>): Likewise.
1985         (one_cmpl<V64I:mode>2): Likewise.
1986         (*one_cmpl<V64I:mode>2_sp32): Likewise.
1987         (*one_cmpl<V64I:mode>2_sp64): Likewise.
1988         (one_cmpl<V32I:mode>2): Likewise.
1989         (VM32, VM64, VMALL): New mode iterators.
1990         (vbits, vconstr, vfptype): New mode attributes.
1991         (mov<VMALL:mode>): New expander.
1992         (*mov<VM32:mode>_insn): New insn.
1993         (*mov<VM64:mode>_insn_sp64): New insn.
1994         (*mov<VM64:mode>_insn_sp32): New insn, and associated splitter
1995         specifically for the register to memory case.
1996         (vec_init<mode>): New expander.
1997         (VADDSUB): New mode iterator.
1998         (<plusminus_insn>v2si3, <plusminus_insn>v2hi3): Remove and replace
1999         with...
2000         (<plusminus_insn><mode>3): New consolidated pattern.
2001         (VL): New mode iterator for logical operations.
2002         (vlsuf): New more attribute.
2003         (vlop): New code iterator.
2004         (vlinsn, vlninsn): New code attributes.
2005         (<code><mode>3): New insn to non-negated vector logical ops.
2006         (*not_<code><mode>3): Likewise for negated variants.
2007         (*nand<mode>_vis): New insn.
2008         (vlnotop): New code iterator.
2009         (*<code>_not1<mode>_vis, *<code>_not2<mode>_vis): New insns.
2010         (one_cmpl<mode>2): New insn.
2011         (faligndata<V64I:mode>_vis): Rewrite to use VM64 iterator.
2012         (bshuffle<VM64:mode>_vis): Likewise.
2013         (v<vis3_shift_patname><mode>3): Use GCM mode iterator.
2014         (fp<plusminus_insn>64_vis): Use V1DI mode.
2015         (VASS mode iterator): Use V1SI not SI mode.
2016         * config/sparc/sparc.c (sparc_vis_init_builtins): Account for
2017         single-entry vector mode changes.
2018         (sparc_expand_builtin): Likewise.
2019         (sparc_expand_vector_init): New function.
2020         * config/sparc/sparc-protos.h (sparc_expand_vector_init): Declare.
2021
2022 2011-10-17  Kai Tietz  <ktietz@redhat.com>
2023
2024         * fold-const.c (simple_operand_p_2): New function.
2025         (fold_truthop): Rename to
2026         (fold_truth_andor_1): function name.
2027         Additionally remove branching creation for logical and/or.
2028         (fold_truth_andor): Handle branching creation for logical and/or here.
2029
2030 2011-10-17  Andi Kleen  <ak@linux.intel.com>
2031
2032         * ggc-page.c (USING_MADVISE): Adjust ifdef to check for USING_MMAP.
2033
2034 2011-10-17  Georg-Johann Lay  <avr@gjlay.de>
2035
2036         * config/avr/avr.h (ASSEMBLER_DIALECT): Remove.
2037         * config/avr/avr.md (mcu_have_movw, mcu_mega): Remove attributes.
2038         (adjust_len): Add alternative "call".
2039         (isa, enabled): New insn attributes.
2040         (length): Use match_test with AVR_HAVE_JMP_CALL instead of
2041         mcu_mega attribute.
2042         (*sbrx_branch<mode>): Ditto.
2043         (*sbrx_and_branch<mode>): Ditto.
2044         (*sbix_branch): Ditto.
2045         (*sbix_branch_bit7): Ditto.
2046         (*sbix_branch_tmp): Ditto.
2047         (*sbix_branch_tmp_bit7): Ditto.
2048         (jump): Ditto.
2049         (negsi2): Use attribute "isa" instead of assembler dialect.
2050         (extendhisi2): Ditto.
2051         (call_insn, call_value_insn): Set adjust_len attribute.
2052         (indirect_jump): Indent to coding rules.
2053         (call_prologue_saves): Use isa attribute instead of mcu_mega.
2054         (epilogue_restores): Ditto.  Fix setting of SP as described in the
2055         RTX pattern.
2056         (*indirect_jump): Fusion of *jcindirect_jump, *njcindirect_jump
2057         and *indirect_jump_avr6.
2058         (*tablejump): Fusion of *tablejump_rjmp and *tablejump_lib.
2059         (*jcindirect_jump, *njcindirect_jump, *indirect_jump_avr6): Remove.
2060         (*tablejump_rjmp, *tablejump_lib): Remove.
2061         * config/avr/avr.c (adjust_insn_length): Handle ADJUST_LEN_CALL.
2062
2063 2011-10-17  Paolo Carlini  <paolo.carlini@oracle.com>
2064
2065         PR c++/50757
2066         * doc/invoke.texi ([Wnonnull]): Update.
2067
2068 2011-10-17  Richard Henderson  <rth@redhat.com>
2069
2070         PR 50746
2071         * optabs.c (expand_vec_perm_expr): Fix indexing error.
2072
2073 2011-10-17  Sergio Durigan Junior  <sergiodj@redhat.com>
2074
2075         * configure.ac: Display `yes' if the SystemTap header has been found.
2076         * configure: Regenerate.
2077
2078 2011-10-08  Andi Kleen  <ak@linux.intel.com>
2079
2080         PR other/50636
2081         * config.in, configure: Regenerate.
2082         * configure.ac (madvise): Add to AC_CHECK_FUNCS.
2083         * ggc-page.c (USING_MADVISE): Add.
2084         (page_entry): Add discarded field.
2085         (alloc_page): Check for discarded pages.
2086         (release_pages): Add USING_MADVISE branch.
2087
2088 2011-10-17  Richard Guenther  <rguenther@suse.de>
2089
2090         PR tree-optimization/50729
2091         * tree-vrp.c (extract_range_from_unary_expr_1): Remove redundant test.
2092         (simplify_conversion_using_ranges): Properly test the
2093         intermediate result.
2094
2095 2011-10-15  Tom Tromey  <tromey@redhat.com>
2096             Dodji Seketeli  <dodji@redhat.com>
2097
2098         * ggc.h (ggc_round_alloc_size): Declare new public entry point.
2099         * ggc-none.c (ggc_round_alloc_size): New public stub function.
2100         * ggc-page.c (ggc_alloced_size_order_for_request): New static
2101         function.  Factorized from ggc_internal_alloc_stat.
2102         (ggc_round_alloc_size): New public function.  Uses
2103         ggc_alloced_size_order_for_request.
2104         (ggc_internal_alloc_stat): Use ggc_alloced_size_order_for_request.
2105         * ggc-zone.c (ggc_round_alloc_size): New public function extracted
2106         from ggc_internal_alloc_zone_stat.
2107         (ggc_internal_alloc_zone_stat): Use ggc_round_alloc_size.
2108         * toplev.c (general_init): Initialize
2109         line_table->alloced_size_for_request.
2110
2111 2011-10-15  Tom Tromey  <tromey@redhat.com>
2112             Dodji Seketeli  <dodji@redhat.com>
2113
2114         * input.c (ONE_K, ONE_M, SCALE, STAT_LABEL, FORMAT_AMOUNT): New macros.
2115         (num_expanded_macros_counter, num_macro_tokens_counter): Declare
2116         new counters.
2117         (dump_line_table_statistics): Define new function.
2118         * input.h (dump_line_table_statistics): Declare new function.
2119         * toplev.c (dump_memory_report): Call dump_line_table_statistics.
2120
2121 2011-10-15  Tom Tromey  <tromey@redhat.com>
2122             Dodji Seketeli  <dodji@redhat.com>
2123
2124         * doc/cppopts.texi: Document -fdebug-cpp.
2125         * doc/invoke.texi: Add -fdebug-cpp to the list of preprocessor options.
2126
2127 2011-10-15  Tom Tromey  <tromey@redhat.com>
2128             Dodji Seketeli  <dodji@redhat.com>
2129
2130         * gcc/diagnostic.h (diagnostic_report_current_module): Add a
2131         location parameter.
2132         * diagnostic.c (diagnostic_report_current_module): Add a location
2133         parameter to the function definition.  Use it instead of
2134         input_location.  Resolve the virtual location rather than just
2135         looking up its map and risking to touch a resulting macro map.
2136         (default_diagnostic_starter): Pass the relevant diagnostic
2137         location to diagnostic_report_current_module.
2138         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): New.
2139         (virt_loc_aware_diagnostic_finalizer): Likewise.
2140         (diagnostic_report_current_function): Pass the
2141         relevant location to diagnostic_report_current_module.
2142         * tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Declare
2143         new function.
2144         * toplev.c (general_init): By default, use the new
2145         virt_loc_aware_diagnostic_finalizer as diagnostic finalizer.
2146         * Makefile.in: Add vec.h dependency to tree-diagnostic.c.
2147
2148 2011-10-15  Tom Tromey  <tromey@redhat.com>
2149             Dodji Seketeli  <dodji@redhat.com>
2150
2151         * doc/cppopts.texi (-ftrack-macro-expansion): Document new option.
2152         * doc/invoke.texi (-ftrack-macro-expansion): Add this to the list of
2153         preprocessor related options.
2154
2155 2011-10-15  Tom Tromey  <tromey@redhat>
2156             Dodji Seketeli  <dodji@redhat.com>
2157
2158         * input.h (struct expanded_location): Move to libcpp/line-map.h.
2159         (LOCATION_COLUMN): New accessor
2160         (in_system_header_at): Use linemap_location_in_system_header_p.
2161         * diagnostic.c (diagnostic_report_current_module): Adjust to avoid
2162         touching the internals of struct line_map.  Use the public API instead.
2163         (diagnostic_report_diagnostic): Don't use relational operator '<'
2164         on virtual locations.  Use linemap_location_before_p instead.
2165         * input.c (expand_location): Adjust to expand to the tokens'
2166         spelling location when macro location tracking is on.
2167
2168
2169 2011-10-08  Andi Kleen  <ak@linux.intel.com>
2170
2171         * ggc-page.c (GGC_QUIRE_SIZE): Increase to 512
2172
2173 2011-10-13  Andi Kleen  <ak@linux.intel.com>
2174
2175         * toplev.c (compile_file): Rename __gnu_slim_lto to __gnu_lto_slim.
2176
2177 2011-10-16  Ira Rosen  <ira.rosen@linaro.org>
2178
2179         PR tree-optimization/50727
2180         * tree-vect-patterns.c (vect_operation_fits_smaller_type): Add
2181         DEF_STMT to the list of statements to be replaced by the
2182         pattern statements.
2183
2184 2011-10-16  Eric Botcazou  <ebotcazou@adacore.com>
2185
2186         PR rtl-optimization/50615
2187         * combine.c (distribute_notes) <REG_ARGS_SIZE>: Skip if I3 is a no-op.
2188
2189 2011-10-16  Jakub Jelinek  <jakub@redhat.com>
2190
2191         PR tree-optimization/50596
2192         * tree-vectorizer.h (NUM_PATTERNS): Increase to 7.
2193         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
2194         vect_recog_bool_pattern.
2195         (check_bool_pattern, adjust_bool_pattern_cast,
2196         adjust_bool_pattern, vect_recog_bool_pattern): New functions.
2197
2198 2011-10-16  Ira Rosen  <ira.rosen@linaro.org>
2199
2200         * tree-vect-stmts.c (vectorizable_load): For SLP without permutation
2201         treat the first load of the node as the first element in its
2202         interleaving chain.
2203         * tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the operands if
2204         necessary and possible.
2205         (vect_build_slp_tree): Add new argument.  Allow load groups of any size
2206         in basic blocks.  Keep all the loads for further permutation check.
2207         Use the new argument to determine if there is a permutation.  Update
2208         the recursive calls.
2209         (vect_supported_load_permutation_p): Allow subchains of interleaving
2210         chains in basic block vectorization.
2211         (vect_analyze_slp_instance): Update the call to vect_build_slp_tree.
2212         Check load permutation based on the new parameter.
2213         (vect_schedule_slp_instance): Don't start from the first element in
2214         interleaving chain unless the loads are permuted.
2215
2216 2011-10-15  Jan Hubicka  <jh@suse.cz>
2217
2218         PR target/48668
2219         PR target/50689
2220         * cgraphunit.c (cgraph_expand_function): Expand thunks and alises
2221         after function body.
2222
2223 2011-10-15  Richard Henderson  <rth@redhat.com>
2224
2225         * tree-vect-slp.c: Include langhooks.h.
2226         (vect_create_mask_and_perm): Emit VEC_PERM_EXPR, not a builtin.
2227         (vect_transform_slp_perm_load): Use can_vec_perm_expr_p.  Simplify
2228         mask creation for VEC_PERM_EXPR.
2229         * tree-vect-stmts.c (perm_mask_for_reverse): Return the mask,
2230         not the builtin.
2231         (reverse_vec_elements): Emit VEC_PERM_EXPR not a builtin.
2232         * Makefile.in (tree-vect-slp.o): Update dependency.
2233         * optabs.c (can_vec_perm_expr_p): Allow NULL as unknown constant.
2234
2235 2011-10-15  Alan Modra  <amodra@gmail.com>
2236
2237         PR bootstrap/50738
2238         * ifcvt.c (dead_or_predicable): Revert accidental commit with
2239         HAVE_simple_return test.
2240
2241 2011-10-15  Alan Modra  <amodra@gmail.com>
2242
2243         * ifcvt.c (dead_or_predicable): Disable if-conversion when
2244         doing so is likely to kill a shrink-wrapping opportunity.
2245
2246         PR rtl-optimization/49941
2247         * jump.c (mark_jump_label_1): Set JUMP_LABEL for simple_return jumps.
2248
2249         * rtl.h (set_return_jump_label): Declare.
2250         * function.c (set_return_jump_label): New function, extracted..
2251         (thread_prologue_and_epilogue_insns): ..from here.  Use it in
2252         another instance to set return jump_label.
2253         * cfgrtl.c (force_nonfallthru_and_redirect): Use set_return_jump_label.
2254         * reorg.c (find_end_label): Likewise.
2255
2256 2011-10-14  David S. Miller  <davem@davemloft.net>
2257
2258         * config/sparc/sol2.h: Protect -m{cpu,tune}=native handling
2259         with a more complete cpp test.
2260         * config/sparc/linux64.h: Likewise.
2261         * config/sparc/linux.h: Likewise.
2262         * config/sparc/sparc.opt (sparc_debug): New target variable.
2263         (mdebug): New target option.
2264         * config/sparc/sparc.h (MASK_DEBUG_OPTIONS, MASK_DEBUG_ALL,
2265         TARGET_DEBUG_OPTIONS): New defines.
2266         * config/sparc/sparc.c (debug_target_flag_bits,
2267         debug_target_flags): New functions.
2268         (sparc_option_override): Add name strings back to cpu_table[].
2269         Parse -mdebug string.  When TARGET_DEBUG_OPTIONS is true, print
2270         out the target flags before and after override processing as well
2271         as the selected cpu.  If MASK_V8PLUS, make sure that the selected
2272         cpu is at least v9.
2273
2274 2011-10-15  Oleg Endo  <oleg.endo@t-online.de>
2275
2276         PR target/49263
2277         * config/sh/sh.h (ZERO_EXTRACT_ANDMASK): New macro.
2278         * config/sh/sh.c (sh_rtx_costs): Add test instruction case.
2279         * config/sh/sh.md (tstsi_t): Name existing insn.  Make inner
2280         and instruction commutative.
2281         (tsthi_t, tstqi_t, tstqi_t_zero, tstsi_t_and_not,
2282         tstsi_t_zero_extract_eq, tstsi_t_zero_extract_xor,
2283         tstsi_t_zero_extract_subreg_xor_little,
2284         tstsi_t_zero_extract_subreg_xor_big): New insns.
2285         (*movsicc_t_false, *movsicc_t_true): Replace space with tab in
2286         asm output.
2287         (*andsi_compact): Reorder alternatives so that K08 is considered first.
2288
2289 2011-10-14  Eric Botcazou  <ebotcazou@adacore.com>
2290
2291         PR target/50354
2292         * config/sparc/linux64.h (TARGET_DEFAULT): Only override if the default
2293         processor is at least V9 and TARGET_64BIT_DEFAULT is defined.
2294
2295 2011-10-14  Gerald Pfeifer  <gerald@pfeifer.com>
2296
2297         * invoke.texi (AVR Options): Avoid \leq{}.
2298
2299 2011-10-14  Kai Tietz  <ktietz@redhat.com>
2300
2301         * gimplify.c (gimplify_expr): Take care that for bitwise-binary
2302         transformation the operands have compatible types.
2303
2304 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
2305
2306         * config/i386/sse.md (vec_widen_smult_hi_v8hi,
2307         vec_widen_smult_lo_v8hi, vec_widen_umult_hi_v8hi,
2308         vec_widen_umult_lo_v8hi): Macroize using VI2_AVX2
2309         mode iterator and any_extend code iterator.
2310         (vec_widen_<s>mult_hi_v8si, vec_widen_<s>mult_lo_v8si): New expanders.
2311         (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si): Enable
2312         also for TARGET_SSE4_1 using pmuldq insn.
2313         (sdot_prodv8hi): Macroize using VI2_AVX2 iterator.
2314         (sse2_sse4_1): New code attr.
2315         (udot_prodv4si): Macroize using any_extend code iterator.
2316         (<s>dot_prodv8si): New expander.
2317
2318 2011-10-14  Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
2319
2320         * config/i386/i386.c (atom_cost): Changed cost for loading
2321         QImode using movzbl.
2322
2323 2011-10-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
2324
2325         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo in my
2326         change on October 11th, 2011.
2327
2328 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
2329
2330         * config/i386/sse.md (vec_interleave_high<mode>,
2331         vec_interleave_low<mode>): Add AVX2 expanders for VI_256 modes.
2332         * config/i386/i386.c (expand_vec_perm_interleave3): New function.
2333         (ix86_expand_vec_perm_builtin_1): Call it.
2334
2335 2011-10-14  Georg-Johann Lay  <avr@gjlay.de>
2336
2337         Fix thinko from r179765
2338         * config/avr/avr.c (avr_option_override): Don't override
2339         flag_omit_frame_pointer if not actually needed.
2340
2341 2011-10-14  Georg-Johann Lay  <avr@gjlay.de>
2342
2343         PR target/46278
2344         * doc/invoke.texi (AVR Options): Document -mstrict-X.
2345
2346         * config/avr/avr.opt (-mstrict-X): New option.
2347         (avr_strict_X): New variable reflecting -mstrict-X.
2348         * config/avr/avr.c (avr_reg_ok_for_addr_p): Add parameter
2349         outer_code and pass it down to avr_regno_mode_code_ok_for_base_p.
2350         (avr_legitimate_address_p): Pass outer_code to
2351         avr_reg_ok_for_addr_p and use that function in case PLUS.
2352         (avr_mode_code_base_reg_class): Depend on avr_strict_X.
2353         (avr_regno_mode_code_ok_for_base_p): Ditto, and depend on outer_code.
2354         (avr_option_override): Disable -fcaller-saves if -mstrict-X is on.
2355
2356 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
2357
2358         * config/i386/sse.md (neg<mode>2): Use VI_AVX2 iterator instead
2359         of VI_128.
2360
2361         * config/i386/sse.md (mulv2di3): Macroize using VI8_AVX2 iterator.
2362         (ashl<mode>3): Use VI248_AVX2 iterator instead of VI248_128.
2363         Use <sseinsnmode> instead of TI in mode attr.
2364
2365 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
2366
2367         * config/arm/linux-atomic-64bit.c: New (based on linux-atomic.c).
2368         * config/arm/linux-atomic.c: Change comment to point to 64bit version.
2369         (SYNC_LOCK_RELEASE): Instantiate 64bit version.
2370         * config/arm/t-linux-eabi: Pull in linux-atomic-64bit.c.
2371
2372 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
2373
2374         * config/arm/arm.c (arm_output_ldrex): Support ldrexd.
2375         (arm_output_strex): Support strexd.
2376         (arm_output_it): New helper to output it in Thumb2 mode only.
2377         (arm_output_sync_loop): Support DI mode.  Change comment to
2378         not support const_int.
2379         (arm_expand_sync): Support DI mode.
2380         * config/arm/arm.h (TARGET_HAVE_LDREXBHD): Split into LDREXBH
2381         and LDREXD.
2382         * config/arm/iterators.md (NARROW): move from sync.md.
2383         (QHSD): New iterator for all current ARM integer modes.
2384         (SIDI): New iterator for SI and DI modes only.
2385         * config/arm/sync.md (sync_predtab): New mode_attr.
2386         (sync_compare_and_swapsi): Fold into sync_compare_and_swap<mode>.
2387         (sync_lock_test_and_setsi): Fold into sync_lock_test_and_setsi<mode>.
2388         (sync_<sync_optab>si): Fold into sync_<sync_optab><mode>.
2389         (sync_nandsi): Fold into sync_nand<mode>.
2390         (sync_new_<sync_optab>si): Fold into sync_new_<sync_optab><mode>.
2391         (sync_new_nandsi): Fold into sync_new_nand<mode>.
2392         (sync_old_<sync_optab>si): Fold into sync_old_<sync_optab><mode>.
2393         (sync_old_nandsi): Fold into sync_old_nand<mode>.
2394         (sync_compare_and_swap<mode>): Support SI & DI.
2395         (sync_lock_test_and_set<mode>): Likewise.
2396         (sync_<sync_optab><mode>): Likewise.
2397         (sync_nand<mode>): Likewise.
2398         (sync_new_<sync_optab><mode>): Likewise.
2399         (sync_new_nand<mode>): Likewise.
2400         (sync_old_<sync_optab><mode>): Likewise.
2401         (sync_old_nand<mode>): Likewise.
2402         (arm_sync_compare_and_swapsi): Turn into iterator on SI & DI.
2403         (arm_sync_lock_test_and_setsi): Likewise.
2404         (arm_sync_new_<sync_optab>si): Likewise.
2405         (arm_sync_new_nandsi): Likewise.
2406         (arm_sync_old_<sync_optab>si): Likewise.
2407         (arm_sync_old_nandsi): Likewise.
2408         (arm_sync_compare_and_swap<mode> NARROW): use sync_predtab, fix indent.
2409         (arm_sync_lock_test_and_setsi<mode> NARROW): Likewise.
2410         (arm_sync_new_<sync_optab><mode> NARROW): Likewise.
2411         (arm_sync_new_nand<mode> NARROW): Likewise.
2412         (arm_sync_old_<sync_optab><mode> NARROW): Likewise.
2413         (arm_sync_old_nand<mode> NARROW): Likewise.
2414
2415 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
2416
2417         PR target/48126
2418         * config/arm/arm.c (arm_output_sync_loop): Move label before barrier.
2419
2420 2011-10-14  David Alan Gilbert  <david.gilbert@linaro.org>
2421
2422         * config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1.
2423
2424 2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
2425
2426         * doc/invoke.texi ([Wformat-zero-length]): Tidy.
2427
2428 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
2429
2430         * gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr also
2431         on COND_EXPR/VEC_COND_EXPR comparison operands if they are ADDR_EXPRs.
2432
2433 2011-10-14  Richard Guenther  <rguenther@suse.de>
2434
2435         PR tree-optimization/50723
2436         * ipa-split.c (split_function): Use GSI_CONTINUE_LINKING.
2437
2438 2011-10-14  Nicola Pero  <nicola.pero@meta-innovation.com>
2439
2440         * gengtype.c (files_rules): Added rules for objc/objc-map.h and
2441         objc/objc-map.c.
2442
2443 2011-10-14  Paolo Carlini  <paolo.carlini@oracle.com>
2444
2445         PR c++/17212
2446         * doc/invoke.texi ([Wformat-zero-length]): Update.
2447
2448 2011-10-14  Iain Sandoe  <iains@gcc.gnu.org>
2449
2450         PR bootstrap/50699
2451         * config/darwin.c (darwin_patch_builtin): Adjust argument type. Only
2452         build for powerpc targets.  (darwin_patch_builtins): Only build for
2453         powerpc targets.
2454
2455 2011-10-14  Jakub Jelinek  <jakub@redhat.com>
2456
2457         * config/i386/sse.md (*avx_cvtdq2pd256_2): Rename to...
2458         (avx_cvtdq2pd256_2): ... this.
2459         (sseunpackfltmode): New mode attr.
2460         (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi,
2461         vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): Macroize
2462         using VI2_AVX2 iterator.
2463         (vec_unpacku_float_hi_v8si, vec_unpacku_float_lo_v8si): New expanders.
2464
2465 2011-10-13  David S. Miller  <davem@davemloft.net>
2466
2467         * config/sparc/sparc.md (plusminus): New code iterator.
2468         (plusminus_insn): New code attr.
2469         (addv2si3, subv2si3, addv4hi3, subv4hi3, addv2hi3, subv2hi3): Merge
2470         using plusminus and plusminus_insn.
2471         (fpadd64_vis, fpsub64_vis): Likewise.
2472
2473 2011-10-13  Richard Henderson  <rth@redhat.com>
2474
2475         * doc/md.texi (vec_perm): Document fallback to byte permutation.
2476         * genopinit.c (optabs): Add vec_perm_const.
2477         * optabs.c (can_vec_perm_expr_p): Rename from expand_vec_perm_expr_p.
2478         Reject non-vector modes.  Allow fallback to byte permutation.
2479         (expand_vec_perm_expr_1): Split out from ...
2480         (expand_vec_perm_expr): ... here.  Allow fallback to byte permutation.
2481         * optabs.h (DOI_vec_perm_const, vec_perm_const_optab): New.
2482         * tree-vect-generic.c (lower_vec_perm): Update for name change.
2483
2484 2011-10-13  Richard Henderson  <rth@redhat.com>
2485
2486         * config/rs6000/altivec.md (vec_permv16qi): New pattern.
2487
2488         * config/rs6000/spu.md (vec_permv16qi): New pattern.
2489
2490         * config/i386/i386.c (ix86_expand_vec_perm_const): New.
2491         * config/i386/i386-protos.h: Update.
2492         * config/i386/sse.md (VEC_PERM_CONST): New mode iterator.
2493         (vec_perm_const<VEC_PERM_CONST>): New expander.
2494
2495         * optabs.c (expand_vector_broadcast): New.
2496         (expand_binop): Expand scalar shifts of vectors to vector shifts
2497         of vectors, if the former isn't supported.
2498         * tree-vect-generic.c (expand_vector_operations_1): Don't do that
2499         here; always simplify to scalar shift of vector if possible.
2500
2501         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix mode
2502         test for vector splat.
2503
2504 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
2505
2506         * config/i386/sse.md (vec_set<mode>): Change V_128 iterator mode to V.
2507
2508 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
2509             Richard Guenther  <rguenther@suse.de>
2510
2511         * tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE from vector
2512         or complex vars even if their DECL_UID is in not_reg_needs bitmap.
2513
2514 2011-10-13  Jakub Jelinek  <jakub@redhat.com>
2515
2516         * config/i386/sse.md (reduc_umin_v8hi): New pattern.
2517         * config/i386/i386.c (ix86_build_const_vector): Handle
2518         also V32QI, V16QI, V16HI and V8HI modes.
2519         (emit_reduc_half): New function.
2520         (ix86_expand_reduc): Use phminposuw insn for V8HImode UMIN.
2521         Use emit_reduc_half helper function.
2522
2523 2011-10-13  Lawrence Crowl  <crowl@google.com>
2524             Diego Novillo  <dnovillo@google.com>
2525
2526         * lto-streamer-in.c (input_struct_function_base): Factor out of ...
2527         (input_function): ... here.
2528         * lto-streamer-out.c (output_struct_function_base): Factor out of ...
2529         (output_function): ... here.
2530
2531 2011-10-13  Gabriel Charette  <gchare@google.com>
2532             Diego Novillo  <dnovillo@google.com>
2533
2534         * streamer-hooks.h (struct streamer_hooks): Add hooks
2535         input_location and output_location.
2536         * lto-streamer-in.c (lto_input_location): Use
2537         streamer_hooks.input_location, if set.
2538         * lto-streamer-out.c (lto_output_location): Use
2539         streamer_hooks.output_location, if set.
2540
2541 2011-10-13  Eric Botcazou  <ebotcazou@adacore.com>
2542
2543         * doc/invoke.texi (SPARC options): Document -mfix-at697f.
2544         * config/sparc/sparc.opt (mfix-at697f): New option.
2545         * config/sparc/sparc.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
2546         (sparc_reorg): New function.
2547
2548 2011-10-13  Richard Guenther  <rguenther@suse.de>
2549
2550         PR tree-optimization/50712
2551         * ipa-split.c (split_function): Always re-gimplify parameters
2552         when they are not gimple vals before passing them.  Properly
2553         check for type compatibility.
2554
2555 2011-10-13  Tom de Vries  <tom@codesourcery.com>
2556
2557         * function.c (gimplify_parameters): Set number of arguments of call to
2558         BUILT_IN_ALLOCA_WITH_ALIGN to 2.
2559
2560 2011-10-13  Tom de Vries  <tom@codesourcery.com>
2561
2562         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_READONLY_P
2563         for static const strings.
2564         * varasm.c (build_constant_desc): Generate the memory location of the
2565         constant using gen_const_mem.
2566
2567 2011-10-13  Richard Guenther  <rguenther@suse.de>
2568
2569         PR tree-optimization/50698
2570         * tree-data-ref.c (split_constant_offset_1): Also process
2571         offsets of &MEM.
2572
2573 2011-10-12  David S. Miller  <davem@davemloft.net>
2574
2575         * config/sparc/sparc.md (UNSPEC_FPMERGE): Delete.
2576         (UNSPEC_MUL16AU, UNSPEC_MUL8, UNSPEC_MUL8SU, UNSPEC_MULDSU): New
2577         unspecs.
2578         (fpmerge_vis): Remove inaccurate comment, represent using vec_select
2579         of a vec_concat.
2580         (vec_interleave_lowv8qi, vec_interleave_highv8qi): New insns.
2581         (fmul8x16_vis, fmul8x16au_vis, fmul8sux16_vis, fmuld8sux16_vis):
2582         Reimplement as unspecs and remove inaccurate comments.
2583         (vis3_shift_patname): New code attr.
2584         (<vis3_shift_insn><vbits>_vis): Rename to
2585         "v<vis3_shift_patname><mode>3".
2586         (vis3_addsub_ss_patname): New code attr.
2587         (<vis3_addsub_ss_insn><vbits>_vis): Rename to
2588         "<vis3_addsub_ss_patname><mode>3".
2589         * config/sparc/sparc.c (sparc_vis_init_builtins): Update to
2590         accommodate pattern name changes.
2591
2592         * config/sparc/sparc.h: Do not force TARGET_VIS3 and TARGET_FMAF
2593         to zero when assembler lacks support for such instructions.
2594         * config/sparc/sparc.c (sparc_option_override): Clear MASK_VIS3
2595         and MASK_FMAF in defaults when assembler lacks necessary support.
2596
2597 2011-10-12  Jakub Jelinek  <jakub@redhat.com>
2598
2599         * config/i386/sse.md (vec_unpacks_lo_<mode>,
2600         vec_unpacks_hi_<mode>, vec_unpacku_lo_<mode>,
2601         vec_unpacku_hi_<mode>): Change VI124_128 mode to VI124_AVX2.
2602         * config/i386/i386.c (ix86_expand_sse_unpack): Handle
2603         V32QImode, V16HImode and V8SImode for TARGET_AVX2.
2604
2605         * config/i386/sse.md (vec_avx2): New mode_attr.
2606         (mulv16qi3): Macroize to cover also mulv32qi3 for TARGET_AVX2 into ...
2607         (mul<mode>3): ... this.
2608
2609         * config/i386/i386.md (UNSPEC_VPERMDI): Remove.
2610         * config/i386/i386.c (ix86_expand_vec_perm): Handle
2611         V16QImode and V32QImode for TARGET_AVX2.
2612         (MAX_VECT_LEN): Increase to 32.
2613         (expand_vec_perm_blend): Add support for 32-byte integer
2614         vectors with TARGET_AVX2.
2615         (valid_perm_using_mode_p): New function.
2616         (expand_vec_perm_pshufb): Add support for 32-byte integer
2617         vectors with TARGET_AVX2.
2618         (expand_vec_perm_vpshufb2_vpermq): New function.
2619         (expand_vec_perm_vpshufb2_vpermq_even_odd): New function.
2620         (expand_vec_perm_even_odd_1): Handle 32-byte integer vectors
2621         with TARGET_AVX2.
2622         (ix86_expand_vec_perm_builtin_1): Try expand_vec_perm_vpshufb2_vpermq
2623         and expand_vec_perm_vpshufb2_vpermq_even_odd.
2624         * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Add for TARGET_AVX2
2625         32-byte integer vector modes.
2626         (vec_pack_trunc_<mode>): Use VI248_AVX2 instead of VI248_128.
2627         (avx2_interleave_highv32qi, avx2_interleave_lowv32qi): Remove pasto.
2628         (avx2_pshufdv3, avx2_pshuflwv3, avx2_pshufhwv3): Generate
2629         4 new operands.
2630         (avx2_pshufd_1, avx2_pshuflw_1, avx2_pshufhw_1): Don't use
2631         match_dup, instead add 4 new operands and require they have
2632         right cross-lane values.
2633         (avx2_permv4di): Change into define_expand.
2634         (avx2_permv4di_1): New instruction.
2635         (avx2_permv2ti): Use nonimmediate_operand instead of register_operand
2636         for "xm" constrained operand.
2637         (VEC_PERM_AVX2): Add V32QI and V16QI for TARGET_AVX2.
2638
2639         * config/i386/sse.md (avx2_gathersi<mode>,
2640         avx2_gatherdi<mode>, avx2_gatherdi<mode>256): Add clobber of
2641         match_scratch, change memory_operand to register_operand,
2642         add (mem:BLK (scratch)) use.
2643         (*avx2_gathersi<mode>, *avx2_gatherdi<mode>,
2644         *avx2_gatherdi<mode>256): Add clobber of match_scratch,
2645         add earlyclobber to the output operand and match_scratch,
2646         add (mem:BLK (scratch)) use, change the other mem to match_operand.
2647         Use %p6 instead of %c6 in the pattern.
2648         * config/i386/i386.c (ix86_expand_builtin): Adjust for
2649         operand 2 being a Pmode register_operand instead of memory_operand.
2650
2651 2011-10-12  Kai Tietz  <ktietz@redhat.com>
2652
2653         * config/i386/i386.md (simple_return): Disable if TARGET_SEH is active.
2654
2655 2011-10-12  Steve Ellcey  <sje@cup.hp.com>
2656
2657         * config/ia64/ia64.c (ia64_init_builtins): Fix unbalanced parentheses.
2658
2659 2011-10-12  Richard Guenther  <rguenther@suse.de>
2660
2661         * tree-ssa-alias.c (maybe_skip_until): Cache also at the point
2662         of the first store we visit in a basic-block.
2663         (get_continuation_for_phi): Search for a candidate VUSE that
2664         might dominates all others.  Do pairwise disambiguation against
2665         that candidate.
2666
2667 2011-10-12  Paul Koning  <pkoning@gcc.gnu.org>
2668
2669         PR tree-optimization/50189
2670         * tree-vrp.c (extract_range_from_assert): Use the type of
2671         the variable, not the limit.
2672
2673 2011-10-12  Richard Guenther  <rguenther@suse.de>
2674
2675         PR tree-optimization/50700
2676         * tree-object-size.c (addr_object_size): Simplify and treat
2677         MEM_REF bases consistently.
2678
2679 2011-10-12  Bernd Schmidt  <bernds@codesourcery.com>
2680
2681         * function.c (prepare_shrink_wrap, bb_active_p): New function.
2682         (thread_prologue_and_epilogue_insns): Use bb_active_p.  Call
2683         prepare_shrink_wrap, then recompute bb_active_p for the last block.
2684
2685 2011-10-12  Joseph Myers  <joseph@codesourcery.com>
2686
2687         PR c/50565
2688         * convert.c (convert_to_integer): Do not narrow operands of
2689         pointer subtraction.
2690
2691 2011-10-12  Nick Clifton  <nickc@redhat.com>
2692
2693         * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro.  Used to
2694         emit a .eabi_attribute assembler directive, possibly with a
2695         comment attached.
2696         * config/arm/arm.c (arm_file_start): Use the new macro.
2697         * config/arm/arm-c.c (arm_output_c_attributes): Likewise.
2698
2699 2011-10-12  Georg-Johann Lay  <avr@gjlay.de>
2700
2701         PR target/49939
2702         * config/avr/avr.md (*movqi): Rename to movqi_insn.
2703         (*call_insn): Rename to call_insn.
2704         (*call_value_insn): Rename to call_value_insn.
2705         * config/avr/avr.c (avr_2word_insn_p): New static function.
2706         (jump_over_one_insn_p): Use it.
2707
2708 2011-10-12  Richard Sandiford  <richard.sandiford@linaro.org>
2709
2710         * expr.h (copy_blkmode_to_reg): Declare.
2711         * expr.c (copy_blkmode_to_reg): New function.
2712         (expand_assignment): Don't expand register RESULT_DECLs before
2713         the lhs.  Use copy_blkmode_to_reg to copy BLKmode values into a
2714         RESULT_DECL register.
2715         (expand_expr_real_1): Handle BLKmode decls when looking for promotion.
2716         * stmt.c (expand_return): Move BLKmode-to-register code into
2717         copy_blkmode_to_reg.
2718
2719 2011-10-11  Eric Botcazou  <ebotcazou@adacore.com>
2720
2721         PR target/49965
2722         * config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code.
2723         (mov<F:mode>cc): Likewise.
2724
2725 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2726
2727         * tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP.
2728
2729 2011-10-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
2730
2731         * tree.h (built_in_decls): Delete old interface with two parallel
2732         arrays to hold standard builtin declarations, and replace it with
2733         a function based interface that can support creating builtins on
2734         the fly in the future.  Change all uses, and poison the old
2735         names.  Make sure 0 is not a legitimate builtin index.
2736         (implicit_built_in_decls): Ditto.
2737         (built_in_info): Ditto.
2738         (BUILTIN_VALID_P): Ditto.
2739         (builtin_decl_explicit): Ditto.
2740         (builtin_decl_implicit): Ditto.
2741         (set_builtin_decl): Ditto.
2742         (set_builtin_decl_implicit_p): Ditto.
2743         (builtin_decl_explicit_p): Ditto.
2744         (builtin_decl_implicit_p): Ditto.
2745         * tree-complex.c (expand_complex_libcall): Ditto.
2746         * tree-loop-distribution.c (generate_memset_zero): Ditto.
2747         * tree-ssa-strlen.c (get_string_length): Ditto.
2748         (handle_builtin_strcpy): Ditto.
2749         (handle_builtin_strcat): Ditto.
2750         * tree.c (iterative_hash_expr): Ditto.
2751         (local_define_builtin): Ditto.
2752         (build_common_builtin_nodes): Ditto.
2753         * builtins.c (built_in_decls): Ditto.
2754         (implicit_built_in_decls): Ditto.
2755         (built_in_info): Ditto
2756         (expand_builtin_classify_type): Ditto.
2757         (mathfn_built_in_1): Ditto.
2758         (expand_builtin_cexpi): Ditto.
2759         (expand_builtin_mempcpy_args): Ditto.
2760         (expand_builtin_stpcpy): Ditto.
2761         (gimplify_va_arg_expr): Ditto.
2762         (expand_builtin_sync_operation): Ditto.
2763         (build_builtin_expect_predicate): Ditto.
2764         (fold_builtin_memory_op): Ditto.
2765         (fold_builtin_strcpy): Ditto.
2766         (fold_builtin_stpcpy): Ditto.
2767         (fold_builtin_strncpy): Ditto.
2768         (fold_builtin_interclass_mathfn): Ditto.
2769         (fold_builtin_classify): Ditto.
2770         (fold_builtin_2): Ditto.
2771         (fold_builtin_strstr): Ditto.
2772         (fold_builtin_strrchr): Ditto.
2773         (fold_builtin_strpbrk): Ditto.
2774         (fold_builtin_strcat): Ditto.
2775         (fold_builtin_strncat): Ditto.
2776         (fold_builtin_strcspn): Ditto.
2777         (fold_builtin_fputs): Ditto.
2778         (fold_builtin_sprintf): Ditto.
2779         (fold_builtin_snprintf): Ditto.
2780         (expand_builtin_memory_chk): Ditto.
2781         (fold_builtin_memory_chk): Ditto.
2782         (fold_builtin_stxcpy_chk): Ditto.
2783         (fold_builtin_strncpy_chk): Ditto.
2784         (fold_builtin_strcat_chk): Ditto.
2785         (fold_builtin_strncat_chk): Ditto.
2786         (fold_builtin_sprintf_chk_1): Ditto.
2787         (fold_builtin_snprintf_chk_1): Ditto.
2788         (fold_builtin_printf): Ditto.
2789         (fold_builtin_fprintf): Ditto.
2790         (fold_call_stmt): Ditto.
2791         (set_builtin_user_assembler_name): Ditto.
2792         * tree-emutls.c (emutls_common_1): Ditto.
2793         * omp-low.c (scan_omp): Ditto.
2794         (lower_rec_input_clauses): Ditto.
2795         (lower_reduction_clauses): Ditto.
2796         (expand_parallel_call): Ditto.
2797         (expand_task_call): Ditto.
2798         (maybe_catch_exception): Ditto.
2799         (optimize_omp_library_calls): Ditto.
2800         (expand_omp_for_generic): Ditto.
2801         (expand_omp_for_static_nochunk): Ditto.
2802         (expand_omp_for_static_chunk): Ditto.
2803         (expand_omp_sections): Ditto.
2804         (expand_omp_atomic_fetch_op): Ditto.
2805         (expand_omp_atomic_pipeline): Ditto.
2806         (expand_omp_atomic_mutex): Ditto.
2807         (lower_omp_single_simple): Ditto.
2808         (lower_omp_single_copy): Ditto.
2809         (lower_omp_master): Ditto.
2810         (lower_omp_ordered): Ditto.
2811         (lower_omp_critical): Ditto.
2812         * tree-ssa-ccp.c (optimize_stdarg_builtin): Ditto.
2813         * builtins.c (DEF_BUILTIN_STUB): Ditto.
2814         (BUILT_IN_NONE): Ditto.
2815         * tree-ssa-math-opts.c (execute_optimize_bswap): Ditto.
2816         * gimple-low.c (lower_function_body): Ditto.
2817         (lower_builtin_setjmp): Ditto.
2818         * c-decl.c (merge_decls): Ditto.
2819         * tree-eh.c (lower_resx): Ditto.
2820         (lower_resx): Ditto.
2821         (lower_eh_dispatch): Ditto.
2822         * function (gimplify_parameters): Ditto.
2823         * c-typeck.c (build_function_call_vec): Ditto.
2824         * gimplify.c (build_stack_save_restore): Ditto.
2825         (gimplify_vla_decl): Ditto.
2826         (gimplify_modify_expr_to_memcpy): Ditto.
2827         (gimplify_modify_expr_to_memset): Ditto.
2828         (gimplify_variable_sized_compare): Ditto.
2829         (gimplify_function_tree): Ditto.
2830         * calls.c (emit_call_1): Ditto.
2831         * tree-ssa-forprop.c (simplify_builtin_call): Ditto.
2832         * tree-nested.c (convert_nl_goto_reference): Ditto.
2833         (convert_tramp_reference_op): Ditto.
2834         (finalize_nesting_tree_1): Ditto.
2835         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
2836         (tree_ssa_prefetch_arrays): Ditto.
2837         * tree-streamer-in.c (streamer_get_builtin_tree): Ditto.
2838         * system.h (built_in_decls): Ditto.
2839         (implicit_built_in_decls): Ditto.
2840         * tree-vect-generic.c (expand_vector_operations_1): Ditto.
2841         * config/sparc/sparc.c (sparc_gimplify_va_arg): Ditto.
2842         * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
2843         (ix86_veclibabi_svml): Ditto.
2844         (ix86_veclibabi_acml): Ditto.
2845         * config/vms/vms.c (vms_patch_builtins): Ditto.
2846         * config/ia64/ia64.c (ia64_init_builtins): Ditto.
2847         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Ditto.
2848         (rs6000_builtin_vectorized_libmass): Ditto.
2849         (rs6000_init_builtins): Ditto.
2850         * config/darwin.c (darwin_override_options): Ditto.
2851         (darwin_patch_builtin): Ditto.
2852         (darwin_rename_builtins): Ditto.
2853         * config/pa/pa.c (pa_init_builtins): Ditto.
2854
2855 2011-10-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2856
2857         * tree.h (copy_ref_info): Expose existing function.
2858         * tree-ssa-loop-ivopts.c (copy_ref_info): Move function to...
2859         * tree-ssa-address.c (copy_ref_info): ...here, and remove static token.
2860
2861 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
2862
2863         * config/avr/avr-protos.h (avr_mode_code_base_reg_class): New
2864         prototype.
2865         (avr_regno_mode_code_ok_for_base_p): New prototype.
2866         * config/avr/avr.h (BASE_REG_CLASS): Remove.
2867         (REGNO_OK_FOR_BASE_P): Remove.
2868         (REG_OK_FOR_BASE_NOSTRICT_P): Remove.
2869         (REG_OK_FOR_BASE_STRICT_P): Remove.
2870         (MODE_CODE_BASE_REG_CLASS): New define.
2871         (REGNO_MODE_CODE_OK_FOR_BASE_P): New define.
2872         * config/avr/avr.c (avr_mode_code_base_reg_class): New function.
2873         (avr_regno_mode_code_ok_for_base_p): New function.
2874         (avr_reg_ok_for_addr_p): New static function.
2875         (avr_legitimate_address_p): Use it.  Beautify.
2876
2877 2011-10-11  Georg-Johann Lay  <avr@gjlay.de>
2878
2879         PR target/50447
2880         * config/avr/avr.md (cc): Add out_plus attribute alternative.
2881         (addsi3): Use it.  Adapt avr_out_plus to new prototype.  Use
2882         avr_out_plus for all CONST_INT addends.
2883         * config/avr/avr-protos.h (avr_out_plus): Change prototype.
2884         * config/avr/avr.c (notice_update_cc): Call avr_out_plus on
2885         CC_OUT_PLUS.
2886         (avr_out_plus_1): Change prototype and report effect on cc0.
2887         (avr_out_plus): Ditto.
2888         (adjust_insn_length): Adapt call to avr_out_plus to new prototype.
2889
2890 2011-10-11  H.J. Lu  <hongjiu.lu@intel.com>
2891
2892         * config/i386/i386.c (ix86_expand_special_args_builtin): Remove
2893         the extra break.
2894
2895 2011-10-11  Artjoms Sinkarovs  <artyom.shinkaroff@gmail.com>
2896
2897         * doc/invoke.texi: Document new warning.
2898         * common.opt (Wvector-operation-performance): Define new warning.
2899         * tree-vect-generic.c (expand_vector_piecewise): Warn about expanded
2900         vector operation.
2901         (exapnd_vector_parallel): Warn about expanded vector operation.
2902         (lower_vec_shuffle): Warn about expanded vector operation.
2903         * c-typeck.c (c_build_vec_perm_expr): Store correct location
2904         when creating VEC_PERM_EXPR.
2905
2906 2011-10-11  Richard Guenther  <rguenther@suse.de>
2907
2908         PR tree-optimization/50204
2909         * tree-ssa-alias.c (get_continuation_for_phi_1): Split out
2910         two argument handling from ...
2911         (get_continuation_for_phi): ... here.  Handle arbitrary number
2912         of PHI args.
2913
2914 2011-10-11  Richard Sandiford  <richard.sandiford@linaro.org>
2915
2916         * modulo-sched.c: Fix comment typo.  Mention the possibility
2917         of using scheduling windows of II+1 cycles.
2918
2919 2011-10-11  Tristan Gingold  <gingold@adacore.com>
2920
2921         * doc/invoke.texi (C Dialect Options): Document
2922         -fallow-parameterless-variadic-functions.
2923         * c-parser.c (c_parser_parms_list_declarator): Handle it.
2924
2925 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
2926
2927         * config/avr/avr.c (avr_option_override): Set flag_omit_frame_pointer
2928         to 0 if frame pointer is needed for unwinding.
2929
2930 2011-10-10  Uros Bizjak  <ubizjak@gmail.com>
2931
2932         PR bootstrap/50665
2933         * optabs.h (DOI_vec_perm): Rename from OTI_vec_perm.  Move from enum
2934         optab_index to enum direct_optab_index.
2935         (vec_perm_optab): Update.
2936
2937 2011-10-10  Anatoly Sokolov  <aesok@post.ru>
2938
2939         * config/cris/cris.c (cris_preferred_reload_class): New function.
2940         (TARGET_PREFERRED_RELOAD_CLASS): Define.
2941         * config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove.
2942
2943 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
2944
2945         * config/avr/avr.md (*tablejump_rjmp): Change insn condition to
2946         !AVR_HAVE_JMP_CALL.
2947         (*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL.
2948         (*tablejump_enh, *tablejump): Remove insns.
2949         * config/avr/libgcc.S (__tablejump__): Use RET instead of EIND +
2950         EIJMP for indirect jump.  Use LPM Z+ where available.
2951
2952 2011-10-10  Richard Henderson  <rth@redhat.com>
2953
2954         * doc/md.texi (vec_perm_const): Fix typo in cindex.
2955
2956 2011-10-10  Kirill Yukhin  <kirill.yukhin@intel.com>
2957             Yakovlev Vladimir  <vladimir.b.yakovlev@intel.com>
2958
2959         * config/i386/sse.md (fma_fnmsub_<mode>): Fix a typo.
2960
2961 2011-10-10  Richard Guenther  <rguenther@suse.de>
2962
2963         PR middle-end/50389
2964         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
2965         mark symbols for renaming.  Append the VUSE to all statements
2966         that possibly can have one.
2967
2968 2011-10-10  Richard Guenther  <rguenther@suse.de>
2969
2970         * ipa-split.c (pass_split_functions): Add verification TODOs.
2971         (pass_feedback_split_functions): Likewise.
2972
2973 2011-10-10  Richard Guenther  <rguenther@suse.de>
2974
2975         PR middle-end/50195
2976         * fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2)
2977         only when optimizing.
2978
2979 2011-10-10  Nick Clifton  <nickc@redhat.com>
2980
2981         PR middle-end/49801
2982         * compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and
2983         df_get_live_out instead of accessing the bitmaps directly.
2984         (execute_compare_elim_after_reload): Remove calls to df_set_flags,
2985         df_live_add_problem and df_analyze.
2986
2987 2011-10-10  Michael Matz  <matz@suse.de>
2988
2989         PR middle-end/50638
2990         * tree-emutls.c (gen_emutls_addr): Call add_referenced_var.
2991
2992 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
2993
2994         * modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages.
2995         (SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete.
2996         (node_sched_params): Remove first_reg_move and nreg_moves.
2997         (ps_num_consecutive_stages, extend_node_sched_params): New functions.
2998         (update_node_sched_params): Move up file.
2999         (print_node_sched_params): Print the stage.  Don't dump info related
3000         to first_reg_move and nreg_moves.
3001         (set_columns_for_row): New function.
3002         (set_columns_for_ps): Move up file and use set_columns_for_row.
3003         (schedule_reg_move): New function.
3004         (schedule_reg_moves): Call extend_node_sched_params and
3005         schedule_reg_move.  Extend size of uses bitmap.  Initialize
3006         num_consecutive_stages.  Return false if a move could not be
3007         scheduled.
3008         (apply_reg_moves): Don't emit moves here.
3009         (permute_partial_schedule): Handle register moves.
3010         (duplicate_insns_of_cycles): Remove for_prolog.  Emit moves according
3011         to the same stage-count test as ddg nodes.
3012         (generate_prolog_epilog): Update calls accordingly.
3013         (sms_schedule): Allow move-scheduling to add a new first stage.
3014
3015 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
3016
3017         * modulo-sched.c (ps_insn): Adjust comment.
3018         (ps_reg_move_info): New structure.
3019         (partial_schedule): Add reg_moves field.
3020         (SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params.
3021         (node_sched_params): Turn first_reg_move into an identifier.
3022         (ps_reg_move): New function.
3023         (ps_rtl_insn): Cope with register moves.
3024         (ps_first_note): Adjust comment and assert that the instruction
3025         isn't a register move.
3026         (node_sched_params): Replace with...
3027         (node_sched_param_vec): ...this vector.
3028         (set_node_sched_params): Adjust accordingly.
3029         (print_node_sched_params): Take a partial schedule instead of a ddg.
3030         Use ps_rtl_insn and ps_reg_move.
3031         (generate_reg_moves): Rename to...
3032         (schedule_reg_moves): ...this.  Remove rescan parameter.  Record each
3033         move in the partial schedule, but don't emit it here.  Don't perform
3034         register substitutions here either.
3035         (apply_reg_moves): New function.
3036         (duplicate_insns_of_cycles): Use register indices directly,
3037         rather than finding instructions using PREV_INSN.  Use ps_reg_move.
3038         (sms_schedule): Call schedule_reg_moves before committing to
3039         a partial schedule.   Try the next ii if the schedule fails.
3040         Use apply_reg_moves instead of generate_reg_moves.  Adjust
3041         call to print_node_sched_params.  Free node_sched_param_vec
3042         instead of node_sched_params.
3043         (create_partial_schedule): Initialize reg_moves.
3044         (free_partial_schedule): Free reg_moves.
3045
3046 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
3047
3048         * modulo-sched.c (ps_insn): Replace node field with an identifier.
3049         (SCHED_ASAP): Replace with..
3050         (NODE_ASAP): ...this macro.
3051         (SCHED_PARAMS): New macro.
3052         (SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW)
3053         (SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS.
3054         (node_sched_params): Remove asap.
3055         (ps_rtl_insn, ps_first_note): New functions.
3056         (set_node_sched_params): Use XCNEWVEC.  Don't copy across the
3057         asap values.
3058         (print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP.
3059         (generate_reg_moves): Pass ids to the SCHED_* macros.
3060         (update_node_sched_params): Take a ps insn identifier rather than
3061         a node as parameter.  Use ps_rtl_insn.
3062         (set_columns_for_ps): Update for above field and SCHED_* macro changes.
3063         (permute_partial_schedule): Use ps_rtl_insn and ps_first_note.
3064         (optimize_sc): Update for above field and SCHED_* macro changes.
3065         Update calls to try_scheduling_node_in_cycle and
3066         update_node_sched_params.
3067         (duplicate_insns_of_cycles): Adjust for above field and SCHED_*
3068         macro changes.  Use ps_rtl_insn and ps_first_note.
3069         (sms_schedule): Pass ids to the SCHED_* macros.
3070         (get_sched_window): Adjust for above field and SCHED_* macro changes.
3071         Use NODE_ASAP instead of SCHED_ASAP.
3072         (try_scheduling_node_in_cycle): Remove node parameter.  Update
3073         call to ps_add_node_check_conflicts.  Pass ids to the SCHED_* macros.
3074         (sms_schedule_by_order): Update call to try_scheduling_node_in_cycle.
3075         (ps_insert_empty_row): Adjust for above field changes.
3076         (compute_split_row): Use ids rather than nodes.
3077         (verify_partial_schedule): Adjust for above field changes.
3078         (print_partial_schedule): Use ps_rtl_insn.
3079         (create_ps_insn): Take an id rather than a node.
3080         (ps_insn_find_column): Adjust for above field changes.
3081         Use ps_rtl_insn.
3082         (ps_insn_advance_column): Adjust for above field changes.
3083         (add_node_to_ps): Remove node parameter.  Update call to
3084         create_ps_insn.
3085         (ps_has_conflicts): Use ps_rtl_insn.
3086         (ps_add_node_check_conflicts): Replace node parameter than an id.
3087
3088 2011-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
3089
3090         * modulo-sched.c (undo_replace_buff_elem): Delete.
3091         (generate_reg_moves): Don't build and return an undo list.
3092         (free_undo_replace_buff): Delete.
3093         (sms_schedule): Adjust call to generate_reg_moves.
3094         Don't call free_undo_replace_buff.
3095
3096 2011-10-10  Matthias Klose <doko@ubuntu.com>
3097
3098         * common/config/m32c: Remove empty directory.
3099
3100 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
3101
3102         * config/avr/avr.md (*mulhi3_enh): Treat squaring smarter.
3103
3104 2011-10-10  Georg-Johann Lay  <avr@gjlay.de>
3105
3106         PR target/50652
3107         * config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of
3108         atmega164a to 0x100.
3109
3110 2011-10-09  Eric Botcazou  <ebotcazou@adacore.com>
3111
3112         * tree-ssa-forwprop.c (forward_propagate_into_comparison): Do not make
3113         the replacement if the conversion to the LHS type is not useless.
3114
3115 2011-10-09  Ira Rosen  <ira.rosen@linaro.org>
3116
3117         PR tree-optimization/50635
3118         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add
3119         DEF_STMT to the list of statements to be replaced by the
3120         pattern statements.
3121         (vect_handle_widen_mult_by_const): Don't check TYPE_OUT.
3122
3123 2011-10-09  Anatoly Sokolov  <aesok@post.ru>
3124
3125         * system.h: Commit forgotten hunk in previous patch.
3126         (OUTPUT_ADDR_CONST_EXTRA): Poison.
3127
3128 2011-10-08  Nicola Pero  <nicola.pero@meta-innovation.com>
3129
3130         PR libobjc/50428
3131         * doc/objc.texi (Garbage Collection): Updated example to protect
3132         +initialize against execution in subclasses.
3133
3134 2011-10-07  Richard Henderson  <rth@redhat.com>
3135
3136         * doc/extend.texi (__builtin_shuffle): Improve the description to
3137         include the modulus of the selector.  Mention OpenCL.
3138         * doc/md.texi (vec_perm, vec_perm_const): Document named patterns.
3139
3140         * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR.
3141         * genopinit.c (optabs): Rename vshuffle to vec_perm.
3142         * c-typeck.c (c_build_vec_perm_expr): Rename from
3143         c_build_vec_shuffle_expr.  Update for name changes.
3144         * optabs.c (expand_vec_perm_expr_p): Rename from
3145         expand_vec_shuffle_expr_p.
3146         (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr.
3147         * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle.
3148         (vec_perm_optab): Rename from vshuffle_optab.
3149         * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c,
3150         c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c,
3151         tree-ssa-operands.c, tree-vect-generic.c: Update for name changes.
3152
3153         * config/i386/i386.c (ix86_expand_vec_perm): Rename from
3154         ix86_expand_vshuffle.
3155         * config/i386/i386-protos.h: Update.
3156         * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2.
3157         (vec_perm<VEC_PERM_AVX2>): Rename from vshuffle<VSHUFFLE_AVX2>.
3158
3159 2011-10-07  Richard Henderson  <rth@redhat.com>
3160
3161         * config/i386/predicates.md (avx2_pblendw_operand): New.
3162         * config/i386/sse.md (sse4_1_pblendw): Un-macroize.
3163         (avx2_pblendw, *avx2_pblendw): New expander and insn.
3164
3165 2011-10-07  Richard Henderson  <rth@redhat.com>
3166
3167         * config/i386/i386.c (bdesc_args): Update code for
3168         __builtin_ia32_palignr256.  Change type of __builtin_ia32_pslldqi256,
3169         and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT.
3170         (ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT.
3171         * config/i386/sse.md (mode iterator V16): Add V2TI.
3172         (mode iterator SSESCALARMODE): Use V2TI not V4DI.
3173         (mode attr ssse3_avx2): Add V2TI.
3174         (avx2_lshrqv4di3, avx2_lshlqv4di3): Remove.
3175
3176 2011-10-07  David S. Miller  <davem@davemloft.net>
3177
3178         PR 50655
3179         * configure.ac: Add .register directives to VIS3 test.
3180         * configure: Regenerate.
3181
3182 2011-10-07  Richard Henderson  <rth@redhat.com>
3183
3184         * config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu.
3185
3186 2011-10-07  Richard Henderson  <rth@redhat.com>
3187
3188         PR 49752
3189         * fold-const.c (fold_checksum_tree): Remove out-of-date assert.
3190
3191 2011-10-07  Andrew Stubbs  <ams@codesourcery.com>
3192
3193         * config/arm/predicates.md (shift_amount_operand): Remove constant
3194         range check.
3195         (shift_operator): Check range of constants for all shift operators.
3196
3197 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3198
3199         * config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion.
3200         Load GOT pointer for non-pic builds.
3201         (s390_load_got): Replace pic_offset_table_rtx with hardcoded r12.
3202         (s390_emit_call): Likewise.
3203
3204 2011-10-07  Tom de Vries  <tom@codesourcery.com>
3205
3206         PR middle-end/50527
3207         * tree.c (build_common_builtin_nodes): Add local_define_builtin for
3208         BUILT_IN_ALLOCA_WITH_ALIGN.  Mark that BUILT_IN_ALLOCA_WITH_ALIGN can
3209         throw.
3210         * builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN
3211         arglist.  Set align for BUILT_IN_ALLOCA_WITH_ALIGN.
3212         (expand_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
3213         (is_inexpensive_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
3214         * tree-ssa-ccp.c (evaluate_stmt): Set align for
3215         BUILT_IN_ALLOCA_WITH_ALIGN.
3216         (fold_builtin_alloca_for_var): Rename to ...
3217         (fold_builtin_alloca_with_align): Set DECL_ALIGN from 2nd
3218         BUILT_IN_ALLOCA_WITH_ALIGN argument.
3219         (ccp_fold_stmt): Try folding BUILT_IN_ALLOCA_WITH_ALIGN using
3220         fold_builtin_alloca_with_align.
3221         (optimize_stack_restore): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
3222         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using
3223         DEF_BUILTIN_STUB.
3224         * ipa-pure-const.c (special_builtin_state): Handle
3225         BUILT_IN_ALLOCA_WITH_ALIGN.
3226         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1)
3227         (call_may_clobber_ref_p_1): Same.
3228         * function.c (gimplify_parameters): Lower vla to
3229         BUILT_IN_ALLOCA_WITH_ALIGN.
3230         * gimplify.c (gimplify_vla_decl): Same.
3231         * cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
3232         * tree-mudflap.c (mf_xform_statements): Same.
3233         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
3234         (mark_all_reaching_defs_necessary_1, propagate_necessity): Same.
3235         * varasm.c (incorporeal_function_p): Same.
3236         * tree-object-size.c (alloc_object_size): Same.
3237         * gimple.c (gimple_build_call_from_tree): Same.
3238
3239 2011-10-07  Bernd Schmidt  <bernds@codesourcery.com>
3240
3241         * function.c (frame_required_for_rtx): Remove function.
3242         (requires_stack_frame_p): New arg set_up_by_prologue.  All callers
3243         changed.  Compute a set of mentioned registers and compare against
3244         the new arg rather than calling frame_required_for_rtx.
3245         (thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue
3246         reg set.  Convert the unconverted_simple_returns mechanism to store
3247         jump insns rather than their basic blocks.  Also check the
3248         orig_entry_edge destination for new blocks.
3249
3250 2011-10-07  Jakub Jelinek  <jakub@redhat.com>
3251
3252         PR tree-optimization/50650
3253         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't
3254         call vect_is_simple_cond here, instead fail if cond_expr isn't
3255         COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL
3256         for cond_expr's first operand.
3257         * tree-vect-stmts.c (vect_is_simple_cond): Static again.
3258         * tree-vectorizer.h (vect_is_simple_cond): Remove prototype.
3259
3260 2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3261
3262         * config/s390/s390.md (DWH, dwh): New mode macros.
3263         ("umulsidi3"): Extend to support "umulditi3" as well.
3264
3265 2011-10-07  Uros Bizjak  <ubizjak@gmail.com>
3266             H.J. Lu  <hongjiu.lu@intel.com>
3267
3268         PR target/50603
3269         * config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of
3270         integer PLUS RTX to a register to improve address combine.
3271
3272 2011-10-06  Richard Henderson  <rth@redhat.com>
3273
3274         * combine-stack-adjust.c (maybe_move_args_size_note): Add after
3275         parameter; use it to decide whether to merge two notes.
3276         (combine_stack_adjustments_for_block): Use maybe_move_args_size_note
3277         for the deallocation case as well.
3278
3279 2011-10-06  Anatoly Sokolov  <aesok@post.ru>
3280
3281         * system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
3282         * doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation.
3283         * doc/tm.texi: Regenerate.
3284         * target.def (output_addr_const_extra): Use
3285         hook_bool_FILEptr_rtx_false.
3286         * targhooks.c (default_asm_output_addr_const_extra): Remove.
3287         * targhooks.h (default_asm_output_addr_const_extra): Remove.
3288         * hooks.c (hook_bool_FILEptr_rtx_false): New functions.
3289         * hooks.h (hook_bool_FILEptr_rtx_false): Declare.
3290
3291 2011-10-06  David S. Miller  <davem@davemloft.net>
3292
3293         * config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
3294         (popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
3295         SI mode 64-bit code gen case explicitly zero-extend and truncate.
3296         (*popcount<mode>_sp64): Split up into...
3297         (*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
3298         SImode case use truncate.
3299         (*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
3300         subtract so the compiler can optimize it.
3301         (SIDI): Remove unused mode iterator.
3302
3303 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
3304
3305         * function.c (thread_prologue_and_epilogue_insns): Emit split prologue
3306         on the orig_entry_edge. Don't account for it in prologue_clobbered.
3307
3308 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
3309
3310         PR tree-optimization/50596
3311         * tree-vectorizer.h (vect_is_simple_cond): New prototype.
3312         (NUM_PATTERNS): Change to 6.
3313         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
3314         function.
3315         (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
3316         (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
3317         if it already has one, and don't set STMT_VINFO_VECTYPE in it
3318         if it is already set.
3319         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
3320         COND_EXPR in pattern stmts.
3321         (vect_is_simple_cond): No longer static.
3322
3323 2001-10-06  Richard Henderson  <rth@redhat.com>
3324
3325         * config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support.
3326         * config/i386/sse.md (sseshuffint): Remove.
3327         (sseintvecmode): Support V16HI, V8HI, V32QI, V16QI.
3328         (VSHUFFLE_AVX2): New mode iterator.
3329         (vshuffle<mode>): Use it.
3330         (avx_vec_concat<V_256>): Rename from *vec_concat<V_256>_avx.
3331
3332         * config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode
3333         for vector_all_ones_operand.
3334         (ix86_expand_int_vcond): Distinguish between comparison mode
3335         and data mode.  Allow them to differ.
3336         (ix86_expand_vshuffle): Don't force data mode to match maskmode.
3337
3338 2001-10-06  Richard Henderson  <rth@redhat.com>
3339
3340         * optabs.c (expand_vec_shuffle_expr): Use the proper mode for the
3341         mask operand.  Tidy the code.
3342
3343 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
3344
3345         * tree-vect-patterns.c (vect_pattern_recog_1): Use
3346         vect_recog_func_ptr typedef for the first argument.
3347         (vect_pattern_recog): Rename vect_recog_func_ptr variable
3348         to vect_recog_func, use vect_recog_func_ptr typedef for it.
3349
3350         PR tree-optimization/49279
3351         * tree-ssa-structalias.c (find_func_aliases): Don't handle
3352         CAST_RESTRICT.
3353         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow
3354         restrict propagation.
3355         * tree-ssa.c (useless_type_conversion_p): Don't return false
3356         if TYPE_RESTRICT differs.
3357
3358 2011-10-06  Bernd Schmidt  <bernds@codesourcery.com>
3359
3360         * function.c (thread_prologue_and_epilogue_insns): Build a vector
3361         of unconverted simple return blocks rather than trying to
3362         recompute them later based on bb_flags bitmap tests.
3363
3364 2011-10-06  Michael Matz  <matz@suse.de>
3365
3366         * tree-flow.h (get_var_ann): Don't declare.
3367         * tree-flow-inline.h (get_var_ann): Remove.
3368         (set_is_used): Use var_ann, not get_var_ann.
3369         * tree-dfa.c (add_referenced_var): Inline body of get_var_ann.
3370         * tree-profile.c (gimple_gen_edge_profiler): Call
3371         find_referenced_var_in.
3372         (gimple_gen_interval_profiler): Ditto.
3373         (gimple_gen_pow2_profiler): Ditto.
3374         (gimple_gen_one_value_profiler): Ditto.
3375         (gimple_gen_average_profiler): Ditto.
3376         (gimple_gen_ior_profiler): Ditto.
3377         (gimple_gen_ic_profiler): Ditto plus call add_referenced_var.
3378         (gimple_gen_ic_func_profiler): Call add_referenced_var.
3379         * tree-mudflap.c (execute_mudflap_function_ops): Call
3380         add_referenced_var.
3381
3382 2011-10-06  Jakub Jelinek  <jakub@redhat.com>
3383
3384         * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
3385         don't set SSA_NAME_DEF_STMT that has been already set by
3386         gimple_build_assign_with_ops.
3387         (vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
3388         vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
3389         Likewise.
3390
3391         * tree.h (avoid_folding_inline_builtin): New prototype.
3392     &nbs