OSDN Git Service

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