OSDN Git Service

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