1 2011-10-19 Richard Guenther <rguenther@suse.de>
4 * gimple-fold.c (gimplify_and_update_call_from_tree): Rewrite.
6 2011-10-19 Andrey Belevantsev <abel@ispras.ru>
8 PR rtl-optimization/50340
9 * sel-sched-ir.c (update_target_availability): LHS register
10 availability is not known if the unavailable LHS of the other
11 expression is a different register.
13 2011-10-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16 * config/spu/spu.c (spu_emit_vector_compare): Support unordered
17 floating-point comparisons.
19 2011-10-19 Jan Hubicka <jh@suse.cz>
21 * cgraphunit.c (handle_alias_pairs): Also handle wekref with destination
23 (output_weakrefs): New function.
24 * varpool.c (varpool_create_variable_alias): Handle external aliases.
26 2011-10-19 Jakub Jelinek <jakub@redhat.com>
28 * dwarf2out.c (loc_descriptor): For SUBREG pass SUBREG_REG's mode as
29 second argument instead of mode.
31 2011-10-18 Jakub Jelinek <jakub@redhat.com>
33 * config/i386/i386.c (ix86_expand_vec_perm): In merge_two use
34 mode SUBREG of operands[0] as target.
35 (valid_perm_using_mode_p): Don't ignore higher bits of d->perm.
36 (expand_vec_pshufb): For V8SImode vmode emit avx2_permvarv8si.
37 (expand_vec_perm_1): Handle identity and some broadcast
39 (expand_vec_perm_interleave2): Handle also 32-byte modes, using
40 vperm2[fi]128 or vpunpck[lh]* followed by single insn permutation.
41 For d->testing_p return true earlier to avoid creating more GC
43 (expand_vec_perm_vpermq_perm_1): New function.
44 (expand_vec_perm_vpshufb2_vpermq): For d->testing_p return true
45 earlier to avoid creating more GC garbage. Fix handling of
46 V16HImode. Avoid some SUBREGs in SET_DEST.
47 (expand_vec_perm_broadcast_1): Return false for 32-byte integer
49 (expand_vec_perm_vpshufb4_vpermq2): New function.
50 (ix86_expand_vec_perm_builtin_1): Call expand_vec_perm_vpermq_perm_1
51 and expand_vec_perm_vpshufb4_vpermq2.
53 2011-10-18 Andrew Stubbs <ams@codesourcery.com>
55 * config/arm/driver-arm.c (host_detect_local_cpu): Close the file
58 2011-10-18 Andrew Stubbs <ams@codesourcery.com>
60 PR tree-optimization/50717
62 * tree-ssa-math-opts.c (is_widening_mult_p): Remove the 'type'
63 parameter. Calculate 'type' from stmt.
64 (convert_mult_to_widen): Update call the is_widening_mult_p.
65 (convert_plusminus_to_widen): Likewise.
67 2011-10-18 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
69 * config/spu/spu.c (struct machine_function): New data structure.
70 (spu_init_machine_status): New function.
71 (spu_option_override): Install it.
72 (get_pic_reg): Set and use cfun->machine->pic_reg.
73 (spu_split_immediate): Do not set crtl->uses_pic_offset_table.
74 (need_to_save_reg): Use cfun->machine->pic_reg instead of
75 checking crtl->uses_pic_offset_table.
76 (spu_expand_prologue): Likewise.
78 2011-10-18 Jakub Jelinek <jakub@redhat.com>
80 PR tree-optimization/50735
81 * function.c (gimplify_parameters): Use create_tmp_var instead of
82 create_tmp_reg. If parm is not TREE_ADDRESSABLE and type is complex
83 or vector type, set DECL_GIMPLE_REG_P.
85 2011-10-18 Andrew Stubbs <ams@codesourcery.com>
87 * config.host (arm*-*-linux*): Add driver-arm.o and x-arm.
88 * config/arm/arm.opt: Add 'native' processor_type and
90 * config/arm/arm.h (host_detect_local_cpu): New prototype.
91 (EXTRA_SPEC_FUNCTIONS): New define.
92 (MCPU_MTUNE_NATIVE_SPECS): New define.
93 (DRIVER_SELF_SPECS): New define.
94 * config/arm/driver-arm.c: New file.
95 * config/arm/x-arm: New file.
96 * doc/invoke.texi (ARM Options): Document -mcpu=native,
97 -mtune=native and -march=native.
99 2011-10-18 Alexander Monakov <amonakov@ispras.ru>
101 PR rtl-optimization/50205
102 * sel-sched.c (count_occurrences_1): Simplify on the assumption that
103 p->x is a register. Forbid substitution when the same register is
104 found in a different mode.
105 (count_occurrences_equiv): Assert that 'what' is a register.
107 2011-10-18 Richard Guenther <rguenther@suse.de>
109 PR tree-optimization/50767
110 * tree-ssa-pre.c (create_expression_by_pieces): Update the
113 2011-10-18 Julian Brown <julian@codesourcery.com>
115 * config/arm/arm.c (arm_block_move_unaligned_straight)
116 (arm_adjust_block_mem, arm_block_move_unaligned_loop)
117 (arm_movmemqi_unaligned): New.
118 (arm_gen_movmemqi): Support unaligned block copies.
120 2011-10-18 Ira Rosen <ira.rosen@linaro.org>
122 * doc/md.texi (vec_widen_ushiftl_hi, vec_widen_ushiftl_lo,
123 vec_widen_sshiftl_hi, vec_widen_sshiftl_lo): Document.
124 * tree-pretty-print.c (dump_generic_node): Handle WIDEN_LSHIFT_EXPR,
125 VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
126 (op_code_prio): Likewise.
127 (op_symbol_code): Handle WIDEN_LSHIFT_EXPR.
128 * optabs.c (optab_for_tree_code): Handle
129 VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
130 (init-optabs): Initialize optab codes for vec_widen_u/sshiftl_hi/lo.
131 * optabs.h (enum optab_index): Add OTI_vec_widen_u/sshiftl_hi/lo.
132 * genopinit.c (optabs): Initialize the new optabs.
133 * expr.c (expand_expr_real_2): Handle
134 VEC_WIDEN_LSHIFT_HI_EXPR and VEC_WIDEN_LSHIFT_LO_EXPR.
135 * gimple-pretty-print.c (dump_binary_rhs): Likewise.
136 * tree-vectorizer.h (NUM_PATTERNS): Increase to 8.
137 * tree.def (WIDEN_LSHIFT_EXPR, VEC_WIDEN_LSHIFT_HI_EXPR,
138 VEC_WIDEN_LSHIFT_LO_EXPR): New.
139 * cfgexpand.c (expand_debug_expr): Handle new tree codes.
140 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
141 vect_recog_widen_shift_pattern.
142 (vect_handle_widen_mult_by_const): Rename...
143 (vect_handle_widen_op_by_const): ...to this. Handle shifts.
144 Add a new argument, update documentation.
145 (vect_recog_widen_mult_pattern): Assume that only second
146 operand can be constant. Update call to
147 vect_handle_widen_op_by_const.
148 (vect_recog_over_widening_pattern): Fix typo.
149 (vect_recog_widen_shift_pattern): New.
150 * tree-vect-stmts.c (vectorizable_type_promotion): Handle
152 (supportable_widening_operation): Likewise.
153 * tree-inline.c (estimate_operator_cost): Handle new tree codes.
154 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
155 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
156 * config/arm/neon.md (neon_vec_<US>shiftl_<mode>): New.
157 (vec_widen_<US>shiftl_lo_<mode>, neon_vec_<US>shiftl_hi_<mode>,
158 vec_widen_<US>shiftl_hi_<mode>, neon_vec_<US>shift_left_<mode>):
160 * config/arm/predicates.md (const_neon_scalar_shift_amount_operand):
162 * config/arm/iterators.md (V_innermode): New.
163 * tree-vect-slp.c (vect_build_slp_tree): Require same shift operand
166 2011-10-18 Richard Guenther <rguenther@suse.de>
168 * tree-ssa-alias.h (struct pt_solution): Remove
169 vars_contains_restrict member.
170 (pt_solutions_same_restrict_base): Remove.
171 (pt_solution_set): Adjust.
172 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Remove
173 vars_contains_restrict handling.
174 (dump_points_to_solution): Likewise.
175 (ptr_derefs_may_alias_p): Do not call pt_solutions_same_restrict_base.
176 * tree-ssa-structalias.c (struct variable_info): Remove is_restrict_var
178 (new_var_info): Do not initialize it.
179 (ipa_escaped_pt): Adjust.
180 (make_constraint_from_restrict): Make the tag global.
181 (make_constraint_from_global_restrict): New function.
182 (make_constraint_from_heapvar): Remove.
183 (create_variable_info_for): Do not make restrict vars point
185 (intra_create_variable_infos): Likewise.
186 (find_what_var_points_to): Remove vars_contains_restrict handling.
187 (pt_solution_set): Adjust.
188 (pt_solution_ior_into): Likewise.
189 (pt_solutions_same_restrict_base): Remove.
190 (compute_points_to_sets): Do not test is_restrict_var.
191 * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
192 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
194 2011-10-18 Tom de Vries <tom@codesourcery.com>
196 PR tree-optimization/50672
197 * tree-ssa-dce.c (mark_virtual_operand_for_renaming): New function,
199 (mark_virtual_phi_result_for_renaming): Use
200 mark_virtual_operand_for_renaming.
201 * tree-flow.h (mark_virtual_operand_for_renaming): Declare.
202 * tree-ssa-tail-merge.c (release_last_vdef): New function.
203 (purge_bbs): Add update_vops parameter. Call release_last_vdef for each
205 (tail_merge_optimize): Add argument to call to purge_bbs.
207 2011-10-18 Richard Guenther <rguenther@suse.de>
210 * expr.c (get_object_or_type_alignment): New function.
211 (expand_assignment): Use it.
212 (expand_expr_real_1): Likewise.
214 2011-10-18 Dodji Seketeli <dodji@redhat.com>
217 * input.c (dump_line_table_statistics): Use long, not size_t.
219 2011-10-17 Eric Botcazou <ebotcazou@adacore.com>
221 * config/sparc/sparc.md (in_call_delay): Fix formatting issues.
223 2011-10-17 Simon Baldwin <simonb@google.com>
224 Ian Lance Taylor <iant@google.com>
226 * configure.ac: Add --with-native-system-header-dir. Set and
227 substitute NATIVE_SYSTEM_HEADER_DIR. Use native_system_header
228 when setting target_header_dir.
229 * config.gcc: Always set native_system_header_dir.
230 (*-*-gnu*): Set native_system_header_dir. Don't use t-gnu.
231 (i[34567]86-pc-msdosdjgpp*): Set native_system_header_dir. Don't
233 (i[34567]86-*-mingw* | x86_64-*-mingw*): Set
234 native_system_header_dir.
235 (spu-*-elf*): Set native_system_header_dir.
236 * Makefile.in (NATIVE_SYSTEM_HEADER_DIR): Set to
237 @NATIVE_SYSTEM_HEADER_DIR@.
238 (PREPROCESSOR_DEFINES): Define NATIVE_SYSTEM_HEADER_DIR.
239 * cppdefault.c (STANDARD_INCLUDE_DIR): Don't define.
240 (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
241 STANDARD_INCLUDE_COMPONENT.
242 (cpp_include_defaults): Don't use SYSTEM_INCLUDE_DIR. Rename
243 STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
244 * system.h: Poison SYSTEM_INCLUDE_DIR, STANDARD_INCLUDE_DIR, and
245 STANDARD_INCLUDE_COMPONENT.
246 * config/i386/t-mingw32 (NATIVE_SYSTEM_HEADER_DIR): Remove.
247 * config/i386/t-mingw-w32: Likewise.
248 * config/i386/t-mingw-w64: Likewise.
249 * config/spu/t-spu-elf: Likewise.
250 * config/i386/t-djgpp: Remove.
251 * config/t-gnu: Remove.
252 * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Don't define.
253 (NATIVE_SYSTEM_HEADER_COMPONENT): Rename from
254 STANDARD_INCLUDE_COMPONENT.
255 * config/i386/djgpp.h (STANDARD_INCLUDE_DIR): Don't define.
256 * config/spu/spu-elf.h: Likewise.
257 * config/vms/xm-vms.h: Likewise.
258 * config/gnu.h: Likewise.
259 * config/openbsd.h (INCLUDE_DEFAULTS): Change STANDARD_INCLUDE_DIR
260 and STANDARD_INCLUDE_COMPONENT to NATIVE_SYSTEM_HEADER_DIR and
261 NATIVE_SYSTME_HEADER_COMPONENT.
262 * doc/install.texi (Configuration): Document
263 --with-native-system-header-dir. Mention it in the documentation
264 for --with-sysroot and --with-build-sysroot.
265 * doc/tm.texi.in (Driver): Don't document SYSTEM_INCLUDE_DIR or
266 STANDARD_INCLUDE_DIR. Rename STANDARD_INCLUDE_COMPONENT to
267 NATIVE_SYSTEM_HEADER_COMPONENT. Rename uses of
268 STANDARD_INCLUDE_DIR to NATIVE_SYSTEM_HEADER_DIR.
269 * doc/fragments.texi (Target Fragment): Don't document
270 NATIVE_SYSTEM_HEADER_DIR.
271 * configure, doc/tm.texi: Rebuild.
273 2011-10-17 Richard Henderson <rth@redhat.com>
275 * config/sparc/sparc.md: Use register_or_zero_operand where rJ
278 * config/sparc/sparc.md (vec_perm_constv8qi, vec_perm<mode>): New
280 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): New function.
281 * config/sparc/sparc-protos.h (sparc_expand_vec_perm_bmask): Declare.
283 2011-10-17 David S. Miller <davem@davemloft.net>
285 * config/sparc/sparc-modes.def: Add single entry vector modes for
287 * config/sparc/sparc.md (V32, V32I, V64, V64I, V64N8): Delete
289 (mov<V32:mode>): Revert back to plain SFmode pattern.
290 (*movsf_insn): Likewise.
291 (mov<V64:mode>): Revert back to plain DFmode pattern.
292 (*movdf_insn_sp32): Likewise.
293 (*movdf_insn_sp32_v9): Likewise.
294 (*movdf_insn_sp64): Likewise.
295 (V64 mode splitters) Likewise.
296 (addsi3): Remove VIS alternatives.
298 (and<V64I:mode>3): Revert to DImode only pattern.
299 (and<V64I:mode>3_sp32): Likewise.
300 (*and<V64I:mode>3_sp64): Likewise.
301 (and<V32I:mode>3): Likewise.
302 (*and_not_<V64I:mode>_sp32): Likewise.
303 (*and_not_<V64I:mode>_sp64): Likewise.
304 (*and_not_<V32I:mode>): Likewise.
305 (ior<V64I:mode>3): Likewise.
306 (*ior<V64I:mode>3_sp32): Likewise.
307 (*ior<V64I:mode>3_sp64): Likewise.
308 (ior<V32I:mode>3): Likewise.
309 (*or_not_<V64I:mode>_sp32): Likewise.
310 (*or_not_<V64I:mode>_sp64): Likewise.
311 (*or_not_<V32I:mode>): Likewise.
312 (xor<V64I:mode>3): Likewise.
313 (*xor<V64I:mode>3_sp32): Likewise.
314 (*xor<V64I:mode>3_sp64): Likewise.
315 (xor<V32I:mode>3): Likewise.
316 (V64I mode splitters): Likewise.
317 (*xor_not_<V64I:mode>_sp32): Likewise.
318 (*xor_not_<V64I:mode>_sp64): Likewise.
319 (*xor_not_<V32I:mode>): Likewise.
320 (one_cmpl<V64I:mode>2): Likewise.
321 (*one_cmpl<V64I:mode>2_sp32): Likewise.
322 (*one_cmpl<V64I:mode>2_sp64): Likewise.
323 (one_cmpl<V32I:mode>2): Likewise.
324 (VM32, VM64, VMALL): New mode iterators.
325 (vbits, vconstr, vfptype): New mode attributes.
326 (mov<VMALL:mode>): New expander.
327 (*mov<VM32:mode>_insn): New insn.
328 (*mov<VM64:mode>_insn_sp64): New insn.
329 (*mov<VM64:mode>_insn_sp32): New insn, and associated splitter
330 specifically for the register to memory case.
331 (vec_init<mode>): New expander.
332 (VADDSUB): New mode iterator.
333 (<plusminus_insn>v2si3, <plusminus_insn>v2hi3): Remove and replace
335 (<plusminus_insn><mode>3): New consolidated pattern.
336 (VL): New mode iterator for logical operations.
337 (vlsuf): New more attribute.
338 (vlop): New code iterator.
339 (vlinsn, vlninsn): New code attributes.
340 (<code><mode>3): New insn to non-negated vector logical ops.
341 (*not_<code><mode>3): Likewise for negated variants.
342 (*nand<mode>_vis): New insn.
343 (vlnotop): New code iterator.
344 (*<code>_not1<mode>_vis, *<code>_not2<mode>_vis): New insns.
345 (one_cmpl<mode>2): New insn.
346 (faligndata<V64I:mode>_vis): Rewrite to use VM64 iterator.
347 (bshuffle<VM64:mode>_vis): Likewise.
348 (v<vis3_shift_patname><mode>3): Use GCM mode iterator.
349 (fp<plusminus_insn>64_vis): Use V1DI mode.
350 (VASS mode iterator): Use V1SI not SI mode.
351 * config/sparc/sparc.c (sparc_vis_init_builtins): Account for
352 single-entry vector mode changes.
353 (sparc_expand_builtin): Likewise.
354 (sparc_expand_vector_init): New function.
355 * config/sparc/sparc-protos.h (sparc_expand_vector_init): Declare.
357 2011-10-17 Kai Tietz <ktietz@redhat.com>
359 * fold-const.c (simple_operand_p_2): New function.
360 (fold_truthop): Rename to
361 (fold_truth_andor_1): function name.
362 Additionally remove branching creation for logical and/or.
363 (fold_truth_andor): Handle branching creation for logical and/or here.
365 2011-10-17 Andi Kleen <ak@linux.intel.com>
367 * ggc-page.c (USING_MADVISE): Adjust ifdef to check for USING_MMAP.
369 2011-10-17 Georg-Johann Lay <avr@gjlay.de>
371 * config/avr/avr.h (ASSEMBLER_DIALECT): Remove.
372 * config/avr/avr.md (mcu_have_movw, mcu_mega): Remove attributes.
373 (adjust_len): Add alternative "call".
374 (isa, enabled): New insn attributes.
375 (length): Use match_test with AVR_HAVE_JMP_CALL instead of
377 (*sbrx_branch<mode>): Ditto.
378 (*sbrx_and_branch<mode>): Ditto.
379 (*sbix_branch): Ditto.
380 (*sbix_branch_bit7): Ditto.
381 (*sbix_branch_tmp): Ditto.
382 (*sbix_branch_tmp_bit7): Ditto.
384 (negsi2): Use attribute "isa" instead of assembler dialect.
385 (extendhisi2): Ditto.
386 (call_insn, call_value_insn): Set adjust_len attribute.
387 (indirect_jump): Indent to coding rules.
388 (call_prologue_saves): Use isa attribute instead of mcu_mega.
389 (epilogue_restores): Ditto. Fix setting of SP as described in the
391 (*indirect_jump): Fusion of *jcindirect_jump, *njcindirect_jump
392 and *indirect_jump_avr6.
393 (*tablejump): Fusion of *tablejump_rjmp and *tablejump_lib.
394 (*jcindirect_jump, *njcindirect_jump, *indirect_jump_avr6): Remove.
395 (*tablejump_rjmp, *tablejump_lib): Remove.
396 * config/avr/avr.c (adjust_insn_length): Handle ADJUST_LEN_CALL.
398 2011-10-17 Paolo Carlini <paolo.carlini@oracle.com>
401 * doc/invoke.texi ([Wnonnull]): Update.
403 2011-10-17 Richard Henderson <rth@redhat.com>
406 * optabs.c (expand_vec_perm_expr): Fix indexing error.
408 2011-10-17 Sergio Durigan Junior <sergiodj@redhat.com>
410 * configure.ac: Display `yes' if the SystemTap header has been
412 * configure: Regenerate.
414 2011-10-08 Andi Kleen <ak@linux.intel.com>
417 * config.in, configure: Regenerate.
418 * configure.ac (madvise): Add to AC_CHECK_FUNCS.
419 * ggc-page.c (USING_MADVISE): Add.
420 (page_entry): Add discarded field.
421 (alloc_page): Check for discarded pages.
422 (release_pages): Add USING_MADVISE branch.
424 2011-10-17 Richard Guenther <rguenther@suse.de>
426 PR tree-optimization/50729
427 * tree-vrp.c (extract_range_from_unary_expr_1): Remove
429 (simplify_conversion_using_ranges): Properly test the
432 2011-10-15 Tom Tromey <tromey@redhat.com>
433 Dodji Seketeli <dodji@redhat.com>
435 * ggc.h (ggc_round_alloc_size): Declare new public entry point.
436 * ggc-none.c (ggc_round_alloc_size): New public stub function.
437 * ggc-page.c (ggc_alloced_size_order_for_request): New static
438 function. Factorized from ggc_internal_alloc_stat.
439 (ggc_round_alloc_size): New public function. Uses
440 ggc_alloced_size_order_for_request.
441 (ggc_internal_alloc_stat): Use ggc_alloced_size_order_for_request.
442 * ggc-zone.c (ggc_round_alloc_size): New public function extracted
443 from ggc_internal_alloc_zone_stat.
444 (ggc_internal_alloc_zone_stat): Use ggc_round_alloc_size.
445 * toplev.c (general_init): Initialize
446 line_table->alloced_size_for_request.
448 2011-10-15 Tom Tromey <tromey@redhat.com>
449 Dodji Seketeli <dodji@redhat.com>
451 * input.c (ONE_K, ONE_M, SCALE, STAT_LABEL, FORMAT_AMOUNT): New
453 (num_expanded_macros_counter, num_macro_tokens_counter): Declare
455 (dump_line_table_statistics): Define new function.
456 * input.h (dump_line_table_statistics): Declare new function.
457 * toplev.c (dump_memory_report): Call dump_line_table_statistics.
459 2011-10-15 Tom Tromey <tromey@redhat.com>
460 Dodji Seketeli <dodji@redhat.com>
462 * doc/cppopts.texi: Document -fdebug-cpp.
463 * doc/invoke.texi: Add -fdebug-cpp to the list of preprocessor
466 2011-10-15 Tom Tromey <tromey@redhat.com>
467 Dodji Seketeli <dodji@redhat.com>
469 * gcc/diagnostic.h (diagnostic_report_current_module): Add a
471 * diagnostic.c (diagnostic_report_current_module): Add a location
472 parameter to the function definition. Use it instead of
473 input_location. Resolve the virtual location rather than just
474 looking up its map and risking to touch a resulting macro map.
475 (default_diagnostic_starter): Pass the relevant diagnostic
476 location to diagnostic_report_current_module.
477 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): New.
478 (virt_loc_aware_diagnostic_finalizer): Likewise.
479 (diagnostic_report_current_function): Pass the
480 relevant location to diagnostic_report_current_module.
481 * tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Declare
483 * toplev.c (general_init): By default, use the new
484 virt_loc_aware_diagnostic_finalizer as diagnostic finalizer.
485 * Makefile.in: Add vec.h dependency to tree-diagnostic.c.
487 2011-10-15 Tom Tromey <tromey@redhat.com>
488 Dodji Seketeli <dodji@redhat.com>
490 * doc/cppopts.texi (-ftrack-macro-expansion): Document new option.
491 * doc/invoke.texi (-ftrack-macro-expansion): Add this to the list of
492 preprocessor related options.
494 2011-10-15 Tom Tromey <tromey@redhat>
495 Dodji Seketeli <dodji@redhat.com>
497 * input.h (struct expanded_location): Move to libcpp/line-map.h.
498 (LOCATION_COLUMN): New accessor
499 (in_system_header_at): Use linemap_location_in_system_header_p.
500 * diagnostic.c (diagnostic_report_current_module): Adjust to avoid
501 touching the internals of struct line_map. Use the public API.
503 (diagnostic_report_diagnostic): Don't use relational operator '<'
504 on virtual locations. Use linemap_location_before_p instead.
505 * input.c (expand_location): Adjust to expand to the tokens'
506 spelling location when macro location tracking is on.
509 2011-10-08 Andi Kleen <ak@linux.intel.com>
511 * ggc-page.c (GGC_QUIRE_SIZE): Increase to 512
513 2011-10-13 Andi Kleen <ak@linux.intel.com>
515 * toplev.c (compile_file): Rename __gnu_slim_lto to __gnu_lto_slim.
517 2011-10-16 Ira Rosen <ira.rosen@linaro.org>
519 PR tree-optimization/50727
520 * tree-vect-patterns.c (vect_operation_fits_smaller_type): Add
521 DEF_STMT to the list of statements to be replaced by the
524 2011-10-16 Eric Botcazou <ebotcazou@adacore.com>
526 PR rtl-optimization/50615
527 * combine.c (distribute_notes) <REG_ARGS_SIZE>: Skip if I3 is a no-op.
529 2011-10-16 Jakub Jelinek <jakub@redhat.com>
531 PR tree-optimization/50596
532 * tree-vectorizer.h (NUM_PATTERNS): Increase to 7.
533 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
534 vect_recog_bool_pattern.
535 (check_bool_pattern, adjust_bool_pattern_cast,
536 adjust_bool_pattern, vect_recog_bool_pattern): New functions.
538 2011-10-16 Ira Rosen <ira.rosen@linaro.org>
540 * tree-vect-stmts.c (vectorizable_load): For SLP without permutation
541 treat the first load of the node as the first element in its
543 * tree-vect-slp.c (vect_get_and_check_slp_defs): Swap the operands if
544 necessary and possible.
545 (vect_build_slp_tree): Add new argument. Allow load groups of any size
546 in basic blocks. Keep all the loads for further permutation check.
547 Use the new argument to determine if there is a permutation. Update
549 (vect_supported_load_permutation_p): Allow subchains of interleaving
550 chains in basic block vectorization.
551 (vect_analyze_slp_instance): Update the call to vect_build_slp_tree.
552 Check load permutation based on the new parameter.
553 (vect_schedule_slp_instance): Don't start from the first element in
554 interleaving chain unless the loads are permuted.
556 2011-10-15 Jan Hubicka <jh@suse.cz>
560 * cgraphunit.c (cgraph_expand_function): Expand thunks and alises
563 2011-10-15 Richard Henderson <rth@redhat.com>
565 * tree-vect-slp.c: Include langhooks.h.
566 (vect_create_mask_and_perm): Emit VEC_PERM_EXPR, not a builtin.
567 (vect_transform_slp_perm_load): Use can_vec_perm_expr_p. Simplify
568 mask creation for VEC_PERM_EXPR.
569 * tree-vect-stmts.c (perm_mask_for_reverse): Return the mask,
571 (reverse_vec_elements): Emit VEC_PERM_EXPR not a builtin.
572 * Makefile.in (tree-vect-slp.o): Update dependency.
573 * optabs.c (can_vec_perm_expr_p): Allow NULL as unknown constant.
575 2011-10-15 Alan Modra <amodra@gmail.com>
578 * ifcvt.c (dead_or_predicable): Revert accidental commit with
579 HAVE_simple_return test.
581 2011-10-15 Alan Modra <amodra@gmail.com>
583 * ifcvt.c (dead_or_predicable): Disable if-conversion when
584 doing so is likely to kill a shrink-wrapping opportunity.
586 PR rtl-optimization/49941
587 * jump.c (mark_jump_label_1): Set JUMP_LABEL for simple_return jumps.
589 * rtl.h (set_return_jump_label): Declare.
590 * function.c (set_return_jump_label): New function, extracted..
591 (thread_prologue_and_epilogue_insns): ..from here. Use it in
592 another instance to set return jump_label.
593 * cfgrtl.c (force_nonfallthru_and_redirect): Use set_return_jump_label.
594 * reorg.c (find_end_label): Likewise.
596 2011-10-14 David S. Miller <davem@davemloft.net>
598 * config/sparc/sol2.h: Protect -m{cpu,tune}=native handling
599 with a more complete cpp test.
600 * config/sparc/linux64.h: Likewise.
601 * config/sparc/linux.h: Likewise.
602 * config/sparc/sparc.opt (sparc_debug): New target variable.
603 (mdebug): New target option.
604 * config/sparc/sparc.h (MASK_DEBUG_OPTIONS, MASK_DEBUG_ALL,
605 TARGET_DEBUG_OPTIONS): New defines.
606 * config/sparc/sparc.c (debug_target_flag_bits,
607 debug_target_flags): New functions.
608 (sparc_option_override): Add name strings back to cpu_table[].
609 Parse -mdebug string. When TARGET_DEBUG_OPTIONS is true, print
610 out the target flags before and after override processing as well
611 as the selected cpu. If MASK_V8PLUS, make sure that the selected
614 2011-10-15 Oleg Endo <oleg.endo@t-online.de>
617 * config/sh/sh.h (ZERO_EXTRACT_ANDMASK): New macro.
618 * config/sh/sh.c (sh_rtx_costs): Add test instruction case.
619 * config/sh/sh.md (tstsi_t): Name existing insn. Make inner
620 and instruction commutative.
621 (tsthi_t, tstqi_t, tstqi_t_zero, tstsi_t_and_not,
622 tstsi_t_zero_extract_eq, tstsi_t_zero_extract_xor,
623 tstsi_t_zero_extract_subreg_xor_little,
624 tstsi_t_zero_extract_subreg_xor_big): New insns.
625 (*movsicc_t_false, *movsicc_t_true): Replace space with tab in
627 (*andsi_compact): Reorder alternatives so that K08 is considered first.
629 2011-10-14 Eric Botcazou <ebotcazou@adacore.com>
632 * config/sparc/linux64.h (TARGET_DEFAULT): Only override if the default
633 processor is at least V9 and TARGET_64BIT_DEFAULT is defined.
635 2011-10-14 Gerald Pfeifer <gerald@pfeifer.com>
637 * invoke.texi (AVR Options): Avoid \leq{}.
639 2011-10-14 Kai Tietz <ktietz@redhat.com>
641 * gimplify.c (gimplify_expr): Take care that for bitwise-binary
642 transformation the operands have compatible types.
644 2011-10-14 Jakub Jelinek <jakub@redhat.com>
646 * config/i386/sse.md (vec_widen_smult_hi_v8hi,
647 vec_widen_smult_lo_v8hi, vec_widen_umult_hi_v8hi,
648 vec_widen_umult_lo_v8hi): Macroize using VI2_AVX2
649 mode iterator and any_extend code iterator.
650 (vec_widen_<s>mult_hi_v8si, vec_widen_<s>mult_lo_v8si): New expanders.
651 (vec_widen_smult_hi_v4si, vec_widen_smult_lo_v4si): Enable
652 also for TARGET_SSE4_1 using pmuldq insn.
653 (sdot_prodv8hi): Macroize using VI2_AVX2 iterator.
654 (sse2_sse4_1): New code attr.
655 (udot_prodv4si): Macroize using any_extend code iterator.
656 (<s>dot_prodv8si): New expander.
658 2011-10-14 Yakovlev Vladimir <vladimir.b.yakovlev@intel.com>
660 * config/i386/i386.c (atom_cost): Changed cost for loading
663 2011-10-14 Michael Meissner <meissner@linux.vnet.ibm.com>
665 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo in my
666 change on October 11th, 2011.
668 2011-10-14 Jakub Jelinek <jakub@redhat.com>
670 * config/i386/sse.md (vec_interleave_high<mode>,
671 vec_interleave_low<mode>): Add AVX2 expanders for VI_256 modes.
672 * config/i386/i386.c (expand_vec_perm_interleave3): New function.
673 (ix86_expand_vec_perm_builtin_1): Call it.
675 2011-10-14 Georg-Johann Lay <avr@gjlay.de>
677 Fix thinko from r179765
678 * config/avr/avr.c (avr_option_override): Don't override
679 flag_omit_frame_pointer if not actually needed.
681 2011-10-14 Georg-Johann Lay <avr@gjlay.de>
684 * doc/invoke.texi (AVR Options): Document -mstrict-X.
686 * config/avr/avr.opt (-mstrict-X): New option.
687 (avr_strict_X): New variable reflecting -mstrict-X.
688 * config/avr/avr.c (avr_reg_ok_for_addr_p): Add parameter
689 outer_code and pass it down to avr_regno_mode_code_ok_for_base_p.
690 (avr_legitimate_address_p): Pass outer_code to
691 avr_reg_ok_for_addr_p and use that function in case PLUS.
692 (avr_mode_code_base_reg_class): Depend on avr_strict_X.
693 (avr_regno_mode_code_ok_for_base_p): Ditto, and depend on outer_code.
694 (avr_option_override): Disable -fcaller-saves if -mstrict-X is on.
696 2011-10-14 Jakub Jelinek <jakub@redhat.com>
698 * config/i386/sse.md (neg<mode>2): Use VI_AVX2 iterator instead
701 * config/i386/sse.md (mulv2di3): Macroize using VI8_AVX2 iterator.
702 (ashl<mode>3): Use VI248_AVX2 iterator instead of VI248_128.
703 Use <sseinsnmode> instead of TI in mode attr.
705 2011-10-14 David Alan Gilbert <david.gilbert@linaro.org>
707 * config/arm/linux-atomic-64bit.c: New (based on linux-atomic.c).
708 * config/arm/linux-atomic.c: Change comment to point to 64bit version.
709 (SYNC_LOCK_RELEASE): Instantiate 64bit version.
710 * config/arm/t-linux-eabi: Pull in linux-atomic-64bit.c.
712 2011-10-14 David Alan Gilbert <david.gilbert@linaro.org>
714 * config/arm/arm.c (arm_output_ldrex): Support ldrexd.
715 (arm_output_strex): Support strexd.
716 (arm_output_it): New helper to output it in Thumb2 mode only.
717 (arm_output_sync_loop): Support DI mode. Change comment to
718 not support const_int.
719 (arm_expand_sync): Support DI mode.
720 * config/arm/arm.h (TARGET_HAVE_LDREXBHD): Split into LDREXBH
722 * config/arm/iterators.md (NARROW): move from sync.md.
723 (QHSD): New iterator for all current ARM integer modes.
724 (SIDI): New iterator for SI and DI modes only.
725 * config/arm/sync.md (sync_predtab): New mode_attr.
726 (sync_compare_and_swapsi): Fold into sync_compare_and_swap<mode>.
727 (sync_lock_test_and_setsi): Fold into sync_lock_test_and_setsi<mode>.
728 (sync_<sync_optab>si): Fold into sync_<sync_optab><mode>.
729 (sync_nandsi): Fold into sync_nand<mode>.
730 (sync_new_<sync_optab>si): Fold into sync_new_<sync_optab><mode>.
731 (sync_new_nandsi): Fold into sync_new_nand<mode>.
732 (sync_old_<sync_optab>si): Fold into sync_old_<sync_optab><mode>.
733 (sync_old_nandsi): Fold into sync_old_nand<mode>.
734 (sync_compare_and_swap<mode>): Support SI & DI.
735 (sync_lock_test_and_set<mode>): Likewise.
736 (sync_<sync_optab><mode>): Likewise.
737 (sync_nand<mode>): Likewise.
738 (sync_new_<sync_optab><mode>): Likewise.
739 (sync_new_nand<mode>): Likewise.
740 (sync_old_<sync_optab><mode>): Likewise.
741 (sync_old_nand<mode>): Likewise.
742 (arm_sync_compare_and_swapsi): Turn into iterator on SI & DI.
743 (arm_sync_lock_test_and_setsi): Likewise.
744 (arm_sync_new_<sync_optab>si): Likewise.
745 (arm_sync_new_nandsi): Likewise.
746 (arm_sync_old_<sync_optab>si): Likewise.
747 (arm_sync_old_nandsi): Likewise.
748 (arm_sync_compare_and_swap<mode> NARROW): use sync_predtab, fix indent.
749 (arm_sync_lock_test_and_setsi<mode> NARROW): Likewise.
750 (arm_sync_new_<sync_optab><mode> NARROW): Likewise.
751 (arm_sync_new_nand<mode> NARROW): Likewise.
752 (arm_sync_old_<sync_optab><mode> NARROW): Likewise.
753 (arm_sync_old_nand<mode> NARROW): Likewise.
755 2011-10-14 David Alan Gilbert <david.gilbert@linaro.org>
758 * config/arm/arm.c (arm_output_sync_loop): Move label before barrier.
760 2011-10-14 David Alan Gilbert <david.gilbert@linaro.org>
762 * config/arm/arm.h (TARGET_HAVE_DMB_MCR): MCR Not available in Thumb1.
764 2011-10-14 Paolo Carlini <paolo.carlini@oracle.com>
766 * doc/invoke.texi ([Wformat-zero-length]): Tidy.
768 2011-10-14 Jakub Jelinek <jakub@redhat.com>
770 * gimple.c (walk_stmt_load_store_addr_ops): Call visit_addr also
771 on COND_EXPR/VEC_COND_EXPR comparison operands if they are ADDR_EXPRs.
773 2011-10-14 Richard Guenther <rguenther@suse.de>
775 PR tree-optimization/50723
776 * ipa-split.c (split_function): Use GSI_CONTINUE_LINKING.
778 2011-10-14 Nicola Pero <nicola.pero@meta-innovation.com>
780 * gengtype.c (files_rules): Added rules for objc/objc-map.h and
783 2011-10-14 Paolo Carlini <paolo.carlini@oracle.com>
786 * doc/invoke.texi ([Wformat-zero-length]): Update.
788 2011-10-14 Iain Sandoe <iains@gcc.gnu.org>
791 * config/darwin.c (darwin_patch_builtin): Adjust argument type. Only
792 build for powerpc targets. (darwin_patch_builtins): Only build for
795 2011-10-14 Jakub Jelinek <jakub@redhat.com>
797 * config/i386/sse.md (*avx_cvtdq2pd256_2): Rename to...
798 (avx_cvtdq2pd256_2): ... this.
799 (sseunpackfltmode): New mode attr.
800 (vec_unpacks_float_hi_v8hi, vec_unpacks_float_lo_v8hi,
801 vec_unpacku_float_hi_v8hi, vec_unpacku_float_lo_v8hi): Macroize
802 using VI2_AVX2 iterator.
803 (vec_unpacku_float_hi_v8si, vec_unpacku_float_lo_v8si): New expanders.
805 2011-10-13 David S. Miller <davem@davemloft.net>
807 * config/sparc/sparc.md (plusminus): New code iterator.
808 (plusminus_insn): New code attr.
809 (addv2si3, subv2si3, addv4hi3, subv4hi3, addv2hi3, subv2hi3): Merge
810 using plusminus and plusminus_insn.
811 (fpadd64_vis, fpsub64_vis): Likewise.
813 2011-10-13 Richard Henderson <rth@redhat.com>
815 * doc/md.texi (vec_perm): Document fallback to byte permutation.
816 * genopinit.c (optabs): Add vec_perm_const.
817 * optabs.c (can_vec_perm_expr_p): Rename from expand_vec_perm_expr_p.
818 Reject non-vector modes. Allow fallback to byte permutation.
819 (expand_vec_perm_expr_1): Split out from ...
820 (expand_vec_perm_expr): ... here. Allow fallback to byte permutation.
821 * optabs.h (DOI_vec_perm_const, vec_perm_const_optab): New.
822 * tree-vect-generic.c (lower_vec_perm): Update for name change.
824 2011-10-13 Richard Henderson <rth@redhat.com>
826 * config/rs6000/altivec.md (vec_permv16qi): New pattern.
828 * config/rs6000/spu.md (vec_permv16qi): New pattern.
830 * config/i386/i386.c (ix86_expand_vec_perm_const): New.
831 * config/i386/i386-protos.h: Update.
832 * config/i386/sse.md (VEC_PERM_CONST): New mode iterator.
833 (vec_perm_const<VEC_PERM_CONST>): New expander.
835 * optabs.c (expand_vector_broadcast): New.
836 (expand_binop): Expand scalar shifts of vectors to vector shifts
837 of vectors, if the former isn't supported.
838 * tree-vect-generic.c (expand_vector_operations_1): Don't do that
839 here; always simplify to scalar shift of vector if possible.
841 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix mode
842 test for vector splat.
844 2011-10-13 Jakub Jelinek <jakub@redhat.com>
846 * config/i386/sse.md (vec_set<mode>): Change V_128 iterator mode to V.
848 2011-10-13 Jakub Jelinek <jakub@redhat.com>
849 Richard Guenther <rguenther@suse.de>
851 * tree-ssa.c (maybe_optimize_var): Drop TREE_ADDRESSABLE from vector
852 or complex vars even if their DECL_UID is in not_reg_needs bitmap.
854 2011-10-13 Jakub Jelinek <jakub@redhat.com>
856 * config/i386/sse.md (reduc_umin_v8hi): New pattern.
857 * config/i386/i386.c (ix86_build_const_vector): Handle
858 also V32QI, V16QI, V16HI and V8HI modes.
859 (emit_reduc_half): New function.
860 (ix86_expand_reduc): Use phminposuw insn for V8HImode UMIN.
861 Use emit_reduc_half helper function.
863 2011-10-13 Lawrence Crowl <crowl@google.com>
864 Diego Novillo <dnovillo@google.com>
866 * lto-streamer-in.c (input_struct_function_base): Factor out of ...
867 (input_function): ... here.
868 * lto-streamer-out.c (output_struct_function_base): Factor out of ...
869 (output_function): ... here.
871 2011-10-13 Gabriel Charette <gchare@google.com>
872 Diego Novillo <dnovillo@google.com>
874 * streamer-hooks.h (struct streamer_hooks): Add hooks
875 input_location and output_location.
876 * lto-streamer-in.c (lto_input_location): Use
877 streamer_hooks.input_location, if set.
878 * lto-streamer-out.c (lto_output_location): Use
879 streamer_hooks.output_location, if set.
881 2011-10-13 Eric Botcazou <ebotcazou@adacore.com>
883 * doc/invoke.texi (SPARC options): Document -mfix-at697f.
884 * config/sparc/sparc.opt (mfix-at697f): New option.
885 * config/sparc/sparc.c (TARGET_MACHINE_DEPENDENT_REORG): Define.
886 (sparc_reorg): New function.
888 2011-10-13 Richard Guenther <rguenther@suse.de>
890 PR tree-optimization/50712
891 * ipa-split.c (split_function): Always re-gimplify parameters
892 when they are not gimple vals before passing them. Properly
893 check for type compatibility.
895 2011-10-13 Tom de Vries <tom@codesourcery.com>
897 * function.c (gimplify_parameters): Set number of arguments of call to
898 BUILT_IN_ALLOCA_WITH_ALIGN to 2.
900 2011-10-13 Tom de Vries <tom@codesourcery.com>
902 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_READONLY_P
903 for static const strings.
904 * varasm.c (build_constant_desc): Generate the memory location of the
905 constant using gen_const_mem.
907 2011-10-13 Richard Guenther <rguenther@suse.de>
909 PR tree-optimization/50698
910 * tree-data-ref.c (split_constant_offset_1): Also process
913 2011-10-12 David S. Miller <davem@davemloft.net>
915 * config/sparc/sparc.md (UNSPEC_FPMERGE): Delete.
916 (UNSPEC_MUL16AU, UNSPEC_MUL8, UNSPEC_MUL8SU, UNSPEC_MULDSU): New
918 (fpmerge_vis): Remove inaccurate comment, represent using vec_select
920 (vec_interleave_lowv8qi, vec_interleave_highv8qi): New insns.
921 (fmul8x16_vis, fmul8x16au_vis, fmul8sux16_vis, fmuld8sux16_vis):
922 Reimplement as unspecs and remove inaccurate comments.
923 (vis3_shift_patname): New code attr.
924 (<vis3_shift_insn><vbits>_vis): Rename to
925 "v<vis3_shift_patname><mode>3".
926 (vis3_addsub_ss_patname): New code attr.
927 (<vis3_addsub_ss_insn><vbits>_vis): Rename to
928 "<vis3_addsub_ss_patname><mode>3".
929 * config/sparc/sparc.c (sparc_vis_init_builtins): Update to
930 accommodate pattern name changes.
932 * config/sparc/sparc.h: Do not force TARGET_VIS3 and TARGET_FMAF
933 to zero when assembler lacks support for such instructions.
934 * config/sparc/sparc.c (sparc_option_override): Clear MASK_VIS3
935 and MASK_FMAF in defaults when assembler lacks necessary support.
937 2011-10-12 Jakub Jelinek <jakub@redhat.com>
939 * config/i386/sse.md (vec_unpacks_lo_<mode>,
940 vec_unpacks_hi_<mode>, vec_unpacku_lo_<mode>,
941 vec_unpacku_hi_<mode>): Change VI124_128 mode to VI124_AVX2.
942 * config/i386/i386.c (ix86_expand_sse_unpack): Handle
943 V32QImode, V16HImode and V8SImode for TARGET_AVX2.
945 * config/i386/sse.md (vec_avx2): New mode_attr.
946 (mulv16qi3): Macroize to cover also mulv32qi3 for TARGET_AVX2 into ...
947 (mul<mode>3): ... this.
949 * config/i386/i386.md (UNSPEC_VPERMDI): Remove.
950 * config/i386/i386.c (ix86_expand_vec_perm): Handle
951 V16QImode and V32QImode for TARGET_AVX2.
952 (MAX_VECT_LEN): Increase to 32.
953 (expand_vec_perm_blend): Add support for 32-byte integer
954 vectors with TARGET_AVX2.
955 (valid_perm_using_mode_p): New function.
956 (expand_vec_perm_pshufb): Add support for 32-byte integer
957 vectors with TARGET_AVX2.
958 (expand_vec_perm_vpshufb2_vpermq): New function.
959 (expand_vec_perm_vpshufb2_vpermq_even_odd): New function.
960 (expand_vec_perm_even_odd_1): Handle 32-byte integer vectors
962 (ix86_expand_vec_perm_builtin_1): Try expand_vec_perm_vpshufb2_vpermq
963 and expand_vec_perm_vpshufb2_vpermq_even_odd.
964 * config/i386/sse.md (VEC_EXTRACT_EVENODD_MODE): Add for TARGET_AVX2
965 32-byte integer vector modes.
966 (vec_pack_trunc_<mode>): Use VI248_AVX2 instead of VI248_128.
967 (avx2_interleave_highv32qi, avx2_interleave_lowv32qi): Remove pasto.
968 (avx2_pshufdv3, avx2_pshuflwv3, avx2_pshufhwv3): Generate
970 (avx2_pshufd_1, avx2_pshuflw_1, avx2_pshufhw_1): Don't use
971 match_dup, instead add 4 new operands and require they have
972 right cross-lane values.
973 (avx2_permv4di): Change into define_expand.
974 (avx2_permv4di_1): New instruction.
975 (avx2_permv2ti): Use nonimmediate_operand instead of register_operand
976 for "xm" constrained operand.
977 (VEC_PERM_AVX2): Add V32QI and V16QI for TARGET_AVX2.
979 * config/i386/sse.md (avx2_gathersi<mode>,
980 avx2_gatherdi<mode>, avx2_gatherdi<mode>256): Add clobber of
981 match_scratch, change memory_operand to register_operand,
982 add (mem:BLK (scratch)) use.
983 (*avx2_gathersi<mode>, *avx2_gatherdi<mode>,
984 *avx2_gatherdi<mode>256): Add clobber of match_scratch,
985 add earlyclobber to the output operand and match_scratch,
986 add (mem:BLK (scratch)) use, change the other mem to match_operand.
987 Use %p6 instead of %c6 in the pattern.
988 * config/i386/i386.c (ix86_expand_builtin): Adjust for
989 operand 2 being a Pmode register_operand instead of memory_operand.
991 2011-10-12 Kai Tietz <ktietz@redhat.com>
993 * config/i386/i386.md (simple_return): Disable if TARGET_SEH is active.
995 2011-10-12 Steve Ellcey <sje@cup.hp.com>
997 * config/ia64/ia64.c (ia64_init_builtins): Fix unbalanced parentheses.
999 2011-10-12 Richard Guenther <rguenther@suse.de>
1001 * tree-ssa-alias.c (maybe_skip_until): Cache also at the point
1002 of the first store we visit in a basic-block.
1003 (get_continuation_for_phi): Search for a candidate VUSE that
1004 might dominates all others. Do pairwise disambiguation against
1007 2011-10-12 Paul Koning <pkoning@gcc.gnu.org>
1009 PR tree-optimization/50189
1010 * tree-vrp.c (extract_range_from_assert): Use the type of
1011 the variable, not the limit.
1013 2011-10-12 Richard Guenther <rguenther@suse.de>
1015 PR tree-optimization/50700
1016 * tree-object-size.c (addr_object_size): Simplify and treat
1017 MEM_REF bases consistently.
1019 2011-10-12 Bernd Schmidt <bernds@codesourcery.com>
1021 * function.c (prepare_shrink_wrap, bb_active_p): New function.
1022 (thread_prologue_and_epilogue_insns): Use bb_active_p.
1023 Call prepare_shrink_wrap, then recompute bb_active_p for the
1026 2011-10-12 Joseph Myers <joseph@codesourcery.com>
1029 * convert.c (convert_to_integer): Do not narrow operands of
1030 pointer subtraction.
1032 2011-10-12 Nick Clifton <nickc@redhat.com>
1034 * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): New macro. Used to
1035 emit a .eabi_attribute assembler directive, possibly with a
1037 * config/arm/arm.c (arm_file_start): Use the new macro.
1038 * config/arm/arm-c.c (arm_output_c_attributes): Likewise.
1040 2011-10-12 Georg-Johann Lay <avr@gjlay.de>
1043 * config/avr/avr.md (*movqi): Rename to movqi_insn.
1044 (*call_insn): Rename to call_insn.
1045 (*call_value_insn): Rename to call_value_insn.
1046 * config/avr/avr.c (avr_2word_insn_p): New static function.
1047 (jump_over_one_insn_p): Use it.
1049 2011-10-12 Richard Sandiford <richard.sandiford@linaro.org>
1051 * expr.h (copy_blkmode_to_reg): Declare.
1052 * expr.c (copy_blkmode_to_reg): New function.
1053 (expand_assignment): Don't expand register RESULT_DECLs before
1054 the lhs. Use copy_blkmode_to_reg to copy BLKmode values into a
1055 RESULT_DECL register.
1056 (expand_expr_real_1): Handle BLKmode decls when looking for promotion.
1057 * stmt.c (expand_return): Move BLKmode-to-register code into
1058 copy_blkmode_to_reg.
1060 2011-10-11 Eric Botcazou <ebotcazou@adacore.com>
1063 * config/sparc/sparc.md (mov<I:mode>cc): Do not save comparison code.
1064 (mov<F:mode>cc): Likewise.
1066 2011-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1068 * tree-ssa-address.c (copy_ref_info): Remove copy of TREE_THIS_NOTRAP.
1070 2011-10-11 Michael Meissner <meissner@linux.vnet.ibm.com>
1072 * tree.h (built_in_decls): Delete old interface with two parallel
1073 arrays to hold standard builtin declarations, and replace it with
1074 a function based interface that can support creating builtins on
1075 the fly in the future. Change all uses, and poison the old
1076 names. Make sure 0 is not a legitimate builtin index.
1077 (implicit_built_in_decls): Ditto.
1078 (built_in_info): Ditto.
1079 (BUILTIN_VALID_P): Ditto.
1080 (builtin_decl_explicit): Ditto.
1081 (builtin_decl_implicit): Ditto.
1082 (set_builtin_decl): Ditto.
1083 (set_builtin_decl_implicit_p): Ditto.
1084 (builtin_decl_explicit_p): Ditto.
1085 (builtin_decl_implicit_p): Ditto.
1086 * tree-complex.c (expand_complex_libcall): Ditto.
1087 * tree-loop-distribution.c (generate_memset_zero): Ditto.
1088 * tree-ssa-strlen.c (get_string_length): Ditto.
1089 (handle_builtin_strcpy): Ditto.
1090 (handle_builtin_strcat): Ditto.
1091 * tree.c (iterative_hash_expr): Ditto.
1092 (local_define_builtin): Ditto.
1093 (build_common_builtin_nodes): Ditto.
1094 * builtins.c (built_in_decls): Ditto.
1095 (implicit_built_in_decls): Ditto.
1096 (built_in_info): Ditto
1097 (expand_builtin_classify_type): Ditto.
1098 (mathfn_built_in_1): Ditto.
1099 (expand_builtin_cexpi): Ditto.
1100 (expand_builtin_mempcpy_args): Ditto.
1101 (expand_builtin_stpcpy): Ditto.
1102 (gimplify_va_arg_expr): Ditto.
1103 (expand_builtin_sync_operation): Ditto.
1104 (build_builtin_expect_predicate): Ditto.
1105 (fold_builtin_memory_op): Ditto.
1106 (fold_builtin_strcpy): Ditto.
1107 (fold_builtin_stpcpy): Ditto.
1108 (fold_builtin_strncpy): Ditto.
1109 (fold_builtin_interclass_mathfn): Ditto.
1110 (fold_builtin_classify): Ditto.
1111 (fold_builtin_2): Ditto.
1112 (fold_builtin_strstr): Ditto.
1113 (fold_builtin_strrchr): Ditto.
1114 (fold_builtin_strpbrk): Ditto.
1115 (fold_builtin_strcat): Ditto.
1116 (fold_builtin_strncat): Ditto.
1117 (fold_builtin_strcspn): Ditto.
1118 (fold_builtin_fputs): Ditto.
1119 (fold_builtin_sprintf): Ditto.
1120 (fold_builtin_snprintf): Ditto.
1121 (expand_builtin_memory_chk): Ditto.
1122 (fold_builtin_memory_chk): Ditto.
1123 (fold_builtin_stxcpy_chk): Ditto.
1124 (fold_builtin_strncpy_chk): Ditto.
1125 (fold_builtin_strcat_chk): Ditto.
1126 (fold_builtin_strncat_chk): Ditto.
1127 (fold_builtin_sprintf_chk_1): Ditto.
1128 (fold_builtin_snprintf_chk_1): Ditto.
1129 (fold_builtin_printf): Ditto.
1130 (fold_builtin_fprintf): Ditto.
1131 (fold_call_stmt): Ditto.
1132 (set_builtin_user_assembler_name): Ditto.
1133 * tree-emutls.c (emutls_common_1): Ditto.
1134 * omp-low.c (scan_omp): Ditto.
1135 (lower_rec_input_clauses): Ditto.
1136 (lower_reduction_clauses): Ditto.
1137 (expand_parallel_call): Ditto.
1138 (expand_task_call): Ditto.
1139 (maybe_catch_exception): Ditto.
1140 (optimize_omp_library_calls): Ditto.
1141 (expand_omp_for_generic): Ditto.
1142 (expand_omp_for_static_nochunk): Ditto.
1143 (expand_omp_for_static_chunk): Ditto.
1144 (expand_omp_sections): Ditto.
1145 (expand_omp_atomic_fetch_op): Ditto.
1146 (expand_omp_atomic_pipeline): Ditto.
1147 (expand_omp_atomic_mutex): Ditto.
1148 (lower_omp_single_simple): Ditto.
1149 (lower_omp_single_copy): Ditto.
1150 (lower_omp_master): Ditto.
1151 (lower_omp_ordered): Ditto.
1152 (lower_omp_critical): Ditto.
1153 * tree-ssa-ccp.c (optimize_stdarg_builtin): Ditto.
1154 * builtins.c (DEF_BUILTIN_STUB): Ditto.
1155 (BUILT_IN_NONE): Ditto.
1156 * tree-ssa-math-opts.c (execute_optimize_bswap): Ditto.
1157 * gimple-low.c (lower_function_body): Ditto.
1158 (lower_builtin_setjmp): Ditto.
1159 * c-decl.c (merge_decls): Ditto.
1160 * tree-eh.c (lower_resx): Ditto.
1161 (lower_resx): Ditto.
1162 (lower_eh_dispatch): Ditto.
1163 * function (gimplify_parameters): Ditto.
1164 * c-typeck.c (build_function_call_vec): Ditto.
1165 * gimplify.c (build_stack_save_restore): Ditto.
1166 (gimplify_vla_decl): Ditto.
1167 (gimplify_modify_expr_to_memcpy): Ditto.
1168 (gimplify_modify_expr_to_memset): Ditto.
1169 (gimplify_variable_sized_compare): Ditto.
1170 (gimplify_function_tree): Ditto.
1171 * calls.c (emit_call_1): Ditto.
1172 * tree-ssa-forprop.c (simplify_builtin_call): Ditto.
1173 * tree-nested.c (convert_nl_goto_reference): Ditto.
1174 (convert_tramp_reference_op): Ditto.
1175 (finalize_nesting_tree_1): Ditto.
1176 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
1177 (tree_ssa_prefetch_arrays): Ditto.
1178 * tree-streamer-in.c (streamer_get_builtin_tree): Ditto.
1179 * system.h (built_in_decls): Ditto.
1180 (implicit_built_in_decls): Ditto.
1181 * tree-vect-generic.c (expand_vector_operations_1): Ditto.
1182 * config/sparc/sparc.c (sparc_gimplify_va_arg): Ditto.
1183 * config/i386/i386.c (ix86_gimplify_va_arg): Ditto.
1184 (ix86_veclibabi_svml): Ditto.
1185 (ix86_veclibabi_acml): Ditto.
1186 * config/vms/vms.c (vms_patch_builtins): Ditto.
1187 * config/ia64/ia64.c (ia64_init_builtins): Ditto.
1188 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Ditto.
1189 (rs6000_builtin_vectorized_libmass): Ditto.
1190 (rs6000_init_builtins): Ditto.
1191 * config/darwin.c (darwin_override_options): Ditto.
1192 (darwin_patch_builtin): Ditto.
1193 (darwin_rename_builtins): Ditto.
1194 * config/pa/pa.c (pa_init_builtins): Ditto.
1196 2011-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1198 * tree.h (copy_ref_info): Expose existing function.
1199 * tree-ssa-loop-ivopts.c (copy_ref_info): Move function to...
1200 * tree-ssa-address.c (copy_ref_info): ...here, and remove static token.
1202 2011-10-11 Georg-Johann Lay <avr@gjlay.de>
1204 * config/avr/avr-protos.h (avr_mode_code_base_reg_class): New
1206 (avr_regno_mode_code_ok_for_base_p): New prototype.
1207 * config/avr/avr.h (BASE_REG_CLASS): Remove.
1208 (REGNO_OK_FOR_BASE_P): Remove.
1209 (REG_OK_FOR_BASE_NOSTRICT_P): Remove.
1210 (REG_OK_FOR_BASE_STRICT_P): Remove.
1211 (MODE_CODE_BASE_REG_CLASS): New define.
1212 (REGNO_MODE_CODE_OK_FOR_BASE_P): New define.
1213 * config/avr/avr.c (avr_mode_code_base_reg_class): New function.
1214 (avr_regno_mode_code_ok_for_base_p): New function.
1215 (avr_reg_ok_for_addr_p): New static function.
1216 (avr_legitimate_address_p): Use it. Beautify.
1218 2011-10-11 Georg-Johann Lay <avr@gjlay.de>
1221 * config/avr/avr.md (cc): Add out_plus attribute alternative.
1222 (addsi3): Use it. Adapt avr_out_plus to new prototype. Use
1223 avr_out_plus for all CONST_INT addends.
1224 * config/avr/avr-protos.h (avr_out_plus): Change prototype.
1225 * config/avr/avr.c (notice_update_cc): Call avr_out_plus on
1227 (avr_out_plus_1): Change prototype and report effect on cc0.
1228 (avr_out_plus): Ditto.
1229 (adjust_insn_length): Adapt call to avr_out_plus to new prototype.
1231 2011-10-11 H.J. Lu <hongjiu.lu@intel.com>
1233 * config/i386/i386.c (ix86_expand_special_args_builtin): Remove
1236 2011-10-11 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
1238 * doc/invoke.texi: Document new warning.
1239 * common.opt (Wvector-operation-performance): Define new warning.
1240 * tree-vect-generic.c (expand_vector_piecewise): Warn about expanded
1242 (exapnd_vector_parallel): Warn about expanded vector operation.
1243 (lower_vec_shuffle): Warn about expanded vector operation.
1244 * c-typeck.c (c_build_vec_perm_expr): Store correct location
1245 when creating VEC_PERM_EXPR.
1247 2011-10-11 Richard Guenther <rguenther@suse.de>
1249 PR tree-optimization/50204
1250 * tree-ssa-alias.c (get_continuation_for_phi_1): Split out
1251 two argument handling from ...
1252 (get_continuation_for_phi): ... here. Handle arbitrary number
1255 2011-10-11 Richard Sandiford <richard.sandiford@linaro.org>
1257 * modulo-sched.c: Fix comment typo. Mention the possibility
1258 of using scheduling windows of II+1 cycles.
1260 2011-10-11 Tristan Gingold <gingold@adacore.com>
1262 * doc/invoke.texi (C Dialect Options): Document
1263 -fallow-parameterless-variadic-functions.
1264 * c-parser.c (c_parser_parms_list_declarator): Handle it.
1266 2011-10-10 Georg-Johann Lay <avr@gjlay.de>
1268 * config/avr/avr.c (avr_option_override): Set
1269 flag_omit_frame_pointer to 0 if frame pointer is needed for unwinding.
1271 2011-10-10 Uros Bizjak <ubizjak@gmail.com>
1274 * optabs.h (DOI_vec_perm): Rename from OTI_vec_perm. Move from enum
1275 optab_index to enum direct_optab_index.
1276 (vec_perm_optab): Update.
1278 2011-10-10 Anatoly Sokolov <aesok@post.ru>
1280 * config/cris/cris.c (cris_preferred_reload_class): New function.
1281 (TARGET_PREFERRED_RELOAD_CLASS): Define.
1282 * config/cris/cris.h (PREFERRED_RELOAD_CLASS): Remove.
1284 2011-10-10 Georg-Johann Lay <avr@gjlay.de>
1286 * config/avr/avr.md (*tablejump_rjmp): Change insn condition to
1288 (*tablejump_lib): Change insn condition to AVR_HAVE_JMP_CALL.
1289 (*tablejump_enh, *tablejump): Remove insns.
1290 * config/avr/libgcc.S (__tablejump__): Use RET instead of EIND +
1291 EIJMP for indirect jump. Use LPM Z+ where available.
1293 2011-10-10 Richard Henderson <rth@redhat.com>
1295 * doc/md.texi (vec_perm_const): Fix typo in cindex.
1297 2011-10-10 Kirill Yukhin <kirill.yukhin@intel.com>
1298 Yakovlev Vladimir <vladimir.b.yakovlev@intel.com>
1300 * config/i386/sse.md (fma_fnmsub_<mode>): Fix a typo.
1302 2011-10-10 Richard Guenther <rguenther@suse.de>
1305 * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
1306 mark symbols for renaming. Append the VUSE to all statements
1307 that possibly can have one.
1309 2011-10-10 Richard Guenther <rguenther@suse.de>
1311 * ipa-split.c (pass_split_functions): Add verification TODOs.
1312 (pass_feedback_split_functions): Likewise.
1314 2011-10-10 Richard Guenther <rguenther@suse.de>
1317 * fold-const.c (fold_binary_loc): Canonicalize x*x to pow (x, 2)
1318 only when optimizing.
1320 2011-10-10 Nick Clifton <nickc@redhat.com>
1323 * compare-elim.c (find_comparisons_in_bb): Use df_get_live_in and
1324 df_get_live_out instead of accessing the bitmaps directly.
1325 (execute_compare_elim_after_reload): Remove calls to df_set_flags,
1326 df_live_add_problem and df_analyze.
1328 2011-10-10 Michael Matz <matz@suse.de>
1331 * tree-emutls.c (gen_emutls_addr): Call add_referenced_var.
1333 2011-10-10 Richard Sandiford <richard.sandiford@linaro.org>
1335 * modulo-sched.c (ps_reg_move_info): Add num_consecutive_stages.
1336 (SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES): Delete.
1337 (node_sched_params): Remove first_reg_move and nreg_moves.
1338 (ps_num_consecutive_stages, extend_node_sched_params): New functions.
1339 (update_node_sched_params): Move up file.
1340 (print_node_sched_params): Print the stage. Don't dump info related
1341 to first_reg_move and nreg_moves.
1342 (set_columns_for_row): New function.
1343 (set_columns_for_ps): Move up file and use set_columns_for_row.
1344 (schedule_reg_move): New function.
1345 (schedule_reg_moves): Call extend_node_sched_params and
1346 schedule_reg_move. Extend size of uses bitmap. Initialize
1347 num_consecutive_stages. Return false if a move could not be
1349 (apply_reg_moves): Don't emit moves here.
1350 (permute_partial_schedule): Handle register moves.
1351 (duplicate_insns_of_cycles): Remove for_prolog. Emit moves according
1352 to the same stage-count test as ddg nodes.
1353 (generate_prolog_epilog): Update calls accordingly.
1354 (sms_schedule): Allow move-scheduling to add a new first stage.
1356 2011-10-10 Richard Sandiford <richard.sandiford@linaro.org>
1358 * modulo-sched.c (ps_insn): Adjust comment.
1359 (ps_reg_move_info): New structure.
1360 (partial_schedule): Add reg_moves field.
1361 (SCHED_PARAMS): Use node_sched_param_vec instead of node_sched_params.
1362 (node_sched_params): Turn first_reg_move into an identifier.
1363 (ps_reg_move): New function.
1364 (ps_rtl_insn): Cope with register moves.
1365 (ps_first_note): Adjust comment and assert that the instruction
1366 isn't a register move.
1367 (node_sched_params): Replace with...
1368 (node_sched_param_vec): ...this vector.
1369 (set_node_sched_params): Adjust accordingly.
1370 (print_node_sched_params): Take a partial schedule instead of a ddg.
1371 Use ps_rtl_insn and ps_reg_move.
1372 (generate_reg_moves): Rename to...
1373 (schedule_reg_moves): ...this. Remove rescan parameter. Record each
1374 move in the partial schedule, but don't emit it here. Don't perform
1375 register substitutions here either.
1376 (apply_reg_moves): New function.
1377 (duplicate_insns_of_cycles): Use register indices directly,
1378 rather than finding instructions using PREV_INSN. Use ps_reg_move.
1379 (sms_schedule): Call schedule_reg_moves before committing to
1380 a partial schedule. Try the next ii if the schedule fails.
1381 Use apply_reg_moves instead of generate_reg_moves. Adjust
1382 call to print_node_sched_params. Free node_sched_param_vec
1383 instead of node_sched_params.
1384 (create_partial_schedule): Initialize reg_moves.
1385 (free_partial_schedule): Free reg_moves.
1387 2011-10-10 Richard Sandiford <richard.sandiford@linaro.org>
1389 * modulo-sched.c (ps_insn): Replace node field with an identifier.
1390 (SCHED_ASAP): Replace with..
1391 (NODE_ASAP): ...this macro.
1392 (SCHED_PARAMS): New macro.
1393 (SCHED_TIME, SCHED_FIRST_REG_MOVE, SCHED_NREG_MOVES, SCHED_ROW)
1394 (SCHED_STAGE, SCHED_COLUMN): Redefine using SCHED_PARAMS.
1395 (node_sched_params): Remove asap.
1396 (ps_rtl_insn, ps_first_note): New functions.
1397 (set_node_sched_params): Use XCNEWVEC. Don't copy across the
1399 (print_node_sched_params): Use SCHED_PARAMS and NODE_ASAP.
1400 (generate_reg_moves): Pass ids to the SCHED_* macros.
1401 (update_node_sched_params): Take a ps insn identifier rather than
1402 a node as parameter. Use ps_rtl_insn.
1403 (set_columns_for_ps): Update for above field and SCHED_* macro changes.
1404 (permute_partial_schedule): Use ps_rtl_insn and ps_first_note.
1405 (optimize_sc): Update for above field and SCHED_* macro changes.
1406 Update calls to try_scheduling_node_in_cycle and
1407 update_node_sched_params.
1408 (duplicate_insns_of_cycles): Adjust for above field and SCHED_*
1409 macro changes. Use ps_rtl_insn and ps_first_note.
1410 (sms_schedule): Pass ids to the SCHED_* macros.
1411 (get_sched_window): Adjust for above field and SCHED_* macro changes.
1412 Use NODE_ASAP instead of SCHED_ASAP.
1413 (try_scheduling_node_in_cycle): Remove node parameter. Update
1414 call to ps_add_node_check_conflicts. Pass ids to the SCHED_* macros.
1415 (sms_schedule_by_order): Update call to try_scheduling_node_in_cycle.
1416 (ps_insert_empty_row): Adjust for above field changes.
1417 (compute_split_row): Use ids rather than nodes.
1418 (verify_partial_schedule): Adjust for above field changes.
1419 (print_partial_schedule): Use ps_rtl_insn.
1420 (create_ps_insn): Take an id rather than a node.
1421 (ps_insn_find_column): Adjust for above field changes.
1423 (ps_insn_advance_column): Adjust for above field changes.
1424 (add_node_to_ps): Remove node parameter. Update call to
1426 (ps_has_conflicts): Use ps_rtl_insn.
1427 (ps_add_node_check_conflicts): Replace node parameter than an id.
1429 2011-10-10 Richard Sandiford <richard.sandiford@linaro.org>
1431 * modulo-sched.c (undo_replace_buff_elem): Delete.
1432 (generate_reg_moves): Don't build and return an undo list.
1433 (free_undo_replace_buff): Delete.
1434 (sms_schedule): Adjust call to generate_reg_moves.
1435 Don't call free_undo_replace_buff.
1437 2011-10-10 Matthias Klose <doko@ubuntu.com>
1439 * common/config/m32c: Remove empty directory.
1441 2011-10-10 Georg-Johann Lay <avr@gjlay.de>
1443 * config/avr/avr.md (*mulhi3_enh): Treat squaring smarter.
1445 2011-10-10 Georg-Johann Lay <avr@gjlay.de>
1448 * config/avr/avr-mcus.def (AVR_MCU): Set .data_section_start of
1449 atmega164a to 0x100.
1451 2011-10-09 Eric Botcazou <ebotcazou@adacore.com>
1453 * tree-ssa-forwprop.c (forward_propagate_into_comparison): Do not make
1454 the replacement if the conversion to the LHS type is not useless.
1456 2011-10-09 Ira Rosen <ira.rosen@linaro.org>
1458 PR tree-optimization/50635
1459 * tree-vect-patterns.c (vect_handle_widen_mult_by_const): Add
1460 DEF_STMT to the list of statements to be replaced by the
1462 (vect_handle_widen_mult_by_const): Don't check TYPE_OUT.
1464 2011-10-09 Anatoly Sokolov <aesok@post.ru>
1466 * system.h: Commit forgotten hunk in previous patch.
1467 (OUTPUT_ADDR_CONST_EXTRA): Poison.
1469 2011-10-08 Nicola Pero <nicola.pero@meta-innovation.com>
1472 * doc/objc.texi (Garbage Collection): Updated example to protect
1473 +initialize against execution in subclasses.
1475 2011-10-07 Richard Henderson <rth@redhat.com>
1477 * doc/extend.texi (__builtin_shuffle): Improve the description to
1478 include the modulus of the selector. Mention OpenCL.
1479 * doc/md.texi (vec_perm, vec_perm_const): Document named patterns.
1481 * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR.
1482 * genopinit.c (optabs): Rename vshuffle to vec_perm.
1483 * c-typeck.c (c_build_vec_perm_expr): Rename from
1484 c_build_vec_shuffle_expr. Update for name changes.
1485 * optabs.c (expand_vec_perm_expr_p): Rename from
1486 expand_vec_shuffle_expr_p.
1487 (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr.
1488 * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle.
1489 (vec_perm_optab): Rename from vshuffle_optab.
1490 * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c,
1491 c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c,
1492 tree-ssa-operands.c, tree-vect-generic.c: Update for name changes.
1494 * config/i386/i386.c (ix86_expand_vec_perm): Rename from
1495 ix86_expand_vshuffle.
1496 * config/i386/i386-protos.h: Update.
1497 * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2.
1498 (vec_perm<VEC_PERM_AVX2>): Rename from vshuffle<VSHUFFLE_AVX2>.
1500 2011-10-07 Richard Henderson <rth@redhat.com>
1502 * config/i386/predicates.md (avx2_pblendw_operand): New.
1503 * config/i386/sse.md (sse4_1_pblendw): Un-macroize.
1504 (avx2_pblendw, *avx2_pblendw): New expander and insn.
1506 2011-10-07 Richard Henderson <rth@redhat.com>
1508 * config/i386/i386.c (bdesc_args): Update code for
1509 __builtin_ia32_palignr256. Change type of __builtin_ia32_pslldqi256,
1510 and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT.
1511 (ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT.
1512 * config/i386/sse.md (mode iterator V16): Add V2TI.
1513 (mode iterator SSESCALARMODE): Use V2TI not V4DI.
1514 (mode attr ssse3_avx2): Add V2TI.
1515 (avx2_lshrqv4di3, avx2_lshlqv4di3): Remove.
1517 2011-10-07 David S. Miller <davem@davemloft.net>
1520 * configure.ac: Add .register directives to VIS3 test.
1521 * configure: Regenerate.
1523 2011-10-07 Richard Henderson <rth@redhat.com>
1525 * config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu.
1527 2011-10-07 Richard Henderson <rth@redhat.com>
1530 * fold-const.c (fold_checksum_tree): Remove out-of-date assert.
1532 2011-10-07 Andrew Stubbs <ams@codesourcery.com>
1534 * config/arm/predicates.md (shift_amount_operand): Remove constant
1536 (shift_operator): Check range of constants for all shift operators.
1538 2011-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1540 * config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion.
1541 Load GOT pointer for non-pic builds.
1542 (s390_load_got): Replace pic_offset_table_rtx with hardcoded r12.
1543 (s390_emit_call): Likewise.
1545 2011-10-07 Tom de Vries <tom@codesourcery.com>
1548 * tree.c (build_common_builtin_nodes): Add local_define_builtin for
1549 BUILT_IN_ALLOCA_WITH_ALIGN. Mark that BUILT_IN_ALLOCA_WITH_ALIGN can
1551 * builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN
1552 arglist. Set align for BUILT_IN_ALLOCA_WITH_ALIGN.
1553 (expand_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
1554 (is_inexpensive_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
1555 * tree-ssa-ccp.c (evaluate_stmt): Set align for
1556 BUILT_IN_ALLOCA_WITH_ALIGN.
1557 (fold_builtin_alloca_for_var): Rename to ...
1558 (fold_builtin_alloca_with_align): Set DECL_ALIGN from 2nd
1559 BUILT_IN_ALLOCA_WITH_ALIGN argument.
1560 (ccp_fold_stmt): Try folding BUILT_IN_ALLOCA_WITH_ALIGN using
1561 fold_builtin_alloca_with_align.
1562 (optimize_stack_restore): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
1563 * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using
1565 * ipa-pure-const.c (special_builtin_state): Handle
1566 BUILT_IN_ALLOCA_WITH_ALIGN.
1567 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1)
1568 (call_may_clobber_ref_p_1): Same.
1569 * function.c (gimplify_parameters): Lower vla to
1570 BUILT_IN_ALLOCA_WITH_ALIGN.
1571 * gimplify.c (gimplify_vla_decl): Same.
1572 * cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
1573 * tree-mudflap.c (mf_xform_statements): Same.
1574 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
1575 (mark_all_reaching_defs_necessary_1, propagate_necessity): Same.
1576 * varasm.c (incorporeal_function_p): Same.
1577 * tree-object-size.c (alloc_object_size): Same.
1578 * gimple.c (gimple_build_call_from_tree): Same.
1580 2011-10-07 Bernd Schmidt <bernds@codesourcery.com>
1582 * function.c (frame_required_for_rtx): Remove function.
1583 (requires_stack_frame_p): New arg set_up_by_prologue. All callers
1584 changed. Compute a set of mentioned registers and compare against
1585 the new arg rather than calling frame_required_for_rtx.
1586 (thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue
1587 reg set. Convert the unconverted_simple_returns mechanism to store
1588 jump insns rather than their basic blocks. Also check the
1589 orig_entry_edge destination for new blocks.
1591 2011-10-07 Jakub Jelinek <jakub@redhat.com>
1593 PR tree-optimization/50650
1594 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't
1595 call vect_is_simple_cond here, instead fail if cond_expr isn't
1596 COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL
1597 for cond_expr's first operand.
1598 * tree-vect-stmts.c (vect_is_simple_cond): Static again.
1599 * tree-vectorizer.h (vect_is_simple_cond): Remove prototype.
1601 2011-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1603 * config/s390/s390.md (DWH, dwh): New mode macros.
1604 ("umulsidi3"): Extend to support "umulditi3" as well.
1606 2011-10-07 Uros Bizjak <ubizjak@gmail.com>
1607 H.J. Lu <hongjiu.lu@intel.com>
1610 * config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of
1611 integer PLUS RTX to a register to improve address combine.
1613 2011-10-06 Richard Henderson <rth@redhat.com>
1615 * combine-stack-adjust.c (maybe_move_args_size_note): Add after
1616 parameter; use it to decide whether to merge two notes.
1617 (combine_stack_adjustments_for_block): Use maybe_move_args_size_note
1618 for the deallocation case as well.
1620 2011-10-06 Anatoly Sokolov <aesok@post.ru>
1622 * system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
1623 * doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation.
1624 * doc/tm.texi: Regenerate.
1625 * target.def (output_addr_const_extra): Use
1626 hook_bool_FILEptr_rtx_false.
1627 * targhooks.c (default_asm_output_addr_const_extra): Remove.
1628 * targhooks.h (default_asm_output_addr_const_extra): Remove.
1629 * hooks.c (hook_bool_FILEptr_rtx_false): New functions.
1630 * hooks.h (hook_bool_FILEptr_rtx_false): Declare.
1632 2011-10-06 David S. Miller <davem@davemloft.net>
1634 * config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
1635 (popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
1636 SI mode 64-bit code gen case explicitly zero-extend and truncate.
1637 (*popcount<mode>_sp64): Split up into...
1638 (*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
1639 SImode case use truncate.
1640 (*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
1641 subtract so the compiler can optimize it.
1642 (SIDI): Remove unused mode iterator.
1644 2011-10-06 Bernd Schmidt <bernds@codesourcery.com>
1646 * function.c (thread_prologue_and_epilogue_insns): Emit split prologue
1647 on the orig_entry_edge. Don't account for it in prologue_clobbered.
1649 2011-10-06 Jakub Jelinek <jakub@redhat.com>
1651 PR tree-optimization/50596
1652 * tree-vectorizer.h (vect_is_simple_cond): New prototype.
1653 (NUM_PATTERNS): Change to 6.
1654 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
1656 (vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
1657 (vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
1658 if it already has one, and don't set STMT_VINFO_VECTYPE in it
1659 if it is already set.
1660 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
1661 COND_EXPR in pattern stmts.
1662 (vect_is_simple_cond): No longer static.
1664 2001-10-06 Richard Henderson <rth@redhat.com>
1666 * config/i386/i386.c (ix86_expand_vshuffle): Add AVX2 support.
1667 * config/i386/sse.md (sseshuffint): Remove.
1668 (sseintvecmode): Support V16HI, V8HI, V32QI, V16QI.
1669 (VSHUFFLE_AVX2): New mode iterator.
1670 (vshuffle<mode>): Use it.
1671 (avx_vec_concat<V_256>): Rename from *vec_concat<V_256>_avx.
1673 * config/i386/i386.c (ix86_expand_sse_movcc): Use correct mode
1674 for vector_all_ones_operand.
1675 (ix86_expand_int_vcond): Distinguish between comparison mode
1676 and data mode. Allow them to differ.
1677 (ix86_expand_vshuffle): Don't force data mode to match maskmode.
1679 2001-10-06 Richard Henderson <rth@redhat.com>
1681 * optabs.c (expand_vec_shuffle_expr): Use the proper mode for the
1682 mask operand. Tidy the code.
1684 2011-10-06 Jakub Jelinek <jakub@redhat.com>
1686 * tree-vect-patterns.c (vect_pattern_recog_1): Use
1687 vect_recog_func_ptr typedef for the first argument.
1688 (vect_pattern_recog): Rename vect_recog_func_ptr variable
1689 to vect_recog_func, use vect_recog_func_ptr typedef for it.
1691 PR tree-optimization/49279
1692 * tree-ssa-structalias.c (find_func_aliases): Don't handle
1694 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow
1695 restrict propagation.
1696 * tree-ssa.c (useless_type_conversion_p): Don't return false
1697 if TYPE_RESTRICT differs.
1699 2011-10-06 Bernd Schmidt <bernds@codesourcery.com>
1701 * function.c (thread_prologue_and_epilogue_insns): Build a vector
1702 of unconverted simple return blocks rather than trying to
1703 recompute them later based on bb_flags bitmap tests.
1705 2011-10-06 Michael Matz <matz@suse.de>
1707 * tree-flow.h (get_var_ann): Don't declare.
1708 * tree-flow-inline.h (get_var_ann): Remove.
1709 (set_is_used): Use var_ann, not get_var_ann.
1710 * tree-dfa.c (add_referenced_var): Inline body of get_var_ann.
1711 * tree-profile.c (gimple_gen_edge_profiler): Call
1712 find_referenced_var_in.
1713 (gimple_gen_interval_profiler): Ditto.
1714 (gimple_gen_pow2_profiler): Ditto.
1715 (gimple_gen_one_value_profiler): Ditto.
1716 (gimple_gen_average_profiler): Ditto.
1717 (gimple_gen_ior_profiler): Ditto.
1718 (gimple_gen_ic_profiler): Ditto plus call add_referenced_var.
1719 (gimple_gen_ic_func_profiler): Call add_referenced_var.
1720 * tree-mudflap.c (execute_mudflap_function_ops): Call
1723 2011-10-06 Jakub Jelinek <jakub@redhat.com>
1725 * tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
1726 don't set SSA_NAME_DEF_STMT that has been already set by
1727 gimple_build_assign_with_ops.
1728 (vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
1729 vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
1732 * tree.h (avoid_folding_inline_builtin): New prototype.
1733 * builtins.c (avoid_folding_inline_builtin): No longer static.
1734 * gimple-fold.c (gimple_fold_builtin): Give up if
1735 avoid_folding_inline_builtin returns true.
1737 2011-10-06 Richard Guenther <rguenther@suse.de>
1739 * tree-vect-generic.c (vector_element): Look at previous
1742 2011-10-06 David Edelsohn <dje.gcc@gmail.com>
1745 * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define
1746 __powerpc__, __PPC__, __unix__.
1748 2011-10-06 Michael Matz <matz@suse.de>
1750 * i386/i386.opt (recip_mask, recip_mask_explicit,
1751 x_recip_mask_explicit): New variables and cl_target member.
1752 (mrecip=): New option.
1753 * i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV,
1754 RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks.
1755 (TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV,
1756 TARGET_RECIP_VEC_SQRT): New tests.
1757 * i386/i386.md (divsf3): Check TARGET_RECIP_DIV.
1758 (sqrt<mode>2): Check TARGET_RECIP_SQRT.
1759 * i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV.
1760 (sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT.
1761 * i386/i386.c (ix86_option_override_internal): Set recip_mask
1762 for -mrecip and -mrecip=options.
1763 (ix86_function_specific_save): Save recip_mask_explicit.
1764 (ix86_function_specific_restore): Restore recip_mask_explicit.
1766 * doc/invoke.texi (ix86 Options): Document the new option.
1768 2011-10-06 Bernd Schmidt <bernds@codesourcery.com>
1771 * config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
1773 2011-10-06 Ulrich Weigand <ulrich.weigand@linaro.org>
1776 * config/arm/arm.c (arm_legitimize_reload_address): Recognize
1777 output of a previous pass through legitimize_reload_address.
1778 Do not attempt to optimize addresses if the base register is
1779 equivalent to a constant.
1781 2011-10-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1783 * function.c (thread_prologue_and_epilogue_insns): Mark
1784 last_bb_active as possibly unused. It is unused for targets which
1785 do neither have "return" nor "simple_return" expanders.
1787 2011-10-06 Richard Guenther <rguenther@suse.de>
1789 * fold-const.c (fold_ternary_loc): Also fold non-constant
1790 vector CONSTRUCTORs. Make more efficient.
1791 * tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
1792 (cprop_into_stmt): Don't propagate into virtual operands.
1793 (optimize_stmt): Really dump original statement.
1795 2011-10-06 Nick Clifton <nickc@redhat.com>
1797 * config/rx/rx.md (smin3): Revert previous delta.
1799 2011-10-06 Richard Guenther <rguenther@suse.de>
1801 PR tree-optimization/38884
1802 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial
1803 reads from aggregate SSA names.
1805 2011-10-05 Jakub Jelinek <jakub@redhat.com>
1807 * tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace
1808 argument, truncate it at the beginning instead of allocating there
1809 and freeing at the end.
1810 (vect_pattern_recog): Allocate stmts_to_replace here and free at end,
1811 pass its address to vect_pattern_recog_1.
1813 2011-10-05 David S. Miller <davem@davemloft.net>
1815 * config/sparc/sparc.opt (POPC): New option.
1816 * doc/invoke.texi: Document it.
1817 * config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by
1818 default on Niagara-2 and later.
1819 * config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
1820 * config/sparc/sparc.md (SIDI): New mode iterator.
1821 (ffsdi2): Delete commented out pattern and comments.
1822 (popcount<mode>2, clz<mode>2): New expanders.
1823 (*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus,
1824 *clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns.
1826 2011-10-06 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
1829 * c-tree.h (c_expr_t): New typedef for struct c_expr.
1830 (C_EXPR_APPEND): New macro.
1831 * c-parser.c (c_parser_get_builtin_args): Preserve
1832 original_tree_code of c_expr structure.
1833 (c_parser_postfix_expression): Adjust to the new function.
1835 2011-10-05 Bernd Schmidt <bernds@codesourcery.com>
1837 * function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap
1838 if profiling after the prologue.
1840 2011-10-05 Jakub Jelinek <jakub@redhat.com>
1842 PR tree-optimization/50613
1843 * tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT
1844 operand is ADDR_EXPR, fallthru into ADDR_EXPR handling,
1845 and if it is neither that not SSA_NAME, give up.
1847 2011-10-05 Richard Henderson <rth@redhat.com>
1849 * tree-vect-generic.c (vector_element): Never fail. Use
1850 build_zero_cst. Tidy up type references.
1851 (lower_vec_shuffle): Never fail. Mask shuffle indicies. Reduce
1852 code duplication. Do update_stmt here ...
1853 (expand_vector_operations_1): ... not here.
1855 * config/i386/i386.c (ix86_expand_vshuffle): Never fail. Handle
1856 TARGET_XOP. Fix pshufb constant vector creation. Reduce code
1857 duplication. Handle V2DI without SSE4.1.
1858 * config/i386/i386-protos.h (ix86_expand_vshuffle): Update decl.
1859 * config/i386/i386.md (vshuffle<V_128>): Remove assert for ok.
1861 2011-10-05 Uros Bizjak <ubizjak@gmail.com>
1863 * config/i386/i386.c (distance_non_agu_define): Simplify calculation
1864 of "found". Simplify return value calculation.
1865 (distance_agu_use): Ditto.
1867 2011-10-05 Bernd Schmidt <bernds@codesourcery.com>
1870 * config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only
1871 if the function was not shrink-wrapped.
1872 (ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached
1874 * function.c (thread_prologue_and_epilogue_insns): Make sure the
1875 shrink_wrapped flag is set even if there is no dump file.
1877 2011-10-05 DJ Delorie <dj@redhat.com>
1878 Nick Clifton <nickc@redhat.com>
1880 * config/rx/rx.opt (mpid): Define.
1881 * config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid
1882 (MULTILIB_DIRNAMES): Add pid.
1883 * config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val)
1884 (rx_num_interrupt_regs): New variable.
1885 (rx_gp_base_regnum): New function. Returns the number of the
1886 small data area register.
1887 (rx_pid_base_regnum): New function. Returns the number of the pid
1889 (rx_decl_for_addr): New function. Returns the symbolic part of a MEM.
1890 (rx_pid_data_operand): New function. Returns whether an object is
1891 in the position independent data area.
1892 (rx_legitimize_address): New function. Puts undecided PID
1893 objects in the PID data area.
1894 (rx_is_legitimate_address): Add support for PID operands.
1895 (rx_print_operand_address): Likewise.
1896 (rx_print_operand): Likewise.
1897 (rx_maybe_pidify_operand): New function. Determine if an operand
1898 is suitable for PID addressing.
1899 (rx_gen_move_template): Add PID support.
1900 (rx_conditional_register_usage): Likewise.
1901 (rx_option_override): Initialise rx_num_interrupt_regs.
1902 (rx_is_legitimate_constant): Add support for PID constants.
1903 (TARGET_LEGITIMIZE_ADDRESS): Define.
1904 * config/rx/constraints.md (Rpid): Define.
1906 * config/rx/rx.md (UNSPEC_PID_ADDR): Define.
1907 (tablejump): Add PID support.
1909 (mov<>_internal): Likewise.
1910 (addsi3): Convert to an expander. Add PID support.
1911 (pid_addr): New pattern.
1912 * config/rx/rx.h (CPP_SPEC): Define.
1913 (ASM_SPEC): Pass -mpid and -mint-register on to assembler.
1914 (CASE_VECTOR_PC_RELATIVE): Define.
1915 (JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode.
1916 * config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype.
1917 * doc/invoke.texi (RX Options): Document -mpid command line option.
1919 2011-10-05 Richard Guenther <rguenther@suse.de>
1921 PR tree-optimization/38885
1922 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads
1925 2011-10-05 Bernd Schmidt <bernds@codesourcery.com>
1927 * doc/invoke.texi (-fshrink-wrap): Document.
1928 * opts.c (default_options_table): Add it.
1929 * common.opt (fshrink-wrap): Add.
1930 * function.c (emit_return_into_block): Remove useless declaration.
1931 (record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx,
1932 requires_stack_frame_p, gen_return_pattern): New static functions.
1933 (emit_return_into_block): New arg simple_p. All callers changed.
1934 Use gen_return_pattern.
1935 (thread_prologue_and_epilogue_insns): Implement shrink-wrapping.
1936 * config/i386/i386.md (return): Expand into a simple_return.
1937 (simple_return): New expander):
1938 (simple_return_internal, simple_return_internal_long,
1939 simple_return_pop_internal_long, simple_return_indirect_internal):
1940 Renamed from return_internal, return_internal_long,
1941 return_pop_internal_long and return_indirect_internal; changed to use
1943 * config/i386/i386.c (ix86_expand_epilogue): Adjust to expand
1945 (ix86_pad_returns): Likewise.
1946 * function.h (struct rtl_data): Add member shrink_wrapped.
1947 * cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that
1948 are not jumps or sibcalls can't be compared.
1950 2011-10-05 Richard Guenther <rguenther@suse.de>
1952 * tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of
1954 (simplify_unary_expression): Handle BIT_FIELD_REFs.
1955 (try_to_simplify): Handle BIT_FIELD_REFs.
1957 2011-10-05 Georg-Johann Lay <avr@gjlay.de>
1959 * config/avr/avr-protos.h (avr_out_addto_sp): New prototype.
1960 * config/avr/avr.c (avr_out_addto_sp): New function.
1961 (adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP.
1962 * config/avr/avr.md (adjust_len): Add "addto_sp".
1963 (*movhi_sp): Remove insn.
1964 (*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R.
1966 2011-10-05 Richard Guenther <rguenther@suse.de>
1968 * gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops
1969 with an embedded expression valueize and fold that as well.
1970 * tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name
1971 results from gimple_fold_stmt_to_constant_1.
1973 2011-10-05 Nick Clifton <nickc@redhat.com>
1975 * config/rx/rx.md (tablejump): Add missing label.
1976 (adddi3_internal): Mark operand 0 as early-clobbered.
1977 (smaxsi3): Revert previous delta.
1978 (adc_internal): Fix whitespace in generated asm.
1979 (adc_flags): Likewise.
1981 2011-10-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1983 * expmed.c (expand_mult_highpart_optab): Replace optab_handler
1984 with the new widening_optab_handler.
1986 2011-10-05 Richard Guenther <rguenther@suse.de>
1988 PR tree-optimization/50609
1989 * gimple-fold.c (fold_array_ctor_reference): Also handle
1990 vector typed constructors.
1991 (fold_ctor_reference): Dispatch to fold_array_ctor_reference
1992 for vector typed constructors.
1994 2011-10-05 Uros Bizjak <ubizjak@gmail.com>
1996 * config/i386/i386.c (ix86_emit_binop): New static function.
1997 (ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl
1999 (x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions.
2001 2011-10-04 David S. Miller <davem@davemloft.net>
2003 * config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB,
2004 UNSPEC_XMUL): New unspecs.
2005 (muldi3_v8plus): Use output_v8plus_mult.
2006 (*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend):
2007 New VIS 3.0 combiner patterns.
2008 (fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis,
2009 fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64,
2010 umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus,
2011 xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0
2013 * config/sparc/sparc.c (sparc_vis_init_builtins): Emit new builtins.
2014 (output_v8plus_mult): New function.
2015 * config/sparc/sparc-protos.h: Declare it.
2016 * config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd,
2017 __vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd,
2018 __vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics.
2019 * doc/extend.texi: Document new builtins.
2021 2011-10-04 Richard Henderson <rth@redhat.com>
2023 * c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
2024 Avoid save_expr unless two_arguments.
2026 2011-10-04 Ozkan Sezer <sezeroz@gmail.com>
2028 * config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT.
2029 * config/i386/mingw32.h (CPP_SPEC): Likewise.
2031 2011-10-04 David S. Miller <davem@davemloft.net>
2033 * config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc
2036 2011-10-04 Jakub Jelinek <jakub@redhat.com>
2038 PR tree-optimization/50604
2039 * builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy,
2040 fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure
2041 last argument to memcpy has size_type_node type instead of ssizetype.
2042 * tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node
2043 instead of TREE_TYPE (len) as type for newlen.
2045 PR tree-optimization/50522
2046 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Don't test
2048 (ptr_derefs_may_alias_p): Call pt_solutions_same_restrict_base
2051 * fold-const.c (fold_unary_loc): Don't optimize
2052 POINTER_PLUS_EXPR casted to TYPE_RESTRICT pointer by
2053 casting the inner pointer if it isn't TYPE_RESTRICT.
2054 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't through
2055 casts from non-TYPE_RESTRICT pointer to TYPE_RESTRICT pointer.
2057 2011-10-04 Joseph Myers <joseph@codesourcery.com>
2059 * config.gcc (i[34567]86-*-elf*, x86_64-*-elf*): Use i386/t-crtstuff.
2061 2011-10-04 Jan Hubicka <jh@suse.cz>
2063 * lto-streamer.h (lto_input_toplevel_asms): Add order_base parameter.
2064 * lto-streamer-in.c (lto_input_toplevel_asms): Stream in order.
2065 * lto-streamer-out.c (lto_output_toplevel_asms): Stream out order.
2066 * lto-cgraph.c (order_base): New static var.
2067 (lto_output_node): Stream in order.
2068 (lto_output_varpool_node): Stream out order.
2069 (input_node): Stream in order.
2070 (input_varpool_node): Stream out order.
2071 (input_cgraph_1): Initialize order base; update call of
2072 lto_input_toplevel_asms.
2074 2011-10-04 Georg-Johann Lay <avr@gjlay.de>
2077 * config/avr/avr-protos.h (avr_legitimize_reload_address): New
2079 * config/avr/avr.h (LEGITIMIZE_RELOAD_ADDRESS): Copy worker code
2081 * config/avr/avr.c (avr_legitimize_reload_address) ...to this new
2082 function. Log if avr_log.legitimize_reload_address.
2084 2011-10-04 Eric Botcazou <ebotcazou@adacore.com>
2086 * config/sparc/sparc.c (sparc_fold_builtin): Use a sequence of tests.
2088 2011-10-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2090 * longlong.h (smul_ppmm, sdiv_qrnnd): Add underscores to the local
2091 variables. Fix second operand of DR. Swap inputs for sdiv_qrnnd.
2093 2011-10-03 David S. Miller <davem@davemloft.net>
2095 * config/sparc/sparc.md (fpack16_vis, fpackfix_vis, fpack32_vis): Make
2096 GSR_REG an input operand to UNSPEC instead of a parallel USE.
2097 (faligndata<V64I:mode>_vis): Likewise and use DI mode.
2098 (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis, alignaddrldi_vis):
2099 Reference GSR_REG in DI mode, simplify convoluted expressions by using
2101 (bshuffle<V64I:mode>_vis): Reference GSR_REG in DI mode.
2103 2011-10-03 Maxim Kuvyrkov <maxim@codesourcery.com>
2105 * tree-eh.c (remove_unreachable_handlers): Obvious cleanup.
2107 2011-10-03 Jakub Jelinek <jakub@redhat.com>
2108 Ian Lance Taylor <iant@google.com>
2110 * godump.c (go_output_typedef): Support printing enum values that
2111 don't fit in a signed HOST_WIDE_INT.
2113 2011-10-03 Anatoly Sokolov <aesok@post.ru>
2115 * config/cris/cris.c (cris_output_addr_const_extra): Make static.
2116 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2117 * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
2118 * config/cris/cris-protos.h (cris_output_addr_const_extra): Remove.
2120 2011-10-03 Anatoly Sokolov <aesok@post.ru>
2122 * config/m68k/m68k.c (m68k_output_addr_const_extra): Make static.
2123 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
2124 * config/m68k/m68k.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
2125 * config/m68k/m68k-protos.h (m68k_output_addr_const_extra): Remove.
2127 2011-10-03 Steve Ellcey <sje@cup.hp.com>
2130 * configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*.
2131 (gcc_cv_ld_static_option): Ditto.
2132 (gcc_cv_ld_dynamic_option): Ditto.
2133 * configure: Regenerate.
2135 2011-10-03 David S. Miller <davem@davemloft.net>
2137 * config/sparc/sparc.md (bmask<P:mode>_vis): Split into explicit 'di'
2138 and 'si' patterns which describe the GSR changes explicitly in the
2139 RTL using zero_extract.
2140 (bshuffle<V64I:mode>_vis): Put the GSR use inside of the unspec.
2142 * config/sparc/sparc.md (bshuffle<V64I:mode>_vis): Don't wrap
2143 GSR_REG in a USE, since it's now a true arg to the UNSPEC.
2145 2011-10-03 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
2147 * optabs.c (expand_vec_shuffle_expr_p): New function. Checks
2148 if given expression can be expanded by the target.
2149 (expand_vec_shuffle_expr): New function. Expand VEC_SHUFFLE_EXPR
2150 using target vector instructions.
2151 * optabs.h: New optab vshuffle.
2152 (expand_vec_shuffle_expr_p): New prototype.
2153 (expand_vec_shuffle_expr): New prototype.
2154 (vshuffle_optab): New optab.
2155 * genopinit.c: Adjust to support vecshuffle.
2156 * c-tree.h (c_build_vec_shuffle_expr): New prototype.
2157 * expr.c (expand_expr_real_2): Adjust.
2158 * c-typeck.c: (c_build_vec_shuffle_expr): Build a VEC_SHUFFLE_EXPR
2159 recognizing the cases of two and three arguments.
2160 (convert_arguments) (build_binary_op)
2161 (scalar_to_vector) (build_array_ref): Spurious whitespace.
2162 * gimplify.c (gimplify_exp): Adjusted to support VEC_SHUFFLE_EXPR.
2163 * tree.def: New tree code VEC_SHUFFLE_EXPR.
2164 * tree-inline.c (estimate_operator_cost): Recognize VEC_SHUFFLE_EXPR.
2165 * tree-vect-generic.c (vector_element): New function. Returns an
2166 element of the vector at the given position.
2167 (lower_vec_shuffle): Checks if VEC_SHUFLLE_EXPR is supported
2168 by the backend or expand an expression piecewise.
2169 (expand_vector_operations_1): Adjusted.
2170 (gate_expand_vector_operations_noop): New gate function.
2171 * Makefile.in (tree-vect-generic.o): New include.
2172 * gimple.c (get_gimple_rhs_num_ops): Adjust.
2173 * tree-cfg.c (verify_gimple_assign_trenary): Verify VEC_SHUFFLE_EXPR.
2174 * passes.c: Move veclower down.
2175 * tree-pretty-print.c (dump_generic_node): Recognize
2176 VEC_SHUFFLE_EXPR as valid expression.
2177 * c-parser.c (c_parser_get_builtin_args): Helper function for the
2178 builtins with variable number of arguments.
2179 (c_parser_postfix_expression): Use a new helper function for
2180 RID_CHOOSE_EXPR, RID_BUILTIN_COMPLEX and RID_BUILTIN_SHUFFLE.
2181 * tree-ssa-operands: Adjust.
2182 * c-family/c-common.c: New __builtin_shuffle keyword.
2183 * c-family/c-common.h: New __builtin_shuffle keyword.
2184 * gcc/doc/extend.texi: Adjust.
2186 * gcc/config/i386/sse.md: (sseshuffint) New mode_attr. Correspondence
2187 between the vector and the type of the mask when shuffling.
2188 (vecshuffle<mode>): New expansion.
2189 * gcc/config/i386/i386-protos.h (ix86_expand_vshuffle): New prototype.
2190 * gcc/config/i386/i386.c (ix86_expand_vshuffle): New function.
2191 (ix86_vectorize_builtin_vec_perm_ok): Adjust.
2193 2011-10-03 Jakub Jelinek <jakub@redhat.com>
2195 PR tree-optimization/50587
2196 * tree-ssa-reassoc.c (init_range_entry): Stop iterating when
2197 arg0 is not a SSA_NAME.
2199 2011-10-03 Richard Sandiford <rdsandiford@googlemail.com>
2201 * ipa-inline-analysis.c (MAX_TIME): Update comment.
2203 2011-10-02 Richard Henderson <rth@redhat.com>
2204 David S. Miller <davem@davemloft.net>
2206 * config/sparc/sparc.md (ashlsi3, *ashldi3_sp64): Remove
2207 conditional insn type setting, we always emit a shift.
2208 (*ashlsi3_extend, *lshrsi3_extend0): New patterns.
2209 (*lshrsi3_extend): Rename to *lshrsi3_extend1.
2210 * config/sparc/predicates.md (const_one_operand): Delete.
2212 2011-10-02 Gerald Pfeifer <gerald@pfeifer.com>
2214 * invoke.texi (SPARC Options): Refer to GNU/Linux.
2216 2011-10-02 Richard Sandiford <rdsandiford@googlemail.com>
2218 * config/mips/mips.c (mips_frame_barrier): New function.
2219 (mips_expand_prologue): Call it after allocating stack space.
2220 (mips_deallocate_stack): New function.
2221 (mips_expand_epilogue): Call mips_frame_barrier and
2222 mips_deallocate_stack.
2224 2011-10-02 Richard Sandiford <rdsandiford@googlemail.com>
2227 * config/mips/sync.md (sync_<optab>_12): Allow zero operands.
2228 (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise.
2229 (sync_old_nand_12, sync_new_nand_12, test_and_set_12): Likewise.
2231 2011-10-02 Jan Hubicka <jh@suse.cz>
2233 * cgraphunit.c (verify_edge_count_and_frequency): Bounds check.
2235 * cgraphunit.c (ipa_passes): Remove unrechable nodes.
2236 * lto-streamer-out.c (produce_symtab): Skip unused extern declarations.
2237 * ipa.c (cgraph_remove_unreachable_nodes): Do not assume that external
2238 functions are reachable when address is taken.
2239 * tree-sra.c (modify_function): Free dominance info.
2241 2011-10-02 Jan Hubicka <jh@suse.cz>
2243 * ipa-inline-analysis.c (inline_summary_alloc): Bounds check.
2245 * ipa-inline-analysis.c (reset_inline_edge_summary): New function.
2246 (reset_inline_summary): New function.
2247 (compute_inline_parameters, inline_node_removal_hook,
2248 inline_edge_removal_hook): Use it.
2249 (inline_free_summary): Reset holders correctly.
2250 (inline_generate_summary): Free summary before computing it.
2252 2011-10-02 Paolo Carlini <paolo.carlini@oracle.com>
2254 PR preprocessor/36819
2255 * incpath.c (merge_include_chains): Call free_path on
2256 heads[QUOTE] and tails[QUOTE].
2258 2011-10-02 Jan Hubicka <jh@suse.cz>
2261 * lto-symtab.c (lto_symtab_resolve_symbols): Do not resolve
2262 when resolution is already availbale from plugin.
2263 (lto_symtab_merge_decls_1): Handle LDPR_PREVAILING_DEF_IRONLY_EXP.
2264 * cgraph.c (ld_plugin_symbol_resolution): Add
2265 prevailing_def_ironly_exp.
2266 * lto-cgraph.c (LDPR_NUM_KNOWN): Update.
2267 * ipa.c (varpool_externally_visible_p): IRONLY variables are never
2269 * varasm.c (resolution_to_local_definition_p): Add
2270 LDPR_PREVAILING_DEF_IRONLY_EXP.
2271 (resolution_local_p): Likewise.
2273 2011-10-01 David S. Miller <davem@davemloft.net>
2275 * config/sparc/sparc.opt (VIS3): New option.
2276 * doc/invoke.texi: Document it.
2277 * config/sparc/sparc.h: Force TARGET_VIS3 to zero if assembler is
2278 not capable of such instructions.
2279 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
2280 to 0x300 when TARGET_VIS3.
2281 * config/sparc/sparc-modes.def: Create 16-byte vector modes.
2282 * config/sparc/sparc.md (UNSPEC_CMASK8, UNSPEC_CMASK16, UNSPEC_CMASK32,
2283 UNSPEC_FCHKSM16, UNSPEC_PDISTN, UNSPC_FUCMP): New unspecs.
2284 (V64N8, VASS): New mode iterators.
2285 (vis3_shift, vis3_addsub_ss): New code iterators.
2286 (vbits, vconstr): New mode attributes.
2287 (vis3_shift_insn, vis3_addsub_ss_insn): New code attributes.
2288 (cmask8<P:mode>_vis, cmask16<P:mode>_vis, cmask32<P:mode>_vis,
2289 fchksm16_vis, <vis3_shift_insn><vbits>_vis, pdistn<mode>_vis,
2290 fmean16_vis, fpadd64_vis, fpsub64_vis,
2291 <vis3_addsub_ss_insn><vbits>_vis, fucmp<code>8<P:mode>_vis): New
2292 VIS 3.0 instruction patterns.
2293 * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS3 by
2294 default when targetting capable cpus. TARGET_VIS3 implies
2295 TARGET_VIS2 and TARGET_VIS, and clear them when TARGET_FPU is disabled.
2296 (sparc_vis_init_builtins): Emit new VIS 3.0 builtins.
2297 (sparc_fold_builtin): Do not eliminate cmask{8,16,32} when result
2299 * config/sparc/visintrin.h (__vis_cmask8, __vis_cmask16,
2300 __vis_cmask32, __vis_fchksm16, __vis_fsll16, __vis_fslas16,
2301 __vis_fsrl16, __vis_fsra16, __vis_fsll32, __vis_fslas32,
2302 __vis_fsrl32, __vis_fsra32, __vis_pdistn, __vis_fmean16,
2303 __vis_fpadd64, __vis_fpsub64, __vis_fpadds16, __vis_fpadds16s,
2304 __vis_fpsubs16, __vis_fpsubs16s, __vis_fpadds32, __vis_fpadds32s,
2305 __vis_fpsubs32, __vis_fpsubs32s, __vis_fucmple8, __vis_fucmpne8,
2306 __vis_fucmpgt8, __vis_fucmpeq8): New VIS 3.0 interfaces.
2307 * doc/extend.texi: Document new VIS 3.0 builtins.
2309 2011-10-01 Eric Botcazou <ebotcazou@adacore.com>
2311 * ira-color.c (assign_hard_reg): Fix typo.
2313 2011-09-30 H.J. Lu <hongjiu.lu@intel.com>
2315 * doc/extend.texi: Add missing ','.
2317 2011-09-30 Bernd Schmidt <bernds@codesourcery.com>
2319 * common/config/c6x/c6x-common.c (c6x_option_optimization_table):
2320 Enable -fmodulo-sched at -O2 and above.
2321 * config/c6x/c6x.md (doloop_end): New expander.
2322 (mvilc, sploop, spkernel, loop_end): New patterns.
2323 (loop_end with memory destination splitter): New.
2324 * config/c6x/c6x.c: Include "hw-doloop.h".
2325 (enum unitreqs): New.
2326 (unit_req_table): New typedef.
2327 (unit_reqs): New static variable.
2328 (unit_req_factor, get_unit_reqs, count_unit_reqs, merge_unit_reqs,
2329 res_mii, split_delayed_nonbranch, undo_split_delayed_nonbranch,
2330 hwloop_pattern_reg, bb_earliest_end_cycle, filter_insns_above,
2331 hwloop_optimize, hwloop_fail, c6x_hwloops): New static functions.
2332 (struct c6x_sched_context): New member last_scheduled_iter0.
2333 (init_sched_state): Initialize it.
2334 (c6x_variable_issue): Update it.
2335 (sploop_max_uid_iter0): New static variable.
2336 (c6x_sched_reorder_1): Be careful about issuing sploop.
2337 (c6x_reorg): Call c6x_hwlooops before the final schedule.
2339 2011-09-30 Georg-Johann Lay <avr@gjlay.de>
2342 * config/avr/avr-protos.h (avr_log_t): New field address_cost.
2343 * config/avr/avr.c (avr_address_cost): Use it.
2344 * config/avr/avr-log.c (avr_log_set_avr_log): Initialize it.
2345 (avr_log_vadump): Unknown %-codes finish printing.
2347 2011-09-30 Jakub Jelinek <jakub@redhat.com>
2350 * gimple-fold.c (fold_stmt_1) <case GIMPLE_ASM>: If
2351 input constraints allow mem and not reg, pass true instead of
2352 false as second argument to maybe_fold_reference.
2354 PR tree-optimization/46309
2355 * fold-const.c (make_range, merge_ranges): Remove prototypes.
2356 (make_range_step): New function.
2357 (make_range): Use it.
2358 * tree.h (make_range_step): New prototypes.
2359 * Makefile.in (tree-ssa-reassoc.o): Depend on $(DIAGNOSTIC_CORE_H).
2360 * tree-ssa-reassoc.c: Include diagnostic-core.h.
2361 (struct range_entry): New type.
2362 (init_range_entry, range_entry_cmp, update_range_test,
2363 optimize_range_tests): New functions.
2364 (reassociate_bb): Call optimize_range_tests.
2366 2011-09-30 Jakub Jelinek <jakub@redhat.com>
2367 Richard Guenther <rguenther@suse.de>
2369 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Handle
2370 BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
2371 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise. Fix
2372 handling of BUILT_IN_STRNCAT and BUILT_IN_STRNCAT_CHK.
2373 (ref_maybe_used_by_call_p_1): Fix handling of BUILT_IN_STRCAT,
2374 BUILT_IN_STRNCAT, BUILT_IN_STRCAT_CHK and BUILT_IN_STRNCAT_CHK.
2376 2011-09-30 Jan Beulich <jbeulich@suse.com>
2378 * lto-cgraph.c (output_cgraph): Remove processing of
2379 'cgraph_asm_nodes', call lto_output_toplevel_asms() instead.
2380 (input_cgraph_1): Remove loop calling cgraph_add_asm_node(), call
2381 lto_input_toplevel_asms() instead.
2382 * lto-section-in.c (lto_section_name): Add "asm" entry.
2383 * lto-streamer-in.c (lto_input_toplevel_asms): New.
2384 * lto-streamer-out.c (lto_output_toplevel_asms): New.
2385 * lto-streamer.h (LTO_minor_version): Bump.
2386 (enum lto_section_type): Add LTO_section_asm.
2387 (struct lto_asm_header): New.
2388 (lto_input_toplevel_asms, lto_output_toplevel_asms): Declare.
2389 * tree-streamer.h (streamer_write_string_cst): Declare.
2390 * tree-streamer-out.c (write_string_cst): Rename to
2391 streamer_write_string_cst and make global. Handle incoming string
2393 (streamer_write_tree_header): Adjust call to renamed function.
2395 2011-09-30 Bernd Schmidt <bernds@codesourcery.com>
2397 * haifa-sched.c (modulo_ii, modulo_max_states, modulo_n_insns,
2398 modulo_insns_scheduled, modulo_iter0_max_uid, modulo_backtracks_left,
2399 modulo_last_stage): New static variables.
2400 (set_modulo_params, discard_delay_pairs_above): New functions.
2401 (struct delay_pair): New member stages.
2402 (htab_i2_traverse, htab_i1_traverse): New static functions.
2403 (record_delay_slot_pair): New arg stages. All callers changed.
2405 (pair_delay): Take stages into account.
2406 (add_delay_dependencies): Don't do so for stage pairs.
2407 (struct sched_block_state): New member modulo_epilogue.
2408 (save_backtrack_point): Don't set SHADOW_P for stage pairs.
2409 (unschedule_insns_until): Decrease modulo_insns_scheduled.
2410 Set HARD_DEP without using or.
2411 (resolve_dependencies): New static function.
2412 (prune_ready_list): New arg modulo_epilogue_p. All callers changed.
2413 If it is true, allow only insns with INSN_EXACT_TICK set.
2414 (schedule_block): Return bool, always true for normal scheduling,
2415 true or false depending on modulo scheduling success otherwise.
2416 Add bookkeeping for modulo scheduling, and call resolve_dependencies
2417 on everything left over after a modulo schedule.
2418 (haifa_sched_init): Remove check_cfg call. Clear modulo_ii.
2419 * sched-int.h (schedule_block, record_delay_slot_pair): Adjust
2421 (set_modulo_params, discard_delay_pairs_above): Declare.
2422 * params.def (PARAM_MAX_MODULO_BACKTRACK_ATTEMPS): New.
2423 * doc/invoke.texi (--param): Document it.
2425 * sched-ebb.c (schedule_ebb): No longer static. Remove declaration.
2426 New arg modulo_scheduling. All callers changed. Move note handling
2427 code here from schedule_ebbs.
2428 (schedule_ebbs_finish, schedule_ebbs_init): New functions, broken
2429 out of schedule_ebbs.
2430 (schedule_ebbs): Call them. Remove note handling code moved to
2432 * sched-int.h (schedule_ebb, schedule_ebbs_init,
2433 schedule_ebbs_finish): Declare.
2435 2011-09-30 Richard Guenther <rguenther@suse.de>
2438 * tree-cfg.c (verify_gimple_comparison): Compare component
2439 mode sizes for vector comparisons.
2441 2011-09-30 Revital Eres <revital.eres@linaro.org>
2443 * ddg.c (autoinc_var_is_used_p): New function.
2444 (create_ddg_dep_from_intra_loop_link,
2445 add_cross_iteration_register_deps): Call it.
2446 * ddg.h (autoinc_var_is_used_p): Declare.
2447 * modulo-sched.c (generate_reg_moves): Call autoinc_var_is_used_p.
2448 (sms_schedule): Handle instructions with REG_INC.
2450 2011-09-30 Revital Eres <revital.eres@linaro.org>
2452 * modulo-sched.c (generate_reg_moves): Skip instructions that
2453 do not set a register and verify no regmoves are created for
2454 !single_set instructions.
2456 2011-09-30 Bernd Schmidt <bernds@codesourcery.com>
2458 * hw-doloop.c (scan_loop): Compute register usage only for non-debug
2461 2011-09-30 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2464 * config/arm/iterators.md (qhs_zextenddi_cstr): New.
2465 (qhs_zextenddi_op): New.
2466 * config/arm/arm.md ("zero_extend<mode>di2"): Use them.
2467 * config/arm/predicates.md ("arm_extendqisi_mem_op"):
2468 Distinguish between ARM and Thumb2 states.
2470 2011-09-30 David S. Miller <davem@davemloft.net>
2472 * config/sparc/sparc.opt (VIS2): New option.
2473 * doc/invoke.texi: Document it.
2474 * config/sparc/sparc.md (UNSPEC_EDGE8N, UNSPEC_EDGE8LN,
2475 UNSPEC_EDGE16N, UNSPEC_EDGE16LN, UNSPEC_EDGE32N,
2476 UNSPEC_EDGE32LN, UNSPEC_BSHUFFLE): New unspecs.
2477 (define_attr type): New insn type 'edgen'.
2478 (bmask<P:mode>_vis, bshuffle<V64I:mode>_vis, edge8n<P:mode>_vis,
2479 edge8ln<P:mode>_vis, edge16n<P:mode>_vis, edge16ln<P:mode>_vis,
2480 edge32n<P:mode>_vis, edge32ln<P:mode>_vis): New insn VIS 2.0
2482 * niagara.md: Handle edgen.
2483 * niagara2.md: Likewise.
2484 * ultra1_2.md: Likewise.
2485 * ultra3.md: Likewise.
2486 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__
2487 to 0x200 when TARGET_VIS2.
2488 * config/sparc/sparc.c (sparc_option_override): Set MASK_VIS2 by
2489 default when targetting capable cpus. TARGET_VIS2 implies
2490 TARGET_VIS, clear and it when TARGET_FPU is disabled.
2491 (sparc_vis_init_builtins): Emit new VIS 2.0 builtins.
2492 (sparc_expand_builtin): Fix predicate indexing when builtin returns
2494 (sparc_fold_builtin): Do not eliminate bmask when result is ignored.
2495 * config/sparc/visintrin.h (__vis_bmask, __vis_bshuffledi,
2496 __vis_bshufflev2si, __vis_bshufflev4hi, __vis_bshufflev8qi,
2497 __vis_edge8n, __vis_edge8ln, __vis_edge16n, __vis_edge16ln,
2498 __vis_edge32n, __vis_edge32ln): New VIS 2.0 interfaces.
2499 * doc/extend.texi: Document new VIS 2.0 builtins.
2501 2011-09-29 Nick Clifton <nickc@redhat.com>
2502 Bernd Schmidt <bernds@codesourcery.com>
2504 * config/frv/frvbegin.c: Fix location of unwind-dw2-fde.h header file.
2505 * config/frv/frvend.c: Likewise.
2506 * config/frv/frv.c (frv_function_prologue): Move misplaced
2507 CALL_ARG_LOCATION notes back to their proper locations.
2509 2011-09-29 Georg-Johann Lay <avr@gjlay.de>
2512 * config/avr/avr-log.c (avr_log_vadump): Use %b to print bool.
2513 * config/avr/avr.c (avr_rtx_costs_1): New static function, renamed
2515 (avr_legitimate_address_p): Use avr_edump to print log information
2516 filtered by avr_log.
2517 (extra_constraint_Q): Ditto.
2518 (avr_legitimize_address): Ditto.
2519 (avr_rtx_costs): Ditto. Rewrite as wrapper for avr_rtx_costs_1.
2520 (final_prescan_insn): Use avr_log.rtx_costs as filter.
2522 2011-09-29 Richard Sandiford <richard.sandiford@linaro.org>
2524 * config/arm/arm-protos.h (arm_modes_tieable_p): Declare.
2525 * config/arm/arm.h (MODES_TIEABLE_P): Use it.
2526 * config/arm/arm.c (arm_modes_tieable_p): New function. Allow
2527 NEON vector and structure modes to be tied.
2529 2011-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2531 * graphite-scop-detection.c (make_close_phi_nodes_unique): New
2532 forward declaration.
2533 (remove_duplicate_close_phi): Detect and repair creation of
2534 duplicate close-phis for a containing loop.
2536 2011-09-27 Andi Kleen <ak@linux.intel.com>
2538 * gcc.c (get_local_tick). Rename to get_random_number. Read from
2539 /dev/urandom. Add getpid call.
2540 (compare_debug_dump_opt_spec_function): Drop getpid call.
2542 2011-09-26 Andi Kleen <ak@linux.intel.com>
2544 * toplev.c (init_local_tick): Try reading random seed
2547 2011-09-26 Andi Kleen <ak@linux.intel.com>
2549 * hwint.h (HOST_WIDE_INT_PRINT_HEX_PURE): Add.
2550 * lto-streamer.c (lto_get_section_name): Remove crc32_string.
2551 Handle numerical random seed.
2552 * lto-streamer.h (lto_file_decl_data): Change id to
2553 unsigned HOST_WIDE_INT.
2554 * toplev.c (random_seed): Add.
2555 (init_random_seed): Change for numerical random seed.
2556 (get_random_seed): Return as HOST_WIDE_INT.
2557 (set_random_seed): Crc32 existing string.
2558 * toplev.h (get_random_seed): Change to numercal return.
2559 * tree.c (get_file_function_name): Remove CRC. Handle
2560 numerical random seed.
2562 2011-09-29 Georg-Johann Lay <avr@gjlay.de>
2565 * config.gcc (extra_objs): Add avr-log.o for $target in:
2566 avr-*-rtems*, avr-*-*.
2567 * config/avr/t-avr (avr-log.o): New rule to compile...
2568 * config/avr/avr-log.c: ...this new file.
2569 * config/avr/avr.opt (mlog=): New option.
2570 * config/avr/avr-protos.h (avr_edump, avr_fdump): New macros.
2571 (avr_log_set_caller_e, avr_log_set_caller_f): New prototypes.
2572 (avr_log_set_avr_log): New prototype.
2573 (avr_log_t): New typedef.
2574 (avr_log): New declaration.
2575 * config/avr/avr.c (avr_option_override): Call avr_log_set_avr_log.
2577 2011-09-29 Artjoms Sinkarovs <artyom.shinkaroff@gmail.com>
2579 * expr.c (do_store_flag): Expand vector comparison by
2580 building an appropriate VEC_COND_EXPR.
2581 * c-typeck.c (build_binary_op): Typecheck vector comparisons.
2582 (c_objc_common_truthvalue_conversion): Adjust.
2583 * tree-vect-generic.c (do_compare): Helper function.
2584 (expand_vector_comparison): Check if hardware supports
2585 vector comparison of the given type or expand vector piecewise.
2586 (expand_vector_operation): Treat comparison as binary
2587 operation of vector type.
2588 (expand_vector_operations_1): Adjust.
2590 2011-09-29 Richard Guenther <rguenther@suse.de>
2592 * tree.c (build_opaque_vector_type): Make opaque vectors
2593 variant types of the corresponding non-opaque type. Make
2594 sure to share opaque vector types properly.
2596 2011-09-29 David S. Miller <davem@davemloft.net>
2598 * config/sparc/sparc.md (UNSPEC_ARRAY8, UNSPEC_ARRAY16,
2599 UNSPEC_ARRAY32): New unspec.
2600 (define_attr type): New type 'array'.
2601 (array{8,16,32}<P:mode>_vis): New patterns.
2602 * config/sparc/ultra1_2.md: Add reservations for 'array'.
2603 * config/sparc/ultra3.md: Likewise.
2604 * config/sparc/niagara.md: Likewise.
2605 * config/sparc/niagara2.md: Likewise.
2606 * config/sparc/sparc.c (sparc_vis_init_builtins): Build new
2608 * config/sparc/visintrin.h (__vis_array8, __vis_array16,
2609 __vis_array32): New.
2610 * doc/extend.texi: Document new VIS builtins.
2612 * config/sparc/sparc.md (gcond_name): Delete unnecessary code attr.
2613 (VIS pixel-compare insn): Just use <gcond:name>.
2615 * config/sparc/sparc.md (VIS pixel-compare insn): There is only one
2616 code iterator used, so just use <code>. There are two mode iterators
2617 so explicitly use <GCM:gcm_name>.
2619 2011-09-29 Iain Sandoe <iains@gcc.gnu.org>
2621 * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Enable for
2624 2011-09-28 David S. Miller <davem@davemloft.net>
2626 * config/sparc/sparc.md (UNSPEC_FCMPLE, UNSPEC_FCMPNE,
2627 UNSPEC_FCMPGT, UNSPEC_FCMPEQ): Delete and reduce to...
2628 (UNSPEC_FCMP): New unspec.
2629 (gcond): New code iterator.
2630 (gcond_name): New code attr.
2631 (GCM): New mode iterator.
2632 (gcm_name): New mode attr.
2633 (fcmp{le,ne,gt,eq}{16,32}_vis): Reimplement using iterators.
2635 2011-09-28 Oleg Endo <oleg.endo@t-online.de>
2638 * config/sh/sh.md (negdi2): Move expansion into split to
2639 allow more combination options. Add T_REG clobber.
2640 (abssi2): New expander.
2641 (*negdi2, *abssi2, *negabssi2): New insns.
2642 (cneg): Change from insn to insn_and_split. Rename to
2643 negsi_cond. Add alternative for non-SH4.
2645 2011-09-28 Richard Sandiford <richard.sandiford@linaro.org>
2647 * config/arm/neon.md (neon_move_lo_quad_<mode>): Delete.
2648 (neon_move_hi_quad_<mode>): Likewise.
2649 (move_hi_quad_<mode>, move_lo_quad_<mode>): Use subreg moves.
2651 2011-09-28 Nick Clifton <nickc@redhat.com>
2653 * config/rx/predicates.md (rx_minmax_operand): New predicate.
2654 Accepts immediates and a restricted subset of MEMs.
2655 * config/rx/rx.md (int_modes): New iterator.
2656 (smaxsi3, sminsi3): Delete and replace with...
2657 (smax<int_mode>3, smin<int_mode>3): New patterns.
2658 (umax<>3_u, umax<>3_ur, umax<>3, umin<>3): New patterns.
2660 2011-09-28 Richard Guenther <rguenther@suse.de>
2663 * fold-const.c (try_move_mult_to_index): Handle &a.array the
2664 same as &a.array[0].
2666 2011-09-28 Kai Tietz <ktietz@redhat.com>
2668 * configure.ac: Add test for new section attribute
2669 specifier "e" via define HAVE_GAS_SECTION_EXCLUDE.
2670 * config.in: Regenerated.
2671 * configure: Regenerated.
2672 * config/i386/winnt.c (i386_pe_asm_named_section): Emit
2673 new section flag "e" for excluded sections, if supported.
2674 Otherwise we mark section withc SECTION_EXCLUDE flag as never-load.
2676 2011-09-28 Richard Sandiford <rdsandiford@googlemail.com>
2678 * config/m32r/m32r.md: Use match_test rather than eq/ne symbol_ref
2681 2011-09-28 Richard Sandiford <rdsandiford@googlemail.com>
2683 * config/iq2000/iq2000.md: Use match_test rather than eq/ne symbol_ref
2686 2011-09-27 Sriraman Tallam <tmsriram@google.com>
2688 * output.h (SECTION_EXCLUDE): New macro.
2689 * varasm.c (default_elf_asm_named_section): Check for SECTION_EXCLUDE.
2691 2011-09-27 Richard Sandiford <rdsandiford@googlemail.com>
2693 * fwprop.c (forward_propagate_and_simplify): After checking
2694 reg/subreg combinations, check whether the modes are the same.
2696 2011-09-27 Bernd Schmidt <bernds@codesourcery.com>
2697 Richard Sandiford <rdsandiford@googlemail.com>
2699 * config/mips/mips.c (mips_add_cfa_restore): New function.
2700 (mips16e_save_restore_reg): Use it.
2701 (mips_restore_reg): Likewise. Split double FPRs for
2702 REG_CFA_RESTORE notes.
2704 2011-09-27 Richard Sandiford <rdsandiford@googlemail.com>
2708 * tree-sra.c (build_ref_for_model): Use the type of the field as
2709 the type of the COMPONENT_REF.
2711 2011-09-27 Jeff Law <law@redhat.com>
2713 * ifcvt.c (cheap_bb_rtx_cost_p): Add SCALE argument. Scale
2714 non-jumping insns by REG_BR_PROB_BASE and the maximum cost by SCALE.
2715 (find_if_case_1): Use the probability of the THEN clause when
2716 determining if speculation is profitable.
2717 (find_if_case_2): Similarly for the ELSE clause.
2719 2011-09-27 Jakub Jelinek <jakub@redhat.com>
2721 * common.opt: Add -foptimize-strlen option.
2722 * Makefile.in (OBJS): Add tree-ssa-strlen.o.
2723 (tree-sssa-strlen.o): Add dependencies.
2724 * opts.c (default_options_table): Enable -foptimize-strlen
2725 by default at -O2 if not -Os.
2726 * passes.c (init_optimization_passes): Add pass_strlen
2727 after pass_object_sizes.
2728 * timevar.def (TV_TREE_STRLEN): New timevar.
2729 * params.def (PARAM_MAX_TRACKED_STRLENS): New parameter.
2730 * tree-pass.h (pass_strlen): Declare.
2731 * tree-ssa-strlen.c: New file.
2732 * c-decl.c (merge_decls): If compatible stpcpy prototype
2733 is seen, set implicit_built_in_decls[BUILT_IN_STPCPY].
2735 2011-09-27 Tom de Vries <tom@codesourcery.com>
2738 * tree-ssa-tail-merge.c: New file.
2739 (struct same_succ_def): Define.
2740 (same_succ, const_same_succ): New typedef.
2741 (struct bb_cluster_def): Define.
2742 (bb_cluster, const_bb_cluster): New typedef.
2743 (struct aux_bb_info): Define.
2744 (BB_SIZE, BB_SAME_SUCC, BB_CLUSTER, BB_VOP_AT_EXIT): Define.
2745 (gvn_uses_equal): New function.
2746 (same_succ_print, same_succ_print_traverse, update_dep_bb)
2747 (stmt_update_dep_bb, local_def, same_succ_hash)
2748 (inverse_flags, same_succ_equal, same_succ_alloc, same_succ_delete)
2749 (same_succ_reset): New function.
2750 (same_succ_htab, same_succ_edge_flags)
2751 (deleted_bbs, deleted_bb_preds): New var.
2752 (debug_same_succ): New function.
2753 (worklist): New var.
2754 (print_worklist, add_to_worklist, find_same_succ_bb, find_same_succ)
2755 (init_worklist, delete_worklist, delete_basic_block_same_succ)
2756 (same_succ_flush_bbs, purge_bbs, update_worklist): New function.
2757 (print_cluster, debug_cluster, update_rep_bb)
2758 (add_bb_to_cluster, new_cluster, delete_cluster): New function.
2759 (all_clusters): New var.
2760 (alloc_cluster_vectors, reset_cluster_vectors, delete_cluster_vectors)
2761 (merge_clusters, set_cluster): New function.
2762 (gimple_equal_p, gsi_advance_bw_nondebug_nonlocal, find_duplicate)
2763 (same_phi_alternatives_1, same_phi_alternatives, bb_has_non_vop_phi)
2764 (deps_ok_for_redirect_from_bb_to_bb, deps_ok_for_redirect)
2765 (find_clusters_1, find_clusters): New function.
2766 (update_vuses, vop_phi, vop_at_entry, replace_block_by): New function.
2767 (update_bbs): New var.
2768 (apply_clusters): New function.
2769 (update_debug_stmt, update_debug_stmts): New function.
2770 (tail_merge_optimize): New function.
2771 tree-pass.h (tail_merge_optimize): Declare.
2772 * tree-ssa-pre.c (execute_pre): Use tail_merge_optimize.
2773 * Makefile.in (OBJS-common): Add tree-ssa-tail-merge.o.
2774 (tree-ssa-tail-merge.o): New rule.
2775 * opts.c (default_options_table): Set OPT_ftree_tail_merge by
2776 default at OPT_LEVELS_2_PLUS.
2777 * tree-ssa-sccvn.c (vn_valueize): Move to ...
2778 * tree-ssa-sccvn.h (vn_valueize): Here.
2779 * timevar.def (TV_TREE_TAIL_MERGE): New timevar.
2780 * common.opt (ftree-tail-merge): New switch.
2781 * params.def (PARAM_MAX_TAIL_MERGE_COMPARISONS)
2782 (PARAM_MAX_TAIL_MERGE_ITERATIONS): New parameter.
2783 * doc/invoke.texi (Optimization Options, -O2): Add -ftree-tail-merge.
2784 (-ftree-tail-merge, max-tail-merge-comparisons)
2785 (max-tail-merge-iterations): New item.
2787 2011-09-27 Jan Hubicka <jh@suse.cz>
2789 * ipa-inline-analysis.c (MAX_TIME): Reduce to avoid overflows.
2791 2011-09-27 Jan Hubicka <jh@suse.cz>
2793 * ipa-inline-analysis.c (eliminated_by_inlining_prob): Handle
2794 parameters passed by reference; handle loads from non-SSA scalars
2795 and update comments.
2797 2011-09-27 Bernd Schmidt <bernds@codesourcery.com>
2799 PR rtl-optimization/50249
2800 * reload1.c (reload_reg_reaches_end_p): Accept a reloadnum argument
2801 instead of opnum and type. All callers changed. Remove useless
2803 Search forward for other reloads of the same type for the same operand
2804 using the same register; if any are found, return false.
2805 (reload_regs_reach_end_p): Same argument changes; all callers changed.
2807 2011-09-27 Andi Kleen <ak@linux.intel.com>
2808 Jan Hubicka <jh@suse.cz>
2810 * doc/invoke.texi (ffat-lto-objects): Document.
2811 * toplev.c (compile_file): Do not output assembly when doing slim lto;
2812 Output __gnu_slim_lto when doing slim lto.
2813 * cgraphunit.c (ipa_passes): Do only analysis when producing slim lto.
2814 (cgraph_optimize): Return early when doing slim lto.
2815 * opts.c (finish_options): Complain about lack of linker plugin
2816 when doing slim lto.
2817 * common.opt (ffat-lto-objects): New.
2819 2011-09-27 Richard Sandiford <richard.sandiford@linaro.org>
2821 * ipa-inline-analysis.c (predicate_probability): Avoid comparison
2822 between signed and unsigned.
2824 2011-09-27 Ira Rosen <ira.rosen@linaro.org>
2826 * tree-vect-stmts.c (vectorizable_type_demotion): Handle basic block
2828 (vectorizable_type_promotion): Likewise.
2829 (vect_analyze_stmt): Call vectorizable_type_demotion and
2830 vectorizable_type_promotion for basic blocks.
2831 (supportable_widening_operation): Don't assume loop vectorization.
2832 * tree-vect-slp.c (vect_build_slp_tree): Allow multiple types for
2833 basic blocks. Update vectorization factor for basic block
2835 (vect_analyze_slp_instance): Allow multiple types for basic block
2836 vectorization. Recheck unrolling factor after construction of SLP
2839 2011-09-27 Richard Guenther <rguenther@suse.de>
2841 * tree-object-size.c (compute_object_sizes): Fix dumping of
2844 2011-09-27 Richard Guenther <rguenther@suse.de>
2846 PR tree-optimization/50363
2847 * tree-ssa-pre.c (create_expression_by_pieces): Handle
2848 pointer conversions in POINTER_PLUS_EXPRs properly.
2850 2011-09-27 Richard Sandiford <richard.sandiford@linaro.org>
2852 * config/arm/neon.md (neon_vget_highv16qi, neon_vget_highv8hi)
2853 (neon_vget_highv4si, neon_vget_highv4sf, neon_vget_highv2di)
2854 (neon_vget_lowv16qi, neon_vget_lowv8hi, neon_vget_lowv4si)
2855 (neon_vget_lowv4sf, neon_vget_lowv2di): Turn into define_expands
2856 that produce subreg moves. Define using VQX iterators.
2858 2011-09-27 Georg-Johann Lay <avr@gjlay.de>
2860 * config/avr/avr.md (ashrqi3): Split alternative "n"
2861 into its remaining parts C03, C04, C05, C06, C07 and describe
2862 impact in CC by attribute "cc" appropriately.
2863 * config/avr/avr.c (notice_update_cc): Clean-up: Don't patch CC0
2866 2011-09-27 Jakub Jelinek <jakub@redhat.com>
2868 * rtl.h (const_tiny_rtx): Change into array of 4 x MAX_MACHINE_MODE
2869 from 3 x MAX_MACHINE_MODE.
2870 (CONSTM1_RTX): Define.
2871 * emit-rtl.c (const_tiny_rtx): Change into array of
2872 4 x MAX_MACHINE_MODE from 3 x MAX_MACHINE_MODE.
2873 (gen_rtx_CONST_VECTOR): Use CONSTM1_RTX if all inner constants are
2875 (init_emit_once): Initialize CONSTM1_RTX for MODE_INT and
2876 MODE_VECTOR_INT modes.
2877 * simplify-rtx.c (simplify_binary_operation_1) <case IOR, XOR, AND>:
2878 Optimize if one operand is CONSTM1_RTX.
2879 * config/i386/i386.c (ix86_expand_sse_movcc): Optimize mask ? -1 : x
2882 2011-09-26 David S. Miller <davem@davemloft.net>
2884 * config/sparc/sparc.md (edge{8,16,32}{,l}): Return Pmode.
2885 (fcmp{le,ne,gt,eq}{16,32}): Likewise.
2886 * config/sparc/visintrin.h: Update edge and pixel-compare
2887 intrinsics to return 'long' instead of 'int'.
2888 * doc/extend.texi: Update documentation to match.
2889 * config/sparc/sparc.c (eligible_for_return_delay): When leaf or
2890 flat, allow any instruction. Otherwise, when V9 allow parallels
2891 which consist only of sets to registers outside of %o0 to %o5.
2892 (sparc_vis_init_builtins): Update VIS builtin types for edge
2895 * config/sparc/sparc.c (sparc_conditional_register_usage): When VIS
2896 is enabled, mark %gsr as global.
2897 * config/sparc/sparc.md (UNSPEC_WRGSR): Delete.
2898 (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus): Don't wrap in an unspec.
2900 * config/sparc/sparc-c.c: New file implementing sparc_target_macros,
2901 which will now define __VIS and __VIS__ when -mvis is enabled.
2902 * config/sparc/t-sparc: Likewise.
2903 * config.gcc: Add sparc-c.o to c_target_objs and cxx_target_objs,
2904 and add t-sparc to tmake_file for all sparc targets.
2905 * config/sparc/sparc-protos.h (sparc_target_macros): Declare.
2906 * config/sparc/sparc.h (TARGE_CPU_CPP_BUILTINS): Call it.
2908 * config/sparc/sparc.c (sparc_vis_init_builtins): Add explicit
2909 builtins for VIS vector addition and subtraction.
2910 * config/sparc/visintrin.h (__vis_fpadd16, __vis_fpadd16s,
2911 __vis_fpadd32, __vis_fpadd32s, __vis_fpsub16, __vis_fpsub16s,
2912 __vis_fpsub32, __vis_fpsub32s): New.
2913 * doc/extend.texi: Document new VIS intrinsics.
2915 2011-09-26 Georg-Johann Lay <avr@gjlay.de>
2917 * config/avr/avr.md (peephole casesi+2): Use -1 instead of 65536.
2918 * config/avr/avr.c (avr_out_compare): Print shorter sequence for
2919 EQ/NE comparisons against +/-1 in the case of unused-after,
2922 2011-09-26 Jakub Jelinek <jakub@redhat.com>
2924 * gimple-fold.c (gimplify_and_update_call_from_tree): Set
2925 gctx.into_ssa after push_gimplify_context.
2927 * gimple.c (gimple_build_call_valist): New function.
2928 * gimple.h (gimple_build_call_valist): New prototype.
2929 * tree-ssa-propagate.c (finish_update_gimple_call): New function.
2930 (update_gimple_call): Likewise.
2931 (update_call_from_tree): Use finish_update_gimple_call.
2932 * tree-ssa-propagate.h (update_gimple_call): New prototype.
2934 2011-09-26 Richard Guenther <rguenther@suse.de>
2936 PR tree-optimization/50472
2937 * gimple-fold.c (fold_const_aggregate_ref_1): Do not fold
2938 volatile references.
2940 2011-09-26 Bingfeng Mei <bmei@broadcom.com>
2942 * doc/tm.texi: Correct documentation for TARGET_ADDR_SPACE_SUBSET_P.
2943 * target.def: (addr_space_subset_p): Likewise.
2945 2011-09-26 Tom de Vries <tom@codesourcery.com>
2947 * tree-ssa-alias.h (pt_solution_singleton_p): Declare.
2948 * tree-ssa-structalias.c (pt_solution_singleton_p): New function.
2949 * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Set points-to solution
2952 2011-09-26 Georg-Johann Lay <avr@gjlay.de>
2955 * config/avr/avr-protos.h (output_reload_insisf): Don't pass insn.
2956 * config/avr/avr.md (*reload_insi, *reload_insf): Change call to
2957 output_reload_insisf.
2958 (adjust_len): Set default to "no".
2959 Remove alternative "yes". Add alternatives: "mov8", "mov16",
2960 "mov32", "ashlqi", "ashrqi", "lshrqi", "ashlhi", "ashrhi",
2961 "lshrhi", "ashlsi, "ashrsi", "lshrsi".
2962 (*movqi, *movhi, *movsi, *ashlqi3, ashlhi3, ashlsi3,
2963 *ashlhi3_const, *ashlsi3_const, ashrqi3, ashrhi3, ashrsi3,
2964 *ashrhi3_const, *ashrsi3_const, *lshrqi3, lshrhi3, *lshrhi3_const,
2965 *lshrsi3_const): Set attribute "adjust_len".
2966 * config/avr/avr.c (output_reload_insisf): Remove parameter "insn".
2967 (output_movsisf): Don't pass insn to output_reload_insisf.
2968 (adjust_insn_length): Handle new alternatives to adjust_len.
2969 Remove handling of ADJUST_LEN_YES. Clean-up code.
2971 2011-09-26 Eric Botcazou <ebotcazou@adacore.com>
2973 * ifcvt.c (noce_try_cmove_arith): Use may_trap_or_fault_p in lieu of
2974 may_trap_p to detect loads that may trap of fault.
2976 2011-09-26 Georg-Johann Lay <avr@gjlay.de>
2978 * config/avr/avr-protos.h (output_reload_inhi): Change prototype.
2979 * config/avr/avr.md (adjust_len): Add "reload_in16" alternative.
2980 (*reload_inhi): Use it. Adapt call to output_reload_inhi to new
2982 (*movhi): Split constraint alternative "r,rL" into "r,r" and "r,L".
2983 * config/avr/avr.c: Rename output_reload_insisf_1 to
2984 output_reload_in_const.
2985 (avr_popcount_each_byte): Handle SFmode, too.
2986 (output_reload_in_const): Change so it can handle HI loads, too.
2987 Use avr_popcount_each_byte to work out if scratch register must be
2989 (output_reload_inhi): Rewrite using output_reload_in_const and...
2990 (output_movhi): ...use it to print constants' loads.
2991 (adjust_insn_length): New case ADJUST_LEN_RELOAD_IN16. Cleanup code.
2993 2011-09-25 David S. Miller <davem@davemloft.net>
2995 * config/sparc/constraints.md (C, P, Z): New constraints for
2996 const_doube, const_int, and const_vector "all ones" values.
2997 Make unused constraint letters comment match reality.
2998 * config/sparc/predicates.md (const_all_ones_operand,
2999 register_or_zero_or_all_ones_operand): New predicates.
3000 * config/sparc/sparc.c (sparc_expand_move): Allow all ones
3001 as well as zero constants when VIS.
3002 (sparc_legitimate_constant_p): Likewise.
3003 * config/sparc/sparc.md (movsi_insn): Add fones alternative.
3004 (movsf_insn): Likewise
3005 (movdi_insn_sp64): Add fone alternative.
3006 (movdf_insn_sp32_v9): Likewise.
3007 (movdf_insn_sp64): Likewise.
3009 * configure.ac: Add feature check to make sure the assembler
3010 supports the FMAF, HPC, and VIS 3.0 instructions found on
3011 Niagara-3 and later cpus.
3012 * configure: Rebuild.
3013 * config.in: Likewise.
3014 * config/sparc/sparc.opt: New option '-mfmaf'.
3015 * config/sparc/sparc.md: Add float fused multiply-add patterns.
3016 * config/sparc/sparc.h (AS_NIAGARA3_FLAG): New macro.
3017 (ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Use it, as needed.
3018 * config/sparc/sol2.h (ASM_CPU32_DEFAULT_SPEC,
3019 ASM_CPU64_DEFAULT_SPEC, ASM_CPU_SPEC): Likewise.
3020 * config/sparc/sparc.c (sparc_option_override): Turn MASK_FMAF on
3021 by default for Niagara-3 and later. Turn it off if TARGET_FPU is
3023 (sparc_rtx_costs): Handle 'FMA'.
3024 * doc/invoke.texi: Document -mfmaf.
3026 2011-09-25 Jakub Jelinek <jakub@redhat.com>
3028 * tree-ssa-structalias.c (intra_create_variable_infos): Treat
3029 TYPE_RESTRICT REFERENCE_TYPE parameters like restricted
3030 DECL_BY_REFERENCE parameters.
3032 2011-09-25 Eric Botcazou <ebotcazou@adacore.com>
3034 * tree-eh.c (cleanup_empty_eh): Allow a call to __builtin_stack_restore
3035 if there is no outgoing edge.
3037 * tree-scalar-evolution.c (simple_iv): Accept all kinds of pointer and
3040 2011-09-25 Ira Rosen <ira.rosen@linaro.org>
3042 * tree-vect-slp.c (vect_slp_analyze_bb_1): Split out core part
3043 of vect_analyze_bb here.
3044 (vect_analyze_bb): Loop over vector sizes calling vect_analyze_bb_1.
3046 2011-09-25 Ira Rosen <ira.rosen@linaro.org>
3048 * tree-data-ref.c (dr_analyze_innermost): Add new argument.
3049 Allow not simple iv if analyzing basic block.
3050 (create_data_ref): Update call to dr_analyze_innermost.
3051 (stmt_with_adjacent_zero_store_dr_p, ref_base_address): Likewise.
3052 * tree-loop-distribution.c (generate_memset_zero): Likewise.
3053 * tree-predcom.c (find_looparound_phi): Likewise.
3054 * tree-data-ref.h (dr_analyze_innermost): Add new argument.
3056 2011-09-24 David S. Miller <davem@davemloft.net>
3058 * config/sparc/sparc.h (FIRST_PSEUDO_REGISTER): Bump to 103.
3059 (SPARC_GSR_REG): Define.
3060 (FIXED_REGISTERS): Mark GSR as fixed.
3061 (CALL_USED_REGISTERS): Mark GSR as call used.
3062 (HARD_REGNO_NREGS): GSR is always 1 register.
3063 (REG_CLASS_CONTENTS): Add GSR to ALL_REGS.
3064 (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): Add GSR to the end.
3065 (REGISTER_NAMES): Add "%gsr".
3066 * config/sparc/sparc.md (UNSPEC_ALIGNADDR, UNSPEC_ALIGNADDRL): Delete.
3067 (UNSPEC_WRGSR): New unspec.
3068 (GSR_REG): New constant.
3069 (type): Add new insn type 'gsr'.
3070 (fpack16_vis, fpackfix_vis, fpack32_vis,
3071 faligndata<V64I:MODE>_vis)): Add use of GSR_REG.
3072 (wrgsr_vis, *wrgsr_sp64, wrgsr_v8plus, rdgsr_vis, *rdgsr_sp64,
3073 rdgsr_v8plus): New expanders and insns.
3074 (alignaddr<P:mode>_vis, alignaddrl<P:mode>_vis): Reimplement
3075 using patterns which show that this is a plus in addition to a
3076 modification of GSR_REG, instead of an unspec.
3077 * config/sparc/ultra1_2.md: Handle 'gsr'.
3078 * config/sparc/ultra3.md: Likewise.
3079 * config/sparc/niagara.md: Likewise.
3080 * config/sparc/niagara2.md: Likewise.
3081 * config/sparc/sparc.c (leaf_reg_remap, sparc_leaf_regs): Fill out
3083 (sparc_option_override): Make -mvis imply -mv8plus.
3084 (hard_32bit_mode_classes, hard_64bit_mode_classes): Add entries
3086 (sparc_vis_init_builtins): Build __builtin_vis_write_gsr and
3087 __builtin_vis_read_gsr.
3088 (sparc_expand_buildin): Handle builtins that take one argument and
3090 (sparc_fold_builtin): Never fold writes to %gsr.
3091 * config/sparc/visintrin.h (__vis_write_gsr, __vis_read_gsr): New.
3092 * doc/extend.texi: Document new VIS intrinsics.
3094 2011-09-23 Jan Hubicka <jh@suse.cz>
3096 * ipa-inline-transform.c (inline_call): Add comment.
3097 * ipa-inline.h (inline_param_summary): New structure and vector.
3098 (struct inline_edge_summary): Add param field.
3099 * ipa-inline-analysis.c (CHANGED): New constant.
3100 (add_clause): Handle CHANGED and NOT_CONSTANT.
3101 (predicate_probability): New function.
3102 (dump_condition): Dump CHANGED predicate.
3103 (evaluate_conditions_for_known_args): Handle ERROR_MARK as marker
3104 of unknown function wide invariant.
3105 (evaluate_conditions_for_edge): Handle change probabilities.
3106 (inline_edge_duplication_hook): Copy param summaries.
3107 (inline_edge_removal_hook): Free param summaries.
3108 (dump_inline_edge_summary): Fix dumping of indirect edges and callee
3109 sizes; dump param summaries.
3110 (will_be_nonconstant_predicate): Use CHANGED predicate.
3111 (record_modified_bb_info): New structure.
3112 (record_modified): New function.
3113 (param_change_prob): New function.
3114 (estimate_function_body_sizes): Compute param summaries.
3115 (estimate_edge_size_and_time): Add probability argument.
3116 (estimate_node_size_and_time): Add inline_param_summary argument;
3117 handle predicate probabilities.
3118 (remap_predicate): Fix formating.
3119 (remap_edge_change_prob): New function.
3120 (remap_edge_summaries): Rename from ...; use remap_edge_change_prob.
3121 (remap_edge_predicates): ... this one.
3122 (inline_merge_summary): Remap edge summaries; handle predicate
3123 probabilities; remove param summaries after we are done.
3124 (do_estimate_edge_time): Update.
3125 (do_estimate_edge_growth): Update.
3126 (read_inline_edge_summary): Read param info.
3127 (inline_read_summary): Fix formating.
3128 (write_inline_edge_summary): Write param summaries.
3130 2011-09-23 Jakub Jelinek <jakub@redhat.com>
3132 * config/i386/i386.c (ix86_print_operand): Handle %~.
3133 (ix86_print_operand_punct_valid_p): Return true also for '~'.
3134 * config/i386/sse.md (i128): New mode_attr.
3135 (vec_extract_hi_<mode>, vec_extract_hi_<mode>,
3136 avx_vbroadcastf128_<mode>, *avx_vperm2f128<mode>_full,
3137 *avx_vperm2f128<mode>_nozero, vec_set_lo_<mode>,
3138 vec_set_hi_<mode>, *vec_concat<mode>_avx): Use <i128> in the
3139 patterns, use "<sseinsnmode>" for "mode" attribute.
3140 (vec_extract_hi_v16hi, vec_extract_hi_v32qi, vec_set_lo_v16hi,
3141 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Use
3142 %~128 in the patterns, use "OI" for "mode" attribute.
3144 2011-09-23 Georg-Johann Lay <avr@gjlay.de>
3147 * config/avr/avr.md (adjust_len): Add alternatives "tsthi",
3149 (*cmpqi_sign_extend): Use s8_operand.
3150 (*cmphi, *cmpsi): Rewrite using avr_out_compare.
3151 * config/avr/avr-protos.h (compare_diff_p, compare_eq_p): Remove
3153 (out_tsthi, out_tstsi): Remove prototypes.
3154 (avr_out_tsthi, avr_out_tstsi): New prototypes.
3155 * config/avr/avr.c (out_tsthi, out_tstsi): Remove functions.
3156 (avr_asm_len): Negative length now sets *plen to -length.
3157 (compare_sign_p): Return bool instead of int.
3158 (compare_diff_p, compare_eq_p): Ditto and make static.
3159 (avr_out_tsthi): New function.
3160 (avr_out_tstsi): New function.
3161 (avr_out_compare): New function.
3162 (adjust_insn_length): Handle ADJUST_LEN_TSTHI, ADJUST_LEN_TSTSI,
3165 2011-09-23 Georg-Johann Lay <avr@gjlay.de>
3168 * config/avr/avr.md: (adjust_len): Add alternative "out_plus".
3169 (addsi3): Rewrite using QI scratch register. Adjust text
3170 peepholes using plus:SI.
3171 (*addsi3_zero_extend.hi): New insn.
3172 (*subsi3_zero_extend.hi): New insn.
3173 (*subhi3_zero_extend1): Set attribute "cc" to "set_czn".
3174 (*subsi3_zero_extend): Ditto.
3175 (subsi3): Change predicate #2 to register_operand.
3176 * config/avr/avr-protos.h (avr_out_plus): New prototype.
3177 (avr_out_plus_1): New static function.
3178 (avr_out_plus): New function.
3179 (adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS.
3181 2011-09-23 Jakub Jelinek <jakub@redhat.com>
3183 * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): For
3184 GE/GT/UNLE/UNLT swap arguments and condition even for TARGET_AVX.
3186 2011-09-23 Ian Lance Taylor <iant@google.com>
3188 * godump.c (go_define): Treat a single character in single quotes,
3189 or a string, as an operand.
3191 2011-09-23 Martin Jambor <mjambor@suse.cz>
3193 * ipa-prop.h (jump_func_type): Updated comments.
3194 (ipa_known_type_data): New type.
3195 (ipa_jump_func): Use it to describe known type jump functions.
3196 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Updated to
3197 reflect the new known type jump function contents.
3198 (compute_known_type_jump_func): Likewise.
3199 (combine_known_type_and_ancestor_jfs): Likewise.
3200 (try_make_edge_direct_virtual_call): Likewise.
3201 (ipa_write_jump_function): Likewise.
3202 (ipa_read_jump_function): Likewise.
3203 * ipa-cp.c (ipa_value_from_known_type_jfunc): New function.
3204 (ipa_value_from_jfunc): Use ipa_value_from_known_type_jfunc.
3205 (propagate_accross_jump_function): Likewise.
3207 2011-09-23 Georg-Johann Lay <avr@gjlay.de>
3210 * config/avr/avr.md (rotlqi3): Support all offsets 0..7.
3211 (rotlqi3_4): Turn insn into expander.
3212 (*rotlqi3): New insn.
3213 (rotlhi3, rotlsi3): Support rotate left/right by 1.
3214 (*rotlhi2.1, *rotlhi2.15): New insns.
3215 (*rotlsi2.1, *rotlsi2.31): New insns.
3216 * config/avr/constraints.md (C03, C05, C06, C07): New constraints.
3218 2011-09-23 Bin Cheng <bin.cheng@arm.com>
3220 * config/arm/bpabi.h (BE8_LINK_SPEC): Add cortex-m arch and processors.
3222 2011-09-22 Maxim Kuvyrkov <maxim@codesourcery.com>
3224 * ipa-prop.c (ipa_print_node_jump_functions): Fix typos.
3226 2011-09-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3228 * reload.c (find_reloads): Set operand_mode to Pmode for address
3229 operands consisting of just a CONST_INT.
3231 2011-09-22 Uros Bizjak <ubizjak@gmail.com>
3234 * config/i386/i386.c (ix86_expand_sse_movcc): When generating
3235 blendv, force op_true to register if it doesn't satisfy
3236 nonimmediate_operand predicate.
3238 2011-09-22 Richard Sandiford <rdsandiford@googlemail.com>
3242 * calls.c (emit_library_call_value_1): Use BLOCK_REG_PADDING to
3243 get the locate.where_pad value for register-only arguments.
3244 * config/arm/arm.c (arm_pad_arg_upward): Remove HFmode handling.
3245 (arm_pad_reg_upward): Handle null types.
3247 2011-09-22 Jan Hubicka <jh@suse.cz>
3249 * ipa-inline-analysis.c: Fix overly long lines.
3251 2011-09-22 Jan Hubicka <jh@suse.cz>
3253 * ipa-inline-transform.c (inline_call): Always update jump functions
3255 * ipa-inline.c (ipa_inline): Likewise; do not call
3256 ipa_create_all_structures_for_iinln.
3257 (ipa_inline): Always free jump functions.
3258 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Remove hack.
3259 (remap_edge_predicates): Fix pasto.
3260 (inline_merge_summary): Remove nlined edge predicate; remove hack.
3261 (inline_analyze_function): Always initialize jump functions.
3262 (inline_generate_summary): Likewise.
3263 (inline_write_summary): Always write jump functions when ipa-cp
3265 (inline_read_summary): Always read jump functions when ipa-cp
3267 * ipa-prop.c (iinlining_processed_edges): Remove.
3268 (update_indirect_edges_after_inlining): Do not use
3269 iinlining_processed_edges; instead set param_index to -1.
3270 (propagate_info_to_inlined_callees): Only try to indirect inlining
3271 when asked to do so; update jump functions of indirect calls, too;
3272 remove jump functions of the inlined edge.
3273 (ipa_edge_duplication_hook): Do not copy iinlining_processed_edges.
3274 (ipa_create_all_structures_for_iinln): Remove.
3275 (ipa_free_all_structures_after_iinln): Do not free
3276 iinlining_processed_edges.
3277 * ipa-prop.h (ipa_create_all_structures_for_iinln): Remove.
3279 2011-09-22 Richard Sandiford <richard.sandiford@linaro.org>
3281 * config/arm/predicates.md (expandable_comparison_operator): New
3282 predicate, extracted from...
3283 (arm_comparison_operator): ...here.
3284 * config/arm/arm.md (cbranchsi4, cbranchsf4, cbranchdf4, cbranchdi4)
3285 (cstoresi4, cstoresf4, cstoredf4, cstoredi4, movsicc, movsfcc)
3286 (movdfcc): Use expandable_comparison_operator.
3288 2011-09-22 Georg-Johann Lay <avr@gjlay.de>
3292 * config/avr/avr-protos.h (avr_out_bitop): New prototype.
3293 (avr_popcount_each_byte): New prototype.
3294 * config/avr/avr.c (avr_popcount): New static function.
3295 (avr_popcount_each_byte): New function.
3296 (avr_out_bitop): New function.
3297 (adjust_insn_length): ADJUST_LEN_OUT_BITOP dispatches to
3298 avr_out_bitop. Cleanup code.
3299 * config/avr/constraints.md (Ca2, Co2, Cx2): New constraints.
3300 (Ca4, Co4, Cx4): New constraints.
3301 * config/avr/avr.md (adjust_len): Add "out_bitop" insn attribute
3303 (andhi3, iorhi3, xorhi3): Rewrite insns using avr_out_bitop.
3304 (andsi3, iorsi3, xorsi3): Ditto.
3305 (*iorhi3_clobber, *iorsi3_clobber): Remove insns.
3307 2011-09-22 Ira Rosen <ira.rosen@linaro.org>
3309 PR tree-optimization/50451
3310 * tree-vect-slp.c (vect_get_constant_vectors): Don't fail for
3311 constant operands in reduction.
3312 (vect_get_slp_defs): Don't create vector operand for NULL scalar
3315 2011-09-22 David S. Miller <davem@davemloft.net>
3317 * config/sparc/sparc.c (sparc_vis_init_builtins): Do not mark
3318 fpack16, fpack32, fpackfix as const.
3320 * config/sparc/sparc.md (G[0-7]_REG, O[0-7]_REG, L[0-7]_REG,
3321 I[0-7]_REG, F[0-62]_REG, FCC[0-3]_REG, CC_REG, SFP_REG): New
3322 constants. Use them everywhere.
3324 2011-09-22 Oleg Endo <oleg.endo@t-online.de>
3326 * config/sh/sh.c (andcosts): Renamed to and_xor_ior_costs.
3327 Added AND special case. Adapted comments.
3328 (sh_rtx_costs): Added XOR and IOR case.
3330 2011-09-21 Jan Hubicka <jh@suse.cz>
3332 * ipa-inline-analsis.c (compute_inline_parameters): Set
3333 cfun and current_function_decl.
3335 2011-09-21 Jan Hubicka <jh@suse.cz>
3337 * ipa-inline-analysis.c (set_cond_stmt_execution_predicate): Allow
3338 handled components in parameter of builtin_constant_p.
3339 (will_be_nonconstant_predicate): Allow loads of non-SSA parameters.
3341 2011-09-21 Jan Hubicka <jh@suse.cz>
3343 * ipa-inline.c (relative_time_benefit): Fix wrong bracketting.
3344 * ipa-inline.h (estimate_edge_time): Fix pasto.
3345 * ipa-inline-analysis.c (do_estiamte_edge_time): Remove capping.
3347 2011-09-21 Jakub Jelinek <jakub@redhat.com>
3349 * config/i386/i386.c (ix86_expand_sse_movcc): Use
3350 blendvps, blendvpd and pblendvb if possible.
3352 2011-09-21 Uros Bizjak <ubizjak@gmail.com>
3355 * config/i386/sse.md (xop_pcmov_<mode><avxsizesuffix>): Change
3356 operand 1 predicate to register_operand and operand 2 predicate
3357 to nonimmediate_operand.
3358 * config/i386/i386.c (ix86_expand_sse_movcc): When generating
3359 xop_pcmov, force op_true to register. Also, force op_false to
3360 register if it doesn't satisfy nonimmediate_operand predicate.
3362 2011-09-21 Kirill Yukhin <kirill.yukhin@intel.com>
3364 * config/i386/bmi2intrin.h (_mulx_u64): New.
3367 2011-09-21 Jan Hubicka <jh@suse.cz>
3369 PR tree-optimization/50433
3370 * ipa-inline-analysis.c (eliminated_by_inlining_prob):
3371 Use get_base_address.
3373 2011-09-21 Jakub Jelinek <jakub@redhat.com>
3375 * config/i386/sse.md (<code><mode>3 smaxmin:VI124_128 expander): Use
3376 nonimmediate_operand instead of register_operand predicate for operands
3377 1 and 2, force them into registers if expanding them as comparison.
3378 (<code><mode>3 umaxmin:VI124_128 expander): Similarly. For UMAX
3379 V8HImode force into register just operand 1.
3381 2011-09-21 Georg-Johann Lay <avr@gjlay.de>
3384 * config/avr/avr.c (avr_function_arg_advance): Change error to
3385 warning if a fixed register is needed as function argument.
3387 2011-09-21 Georg-Johann Lay <avr@gjlay.de>
3391 * config/avr/avr.md (adjust_len): New insn attribute.
3392 (*reload_insi, *reload_insf): Use it.
3393 (*movsi, *movsf): Use new interface of output_movsisf.
3394 * config/avr/avr-protos.h (output_movsisf): Change prototype.
3395 * config/avr/avr.c (output_movsisf): Ditto.