OSDN Git Service

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