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