OSDN Git Service

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