1 2011-05-25 Ian Lance Taylor <iant@google.com>
3 * godump.c (go_format_type): Check for invalid type names, pointer
4 target types, and struct field types.
6 2011-05-25 Jason Merrill <jason@redhat.com>
8 * print-tree.c (print_node): Only look at TREE_TYPE if TS_TYPED.
10 2011-05-25 Uros Bizjak <ubizjak@gmail.com>
12 * config/i386/sse.md (*<sse>_maskcmp<mode>3_comm): New pattern.
14 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
16 * config/i386/i386.md (*movqi_extv_1)): Put back
17 "register_operand" check in "type" calculation.
18 (*movqi_extzv_2): Likewise.
20 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
22 * doc/extend.texi (X86 Built-in Functions): Update pause intrinsic.
24 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
27 * libgcc2.h (__powisf2, __powidf2, __powitf2, __powixf2,
28 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3,
29 __divxc3, __divtc3): Wrap definitions in #ifndef.
31 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
34 * config/i386/i386.md (*movqi_extv_1_rex64): Remove
35 "register_operand" check and replace q_regs_operand with
36 QIreg_operand in "type" calculation.
37 (*movqi_extv_1): Likewise.
38 (*movqi_extzv_2_rex64): Likewise.
39 (*movqi_extzv_2): Likewise.
41 * config/i386/predicates.md (QIreg_operand): New.
43 2011-05-25 Richard Guenther <rguenther@suse.de>
45 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
46 type-based offset disambiguation, streamline MEM_REF and
47 TARGET_MEM_REF handling.
49 2011-05-25 H.J. Lu <hongjiu.lu@intel.com>
51 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_PAUSE.
52 (bdesc_special_args): Add pause intrinsic.
54 * config/i386/i386.md (UNSPEC_PAUSE): New.
57 * config/i386/ia32intrin.h (__pause): Likewise.
59 * doc/extend.texi (X86 Built-in Functions): Add documentation for
62 2011-05-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
64 PR tree-optimization/46728
65 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): New.
66 (execute_cse_sincos): Add switch case for BUILT_IN_POW.
68 2011-05-25 Nathan Froyd <froydnj@codesourcery.com>
70 * tree.h (struct tree_exp): Inherit from struct tree_typed.
71 * tree.c (initialize_tree_contains_struct): Mark TS_EXP as TS_TYPED
74 2011-05-25 Bernd Schmidt <bernds@codesourcery.com>
76 * libgcc2.h (__NW, __NDW): Define using a __gnu_ prefix if
77 LIBGCC2_GNU_PREFIX is defined.
79 (__powisf2, __powidf2, __powitf2, __powixf2, __bswapsi2, __bswapdi2,
80 __mulsc3, __muldc3, __mulxc3, __multc3, __divsc3, __divdc3, __divxc3,
81 __divtc3, __udiv_w_sdiv, __clear_cache, __enable_execute_stack,
82 __clz_tab): Define using __N.
83 (__absvsi2, __negvsi2, __addvsi3, __subvsi3, __mulvsi3): Likewise if
84 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
85 * target.def (libfunc_gnu_prefix): New hook.
86 * doc/tm.texi.in (LIBGCC2_GNU_PREFIX): Document.
87 (TARGET_LIBFUNC_GNU_PREFIX): Add hook.
88 * doc/tm.texi: Regenerate.
89 * system.h (LIBGCC2_GNU_PREFIX): Poison.
90 * optabs.c (gen_libfunc): Take the libfunc_gnu_prefix hook into
92 (gen_interclass_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
93 (init_optabs): Likewise for the bswap libfuncs.
94 * tree.c (build_common_builtin_nodes): Likewise for complex multiply
96 * config/t-slibgcc-elf-ver (SHLIB_MAPFILES): Use $$(libgcc_objdir).
97 * config/t-slibgcc-sld (SHLIB_MAPFILES): Likewise.
98 * libgcc-std.ver: Remove.
99 * Makefile.in (srcdirify): Handle $$(libgcc_objdir).
100 * config/frv/t-linux (SHLIB_MAPFILES): Use $$(libgcc_objdir) for
102 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
103 * config/mips/t-slibgcc-irix (SHLIB_MAPFILES): Likewise.
104 * config/rs6000/t-aix43 (SHLIB_MAPFILES): Likewise.
105 * config/rs6000/t-aix52 (SHLIB_MAPFILES): Likewise.
106 * config/sparc/t-linux (SHLIB_MAPFILES): Likewise.
107 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
108 * config/i386/t-linux (SHLIB_MAPFILES): Likewise.
109 * config/fixed-bit.h (FIXED_OP): Define differently depending on
110 LIBGCC2_GNU_PREFIX. All uses changed not to pass leading underscores.
111 (FIXED_CONVERT_OP, FIXED_CONVERT_OP2): Likewise.
113 2011-05-25 Jan Hubicka <jh@suse.cz>
115 * lto-streamer-out.c (output_record_start): Use lto_output_enum
116 (lto_output_tree): Use output_record_start.
117 * lto-streamer-in.c (input_record_start): Use lto_input_enum
118 (lto_get_pickled_tree): Use input_record_start.
119 * lto-section-in.c (lto_section_overrun): Turn into fatal error.
120 (lto_value_range_error): New function.
121 * lto-streamer.h (lto_value_range_error): Declare.
122 (lto_output_int_in_range, lto_input_int_in_range): New functions.
123 (lto_output_enum, lto_input_enum): New macros.
125 2011-05-25 Eric Botcazou <ebotcazou@adacore.com>
127 * common.opt (flag_stack_usage_info): New variable.
128 (-Wstack-usage): New option.
129 * doc/invoke.texi (Warning options): Document -Wstack-usage.
130 * opts.c (common_handle_option) <OPT_Wstack_usage_>: New case.
131 <OPT_fstack_usage>: Likewise.
132 * toplev.c (output_stack_usage): Handle -Wstack-usage.
133 * calls.c (expand_call): Test flag_stack_usage_info variable instead
135 (emit_library_call_value_1): Likewise.
136 * explow.c (allocate_dynamic_stack_space): Likewise.
137 * function.c (instantiate_virtual_regs ): Likewise.
138 (prepare_function_start): Likewise.
139 (rest_of_handle_thread_prologue_and_epilogue): Likewise.
140 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
141 * config/arm/arm.c (arm_expand_prologue): Likewise.
142 (thumb1_expand_prologue): Likewise.
143 * config/avr/avr.c (expand_prologue): Likewise.
144 * config/i386/i386.c (ix86_expand_prologue): Likewise.
145 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
146 * config/m68k/m68k.c (m68k_expand_prologue): Likewise.
147 * config/mips/mips.c (mips_expand_prologue): Likewise.
148 * config/pa/pa.c (hppa_expand_prologue): Likewise.
149 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
150 * config/s390/s390.c (s390_emit_prologue): Likewise.
151 * config/sh/sh.c (sh_expand_prologue): Likewise.
152 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
153 * config/spu/spu.c (spu_expand_prologue): Likewise.
155 2011-05-25 Richard Guenther <rguenther@suse.de>
157 * gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
158 (gimple_canonical_types_compatible_p): Likewise.
160 2011-05-25 Jan Hubicka <jh@suse.cz>
163 * ipa.c (function_and_variable_visibility): Only add to same
164 comdat group list if DECL_ONE_ONLY.
166 2011-05-25 Andrey Belevantsev <abel@ispras.ru>
168 PR rtl-optimization/49014
169 * config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.
171 2011-05-25 Jakub Jelinek <jakub@redhat.com>
174 * config/i386/driver-i386.c (host_detect_local_cpu): Fix a typo.
176 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
178 PR rtl-optimization/48757
179 * ira-build.c (loop_with_eh_edge_p): Rename to
180 loop_with_complex_edge_p, check edges on complexity, make function
182 (mark_loops_for_removal): Make call of loop_with_complex_edge_p
185 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
187 * config/sparc/sparc.c (sparc_option_override): If not set by the user,
188 force flag_ira_share_save_slots to 0.
190 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
192 * var-tracking.c (compute_cfa_pointer): Adjust head comment.
193 (vt_initialize): Set PROLOGUE_BB unconditionally.
194 Add block comment about CFA_BASE_RTX machinery.
195 Reset FP_CFA_OFFSET to -1 on all invalid paths.
196 Call vt_init_cfa_base only if FP_CFA_OFFSET isn't equal to -1.
198 2011-05-24 Nicola Pero <nicola.pero@meta-innovation.com>
201 * c-parser.c (c_parser_objc_class_instance_variables): More robust
202 parsing of syntax error in ObjC instance variable lists. In
203 particular, avoid an infinite loop if there is a stray ']'.
204 Updated error message.
206 2011-05-24 Ian Lance Taylor <iant@google.com>
208 * godump.c (go_define): Don't accept a string immediately after
211 2011-05-24 Ian Lance Taylor <iant@google.com>
213 * godump.c (struct godump_container): Add invalid_hash field.
214 (go_format_type): Return false if type is found in invalid_hash.
215 (go_output_typedef): Add invalid type to invalid_hash.
216 (go_finish): Create and delete invalid_hash.
218 2011-05-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
220 PR tree-optimization/46728
221 * tree-ssa-math-opts.c (powi_table): New.
222 (powi_lookup_cost): New.
224 (powi_as_mults_1): New.
225 (powi_as_mults): New.
226 (gimple_expand_builtin_powi): New.
227 (execute_cse_sincos): Add switch case for BUILT_IN_POWI.
228 (gate_cse_sincos): Remove sincos/cexp restriction.
230 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
233 * config.gcc (alpha*-dec-osf5.1*): Only build mips-tfile,
235 * mips-tfile.c: Remove CROSS_DIRECTORY_STRUCTURE handling.
236 * mips-tdump.c: Likewise.
238 2011-05-24 H.J. Lu <hongjiu.lu@intel.com>
241 * config/i386/driver-i386.c (host_detect_local_cpu): Always
242 add -mno-XXX. Handle FMA.
244 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
246 PR rtl-optimization/48633
247 * ira-build.c (loop_with_eh_edge_p): New function.
248 (mark_loops_for_removal): Use it.
250 2011-05-24 Vladimir Makarov <vmakarov@redhat.com>
252 PR rtl-optimization/48971
253 * ira.c (setup_pressure_classes): Don't check register move cost
254 for classes with one registers. Don't add pressure class if there
255 is a pressure class with the same available hard registers.
256 Check contains_reg_of_mode. Fix a typo in collecting
257 temp_hard_regset. Ignore hard registers not belonging to a class.
259 2011-05-24 Uros Bizjak <ubizjak@gmail.com>
262 * config/i386/sse.md (sse2_loadhpd): Remove shufpd alternative.
264 2011-05-24 Eric Botcazou <ebotcazou@adacore.com>
265 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
267 PR gcov-profile/48845
268 * config/sol2.h (LIB_SPEC): Link TLS support for tree profiling.
270 2011-05-24 Richard Guenther <rguenther@suse.de>
272 * gimple.c (compare_type_names_p): Remove for_completion_p arg.
273 (gimple_compatible_complete_and_incomplete_subtype_p): Remove.
274 (gimple_types_compatible_p_1): Adjust.
275 (iterative_hash_canonical_type): Do not bother about complete vs.
277 (gimple_canonical_types_compatible_p): Likewise.
279 2011-05-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
281 * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Remove.
283 2011-05-24 Richard Guenther <rguenther@suse.de>
286 * gimple.c (gimple_register_canonical_type): Revert
288 * alias.c (get_alias_set): Only assert that TYPE_CANONICAL
289 does not for a tree for the case where it matters. Cache
290 pointer-type alias-sets.
292 2011-05-24 Joseph Myers <joseph@codesourcery.com>
294 * Makefile.in (GCC_OBJS): Remove opts-common.o and options.o.
295 (OBJS): Remove options.o, opts-common.o and prefix.o.
296 (OBJS-libcommon-target): New.
297 (ALL_HOST_BACKEND_OBJS): Include $(OBJS-libcommon-target).
298 (BACKEND): Include libcommon-target.a.
299 (MOSTLYCLEANFILES): Include libcommon-target.a.
300 (libcommon-target.a): New.
301 (xgcc$(exeext), cpp$(exeext)): Use libcommon-target.a instead of
304 2011-05-23 Joseph Myers <joseph@codesourcery.com>
306 * optc-save-gen.awk: New. Based on optc-gen.awk. Don't generate
307 parts of output shared with the driver.
308 * optc-gen.awk: Don't generate parts of output not shared with the
310 * opth-gen.awk: Remove GCC_DRIVER conditionals.
311 * doc/options.texi (SourcerInclude): Mention options-save.c.
312 * Makefile.in (GCC_OBJS): Use options.o instead of gcc-options.o.
313 (OBJS): Add options-save.o.
314 (options-save.c, options-save.o): New.
315 (options.o): Update dependencies.
316 (gcc-options.o): Remove.
317 (mostlyclean): Remove options-save.c.
319 2011-05-23 Jakub Jelinek <jakub@redhat.com>
322 * dbxout.c: Include cgraph.h.
323 (dbxout_expand_expr): If a VAR_DECL is TREE_STATIC, not written
324 and without value expr, return NULL if no varpool node exists for
325 it or if it is not needed.
326 * Makefile.in (dbxout.o): Depend on $(CGRAPH_H).
329 * c-decl.c (start_decl): Convert expr to void_type_node.
331 2011-05-23 Richard Sandiford <rdsandiford@googlemail.com>
333 PR rtl-optimization/48826
334 * emit-rtl.c (try_split): When splitting a call that is followed
335 by a NOTE_INSN_CALL_ARG_LOCATION, move the note after the new call.
337 2011-05-23 Jakub Jelinek <jakub@redhat.com>
339 * cfgexpand.c (expand_debug_expr): For unused non-addressable
340 parameters passed in memory prefer using DECL_INCOMING_RTL over
341 the pseudos it will be copied into.
343 2011-05-23 H.J. Lu <hongjiu.lu@intel.com>
346 * config/i386/i386.c (ix86_option_override_internal): Save the
347 initial options after checking vzeroupper.
349 2011-05-23 David Li <davidxl@google.com>
351 PR tree-optimization/48988
352 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
353 Initialize has_valid_pred for each pred chain.
355 2011-05-23 Richard Guenther <rguenther@suse.de>
357 * gimple.c (gimple_types_compatible_p_1): Always compare type names.
358 (iterative_hash_gimple_type): Always hash type names.
360 2011-05-23 Nathan Froyd <froydnj@codesourcery.com>
362 * c-typeck.c (build_function_call_vec): Tweak call to
363 check_function_arguments.
365 2011-05-23 Richard Guenther <rguenther@suse.de>
367 PR tree-optimization/49115
368 * tree-ssa-alias.c (stmt_kills_ref_p_1): If the assignment
369 is not necessarily carried out, do not claim it kills the ref.
370 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
372 2011-05-23 Richard Guenther <rguenther@suse.de>
375 * builtins.c (fold_builtin_memory_op): Be less restrictive about
376 what pointer types we accept for folding.
378 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
380 * gthr-gnat.c: Remove.
381 * gthr-gnat.h: Remove.
382 * Makefile.in (LIB2ADDEH): Remove $(srcdir)/gthr-gnat.c.
383 * config/t-freebsd (LIB2ADDEH): Likewise.
384 * config/t-linux (LIB2ADDEH): Likewise.
385 * config/t-sol2 (LIB2ADDEH): Likewise.
386 * config/ia64/t-vms (LIB2ADDEH): Likewise.
387 * configure.ac (target_thread_file): Remove gnat handling.
388 * configure: Regenerate.
389 * doc/install.texi (Configuration, --enable-threads): Remove gnat.
391 2011-05-23 Tristan Gingold <gingold@adacore.com>
392 Eric Botcazou <ebotcazou@adacore.com>
394 * gcov.c (create_file_names): If no object directory is specified,
395 keep the directory of the file.
397 2011-05-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
399 * configure.ac (enable_threads): Remove irix; add lynx, tpf; sort list.
400 * configure: Regenerate.
402 2011-05-23 Jakub Jelinek <jakub@redhat.com>
405 * expr.c (expand_expr_real_2) <case LT_EXPR>: If do_store_flag
406 failed and the comparison has a single bit signed type, use
407 constm1_rtx instead of const1_rtx for true value.
408 (do_store_flag): If ops->type is single bit signed type, disable
409 signel bit test optimization and pass -1 instead of 1 as last
410 parameter to emit_store_flag_force.
412 2011-05-23 Tom de Vries <tom@codesourcery.com>
415 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): New
417 (infer_loop_bounds_from_undefined): Use new function.
419 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
421 * config/mips/mips.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Delete.
422 (ASM_SPEC): Add a -O* option here. Pass -O0 for -noasmopt,
423 -O1 for -fno-delayed-branch, -O2 if optimization is enabled,
425 (EXTRA_SPECS): Remove subtarget_asm_optimizing_spec.
427 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
429 * cfgcleanup.c (try_forward_edges): Do not update BB_FORWARDER_BLOCK.
430 (try_optimize_cfg): Update BB_FORWARDER_BLOCK if try_forward_edges
433 2011-05-22 Richard Sandiford <rdsandiford@googlemail.com>
435 * config/mips/mips.c (mips_default_arch): Honor MIPS_ISA_DEFAULT.
437 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
439 * config/sparc/sparc.c (sparc_delegitimize_address): Handle
440 UNSPEC_MOVE_PIC pattern.
442 2011-05-22 Eric Botcazou <ebotcazou@adacore.com>
444 * config.gcc (sparc-*-elf*): Add sparc/t-crtin.
445 (sparc-*-rtems*): Likewise.
446 (sparc64-*-elf*): Likewise.
447 (sparc64-*-rtems*): Likewise.
448 (sparc*-*-solaris2*): Likewise. Remove crti.o crtn.o extra parts.
449 * config/sparc/t-crtin: New file.
450 * config/sparc/t-sol2 (crti.o): Delete rule.
452 * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Delete.
453 * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Likewise.
454 * config/sparc/sp64-elf.h (STARTFILE_SPEC): Tidy and add crti.o.
455 (ENDFILE_SPEC): Add crtn.o.
457 2011-05-22 Tom de Vries <tom@codesourcery.com>
460 * fold-const.c (fold_checksum_tree): Guard TREE_CHAIN use with
461 CODE_CONTAINS_STRUCT (TS_COMMON).
463 2011-05-22 Jakub Jelinek <jakub@redhat.com>
466 * expmed.c (extract_fixed_bit_field): Test whether target can be used
467 only after deciding which mode to use.
469 2011-05-22 Tom de Vries <tom@codesourcery.com>
472 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Fix const test
473 for call to get_shiftadd_cost.
475 2011-05-22 Uros Bizjak <ubizjak@gmail.com>
478 * config/i386/cpuid.h (bit_MMXEXT): New define.
480 2011-05-22 Nick Clifton <nickc@redhat.com>
482 * config/stormy16/stormy16.c (xstormy16_init_builtins): prevent
483 initialisation of non-existant args[2] element. Use args[] array
484 not arg[] array to pass arguments to build_function_type_list.
486 2011-05-22 Ira Rosen <ira.rosen@linaro.org>
488 PR tree-optimization/49087
489 * tree-vect-loop.c (vect_is_slp_reduction): Fail if LHS has no uses.
491 2011-05-21 Jason Merrill <jason@redhat.com>
494 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Check for
495 static storage duration.
497 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
499 * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
502 2011-05-21 Eric Botcazou <ebotcazou@adacore.com>
504 * config/sparc/sparc.c (eligible_for_return_delay): Do not return
505 false if there are call-saved registers here...
506 (sparc_can_use_return_insn_p): ...but here instead.
507 (save_or_restore_regs): Fix thinko.
508 (sparc_expand_prologue): Use current_function_is_leaf.
509 (sparc_frame_pointer_required): Likewise.
511 2011-05-21 Nick Clifton <nickc@redhat.com>
514 * config/rx/rx.c (rx_memory_move_cost): Note unused parameters.
516 2011-05-21 Nicola Pero <nicola.pero@meta-innovation.com>
518 * gengtype.c (walk_type): Implemented "atomic" GTY option.
519 * doc/gty.texi (GTY Options): Document "atomic" GTY option.
521 2011-05-21 Joseph Myers <joseph@codesourcery.com>
523 * opt-read.awk: New. Split out of optc-gen.awk and opth-gen.awk.
524 * optc-gen.awk: Move common code to opt-read.awk.
525 * opth-gen.awk: Likewise.
526 * Makefile.in (options.c, s-options-h): Update to use opt-read.awk.
528 2011-05-20 Nathan Froyd <froydnj@codesourcery.com>
530 * godump.c (go_format_type): Don't use TYPE_ARG_TYPES.
532 2011-05-20 Tom de Vries <tom@codesourcery.com>
535 * tree-ssa-loop-ivopts.c: Include expmed.h.
536 (get_shiftadd_cost): New function.
537 (force_expr_to_var_cost): Declare forward. Use get_shiftadd_cost.
539 2011-05-20 Jakub Jelinek <jakub@redhat.com>
542 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
543 for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
545 2011-05-20 Joseph Myers <joseph@codesourcery.com>
547 * Makefile.in: Update comment referring to $(OBJS-common).
549 2011-05-20 Ian Lance Taylor <iant@google.com>
551 * godump.c (go_output_typedef): Put enum constants in the macro
552 hash table to avoid duplicate Go const definitions.
554 2011-05-20 Joseph Myers <joseph@codesourcery.com>
556 * Makefile.in (LIBDEPS): Add libcommon.a.
558 (GCC_OBJS): Remove diagnostic.o, pretty-print.o and input.o.
559 (OBJS-common): Remove diagnostic.o, input.o, intl.o,
560 pretty-print.o and version.o.
561 (OBJS-libcommon): New.
562 (ALL_HOST_BACKEND_OBJS): Add $(OBJS-libcommon).
563 (BACKEND): Add libcommon.a.
564 (MOSTLYCLEANFILES): Likewise.
566 (xgcc$(exeext)): Don't explicitly use version.o and intl.o.
567 (cpp$(exeext)): Likewise.
568 (COLLECT2_OBJS): Remove intl.o, version.o, diagnostic.o,
569 pretty-print.o and input.o.
570 (lto-wrapper$(exeext)): Don't explicitly use intl.o.
571 (lto-wrapper.o): Depend on $(DIAGNOSTIC_H).
573 (mips-tfile): Don't explicitly use version.o.
574 (mips-tdump): Likewise.
575 (gcov.o): Depend on $(DIAGNOSTIC_H).
576 (gcov-dump.o): Depend on intl.h and $(DIAGNOSTIC_H).
577 (GCOV_OBJS): Remove intl.o, version.o and errors.o.
578 (GCOV_DUMP_OBJS): Remove version.o and errors.o.
579 * gcov-dump.c: Include intl.h and diagnostic.h.
580 (main): Initialize diagnostics.
581 * gcov.c: Include diagnostic.h.
583 (main): Initialize diagnostics.
584 * lto-wrapper.c: Include diagnostic.h.
585 (main): Initialize diagnostics.
587 2011-05-20 Michael Matz <matz@suse.de>
589 * Makefile.in (OBJS-common, OBJS-md, OBJS-archive): Merge into OBJS.
591 2011-05-20 Michael Matz <matz@suse.de>
592 Richard Guenther <rguenther@suse.de>
594 * lto-streamer.c (lto_record_common_node): Don't track seen nodes,
595 use lto_streamer_cache_append directly instead of returning a VEC.
596 (preload_common_node): Remove.
597 (lto_get_common_nodes): Rename to lto_preload_common_nodes, don't
599 (lto_streamer_cache_create): Call lto_preload_common_nodes.
601 2011-05-20 Richard Guenther <rguenther@suse.de>
603 PR tree-optimization/49079
604 * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
605 MEM_REFs correctly for the trailing array access detection.
606 Special case constants the same way as decls for overall size
609 2011-05-20 Uros Bizjak <ubizjak@gmail.com>
611 * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Fix macro
614 2011-05-20 Jakub Jelinek <jakub@redhat.com>
616 PR tree-optimization/49073
617 * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL if
618 PHI argument is SSA_NAME, whose def_stmt is dominated by the PHI.
619 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
621 2011-05-20 Richard Guenther <rguenther@suse.de>
624 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
625 of pointer types the same way the middle-end does.
627 2011-05-20 Richard Guenther <rguenther@suse.de>
629 * gimple.c (gimple_register_type_1): Do not fiddle with main-variant
630 or pointer-to chains. Delay all fixup to uniquify_nodes.
632 2011-05-19 Quentin Neill <quentin.neill@amd.com>
634 * config/i386/sse.md (fma4_fmsubadd): Use <ssemodesuffix>.
635 (fma4_fmaddsub): Likewise
637 2011-05-19 Jan Hubicka <jh@suse.cz>
639 * gimple.c (gtc_visited, gtc_ob, type_pair_hash, type_pair_eq): Remove.
640 (GIMPLE_TYPE_PAIR_SIZE): New macro.
641 (type_pair_cache): New static var.
642 (lookup_type_pair): Use fixed sized custom hash; make inline.
643 (gtc_visit, gimple_types_compatible_p, gimple_register_type_1): Update
644 calls of lookup_type_pair.
645 (print_gimple_types_stats): Remove cache stats.
646 (free_gimple_type_tables): Free type_pair_cache instead of gtc_visited
649 2011-05-19 Uros Bizjak <ubizjak@gmail.com>
651 * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
652 when TARGET_RDRND is active.
653 (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
654 Generate dummy SImode target register when target is NULL.
656 2011-05-19 Joseph Myers <joseph@codesourcery.com>
658 * config/arm/arm-fpus.def: New.
659 * config/arm/genopt.sh: Generate Enum and EnumValue entries from
661 * config/arm/arm-tables.opt: Regenerate.
662 * config/arm/arm.c (all_fpus): Move contents to arm-fpus.def.
663 (arm_option_override): Don't decode FPU name to string here.
664 * config/arm/arm.opt (mfpu=): Use Enum.
665 * config/arm/t-arm ($(srcdir)/config/arm/arm-tables.opt, arm.o):
668 2011-05-19 Joseph Myers <joseph@codesourcery.com>
670 * collect2.c: Include diagnostic.h.
671 (fatal_perror, fatal, error, fancy_abort): Remove.
672 (main): Set progname. Call xmalloc_set_program_name and
673 diagnostic_initialize.
674 (maybe_run_lto_and_relink, main, collect_execute, scan_prog_file,
675 scan_libraries, resolve_lib_name): Call fatal_error instead of
676 fatal and fatal_perror.
677 * collect2.h (error, fatal, fatal_perror): Don't declare.
678 * tlink.c: Include diagnostic-core.h.
679 (recompile_files): Call fatal_error instead of fatal_perror.
680 * Makefile.in (COLLECT2_OBJS): Include diagnostic.o,
681 pretty-print.o and input.o.
682 (collect2.o, tlink.o): Update dependencies.
684 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
686 * config/i386/i386.md (tls_initial_exec_64_sun): Add semicolon.
688 2011-05-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
691 * configure.ac (gcc_cv_as_comdat_group_group): Check for Sun as
692 COMDAT group syntax, both SPARC and x86 variants.
693 (HAVE_COMDAT_GROUP): Also define if gcc_cv_as_comdat_group_group.
694 * configure: Regenerate.
695 * config/sol2.h (TARGET_SOLARIS): Define.
696 (PUSHSECTION_FORMAT): Remove.
697 (SECTION_NAME_FORMAT): Define.
698 * config/sol2.c: Include hashtab.h.
699 (solaris_output_init_fini): Replace PUSHSECTION_FORMAT by its
700 expansion, using SECTION_NAME_FORMAT.
701 (solaris_comdat_htab): New variable.
702 (struct comdat_entry): Define.
703 (comdat_hash): New function.
704 (comdat_eq): New function.
705 (solaris_elf_asm_comdat_section): New function.
706 (solaris_define_comdat_signature): New function.
707 (solaris_code_end): New function.
708 * config/sol2-protos.h (solaris_elf_asm_comdat_section): Declare.
709 (solaris_code_end): Declare.
710 * config/t-sol2 (sol2.o): Add $HASHTAB_H dependency.
711 * config/i386/i386.c (ix86_code_end) [TARGET_SOLARIS]: Call
713 (i386_solaris_elf_named_section): Wrap in TARGET_SOLARIS.
714 Remove ATTRIBUTE_UNUSED.
715 [!USE_GAS]: Call solaris_elf_asm_comdat_section for
716 SECTION_LINKONCE sections if HAVE_COMDAT_GROUP.
717 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Likewise.
718 * config/i386/sol2-10.h (TARGET_ASM_NAMED_SECTION): Moved ...
719 * config/i386/sol2.h (TARGET_ASM_NAMED_SECTION): ... here.
720 * config/sparc/sol2.h (TARGET_ASM_CODE_END): Redefine.
721 (PUSHSECTION_FORMAT): Remove.
722 (SECTION_NAME_FORMAT): Redefine.
724 2011-05-19 Kai Tietz <ktietz@redhat.com>
726 * tree-cfg.c (verify_gimple_assign_binary): Barf on
727 TRUTH_AND_EXPR, TRUTH_OR_EXPR, and TRUTH_XOR_EXPR.
728 (gimplify_expr): Move TRUTH_AND|OR|XOR_EXPR to its binary form.
730 2011-05-19 Anatoly Sokolov <aesok@post.ru>
731 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
733 * config/t-sol2 (sol2.o): Add $(TARGET_H) dependency.
735 2011-05-19 Richard Guenther <rguenther@suse.de>
738 * tree-object-size.c (addr_object_size): If the pointed-to
739 variable is a decl use DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT.
741 2011-05-19 Richard Guenther <rguenther@suse.de>
743 * gimple.c (gimple_types_compatible_p_1): Compare names of
744 the types themselves.
745 (iterative_hash_gimple_type): And hash them that way.
746 (gimple_register_type_1): If we register a main variant properly
747 initialize the leader to ourselves.
749 2011-05-19 Tom de Vries <tom@codesourcery.com>
752 * tree-ssa-loop-ivopts.c (get_expr_id): Factored new function out of
753 get_loop_invariant_expr_id.
754 (get_loop_invariant_expr_id): Use get_expr_id.
755 (parm_decl_cost): New function.
756 (determine_use_iv_cost_condition): Use get_expr_id and parm_decl_cost.
757 Improve bound cost estimation. Use different inv_expr_id for elim and
760 2011-05-19 Tom de Vries <tom@codesourcery.com>
763 * tree-ssa-loop-ivopts.c (determine_iv_cost): Prevent
766 2011-05-18 H.J. Lu <hongjiu.lu@intel.com>
769 * config/i386/sse.md (avx_<ssemodesuffix><avxsizesuffix>_<ssemodesuffix>):
770 Properly handle load cast.
772 2011-05-18 Jakub Jelinek <jakub@redhat.com>
774 PR tree-optimization/49039
775 * tree-vrp.c (extract_range_from_binary_expr): For
776 MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
777 return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
779 2011-05-18 Tom de Vries <tom@codesourcery.com>
782 * tree-ssa-loop-ivopts.c (computation_cost): Prevent cost of 0.
784 2011-05-18 Uros Bizjak <ubizjak@gmail.com>
786 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Split asm template.
787 (*tls_global_dynamic_64): Ditto.
788 (*tls_local_dynamic_base_32_gnu): Ditto.
789 (*tls_local_dynamic_base_64): Ditto.
790 (tls_initial_exec_64_sun): Ditto.
792 2011-05-18 Stuart Henderson <shenders@gcc.gnu.org>
794 * doc/invoke.texi (Blackfin Options): -mcpu accepts bf592.
795 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for
797 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise.
798 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise.
799 * config/bfin/bfin.c (bfin_cpus): Add bf592.
800 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define
801 __ADSPBF592__ and __ADSPBF59x__ for BFIN_CPU_BF592.
802 * config/bfin/bfin-opts.h (bfin_cpu_type): Add BFIN_CPU_BF592.
803 * config/bfin/elf.h (LIB_SPEC): Add bf592.
805 2011-05-18 Joseph Myers <joseph@codesourcery.com>
807 * config/arm/arm-opts.h (enum arm_fp16_format_type, enum
808 arm_abi_type, enum float_abi_type, enum arm_tp_type): Move from arm.h.
809 * config/arm/arm.c (arm_float_abi, arm_fp16_format, arm_abi,
810 target_thread_pointer, arm_structure_size_boundary, struct
811 float_abi, all_float_abis, struct fp16_format, all_fp16_formats,
812 struct abi_name, arm_all_abis): Remove.
813 (arm_option_override) Don't process most enumerated option values here.
814 Don't process target_fpe_name here. Work with integer not string for
815 structure size boundary; use separate diagnostics for each case.
816 * config/arm/arm.h (enum float_abi_type, enum
817 arm_fp16_format_type, enum arm_abi_type, enum arm_tp_type): Move
819 (arm_float_abi, arm_fp16_format, arm_abi, target_thread_pointer,
820 arm_structure_size_boundary): Remove.
821 * config/arm/arm.opt (mabi=): Use Enum and Init.
822 (arm_abi_type): New Enum and EnumValue entries.
823 (mfloat-abi=): Use Enum and Init.
824 (float_abi_type): New Enum and EnumValue entries.
825 (mfp=, mfpe=): Replace by separate Alias entries for each argument.
826 (mfp16-format=): Use Enum and Init.
827 (arm_fp16_format_type): New Enum and EnumValue entries.
828 (mstructure-size-boundary=): Use UInteger and Init.
829 (mtp=): Use Enum and Init.
830 (arm_tp_type): New Enum and EnumValue entries.
832 2011-05-18 Richard Guenther <rguenther@suse.de>
834 PR tree-optimization/49018
835 * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
836 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
837 gimple_has_side_effects.
839 2011-05-18 Richard Guenther <rguenther@suse.de>
841 * gimple.c (gimple_register_type_1): New function, split out from ...
842 (gimple_register_type): ... here. Avoid infinite recursion.
844 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
846 PR tree-optimization/41881
847 * tree-vectorizer.h (struct _loop_vec_info): Add new field
848 reduction_chains along with a macro for its access.
849 * tree-vect-loop.c (new_loop_vec_info): Initialize reduction chains.
850 (destroy_loop_vec_info): Free reduction chains.
851 (vect_analyze_loop_2): Return false if vect_analyze_slp() returns false.
852 (vect_is_slp_reduction): New function.
853 (vect_is_simple_reduction_1): Call vect_is_slp_reduction.
854 (vect_create_epilog_for_reduction): Support SLP reduction chains.
855 * tree-vect-slp.c (vect_get_and_check_slp_defs): Allow different
856 definition types for reduction chains.
857 (vect_supported_load_permutation_p): Don't allow permutations for
859 (vect_analyze_slp_instance): Support reduction chains.
860 (vect_analyze_slp): Try to build SLP instance from reduction chains.
861 (vect_get_constant_vectors): Handle reduction chains.
862 (vect_schedule_slp_instance): Mark the first statement of the
863 reduction chain as reduction.
865 2011-05-18 Ira Rosen <ira.rosen@linaro.org>
867 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Use new
868 names for group elements access.
869 * tree-vectorizer.h (struct _stmt_vec_info): Use interleaving info for
870 reduction chains as well. Remove data reference and interleaving
871 related words from the fields names.
872 * tree-vect-loop.c (vect_transform_loop): Use new names for group
874 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain,
875 vect_insert_into_interleaving_chain, vect_update_interleaving_chain,
876 vect_update_interleaving_chain, vect_same_range_drs,
877 vect_analyze_data_ref_dependence, vect_update_misalignment_for_peel,
878 vect_verify_datarefs_alignment, vector_alignment_reachable_p,
879 vect_peeling_hash_get_lowest_cost, vect_enhance_data_refs_alignment,
880 vect_analyze_group_access, vect_analyze_data_ref_access,
881 vect_create_data_ref_ptr, vect_transform_strided_load,
882 vect_record_strided_load_vectors): Likewise.
883 * tree-vect-stmts.c (vect_model_simple_cost, vect_model_store_cost,
884 vect_model_load_cost, vectorizable_store, vectorizable_load,
885 vect_remove_stores, new_stmt_vec_info): Likewise.
886 * tree-vect-slp.c (vect_build_slp_tree,
887 vect_supported_slp_permutation_p, vect_analyze_slp_instance): Likewise.
889 2011-05-18 Richard Guenther <rguenther@suse.de>
892 * tree-cfg.c (verify_gimple_assign_unary): Adjust TRUTH op
893 operand verification.
894 (verify_gimple_assign_binary): Likewise.
895 * tree-ssa.c (useless_type_conversion_p): Preserve conversions
896 to non-1-precision BOOLEAN_TYPEs.
898 2011-05-18 Tom de Vries <tom@codesourcery.com>
901 * tree-ssa-loop-ivopts.c (seq_cost): Fix call to rtx_cost.
903 2011-05-18 Jakub Jelinek <jakub@redhat.com>
905 PR tree-optimization/49000
906 * tree-ssa.c (execute_update_addresses_taken): Call
907 maybe_rewrite_mem_ref_base on debug stmt value. If it couldn't
908 be rewritten and decl has been marked for renaming, reset
911 2011-05-17 Joseph Myers <joseph@codesourcery.com>
913 * config/i386/i386.c (ix86_valid_target_attribute_tree): Use
914 enum_opts_set when testing if attributes have set -mfpmath=.
916 2011-05-17 Richard Sandiford <rdsandiford@googlemail.com>
918 * config/mips/mips.c (mips_handle_option): Remove unused variable.
920 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
922 * ipa-inline-analysis.c (inline_node_duplication_hook): Initialize
924 * tree-inline.c (maybe_inline_call_in_expr): Initialize
925 id.transform_lang_insert_block with NULL.
927 2011-05-17 Uros Bizjak <ubizjak@gmail.com>
929 * config/i386/i386-protos.h (output_fix_trunc): Change arg 3 to bool.
930 (output_fp_compare): Change args 3 and 4 to bool.
931 (ix86_expand_call): Change arg 6 to bool.
932 (ix86_attr_length_immediate_default): Change arg 2 to bool.
933 (ix86_attr_length_vex_default): Change arg 3 to bool.
934 * config/i386/i386.md: Update all uses.
935 * config/i386/i386.c: Ditto.
936 (ix86_flags_dependent): Change return type to bool.
938 2011-05-17 Richard Guenther <rguenther@suse.de>
940 * gimple.c (type_hash_pair_compare): Fix comparison.
942 2011-05-17 Richard Guenther <rguenther@suse.de>
944 * gimple.c (iterative_hash_gimple_type): Simplify singleton
945 case some more, fix final hash value of the non-singleton case.
947 2011-05-17 Richard Guenther <rguenther@suse.de>
951 2011-05-16 Richard Guenther <rguenther@suse.de>
953 * gimple.c (gimple_types_compatible_p_1): Use names of the
954 type itself, not its main variant.
955 (iterative_hash_gimple_type): Likewise.
957 2011-05-17 Richard Guenther <rguenther@suse.de>
959 * gimple.c (gimple_register_canonical_type): Use the main-variant
960 leader for computing the canonical type.
962 2011-05-17 Nick Clifton <nickc@redhat.com>
964 * config/rx/rx.c (rx_memory_move_cost): Include cost of register
967 * config/rx/rx.md: Add peephole to remove redundant extensions
969 (bitset_in_memory): Use rx_restricted_mem_operand.
970 (bitinvert_in_memory): Likewise.
971 (bitclr_in_memory): Likewise.
973 2011-05-17 Kazuhio Inaoka <kazuhiro.inaoka.ud@renesas.com>
974 Nick Clifton <nickc@redhat.com>
976 * config/rx/rx.md: Add peepholes to match a register move followed
977 by a comparison of the moved register. Replace these with an
978 addition of zero that does both actions in one instruction.
980 2011-05-17 Jakub Jelinek <jakub@redhat.com>
983 * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
984 predicate to allow CONST_INT.
985 (*sync_old_add_cmp<mode>): New insn and peephole2 for it.
987 2011-05-16 Joseph Myers <joseph@codesourcery.com>
989 * opts-common.c (opt_enum_arg_to_value): New.
990 * opts.h (opt_enum_arg_to_value): Declare.
991 * config/i386/i386.opt (fpmath): Remove.
992 (mfpmath=): Use Enum, Init and Save.
993 (fpmath_unit): New Enum and EnumValue entries.
994 * config/i386/i386-c.c (ix86_pragma_target_parse): Update field
995 name for function fpmath state.
996 * config/i386/i386-opts.h (enum fpmath_unit): Move from i386.h.
997 * config/i386/i386.c: Include diagnostic.h.
998 (ix86_fpmath, IX86_FUNCTION_SPECIFIC_FPMATH): Remove.
999 (ix86_target_string): Take enum fpmath_unit value instead of string.
1000 (ix86_debug_options): Update call to ix86_target_string.
1001 (ix86_option_override_internal): Don't process fpmath strings here.
1002 (x86_function_specific_save, ix86_function_specific_restore):
1003 Don't handle fpmath state specially.
1004 (ix86_function_specific_print): Pass fpmath state to
1005 ix86_target_string instead of printing in this function.
1006 (ix86_valid_target_attribute_inner_p): Take gcc_options pointer.
1007 Handle enum attributes.
1008 (IX86_ATTR_ENUM, ix86_opt_enum): New.
1009 (ix86_valid_target_attribute_tree): Update option_strings
1010 handling. Handle fpmath as enum option.
1011 (ix86_can_inline_p): Update field names for function fpmath state.
1012 (ix86_expand_builtin): Update call to ix86_target_string.
1013 * config/i386/i386.h (enum fpmath_unit): Move to i386-opts.h.
1014 (ix86_fpmath): Remove.
1015 * config/i386/t-i386 (i386.o): Update dependencies.
1017 2011-05-16 Joseph Myers <joseph@codesourcery.com>
1019 PR preprocessor/48677
1020 * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
1021 from decoded_options[0], not from itself.
1023 2011-05-16 Uros Bizjak <ubizjak@gmail.com>
1025 * config/i386/constraints.md (z): New constraint.
1026 * config/i386/i386.c (c): New mode attribute.
1027 (*call): Merge insn pattern from *call_0, *call_1, *call_1_rex64 and
1028 *call_1_rex64_large patterns using "P" mode iterator. Use "<c>zm"
1029 constraint for operand 0.
1030 (*call_vzeroupper): Ditto.
1031 (*call_rex64_ms_sysv): Ditto. Use "rzm" constraint for operand 0.
1032 (*call_rex64_ms_sysv_vzeroupper): Ditto.
1033 (*call_pop): Merge insn pattern from *call_pop_0 and *call_pop_1.
1034 Use "lzm" constraint for operand 0.
1035 (*call_pop_vzeroupper): Ditto.
1036 (*sibcall): Merge insn pattern from *sibcall_0, *sibcall_1 and
1037 *sibcall_1_rex64 patterns using "P" mode iterator. Use "Uz"
1038 constraint for operand 0.
1039 (*sibcall_vzeroupper): Ditto.
1040 (*sibcall_rex64_ms_sysv): Ditto.
1041 (*sibcall_rex64_ms_sysv_vzeroupper): Ditto.
1042 (*sibcall_pop): Merge insn pattern from *sibcall_pop_0 and
1043 *sibcall_pop_1. Use "Uz" constraint for operand 0.
1044 (*sibcall_pop_vzeroupper): Ditto.
1045 (*call_value): Merge insn pattern from *call_value_0, *call_value_1,
1046 *call_value_1_rex64 and *call_value_1_rex64_large patterns using "P"
1047 mode iterator. Use "<c>zm" constraint for operand 1.
1048 (*call_value_vzeroupper): Ditto.
1049 (*call_value_rex64_ms_sysv): Ditto. Use "rzm" constraint
1051 (*call_value_rex64_ms_sysv_vzeroupper): Ditto.
1052 (*call_value_pop): Merge insn pattern from *call_value_pop_0 and
1053 *call_value_pop_1. Use "lzm" constraint for operand 1.
1054 (*call_value_pop_vzeroupper): Ditto.
1055 (*sibcall_value): Merge insn pattern from *sibcall_value_0,
1056 *sibcall_value_1 and *sibcall_value_1_rex64 patterns using "P"
1057 mode iterator. Use "Uz" constraint for operand 1.
1058 (*sibcall_value_vzeroupper): Ditto.
1059 (*sibcall_value_rex64_ms_sysv): Ditto.
1060 (*sibcall_value_rex64_ms_sysv_vzeroupper): Ditto.
1061 (*sibcall_value_pop): Rename from *sibcall_pop_1. Use "Uz"
1062 constraint for operand 1.
1063 (*sibcall_value_pop_vzeroupper): Ditto.
1064 (*tls_global_dynamic_64): Use constant_call_address_operand predicate
1065 and "z" constraint for operand 2.
1066 (*tls_global_dynamic_32_gnu): Ditto.
1067 (*tls_local_dynamic_base_32_gnu): Ditto.
1068 (*tls_local_dynamic_base_64): Ditto.
1069 (*tls_local_dynamic_32_once): Ditto.
1070 * config/i386/i386.c (ix86_output_call_insn): Remove int_addr argument.
1072 * config/i386/i386-protos.h (ix86_output_call_insn): Update prototype.
1074 2011-05-16 Richard Guenther <rguenther@suse.de>
1076 * gimple.c (gimple_types_compatible_p_1): Use names of the
1077 type itself, not its main variant.
1078 (iterative_hash_gimple_type): Likewise.
1080 2011-05-16 Richard Guenther <rguenther@suse.de>
1082 * gimple.c (iterative_hash_gimple_type): Re-instantiate change to
1083 always visit pointer target and function result and argument types.
1085 2011-05-16 Jason Merrill <jason@redhat.com>
1088 * tree-inline.c (copy_statement_list): Put back recursion.
1090 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
1094 * config/avr/predicates.md (const_8_16_24_operand): New predicate.
1095 * config/avr/avr.md ("*ior<mode>qi.byte0",
1096 "*ior<mode>qi.byte1-3"): New define_insn_and_split patterns.
1098 2011-05-16 Georg-Johann Lay <avr@gjlay.de>
1101 * config/avr/avr.c (avr_function_arg_advance): Error if a fixed
1102 register is needed for a function argument.
1104 2011-05-16 Richard Guenther <rguenther@suse.de>
1106 * gimple.c (struct type_hash_pair): New type.
1107 (type_hash_pair_compare): New function.
1108 (iterative_hash_gimple_type): Mix in SCC member hashes in hash-order.
1110 2011-05-16 Revital Eres <revital.eres@linaro.org>
1112 * modulo-sched.c (doloop_register_get): Check !DEBUG_INSN_P first.
1114 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
1116 * config/i386/i386.md (floating point move splitters): Fix
1117 usage of standard_80387_constant_p.
1118 * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
1120 2011-05-15 Uros Bizjak <ubizjak@gmail.com>
1122 * config/i386/i386.md (*movdf_internal): Simplify insn condition.
1124 2011-05-14 Eric Botcazou <ebotcazou@adacore.com>
1126 * tree-ssa-loop-im.c (SET_ALWAYS_EXECUTED_IN): New macro.
1127 (fill_always_executed_in): Use [SET_]ALWAYS_EXECUTED_IN.
1128 (tree_ssa_lim_finalize): Likewise.
1130 2011-05-14 Uros Bizjak <ubizjak@gmail.com>
1132 * config/i386/constraint.md (Yd, Yx): New register constraints.
1133 * config/i386/i386.md (*pushdf): Merge with *pushdf_nointeger. Use
1134 Yd conditional register constraint.
1135 (*movtf_internal): Use standard_sse_constant_opcode.
1136 (*movxf_internal): Merge with *movxf_internal_nointeger. Use
1137 Yx conditional register constraint.
1138 (*movdf_internal): Merge with *movdf_internal_nointeger. Use
1139 Yd conditional register constraint. Use standard_sse_constant_p to
1140 check for valid SSE constants and call standard_sse_constant_opcode to
1142 (*movsf_internal): Use standard_sse_constant_p to check for valid SSE
1143 constants and call standard_sse_constant_opcode to output SSE insn.
1144 * config/i386/i386.c (ix86_option_ovverride_internal): Set
1145 TARGET_INTEGER_DFMODE_MOVES for 64bit targets. Clear it when
1146 optimize_size is set.
1147 (standard_sse_constant_opcode): Output conditional AVX insn templates.
1149 2011-05-14 Tobias Burnus <burnus@net-b.de>
1151 * doc/invoke.texi (-Ofast): Also enables -fstack-arrays.
1153 2011-05-13 Martin Jambor <mjambor@suse.cz>
1155 * ipa-prop.c (ipa_cst_from_jfunc): New function.
1156 * ipa-prop.h (ipa_cst_from_jfunc): Declare.
1157 * ipa-inline-analysis.c (evaluate_conditions_for_edge): Use it.
1158 (evaluate_conditions_for_ipcp_clone): Removed.
1159 (estimate_ipcp_clone_size_and_time): Accept vector of known constants.
1160 * ipa-cp.c (ipcp_estimate_growth): Build vector of known constants.
1161 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update.
1163 2011-05-13 Eric Botcazou <ebotcazou@adacore.com>
1165 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Adjust dump message.
1166 * regcprop.c (copyprop_hardreg_forward): Test MAY_HAVE_DEBUG_INSNS in
1167 lieu of MAY_HAVE_DEBUG_STMTS.
1168 * tree-cfgcleanup.c (remove_forwarder_block): Do not attempt to move
1169 debug statements if !MAY_HAVE_DEBUG_STMTS.
1171 2011-05-13 Martin Thuresson <martint@google.com>
1173 PR gcov-profile/47793
1174 * libgcov.c (gcov_exit): Support relative profile paths.
1175 * doc/invoke.texi (-fprofile-dir): Update for above change.
1177 2011-05-13 Richard Guenther <rguenther@suse.de>
1179 * gimple.c (gimple_canonical_types_compatible_p): Do not use
1180 type-pair caching, do not compare hashes.
1182 2011-05-13 Nathan Froyd <froydnj@codesourcery.com>
1185 * tree-cfg.c (edge_to_cases_cleanup): Return true.
1186 (verify_expr) [CASE_LABEL_EXPR]: Add checking.
1188 2011-05-13 Kai Tietz <ktietz@redhat.com>
1190 * gimplify.c (gimplify_expr): Make sure operand is boolified.
1191 * tree-cfg.c (verify_gimple_assign_unary): Check for boolean
1192 compatible type for TRUTH_NOT_EXPR.
1194 2011-05-13 H.J. Lu <hongjiu.lu@intel.com>
1196 * config/i386/i386.c (ix86_save_reg): Change return type to bool.
1197 (ix86_hard_regno_mode_ok): Change return value to bool. Use
1198 can_create_pseudo_p ().
1200 2011-05-13 Richard Guenther <rguenther@suse.de>
1203 * gimple.c (iterative_hash_gimple_type): Revert change in
1204 pointer target and function result and argument hashing.
1206 2011-05-13 Uros Bizjak <ubizjak@gmail.com>
1208 * config/i386/i386.md (*movxf_internal): Use !can_create_pseudo ().
1209 (*movxf_internal_nointeger): Ditto.
1210 (*movdf_internal_rex64): Ditto.
1211 (*movdf_internal): Ditto.
1212 (*movdf_internal_nointeger): Ditto.
1213 (*movsf_internal): Ditto.
1214 (sincos splitters): Use can_create_pseudo ().
1216 2011-05-13 Joseph Myers <joseph@codesourcery.com>
1218 * config/i386/i386-opts.h: New.
1219 * gcc/config/i386/i386.c (stringop_alg, ix86_cmodel,
1220 ix86_asm_dialect, ix86_regparm, ix86_abi, ix86_branch_cost,
1221 ix86_section_threshold): Remove.
1222 (ix86_handle_option): Move MAX_CODE_ALIGN define here. Handle
1223 OPT_malign_loops_, OPT_malign_jumps_, OPT_malign_functions_ and
1225 (ix86_option_override_internal): Don't decode strings for options
1226 other than -march=, -mtune= and -mfpmath=. Don't allow for
1227 __attribute__ uses in remaining diagnostics for options with
1228 string arguments. Don't check for integer arguments being negative.
1229 * gcc/config/i386/i386.h (enum stringop_alg, enum calling_abi,
1230 enum tls_dialect, enum cmodel, enum asm_dialect): Move to i386-opts.h.
1231 (ix86_abi, ix86_tls_dialect, ix86_cmodel, ix86_asm_dialect,
1232 ix86_branch_cost, ix86_section_threshold): Remove.
1233 * gcc/config/i386/i386.opt (config/i386/i386-opts.h): New
1235 (malign-functions=, malign-jumps=, malign-loops=): Use UInteger
1237 (masm=): Use Enum and Init.
1238 (asm_dialect): New Enum and EnumValue entries.
1239 (mbranch-cost=): Use UInteger.
1240 (mlarge-data-threshold=): Use UInteger and Init.
1241 (mcmodel=): Use Enum and Init.
1242 (cmodel): New Enum and EnumValue entries.
1243 (mpc): Replace with separate mpc32, mpc64 and mpc80 entries.
1244 (mpreferred-stack-boundary=, mincoming-stack-boundary=,
1245 mregparm=): Use UInteger.
1246 (mstringop-strategy=): Use Enum and Init.
1247 (stringop_alg): New Enum and EnumValue entries.
1248 (mtls-dialect=): Use Enum and Init.
1249 (tls_dialect): New Enum and EnumValue entries.
1250 (mabi=): Use Enum and Init.
1251 (calling_abi): New Enum and EnumValue entries.
1252 (mveclibabi=): Use Enum and Init.
1253 (ix86_veclibabi): New Enum and EnumValue entries.
1255 2011-05-13 Nick Clifton <nickc@redhat.com>
1257 * config/rx/rx.md (mov expander): Fix use of rx_legitimate_constant_p.
1258 * config/rx/rx-protos.h (rx_legitimate_constant_p): Rename prototype.
1260 2011-05-13 Kai Tietz <ktietz@redhat.com>
1263 * gimplify.c (gimplify_expr): Check for boolean_type_node instead
1264 for BOOLEAN_TYPE for TRUTH-NOT/AND/OR/XOR.
1265 (gimple_boolify): Check for cast for boolean_type_node instead for
1268 2011-05-13 Richard Guenther <rguenther@suse.de>
1270 PR tree-optimization/48172
1271 * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
1272 multiplying by number of iterations for equal step.
1273 (vect_create_cond_for_alias_checks): Likewise.
1275 2011-05-13 Andreas Schwab <schwab@redhat.com>
1277 * configure.ac: Use AS_HELP_STRING throughout.
1278 * configure: Regenerate.
1280 2011-05-12 H.J. Lu <hongjiu.lu@intel.com>
1282 * config/i386/i386.c (ix86_save_reg): Change maybe_eh_return to bool.
1283 (ix86_emit_restore_regs_using_mov): Likewise.
1284 (ix86_emit_restore_sse_regs_using_mov): Likewise.
1286 2011-05-12 Anatoly Sokolov <aesok@post.ru>
1288 * config/sparc/sparc.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P,
1289 SYMBOLIC_CONST, RTX_OK_FOR_BASE_P, RTX_OK_FOR_INDEX_P): Remove.
1290 (RTX_OK_FOR_OFFSET_P, RTX_OK_FOR_OLO10_P): Move to...
1291 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P,
1292 RTX_OK_FOR_OLO10_P): ...here.
1293 (sparc_mode_dependent_address_p): Use symbolic_operand instead of
1296 2011-05-12 Kai Tietz <ktietz@redhat.com>
1298 * gimplify.c (gimple_boolify): Re-boolify expression
1299 arguments even if expression type is of kind BOOLEAN_TYPE.
1300 (gimplify_boolean_expr): Removed.
1301 (gimplify_expr): Boolify truth opcodes AND, ANDIF, OR, ORIF,
1302 and XOR. Additional take care that we keep expression's type.
1303 * tree-cfg.c (verify_gimple_assign_binary): Adjust check for type
1304 of TRUTH_AND|OR|XOR_EXPR.
1306 2011-05-12 Jakub Jelinek <jakub@redhat.com>
1308 PR tree-optimization/48975
1309 * tree-if-conv.c (combine_blocks): Call free_bb_predicate
1310 on all bbs here and free and clear ifc_bbs at the end.
1312 2011-05-12 Richard Guenther <rguenther@suse.de>
1314 * gimple.c (gtc_visit): Compare TREE_ADDRESSABLE, handle
1315 NULLPTR_TYPE similar to VOID_TYPE. Defer type-leader lookup
1316 until after simple checks.
1317 (gimple_types_compatible_p): Likewise.
1318 (iterative_hash_gimple_type): Always hash pointer targets
1319 and function return and argument types.
1320 (iterative_hash_canonical_type): Do not hash TYPE_QUALS,
1321 hash TYPE_ALIGN. Do not hash TYPE_MIN/MAX_VALUE.
1322 (gimple_canonical_types_compatible_p): Compare TREE_ADDRESSABLE,
1323 handle NULLPTR_TYPE similar to VOID_TYPE. Handle non-aggregates
1324 completely in the simple compare section.
1325 (gimple_register_canonical_type): Query the cache again after
1328 2011-05-12 Richard Guenther <rguenther@suse.de>
1330 PR tree-optimization/48172
1331 * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
1332 the number of iterations from the segment size calculation.
1333 (vect_create_cond_for_alias_checks): Adjust.
1335 2011-05-12 Jakub Jelinek <jakub@redhat.com>
1338 * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
1339 if validate_subreg fails.
1341 2011-05-12 Hariharan Sandanagobalane <hariharan@picochip.com>
1343 * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from
1344 accessing beyond the end of REGNO_REG_CLASS array by stopping the loop
1347 2011-05-12 DJ Delorie <dj@redhat.com>
1349 * config/rx/rx.c (rx_builtins): New arrays - holds builtin functions.
1350 (ADD_RX_BUILTIN1, ADD_RX_BUILTIN2, ADD_RX_BUILTIN3): Install
1351 created builtin into rx_builtins array.
1352 (rx_builtin_decl): New function.
1353 (TARGET_BUITLIN_DECL): Define. Include gt-rx.h.
1355 2011-05-12 DJ Delorie <dj@redhat.com>
1356 Nick Clifton <nickc@redhat.com>
1358 * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
1359 * config/rx/rx.c (CC_FLAG_FP): Fix comment.
1360 (rx_is_legitimate_address): Add pre-decrement and post-increment
1361 addressing in HImode and QImode. Fix test for out of range
1363 (rx_legitimate_constant_p): Rename to rx_is_legitimate_constant.
1364 (rx_align_for_label): Test label before extracting its usage count.
1365 (rx_adjust_insn_lengths): Fix selection of insn codes.
1366 (TARGET_LEGITIMATE_CONSTANT_P): Use renamed function.
1368 2011-05-11 Jason Merrill <jason@redhat.com>
1370 * tree.c (type_hash_canon): Use struct tree_type_non_common.
1372 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
1374 * cfgrtl.c (commit_one_edge_insertion): Remove always-true test and
1375 reindent the subsequent block.
1377 2011-05-11 Satoru Takabayashi <satorux@google.com>
1378 Paul Pluzhnikov <ppluzhnikov@google.com>
1380 * doc/install.texi (Configuration): Document --with-linker-hash-style.
1381 * gcc.c (init_spec): Handle LINKER_HASH_STYLE.
1382 * config.in: Add LINKER_HASH_STYLE.
1383 * configure.ac: Add --with-linker-hash-style.
1384 * configure: Regenerate.
1386 2011-05-11 Richard Guenther <rguenther@suse.de>
1389 * gimple.c (iterative_hash_canonical_type): Fix typo.
1391 2011-05-11 Uros Bizjak <ubizjak@gmail.com>
1393 * config/i386/i386.c (legitimize_tls_address)
1394 <case TLS_MODEL_GLOBAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
1395 expanders directly for TARGET_GNU2_TLS. Determine pic and
1396 __tls_get_addr symbol reference here. Update call to
1397 gen_tls_global_dynamic_{32,64} for added arguments.
1398 <case TLS_MODEL_LOCAL_DYNAMIC>: Call gen_tls_dynamic_gnu2_{32,64}
1399 expanders directly for TARGET_GNU2_TLS. Determine
1400 __tls_get_addr symbol reference here. Update call to
1401 gen_tls_local_dynamic_base_{32,64} for added arguments. Attach
1402 unique UNSPEC REG_EQUIV to libcall block.
1403 (ix86_tls_get_addr): Declare static.
1404 * config/i386/i386-protos.h (ix86_tls_get_addr): Remove declaration.
1405 * config/i386/i386.md (tls_global_dynamic_32): Add operand 2 and 3.
1406 Do not determine pic and __tls_get_addr symbol reference here. Do not
1407 call gen_tls_dynamic_gnu2_32 for TARGET_GNU2_TLS.
1408 (tls_local_dynamic_base_32): Ditto for operands 1 and 2.
1409 (tls_global_dynamic_64): Add operand 2. Do not determine
1410 __tls_get_addr symbol reference here. Do not call
1411 gen_tls_dynamic_gnu2_64 for TARGET_GNU2_TLS here.
1412 (tls_local_dynamic_base64): Ditto for operand 1.
1414 2011-05-11 Eric Botcazou <ebotcazou@adacore.com>
1416 * function.c (expand_function_start): Initialize stack_check_probe_note
1417 only if the generic stack checking mechanism is used.
1419 2011-05-11 Richard Guenther <rguenther@suse.de>
1421 PR tree-optimization/15256
1422 * tree-ssa-forwprop.c (simplify_bitwise_binary): Canonicalize
1423 (A & B) | C, combine (A op CST1) op CST2.
1424 (tree_ssa_forward_propagate_single_use_vars): Only bother to
1425 visit assigns that have uses.
1427 2011-05-11 Nathan Froyd <froydnj@codesourcery.com>
1429 * ggc-page.c (extra_order_size_table): Use struct tree_type_non_common.
1430 * lto-streamer-in.c (unpack_ts_type_value_fields): Rename to...
1431 (unpack_ts_type_common_value_fields): ...this. Update comment.
1432 (unpack_value_fields): Adjust for renaming.
1433 (lto_input_ts_type_tree_pointers): Split into...
1434 (lto_input_ts_type_common_tree_pointer): ...this and...
1435 (lto_input_ts_type_non_common_tree_pointers): ...this.
1436 (lto_input_tree_pointers): Adjust for above split.
1437 * lto-streamer-out.c (pack_ts_type_value_fields): Rename to...
1438 (pack_ts_type_common_value_fields): ...this. Update comment.
1439 (lto_output_ts_type_tree_pointers): Split into...
1440 (lto_output_ts_type_common_tree_pointers): ...this and...
1441 (lto_output_ts_type_non_common_tree_pointers): ...this.
1442 (lto_output_tree_pointers): Adjust for above split.
1443 * lto-streamer.c (check_handled_ts_structures): Mark TS_TYPE_COMMON,
1444 TS_TYPE_WITH_LANG_SPECIFIC, and TS_TYPE_NON_COMMON as handled.
1445 * stor-layout.c (vector_type_mode): Adjust location of mode field.
1446 * tree.h (MARK_TS_TYPE_COMMON, MARK_TS_TYPE_WITH_LANG_SPECIFIC):
1448 (struct tree_type): Split into...
1449 (struct tree_type_common: ...this and...
1450 (struct tree_type_with_lang_specific): ...this and...
1451 (struct tree_type_non_common): ...this. Adjust accessor macros
1453 (TYPE_VALUES_RAW): Define.
1454 (union tree_node): Update for above changes.
1455 * tree.c (tree_node_structure_for_code) [tcc_type]: Return
1457 (initialize_tree_contains_struct) [TS_TYPE]: Use TS_TYPE_COMMON.
1458 Add TS_TYPE_WITH_LANG_SPECIFIC and TS_TYPE_NON_COMMON.
1459 (tree_code_size) [tcc_type]: Use struct tree_type_non_common.
1460 * treestructu.def (TS_TYPE): Remove.
1461 (TS_TYPE_COMMON, TS_TYPE_WITH_LANG_SPECIFIC, TS_TYPE_NON_COMMON):
1464 2011-05-11 Jakub Jelinek <jakub@redhat.com>
1467 * tree-ssa.c (reset_debug_uses): New function.
1468 * tree-flow.h (reset_debug_uses): New prototype.
1469 * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
1470 * tree-loop-distribution.c (generate_loops_for_partition): Call
1471 reset_debug_uses on the stmts that will be removed. Keep around
1472 all debug stmts, don't count them as bits in partition bitmap.
1473 (generate_builtin): Don't count debug stmts or labels as bits in
1476 2011-05-11 Richard Guenther <rguenther@suse.de>
1478 * gimple.c (gimple_type_hash_1): Merge with ...
1479 (gimple_type_hash): ... this.
1480 (gtc_visit): Remove mode parameter and simplify accordingly.
1481 (gimple_types_compatible_p_1): Likewise.
1482 (gimple_types_compatible_p): Likewise.
1483 (iterative_hash_gimple_type): Likewise.
1485 (gimple_type_eq): Adjust.
1487 2011-05-11 Revital Eres <revital.eres@linaro.org>
1489 * ddg.c (create_ddg_dep_from_intra_loop_link): If a true dep edge
1490 enters the branch create an anti edge in the opposite direction
1491 to prevent the creation of reg-moves.
1492 * modulo-sched.c: Adjust comment to reflect the fact we are
1493 scheduling closing branch.
1494 (PS_STAGE_COUNT): Rename to CALC_STAGE_COUNT and redefine.
1495 (stage_count): New field in struct partial_schedule.
1496 (calculate_stage_count): New function.
1497 (normalize_sched_times): Rename to reset_sched_times and handle
1498 incrementing the sched time of the nodes by a constant value
1499 passed as parameter.
1500 (duplicate_insns_of_cycles): Skip closing branch.
1501 (sms_schedule_by_order): Schedule closing branch.
1502 (ps_insn_find_column): Handle closing branch.
1503 (sms_schedule): Call reset_sched_times and adjust the code to
1504 support scheduling of the closing branch.
1505 (ps_insert_empty_row): Update calls to normalize_sched_times
1506 and rotate_partial_schedule functions.
1508 2011-05-11 Richard Guenther <rguenther@suse.de>
1511 * tree-inline.c (remap_gimple_op_r): Also remap types of MEM_REFs.
1513 2011-05-11 Joseph Myers <joseph@codesourcery.com>
1515 * opts.c (finish_options): Move warning settings from process_options.
1516 * toplev.c (process_options): Move warning settings to finish_options.
1518 2011-05-11 Richard Guenther <rguenther@suse.de>
1520 PR tree-optimization/18041
1521 * tree-ssa-forwprop.c (simplify_bitwise_and): Rename to ...
1522 (simplify_bitwise_binary): ... this. Handle operand conversions
1523 by applying them to the result instead.
1524 (tree_ssa_forward_propagate_single_use_vars): Adjust. CSE tree code.
1526 2011-05-11 Richard Guenther <rguenther@suse.de>
1528 * gimple.c (gimple_canonical_types_compatible_p): Split out
1529 from gimple_types_compatible_p and friends. Do not recurse
1530 to pointed-to types.
1531 (gimple_canonical_type_eq): Use it.
1532 (iterative_hash_canonical_type): Split out from
1533 iterative_hash_gimple_type and friends. Do not recurse
1534 to pointed-to types.
1535 (gimple_canonical_type_hash): Use it, allocate the hash here.
1537 2011-05-11 Revital Eres <revital.eres@linaro.org>
1539 * modulo-sched.c (doloop_register_get): Ignore DEBUG_INSNs while
1542 2011-05-11 Revital Eres <revital.eres@linaro.org>
1544 * loop-doloop.c (doloop_condition_get): Use prev_nondebug_insn
1545 instead of PREV_INSN.
1547 2011-05-11 Revital Eres <revital.eres@linaro.org>
1549 * modulo-sched.c (sms_schedule): Support new form of doloop pattern
1550 * loop-doloop.c (doloop_condition_get): Likewise.
1551 * config/arm/thumb2.md (*thumb2_addsi3_compare0): Remove "*".
1553 * config/arm/arm.md (*addsi3_compare0): Remove "*".
1555 2011-05-10 Nathan Froyd <froydnj@codesourcery.com>
1557 * tree.def (CASE_LABEL_EXPR): Add an operand.
1558 * tree.h (CASE_CHAIN): Use TREE_OPERAND instead of TREE_CHAIN.
1560 2011-05-10 Joseph Myers <joseph@codesourcery.com>
1562 * c-decl.c (c_override_global_bindings_to_false): Remove.
1563 (global_bindings_p): Don't check
1564 c_override_global_bindings_to_false.
1565 * c-tree.h (c_override_global_bindings_to_false): Remove.
1566 * c-typeck.c (composite_type): Don't set
1567 c_override_global_bindings_to_false.
1569 2011-05-10 Michael Meissner <meissner@linux.vnet.ibm.com>
1571 PR target/48857, 48495
1572 * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
1574 (VSX_MOVE_MODE): Ditto.
1575 (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
1576 VSX vector types. Add V2DImode.
1577 (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
1578 ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
1579 (MODES_TIEABLE_P): Ditto.
1581 * config/rs6000/rs6000.c (rs6000_emit_move): Use
1582 ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
1584 (init_cumulative_args): Ditto.
1585 (rs6000_function_arg_boundary): Ditto.
1586 (rs6000_function_arg_advance_1): Ditto.
1587 (rs6000_function_arg): Ditto.
1588 (rs6000_function_ok_for_sibcall): Ditto.
1589 (emit_frame_save): Ditto.
1590 (rs6000_function_value): Ditto.
1591 (rs6000_libcall_value): Ditto.
1593 2011-05-10 Joseph Myers <joseph@codesourcery.com>
1595 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
1596 i386/darwin-lib.h to $libgcc_tm_file.
1597 * config/i386/darwin.h (DECLARE_LIBRARY_RENAMES): Remove.
1599 2011-05-10 Joseph Myers <joseph@codesourcery.com>
1601 * doc/sourcebuild.texi (Back End): Mention contrib/config-list.mk.
1603 2011-05-10 Joseph Myers <joseph@codesourcery.com>
1605 * config/rs6000/genopt.sh, config/rs6000/rs6000-cpus.def: New files.
1606 * config/rs6000/rs6000-tables.opt: New file (generated).
1607 * config.gcc (powerpc*-*-*, rs6000*-*-*): Add
1608 rs6000/rs6000-tables.opt to extra_options.
1609 * config/rs6000/rs6000-opts.h (RS6000_CPU_OPTION_NATIVE): Define.
1610 * config/rs6000/rs6000.c (rs6000_select): Remove.
1611 (processor_target_table): Move contents to rs6000-cpus.def.
1612 (darwin_rs6000_override_options): Check
1613 global_options_set.x_rs6000_cpu_index instead of
1614 rs6000_select[1].string.
1615 (rs6000_option_override_internal): Likewise.
1616 (rs6000_handle_option): Don't assert that global structures are in
1617 use. Don't handle OPT_mcpu_ and OPT_mtune_ here.
1618 (rs6000_default_cpu): New variable.
1619 (rs6000_file_start): Set it instead of local default_cpu. Check
1620 rs6000_default_cpu, global_options_set.x_rs6000_cpu_index and
1621 global_options_set.x_rs6000_tune_index instead of rs6000_select.
1622 (rs6000_darwin_file_start): Check rs6000_default_cpu and
1623 global_options_set.x_rs6000_cpu_index instead of rs6000_select.
1624 * config/rs6000/rs6000.h (struct rs6000_cpu_select,
1625 rs6000_select): Remove.
1626 * config/rs6000/rs6000.opt (rs6000_cpu_index, rs6000_tune_index):
1628 (mcpu=, mtune=): Use Var, Init, Enum and Save.
1629 * config/rs6000/t-rs6000
1630 ($(srcdir)/config/rs6000/rs6000-tables.opt): New.
1631 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1632 global_options_set.x_rs6000_cpu_index instead of
1633 rs6000_select[1].string.
1634 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1635 global_options_set.x_rs6000_cpu_index instead of
1636 rs6000_select[1].string.
1638 2011-05-10 Joseph Myers <joseph@codesourcery.com>
1640 * config.gcc (libgcc_tm_file): Define instead of including files
1641 from ../../libgcc/config/ in tm_file.
1642 * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Define.
1643 * configure: Regenerate.
1644 * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list,
1645 libgcc_tm.h, cs-libgcc_tm.h): New.
1646 (TM_H): Include libgcc_tm.h and $(libgcc_tm_file_list).
1647 (clean): Remove libgcc_tm.h.
1648 * config/arm/symbian.h (RENAME_LIBRARY): Remove.
1649 * mkconfig.sh: Include libgcc_tm.h in tm.h if USED_FOR_TARGET.
1650 * system.h (DECLARE_LIBRARY_RENAMES): Poison.
1652 2011-05-10 Georg-Johann Lay <avr@gjlay.de>
1655 * config/avr/avr.c (avr_ret_register): Return unsigned int
1657 (avr_function_value): Mark fn_decl_or_type as unused, don't pass
1658 it to avr_libcall_value.
1659 avr_expand_builtin): Use EXPAND_NORMAL as arg 4 in calls to
1661 (avr_expand_binop_builtin): Ditto.
1662 (avr_expand_unop_builtin): Ditto.
1664 2011-05-10 DJ Delorie <dj@redhat.com>
1666 * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
1667 (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
1668 * config/rx/rx.c (rx_align_for_label): Add label and
1669 uses_threshold parameters. Do not align when the label is not
1671 * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
1673 2011-05-10 Richard Guenther <rguenther@suse.de>
1675 * tree-ssa-forwprop.c (combine_conversions): Pattern-match
1676 a series of conversions and apply foldings similar to what
1678 (tree_ssa_forward_propagate_single_use_vars): Call it.
1680 2011-05-10 Jakub Jelinek <jakub@redhat.com>
1682 PR tree-optimization/48611
1683 PR tree-optimization/48794
1684 * tree-eh.c (remove_unreachable_handlers): Don't remove regions
1685 referenced from RESX or EH_DISPATCH arguments.
1688 * dfp.c (decimal_to_decnumber): Handle conversion from
1689 dconst{1,2,m1,half}.
1691 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
1693 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Return 0
1694 for !flag_prefer_avx128.
1695 (ix86_preferred_simd_mode): Return word_mode for DFmode without SSE2.
1697 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
1699 * fold-const.c (fold_range_test): Pass LOC to build_range_check.
1700 (fold_ternary_loc): Use expr_location_or.
1702 2011-05-09 H.J. Lu <hongjiu.lu@intel.com>
1705 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: If
1706 POINTERS_EXTEND_UNSIGNED is defined, don't give up if mode is
1707 Pmode and mem_mode is not VOIDmode.
1709 2011-05-09 Ville Voutilainen <ville.voutilainen@gmail.com>
1711 * tree.h (TYPE_UNQUALIFIED, TYPE_QUAL_CONST, TYPE_QUAL_VOLATILE,
1712 TYPE_QUAL_RESTRICT): Convert to enum.
1714 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
1716 * config/i386/predicates.md (const_pow2_1_to_2_operand): Remove.
1717 (const_pow2_1_to_8_operand): Ditto.
1718 (const_pow2_1_to_128_operand): Ditto.
1719 (const_pow2_1_to_32768_operand): Ditto.
1720 * config/i386/mmx.md (*mmx_pinsrw): Use const_int_operand instead of
1721 const_pow2_1_to_8_operand for operand 3 predicate. Use exact_log2
1722 in insn constraint to check integer value of operand 3.
1723 * config/i386/sse.md (*vec_setv4sf_sse4_1): Ditto.
1725 (PINSR_MODE): New mode iterator.
1726 (sse2p4_1): New mode attribute.
1727 (<sse2p4_1>_pinsr<ssemodesuffix>): Merge insn from sse4_1_pinsrb,
1728 sse2_pinsrw, sse4_1_pinsrd and sse4_1_pinsrq using PINSR_MODE mode
1729 iterator. Use const_int_operand instead of
1730 const_pow2_1_to_{2,8,128,32768}_operand for operand 3 predicate. Use
1731 exact_log2 in insn constraint to check integer value of operand 3.
1733 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
1735 * config/i386/sse.md (blendbits): Remove mode attribute.
1736 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Use const_int_operand
1737 instead of const_0_to_<blendbits>_operand for operand 3 predicate.
1738 Check integer value of operand 3 in insn constraint.
1740 2011-05-09 Richard Guenther <rguenther@suse.de>
1742 * lto-symtab.c (lto_cgraph_replace_node): Use types_compatible_p
1744 (lto_symtab_merge): Likewise. Do not register types here.
1745 (lto_symtab_merge_decls_2): Likewise.
1746 (lto_symtab_merge_decls_1): Likewise.
1747 * gimple.h (enum gtc_mode, gimple_types_compatible_p): Do not declare.
1748 * gimple.c (enum gtc_mode): Declare.
1749 (gimple_types_compatible_p): Make static.
1751 2011-05-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1753 * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
1754 temporary register to match Pmode.
1756 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
1758 * config/i386/sse.md (*vec_concatv4si): Merge from *vec_concatv4si_1
1759 and *vec_concatv4si_1_avx.
1761 2011-05-09 Uros Bizjak <ubizjak@gmail.com>
1763 PR rtl-optimization/48927
1764 * ira-conflicts.c (commutative_constraint_p): Use
1765 recog_data.alternative_enabled_p to disable alternatives where
1766 "enabled" attribute is false.
1767 (get_dup_num): Ditto.
1768 * ira-lives.c (single_reg_class): Ditto.
1769 (ira_implicitly_set_insn_hard_regs): Ditto.
1771 2011-05-09 Eric Botcazou <ebotcazou@adacore.com>
1773 * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
1774 (dataflow_set_preserve_mem_locs): Likewise.
1776 2011-05-09 Philipp Thomas <pth@suse.de>
1778 * config/mep/mep.c (mep_validate_vliw): Syntax description
1779 should not be translated.
1781 2011-05-09 Joseph Myers <joseph@codesourcery.com>
1783 * config/mips/genopt.sh, config/mips/mips-cpus.def: New files.
1784 * config/mips/mips-tables.opt: New file (generated).
1785 * config.gcc (mips*-*-*): Add mips/mips-tables.opt to extra_options.
1786 * config/mips/mips-opts.h (MIPS_ARCH_OPTION_FROM_ABI,
1787 MIPS_ARCH_OPTION_NATIVE): Define.
1788 * config/mips/mips.c (mips_cpu_info_table): Move contents to
1790 (mips_strict_matching_cpu_name_p, mips_matching_cpu_name_p,
1791 mips_parse_cpu): Remove.
1792 (mips_cpu_info_from_opt, mips_default_arch): New.
1793 (mips_handle_option): Don't assert that global structures are in
1794 use. Don't handle OPT_march_, OPT_mtune_ and OPT_mips here.
1795 (mips_option_override): Use new variables and functions to set
1796 state of these options. Use strcmp to check for individual CPU names.
1797 * config/mips/mips.h (MIPS_CPU_STRING_DEFAULT): Remove default
1799 * config/mips/mips.opt (march=): Use ToLower and Enum.
1800 (mips): Use ToLower, Enum and Var.
1801 (mtune=): Use ToLower and Enum.
1802 * config/mips/t-mips ($(srcdir)/config/mips/mips-tables.opt): New.
1804 2011-05-08 Jan Hubicka <jh@suse.cz>
1806 * gimple.c (type_pair_hash, type_pair_eq, lookup_type_pair):
1807 Arrange type pairs to be UID ordered.
1808 (gimple_lookup_type_leader): Make inline.
1810 2011-05-09 Nick Clifton <nickc@redhat.com>
1813 * config/iq2000/iq2000.opt (iq2000_tune): Initialise to
1817 * config/mn10300/mn10300.c (extract_bundle): Remove spurious local
1820 2011-05-08 Chung-Lin Tang <cltang@codesourcery.com>
1822 * combine.c (simplify_comparison): Abstract out parts into...
1823 (simplify_compare_const): ... new function.
1824 (try_combine): Generalize parallel arithmetic/compare combining
1825 to call simplify_compare_const() and CANONICALIZE_COMPARE().
1827 2011-05-08 Jan Hubicka <jh@suse.cz>
1829 * cgraph.c (cgraph_clone_node): Add call_duplication_hook parameter.
1830 (cgraph_create_virtual_clone): Call hooks once virtual clone
1832 * cgraph.h (cgraph_clone_node): Update prototype.
1833 * ipa-cp.c (ipcp_estimate_growth): Use
1834 estimate_ipcp_clone_size_and_time.
1835 * ipa-inline-transform.c (clone_inlined_nodes): Update.
1836 * lto-cgraph.c (input_node): Update.
1837 * ipa-inline.c (recursive_inlining): Update.
1838 * ipa-inline.h (estimate_ipcp_clone_size_and_time): New function.
1839 (evaluate_conditions_for_known_args): Break out from ...
1840 (evaluate_conditions_for_edge): ... here.
1841 (evaluate_conditions_for_ipcp_clone): New function.
1842 (inline_node_duplication_hook): Update clone summary based
1844 (estimate_callee_size_and_time): Rename to ...
1845 (estimate_node_size_and_time): take NODE instead of EDGE;
1846 take POSSIBLE_TRUTHS as argument.
1847 (estimate_callee_size_and_time): Update.
1848 (estimate_ipcp_clone_size_and_time): New function.
1849 (do_estimate_edge_time): Update.
1851 2011-05-08 Richard Guenther <rguenther@suse.de>
1855 * expmed.c (expand_shift_1): Compute adjusted constant shift
1858 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
1860 * config/avr/avr.c (print_operand_address): Fix invalid RTL access.
1862 2011-05-08 Eric Botcazou <ebotcazou@adacore.com>
1864 * config/rs6000/rs6000.c (output_profile_hook): Fix thinko.
1866 2011-05-08 Jonathan Wakely <jwakely.gcc@gmail.com>
1868 * doc/invoke.texi (-fuse-linker-plugin): Improve grammar.
1870 2011-05-07 Jan Hubicka <jh@suse.cz>
1872 * ipa-inline-transform.c (inline_call): Account when program size
1874 * ipa-inline.c (relative_time_benefit): New function.
1875 (edge_badness): Reorganize to be power 2 based; fix thinko when
1876 computing badness for negative growth; update comments to match
1877 reality; better dumps.
1879 2011-05-07 Eric Botcazou <ebotcazou@adacore.com>
1881 * langhooks.h (lang_hooks_for_types): Change global_bindings_p's return
1882 type to bool and adjust comment.
1883 * fold-const.c (fold_range_test): Adjust call to global_bindings_p.
1884 (fold_mathfn_compare): Remove calls to global_bindings_p.
1885 (fold_inf_compare): Likewise.
1886 * stor-layout.c (variable_size): Adjust call to global_bindings_p.
1887 * c-tree.h (global_bindings_p): Adjust prototype.
1888 * c-decl.c (global_bindings_p): Return bool and simplify.
1890 2011-05-07 Zdenek Dvorak <ook@ucw.cz>
1892 PR tree-optimization/48837
1893 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
1894 when accumulator transformation is performed.
1896 2011-05-06 Jan Hubicka <jh@suse.cz>
1898 * i386.h (ix86_tune_indices): Add
1899 X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL.
1900 (TARGET_SOFTWARE_PREFETCHING_BENEFICIAL): New macro.
1901 * i386.c (initial_ix86_tune_features): Add
1902 X86_SOFTARE_PREFETCHING_BENEFICIAL.
1903 (software_prefetching_beneficial_p): Remove predicate.
1904 (ix86_option_override_internal): Use new macro.
1906 2011-05-06 Jan Hubicka <jh@suse.cz>
1908 * ipa-inline.c (update_callee_keys): Don't reset node growth cache.
1910 2011-05-06 Jan Hubicka <jh@suse.cz>
1912 * cgraph.c (cgraph_add_thunk): Create real function node instead
1913 of alias node; finalize it and mark needed/reachale; arrange visibility
1914 to be right and add it into the corresponding same comdat group list.
1915 (dump_cgraph_node): Dump thunks.
1916 * cgraph.h (cgraph_first_defined_function, cgraph_next_defined_function,
1917 cgraph_function_with_gimple_body_p,
1918 cgraph_first_function_with_gimple_body,
1919 cgraph_next_function_with_gimple_body): New functions.
1920 (FOR_EACH_FUNCTION_WITH_GIMPLE_BODY, FOR_EACH_DEFINED_FUNCTION):
1922 * ipa-cp.c (ipcp_need_redirect_p): Thunks can't be redirected.
1923 (ipcp_generate_summary): Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1924 * cgraphunit.c (cgraph_finalize_function): Only look into possible
1925 devirtualization when optimizing.
1926 (verify_cgraph_node): Verify thunks.
1927 (cgraph_analyze_function): Analyze thunks.
1928 (cgraph_mark_functions_to_output): Output thunks only in combination
1929 with function they are assigned to.
1930 (assemble_thunk): Turn thunk into non-thunk; don't try to turn
1931 alias into normal node.
1932 (assemble_thunks): New functoin.
1933 (cgraph_expand_function): Use it.
1934 * lto-cgraph.c (lto_output_node): Stream thunks.
1935 (input_overwrite_node): Stream in thunks.
1936 * ipa-pure-const.c (analyze_function): Thunks do nothing interesting.
1937 * lto-streamer-out.c (lto_output): Do not try to output thunk's body.
1938 * ipa-inline.c (inline_small_functions): Use FOR_EACH_DEFINED_FUNCTION.
1939 * ipa-inline-analysis.c (compute_inline_parameters): "Analyze" thunks.
1940 (inline_analyze_function): Do not care about thunk jump functions.
1941 (inline_generate_summary):Use FOR_EACH_DEFINED_FUNCTION.
1942 * ipa-prop.c (ipa_prop_write_jump_functions): Use
1943 cgraph_function_with_gimple_body_p.
1944 * passes.c (do_per_function_toporder): Use
1945 cgraph_function_with_gimple_body_p.
1946 (execute_one_pass);Use FOR_EACH_FUNCTION_WITH_GIMPLE_BODY.
1947 (ipa_write_summaries): Use cgraph_function_with_gimple_body_p.
1948 (function_called_by_processed_nodes_p): Likewise.
1950 2011-05-06 Joseph Myers <joseph@codesourcery.com>
1952 * config/rs6000/rs6000.opt (rs6000_ieeequad, rs6000_altivec_abi,
1953 rs6000_spe_abi, rs6000_darwin64_abi): Remove TargetVariable
1955 (mabi=): Replace with separate entries for mabi=altivec,
1956 mabi=no-altivec, mabi=spe, mabi=no-spe, mabi=d64, mabi=d32,
1957 mabi=ieeelongdouble and mabi=ibmlongdouble.
1958 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
1959 check for -mabi=spe without SPE ABI support here.
1960 (rs6000_handle_option): Replace OPT_mabi_ handling with
1961 OPT_mabi_altivec and OPT_mabi_spe handling.
1963 2011-05-06 Cary Coutant <ccoutant@google.com>
1965 * dwarf2out.c (contains_subprogram_definition): New function.
1966 (should_move_die_to_comdat): Call it.
1968 2011-05-06 Jeff Law <law@redhat.com>
1970 * tree-ssa-threadupdate.c (create_block_for_threading): Do not call
1971 remove_ctrl_stmt_and_useless_edges.
1972 (create_duplicates): Call remove_ctrl_stmt_and_useless_edges.
1973 (fixup_template_block, thread_single_edge): Likewise.
1974 (mark_threaded_blocks): Use THREAD_TARGET.
1976 2011-05-06 Alan Modra <amodra@gmail.com>
1979 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
1980 const0_rtx as the arg to the dummy __tls_get_addr libcall.
1982 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
1984 * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
1985 constraint modifier to "r".
1987 2011-05-06 Joseph Myers <joseph@codesourcery.com>
1989 * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle and
1990 fall through for OPT_mcmodel_.
1992 2011-05-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1994 * config/s390/s390.c (s390_asm_trampoline_template): Comment
1996 (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
1998 2011-05-06 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2001 * config/arm/arm.opt (marm): Document it.
2002 (mthumb): Reject negative variant.
2004 2011-05-06 Uros Bizjak <ubizjak@gmail.com>
2007 * config/i386/netware.c (i386_nlm_maybe_mangle_decl_assembler_name):
2008 Fix typo in "ccvt" variable name.
2010 2011-05-06 Tristan Gingold <gingold@adacore.com>
2013 * config/vms/vms-ar.c (main): Remove cwd variable.
2015 2011-05-06 Jakub Jelinek <jakub@redhat.com>
2018 * var-tracking.c (prepare_call_arguments): Move else before #endif.
2020 2011-05-05 Nathan Froyd <froydnj@codesourcery.com>
2022 * except.c (sjlj_emit_dispatch_table): Call build_case_label.
2023 * gimplify.c (gimplify_switch_expr): Likewise.
2024 * omp-low.c (expand_omp_sections): Likewise.
2025 * tree-eh.c (lower_try_finally_switch): Likewise.
2026 (lower_eh_dispatch): Likewise.
2027 * tree.h (build_case_label): Declare.
2028 * tree.c (build_case_label): Define.
2030 2011-05-05 Jason Merrill <jason@redhat.com>
2033 * tree-inline.c (copy_tree_r): Use copy_statement_list.
2034 (copy_statement_list): Don't recurse.
2035 * stor-layout.c (copy_self_referential_tree_r): Don't allow
2038 2011-05-05 Joseph Myers <joseph@codesourcery.com>
2040 * config/rs6000/rs6000.c (rs6000_handle_option): Don't fall
2041 through from -mfpu= handling.
2042 * config/rs6000/rs6000.opt (mfpu=): Use Var and Init.
2044 2011-05-05 Bernd Schmidt <bernds@codesourcery.com>
2046 * dwarf2out.c (dwarf2out_frame_debug_expr) [rule 10]: Handle
2049 2011-05-05 Steve Ellcey <sje@cup.hp.com>
2051 * config.gcc (hppa*64*-*-hpux11*): Modify tm_file and extra_options
2053 (hppa[12]*-*-hpux11*): Ditto.
2054 (ia64*-*-hpux*): Add ia64/hpux-unix2003.h to tm_file.
2055 * config/ia64/hpux-unix2003.h: New.
2056 * config/pa/pa-hpux1131.opt: New.
2057 * config/pa/pa-hpux1131.h: New.
2058 * config/pa/pa64-hpux.h (STARTFILE_SPEC): Use unix2003.o if requested.
2059 * config/pa/pa-hpux.opt (flag_pa_unix): Check TARGET_HPUX_11_31 value.
2060 * config/pa/pa.h (TARGET_HPUX_11_31): Provide default (0) value.
2062 2011-05-05 Jakub Jelinek <jakub@redhat.com>
2065 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Pass mem_mode
2066 instead of mode as 3rd argument to recursive call.
2067 (mem_loc_descriptor) <case REG>: If POINTERS_EXTEND_UNSIGNED, don't
2068 emit DW_OP_GNU_regval_type if mode is Pmode and mem_mode is not
2070 (mem_loc_descriptor) <case SYMBOL_REF>: If POINTERS_EXTEND_UNSIGNED,
2071 don't give up if mode is Pmode and mem_mode is not VOIDmode.
2072 (mem_loc_descriptor) <case CONST_INT>: If POINTERS_EXTEND_UNSIGNED,
2073 use int_loc_descriptor if mode is Pmode and mem_mode is not VOIDmode.
2075 2011-05-05 Julian Brown <julian@codesourcery.com>
2077 * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
2078 parenthesis in D-register case.
2080 2011-05-05 Joseph Myers <joseph@codesourcery.com>
2082 * opt-functions.awk (var_type_struct): Handle Enum options.
2083 * optc-gen.awk: Don't check range of variables of character type.
2084 * config/rs6000/rs6000.c (rs6000_sched_insert_nops_str,
2085 rs6000_sched_costly_dep_str, rs6000_recip_name, rs6000_abi_name,
2086 rs6000_sdata_name, rs6000_explicit_options): Remove.
2087 (rs6000_option_override_internal): Check for -malign-power here.
2088 Use global_options_set instead of rs6000_explicit_options.
2089 (rs6000_parse_fpu_option): Remove.
2090 (rs6000_handle_option): Access variables via opts and opts_set
2091 pointers. Use error_at and warning_at. Add fall-through
2092 comments. Don't handle OPT_mcmodel_, OPT_maix_struct_return,
2093 OPT_msvr4_struct_return, OPT_mvrsave, OPT_mspe, OPT_mcall_,
2094 OPT_msdata_, OPT_mtls_size_, OPT_mtraceback_, OPT_mfloat_gprs_,
2095 OPT_msched_costly_dep_, OPT_malign_ or OPT_mrecip_ explicitly
2096 here. Don't use rs6000_parse_fpu_option.
2097 * config/rs6000/rs6000.h (fpu_type): Remove declaration.
2098 * config/rs6000/rs6000.opt (rs6000_long_double_type_size,
2099 rs6000_spe, rs6000_float_gprs): Remove TargetVariable entries.
2101 (mspe): Use Var and Save.
2102 (mtraceback=): Use Enum and Var.
2103 (rs6000_traceback_type): New Enum and EnumValue entries.
2104 (mfloat-gprs=): Use Enum, Var and Save.
2105 (rs6000_float_gprs): New Enum and EnumValue entries.
2106 (mlong-double-): use Var and Save.
2107 (msched-costly-dep=, minsert-sched-nops=): Use Var.
2108 (malign-): Use Enum and Var.
2109 (rs6000_alignment_flags): New Enum and EnumValue entries.
2111 (fpu_type_t): New Enum and EnumValue entries.
2112 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2113 global_options_set instead of rs6000_explicit_options.
2114 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2115 global_options_set instead of rs6000_explicit_options.
2116 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2117 global_options_set instead of rs6000_explicit_options.
2118 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Use
2119 global_options_set instead of rs6000_explicit_options.
2120 * config/rs6000/e500-double.h (SUB3TARGET_OVERRIDE_OPTIONS): Use
2121 global_options_set instead of rs6000_explicit_options.
2122 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2123 global_options_set instead of rs6000_explicit_options.
2124 (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Remove commented-out
2126 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2127 global_options_set instead of rs6000_explicit_options.
2128 * config/rs6000/linux64.opt (mcmodel=): Use Enum and Var.
2129 (rs6000_cmodel): New Enum and EnumValue entries.
2130 * config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2131 global_options_set instead of rs6000_explicit_options.
2132 * config/rs6000/sysv4.opt (mcall-, msdata=): Use Var.
2133 (mtls-size=): Use Enum and Var.
2134 (rs6000_tls_size): New Enum and EnumValue entries.
2136 2011-05-05 Michael Matz <matz@suse.de>
2138 * config/alpha/elf.h (ENDFILE_SPEC): Add Ofast.
2139 * config/alpha/osf5.h (ENDFILE_SPEC): Add Ofast.
2140 * config/alpha/netbsd.h (ENDFILE_SPEC): Add Ofast.
2141 * config/sparc/linux.h (ENDFILE_SPEC): Add Ofast.
2142 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Add Ofast.
2143 * config/sparc/sp-elf.h (ENDFILE_SPEC): Add Ofast.
2144 * config/sparc/linux64.h (ENDFILE_SPEC): Add Ofast.
2145 * config/sparc/freebsd.h (ENDFILE_SPEC): Add Ofast.
2146 * config/sparc/sol2.h (ENDFILE_SPEC): Add Ofast.
2147 * config/i386/cygwin.h (ENDFILE_SPEC): Add Ofast.
2148 * config/i386/gnu-user.h (ENDFILE_SPEC): Add Ofast.
2149 * config/i386/gnu-user64.h (ENDFILE_SPEC): Add Ofast.
2150 * config/i386/darwin.h (ENDFILE_SPEC): Add Ofast.
2151 * config/i386/mingw32.h (ENDFILE_SPEC): Add Ofast.
2152 * config/ia64/linux.h (ENDFILE_SPEC): Add Ofast.
2153 * config/mips/linux.h (ENDFILE_SPEC): Add Ofast.
2155 2011-05-05 Richard Guenther <rguenther@suse.de>
2157 * expmed.c (expand_variable_shift): Rename to ...
2158 (expand_shift_1): ... this. Take an expanded shift amount.
2159 For rotates recurse directly not building trees for the shift amount.
2160 (expand_variable_shift): Wrap around expand_shift_1.
2161 (expand_shift): Adjust.
2163 2011-05-05 Jakub Jelinek <jakub@redhat.com>
2165 * gimplify.c (create_tmp_var_raw): Don't call build_type_variant.
2167 2011-05-05 Eric Botcazou <ebotcazou@adacore.com>
2169 * tree.h (get_pending_sizes): Remove prototype.
2170 (put_pending_size): Likewise.
2171 (put_pending_sizes): Likewise.
2172 * stor-layout.c (pending_sizes): Delete.
2173 (get_pending_sizes): Likewise.
2174 (put_pending_size): Likewise.
2175 (put_pending_sizes): Likewise.
2176 (variable_size): Do not call put_pending_size and tidy up.
2177 * function.h (struct function): Remove dont_save_pending_sizes_p.
2178 * lto-streamer-in.c (input_function): Do not stream it.
2179 * lto-streamer-out.c (output_function): Likewise.
2180 * tree-inline.c (initialize_cfun): Do not copy it.
2181 * c-decl.c (store_parm_decls): Do not set it.
2182 * omp-low.c (create_task_copyfn): Likewise.
2183 * tree-optimize.c (tree_rest_of_compilation): Likewise.
2185 2011-05-05 Uros Bizjak <ubizjak@gmail.com>
2187 * config/i386/i386.md (*movdf_internal_rex64): Simplify nested "if"
2189 (*movdf_internal): Ditto.
2190 (*movdf_internal_nointeger): Ditto.
2191 (*movsf_internal): Ditto.
2193 2011-05-05 Joseph Myers <joseph@codesourcery.com>
2195 * c-decl.c (finish_decl): Don't call get_pending_sizes.
2196 (grokparm): Add parameter expr. Pass it to grokdeclarator.
2197 (push_parm_decl): Add parameter expr. Pass it to grokdeclarator.
2198 (c_variable_size): Remove.
2199 (grokdeclarator): Use save_expr instead of c_variable_size. Don't
2200 call put_pending_sizes.
2201 (get_parm_info): Add parameter expr. Use it to set
2202 arg_info->pending_sizes.
2203 (store_parm_decls): Use arg_info->pending_sizes instead or calling
2205 * c-parser.c (c_parser_parms_declarator): Update call to
2206 c_parser_parms_list_declarator.
2207 (c_parser_parms_list_declarator): Take parameter expr. Update
2208 call to push_parm_decl. Update recursive call. Don't call
2209 get_pending_sizes. Update calls to get_parm_info.
2210 (c_parser_objc_method_definition): Update calls to
2211 c_parser_objc_method_decl and objc_start_method_definition.
2212 (c_parser_objc_methodproto): Update call to c_parser_objc_method_decl.
2213 (c_parser_objc_method_decl): Add parameter expr. Update call to
2215 (c_parser_objc_try_catch_finally_statement): Update call to grokparm.
2216 * c-tree.h (struct c_arg_info.pending_sizes): Change to a tree.
2217 (get_parm_info, grokparm, push_parm_decl): Update prototypes.
2219 2011-05-05 Michael Hope <michael.hope@linaro.org>
2222 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for
2225 2011-05-05 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2227 * config/spu/spu.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
2228 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Likewise.
2229 (spu_output_mi_thunk): New function.
2231 2011-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2233 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Use
2234 targetm.asm_out.print_operand.
2235 * config/sol2.c: Include target.h.
2237 2011-05-04 Jan Hubicka <jh@suse.cz>
2239 * ipa-inline.c (reset_edge_caches): New function.
2240 (update_caller_keys): Add check_inlinablity_for; do not
2241 reset edge caches; remove now unnecesary loop.
2242 (update_callee_keys): Add comments; reset node_growth_cache of callee.
2243 (update_all_callee_keys): Likewise.
2244 (inline_small_functions): Sanity check cache; update code
2247 2011-05-04 Bernd Schmidt <bernds@codesourcery.com>
2249 PR rtl-optimization/47612
2250 * df-problems.c (can_move_insns_across): Don't pick a cc0 setter
2251 as the last insn of the sequence to be moved.
2253 2011-05-04 Tobias Burnus <burnus@net-b.de>
2256 * doc/invoke.texi (Ofast): Document that it
2257 enables Fortran's -fno-protect-parens.
2259 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
2261 * config/i386/i386.c (ix86_reorg): Run move_or_delete_vzeroupper first.
2263 2011-05-04 Eric Botcazou <ebotcazou@adacore.com>
2265 * stor-layout.c (variable_size): Do not issue errors.
2267 2011-05-04 Richard Guenther <rguenther@suse.de>
2269 * coverage.c (tree_coverage_counter_ref): Use integer_type_node
2270 for array-ref indices.
2271 (tree_coverage_counter_addr): Likewise.
2272 (build_fn_info_type): Use size_int for index types.
2273 (build_gcov_info): Likewise.
2275 2011-05-04 Richard Guenther <rguenther@suse.de>
2277 * c-decl.c (check_bitfield_type_and_width): Do not pass NULL
2279 * c-typeck.c (really_start_incremental_init): Use bitsize_int
2280 for constructor indices.
2281 (push_init_level): Likewise.
2283 2011-05-04 Richard Guenther <rguenther@suse.de>
2285 * explow.c (promote_mode): Move variable declarations before code.
2287 2011-05-04 Nathan Froyd <froydnj@codesourcery.com>
2289 * tree.h (build_function_type_array): Declare.
2290 (build_varargs_function_type_array): Declare.
2291 (build_function_type_vec, build_varargs_function_type_vec): Define.
2292 * tree.c (build_function_type_array_1): New function.
2293 (build_function_type_array): New function.
2294 (build_varargs_function_type_array): New function.
2296 2011-05-04 Richard Sandiford <richard.sandiford@linaro.org>
2298 * tree-vect-loop.c (vectorizable_reduction): Check reduction cost
2299 before setting STMT_VINFO_TYPE.
2301 2011-05-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2303 * config/spu/spu.c (spu_gimplify_va_arg_expr): Call pass_by_reference
2304 instead of spu_pass_by_reference.
2306 2011-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2308 * calls.c (emit_library_call_value_1): Invoke
2309 promote_function_mode hook on libcall arguments.
2310 * explow.c (promote_function_mode, promote_mode): Handle TYPE
2311 argument being NULL.
2312 * targhooks.c (default_promote_function_mode): Lisewise.
2313 * config/s390/s390.c (s390_promote_function_mode): Likewise.
2314 * config/sparc/sparc.c (sparc_promote_function_mode): Likewise.
2316 * doc/tm.texi: Document that TYPE argument might be NULL.
2318 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2320 * config/bfin/bfin.c (bfin_cpus): Update silicon revisions.
2322 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2325 * config/bfin/bfin.md (addsi3): Add an alternative for IREGS.
2327 2011-05-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2329 * config/alpha/alpha.h (CODE_MASK, MIPS_IS_STAB, MIPS_MARK_STAB)
2330 (MIPS_UNMARK_STAB, SHASH_SIZE, THASH_SIZE, ALIGN_SYMTABLE_OFFSET):
2332 * mips-tfile.c: ... here.
2333 Don't include coretypes.h, tm.h, filenames.h.
2334 (saber_stop): Remove definition and all calls.
2335 [__SABER__]: Remove.
2336 (__LINE__): Remove default.
2337 (Size_t, Ptrdiff_t): Remove definitions.
2338 Replace by size_t, ptrdiff_t.
2339 [!MIPS_DEBUGGING_INFO]: Remove.
2340 (SHASH_SIZE, THASH_SIZE): Remove defaults.
2341 (progname): Add const.
2343 Replace all uses by static.
2344 (ALIGN_SYMTABLE_OFFSET): Remove default.
2345 * mips-tdump.c: Don't include coretypes.h, tm.h.
2346 Remove !MIPS_IS_STAB guard.
2347 * Makefile.in (mips-tfile.o): Remove $(RTL_H), coretypes.h,
2348 $(TM_H), filenames.h dependencies.
2349 (mips-tdump.o): Remove $(RTL_H), coretypes.h, $(TM_H) dependencies.
2351 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2354 *config/bfin/bfin.c (bfin_extra_live_on_entry): New.
2355 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2357 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2360 * config/bfin/bfin.h (FUNCTION_PROFILER): Take TARGET_LONG_CALLS into
2361 account and save/restore RETS.
2362 (PROFILE_BEFORE_PROLOGUE): Define.
2363 (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add tab character. Correct
2364 the push insn to use predecrement.
2366 2011-05-04 Stuart Henderson <shenders@gcc.gnu.org>
2369 * config/bfin/bfin.c (bfin_expand_prologue): Don't clobber P2.
2371 2011-05-04 Nick Clifton <nickc@redhat.com>
2373 * config/mn10300/mn10300.c: Include cfgloop.h.
2375 (mn10300_insert_setlb_lcc): New function. Inserts a SETLB and a
2376 Lcc or a FLcc insn into the instruction stream.
2377 (mn10300_block_contains_call): New function. Returns true if the
2378 given basic block contains a CALL insn.
2379 (mn10300_loop_contains_call_insn): New function. Returns true if
2380 the given loop contains a CALL insn.
2381 (mn10300_scan_for_setlb_lcc): New function. Finds opportunities
2382 to use the SETLB and Lcc or FLcc insns.
2383 (mn10300_reorg): Invoke mn10300_scan_for_setlb_lcc when optimizing.
2384 (TARGET_FLAGS): Add MASK_ALLOW_SETLB.
2385 * config/mn10300/mn10300.opt (msetlb): New option. Used to
2386 disable the SETLB optimization.
2387 * config/mn10300/mn10300.h (TARGET_CPU_CPP_BUILTINS): Add
2388 __SETLB__ or __NO_SETLB__.
2389 * config/mn10300/mn10300.md (UNSPEC_SETLB): New constant.
2390 (movsf_internal): Handle MDR register.
2391 (cmpsi): Make visible.
2392 (setlb): New pattern.
2394 (FLcc): New pattern.
2396 2011-05-04 Uros Bizjak <ubizjak@gmail.com>
2399 * config/i386/i386.md (*movdi_internal_rex64) Use %vmovd
2400 for reg<->xmm moves.
2401 * config/i386/sse.md (*vec_concatv2di_rex64_sse4_1): Ditto.
2402 (vec_concatv2di_rex64_sse): Ditto.
2403 (*sse2_storeq_rex64): Do not emit %v prefix for mov{q} mnemonic.
2404 (*vec_extractv2di_1_rex64): Ditto.
2407 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
2409 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2411 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.
2413 2011-05-04 Richard Guenther <rguenther@suse.de>
2415 * tree.h (int_const_binop): Remove notrunc argument.
2416 * fold-const.c (int_const_binop): Remove notrunc argument. Always
2417 create integer constants that are properly truncated.
2418 (extract_muldiv_1): Expand one notrunc int_const_binop caller.
2419 (const_binop): Remove zero notrunc argument to int_const_binop.
2420 (size_binop_loc): Likewise.
2421 (fold_div_compare): Likewise.
2422 (maybe_canonicalize_comparison_1): Likewise.
2423 (fold_comparison): Likewise.
2424 (fold_binary_loc): Likewise.
2425 (multiple_of_p): Likewise.
2426 * expr.c (store_constructor): Likewise.
2427 * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
2428 (maybe_fold_stmt_addition): Likewise.
2429 * ipa-prop.c (ipa_modify_call_arguments): Likewise.
2430 * stor-layout.c (layout_type): Likewise.
2431 * tree-data-ref.c (tree_fold_divides_p): Likewise.
2432 * tree-sra.c (build_ref_for_offset): Likewise.
2433 (build_user_friendly_ref_for_offset): Likewise.
2434 * tree-ssa-address.c (maybe_fold_tmr): Likewise.
2435 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
2436 * tree-ssa-loop-niter.c (inverse): Likewise.
2437 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
2438 * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
2439 * tree-switch-conversion.c (check_range): Likewise.
2440 (build_constructors): Likewise.
2441 * tree-vect-generic.c (expand_vector_piecewise): Likewise.
2442 * tree-vrp.c (set_and_canonicalize_value_range): Likewise.
2443 (extract_range_from_assert): Likewise.
2444 (vrp_int_const_binop): Likewise.
2445 (extract_range_from_binary_expr): Likewise.
2446 (extract_range_from_unary_expr): Likewise.
2447 (check_array_ref): Likewise.
2448 (find_case_label_range): Likewise.
2449 (simplify_div_or_mod_using_ranges): Likewise.
2450 * tree-cfg.c (group_case_labels_stmt): Use double-ints for
2451 comparing case labels for merging.
2453 2011-05-03 Mark Wielaard <mjw@redhat.com>
2455 * dwarf2out.c (debug_str_hash_forced): Removed.
2456 (gen_label_for_indirect_string): Removed.
2457 (get_debug_string_label): Removed.
2458 (AT_string_form): Generate label directly.
2459 (output_indirect_string): Test indirect_string_node for
2460 DW_FORM_strp instead of checking label and refcount.
2461 (prune_indirect_string): Removed.
2462 (prune_unused_types): Don't check debug_str_hash_forced or
2463 call prune_indirect_string.
2465 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
2468 * doc/invoke.texi: Document -mtls-dialect and GCC_COMPARE_DEBUG.
2470 2011-05-04 Alexandre Oliva <aoliva@redhat.com>
2474 * combine.c (try_combine): Skip debug insns at m_split tests.
2476 2011-04-26 Mark Wielaard <mjw@redhat.com>
2479 * dwarf2out.c (dwarf2out_finish): Always call output_aranges ()
2480 when info_section_emitted.
2482 2011-05-03 Joseph Myers <joseph@codesourcery.com>
2484 * config/mips/mips-opts.h: New.
2485 * config/mips/mips.c (enum mips_r10k_cache_barrier_setting): Move
2487 (mips_abi, mips_code_readable, mips_r10k_cache_barriee): Remove.
2488 (mips_handle_option): Don't handle OPT_mabi_, OPT_mcode_readable_
2489 or OPT_mr10k_cache_barrier_ here. Access mips_cache_flush_func
2491 * config/mips/mips.h (enum mips_code_readable_setting): Move to
2493 (mips_abi, mips_code_readable): Don't declare.
2494 * config/mips/mips.opt (config/mips/mips-opts.h): New HeaderInclude.
2495 (mabi=): Use Enum and Var.
2496 (mips_abi): New Enum and EnumValue entries.
2497 (mcode-readable=): Use Enum and Var.
2498 (mips_code_readable_setting): New Enum and EnumValue entries.
2499 (mr10k-cache-barrier=): Use Enum and Var.
2500 (mips_r10k_cache_barrier_setting): New Enum and EnumValue entries.
2502 2011-05-03 Jan Hubicka <jh@suse.cz>
2504 * cgraph.h (cgraph_node_set_def, varpool_node_set_def): Move out of GTY;
2505 replace hash by pointer map.
2506 (cgraph_node_set_element_def, cgraph_node_set_element,
2507 const_cgraph_node_set_element, varpool_node_set_element_def,
2508 varpool_node_set_element, const_varpool_node_set_element): Remove.
2509 (free_cgraph_node_set, free_varpool_node_set): New function.
2510 (cgraph_node_set_size, varpool_node_set_size): Use vector size.
2511 * tree-emutls.c: Free varpool node set.
2512 * ipa-utils.c (cgraph_node_set_new, cgraph_node_set_add,
2513 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2514 debug_cgraph_node_set, free_cgraph_node_set, varpool_node_set_new,
2515 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2516 dump_varpool_node_set, free_varpool_node_set, debug_varpool_node_set):
2517 Move here from ipa.c; implement using pointer_map
2518 * ipa.c (cgraph_node_set_new, cgraph_node_set_add,
2519 cgraph_node_set_remove, cgraph_node_set_find, dump_cgraph_node_set,
2520 debug_cgraph_node_set, varpool_node_set_new,
2521 varpool_node_set_add, varpool_node_set_remove, varpool_node_set_find,
2522 dump_varpool_node_set, debug_varpool_node_set):
2523 Move to ipa-uitls.c.
2524 * passes.c (ipa_write_summaries): Update.
2526 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2528 From Mike Frysinger:
2529 * config/bfin/bfin.c (bfin_cpus[]): Add 0.4 for
2530 bf542/bf544/bf547/bf548/bf549.
2532 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
2534 * expmed.c (extract_bit_field_1): Remove write-only variable "icode".
2536 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2539 * config/bfin/bfin.md (MOVCC): New mode_macro.
2540 (mov<mode>cc_insn1, mov<mode>cc_insn2, mov<mode>cc): Renamed from
2541 movsicc_insn1, movsicc_insn2 and movsicc and macroized. Remove
2542 comments from generated assembly.
2544 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2547 * config/bfin/t-bfin (LIB1ASMFUNCS): Add muldi3 and umulsi3_highpart.
2548 * config/bfin/t-bfin-elf (LIB1ASMFUNCS): Add muldi3.
2549 * config/bfin/t-bfin-linux (LIB1ASMFUNCS): Add muldi3.
2550 * config/bfin/t-bfin-uclinux (LIB1ASMFUNCS): Add muldi3.
2551 * config/bfin/lib1funcs.asm (___muldi3): New function.
2553 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2555 * config/stormy16/stormy16 (xstormy16_init_builtins): Call
2556 build_function_type_list instead of build_function_type.
2557 Rearrange initialization of `args' to do so.
2559 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2561 * config/i386/i386.c (ix86_code_end): Call build_function_type_list
2562 instead of build_function_type.
2564 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2566 * config/rs6000/rs6000.c (spe_init_builtins): Call
2567 build_function_type_list instead of build_function_type.
2568 (paired_init_builtins, altivec_init_builtins): Likewise.
2569 (builtin_function_type): Likewise.
2571 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2573 * config/sh/sh.c (sh_media_init_builtins): Call
2574 build_function_type_list instead of build_function_type.
2576 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2578 * config/sparc/sparc.c (sparc_file_end): Call
2579 build_function_type_list instead of build_function_type.
2581 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2583 * config/alpha/alpha.c (alpha_init_builtins): Call
2584 build_function_type_list instead of build_function_type.
2586 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2588 * config/xtensa/xtensa.c (xtensa_init_builtins): Call
2589 build_function_type_list instead of build_function_type.
2591 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2593 * config/iq2000/i2000.c (iq2000_init_builtins): Call
2594 build_function_type_list instead of build_function_type.
2595 Delete `endlink' variable.
2597 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2599 * config/avr/avr.c (avr_init_builtins): Call
2600 build_function_type_list instead of build_function_type.
2602 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2604 * config/picochip/picochip.c (picochip_init_builtins): Call
2605 build_function_type_list instead of build_function_type.
2606 Delete `endlink' variable.
2608 2011-05-03 Nathan Froyd <froydnj@codesourcery.com>
2610 * config/bfin/bfin.c (bfin_init_builtins): Call
2611 build_function_type_list instead of build_function_type.
2613 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2616 * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
2617 that's not CONST_INT. Seemingly redundant check is due to PR39768.
2619 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2622 * config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
2623 libbffastfp overrides libgcc when -mfast-fp.
2625 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2627 Originally from Bernd Schmidt
2628 * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
2629 * config/bfin/bfin.c (override_options): Test it and error if
2632 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
2634 Originally From Bernd Schmidt
2635 * config/bfin/bfin.c (override_options): Disable -fstack-limit for
2638 2011-05-03 Jeff Law <law@redhat.com>
2640 * tree-ssa-threadupdate.c (THREAD_TARGET): define.
2641 (remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
2642 (craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
2643 than accessing AUX field directly. Free the AUX field before
2645 (thread_block, thread_through_loop_header): Likewise.
2646 (thread_single_edge, mark_threaded_blocks): Likewise.
2647 (redirect_edges): Delay clearing the AUX field. Free the AUX field.
2648 (register_jump_thread): Do not attempt to thread to a NULL edge.
2650 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
2652 * function.c (init_function_start): Call decide_function_section.
2653 * varasm.c (decide_function_section): New function.
2654 (assemble_start_function): When not using
2655 flag_reorder_blocks_and_partition, don't compute in_cold_section_p
2656 or first_function_block_is_cold.
2657 * rtl.h (decide_function_section): Declare.
2659 2011-05-03 Uros Bizjak <ubizjak@gmail.com>
2660 Jakub Jelinek <jakub@redhat.com>
2663 * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
2664 only succeed if req_mode is the same as set_mode.
2666 2011-05-03 Bernd Schmidt <bernds@codesourcery.com>
2668 * gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
2669 * genemit.c (gen_exp): Handle RETURN.
2670 * emit-rtl.c (verify_rtx_sharing): Likewise.
2671 (init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
2672 * rtl.c (copy_rtx): RETURN is shared.
2673 * rtl.h (enum global_rtl_index): Add GR_RETURN.
2675 * jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
2676 * config/s390/s390.c (s390_emit_epilogue): Likewise.
2677 * config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
2678 * config/cris/cris.c (cris_expand_return): Likewise.
2679 * config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
2680 * config/rs6000/rs6000.c (rs6000_make_savres_rtx,
2681 rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
2682 * config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
2683 * config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
2685 * config/v850/v850.c (expand_epilogue): Likewise.
2686 * config/bfin/bfin.c (bfin_expand_call): Likewise.
2687 * config/arm/arm.md (epilogue): Likewise.
2688 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
2689 * config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
2690 variable to ret_reg.
2692 2011-05-03 Richard Guenther <rguenther@suse.de>
2695 * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
2696 Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
2697 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
2699 2011-05-03 Richard Guenther <rguenther@suse.de>
2701 * c-decl.c (grokdeclarator): Instead of looking at
2702 TREE_OVERFLOW check if the constant fits in the index type.
2704 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2706 * config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
2707 (vec_store_lanes<mode><mode>): Likewise.
2709 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2711 * doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
2712 * optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
2713 convert_optab_index values.
2714 (vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
2715 * genopinit.c (optabs): Initialize the new optabs.
2716 * internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
2717 * internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
2718 (expand_STORE_LANES): New functions.
2719 * tree.h (build_array_type_nelts): Declare.
2720 * tree.c (build_array_type_nelts): New function.
2721 * tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
2722 (vect_model_load_cost): Likewise.
2723 (vect_store_lanes_supported, vect_load_lanes_supported)
2724 (vect_record_strided_load_vectors): Declare.
2725 * tree-vect-data-refs.c (vect_lanes_optab_supported_p)
2726 (vect_store_lanes_supported, vect_load_lanes_supported): New functions.
2727 (vect_transform_strided_load): Split out statement recording into...
2728 (vect_record_strided_load_vectors): ...this new function.
2729 * tree-vect-stmts.c (create_vector_array, read_vector_array)
2730 (write_vector_array, create_array_ref): New functions.
2731 (vect_model_store_cost): Add store_lanes_p argument.
2732 (vect_model_load_cost): Add load_lanes_p argument.
2733 (vectorizable_store): Try to use store-lanes functions for
2735 (vectorizable_load): Likewise load-lanes and loads.
2736 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
2737 to vect_model_store_cost.
2738 (vect_build_slp_tree): Likewise vect_model_load_cost.
2740 2011-05-03 Richard Sandiford <richard.sandiford@linaro.org>
2742 * hooks.h (hook_bool_mode_uhwi_false): Declare.
2743 * hooks.c (hook_bool_mode_uhwi_false): New function.
2744 * target.def (array_mode_supported_p): New hook.
2745 * doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
2746 * doc/tm.texi: Regenerate.
2747 * stor-layout.c (mode_for_array): New function.
2748 (layout_type): Use it.
2749 * config/arm/arm.c (arm_array_mode_supported_p): New function.
2750 (TARGET_ARRAY_MODE_SUPPORTED_P): Define.
2752 2011-05-03 Eric Botcazou <ebotcazou@adacore.com>
2755 * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
2756 for -fstack-check if the size to allocate is negative.
2758 2011-05-02 Lawrence Crowl <crowl@google.com>
2760 * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
2761 (timevar_cond_start): New for starting a timer only when it is not
2763 (timevar_cond_stop): New for stopping a timer when it was not already
2766 * timevar.c (timevar_stop): Enable start/stop timers to start again.
2767 (timevar_cond_start): New as above.
2768 (timevar_cond_stop): New as above.
2770 * timevar.def: Add start/stop timers for compiler phases,
2771 TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
2772 TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
2773 and TV_PHASE_FINALIZE.
2774 Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
2775 Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
2776 TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
2777 Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
2778 Make unused TV_OVERLOAD into a start/stop timer.
2780 Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
2781 Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
2782 to indicate that they are start/stop timers.
2784 * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
2785 Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
2786 Move initialization to do_compile.
2787 (do_compile): Add initialization from above.
2788 Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
2790 * c-decl.c (c_write_global_declarations): Add start/stop of
2791 TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
2793 * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
2794 or TV_PARSE_INLINE, as appropriate.
2795 (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
2796 (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
2798 2011-05-02 Jason Merrill <jason@redhat.com>
2801 * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
2803 2011-05-02 Simon Martin <simartin@users.sourceforge.net>
2806 * c-decl.c (finish_decl): Only create a composite if the types are
2809 2011-05-02 Joseph Myers <joseph@codesourcery.com>
2811 * config/fr30/fr30-protos.h (Mmode): Don't define.
2812 * config/m32r/m32r-protos.h (Mmode): Don't define. Expand
2813 definition where used.
2814 * config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
2815 define. Expand definitions where used.
2816 * config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
2817 Expand definitions where used.
2818 * config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
2819 rx_function_arg, rx_function_arg_advance,
2820 rx_function_arg_boundary): Expand definitions of those macros.
2821 * config/v850/v850-protos.h (Mmode): Don't define. Expand
2822 definition where used.
2824 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
2826 * config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
2828 (*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
2829 (*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves. Merge
2830 with *movv2sf_internal_rex64_avx.
2831 (*movv2sf_internal): Merge with *movv2sf_internal_avx.
2832 * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
2833 Use %v prefix in insn mnemonic to handle TARGET_AVX.
2834 (*movdi_internal): Add "isa" attribute. Use "maybe_vex" instead of
2835 "vex" in "prefix" attribute calculation.
2836 (*movdf_internal): Output AVX mnemonics. Add "prefix" attribute.
2838 2011-05-02 Stuart Henderson <shenders@gcc.gnu.org>
2841 * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
2842 inputs match the output.
2844 2011-05-02 Andreas Schwab <schwab@linux-m68k.org>
2847 * config/m68k/m68k.c (m68k_expand_prologue): Set
2848 current_function_static_stack_size.
2850 2011-05-02 Jan Hubicka <jh@suse.cz>
2852 * lto-streamer.c (lto_streamer_cache_insert_1,
2853 lto_streamer_cache_lookup, lto_streamer_cache_create,
2854 lto_streamer_cache_delete): Use pointer map instead of hashtable.
2855 * lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.
2857 2011-05-02 Joseph Myers <joseph@codesourcery.com>
2859 * config/m68k/genopt.sh, config/m68k/m68k-isas.def,
2860 config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
2861 config/m68k/t-opts: New files.
2862 * config/m68k/m68k-tables.opt: New file (generated).
2863 * config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
2864 extra_options and m68k/t-opts to tmake_file.
2865 * config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
2866 (all_isas): Initialize using m68k-isas.def.
2867 (all_microarchs): Initialize using m68k-microarchs.def.
2868 (m68k_find_selection): Remove.
2869 (m68k_handle_option): Don't assert that global structures are in
2870 use. Use error_at. Access variables via opts pointer. Don't
2871 handle -march=, -mcpu= and -mtune= here. Set gcc_options fields
2872 directly for -m68020-40 and -m68020-60.
2873 (m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
2874 m68k_tune_entry here.
2875 * config/m68k/m68k.h (enum uarch_type, enum target_device): Move
2877 (m68k_library_id_string): Remove declaration.
2878 * config/m68k/m68k.opt (config/m68k/m68k-opts.h): New HeaderInclude.
2879 (m68k_library_id_string): New Variable.
2880 (march=, mcpu=, mtune=): Use Enum and Var.
2882 2011-05-02 Richard Guenther <rguenther@suse.de>
2884 * varasm.c (output_constructor_regular_field): Compute zero-based
2885 index with double-ints. Make sure to ICE instead of producing
2887 * cgraph.c (cgraph_add_thunk): Do not create new tree nodes
2888 in asserts. Properly use a signed type.
2890 2011-05-02 Uros Bizjak <ubizjak@gmail.com>
2892 * config/i386/sse.md (V): New mode iterator.
2893 (V_128): Rename from SSEMODE. Make V2DF mode conditional on
2895 (V_256): Rename from AVX256MODE.
2896 (VF): Make V4SF mode unconditional. Add TARGET_SSE instruction
2897 condition to all users.
2899 (VF2): Make V2DF mode unconditional. Add TARGET_SSE2 instruction
2900 condition to all users.
2901 (VF_128): Make V4SF mode unconditional.
2902 (VF_256): Rename from AVX256MODEF2P.
2903 (VI4F_128): Rename from SSEMODE4S.
2904 (VI8F_128): Rename from SSEMODE2D.
2905 (VI4F_256): Rename from AVX256MODE8P.
2906 (VI8F_256): Rename from AVX256MODE4P.
2907 (avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
2908 (ssescalarmodesuffix): Remove SF and DF modes.
2909 (SSEMODE124): Remove.
2910 (SSEMODE1248): Ditto.
2911 (SSEMODEF2P): Ditto.
2912 (AVXMODEF2P): Ditto.
2913 (AVXMODEFDP): Ditto.
2914 (AVXMODEFSP): Ditto.
2915 (VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
2917 (VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO. Make V4SF mode
2919 (xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
2920 xop_pcmov_<mode>256. Use V mode iterator.
2922 Adjust RTX patterns globally for renamed mode attributes.
2924 2011-05-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2926 * haifa-sched.c (sched_emit_insn): Emit insn before first
2927 non-scheduled insn. Inform back-end about new insn. Add
2928 new insn to scheduled_insns list.
2930 2011-05-02 Richard Guenther <rguenther@suse.de>
2932 PR tree-optimization/48822
2933 * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
2934 (process_scc): Indicate which iteration we start.
2936 2011-05-02 Jan Hubicka <jh@suse.cz>
2938 * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h
2939 (lto_section_overrun): New.
2940 * lto-section-out.c (append_block): Rename to ...
2941 (lto_append_block): ... this one; export.
2942 (lto_output_1_stream): Move lto lto-streamer.h
2943 (lto_output_data_stream): Update.
2944 * lto-streamer.h (lto_section_overrun, lto_append_block): Declare.
2945 (lto_output_1_stream, lto_input_1_unsigned): Turn into inline
2948 2011-05-02 Richard Guenther <rguenther@suse.de>
2950 * tree.c (tree_code_counts): New global array.
2951 (record_node_allocation_statistics): Count individual tree codes.
2952 (dump_tree_statistics): Dump individual code stats.
2954 2011-05-01 Jan Hubicka <jh@suse.cz>
2956 * ipa-inline.c (caller_growth_limits): Fix thinko when
2957 looking for largest stack frame.
2958 * ipa-inline.h (dump_inline_summary): Declare.
2959 * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info
2961 (dump_inline_summary): Export.
2962 (debug_inline_summary): Declare as DEBUG_FUNCTION.
2964 2011-05-01 Anatoly Sokolov <aesok@post.ru>
2966 * reginfo.c (memory_move_cost): Change rclass argument type form
2967 'enum reg_class' to reg_class_t.
2968 * reload.h (memory_move_cost): Update prototype.
2969 * postreload.c reload_cse_simplify_set): Change type dclass var to
2971 * ira-int.h (ira_allocate_cost_vector, ira_free_cost_vector):
2973 (ira_allocate_and_set_costs): Change aclass argument type form
2974 'enum reg_class' to reg_class_t.
2975 * ira-build.c (ira_allocate_cost_vector, ira_free_cost_vector):
2976 Change aclass argument type to reg_class_t.
2977 (update_conflict_hard_reg_costs): Change type aclass and pref vars
2979 * gcc/ira.c (setup_class_subset_and_memory_move_costs): Adjust
2980 memory_move_cost call.
2982 * config/ia64/ia64.c (ia64_register_move_cost): Remove 'from' and
2983 'to' local var. Rename from_i and to_i arguments to 'from' and 'to'.
2984 Change type tmp var to reg_class_t.
2986 2011-04-30 Jan Hubicka <jh@suse.cz>
2988 * ipa-inline.c (can_inline_edge_p): Disregard limits when
2989 inlining into function with flatten attribute.
2990 (want_inline_small_function_p): Be more realistic about inlining
2991 cold calls where callee size grows.
2993 2011-04-30 Jan Hubicka <jh@suse.cz>
2995 * cgraph.c (cgraph_create_virtual_clone): Clear constructor/destructor
2998 2011-04-30 Anatoly Sokolov <aesok@post.ru>
3000 * config/sparc/sparc.h (PRINT_OPERAND, PRINT_OPERAND_ADDRESS,
3001 PRINT_OPERAND_PUNCT_VALID_P): Remove.
3002 * config/sparc/sparc-protos.h (print_operand): Remove declaration.
3003 * config/sparc/sparc.c (TARGET_PRINT_OPERAND_PUNCT_VALID_P,
3004 TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
3005 (print_operand): Rename to...
3006 (sparc_print_operand): ...this. Make static. Adjust
3007 sparc_print_operand function call.
3008 (sparc_print_operand_punct_valid_p, sparc_print_operand_address): New
3011 2011-04-30 Jan Hubicka <jh@suse.cz>
3014 * ipa-inline.c (early_inliner): Disable when doing late
3015 addition of function.
3017 2011-04-30 Jakub Jelinek <jakub@redhat.com>
3019 * dwarf2out.c (get_address_mode): New inline.
3020 (mem_loc_descriptor): Add MEM_MODE parameter, adjust recursive calls,
3021 if not dwarf_strict emit
3022 DW_OP_GNU_{{const,regval,deref}_type,convert,reinterpret} when
3023 desirable. Handle FLOAT_EXTEND, FLOAT_TRUNCATE, FLOAT,
3024 UNSIGNED_FLOAT, FIX and UNSIGNED_FIX. Just return NULL for
3025 FMA, STRICT_LOW_PART, CONST_VECTOR and CONST_FIXED.
3026 (dwarf2out_frame_debug_cfa_expression, reg_loc_descriptor,
3027 dw_loc_list_1, cst_pool_loc_descr, loc_list_from_tree): Adjust
3028 mem_loc_descriptor callers.
3029 (dwarf_stack_op_name, size_of_loc_descr, output_loc_operands,
3030 output_loc_operands_raw, hash_loc_operands, compare_loc_operands):
3031 Handle DW_OP_GNU_const_type, DW_OP_GNU_regval_type,
3032 DW_OP_GNU_deref_type, DW_OP_GNU_convert and DW_OP_GNU_reinterpret.
3033 (base_types): New variable.
3034 (get_base_type_offset, calc_base_type_die_sizes,
3035 base_type_for_mode, mark_base_types, base_type_cmp,
3036 move_marked_base_types): New functions.
3037 (calc_die_sizes): Assert that die_offset is 0 or equal to
3039 (loc_descriptor): Only handle here lowpart SUBREGs of REG, for
3040 others defer to mem_loc_descriptor. Adjust mem_loc_descriptor
3041 callers. If not dwarf_strict, call mem_loc_descriptor even for
3042 non-MODE_INT modes or MODE_INT modes larger than DWARF2_ADDR_SIZE.
3043 (gen_subprogram_die): Don't give up on call site parameters
3044 with non-integral or large integral modes. Adjust
3045 mem_loc_descriptor callers.
3046 (prune_unused_types): Call prune_unused_types_mark on base_types
3048 (resolve_addr): Call mark_base_types.
3049 (dwarf2out_finish): Call move_marked_base_types.
3051 PR tree-optimization/48809
3052 * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
3054 (gen_inbound_check): Don't compute index_expr - range_min in utype
3055 again, instead reuse SSA_NAME initialized in build_arrays.
3056 Remove two useless gsi_for_stmt calls.
3058 2011-04-29 Jeff Law <law@redhat.com>
3060 * tree-ssa-threadedge.c (thread_across_edge): Add missing return.
3062 2011-04-29 Martin Jambor <mjambor@suse.cz>
3064 * cgraph.h (cgraph_postorder): Remove declaration.
3065 * ipa-utils.h (ipa_free_postorder_info): Declare.
3066 (ipa_reverse_postorder): Likewise.
3067 * cgraphunit.c: Include ipa-utils.h.
3068 (cgraph_expand_all_functions): Update call to ipa_reverse_postorder.
3069 * ipa-inline.c: Include ipa-utils.h.
3070 (ipa_inline): Update call to ipa_reverse_postorder.
3071 * ipa-pure-const.c (propagate_pure_const): Update call to
3072 ipa_reduced_postorder and ipa_print_order. Call
3073 ipa_free_postorder_info to clean up.
3074 (propagate_nothrow): Likewise.
3075 * ipa-reference.c (propagate): Removed a useless call to
3076 ipa_utils_reduced_inorder, updated a call to ipa_reduced_postorder
3077 and ipa_print_order. Call ipa_free_postorder_info to clean up.
3078 * ipa.c: Include ipa-utils.h.
3079 (ipa_profile): Update call to ipa_reverse_postorder.
3080 (cgraph_postorder): Moved to...
3081 * ipa-utils.c (ipa_reverse_postorder): ...here and renamed.
3082 (ipa_utils_print_order): Renamed to ipa_print_order.
3083 (ipa_utils_reduced_inorder): Renamed to ipa_reduced_postorder. Updated
3085 (ipa_free_postorder_info): New function.
3086 * passes.c: Include ipa-utils.h.
3087 (do_per_function_toporder): Update call to ipa_reverse_postorder.
3088 (ipa_write_summaries): Likewise.
3089 * Makefile.in (passes.o): Add IPA_UTILS_H to dependencies.
3090 (cgraphunit.o): Likewise.
3092 (ipa-inline.o): Likewise.
3094 2011-04-29 Jan Hubicka <jh@suse.cz>
3096 * gcc.dg/tree-ssa/inline-10.c: New testcase.
3097 * gcc.dg/tree-ssa/inline-9.c: Disable partial inlining.
3098 * ipa-inline.h (clause_t): Turn into unsigned int.
3099 * ipa-inline-analysis.c (add_clause): Do more simplification.
3100 (and_predicates): Shortcut more cases.
3101 (predicates_equal_p): Move forward; check that clauses are properly
3103 (or_predicates): Shortcut more cases.
3104 (edge_execution_predicate): Rewrite as...
3105 (set_cond_stmt_execution_predicate): ... this function; handle
3106 __builtin_constant_p.
3107 (set_switch_stmt_execution_predicate): New .
3108 (compute_bb_predicates): New.
3109 (will_be_nonconstant_predicate): Update TODO.
3110 (estimate_function_body_sizes): Use compute_bb_predicates
3111 and free them later, always try to estimate if stmt is constant.
3112 (estimate_time_after_inlining, estimate_size_after_inlining):
3113 Gracefully handle optimized out edges.
3114 (read_predicate): Fix off by one error.
3116 2011-04-29 Nicola Pero <nicola.pero@meta-innovation.com>
3118 * Makefile.in (ENABLE_MAINTAINER_RULES): New.
3120 2011-04-27 Xinliang David Li <davidxl@google.com>
3122 * tree-profile.c (init_ic_make_global_vars): Set
3123 tls attribute on ic vars.
3124 * coverage.c (coverage_end_function): Initialize
3125 function_list with zero.
3127 2011-04-29 Richard Guenther <rguenther@suse.de>
3129 * builtins.c (fold_builtin_classify_type): Use integer_type_node
3130 for the type of the result.
3131 (fold_builtin_isascii): Likewise.
3132 (fold_builtin_toascii): Use integer_type_node where appropriate.
3133 (fold_builtin_logb): Likewise.
3134 (fold_builtin_frexp): Likewise.
3135 (fold_builtin_strstr): Likewise.
3136 (fold_builtin_strpbrk): Likewise.
3137 (fold_builtin_fputs): Likewise.
3138 (fold_builtin_sprintf): Likewise.
3139 (fold_builtin_snprintf): Likewise.
3140 (fold_builtin_printf): Likewise.
3141 (do_mpfr_remquo): Use a proper type for the assigned constant.
3142 (do_mpfr_lgamma_r): Likewise.
3143 * dwarf2out.c (resolve_one_addr): Use size_int.
3144 * except.c (init_eh): Likewise.
3145 (assign_filter_values): Use integer_type_node for filter values.
3146 (sjlj_emit_dispatch_table): Use integer_type_node for dispatch
3148 * tree-cfg.c (move_stmt_eh_region_tree_nr): Use integer_type_node
3149 for EH region numbers.
3150 * tree-vrp.c (simplify_div_or_mod_using_ranges): Use integer_type_node
3151 for the shift amount.
3153 2011-04-29 Richard Guenther <rguenther@suse.de>
3155 * expr.h (expand_shift): Rename to ...
3156 (expand_variable_shift): ... this.
3157 (expand_shift): Take a constant shift amount.
3158 * expmed.c (expand_shift): Rename to ...
3159 (expand_variable_shift): ... this.
3160 (expand_shift): New wrapper around expand_variable_shift.
3161 * expr.c (convert_move, emit_group_load_1, emit_group_store,
3162 optimize_bitfield_assignment_op, store_field, expand_expr_real_2,
3163 expand_expr_real_1, reduce_to_bit_field_precision): Adjust.
3164 * expmed.c (store_fixed_bit_field, extract_bit_field_1,
3165 extract_fixed_bit_field, extract_split_bit_field, expand_mult_const,
3166 expand_mult, expand_widening_mult, expand_mult_highpart_adjust,
3167 extract_high_half, expand_sdiv_pow2, expand_divmod, emit_cstore,
3168 emit_store_flag_1, emit_store_flag): Likewise.
3169 * builtins.c (expand_builtin_signbit): Likewise.
3170 * calls.c (load_register_parameters): Likewise.
3171 * function.c (assign_parm_setup_block): Likewise.
3172 * lower-subreg.c (resolve_shift_zext): Likewise.
3173 * optabs.c (widen_bswap, expand_abs_nojump,
3174 expand_one_cmpl_abs_nojump, expand_float): Likewise.
3175 * spu/spu.c (spu_expand_extv): Likewise.
3176 * sparc/sparc.c (sparc32_initialize_trampoline): Likewise.
3178 2011-04-29 Richard Guenther <rguenther@suse.de>
3180 * tree-inline.c (remap_eh_region_tree_nr): Use integer_type_node
3181 for the remapped region number.
3182 * predict.c (build_predict_expr): Use integer_type_node for the
3184 * fold-const.c (fold_binary_loc): Use integer_type_node for
3185 the shift amount. Use a proper type for the PLUS_EXPR operand.
3187 2011-04-29 Michael Matz <matz@suse.de>
3189 * lto-streamer.c (lto_streamer_cache_insert_1): Accept to override
3190 other trees that just builtins.
3191 (lto_record_common_node): Don't leave NULL TYPE_CANONICAL.
3193 2011-04-29 Richard Guenther <rguenther@suse.de>
3195 * tree-nested.c (get_trampoline_type): Use size_int.
3196 (get_nl_goto_field): Likewise.
3197 * tree-eh.c (lower_try_finally_switch): Use integer_type_node
3199 (lower_eh_constructs_2): Likewise.
3200 (lower_resx): Likewise.
3201 (lower_eh_dispatch): Likewise.
3202 * tree-mudflap.c (mf_build_string): Use size_int.
3203 (mudflap_register_call): Use integer_type_node for the flag.
3204 (mudflap_enqueue_constant): Use size_int.
3205 * tree-chrec.c (reset_evolution_in_loop): Copy CHREC_VAR
3206 instead of rebuilding it.
3208 2011-04-29 Richard Guenther <rguenther@suse.de>
3210 * tree-ssa-structalias.c (get_fi_for_callee): Restructure.
3211 Handle OBJ_TYPE_REF.
3212 (find_func_aliases_for_call): Use it more consistently.
3214 2011-04-29 Alexandre Oliva <aoliva@redhat.com>
3216 * haifa-sched.c (last_nondebug_scheduled_insn): New.
3217 (rank_for_schedule): Use it.
3218 (schedule_block): Set it.
3220 2011-04-28 David Li <davidxl@google.com>
3222 * tree.c (crc32_string): Use crc32_byte.
3223 (crc32_byte): New function.
3224 * tree.h (crc32_byte): New function.
3225 * gcov.c (read_graph_file): Handle new cfg_cksum.
3226 (read_count_file): Ditto.
3227 * profile.c (instrument_values): Ditto.
3228 (get_exec_counts): Ditto.
3229 (read_profile_edge_counts): Ditto.
3230 (compute_branch_probabilities): Ditto.
3231 (compute_value_histograms): Ditto.
3232 (branch_prob): Ditto.
3233 (end_branch_prob): Ditto.
3234 * coverage.c (read_counts_file): Ditto.
3235 (get_coverage_counts): Ditto.
3236 (tree_coverage_counter_addr): Ditto.
3237 (coverage_checksum_string): Ditto.
3238 (coverage_begin_output): Ditto.
3239 (coverage_end_function): Ditto.
3240 (build_fn_info_type): Ditto.
3241 (build_fn_info_value): Ditto.
3242 * libgcov.c (gcov_exit): Ditto.
3243 * gcov-dump.c (tag_function): Ditto.
3244 (compute_checksum): Remove.
3246 2011-04-29 Alan Modra <amodra@gmail.com>
3248 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
3249 unspec plus offset. Tidy macho code.
3251 2011-04-29 Martin Jambor <mjambor@suse.cz>
3253 * cgraphunit.c (cgraph_preserve_function_body_p): Accept a cgraph
3254 node instead of a decl. Update all callers.
3255 * cgraph.h: Update declaration.
3257 2011-04-28 Ira Rosen <ira.rosen@linaro.org>
3259 PR tree-optimization/48765
3260 * tree-vectorizer.h (vect_make_slp_decision): Return bool.
3261 * tree-vect-loop.c (vect_analyze_loop_operations): Add new argument
3262 to indicate if loop aware SLP is being used. Scan the statements
3263 and update the vectorization factor according to the type of
3264 vectorization before statement analysis.
3265 (vect_analyze_loop_2): Get a return value from vect_make_slp_decision,
3266 pass it to vect_analyze_loop_operations.
3267 (vectorizable_reduction): Set number of copies to 1 in case of pure
3269 * tree-vect-stmts.c (vectorizable_conversion,
3270 vectorizable_assignment, vectorizable_shift,
3271 vectorizable_operation, vectorizable_type_demotion,
3272 vectorizable_type_promotion, vectorizable_store, vectorizable_load):
3274 (vectorizable_condition): Move the check that it is not SLP
3275 vectorization before the number of copies check.
3276 * tree-vect-slp.c (vect_make_slp_decision): Return TRUE if decided
3277 to vectorize the loop using SLP.
3279 2011-04-28 Jakub Jelinek <jakub@redhat.com>
3282 * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
3285 2011-04-28 Joseph Myers <joseph@codesourcery.com>
3287 * config.gcc (*-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* |
3288 *-*-kopensolaris*-gnu): Don't define SINGLE_LIBC.
3289 (i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
3290 i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
3291 x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu): Don't use
3293 * config/gnu-user.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Define.
3294 * config/i386/gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3295 * config/i386/kfreebsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3296 * config/i386/knetbsd-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3297 * config/i386/kopensolaris-gnu.h (MD_UNWIND_SUPPORT): Don't undefine.
3298 * config/i386/linux-unwind.h (x86_fallback_frame_state): Don't use
3300 * config/i386/linux.h (REG_NAME): Don't define.
3301 * config/i386/linux64.h (REG_NAME): Don't define.
3302 * config/linux.h (TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS):
3303 Undefine before defining.
3305 2011-04-28 Jan Hubicka <jh@suse.cz>
3307 * ipa-inline-analysis.c (will_be_nonconstant_predicate): Take
3308 nonconstant_names array.
3309 (estimate_function_body_sizes): Build nonconstant_names array; handle
3310 BUILT_IN_CONSTANT_P.
3312 2011-04-28 Richard Guenther <rguenther@suse.de>
3316 2011-04-28 Richard Guenther <rguenther@suse.de>
3318 * tree-ssa-structalias.c (solve_constraints): Build succ graph
3319 as late as possible.
3321 2011-04-28 Richard Guenther <rguenther@suse.de>
3323 * tree-ssa-structalias.c (dump_constraint): Don't end the line.
3324 (debug_constraint): Do it here.
3325 (dump_constraints): And here.
3326 (rewrite_constraints): And here.
3327 (dump_constraint_edge): Remove.
3328 (dump_constraint_graph): Rewrite to produce DOT output.
3329 (solve_constraints): Build succ graph as late as possible.
3330 Dump constraint graphs before and after solving.
3332 2011-04-28 Richard Guenther <rguenther@suse.de>
3334 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
3335 New function split out from ...
3336 (find_func_aliases): ... here. Call it.
3337 (find_func_aliases_for_call): Likewise.
3339 2011-04-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
3341 * internal-fn.h (internal_fn_name_array): Declare.
3342 (internal_fn_flags_array): Likewise.
3344 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
3346 * config/i386/i386.md (ssemodesuffix): Merge with ssevecsize,
3347 ssemodefsuffix, ssescalarmodesuffix and avxmodesuffixp.
3349 (ssemodefsuffix): Remove.
3350 (ssevecmodesuffix): New mode attribute.
3351 (fix_trunc<mode>di_sse, fix_trunc<mode>si_sse,
3352 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3353 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3354 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3355 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit, setcc_<mode>_sse,
3356 *sqrt<mode>2_sse, sse4_1_round<mode>2, <smaxmin:code><mode>3,
3357 *ieee_smin<mode>3, *ieee_smax<mode>3): Adjust assembler templates for
3358 ssemodesuffix mode attribute.
3359 (float splitters): Use ssevecmodesuffix mode attribute.
3360 * config/i386/sse.md (ssescalarmode): Merge with avxscalarmode.
3361 (sseinsmode): Rename from avxvecmode.
3362 (avxsizesuffix): Rename from avxmodesuffix.
3363 (sseintvecmode): Rename from avxpermvecmode.
3364 (ssedoublevecmode): Rename from ssedoublesizemode.
3365 (ssehalfvecmode): Rename from avxhalfvecmode.
3366 (ssescalarmode): Rename from avxscalarmode.
3367 (<sse>_comi, <sse>_ucomi, sse4a_movnt<mode>): Adjust assembler
3368 templates for ssemodesuffix mode attribute.
3369 (*andnot<mode>3, *<any_logic:code><mode>3): Use ssevecmodesuffix
3372 Adjust RTX patterns globally for renamed mode attributes.
3374 2011-04-27 Jan Hubcika <jh@suse.cz>
3376 * ipa-inline.h (struct inline_edge_summary): Add predicate pointer.
3377 * ipa-inline-analysis.c: Include alloc-pool.h.
3378 (edge_predicate_pool): New.
3379 (trye_predicate_p): New function
3380 (false_predicate_p): New function.
3381 (add_clause): Sanity check that false clauses are "optimized";
3382 never add clauses to predicate that is already known to be false.
3383 (and_predicate): Use flase_predicate_p.
3384 (evaulate_predicate): Rename to ...
3385 (evaluate_predicate): ... this one; update all callers; assert
3386 that false is not listed among possible truths.
3387 (dump_predicate): Use true_predicate_p.
3388 (account_size_time): Use false_predicate_p.
3389 (evaulate_conditions_for_edge): Rename to ...
3390 (evaluate_conditions_for_edge) ... this one.
3391 (edge_set_predicate): New function.
3392 (inline_edge_duplication_hook): Duplicate edge predicates.
3393 (inline_edge_removal_hook): Free edge predicates.
3394 (dump_inline_edge_summary): Add INFO parameter; dump edge predicates.
3395 (dump_inline_summary): Update.
3396 (estimate_function_body_sizes): Set edge predicates.
3397 (estimate_calls_size_and_time): Handle predicates.
3398 (estimate_callee_size_and_time): Update.
3399 (remap_predicate): Add toplev_predicate; update comment.
3400 (remap_edge_predicates): New function.
3401 (inline_merge_summary): Compute toplev predicate; update.
3402 (read_predicate): New function.
3403 (read_inline_edge_summary): Use it.
3404 (inline_read_section): Likewise.
3405 (write_predicate): New function.
3406 (write_inline_edge_summary): Use it.
3407 (inline_write_summary): Likewise.
3408 (inline_free_summary): Free alloc pool and edge summary vec.
3410 2011-04-27 Richard Guenther <rguenther@suse.de>
3412 * tree-ssa-structalias.c (changed_count): Remove.
3413 (changed): Use a bitmap.
3414 (unify_nodes): Adjust.
3415 (do_sd_constraint): Likewise.
3416 (do_ds_constraint): Likewise.
3417 (do_complex_constraint): Likewise.
3418 (solve_graph): Likewise.
3420 2011-04-27 Jan Hubicka <jh@suse.cz>
3422 * cgraphunit.c (cgraph_process_new_functions): Fix ordering issue.
3424 2011-04-27 Uros Bizjak <ubizjak@gmail.com>
3426 * config/i386/predicates.md (avx_vpermilp_*_operand): Remove.
3427 (avx_vperm2f128_*_operand): Ditto.
3428 * config/i386/sse.md (*avx_vpermilp<mode>): Remove operand2 predicate.
3429 Use avx_vpermilp_parallel in insn condition.
3430 (*avx_vperm2f128<mode>_nozero): Remove operand3 predicate.