1 2010-11-21 Joseph Myers <joseph@codesourcery.com>
3 * system.h (strerror): Poison.
5 2010-11-21 Richard Henderson <rth@redhat.com>
7 * config/ia64/ia64.c (ia64_expand_builtin): Use the correct mode
10 2010-11-21 Richard Henderson <rth@redhat.com>
12 PR rtl-optimization/46571
13 * gcse.c (hash_scan_set): Use next_nonnote_nondebug_insn.
14 (compute_hash_table_work): Use NONDEBUG_INSN_P.
16 2010-11-21 Paul Koning <ni1d@arrl.net>
18 * config/mips/pdp11.md (negsi2): Fix wrong code.
20 2010-11-21 Paul Koning <ni1d@arrl.net>
22 * config/mips/pdp11.c (pdp11_legitimate_address_p): New function.
23 * config/mips/pdp11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
25 2010-11-21 Eric Botcazou <ebotcazou@adacore.com>
27 * config/mips/mips.c (machine_function): Rename load_label_length to
29 (mips_load_label_length): Rename to...
30 (mips_load_label_num_insns): ...this. Adjust to first renaming.
31 (mips_adjust_insn_length): Adjust to second renaming. Fix thinko.
33 2010-11-21 Uros Bizjak <ubizjak@gmail.com>
36 * config/alpha/predicates.md (direct_call_operand): Return false
37 for !TARGET_SMALL_TEXT targets.
39 2010-11-20 Joseph Myers <joseph@codesourcery.com>
41 * doc/tm.texi.in (HANDLE_SYSV_PRAGMA,
42 HANDLE_PRAGMA_PACK_PUSH_POP): Remove.
43 (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Don't refer to
45 * doc/tm.texi: Regenerate.
46 * system.h (HANDLE_PRAGMA_PACK_PUSH_POP, HANDLE_SYSV_PRAGMA,
47 HANDLE_PRAGMA_WEAK): Poison.
48 * config/alpha/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
49 * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
50 * config/alpha/osf5.h (HANDLE_SYSV_PRAGMA): Don't define.
51 * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Don't define.
52 * config/arm/arm.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
53 * config/arm/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
54 * config/cris/cris.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
55 * config/darwin.h (HANDLE_SYSV_PRAGMA): Don't define.
56 (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
57 * config/elfos.h (HANDLE_SYSV_PRAGMA): Don't define.
58 * config/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
59 * config/frv/frv.h (HANDLE_SYSV_PRAGMA): Don't define.
60 * config/i386/cygming.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
61 * config/i386/djgpp.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
62 * config/i386/i386-interix.h (HANDLE_SYSV_PRAGMA): Don't define.
63 (HANDLE_PRAGMA_WEAK): Don't undefine.
64 * config/i386/netware.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
65 * config/i386/vxworks.h (HANDLE_SYSV_PRAGMA): Don't define.
66 * config/ia64/hpux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
67 * config/ia64/ia64.h (HANDLE_SYSV_PRAGMA): Don't define.
68 * config/interix.h (HANDLE_SYSV_PRAGMA): Don't define.
69 (HANDLE_PRAGMA_WEAK): Don't undefine.
70 * config/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
71 * config/m32r/linux.h (HANDLE_SYSV_PRAGMA): Don't define.
72 (HANDLE_PRAGMA_PACK): Don't undefine.
73 * config/m32r/m32r.h (HANDLE_SYSV_PRAGMA): Don't undefine.
74 * config/mep/mep.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
75 * config/mips/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
76 * config/mips/sde.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
77 * config/mmix/mmix.h (HANDLE_SYSV_PRAGMA): Don't define.
78 * config/netbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
79 (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
80 * config/openbsd.h (HANDLE_SYSV_PRAGMA): Don't define.
81 * config/pa/pa-hpux.h (HANDLE_SYSV_PRAGMA): Don't define.
82 (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
83 * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Don't define.
84 * config/rs6000/sysv4.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
85 * config/rx/rx.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
86 * config/score/elf.h (HANDLE_SYSV_PRAGMA): Don't define.
87 * config/spu/spu.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
88 * config/stormy16/stormy16.h (HANDLE_SYSV_PRAGMA): Don't define.
89 * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define.
91 2010-11-20 Eric Botcazou <ebotcazou@adacore.com>
94 * config/sparc/sparc.h (ASM_OUTPUT_ALIGN_WITH_NOP): Move to...
95 * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): ...here.
96 * config/sparc/sol2-gas.h (ASM_OUTPUT_ALIGN_WITH_NOP): Undefine.
98 2010-11-20 Jan Hubicka <jh@suse.cz>
100 * cgraph.c (ld_plugin_symbol_resolution_names): New.
101 (dump_cgraph_node): Dump resolution.
102 * cgraph.h (ld_plugin_symbol_resolution_names): Declare.
103 (cgraph_comdat_can_be_unshared_p): Dclare.
104 * lto-streamer-out.c (produce_symtab): Use
105 cgraph_comdat_can_be_unshared_p.
106 * ipa.c (cgraph_address_taken_from_non_vtable_p): New function.
107 (cgraph_comdat_can_be_unshared_p): New function based on logic
108 in cgraph_externally_visible_p.
109 (cgraph_externally_visible_p): Use it.
110 (varpool_externally_visible_p): Virtual tables can be unshared.
111 * varpool.c (dump_varpool_node): Dump resolution.
113 2010-11-20 Jan Hubicka <jh@suse.cz>
115 * stmt.c (lshift_cheap_p): Support properly optimize_insn_for_speed_p.
117 2010-11-20 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
120 * Makefile.in (install_sh, INSTALL_STRIP_PROGRAM): New variables.
121 (AR_FOR_TARGET, RANLIB_FOR_TARGET, STRIP_FOR_TARGET): Fix
123 (STRIP_FOR_TARGET): Look for in-tree strip under name strip-new.
124 (install-strip): New target.
125 (STRIPPROG): New variable, exported if STRIP is set.
126 * doc/install.texi (Final install): Minor markup and code style
127 fixes. Document install-strip target.
129 2010-11-20 Paul Koning <ni1d@arrl.net>
131 * config/pdp11/pdp11-protos.h (pdp11_initial_elimination_offset,
132 pdp11_regno_reg_class): New functions.
133 * config/pdp11/pdp11.md (define_constants): Add register numbers.
134 * config/pdp11/pdp11.c (pdp11_regno_reg_class,
135 pdp11_sp_frame_offset, pdp11_initial_elimination_offset): New
137 * config/pdp11/pdp11.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Add
138 frame pointer and argument pointer pseudo-registers.
139 (ARG_POINTER_REGNUM): Define.
140 (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add frame pointer and
142 (FIRST_PARM_OFFSET): Update for argument pointer.
143 (INITIAL_FRAME_POINTER_OFFSET): Delete.
144 (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): New macros.
145 (REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_INDEX_P, REGISTER_NAMES): Add
146 frame pointer and argument pointer.
148 2010-11-20 Jakub Jelinek <jakub@redhat.com>
151 * tree-parloops.c (try_create_redunction_list): Ignore debug stmts
152 when looking for immediate uses.
154 PR tree-optimization/45830
155 * stmt.c (expand_switch_using_bit_tests_p): New function.
156 (expand_case): Use it.
157 * tree.h (expand_switch_using_bit_tests_p): New prototype.
158 * tree-switch-conversion.c (struct switch_conv_info): Add
159 bit_test_uniq, bit_test_count and bit_test_bb fields.
160 (check_range): Fix a comment.
161 (check_process_case): Compute bit_test_uniq and bit_test_count.
162 (create_temp_arrays): Use XCNEWVEC, merge 3 arrays into one
164 (free_temp_arrays): Use XDELETEVEC, adjust for the 3 arrays merging.
165 (constructor_contains_same_values_p): Use FOR_EACH_VEC_ELT.
166 (array_value_type): New function.
167 (build_one_array): Use it, if it returned different type,
168 fold_convert all constructor fields and convert back to the
169 wider type in the generated code.
170 (process_switch): Initialize bit_test_uniq, bit_test_count and
171 bit_test_bb fields. Don't optimize if expand_switch_using_bit_tests_p
174 2010-11-19 Michael Matz <matz@suse.de>
176 PR tree-optimization/46077
177 * tree-chrec.c (eq_evolutions_p): Accept some expressions.
179 2010-11-19 Anatoly Sokolov <aesok@post.ru>
181 * config/mn10300/mn10300.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
182 * config/mn10300/mn10300.c (mn10300_asm_output_addr_const_extra): New
184 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
186 2010-11-19 Uros Bizjak <ubizjak@gmail.com>
188 * mode-switching.c (optimize_mode_switching): Use
189 FOR_BB_INSNS instead of open-coded loop.
190 * cfgrtl.c (redirect_branch_edge): Ditto.
192 2010-11-19 Joern Rennecke <amylaar@spamcop.net>
195 * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Split shift count
196 to accomodate 32 bit HOST_WIDE_INT.
197 (m68hc11_emit_logical): Remove unused variable insn.
198 (m68hc11_check_z_replacement) <CLOBBER>: Set this_insn_uses_ix and
199 this_insn_uses_iy before use.
202 * config/crx/crx.c (crx_expand_epilogue): Remove unused variable.
204 2010-11-19 Joseph Myers <joseph@codesourcery.com>
207 * c-tree.h (in_late_binary_op): Move to c-family/c-common.h.
208 * c-typeck.c (in_late_binary_op): Move to c-family/c-common.c.
210 2010-11-19 Michael Meissner <meissner@linux.vnet.ibm.com>
212 * doc/extend.texi (Function attributes): Document PowerPC target
213 attributes that are supported.
214 (Pragmas): Document that PowerPC now supports target pragmas.
216 * doc/options.texi (TargetVariable): Document TargetVariable,
217 HeaderInclude, and SourceInclude.
219 * doc/invoke.texi (-mfused-madd): Document that -mfused-madd is
220 mapped to -ffp-contract=fast, and -mno-fused-madd is mapped to
223 * optc-gen.awk: Add support for TargetVariable, HeaderInclude, and
224 SourceInclude directives. Fix a cut+paste error with target save
225 enum variables. Sort enums in the structures after ints and
227 * opth-gen.awk: Ditto.
229 * configure.ac: Add support for HeaderInclude and SourceInclude option
230 directives to add the appropriate files to the dependency lists.
231 * configure: Regenerate.
232 * Makefile.in (OPTIONS_H_EXTRA): New variable for HeaderInclude.
233 (OPTIONS_C_EXTRA): New variable for SourceInclude.
234 (OPTIONS_H): Add $(OPTIONS_H_EXTRA).
235 (options.o): Add $(OPTIONS_C_EXTRA) dependency.
236 (gcc-options.o): Ditto.
237 * opt-include.awk: New awk script to handle HeaderInclude and
240 * config/rs6000/aix.opt (-mxl-compat): Mark option as Save so it
241 gets saved in the target options.
242 * config/rs6000/linux64.opt (-mprofile-kernel): Ditto.
243 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
244 (-mprototype): Ditto.
247 (-msecure-plt): Ditto.
249 * config/rs6000/rs6000.opt (-mpowerpc-gpopt): Ditto.
250 (-mpowerpc-gfxopt): Ditto.
265 (-mno-update): Ditto.
266 (-mavoid-indexed-addresses): Ditto.
267 (-mtls-markers): Ditto.
268 (-msched-epilog): Ditto.
269 (-msched-prolog): Ditto.
270 (-maix-struct-return): Ditto.
271 (-msvr4-struct-return): Ditto.
272 (-mxl-compat): Ditto.
273 (-mrecip-precision): Ditto.
274 (-mfp-in-toc): Ditto.
275 (-msum-in-toc): Ditto.
277 (-mblock-move-inline-limit=): Ditto.
281 (-mgen-cell-microcode): Ditto.
282 (-mwarn-cell-microcode): Ditto.
283 (-mwarn-altivec-long): Ditto.
284 (-mprioritize-restricted-insns=): Ditto.
285 (-msingle-float): Ditto.
286 (-mdouble-float): Ditto.
287 (-msimple-fpu): Ditto.
288 (-mxilinx-fpu): Ditto.
289 * config/rs6000/aix64.opt (-mpe): Ditto.
291 * config/rs6000/rs6000.opt (HeaderInclude): Include rs6000-opts.h.
292 (rs6000_cpu): Move variable to be a target variable. Rename
293 cmodel to rs6000_current_cmodel because of macro conflict. Merge
294 -mdebug=<xxx> variables into a single int.
295 (rs6000_always_hint): Ditto.
296 (rs6000_sched_groups): Ditto.
297 (rs6000_align_branch_targets): Ditto.
298 (rs6000_sched_costly_dep): Ditto.
299 (rs6000_sched_insert_nops): Ditto.
300 (rs6000_long_double_type_size): Ditto.
301 (rs6000_ieeequad): Ditto.
302 (rs6000_altivec_abi): Ditto.
304 (rs6000_spe_abi): Ditto.
305 (rs6000_float_gprs): Ditto.
306 (rs6000_darwin64_abi): Ditto.
307 (can_override_loop_align): Ditto.
308 (rs6000_sdata): Ditto.
309 (rs6000_tls_size): Ditto.
310 (rs6000_current_abi): Ditto.
311 (rs6000_traceback): Ditto.
312 (rs6000_alignment_flags): Ditto.
313 (rs6000_current_cmodel): Ditto.
314 (rs6000_recip_control): Ditto.
315 (rs6000_cpu_index): Ditto.
316 (rs6000_tune_index): Ditto.
317 (rs6000_debug): Ditto.
318 (rs6000_target_flags_explict): Ditto.
320 * config/rs6000/rs6000-protos.h (rs6000_pragma_target_parse): Add
323 * config/rs6000/linux64.h (rs6000_current_cmode): Rename from
324 cmodel. Change all uses.
326 * config/rs6000/rs6000.c (rs6000_always_hint): Move to
327 rs6000.opt. Combine -mdebug=<xxx> variables into a single int.
328 Rename cmodel to rs6000_current_cmodel.
329 (rs6000_sched_groups): Ditto.
330 (rs6000_align_branch_targets): Ditto.
331 (rs6000_sched_costly_dep): Ditto.
332 (rs6000_sched_insert_nops): Ditto.
333 (rs6000_long_double_type_size): Ditto.
334 (rs6000_ieeequad): Ditto.
335 (rs6000_altivec_abi): Ditto.
337 (rs6000_spe_abi): Ditto.
338 (rs6000_float_gprs): Ditto.
339 (rs6000_darwin64_abi): Ditto.
340 (can_override_loop_align): Ditto.
341 (rs6000_sdata): Ditto.
342 (rs6000_tls_size): Ditto.
343 (rs6000_current_abi): Ditto.
344 (rs6000_traceback): Ditto.
345 (rs6000_alignment_flags): Ditto.
346 (rs6000_current_cmodel): Ditto.
347 (rs6000_recip_control): Ditto.
348 (rs6000_cpu_index): Ditto.
349 (rs6000_tune_index): Ditto.
350 (rs6000_debug): Ditto.
351 (rs6000_target_flags_explict): Ditto.
352 (rs6000_sched_insert_nops_str): Make static.
353 (rs6000_sched_costly_dep_str): Ditto.
354 (rs6000_recip_name): Ditto.
355 (rs6000_abi_name): Ditto.
356 (rs6000_sdata_name): Ditto.
357 (enum rs6000_traceback_name): Move to rs6000-opts.h.
358 (rs6000_parse_tls_size_option): Delete.
359 (rs6000_valid_attribute_p): New function for target attributes and
361 (rs6000_function_specific_save): Ditto.
362 (rs6000_function_specific_restore): Ditto.
363 (rs6000_function_specific_print): Ditto.
364 (rs6000_can_inline_p): Ditto.
365 (rs6000_set_current_function): Ditto.
366 (rs6000_inner_target_options): Ditto.
367 (rs6000_debug_target_options): Ditto.
368 (rs6000_pragma_target_parse): Ditto.
369 (TARGET_OPTION_VALID_ATTRIBUTE_P): Define target hooks for target
370 attributes and pragmas.
371 (TARGET_OPTION_SAVE): Ditto.
372 (TARGET_OPTION_RESTORE): Ditto.
373 (TARGET_OPTION_PRINT): Ditto.
374 (TARGET_CAN_INLINE_P): Ditto.
375 (TARGET_SET_CURRENT_FUNCTION): Ditto.
376 (POWER_MASKS): Move to file level scope from the
377 rs6000_option_override_internal function.
378 (POWERPC_MASKS): Ditto.
379 (ISA_*_MASKS): Ditto.
380 (struct rs6000_ptt): Ditto.
381 (processor_target_table): Ditto.
382 (rs6000_cpu_name_lookup): Map cpu name to an index in
383 processor_target_table.
384 (rs6000_debug_reg_global): Print more information on processor
385 options for -mdebug=reg.
386 (rs6000_init_hard_regno_mode_ok): Add support for target
387 attributes and pragmas. Merge all -mdebug=<xxx> fields into one.
388 Allow -mdebug=val1,val2. Rename cmodel variable.
389 (rs6000_option_override_internal): Ditto.
390 (rs6000_option_override): Ditto.
391 (rs6000_handle_option): Ditto.
392 (rs6000_conditional_register_usage): Add debug trace message.
393 (struct rs6000_opt_mask): New for target attribute/pragma support.
394 (rs6000_opt_masks): Ditto.
395 (struct rs6000_opt_var): Ditto.
396 (rs6000_opt_vars): Ditto.
397 (rs6000_previous_function): Ditto.
399 * config/rs6000/rs6000.h (top level): Include rs6000-opts.h if it
400 wasn't already included.
401 (enum rs6000_cmodel): Move to rs6000-opts.h or rs6000.opt.
402 (enum processor_type): Ditto.
404 (enum fpu_type_t): Ditto.
406 (enum rs6000_dependence_cost): Ditto.
407 (enum rs6000_nop_insertion): Ditto.
408 (enum group_termination): Ditto.
409 (rs6000_long_double_type_size): Ditto.
410 (rs6000_ieeequad): Ditto.
411 (rs6000_altivec_abi): Ditto.
412 (rs6000_spe_abi): Ditto.
414 (rs6000_float_gprs): Ditto.
415 (rs6000_alignment_flags): Ditto.
416 (rs6000_sched_insert_nops): Ditto.
417 (enum rs6000_vector): Ditto.
418 (enum rs6000_abi): Ditto.
419 (rs6000_current_opt): Ditto.
420 (rs6000_debug_*): Delete.
421 (MASK_DEBUG*): Combine -mdebug=xxxx into one int.
422 (TARGET_DEBUG*): Ditto.
424 * config/rs6000/rs6000-opts.h: New header file to define the enums
425 that are used in target variables that are now defined in rs6000.opt.
427 * config/rs6000/sysv4.h (enum rs6000_sdata_type): Move to
429 (rs6000_sdata): Ditto.
430 (rs6000_abi_name): Delete.
431 (rs6000_sdata_name): Ditto.
432 (rs6000_tls_size_string): Ditto.
434 2010-11-19 Joseph Myers <joseph@codesourcery.com>
436 * common.opt (debug_struct_ordinary, debug_struct_generic): New
438 * dwarf2out.c (matches_main_base, dump_struct_debug, DUMP_GSTRUCT,
439 should_emit_struct_debug): Move from opts.c.
440 * flag-types.h (enum debug_struct_file): Move from opts.c.
441 * flags.h (should_emit_struct_debug): Remove.
442 (base_of_path): Declare.
443 (set_struct_debug_option): Add gcc_options parameter.
444 * optc-gen.awk, opth-gen.awk: Handle array variables.
445 * opts.c (enum debug_struct_file, debug_struct_ordinary,
446 debug_struct_generic): Remove.
447 (set_struct_debug_option): Add gcc_options parameter.
448 (base_of_path): Remove static.
449 (main_input_basename, main_input_baselength, matches_main_base,
450 dump_struct_debug, DUMP_GSTRUCT, should_emit_struct_debug):
452 * toplev.c (main_input_basename, main_input_baselength): Define
454 * toplev.h (main_input_basename, main_input_baselength): Declare
457 2010-11-19 Joseph Myers <joseph@codesourcery.com>
459 * common.opt (flag_instrument_functions_exclude_functions,
460 flag_instrument_functions_exclude_files): New Variable definitions.
461 * flags.h (flag_instrument_functions_exclude_p): Don't declare.
462 * gimplify.c (char_p): Declare type and vectors.
463 (flag_instrument_functions_exclude_p): Moved from opts.c. Make static.
464 * opts.c (flag_instrument_functions_exclude_functions,
465 flag_instrument_functions_exclude_files): Remove.
466 (add_comma_separated_to_vector): Take void **.
467 (flag_instrument_functions_exclude_p): Move to gimplify.c.
468 (common_handle_option): Use options structure for
469 -finstrument-functions-exclude- options.
471 2010-11-19 Joseph Myers <joseph@codesourcery.com>
473 * doc/options.texi (Var): Document effects of Defer.
475 * opt-functions.awk (var_type, var_set): Handle deferred options.
476 * opts-common.c (set_option): Handle CLVC_DEFER.
477 * common.opt (fcall-saved-, fcall-used-, fdump-, ffixed-,
478 fplugin=, fplugin-arg-, fstack-limit, fstack-limit-register=,
479 fstack-limit-symbol=): Mark as deferred.
480 * opts.c: Don't include rtl.h, ggc.h, output.h, tree-pass.h or
482 (print_filtered_help): Don't report state of CLVC_DEFER options.
483 (common_handle_option): Move code for OPT_fcall_used_,
484 OPT_fcall_saved_, OPT_fdump_, OPT_ffixed_, OPT_fplugin_,
485 OPT_fplugin_arg_, OPT_fstack_limit, OPT_fstack_limit_register_ and
486 OPT_fstack_limit_symbol_ to opts-global.c.
487 (option_enabled, get_option_state): Handle CLVC_DEFER.
488 * opts.h: Include vec.h.
489 (enum cl_var_type): Add CLVC_DEFER.
490 (cl_deferred_option): Define type and vectors.
491 (handle_common_deferred_options): Declare.
492 * opts-global.c: New.
493 * toplev.c (toplev_main): Call handle_common_deferred_options
494 * Makefile.in (OPTS_H): Include $(VEC_H).
495 (OBJS-common): Include opts-global.o.
496 (opts.o): Update dependencies.
497 (opts-global.o): Add dependencies.
499 2010-11-19 Nicola Pero <nicola.pero@meta-innovation.com>
501 * c-parser.c (c_parser_objc_protocol_definition): Pass attributes
502 to objc_declare_protocols.
504 2010-11-19 Richard Guenther <rguenther@suse.de>
507 * lto-streamer-out.c (lto_output_ts_common_tree_pointers): For
508 IDENTIFIERs do not stream TREE_TYPE.
509 * lto-streamer-in.c (lto_input_ts_common_tree_pointers): Likewise.
511 2010-11-19 Christian Borntraeger <borntraeger@de.ibm.com>
513 * config/s390/s390.c (s390_function_arg_integer): Handle NULLPTR_TYPE.
515 2010-11-19 Jakub Jelinek <jakub@redhat.com>
518 * dwarf2out.c (const_ok_for_output_1): Don't complain about
519 non-delegitimized TLS UNSPECs.
521 2010-11-18 Jack Howarth <howarth@bromo.med.uc.edu>
522 Ian Lance Taylor <iant@google.com>
524 * config/darwin-c.c (darwin_additional_format_types): Export.
526 2010-11-18 Paul Koning <ni1d@arrl.net>
528 * config/pdp11/pdp11.h (FIRST_PARM_OFFSET): Fix case of no frame
531 2010-11-18 Paul Koning <ni1d@arrl.net>
533 * config/pdp11/pdp11.md (abshi2): Delete TARGET_ABSHI_BUILTIN.
534 * config/pdp11/pdp11.c (TARGET_DEFAULT_TARGET_FLAGS): Ditto.
535 * config/pdp11/pdp11.opt (-mabshi): Delete.
537 2010-11-19 Mingjie Xing <mingjie.xing@gmail.com>
539 * resource.h (struct resources): Fix typo in the comment.
541 2010-11-19 Uros Bizjak <ubizjak@gmail.com>
544 * config/i386/i386.c (ix86_reorg): Call compute_bb_for_insn.
546 2010-11-18 Richard Henderson <rth@redhat.com>
549 * function.c (maybe_copy_prologue_epilogue_insn): Rename from
550 maybe_copy_epilogue_insn; handle prologue insns as well.
551 * rtl.h, cfglayout.c: Update for rename.
552 * recog.c (peep2_attempt): Copy prologue/epilogue data for
553 RTX_FRAME_RELATED_P insns.
555 2010-11-18 Jakub Jelinek <jakub@redhat.com>
558 * builtins.c (fold_builtin_printf): Don't copy and modify string
559 before build_string_literal, instead modify what
560 build_string_literal returned.
562 2010-11-18 Nathan Froyd <froydnj@codesourcery.com>
565 * c-typeck.c (build_unary_op): Call build_real_imag_expr for
566 REALPART_EXPR and IMAGPART_EXPR.
568 2010-11-18 Richard Guenther <rguenther@suse.de>
570 PR tree-optimization/46172
571 * tree-vect-loop-manip.c (remove_dead_stmts_from_loop): New
573 (slpeel_tree_peel_loop_to_edge): Call it.
575 2010-11-18 Jeff Law <law@redhat.com>
577 PR middle-end-optimization/46297
578 * postreload.c (reload_combine_note_store): Deal with embedded
579 side effects in MEM expressions.
581 2010-11-18 Richard Guenther <rguenther@suse.de>
584 * dwarf2out.c (add_AT_die_ref): Work around LTO losing types
585 when checking is not enabled.
587 2010-11-18 Richard Guenther <rguenther@suse.de>
590 * gimple.c (gimple_register_type): Update TYPE_MAIN_VARIANT of
592 (gimple_register_canonical_type): Also cache the canoncial type
593 for non type leaders.
595 2010-11-18 Richard Guenther <rguenther@suse.de>
597 * lto-wrapper.c (run_gcc): Fix -flto=N parsing.
599 2010-11-18 Alexander Monakov <amonakov@ispras.ru>
602 * sel-sched-ir.c (init_expr): Use the correct type for
604 * sel-sched.c (fill_vec_av_set): Use explicitly signed char type.
606 2010-11-17 Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
608 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Support -fpic
609 as well as -mrelocatable at the same time.
611 2010-11-17 Quentin Neill <quentin.neill.gnu@gmail.com>
614 * config/i386/bmiintrin.h (__lzcnt_u16, __lzcnt_u32, __lzcnt_u64):
615 Call the clz builtin.
617 2010-11-17 Dinar Temirbulatov <dtemirbulatov@gmail.com>
618 Steve Ellcey <sje@cup.hp.com>
621 * varasm.c (categorize_decl_for_section): Ignore reloc_rw_mask
622 if section attribute used.
624 2010-11-17 Jan Hubicka <jh@suse.cz>
626 * builtins.c (expand_builtin_mathfn_2, expand_builtin_mathfn): Do not
627 expand errno setting variant when optimizing for size.
629 2010-11-17 Eric Botcazou <ebotcazou@adacore.com>
631 * postreload.c (reload_combine): Call control_flow_insn_p only once.
632 Reverse backward loop. Fix formatting issues.
634 2010-11-17 Paolo Bonzini <bonzini@gnu.org>
636 * c-parser.c (c_token_is_qualifier,
637 c_parser_next_token_is_qualifier): New.
638 (c_parser_declaration_or_fndef, c_parser_struct_declaration):
639 Improve error message on specs->tagdef_seen_p.
640 (c_parser_struct_or_union_specifier): Improve error recovery.
641 (c_parser_declspecs): Move exit condition on C_ID_ID early.
642 Reorganize exit condition for C_ID_TYPENAME/C_ID_CLASSNAME
643 using c_parser_next_token_is_qualifier; extend it to cover
644 a ctsk_tagdef typespec and !typespec_ok in general.
646 2010-11-17 Richard Guenther <rguenther@suse.de>
648 * value-prof.c (gimple_divmod_fixed_value_transform): Update the stmt.
649 (gimple_mod_pow2_value_transform): Likewise.
650 (gimple_mod_subtract_transform): Likewise.
652 2010-11-17 Richard Guenther <rguenther@suse.de>
655 * gimple.c (gimple_register_canonical_type): Make sure to only
656 make type leaders canonical types.
658 2010-11-17 Michael Matz <matz@suse.de>
660 * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE,
661 TV_POSTRELOAD, TV_REMOVE_UNUSED, TV_ADDRESS_TAKEN, TV_TODO,
662 TV_VERIFY_LOOP_CLOSED, TV_VERIFY_RTL_SHARING,
663 TV_REBUILD_FREQUENCIES, TV_REPAIR_LOOPS): New.
664 * tree-into-ssa.c (rewrite_into_ssa): Don't push/pop timevar here ...
665 (pass_build_ssa): ... but here.
666 * cgraphbuild.c (pass_rebuild_cgraph): Use timevar.
667 * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Use timevar.
668 * tree-emutls.c (pass_ipa_lower_emutls): Ditto.
669 * df-core.c (pass_df_initialize_opt, pass_df_initialize_no_opt): Ditto.
670 * predict.c (rebuild_frequencies): Ditto.
671 * tree-vectorizer.c (pass_ipa_increase_alignment): Ditto.
672 * emit-rtl.c (verify_rtl_sharing): Ditto.
673 * tree-cfgcleanup.c (repair_loop_structures): Ditto.
674 * tree-ssa-live.c (remove_unused_locals): Ditto.
675 * cfglayout.c (pass_into_cfg_layout, pass_outof_cfg_layout): Ditto.
676 * tree-ssa.c (pass_early_warn_uninitialized,
677 execute_update_addresses_taken, pass_update_address_taken): Ditto.
678 * tree-optimize.c (pass_all_optimizations, pass_early_local_passes,
679 pass_cleanup_cfg_post_optimizing, tree_rest_of_compilation): Ditto.
680 * passes.c (pass_postreload, execute_todo): Ditto.
681 * tree-ssanames.c (pass_release_ssa_names): Ditto.
683 2010-11-17 Joseph Myers <joseph@codesourcery.com>
685 * doc/invoke.texi (-dy): Remove.
686 * langhooks-def.h (lhd_do_nothing_i): Don't declare.
687 (LANG_HOOKS_PARSE_FILE): Define to lhd_do_nothing.
688 * langhooks.c (lhd_do_nothing_i): Remove.
689 * langhooks.h (lang_hooks.parse_file): Take no arguments.
690 * toplev.c (set_yydebug): Remove.
691 (compile_file): Update call to lang_hooks.parse_file.
692 (decode_d_option): Don't handle -dy.
694 2010-11-17 Jakub Jelinek <jakub@redhat.com>
696 PR rtl-optimization/46440
697 * combine.c (update_cfg_for_uncondjump): When changing
698 an indirect jump into unconditional jump, remove BARRIERs
701 2010-11-17 Joseph Myers <joseph@codesourcery.com>
703 * opts.c (target_handle_option): Do not assert that loc ==
706 2010-11-17 Jakub Jelinek <jakub@redhat.com>
707 Richard Guenther <rguenther@suse.de>
710 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
711 call_may_clobber_ref_p_1): Return true for __sync_* and some
712 OpenMP builtins that act as threading barriers.
714 2010-11-17 Richard Guenther <rguenther@suse.de>
716 PR tree-optimization/46498
717 * tree-ssa-dce.c (perform_tree_ssa_dce): Compute dominator info.
719 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
721 * config/xtensa/xtensa.c (function_arg_boundary): Really rename to...
722 (xtensa_function_arg_boundary): ...this.
723 * config/picochip/pichochip.c (picochip_function_arg_boundary): Fix
724 thinko in declaration.
725 (picochip_function_arg, picochip_arg_partial_bytes): Pass proper
726 number of parameters to picochip_function_arg_boundary.
727 (picochip_arg_advance): Likewise.
729 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
732 * config/pa/pa.c (pa_function_arg_boundary): Move TYPE_SIZE accesses
733 under check for type.
735 2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
737 * ifcvt.c (dead_or_predicable): Fix typo.
739 2010-11-16 Richard Henderson <rth@redhat.com>
741 * config.gcc [s390*-*] (extra_options): Add fused-madd.opt.
742 * config/s390/s390.opt (mfused-madd): Remove.
743 * config/s390/s390.c (s390_rtx_costs): Handle FMA.
744 (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
745 * config/s390/s390.md (fma<DSF>4): Rename from *fmadd<DSF>; use FMA.
746 (fms<DSF>4): Rename from *fmsub<DSF>; use FMA.
748 2010-11-16 Richard Henderson <rth@redhat.com>
750 * config.gcc [powerpc*, rs6000*] (extra_options): Add fused-madd.opt.
751 * config/rs6000/rs6000.opt (mfused-madd): Remove.
752 * config/rs6000/altivec.md (altivec_vmaddfp): Remove.
753 (*altivec_vmaddfp_1): Remove.
754 (*altivec_fmav4sf4): Rename from altivec_vmaddfp_2; use FMA.
755 (altivec_mulv4sf3): Expand to FMA directly.
756 (*altivec_vnmsubfp): Rename from altivec_vnmsubfp.
757 (*altivec_vnmsubfp_1, *altivec_vnmsubfp_2): Remove.
758 * config/rs6000/paired.md (paired_madds0): Use FMA.
759 (paired_madds1): Likewise.
760 (*paired_madd): Rename from paired_madd; use FMA.
761 (*paired_msub, *paired_nmadd, *paired_nmsub): Similarly.
762 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
763 consider TARGET_FUSED_MADD wrt rs6000_recip_control.
764 (bdesc_3arg): Update CODE_FOR_* for pattern renames.
765 (rs6000_emit_madd): Use fma_optab.
766 (rs6000_emit_msub): Use fms_optab.
767 (rs6000_emit_nmsub): Expand the FMA pattern directly.
768 * config/rs6000/rs6000.md (FMA_F): New mode iterator.
769 (*fmasf4_fpr): Rename from fmasf4_fpr.
770 (*nfmasf4_fpr): Rename from *fnmasf4_fpr.
771 (*nfmssf4_fpr): Rename from *fnmssf4_fpr.
772 (*fmaddsf4_powerpc, *fmaddsf4_power, *fmsubsf4_powerpc): Remove.
773 (*fmsubsf4_power, *fnmaddsf4_powerpc_1, *fnmaddsf4_powerpc_2): Remove.
774 (*fnmaddsf4_power_1, *fnmaddsf4_power_2, *fnmsubsf4_powerpc_1): Remove.
775 (*fnmsubsf4_powerpc_2, *fnmsubsf4_power_1, *fnmsubsf4_power_2): Remove.
776 (*fmadf4_fpr): Rename from fmadf4_fpr.
777 (*nfmadf4_fpr): Rename from *fnmadf4_fpr.
778 (*nfmsdf4_fpr): Rename from *fnmsdf4_fpr.
779 (*fmadddf4_fpr, *fmsubdf4_fpr, *fnmadddf4_fpr_1): Remove.
780 (*fnmadddf4_fpr_2, *fnmsubdf4_fpr_1, *fnmsubdf4_fpr_2): Remove.
781 (fmasf4, fmadf4): Macroize into...
782 (fma<FMA_F>4): ... here.
783 (fms<FMA_F>4, fnma<FMA_F>4, fnms<FMA_F>4): New.
784 (nfma<FMA_F>4, nfms<FMA_F>4): New.
785 * config/rs6000/vector.md (mul<VEC_F>3): Do not depend on
787 * config/rs6000/vsx.md (vsx_fmadd<VSX_B>4): Remove.
788 (*vsx_fmadd<mode>4_1): Remove.
789 (vsx_fmsub<mode>4, *vsx_fmsub<mode>4_1): Remove.
790 (vsx_fnmadd<mode>4_1, vsx_fnmadd<mode>4_2): Remove.
791 (vsx_fnmsub<mode>4_1, vsx_fnmsub<mode>4_2): Remove.
792 (*vsx_fma<mode>4): Rename from vsx_fmadd<mode>4_2.
793 (*vsx_fms<mode>4): Rename from vsx_fmsub<mode>4_2.
794 (*vsx_nfma<mode>4): Rename from vsx_fnmadd<mode>4.
795 (*vsx_nfms<mode>4): Rename from vsx_fnmsub<mode>4.
797 2010-11-16 Richard Henderson <rth@redhat.com>
799 * config/pa/pa.md (fmadf4): Rename from unnamed; use FMA.
800 (fmasf4, fnmadf4, fnmasf4): Likewise.
801 (unnamed plus+mult insns and splitters): Delete.
803 2010-11-16 Richard Henderson <rth@redhat.com>
805 * config/spu/spu.md (fma<VSF>4): Rename from fma_<VSF>.
806 (fnma<VSF>4): Rename from fnms_<VSF>.
807 (fms<VSF>4): Rename from fms_<VSF>.
808 (fma<VDF>4): Rename from fma_<VDF>.
809 (fms<VDF>4): Rename from fms_<VDF>.
810 (nfma<VDF>4): Rename from fnma_<VDF>.
811 (nfms<VDF>4): Rename from fnms_<VDF>.
812 (fnma<VDF>4, fnms<VDF>4): New expanders.
813 (floatunsdisf2): Update for the renames.
814 (*div<VSF>3_fast, *div<VSF>3_adjusted): Likewise.
815 * config/spu/spu-builtins.def: Update CODE_FOR_* for the renames.
817 2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
819 PR rtl-optimization/46490
820 * combine.c (expand_compound_operation): Fix thinko.
822 2010-11-16 Richard Henderson <rth@redhat.com>
825 * recog.c (peep2_attempt): Convert frame-related info when possible.
826 (peep2_fill_buffer): Allow frame-related insns into the buffer.
827 (peephole2_optimize): Allow peep2_attempt to fail.
829 2010-11-16 Eric Botcazou <ebotcazou@adacore.com>
831 PR rtl-optimization/46315
832 * rtl.h (remove_reg_equal_equiv_notes_for_regno): Declare.
833 * rtlanal.c (remove_reg_equal_equiv_notes_for_regno): New function
835 * dce.c (delete_corresponding_reg_eq_notes): ...here. Rename into...
836 (remove_reg_equal_equiv_notes_for_defs): ...this.
837 (delete_unmarked_insns): Adjust to above renaming.
838 * ifcvt.c (dead_or_predicable): Remove REG_EQUAL and REG_EQUIV notes
839 referring to registers set in the insns being moved, if any.
841 * df-core.c (df_ref_dump): New function extracted from...
842 (df_refs_chain_dump): ...here. Call it.
843 (df_regs_chain_dump): Likewise.
844 * df-problems.c (df_chain_dump): Print 'e' for uses in notes.
845 * df-scan.c (df_scan_start_dump): Likewise. Fix long line.
847 2010-11-16 Andreas Schwab <schwab@linux-m68k.org>
849 PR rtl-optimization/46395
850 * postreload.c (reload_combine): Invalidate register use
851 information on all control flow insns.
853 * config/m68k/m68k.c (m68k_delegitimize_address): Also expect
854 LABEL_REF in UNSPEC operand.
856 2010-11-16 Jan Hubicka <jh@suse.cz>
858 * cgraph.h (+varpool_can_remove_if_no_refs): Move here from ...;
859 when !flag_toplevel_reorder do not remove unless variable is
860 COMDAT or ARTIFICIAL.
861 * ipa.c (varpool_can_remove_if_no_refs): ... here.
862 (cgraph_remove_unreachable_nodes): Only analyzed nodes needs to stay.
863 * cgraphunit.c (cgraph_analyze_functions): Dump varpool, too.
864 * varpool.c (decide_is_variable_needed): Do not handle visibility
866 (varpool_finalize_decl): Likewise.
867 (varpool_remove_unreferenced_decls): Use varpool_mark_needed_node;
868 update outdated comment on DECL_RTL_SET_P check.
870 2010-11-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
872 * config/sol2.h (NM_FLAGS): Define.
873 * doc/tm.texi.in (Macros for Initialization, NM_FLAGS): Document.
874 * doc/tm.texi: Update.
876 2010-11-16 Nick Clifton <nickc@redhat.com>
878 * config/v850/v850.md (maddsf4): Rename to fmasf4 and use fma rtx_code.
879 (msubsf4): Rename to fmssf4, and use fma.
880 (nmaddsf4): Rename to fnmasf4 and use fma.
881 (nmsubsf4): Rename to fnmssf4 and use fma.
883 2010-11-16 Joern Rennecke <amylaar@spamcop.net>
886 * config/score/score3.c (score3_return_in_memory): Constify arguments.
887 (score3_in_small_data_p, score3_function_value): Likewise.
888 (score3_trampoline_init): Use LCT_NORMAL.
889 (score3_print_operand): Initialize code as UNKNOWN.
890 * config/score/predicates.md (score_load_multiple_operation):
891 Remove unused variable.
892 (score_store_multiple_operation): Likewise.
893 * config/score/score7.c (score7_return_in_memory): Constify arguments.
894 (score7_in_small_data_p, score7_function_value): Likewise.
895 (score7_trampoline_init): Use LCT_NORMAL.
896 (score7_print_operand): Initialize code as UNKNOWN.
897 * config/score/score3.h (score3_return_in_memory): Update prototype.
898 (score3_in_small_data_p, score3_function_value): Likewise.
899 * config/score/score-protos.h (score_function_value): Likewise.
900 * config/score/score7.h (score7_return_in_memory): Update prototype.
901 (score7_in_small_data_p, score7_function_value): Likewise.
902 * config/score/score.c (TARGET_PROMOTE_PROTOTYPES): Constify.
903 (score_return_in_memory, score_pass_by_reference): Constify arguments.
904 (score_output_mi_thunk, score_function_prologue): Don't return a value.
905 (score_function_epilogue, score_in_small_data_p): Likewise.
906 (score_option_override, score_asm_trampoline_template): Likewise.
907 (score_trampoline_init, score_print_operand): Likewise.
908 (score_print_operand_address, score_prologue): Likewise.
909 (score_epilogue, score_call, score_call_value): Likewise.
910 (score_movsicc, score_movdi, score_zero_extract_andi): Likewise.
911 (score_function_arg_advance): Likewise. Make static.
912 (score_asm_file_end): Mark parameter value with ATTRIBUTE_UNUSED.
913 (score_function_arg, score_legitimate_address_p): Make static.
914 (score_function_value): Mark parameter func with ATTRIBUTE_UNUSED.
915 * config/score/score.h (REGNO_REG_CLASS): Cast value to enum reg_class.
916 * config/score/score-conv.h (UIMM_IN_RANGE, SIMM_IN_RANGE):
917 Allow (W) == HOST_BITS_PER_WIDE_INT.
920 * config/pdp11/t-pdp11 (java/constants.o-warn): Remove.
921 * config/t-pnt16-warn (java/constants.o-warn): Likewise.
923 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
925 * config/arc/arc.c: Delete pasto.
926 * config/pa/pa.c (pa_function_arg_boundary): Add missing comparison.
928 2010-11-16 Anatoly Sokolov <aesok@post.ru>
930 * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS,
931 PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
932 * config/mn10300/mn10300.c (TARGET_PREFERRED_RELOAD_CLASS,
933 TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
934 (mn10300_preferred_reload_class,
935 mn10300_preferred_output_reload_class): New functions.
937 2010-11-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
939 * gensupport.c (MNEMONIC_ATTR_NAME, MNEMONIC_HTAB_SIZE): New macros.
940 (htab_eq_string, add_mnemonic_string, gen_mnemonic_setattr)
941 (mnemonic_htab_callback, gen_mnemonic_attr): New functions.
942 (init_rtx_reader_args_cb): Invoke gen_mnemonic_attr.
944 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
946 * builtins.c (std_gimplify_va_arg_expr): Use
947 targetm.calls.function_arg_boundary.
948 * function.c (assign_parms, locate_and_pad_parm): Likewise.
949 * calls.c (struct arg_data): Update comment.
950 * defaults.h (FUNCTION_ARG_BOUNDARY): Delete.
951 * target.def (function_arg_boundary): Define.
952 * targhooks.h (default_function_arg_boundary): Declare.
953 * targhooks.c (default_function_arg_boundary): Define.
954 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Use
955 TARGET_FUNCTION_ARG_BOUNDARY.
956 (FUNCTION_ARG_BOUNDARY): Delete.
957 (TARGET_FUNCTION_ARG_BOUNDARY): New.
958 * doc/tm.texi: Regenerate.
959 * system.h (FUNCTION_ARG_BOUNDARY): Poison.
960 * config/arc/arc.h (FUNCTION_ARG_BOUNDARY): Delete.
961 * config/arc/arc.c (arc_function_arg_boundary): Define.
962 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
963 * config/arm/arm.h (FUNCTION_ARG_BOUNDARY): Delete.
964 * config/arm/arm-protos.h (arm_needs_doubleword_align): Delete.
965 * config/arm/arm.c (arm_needs_doubleword_align): Make static.
966 (arm_function_arg_boundary): Define.
967 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
968 * config/frv/frv.h (FUNCTION_ARG_BOUNDARY): Delete.
969 * config/frv/frv-protos.h (frv_function_arg_boundary): Delete.
970 * config/frv/frv.c (frv_function_arg_boundary): Make static.
971 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
972 * config/i386/i386.h (FUNCTION_ARG_BOUNDARY): Delete.
973 * config/i386/i386-protos.h (ix86_function_arg_boundary): Delete.
974 * config/i386/i386.c (ix86_function_arg_boundary): Make static.
975 (ix86_compat_function_arg_boundary): Take and return unsigned int.
976 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
977 * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Delete.
978 * config/ia64/ia64-protos.h (ia64_function_arg_boundary): Delete.
979 * config/ia64/ia64.c (ia64_function_arg_boundary): Make static.
980 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
981 * config/m32c/m32c.h (FUNCTION_ARG_BOUNDARY): Delete.
982 * config/m32c/m32c.c (m32c_function_arg_boundary): Define.
983 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
984 * config/m32r/m32r.h (FUNCTION_ARG_BOUNDARY): Delete.
985 * config/mcore/mcore.h (FUNCTION_ARG_BOUNDARY): Delete.
986 * config/mcore/mcore.c (mcore_function_arg_boundary): Define.
987 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
988 * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Delete.
989 * config/mips/mips-protos.h (mips_function_arg_boundary): Delete.
990 * config/mips/mips.c (mips_function_arg_boundary): Make static.
991 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
992 * config/pa/pa.h (FUNCTION_ARG_BOUNDARY): Delete.
993 * config/pa/pa.c (pa_function_arg_boundary): Define.
994 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
995 * config/picochip/picochip.h (FUNCTION_ARG_BOUNDARY): Delete.
996 * config/picochip/picochip-protos.h
997 (picochip_get_function_arg_boundary): Delete.
998 * config/picochip/picochip.c (picochip_get_function_arg_boundary):
1000 (picochip_function_arg_boundary): ...this. Make static.
1001 (picochip_function_arg, picochip_arg_partial_bytes): Adjust.
1002 (picochip_arg_advance): Adjust.
1003 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1004 * config/rs6000/rs6000.h (FUNCTION_ARG_BOUNDARY): Delete.
1005 * config/rs6000/rs6000-protos.h (function_arg_boundary): Delete.
1006 * config/rs6000/rs6000.c (function_arg_boundary): Rename to...
1007 (rs6000_function_arg_boundary): ...this. Make static.
1008 (rs6000_parm_start, rs6000_gimplify_va_arg): Adjust.
1009 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1010 * config/rx/rx.h (FUNCTION_ARG_BOUNDARY): Delete.
1011 * config/rx/rx.c (rx_function_arg_boundary): Define.
1012 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1013 * config/sparc/sparc.h (FUNCTION_ARG_BOUNDARY): Delete.
1014 * config/sparc/sparc.c (sparc_function_arg_boundary): Define.
1015 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1016 * config/xtensa/xtensa.h (FUNCTION_ARG_BOUNDARY): Delete.
1017 * config/xtensa/xtensa-protos.h (function_arg_boundary): Delete.
1018 * config/xtensa/xtensa.c (function_arg_boundary): Rename to...
1019 (xtensa_function_arg_boundary): ...this. Make static.
1020 (TARGET_FUNCTION_ARG_BOUNDARY): Define.
1022 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1024 * expr.c (alignment_for_piecewise_move): New function.
1025 (widest_int_mode_for_size): New function.
1026 (move_by_pieces, move_by_pieces_ninsns): Call them.
1027 (can_store_by_pieces, store_by_pieces_1): Likewise.
1029 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1031 * gcc.c (char_p): Define. Define a VEC of it.
1032 (n_linker_options, n_assembler_options, n_preprocessor_options):
1034 (linker_options, assembler_options, preprocessor_options): Convert
1036 (add_preprocessor_option): Adjust.
1037 (add_assembler_option): Adjust.
1038 (add_linker_option): Adjust.
1039 (do_specs_vec): New function.
1040 (do_spec_1): Call it. Adjust for new types.
1042 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1044 * Makefile.in (bitmap.o, ebitmap.o, et-forest.o): Update dependencies.
1045 (sreal.o, statistics.o, stringpool.o): Likewise.
1047 2010-11-16 Richard Guenther <rguenther@suse.de>
1049 PR tree-optimization/44545
1050 * tree-ssa-reassoc.c (linearize_expr_tree): Possibly throwing
1051 statements are not reassociatable.
1052 (reassociate_bb): Likewise.
1054 2010-11-16 Nathan Froyd <froydnj@codesourcery.com>
1056 * bitmap.c: Delete unnecessary includes.
1057 * ebitmap.c: Likewise.
1058 * et-forest.c: Likewise.
1059 * sreal.c: Likewise.
1060 * statistics.c: Likewise.
1061 * stringpool.c: Likewise.
1062 * double-int.c: Add comment for inclusion of tm.h.
1064 2010-11-16 Richard Guenther <rguenther@suse.de>
1066 * tree-ssa-sccvn.c (visit_unary_op): Rename to ...
1067 (visit_nary_op): ... this.
1068 (visit_binary_op): Remove.
1069 (visit_use): Adjust and handle GIMPLE_TERNARY_RHS.
1071 2010-11-16 Richard Guenther <rguenther@suse.de>
1074 * tree-eh.c (cleanup_empty_eh_unsplit): Avoid creating duplicate edges.
1076 2010-11-16 Nick Clifton <nickc@redhat.com>
1078 * config/rx/rx.c (rx_is_ms_bitfield_layout): Return false if the
1081 2010-11-15 Richard Henderson <rth@redhat.com>
1083 * fold-const.c (operand_equal_for_comparison_p): Handle FMA_EXPR,
1084 WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR, VEC_COND_EXPR and
1087 2010-11-15 Richard Henderson <rth@redhat.com>
1089 * config/mn10300/mn10300.md (fmasf4, fmssf4, fnmasf4, fnmssf4): Rename
1090 from fmaddsf4, fmsubsf4, fnmaddsf4, fnmsubsf4 respectively. Use
1093 2010-11-15 Richard Henderson <rth@redhat.com>
1095 * config/frv/frv.md (fmasf4, fmssf4): Rename from *muladdsf4
1096 and *mulsubsf4 respectively. Use fma rtx_code.
1098 2010-11-15 Joseph Myers <joseph@codesourcery.com>
1100 * gcc.c: Include "vec.h".
1101 (argbuf): Make into a VEC.
1102 (argbuf_length, argbuf_index): Remove.
1103 (alloc_args, clear_args, store_arg, execute, insert_wrapper,
1104 do_spec, do_self_spec, do_spec_1, eval_spec_function, main,
1105 compare_debug_dump_opt_spec_function: Use VEC interfaces on argbuf.
1106 * Makefile.in (GCC_OBJS): Add vec.o and ggc-none.o.
1107 (gcc.o): Depend on $(VEC_H).
1109 2010-11-15 Richard Henderson <rth@redhat.com>
1111 * loop-unroll.c (analyze_insn_to_expand_var): Accept accumulation
1112 via FMA if unsafe math.
1113 (insert_var_expansion_initialization): Handle FMA.
1114 (combine_var_copies_in_loop_exit): Likewise.
1116 2010-11-15 Richard Henderson <rth@redhat.com>
1118 * config.gcc [ia64-*] (extra_options): Add fused-madd.opt.
1119 * config/ia64/ia64.opt: Remove mfused-madd.
1120 * config/ia64/ia64.c (ia64_rtx_costs): Handle FP MULT, PLUS, FMA.
1121 * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_FUSED_MADD.
1122 * config/ia64/vms64.h (TARGET_DEFAULT): Likewise.
1123 * config/ia64/ia64.h (TARGET_DEFAULT): Likewise.
1124 * config/ia64/hpux.h (TARGET_DEFAULT): Likewise.
1125 * config/ia64/vect.md (addv2sf3, subv2sf3): Generate FMA.
1126 (*addv2sf3_1, *addv2sf3_2, *subv2sf3_1, *subv2sf3_2): Remove.
1127 (fmav2sf4): Rename from fpma; use FMA code.
1128 (fmsv2sf4): Rename from fpms; use FMA code.
1129 (fnmav2sf4): Rename from *fpnma; use FMA code.
1130 * config/ia64/ia64.md (MODE_SDF): New iterator.
1131 (suffix): New mode attribute.
1132 (*maddsf4, *msubsf4, *nmaddsf4): Remove.
1133 (fmssf4): Rename from *fmssf4.
1134 (fnmasf4): Rename from *nfmasf4.
1135 (*madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc): Remove.
1136 (*nmadddf4, *nmadddf4_truncsf): Remove.
1137 (fmsdf4): Rename from *fmsdf4.
1138 (fnmadf4): Rename from *nfmadf4.
1139 (*fmadf_trunc_sf, *fmsdf_trunc_sf, *fnmadf_trunc_sf): New.
1140 (*maddxf4, *maddxf4_truncsf, *maddxf4_truncdf): Remove.
1141 (*msubxf4, *msubxf4_truncsf, *msubxf4_truncdf): Remove.
1142 (*nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf): Remove.
1143 (fmsxf4): Rename from *fmsxf4.
1144 (fnmaxf4): Rename from *nfmaxf4.
1145 (*fmaxf_trunc_<MODE_SDF>, *fmsxf_trunc_<MODE_SDF>): New.
1146 (*fnmaxf_trunc_<MODE_SDF>): New.
1148 2010-11-15 Jakub Jelinek <jakub@redhat.com>
1150 PR tree-optimization/46461
1151 * tree-ssa-forwprop.c (simplify_builtin_call): Ensure ptr1 is
1154 2010-11-15 Ian Lance Taylor <iant@google.com>
1156 * godump.c: New file.
1157 * common.opt (fdump-go-spec=): New option.
1158 * tree.h: Add comments for TYPE_SYMTAB_ADDRESS and friends.
1159 (TYPE_SYMTAB_IS_ADDRESS, TYPE_SYMTAB_IS_POINTER): Define.
1160 (TYPE_SYMTAB_IS_DIE): Define.
1161 (struct tree_type): Change GTY for symtab field to use
1162 TYPE_SYMTAB_IS_ADDRESS and friends and to use a debug_hooks field
1163 to pick the union field.
1164 * debug.h (struct gcc_debug_hooks): Add tree_type_symtab_field.
1165 (dump_go_spec_init): Declare.
1166 * toplev.c (process_options): Handle flag_dump_go_spec.
1167 * debug.c: Include "tree.h".
1168 (do_nothing_debug_hooks): Set tree_type_symtab_field.
1169 * dwarf2out.c (dwarf2_debug_hooks): Likewise.
1170 * dbxout.c (dbx_debug_hooks): Likewise.
1171 (xcoff_debug_hooks): Likewise.
1172 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
1173 * sdbout.c (sdb_debug_hooks): Likewise. Do not define if
1174 SDB_DEBUGGING_INFO is not defined.
1175 * doc/invoke.texi (Option Summary): Mention -fdump-go-spec.
1176 (Overall Options): Document -fdump-go-spec.
1177 * Makefile.in (OBJS-common): Add godump.o.
1178 (debug.o): Add dependency on $(TREE_H).
1179 (godump.o): New target.
1180 (GTFILES): Add $(srcdir)/godump.c.
1182 2010-11-15 Jakub Jelinek <jakub@redhat.com>
1185 * config/i386/i386.c (pro_epilogue_adjust_stack): Instead of
1186 marking r11 set RTX_FRAME_RELATED_P if offset is too large for
1187 style < 0, add REG_FRAME_RELATED_EXPR.
1190 * rtl.h (vt_equate_reg_base_value): New prototype.
1191 * alias.c (vt_equate_reg_base_value): New function.
1192 * var-tracking.c (vt_init_cfa_base): Use it.
1194 2010-11-15 Jan Hubicka <jh@suse.cz>
1195 Diego Novillo <dnovillo@google.com>
1198 * doc/lto.texi: Add.
1199 * doc/gccint.texi: Add reference to lto.texi.
1200 * doc/invoke.texi: Update user documentation for LTO.
1201 Move internal flags to lto.texi
1203 2010-11-15 Nicola Pero <nicola.pero@meta-innovation.com>
1205 * c-typeck.c (build_unary_op): Use
1206 objc_build_incr_expr_for_property_ref to build the pre/post
1207 increment/decrement of an Objective-C property ref, and skip the
1208 lvalue_or_else check in that case.
1210 2010-11-15 Martin Jambor <mjambor@suse.cz>
1212 PR tree-optimization/46349
1213 * tree-sra.c (contains_bitfld_comp_ref_p): New function.
1214 (contains_vce_or_bfcref_p): Likewise.
1215 (sra_modify_assign): Use them.
1217 2010-11-15 Richard Guenther <rguenther@suse.de>
1219 PR tree-optimization/46467
1220 * tree-ssa-structalias.c (do_structure_copy): Properly treat
1221 variables without subvars.
1223 2010-11-15 Hariharan Sandanagobalane <hariharan@picochip.com>
1225 * config/picochip/picochip.c (file header): Picochip name change.
1226 * config/picochip/picochip.md (file header): Likewise.
1227 * config/picochip/predicates.md (file header): Likewise.
1228 * config/picochip/dfa_space.md (file header): Likewise.
1229 * config/picochip/dfa_speed.md (file header): Likewise.
1230 * config/picochip/picochip.h(file header): Likewise.
1231 * config/picochip/constraints.md (file header): Likewise.
1232 * config/picochip/picochip-protos.h (file header): Likewise.
1233 * config/picochip/libgccExtras/setjmp.asm (file header): Likewise.
1234 * config/picochip/libgccExtras/divmodsi4.asm (file header): Likewise.
1235 * config/picochip/libgccExtras/ashlsi3.asm (file header): Likewise.
1236 * config/picochip/libgccExtras/longjmp.asm (file header): Likewise.
1237 * config/picochip/libgccExtras/ashlsi3.c (file header): Likewise.
1238 * config/picochip/libgccExtras/popcounthi2.asm (file header): Likewise.
1239 * config/picochip/libgccExtras/parityhi2.asm (file header): Likewise.
1240 * config/picochip/libgccExtras/udivmodhi4.asm (file header): Likewise.
1241 * config/picochip/libgccExtras/ashrsi3.asm (file header): Likewise.
1242 * config/picochip/libgccExtras/ashrsi3.c (file header): Likewise.
1243 * config/picochip/libgccExtras/ucmpsi2.asm (file header): Likewise.
1244 * config/picochip/libgccExtras/divmodhi4.asm (file header): Likewise.
1245 * config/picochip/libgccExtras/lshrsi3.asm (file header): Likewise.
1246 * config/picochip/libgccExtras/subdi3.asm (file header): Likewise.
1248 2010-11-15 Richard Guenther <rguenther@suse.de>
1251 * tree-ssa-math-opts.c (convert_mult_to_fma): Disregard debug stmts.
1253 2010-11-15 Nick Clifton <nickc@redhat.com>
1255 * config/stormy16/stormy16.c (direct_return): Do not generate a
1256 direct return for interrupt handlers.
1258 2010-11-15 Joern Rennecke <amylaar@spamcop.net>
1260 * Makefile.in (tm.texi): Replace with rule for:
1261 ($(srcdir)/doc/tm.texi).
1262 (s-tm-texi): Depend on $(srcdir)/doc/../doc/tm.texi instead of on
1263 $(srcdir)/doc/tm.texi .
1264 (TEXI_GCCINT_FILES): Depend on $(srcdir)/doc/tm.texi instead of on
1268 * config/m32r/m32r.c: Remove unused variables frame_size and insn.
1271 * config/arm/arm.c (locate_neon_builtin_icode): Initialize key.
1272 (arm_output_asm_insn) Add ATTRIBUTE_PRINTF_4.
1275 * config/v850/v850.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
1277 2010-11-15 Richard Guenther <rguenther@suse.de>
1280 * lto-opts.c (lto_write_options): Write -fexceptions even if
1281 not set by the user.
1283 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1286 * c-decl.c (declspecs_add_type): Make variables with error types
1288 * c-parser.c (c_parser_next_tokens_start_declaration): Two IDs
1289 do not start a declaration before an Objective-C foreach.
1290 (c_parser_declaration_or_fndef): Improve recovery after unknown
1292 (c_parser_for_statement): Hoist entrance of "foreach context"
1293 before ifs, add corresponding reset where it was missing. Do
1294 not set objc_could_be_foreach_context for C.
1296 2010-11-14 Eric Botcazou <ebotcazou@adacore.com>
1298 PR tree-optimization/45722
1299 * tree-sra.c (build_ref_for_model): Always build a COMPONENT_REF if
1300 this is a reference to a component.
1301 * ipa-prop.c (ipa_get_member_ptr_load_param): Accept COMPONENT_REF.
1302 (ipa_note_param_call): Adjust comment.
1304 2010-11-14 Richard Sandiford <rdsandiford@googlemail.com>
1306 * config/mips/mips.c (machine_function): Remove
1307 initialized_mips16_gp_pseudo_p.
1308 (mips16_gp_pseudo_reg): Use cfun->machine->mips16_gp_pseudo_rtx to
1309 detect whether a pseudo has already been created. Unconditionally
1310 create a new one if not.
1311 (mips_pic_base_register): Only call mips16_gp_pseudo_reg when
1312 expanding to rtl. Create a new pseudo otherwise, if allowed.
1314 2010-11-13 Richard Earnshaw <rearnsha@arm.com>
1317 * tm.texi.in (OVERLAPPING_REGISTER_NAMES): Document new macro.
1318 * tm.texi: Regenerated.
1319 * output.h (decode_reg_name_and_count): Declare.
1320 * varasm.c (decode_reg_name_and_count): New function.
1321 (decode_reg_name): Reimplement using decode_reg_name_and_count.
1322 * reginfo.c (fix_register): Use decode_reg_name_and_count and
1323 iterate over all regs used.
1324 * stmt.c (expand_asm_operands): Likewise.
1325 * arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
1326 (ADDITIONAL_REGISTER_NAMES): Remove aliases that overlap
1327 multiple machine registers.
1329 2010-11-13 Eric Botcazou <ebotcazou@adacore.com>
1331 * stor-layout.c (place_union_field): Do not put location information
1332 on offset expressions.
1333 (place_field): Likewise.
1334 (finalize_record_size): Likewise on size expressions.
1335 (finalize_type_size): Likewise.
1336 (layout_type): Likewise.
1338 2010-11-13 Alexandre Oliva <aoliva@redhat.com>
1341 * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
1342 * df-core.c (df_set_bb_dirty_nonrl): Remove.
1343 * df.h (df_set_bb_dirty_nonlr): Likewise.
1345 2010-11-13 Uros Bizjak <ubizjak@gmail.com>
1347 * config/mips/mips.md (call_internal): Pass curr_insn to
1349 (call_internal_direct): Ditto.
1350 (call_value_internal): Ditto.
1351 (call_value_internal_direct): Ditto.
1352 (call_value_multiple_internal): Ditto.
1353 * config/mips/mips.c (mips_split_call): Do not copy
1354 CALL_INSN_FUNCTION_USAGE here.
1356 2010-11-13 Mingming Sun <mingm.sun@gmail.com>
1358 * doc/invoke.texi (MIPS Options): Add loongson3a processor.
1359 * config/mips/mips.md (define_attr "cpu"): Add loongson_3a.
1360 (define_insn "prefetch"): Add TARGET_LOONGSON_3A.
1361 * config/mips/mips.h (TARGET_LOONGSON_3A): Define.
1362 (TUNE_LOONGSON_3A): Define.
1363 (TARGET_LOONGSON_VECTORS): Add TARGET_LOONGSON_3A.
1364 (MIPS_ISA_LEVEL_SPEC): Add loongson3a.
1365 * config/mips/mips.c (mips_cpu_info_table): Add loongson3a.
1366 (mips_issue_rate): Add PROCESSOR_LOONGSON_3A.
1367 (mips_rtx_cost_data): Add Loongson-3A.
1369 2010-11-13 Iain Sandoe <iains@gcc.gnu.org>
1371 * config/darwin.h (LINK_COMMAND_SPEC_A): Update for changes to lto
1374 2010-11-13 Iain Sandoe <iains@gcc.gnu.org>
1376 * dwarf2out.c (macinfo_entry): New struct.
1377 (output_comp_unit): Emit the section start label here and flag that we
1378 will emit an info section.
1379 (dwarf2out_start_source_file): Save data in a macinfo entry rather than
1381 (dwarf2out_end_source_file): Likewise.
1382 (dwarf2out_define): Likewise.
1383 (dwarf2out_undef): Likewise.
1384 (output_macinfo): New.
1385 (dwarf2out_init): Do not emit debug section switches here, allocate a
1386 vec for macinfo, when required.
1387 (dwarf2out_finish): First switch to debug_abbrev_section here.
1388 debug_line_section, debug_macinfo_section, Likewise.
1389 Check that the pubtypes table has at least one unpruned entry before
1392 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1395 * c-parser.c (c_parser_next_token_starts_declaration): Rename to...
1396 (c_parser_next_tokens_start_declaration): ... this. Handle 2nd
1398 (c_parser_compound_statement_nostart, c_parser_label,
1399 c_parser_for_statement, c_parser_omp_for_loop): Adjust calls.
1400 (c_parser_declaration_or_fndef): Detect the case now matched by
1401 c_parser_next_tokens_start_declaration, give error and correct it.
1403 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1405 * c-tree.h (enum c_typespec_kind): Add ctsk_none.
1406 (struct c_declspecs): Replace tagdef_seen_p and type_seen_p
1408 * c-decl.c (build_null_declspecs): Initialize typespec_kind.
1409 (shadow_tag_warned, check_compound_literal_type): Adjust
1410 uses of tag_defined_p.
1411 (declspecs_add_type): Set typespec_kind.
1412 * c-parser.c (c_parser_declaration_or_fndef,
1413 c_parser_declspecs, c_parser_struct_declaration,
1414 c_parser_parameter_declaration, c_parser_type_name,
1415 c_parser_objc_diagnose_bad_element_prefix): Adjust uses
1417 * c-typeck.c (c_cast_expr): Use typespec_kind instead of
1418 tag_defined_p, pass ctsk_firstref through.
1420 2010-11-13 Paolo Bonzini <bonzini@gnu.org>
1422 * c-format.c (enum format_specifier_kind, kind_descriptions): New.
1423 (struct format_wanted_type): Replace field "name" with "kind", add
1424 "format_start" and "format_length".
1425 (check_format_info_main): Fill in new fields. Fill in
1426 FORMAT_WANTED_TYPES even for missing arguments. Move checks
1427 after the final NUL outside the while loop. Do not include
1428 width and precision modifiers in the format_start/format_length
1430 (check_format_types): Remove FORMAT_START and FORMAT_LENGTH
1431 arguments. Compute WANTED_TYPE first so that format_type_warning
1432 can be called for missing arguments. Adjust calls to
1433 format_type_warning.
1434 (format_type_warning): Fetch as much information as possible
1435 from format_wanted_type. Adjust printing now that every
1436 warning has a "descr", as well as for missing argument warnings
1437 and to include % sign for format specifiers.
1439 2010-11-12 Alexander Monakov <amonakov@ispras.ru>
1441 PR rtl-optimization/46204
1442 * sel-sched-ir.c (maybe_tidy_empty_bb): Remove second argument.
1443 Update all callers. Do not recompute topological order. Adjust
1444 fallthrough edges following a degenerate conditional jump.
1446 2010-11-12 Joseph Myers <joseph@codesourcery.com>
1448 * opts-common.c (control_warning_option): New.
1449 * opts.c (set_default_handlers): New.
1450 (decode_options): Use set_default_handlers and
1451 control_warning_option.
1452 (common_handle_option): Update call to enable_warning_as_error.
1453 (enable_warning_as_error): Take gcc_options parameters. Use
1454 control_warning_option.
1455 * opts.h (set_default_handlers, control_warning_option): Declare.
1457 2010-11-12 Joseph Myers <joseph@codesourcery.com>
1459 * Makefile.in (OPTS_H): Define.
1460 (c-decl.o, c-family/c-common.o, c-family/c-opts.o,
1461 c-family/c-pch.o, c-family/c-pragma.o, gcc.o, gccspec.o,
1462 cppspec.o, options.o, gcc-options.o, lto-opts.o, opts.o,
1463 opts-common.o, toplev.o, passes.o, matrix-reorg.o,
1464 ipa-struct-reorg.o, PLUGIN_HEADERS): Use $(OPTS_H).
1465 * gcc.c (driver_handle_option): Take location_t parameter.
1466 (process_command, do_self_spec): Update calls to
1467 read_cmdline_option.
1468 * langhooks-def.h (lhd_handle_option): Take location_t parameter.
1469 * langhooks.c (lhd_handle_option): Take location_t parameter.
1470 * langhooks.h (handle_option): Take location_t parameter.
1471 * lto-opts.c (lto_reissue_options): Update call to set_option.
1472 * opts-common.c (handle_option): Make static. Take location_t
1473 parameter and pass it to other functions.
1474 (handle_generated_option): Take location_t parameter and pass it
1476 (read_cmdline_option): Take location_t parameter and pass it to
1477 other functions. Use warning_at and error_at.
1478 (set_option): Take location_t parameter and pass it to other
1480 * opts.c (common_handle_option): Take location_t parameter and
1481 pass it to other functions.
1482 (enable_warning_as_error): Make static. Take location_t parameter
1483 and pass it to other functions.
1484 (lang_handle_option): Take location_t parameter and pass it to
1486 (target_handle_option): Take location_t parameter.
1487 (read_cmdline_options, maybe_default_option,
1488 maybe_default_options, default_options_optimization,
1489 decode_options): Take location_t parameter and pass it to other
1491 * opts.h: Include input.h.
1492 (struct cl_option_handler_func, decode_options, set_option,
1493 handle_generated_option, read_cmdline_option): Take location_t
1495 (handle_option, enable_warning_as_error): Remove.
1496 * toplev.c (toplev_main): Update call to decode_options.
1498 2010-11-12 Tobias Grosser <grosser@fim.uni-passau.de>
1500 * graphite-cloog-util.c (oppose_constraint,
1501 cloog_matrix_to_ppl_constraint,
1502 new_Constraint_System_from_Cloog_Matrix): Explicitly cast to int as
1503 CLooG isl uses unsigned integers. This triggered a warning.
1505 2010-11-12 Joern Rennecke <amylaar@spamcop.net>
1508 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Use LCT_NORMAL.
1509 (xtensa_setup_frame_addresses, xtensa_trampoline_init): Likewise.
1510 (xtensa_function_arg_1): De-constify cum.
1511 (xtensa_expand_prologue): Use add_reg_note.
1514 * config/cris/cris.c (saved_regs_mentioned): Delete.
1515 (cris_reload_address_legitimized): Cast itype to enum reload_type.
1516 Remove unused variable op0p.
1517 (cris_rtx_costs): Cast argument 2 to rtx_cost to enum rtx_code.
1518 (cris_emit_movem_store): Use add_reg_note.
1521 * cppbuiltin.c (define_builtin_macros_for_type_sizes): Split assert.
1523 2010-11-12 Eric Botcazou <ebotcazou@adacore.com>
1525 * function.c (expand_function_end): Set the locator of the prologue on
1526 the stack checking insns.
1528 2010-11-12 Richard Henderson <rth@redhat.com>
1530 * config.gcc [xtensa] (extra_options): Add fused-madd.opt.
1531 * config/xtensa/xtensa.opt (mfused-madd): Remove.
1532 * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
1534 * config/xtensa/xtensa.md (fmasf4): Rename from muladdsf3; use fma.
1535 (fnmasf4): Rename from mulsubsf3; use fma.
1537 2010-11-12 Joern Rennecke <amylaar@spamcop.net>
1538 Richard Henderson <rth@redhat.com>
1541 * config/moxie/moxie.c (moxie_expand_prologue): Remove unused variables.
1542 * config/moxie/moxie.h (HARD_REGNO_OK_FOR_BASE_P): Use unsigned
1545 2010-11-12 Pat Haugen <pthaugen@us.ibm.com>
1547 * opts-common.c (decode_cmdline_option): Initialize separate_args.
1549 2010-11-12 Jan Hubicka <jh@suse.cz>
1551 * doc/invoke.texi (early-inlining-insns): Update default.
1552 * params.def (early-inlining-insns): Default to 10.
1554 2010-11-12 Olivier Hainque <hainque@adacore.com>
1556 * config/rs6000/aix.h: #undef TARGET_AIX_OS before #define.
1558 2010-11-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1560 * config/mips/iris6.h [!IRIX_USING_GNU_LD]
1561 (SUPPORTS_INIT_PRIORITY): Define.
1563 2010-11-12 Joern Rennecke <amylaar@spamcop.net>
1566 * config/avr/avr-protos.h (avr_return_addr_rtx): Update prototype.
1567 * config/avr/driver-avr.c (avr_device_to_arch): Always return value.
1568 (avr_device_to_data_start, avr_device_to_startfiles): Likewise.
1569 (avr_device_to_devicelib): Likewise.
1570 * config/avr/avr.md (zero_extendqihi2): Put variable declarations
1572 (zero_extendqisi2, zero_extendhisi2, zero_extendqidi2): Likewise.
1573 (zero_extendhidi2, zero_extendsidi2): Likewise.
1574 * config/avr/avr.c (avr_num_arg_regs): Constify type.
1575 (avr_return_addr_rtx): De-constify tem.
1576 (avr_rotate_bytes): Move declarations to start of block.
1577 Don't use variable length array. Put nested if/else into block.
1579 PR rtl-optimization/46433
1580 * var-tracking.c: Include tm_p.h .
1584 * doc/tm.texi.in (LOCAL_ALIGNMENT): State that the type, if any,
1586 (STACK_SLOT_ALIGNMENT, LOCAL_DECL_ALIGNMENT, PUSH_ROUNDING): Likewise.
1587 * doc/tm.texi: Regenerate.
1590 * config/bfin/bfin-protos.h (bfin_local_alignment): Update prototype.
1591 * config/bfin/bfin.c: Include sel-sched.h .
1592 (bfin_cpus): Use BFIN_CPU_UNKNOWN for last initializer element.
1593 (expand_interrupt_handler_prologue): Remove unused variable insn.
1594 (bfin_load_pic_reg): Likewise.
1595 (bfin_rtx_costs): Make code / outer_code variables of type
1596 enum rtx_code, copied from re-named parameters.
1597 (bfin_local_alignment): Change align argument and return type
1599 (bfin_adjust_cost): Remove unused variable insn_type.
1600 Declare variables at start of block.
1601 (struct loop_info): Rename to...
1602 (struct loop_info_d).
1603 (workaround_rts_anomaly): Change type of icode to int.
1604 (harmless_null_pointer_p): Cast REGNO (..) to int before comparison
1605 with int-typed variable.
1606 (note_np_check_stores): Likewise.
1607 (trapping_loads_p): Remove unused variable pat.
1608 (bfin_expand_binop_builtin): Use expand_normal.
1609 (bfin_expand_unop_builtin): Likewise.
1610 (bfin_expand_builtin): Likewise. Set tmode before use.
1613 * final.c (split_double): Don't use BITS_PER_WORD directly in
1617 * config/fr30/fr30.md (*movsf_constant_store): Remove duplicated
1621 * config/stormy16/stormy16.c (xstormy16_expand_prologue):
1623 (xstormy16_function_arg): Dereference cum.
1624 (xstormy16_expand_builtin): Use expand_normal.
1625 Change type of omode to enum machine_mode.
1626 (combine_bnp): Rename and to and_insn.
1629 * config/mcore/mcore.c (layout_mcore_frame): Remove unused variable
1632 2010-11-12 Eric Botcazou <ebotcazou@adacore.com>
1635 * emit-rtl.c (remove_insn): Do not mark BBs upon debug insns.
1637 2010-11-11 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
1640 * lto-symtab.c (lto_symtab_resolve_replaceable_p): Use DECL_ONE_ONLY.
1642 2010-11-11 Nathan Froyd <froydnj@codesourcery.com>
1645 * common.opt (fmax-errors=): New option.
1646 * opts.c (common_handle_option) [OPT_fmax_errors_]: Handle it.
1647 * diagnostic.h (struct diagnostic_context): Add max_errors field.
1648 * diagnostic.c (diagnostic_initialize): Initialize it.
1649 (diagnostic_action_after_output): Exit if more than max_errors
1651 * doc/invoke.texi (Warning Options): Add -fmax-errors.
1652 (-fmax-errors): Document.
1654 2010-11-11 Richard Henderson <rth@redhat.com>
1656 * optabs.c (init_optabs): Init {fma,fms,fnma,fnms}_optab properly.
1658 2010-11-11 Richard Henderson <rth@redhat.com>
1660 * config/fused-madd.opt: New file.
1661 * config.gcc [i386-*, x86_64-*] (extra_options): Use it.
1662 * config/i386/i386.c (ix86_extra_costs): Handle FMA.
1663 (TARGET_DEFAULT_TARGET_FLAGS): Remove MASK_FUSED_MADD.
1664 * config/i386/i386.opt (mfused-madd): Remove.
1665 * config/i386/sse.md (split_fma): Remove.
1666 (split_fms, split_fnma, split_fnms): Remove.
1668 2010-11-12 Jakub Jelinek <jakub@redhat.com>
1671 * config/i386/i386.md (*ashl<mode>3_cconly,
1672 *<shiftrt_insn><mode>3_cconly): Don't use ix86_binary_operator_ok,
1673 change nonimmediate_operand predicate to register_operand.
1675 2010-11-11 Paolo Bonzini <bonzini@gnu.org>
1677 * Makefile.in (gengtype-lex.c): Include bconfig.h first.
1679 2010-11-11 Jan Hubicka <jh@suse.cz>
1681 * opts.c (finish_options): Do not error on -flto-partition alone.
1683 * doc/invoke.texi (-fwhopr): Merge into -flto section.
1684 (-flto-partition): Document none.
1685 * gcc.c (LINK_COMMAND_SPEC): Remove -fwhopr.
1686 * lto-wrapper.c: Update comment.
1687 (run_gcc): Update LTO option parsing.
1688 * opts.c (finish_options): add support -flto-partition=none
1689 (common_handle_option): Remove fwhopr.
1690 * common.opt: Turn fwhopr into flto.
1691 * collect2.c (main): Update option handling.
1692 * cgraphunit.c (cgraph_decide_is_function_needed): Remove flag_whopr.
1693 * ipa-split.c (execute_split_functions): Remove flag_whopr.
1694 * ipa.c (function_and_variable_visibility): Remove flag_whopr.
1695 * ipa-prop.c (ipa_compute_jump_functions): Remove flag_whopr.
1696 * varpool.c (decide_is_variable_needed): Remove flag_whopr.
1698 2010-11-11 Jan Hubicka <jh@suse.cz>
1700 PR tree-optimize/40436
1701 * ipa-inline.c (likely_eliminated_by_inlining_p): Rename to ...
1702 (eliminated_by_inlining_prob): ... this one; return 50% probability
1704 (estimate_function_body_sizes): Update use of
1705 eliminated_by_inlining_prob; estimate static function size
1708 2010-11-11 Joern Rennecke <amylaar@spamcop.net>
1711 * config/mep/mep-protos.h (mep_legitimize_reload_address): Always
1712 declare. Change type of argument four to type int.
1713 (mep_secondary_input_reload_class): Returns enum reg_class.
1714 (mep_secondary_output_reload_class): Likewise.
1715 (mep_function_value): Change types of arguments to cont_tree.
1716 * config/mep/mep.c (mep_legitimize_reload_address): Change type of
1717 argument four to type int.
1718 (mep_secondary_input_reload_class): Returns enum reg_class.
1719 (mep_secondary_output_reload_class): Likewise.
1720 (mep_function_value): Change types of arguments to cont_tree.
1721 * config/mep/mep.h (REGNO_REG_CLASS): Cast return value of
1722 mep_regno_reg_class to enum reg_class.
1724 2010-11-11 Richard Henderson <rth@redhat.com>
1726 * tree-ssa-math-opts.c (convert_mult_to_fma): Do not verify
1727 that the target has the exact fma operation that we matched.
1729 2010-11-11 Joseph Myers <joseph@codesourcery.com>
1731 * reginfo.c (fix_register): Avoid inserting English word in
1732 diagnostic sentence. Use %qs for quoting and %'.
1734 2010-11-11 H.J. Lu <hongjiu.lu@intel.com>
1736 * config/i386/driver-i386.c (host_detect_local_cpu): Support
1737 Intel processor family 6, model 0x2c.
1739 2010-11-11 Joseph Myers <joseph@codesourcery.com>
1741 * opts.c (warning_as_error_callback,
1742 register_warning_as_error_callback): Remove.
1743 (enable_warning_as_error): Don't use warning_as_error_callback.
1744 * opts.h (register_warning_as_error_callback): Remove.
1746 2010-11-11 Richard Henderson <rth@redhat.com>
1748 * tree-ssa-math-opts.c (convert_mult_to_fma): Handle a NEGATE_EXPR
1749 in between the MULT and the PLUS/MINUS.
1751 2010-11-11 Jakub Jelinek <jakub@redhat.com>
1754 * expr.c (expand_assignment): If to_rtx is a VOIDmode MEM, use
1755 BLKmode mode for it.
1756 (expand_expr_real_1): Similarly for op0.
1758 2010-11-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1760 * doc/sourcebuild.texi (LTO Testing, dg-suppress-ld-options):
1761 Document optional target selector.
1763 2010-11-11 Dave Korn <dave.korn.cygwin@gmail.com>
1765 * lto-streamer-out.c (write_symbol): Use int_size_in_bytes rather than
1766 assembling high and low parts of size if not using 32-bit HWINT; else
1767 use DECL_SIZE_UNITS, not DECL_SIZE.
1769 2010-11-11 Martin Jambor <mjambor@suse.cz>
1771 PR tree-optimization/46383
1772 * ipa-prop.c (compute_complex_assign_jump_func): Ignore negative
1774 (compute_complex_ancestor_jump_func): Likewise.
1775 * tree.c (get_binfo_at_offset): Return NULL_TREE if offset is negative.
1777 2010-11-11 Jakub Jelinek <jakub@redhat.com>
1780 * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return
1781 true if expr1->hash != expr2->hash.
1783 2010-11-10 Joseph Myers <joseph@codesourcery.com>
1785 * cfgloop.c (verify_loop_structure): Use %' in diagnostics. Start
1786 diagnostics with lowercase letters.
1787 * cgraphunit.c (verify_cgraph_node): Start diagnostics with
1789 * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from
1791 * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1792 * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with
1794 * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1795 Remove trailing ' ' from diagnostic.
1796 * config/avr/avr.c (print_operand_address): Start diagnostic with
1797 a lowercase letter and remove trailing '.'.
1798 * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text.
1799 * config/bfin/bfin.c (bfin_option_override): Start diagnostics
1800 with lowercase letters. Use %' in diagnostics. Remove trailing
1801 '.' from diagnostics.
1802 (bfin_handle_longcall_attribute): Use %' in diagnostic.
1803 * config/cris/cris.c (cris_split_movdx,
1804 cris_expand_pic_call_address): Start diagnostics with lowercase
1806 (cris_asm_output_label_ref): Use %' in diagnostic.
1807 * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase
1809 * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a
1811 * config/darwin-c.c (version_as_macro): Start diagnostic with a
1813 * config/darwin-driver.c (darwin_default_min_version): Use %' in
1815 * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in
1817 * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1818 * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in
1820 * config/i386/i386.c (ix86_option_override_internal): Write
1821 diagnostic as a single sentence without trailing '.'. Use %' in
1823 (ix86_function_sseregparm, classify_argument): Start diagnostics
1824 with lowercase letters.
1825 (ix86_expand_prologue): Use %' in diagnostic.
1826 * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from
1828 * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a
1830 * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in
1832 * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1833 * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid
1835 * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a
1837 * config/mep/mep.c (mep_validate_vliw): Start diagnostics with
1839 * config/microblaze/microblaze.c (microblaze_handle_option):
1840 Remove trailing '.' from diagnostic.
1841 (print_operand): Start diagnostic with a lowercase letter.
1842 * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with
1843 lowercase letters. Avoid '`' in diagnostics.
1844 * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with
1845 lowercase letters. Avoid '`' in diagnostics.
1846 * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with
1847 lowercase letters. Avoid '`' in diagnostics.
1848 * config/picochip/picochip.c (picochip_option_override,
1849 picochip_emit_save_register, picochip_function_arg,
1850 picochip_output_label, picochip_output_internal_label,
1851 picochip_asm_output_opcode, picochip_output_cbranch,
1852 picochip_output_compare, picochip_output_branch,
1853 picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from
1854 diagnostics. Start diagnostics with lowercase letters. Use %' in
1856 * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
1857 "SPE" capitalization. Start diagnostic with a lowercase letter.
1858 (rs6000_handle_option): Start diagnostics with lowercase letters.
1859 (def_builtin): Remove trailing '.' from diagnostic.
1860 (rs6000_savres_routine_name): Start diagnostic with a lowercase
1862 * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in
1864 * config/rx/rx.c (rx_handle_option): Start diagnostic with a
1866 * config/s390/s390.c (s390_option_override) Start diagnostics with
1867 lowercase letters. Use %' in diagnostic.
1868 * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with
1870 * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in
1872 * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in
1874 * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in
1876 * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic.
1877 * config/spu/spu.c (spu_option_override): Start diagnostics with
1878 lowercase letters. Use %qs for quoting in diagnostics.
1879 (spu_check_builtin_parm): Remove trailing '.' from diagnostics.
1880 Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic .
1881 * config/v850/v850.c (construct_save_jarl): Remove trailing '\n'
1883 * convert.c (convert_to_integer, convert_to_vector): Use %' in
1885 * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase
1886 letter and use "cannot" spelling.
1887 * expmed.c (extract_fixed_bit_field): Start diagnostic with
1888 lowercase letter and format as a single sentence without '.'.
1889 * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore):
1890 Use %' in diagnostics.
1891 * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
1892 Use %' in diagnostics.
1893 * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read):
1894 Use %' in diagnostics.
1895 * graph.c (clean_graph_dump_file): Use %' in diagnostic.
1896 * graphite-poly.c (graphite_read_scop_file): Start diagnostics
1897 with lowercase letters and remove tailing '.' and '\n'.
1898 * lto-cgraph.c (input_profile_summary): Start diagnostic with
1899 lowercase letter and remove trailing '.'.
1900 (input_cgraph): Start diagnostics with lowercase letters and
1901 remove trailing '\n'.
1902 * opts.c (finish_options, common_handle_option): Start diagnostics
1903 with lowercase letters and remove trailing '.'. Fix typo in
1905 * passes.c (position_pass): Start diagnostic with lowercase letter.
1906 * plugin.c (add_new_plugin, parse_plugin_arg_opt,
1907 register_callback, try_init_one_plugin): Start diagnostics with
1909 * reload1.c (spill_failure): Use %' in diagnostic.
1910 (gen_reload): Start diagnostic with a lowercase letter.
1911 * stor-layout.c (place_field): Start diagnostic with a lowercase
1913 * toplev.c (open_auxiliary_file): Use %' in diagnostic.
1914 * tree-cfg.c (verify_expr, verify_types_in_gimple_reference,
1915 verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node):
1916 Start diagnostics with lowercase letters, remove trailing '.' and
1917 use %' in diagnostics.
1918 * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic.
1919 (verify_ssa): Don't split diagnostic across two error calls.
1920 Spell out "number" and use %' in diagnostic.
1921 * value-prof.c (visit_hist, check_counter): Start diagnostics with
1924 2010-11-10 Uros Bizjak <ubizjak@gmail.com>
1927 * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Swap __hisi and __losi.
1928 (_mm_cvtpu16_ps): Ditto.
1930 2010-11-10 Joseph Myers <joseph@codesourcery.com>
1932 * common.opt (flag_excess_precision_cmdline, flag_generate_lto,
1933 warn_larger_than, larger_than_size, warn_frame_larger_than,
1934 frame_larger_than_size, flag_gen_aux_info, flag_shlib,
1935 default_visibility, flag_tls_default): New Variable declarations.
1936 (aux-info, auxbase, dumpbase, dumpdir, falign-functions=,
1937 falign-jumps=, falign-labels=, falign-loops=, o, v): Use Var.
1938 (v): Declare as Common and document here.
1939 * flags.h (default_visibility, flag_generate_lto,
1940 warn_larger_than, larger_than_size, warn_frame_larger_than,
1941 frame_larger_than_size, flag_gen_aux_info, flag_pedantic_errors,
1942 flag_shlib, flag_excess_precision_cmdline): Remove.
1943 (set_Wstrict_aliasing): Update prototype.
1944 * gcc.c (verbose_flag): Remove.
1945 (driver_handle_option): Add diagnostic_context parameter. Don't
1946 handle OPT_v explicitly here. Set verbose_flag to 1 rather than
1948 * opts-common.c (handle_option): Pass dc to handler.
1949 * opts.c (warn_larger_than, larger_than_size,
1950 warn_frame_larger_than, frame_larger_than_size,
1951 default_visibility): Remove.
1952 (common_handle_option): Add diagnostic_context parameter.
1953 (set_fast_math_flags, set_unsafe_math_optimizations_flags): Add
1954 gcc_options parameters.
1955 (lang_handle_option, target_handle_option, read_cmdline_options,
1956 decode_options): Add diagnostic_context parameters.
1957 (finish_options): Access option state through opts pointer where
1959 (common_handle_option): Access option state through opts pointer
1960 where possible. Do not set local static variable verbose. Do not
1961 explicitly handle OPT_v, OPT_Wstrict_aliasing_,
1962 OPT_Wstrict_overflow_, OPT_Wunused, OPT_auxbase, OPT_dumpbase,
1963 OPT_dumpdir, OPT_falign_functions_, OPT_falign_jumps_,
1964 OPT_falign_labels_, OPT_falign_loops_, OPT_fira_verbose_, OPT_o or
1965 OPT_fwhopr_. Do not explicitly set .opt file variables for
1966 OPT_aux_info or OPT_pedantic_errors. Use dc for diagnostic context.
1967 (set_Wstrict_aliasing): Add gcc_options parameter.
1968 * opts.h (struct cl_option_handler_func): Add diagnostic_context
1969 parameter to handler.
1970 (decode_options): Add diagnostic_context parameter.
1971 * toplev.c (dump_base_name, dump_dir_name, aux_base_name,
1972 asm_file_name, flag_generate_lto, flag_gen_aux_info,
1973 aux_info_file_name, flag_shlib, flag_tls_default,
1974 flag_excess_precision_cmdline, flag_pedantic_errors): Remove.
1975 (toplev_main): Pass global_dc to decode_options.
1976 * toplev.h (dump_base_name, dump_dir_name, aux_base_name,
1977 aux_info_file_name, asm_file_name): Remove.
1978 * tree.h (flag_tls_default): Remove.
1980 2010-11-10 Eric Botcazou <ebotcazou@adacore.com>
1982 * config/sparc/sparc.c (sparc_delegitimize_address): New function.
1983 (TARGET_DELEGITIMIZE_ADDRESS): Define to above.
1985 2010-11-10 Quentin Neill <quentin.neill.gnu@gmail.com>
1987 * config.gcc (i[34567]86-*-*): Include tbmintrin.h.
1988 (x86_64-*-*): Likewise.
1989 * config/i386/cpuid.h: Define TBM bit.
1990 * config/i386/driver-i386.c (host_detect_local_cpu): Define
1992 * config/i386/i386-c.c (ix86_target_macros_internal): Check
1994 * config/i386/i386.c (OPTION_MASK_ISA_TBM_SET): New.
1995 (OPTION_MASK_ISA_TBM_UNSET): New.
1996 (ix86_handle_option): Handle -mtbm.
1997 (isa_opts): Add -mtbm.
1998 (enum pta_flags): Add PTA_TBM.
1999 (ix86_option_override_internal): Add TBM support.
2000 (ix86_valid_target_attribute_inner_p): Handle -mtbm.
2001 (IX86_BUILTIN_BEXTRI32): New for TBM intrinsic.
2002 (IX86_BUILTIN_BEXTRI64): Likewise.
2003 (bdesc_args): Add TBM intrinsics.
2004 (ix86_expand_builtin): Add TBM specific case.
2005 * config/i386/i386.h (TARGET_TBM): New for TBM.
2006 * config/i386/i386.md (UNSPEC_BEXTRI): New for TBM.
2007 (tbm_bextri_<mode>): Likewise.
2008 (*tbm_blcfill_<mode>): Likewise.
2009 (*tbm_blci_<mode>): Likewise.
2010 (*tbm_blcic_<mode>): Likewise.
2011 (*tbm_blcmsk_<mode>): Likewise.
2012 (*tbm_blcs_<mode>): Likewise.
2013 (*tbm_blsfill_<mode>): Likewise.
2014 (*tbm_blsic_<mode>): Likewise.
2015 (*tbm_t1mskc_<mode>): Likewise.
2016 (*tbm_tzmsk_<mode>): Likewise.
2017 * config/i386/i386.opt: Add -mtbm.
2018 * config/i386/tbmintrin.h (__bextri_u32): New.
2019 (__blcfill_u32): Likewise.
2020 (__blci_u32): Likewise.
2021 (__blcic_u32): Likewise.
2022 (__blcmsk_u32): Likewise.
2023 (__blcs_u32): Likewise.
2024 (__blsfill_u32): Likewise.
2025 (__blsic_u32): Likewise.
2026 (__t1mskc_u32): Likewise.
2027 (__tzmsk_u32): Likewise.
2028 (__bextri_u64): Likewise.
2029 (__blcfill_u64): Likewise.
2030 (__blci_u64): Likewise.
2031 (__blcic_u64): Likewise.
2032 (__blcmsk_u64): Likewise.
2033 (__blcs_u64): Likewise.
2034 (__blsfill_u64): Likewise.
2035 (__blsic_u64): Likewise.
2036 (__t1mskc_u64): Likewise.
2037 (__tzmsk_u64): Likewise.
2038 * config/i386/x86intrin.h: Add TBM check and tbmintrin.h.
2039 * doc/invoke.texi: Document -mtbm.
2040 * doc/extend.texi: Document TBM built-in functions.
2042 2010-11-10 Quentin Neill <quentin.neill.gnu@gmail.com>
2044 * config.gcc (i[34567]86-*-*): Include bmiintrin.h.
2045 (x86_64-*-*): Likewise.
2046 * config/i386/cpuid.h: Define BMI bit.
2047 * config/i386/driver-i386.c (host_detect_local_cpu): Define
2049 * config/i386/i386-c.c (ix86_target_macros_internal): Check
2051 * config/i386/i386.c (OPTION_MASK_ISA_BMI_SET): New.
2052 (OPTION_MASK_ISA_BMI_UNSET): New.
2053 (ix86_handle_option): Handle -mbmi.
2054 (isa_opts): Add -mbmi.
2055 (enum pta_flags): Add PTA_BMI.
2056 (ix86_option_override_internal): Add BMI support.
2057 (ix86_valid_target_attribute_inner_p): Handle -mbmi.
2058 (IX86_BUILTIN_BEXTR32): New for BMI intrinsic.
2059 (IX86_BUILTIN_BEXTR64): Likewise.
2060 (IX86_BUILTIN_CTZS): Likewise.
2061 (bdesc_args): Add BMI intrinsics.
2062 (ix86_expand_args_builtin): Add BMI specific cases.
2063 * config/i386/i386.h (TARGET_BMI): New for BMI.
2064 (CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
2065 (CLZ_DEFINED_VALUE_AT_ZERO): Likewise.
2066 * config/i386/i386.md (UNSPEC_BEXTR): New for BMI.
2067 (UNSPEC_TZCNT): Likewise.
2068 (ctz<mode>2): Add tzcnt, and handle 16 bit operands.
2069 (bmi_andn_<mode>): New for BMI.
2070 (bmi_bextr_<mode>): Likewise.
2071 (bmi_blsi_<mode>): Likewise.
2072 (bmi_blsmsk_<mode>): Likewise.
2073 (bmi_blsr_<mode>): Likewise.
2074 * config/i386/i386.opt: Add -mbmi.
2075 * config/i386/x86intrin.h: Add BMI check and bmiintrin.h.
2076 * config/i386/bmiintrin.h (__lzcnt_u16): New.
2077 (__tzcnt_u16): Likewise.
2078 (__andn_u32): Likewise.
2079 (__bextr_u32): Likewise.
2080 (__blsi_u32): Likewise.
2081 (__blsmsk_u32): Likewise.
2082 (__blsr_u32): Likewise.
2083 (__lzcnt_u32): Likewise.
2084 (__tzcnt_u32): Likewise.
2085 (__andn_u64): Likewise.
2086 (__bextr_u64): Likewise.
2087 (__blsi_u64): Likewise.
2088 (__blsmsk_u64): Likewise.
2089 (__blsr_u64): Likewise.
2090 (__lzcnt_u64): Likewise.
2091 (__tzcnt_u64): Likewise.
2092 * doc/invoke.texi: Document -mbmi and -mno-bmi.
2093 * doc/extend.texi: Document BMI built-in functions.
2095 2010-11-10 Jan Hubicka <jh@suse.cz>
2097 PR tree-optimize/46228
2098 * doc/invoke.texi (comdat-sharing-probability): Document.
2099 * ipa-inline.c (cgraph_estimate_growth): Handle COMDATs
2100 * params.def (PARAM_COMDAT_SHARING_PROBABILITY): New param.
2102 2010-11-10 Jan Hubicka <jh@suse.cz>
2104 PR tree-optimize/46228
2105 * cgraph.c (cgraph_propagate_frequency): Fix typo.
2107 2010-11-10 H.J. Lu <hongjiu.lu@intel.com>
2109 PR tree-optimization/46414
2110 * tree-inline.c (estimate_move_cost): Check preferred vector
2111 mode for vector type.
2113 2010-11-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2115 * config/alpha/osf5.h (ASM_SPEC): Remove -nocpp.
2117 2010-11-10 Sebastian Pop <sebastian.pop@amd.com>
2119 PR tree-optimization/45971
2120 * tree-if-conv.c (predicate_scalar_phi): Do not generate a COND_EXPR
2121 for phi nodes analyzable by scev.
2123 2010-11-10 Richard Guenther <rguenther@suse.de>
2125 PR tree-optimization/44964
2126 * ipa-inline.c (cgraph_flatten): Check that SSA form matches.
2128 2010-11-10 Martin Jambor <mjambor@suse.cz>
2130 PR tree-optimization/46351
2131 PR tree-optimization/46377
2132 * tree-sra.c (type_internals_preclude_sra_p): Disqualify types with
2133 aggregate bit-fields.
2135 2010-11-10 Joseph Myers <joseph@codesourcery.com>
2137 * doc/tm.texi.in (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2138 * doc/tm.texi: Regenerate.
2139 * opts-common.c (tm.h): Don't include.
2140 (target_option_translations): Remove.
2141 (decode_cmdline_options_to_array): Don't handle translating options.
2142 * system.h (TARGET_OPTION_TRANSLATE_TABLE): Poison.
2143 * config/darwin-driver.c: Don't condition includes on
2144 CROSS_DIRECTORY_STRUCTURE.
2145 (darwin_default_min_version): Make static.
2146 (darwin_driver_init): New. Call darwin_default_min_version if not
2147 CROSS_DIRECTORY_STRUCTURE.
2148 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2149 (DRIVER_SELF_SPECS, DARWIN_CC1_SPEC): Define.
2150 (ASM_SPEC): Add %{static}.
2151 (darwin_default_min_version): Don't declare.
2152 (darwin_driver_init): Declare.
2153 (GCC_DRIVER_HOST_INITIALIZATION): Define to call
2154 darwin_driver_init, independent of CROSS_DIRECTORY_STRUCTURE.
2155 * config/darwin.opt (all_load, allowable_client,
2156 arch_errors_fatal, bind_at_load, bundle, bundle_loader,
2157 dead_strip, dependency-file, dylib_file, dynamic, dynamiclib,
2158 exported_symbols_list, filelist, findirect-virtual-calls,
2159 flat_namespace, force_cpusubtype_ALL, force_flat_namespace,
2160 framework, fterminated-vtables, gfull, gused, image_base, init,
2161 install_name, multi_module, multiply_defined,
2162 multiply_defined_unused, no_dead_strip_inits_and_terms,
2163 seg_addr_table, seg_addr_table_filename, segaddr,
2164 segs_read_only_addr, segs_read_write_addr, single_module,
2165 umbrella, unexported_symbols_list, weak_reference_mismatches,
2166 Zall_load, Zarch_errors_fatal, Zbind_at_load, Zbundle,
2167 Zdead_strip, Zdynamic, Zdynamiclib, Zflat_namespace,
2168 Zforce_cpusubtype_ALL, Zforce_flat_namespace, Zmulti_module,
2169 Zno_dead_strip_inits_and_terms, Zsingle_module): New.
2170 * config/i386/darwin.h (CC1_SPEC): Add DARWIN_CC1_SPEC.
2171 (ASM_SPEC): Add %{static}.
2172 (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
2173 * config/mep/mep.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2174 (DRIVER_SELF_SPECS): Handle options formerly in
2175 TARGET_OPTION_TRANSLATE_TABLE.
2176 * config/mep/mep.opt (mfar): New.
2177 * config/picochip/picochip.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2178 (DRIVER_SELF_SPECS): Define. Handle options formerly in
2179 TARGET_OPTION_TRANSLATE_TABLE.
2180 * config/rs6000/darwin.h (CC1_SPEC): Handle -faltivec and -fno-altivec.
2181 (SUBTARGET_OPTION_TRANSLATE_TABLE): Remove.
2182 * config/rs6000/darwin.opt (Waltivec-long-deprecated, faltivec,
2183 ffix-and-continue, findirect-data): New.
2184 * config/rx/rx.h (TARGET_OPTION_TRANSLATE_TABLE): Remove.
2185 * config/rx/rx.opt (nofpu): Make into alias of mnofpu.
2186 (mnofpu): Define mask and use Report here.
2188 2010-11-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2190 * config/s390/s390.c (s390_emit_prologue): Report the stack
2191 size if -fstack-usage is used.
2193 2010-11-10 Richard Guenther <rguenther@suse.de>
2195 PR tree-optimization/46398
2196 * tree-ssa-sccvn.c (process_scc): Iterate for all PHIs.
2198 2010-11-10 Joern Rennecke <amylaar@spamcop.net>
2201 * config/iq2000/iq2000.h (REGISTER_NAMES): Remove trailing semicolon.
2202 (REGNO_MODE_OK_FOR_BASE_P): Cast REGNO to int before passing it to
2203 GP_REG_OR_PSEUDO_STRICT_P.
2204 * config/iq2000/iq2000.md (andsi3+1): Add gcc_unreachable for
2205 unexpected alternative.
2206 (*movsf_internal): Likewise.
2207 (indirect_jump): Replace call to non-existant function with call to
2209 (tablejump): Likewise.
2210 * config/iq2000/iq2000.c: Include df.h .
2211 (iq2000_function_arg_advance): Use CONST_CAST2.
2212 (compute_frame_size, iq2000_expand_prologue): Remove unused variables.
2213 (iq2000_can_eliminate): Call leaf_function_p instead of testing for
2214 a non-zero function address.
2215 (iq2000_initial_elimination_offset): Add gcc_unreachable for
2216 unexpected value of FROM.
2217 (symbolic_expression_p): Delete.
2218 (iq2000_function_value): Constify func.
2219 (expand_one_builtin): Use expand_normal.
2220 (iq2000_print_operand): Don't print VALUE if calculating it failed.
2222 PR rtl-optimization/44764
2223 * addresses.h (ok_for_base_p_1): Mark regno with ATTRIBUTE_UNUSED.
2226 * config/rx/rx.h (REGISTER_NAMES): Remove trailing semicolon.
2227 * config/rx/rx.c (rx_promote_function_mode): Mark punsignedp
2228 with ATTRIBUTE_UNUSED.
2229 (valid_psw_flag): Constify parameter which.
2230 (rx_memory_move_cost): Change type of parameter regclass to reg_class_t.
2233 * config/mmix/mmix-protos.h (mmix_local_alignment): Update prototype.
2234 (mmix_dbx_register_number): Likewise.
2235 * config/mmix/mmix.c: Include df.h .
2236 (mmix_local_alignment): Change argument basic_align and return type
2238 (mmix_dbx_register_number): Change argument and return type to
2240 (mmix_expand_prologue): Use add_reg_note.
2243 * config/spu/spu.c (spu_expand_insv): Remove unused variables.
2244 (spu_split_store): Use aform.
2245 (spu_function_profiler): Mark parameter labelno with ATTRIBUTE_UNUSED.
2247 2010-11-10 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2250 * doc/gty.texi (GTY Options): Clarify that variable_size produces
2251 allocators taking size in bytes, compare with length option. Add
2252 size calculation example.
2253 (Invoking the garbage collector): Ensure that sentences are
2254 followed by two spaces. Describe that pointer fields must be
2255 initialized at ggc_collect call.
2256 (Troubleshooting): New section.
2258 2010-11-09 Jan Hubicka <jh@suse.cz>
2260 PR tree-optimization/40436
2261 * ipa-inline.c (leaf_node_p): Implement using is_inexpensive_builtin.
2262 * tree-inline.c (estimate_num_insns): Inexpensive builtins are like
2263 normal instructions; be sure bultin is not implemented in this file;
2264 compute non-zero return cost.
2265 (init_inline_once): Reduce builtin_call_cost to 1; set return cost.
2266 * tree-inline.h (eni_weights_d): Add return cost.
2268 2010-11-09 Joseph Myers <joseph@codesourcery.com>
2270 * c-parser.c (c_parser_struct_declaration): Handle declaration
2271 specifiers followed by CPP_CLOSE_BRACE.
2273 2010-11-09 Michael Meissner <meissner@linux.vnet.ibm.com>
2275 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Rewrite so
2276 split occurs before reload, and we allocate memory at the time of
2277 the split, not during expansion. Add attributes.
2278 (floatsi<mode>2_lfiwax_mem): Ditto.
2279 (floatunssi<mode>2_lfiwzx): Ditto.
2280 (floatunssi<mode>2_lfiwzx_mem): Ditto.
2281 (floatsidf2): Ditto.
2282 (floatunssisf2): Ditto.
2283 (floatunssidf2): Ditto.
2284 (fix_trunc<mode>si2): Ditto.
2285 (fix_trunc<mode>si2_stfiwx): Ditto.
2286 (fix_trunc<mode>si2_internal): Ditto.
2287 (fix_trunc<mode>si2): Ditto.
2288 (fix_trunc<mode>di2): Ditto.
2289 (fixuns_trunc<mode>si2_stfiwx): Ditto.
2290 (floatsisf2): Ditto.
2291 (floatdidf2_mem): Ditto.
2292 (floatunsdidf2_mem): Ditto.
2293 (floatunsdidf2): Ditto.
2294 (floatdisf2_internal1): Ditto.
2295 (floatdisf2_mem): Ditto.
2296 (floatunsdisf2_mem): Ditto.
2297 (floatsi<mode>2_lfiwax_mem2): Delete.
2298 (floatunssi<mode>2_lfiwzx_mem2): Ditto.
2299 (fix_trunc<mode>si2_mem): Ditto.
2300 (fixuns_trunc<mode>si2_mem): Ditto.
2301 (round32<mode>2_fprs): New combiner insn to combine (double)(int)
2302 type operations to reduce copying the values to multiple memory slots.
2303 (roundu32<mode>2_fprs): Ditto.
2305 * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Handle
2306 PRE_INC, PRE_DEC, PRE_MODIFY.
2307 (rs6000_expand_convert_si_to_sfdf): Delete, no longer used.
2309 * config/rs6000/rs6000-protos.h (rs6000_expand_convert_si_to_sfdf):
2312 2010-11-09 Jakub Jelinek <jakub@redhat.com>
2315 * cfgexpand.c (partition_stack_vars): Call
2316 update_alias_info_with_stack_vars unconditionally.
2317 (update_alias_info_with_stack_vars): Allow unused
2318 unreferenced vars when not optimizing.
2320 2010-11-09 Sebastian Pop <sebastian.pop@amd.com>
2322 PR tree-optimization/46036
2323 * tree-if-conv.c (predicate_bbs): Call unshare_expr before
2324 add_to_dst_predicate_list.
2326 2010-11-09 Jakub Jelinek <jakub@redhat.com>
2329 * df-problems.c (struct dead_debug_use, struct dead_debug): Move
2331 (df_set_unused_notes_for_mw, df_create_unused_note): Add DEBUG
2332 argument, call dead_debug_reset when adding REG_UNUSED note.
2333 (dead_debug_reset): New function.
2334 (df_note_bb_compute): Adjust df_set_unused_notes_for_mw and
2335 df_create_unused_note callers.
2337 2010-11-09 Anatoly Sokolov <aesok@post.ru>
2339 * config/fr30/fr30.c: Include "df.h".
2341 2010-11-09 Richard Guenther <rguenther@suse.de>
2343 PR tree-optimization/46355
2344 * tree-loop-distribution.c (tree_loop_distribution): Do not
2345 distribute loops without a single exit.
2347 2010-11-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2349 PR rtl-optimization/46237
2350 * ira-conflicts.c (ira_build_conflicts): Record conflicts for call
2351 saved hard regs if they might get partially clobbered.
2353 2010-11-09 Paul Koning <ni1d@arrl.net>
2355 * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Use add for decrement.
2357 2010-11-09 Richard Guenther <rguenther@suse.de>
2359 PR tree-optimization/46177
2360 * tree-loop-distribution.c (prop_phis): Remove.
2361 (generate_builtin): Re-use the old loop exit edge to avoid
2362 needing to update PHI nodes.
2364 2010-11-09 Joern Rennecke <amylaar@spamcop.net>
2366 * config/i386/i386.c (ix86_expand_split_stack_prologue): Change
2367 type of args_size to unsigned HOST_WIDE_INT.
2370 * config.gcc (picochip-*): Add t-pnt16-warn to tmake_file.
2371 * config/t-pnt16-warn: New file.
2372 * config/picochip/picochip.c (picochip_emit_stack_allocate):
2374 (picochip_emit_save_register): Likewise.
2375 (picochip_emit_restore_register): Remove variable insn.
2376 (picochip_legitimize_address): Don't use C++ style comments.
2377 (picochip_legitimize_reload_address): Likewise.
2378 (reorder_var_tracking_notes): Remove variable vliw_start.
2379 (picochip_reorg): Cast first arguemnt to emit_note_after to
2381 (picochip_expand_builtin_2op): Use EXPAND_NORMAL.
2382 (picochip_expand_builtin_3op): Likewise.
2383 (picochip_expand_builtin_2opvoid): Likewise.
2384 (picochip_expand_array_get, picochip_expand_array_put): Likewise.
2385 (picochip_expand_array_testport): Likewise.
2386 (picochip_init_builtins): Remove unused variables.
2387 * config/picochip/picochip.h (ASM_FORMAT_PRIVATE_NAME): Cast LABELNO
2388 to unsigned long, and output it as such.
2389 (ASM_OUTPUT_SKIP): Use HOST_WIDE_INT_PRINT_UNSIGNED.
2390 * config/picochip/picochip.md (movhicc): Remove nonsense statement.
2391 (schedType): Cast result of picochip_schedule_type to
2392 enum attr_schedType.
2395 * config/mn10300/mn10300.c (SIZE_FMOV_LIMIT): Promote all arms of
2396 conditional to type of S.
2397 (mn10300_function_arg): Remove unused variable align.
2398 (mn10300_arg_partial_bytes): Likewise.
2399 * config/mn10300/mn10300.md (attribute cpu): Cast value to
2402 2010-11-09 H.J. Lu <hongjiu.lu@intel.com>
2405 * gengtype-parse.c (type): Call get_input_file_name to get file name.
2407 2010-11-09 Eric Botcazou <ebotcazou@adacore.com>
2409 * tree.h (contains_placeholder_p): Fix comment.
2410 (type_contains_placeholder_p): Adjust comment.
2411 * tree.c (contains_placeholder_p): Fix comment.
2412 (type_contains_placeholder_1): Do not recurse on pointed-to types and
2414 (type_contains_placeholder_p): Add comment.
2416 2010-11-09 Paul Koning <ni1d@arrl.net>
2418 * config/pdp11/pdp11.c (pdp11_assemble_integer): Clean up fix for
2419 output of byte values.
2421 2010-11-09 Jakub Jelinek <jakub@redhat.com>
2424 * tree-ssa-propagate.c (update_call_from_tree): Fix for use
2427 2010-11-09 Richard Guenther <rguenther@suse.de>
2430 * varasm.c (compute_visible_aliases): New function.
2431 (remove_unreachable_alias_pairs): Aliases make a target available
2432 even though we reclaimed the cgraph node.
2433 (finish_aliases_1): Likewise.
2434 * Makefile.in (varasm.o): Add pointer-set.h dependency.
2436 2010-11-09 Nick Clifton <nickc@redhat.com>
2438 * config/mn10300/mn10300-modes.def: New file.
2440 2010-11-09 Basile Starynkevitch <basile@starynkevitch.net>
2441 Jeremie Salvucci <jeremie.salvucci@free.fr>
2443 * gengtype.c (get_output_file_name): Declaration moved to gengtype.h.
2444 (plugin_files, get_file_basename, get_file_realbasename)
2445 (get_file_langdir, error_at_line, gt_files, this_file)
2446 (system_h_file, read_input_list, create_field_all)
2447 (get_file_srcdir_relative_path, get_file_basename)
2448 (get_file_langdir, get_file_gtfilename)
2449 (get_output_file_with_visibility, get_output_file_name)
2450 (struct flist, put_mangled_filename, walk_type)
2451 (put_mangled_filename, finish_root_table, write_roots): Use
2453 (lang_dir_names, num_lang_dirs): Remove static.
2454 (get_lang_bitmap, set_lang_bitmap): Moved to gengtype.h.
2455 (main): Use input_file-s.
2457 * gengtype.h: (struct input_file_st, input_file): New type.
2458 (struct fileloc): Use it.
2459 (gt_files, num_gt_files, this_file, system_h_file)
2460 (input_file_by_name, get_file_srcdir_relative_path): Use input_file.
2461 (get_input_file_name): New function.
2462 (get_lang_bitmap, set_lang_bitmap): Moved from gengtype.c and
2464 (lang_dir_names, num_lang_dirs, get_output_file_with_visibility)
2465 (get_output_file_name): Ditto.
2467 * gengtype-lex.l (yybegin): Use input_file.
2469 * gengtype-parse.c (parse_error): Use input_file.
2471 2010-11-08 Xinliang David Li <davidxl@google.com>
2473 PR tree-optimization/46316
2474 * tree-vrp.c (adjust_range_with_scev): Check double_int overflow.
2475 * double-int.h (double_int_mul_with_sign): New function.
2476 * double-int.c (double_int_mul_with_sign): New function.
2478 2010-11-08 Paul Koning <ni1d@arrl.net>
2480 * config/pdp11/pdp11.md (lshrsi3, lshrhi3): Fix wrong code.
2482 2010-11-08 Paul Koning <ni1d@arrl.net>
2484 * config/pdp11/pdp11.md (negsi2): Fix wrong code.
2486 2010-11-08 Paul Koning <ni1d@arrl.net>
2488 * config/pdp11/pdp11.c (pdp11_assemble_integer): Mask byte values
2491 2010-11-08 Michael Meissner <meissner@linux.vnet.ibm.com>
2494 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
2495 turn on ISA 2.04 rounding instructions for power5.
2497 * config/rs6000/rs6000.md (friz): Friz is an ISA 2.04 instruciton,
2501 * config/rs6000/darwin.md (movdi_low): Allow DImode values to be
2503 (movdi_low_st): Ditto.
2505 2010-11-08 Joern Rennecke <amylaar@spamcop.net>
2506 Richard Henderson <rth@redhat.com>
2509 * config/frv/frv.md (attribute cpu): Cast value to enum attr_cpu.
2510 (attribute acc_group): Cast value to enum attr_acc_group.
2511 (*movdi_nodouble+6): Use gen_int_mode.
2512 * config/frv/frv-protos.h (frv_trampoline_size): Declare no matter
2513 if RTX_CODE is defined or not.
2514 * config/frv/frv.c (enum frv_io_type): New enum, broken out of
2516 (frv_handle_option): Mark parameter value with ATTRIBUTE_UNUSED.
2517 (frv_frame_access, frv_expand_prologue): Remove unused variables.
2518 (frv_expand_block_clear): Likewise.
2519 (frv_trampoline_init): Use LCT_NORMAL.
2520 (struct frv_packet_group): New struct, broken out of type of
2522 (frv_start_packet, frv_reorder_packet): Initialize group to GROUP_I,
2523 use cast in loop counter increment.
2524 (frv_extract_membar): Cast HOST_WIDE_INT to enum frv_io_type before
2525 assigning to io->type.
2526 (bdesc_set): Use rtx_code UNKNOWN in initializer.
2527 (bdesc_1arg, bdesc_2arg, bdesc_int_void2arg): Likewise.
2528 (bdesc_prefetches, bdesc_cut, bdesc_2argimm, bdesc_void2arg): Likewise.
2529 (bdesc_void3arg, bdesc_voidacc, bdesc_loads, bdesc_stores): Likewise.
2530 (frv_read_argument): Use expand_normal.
2533 * config/lm32/lm32.h (LEGITIMATE_CONSTANT_P): Call
2534 lm32_legitimate_constant_p.
2535 * config/lm32/lm32.md (ashlsi3): Remove unused variable.
2536 * config/lm32/lm32.c (gen_int_relational): Make new block for
2537 LE / LT / LEU / LTU case. Declare variables at start of block.
2538 (lm32_block_move_inline): Use XALLOCAVEC.
2540 2010-11-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2542 * config/i386/i386.c (ix86_function_arg_boundary): Fix warning message.
2544 2010-11-08 Basile Starynkevitch <basile@starynkevitch.net>
2546 * gengtype (get_output_file_for_structure): Ensure type is union
2548 (write_splay_tree_allocator_def): Use
2549 get_output_file_with_visibility.
2551 2010-11-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2553 * config/s390/s390.c (s390_handle_arch_option): Set type and flags
2554 to defined values in case of an error.
2555 (s390_option_override): Skip further processing if the -march
2556 parameter wasn't recognized.
2558 2010-11-08 Joern Rennecke <amylaar@spamcop.net>
2560 * caller-save.c (reg_save_code): After HARD_REGNO_MODE_OK check fails,
2561 assert that REG is a hard register number before using it as an index.
2564 * config/i386/i386.c (ix86_expand_split_stack_prologue):
2565 Avoid warnings when HOST_WIDE_INT is 32 bit.
2567 2010-11-08 Eric Botcazou <ebotcazou@adacore.com>
2570 * config/sparc/sparc.c (TARGET_PROMOTE_PROTOTYPES): Delete.
2571 (sparc_promote_prototypes): Likewise.
2572 (sparc_promote_function_mode): Promote in 32-bit mode as well.
2573 (sparc_return_in_memory): Remove superfluous parentheses.
2574 (sparc_struct_value_rtx): Fix long lines.
2575 (sparc_function_value_1): Promote in 32-bit mode as well.
2577 2010-11-08 Andrey Belevantsev <abel@ispras.ru>
2579 PR rtl-optimization/45352
2580 * sel-sched.c (find_best_expr): Do not set pneed_stall when
2581 the variable_issue hook is not implemented.
2582 (fill_insns): Remove dead variable stall_iterations.
2583 (init_seqno_1): Force EBB start for resetting sched cycles on any
2584 successor blocks of the rescheduled region.
2585 (sel_sched_region_1): Use bitmap_bit_p instead of bitmap_clear_bit.
2586 (reset_sched_cycles_in_current_ebb): Add debug printing.
2587 New variable issued_insns. Advance state when we have issued
2590 2010-11-08 Basile Starynkevitch <basile@starynkevitch.net>
2592 * gengtype (main): Get here's position using POS_HERE macro for
2595 2010-11-07 Ian Lance Taylor <iant@google.com>
2598 * config/i386/i386.c (split_stack_fn_large): New static variable.
2599 (ix86_expand_split_stack_prologue): Handle large model.
2601 2010-11-07 Andreas Schwab <schwab@linux-m68k.org>
2603 * config/m68k/m68k.c (m68k_delegitimize_address): Update to handle
2604 all possible addressing modes.
2606 2010-11-07 Uros Bizjak <ubizjak@gmail.com>
2608 PR tree-optimization/46346
2609 * tree-ssa-forwprop.c (rhs_to_tree): Handle GIMPLE_TERNARY_RHS.
2611 2010-11-07 Richard Sandiford <rdsandiford@googlemail.com>
2613 * config/mips/mips.c: Revert previous patch.
2614 * config/mips/mips.md: Likewise.
2616 2010-11-07 Richard Sandiford <rdsandiford@googlemail.com>
2618 * config/mips/mips.c (mips_rtx_costs): Handle FMA.
2619 * config/mips/mips.md (*madd4<mode>, *madd3<mode>, *msub4<mode>)
2620 (*msub3<mode>, *nmadd4<mode>_fastmath, *nmadd3<mode>_fastmath)
2621 (*nmsub4<mode>_fastmath, *nmsub3<mode>_fastmath): Delete.
2622 (*nmadd4<mode>, *nmadd3<mode>. *nmsub4<mode>, *nmsub3<mode>): Redefine
2624 (fma<mode>4, *fma<mode>4_madd3, *fma<mode>4_madd4): New patterns.
2625 (fms<mode>4, *fms<mode>4_msub3, *fms<mode>4_msub4): Likewise.
2626 (fnms<mode>4, *fnms<mode>4_nmadd3, *fnms<mode>4_nmadd4): Likewise.
2627 (fnma<mode>4, *fnma<mode>4_nmsub3, *fnma<mode>4_nmsub4): Likewise.
2629 2010-11-06 Simon Martin <simartin@users.sourceforge.net>
2632 * c-decl.c (lookup_label): Labels can only be referenced in a
2634 (store_parm_decls_oldstyle): Skip erroneous parameters.
2636 2010-11-06 Anatoly Sokolov <aesok@post.ru>
2638 * config/fr30/fr30.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
2639 LIBCALL_VALUE): Remove macros.
2640 * config/fr30/fr30.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
2641 TARGET_FUNCTION_VALUE_REGNO_P): Define.
2642 (fr30_function_value_regno_p, fr30_function_value,
2643 fr30_libcall_value): New functions.
2645 2010-11-06 Joern Rennecke <amylaar@spamcop.net>
2648 * target.def (generate_internal_label): New asm_out hook.
2649 * output.h (default_generate_internal_label): Declare.
2650 * varasm.c (default_generate_internal_label): Define.
2652 2010-11-06 Iain Sandoe <iains@gcc.gnu.org>
2655 * doc/extend.tex (format): Document NSString extension.
2656 (format_arg): Likewise.
2657 (Darwin Format Checks): New section.
2658 * doc/tm.texi: Document string object hooks (generated).
2659 * doc/tm.texi.in (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Rename.
2660 (TARGET_STRING_OBJECT_REF_TYPE_P): New.
2661 (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
2662 * target.def (objc_construct_string_object): Rename, amend
2664 (string_object_ref_type_p): New hook.
2665 (check_string_object_format_arg): New hook.
2666 * c-parser.c (c_parser_attributes): Allow objective-c class names as
2667 attribute identifiers.
2668 * config/darwin-c.c (darwin_cfstring_ref_p): New.
2669 (darwin_check_cfstring_format_arg): New.
2670 (darwin_additional_format_types): New.
2671 * config/darwin-protos.h (darwin_cfstring_ref_p) New.
2672 (darwin_check_cfstring_format_arg): New.
2673 * config/darwin.h (TARGET_OBJC_CONSTRUCT_STRING_OBJECT) Renamed.
2674 (TARGET_STRING_OBJECT_REF_TYPE_P): New.
2675 (TARGET_N_FORMAT_TYPES): New.
2676 (TARGET_CHECK_STRING_OBJECT_FORMAT_ARG): New.
2678 2010-11-06 Eric Botcazou <ebotcazou@adacore.com>
2679 Pascal Obry <obry@adacore.com>
2681 * config/i386/cygming.h (DWARF_FRAME_REGISTERS): Redefine. Use 33
2682 in 64-bit mode and 17 otherwise.
2684 2010-11-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2687 * var-tracking.c (emit_note_insn_var_location): Make sure that
2688 call related var location notes come before the normal ones.
2690 2010-11-05 H.J. Lu <hongjiu.lu@intel.com>
2693 * config/i386/i386.c (ix86_delegitimize_address): Fix a typo
2696 2010-11-05 Ian Lance Taylor <iant@google.com>
2698 * explow.c (allocate_dynamic_stack_space): Check MALLOC_ABI_ALIGNMENT.
2700 2010-11-05 Jakub Jelinek <jakub@redhat.com>
2703 * c-decl.c (warn_cxx_compat_finish_struct): Don't call
2704 pointer_set_contains if DECL_NAME is NULL.
2706 2010-11-05 Ian Lance Taylor <iant@google.com>
2709 * explow.c (allocate_dynamic_stack_space): If flag_split_stack,
2710 request enough additional space for alignment, and force alignment.
2712 2010-11-05 Kai Tietz <kai.tietz@onevision.com>
2714 * config/i386/i386.c (legitimate_pic_address_disp_p):
2715 Handle UNSPEC_PCREL.
2716 (ix86_legitimate_address_p): Likewise.
2717 (legitimize_pic_address): Likewise.
2718 (output_pic_addr_const): Likewise.
2719 (ix86_delegitimize_address): Likewise.
2720 (ix86_find_base_term): Likewise.
2721 (memory_address_length): Likewise.
2722 (x86_output_mi_thunk): Handle special case x64
2723 for non local binding.
2724 * config/i386/i386.md (UNSPEC_PCREL): New.
2725 * config/i386/winnt.c (i386_pe_binds_local_p):
2726 Allow weak symbol for x64 windows with non-local binding.
2728 2010-11-05 Jakub Jelinek <jakub@redhat.com>
2731 * expr.c (expand_expr_real_1) <case MEM_REF>: Use EXPAND_SUM
2732 instead of EXPAND_NORMAL for base expansion.
2734 2010-11-05 Uros Bizjak <ubizjak@gmail.com>
2736 * config.gcc: Support --with-fpmath=avx for x86.
2737 * config/i386/avxmath.h: New.
2738 * doc/install.texi (--with-fpmath=): Document --with-fpmath=avx.
2740 2010-11-05 Ian Lance Taylor <iant@google.com>
2742 * tree.h (struct tree_type): Don't use descbits in GTY annotation.
2743 * gengtype.c (walk_type): Don't recognize descbits option.
2745 2010-11-05 Joseph Myers <joseph@codesourcery.com>
2747 * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG,
2748 WORD_SWITCH_TAKES_ARG): Remove.
2749 * doc/options.texi (Args): Document.
2750 * doc/tm.texi.in (WORD_SWITCH_TAKES_ARG): Remove.
2751 * doc/tm.texi: Regenerate.
2752 * opt-functions.awk (switch_flags): Handle Args.
2753 * opts-common.c: Update comment on tm.h include.
2754 (decode_cmdline_option): Handle options with multiple arguments.
2755 Don't check WORD_SWITCH_TAKES_ARG for unknown options.
2756 * opts.h (CL_SEPARATE_NARGS_SHIFT, CL_SEPARATE_NARGS_MASK): Define.
2757 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
2758 CL_COMMON): Update values.
2759 * system.h (WORD_SWITCH_TAKES_ARG): Poison.
2760 * config/darwin.h (WORD_SWITCH_TAKES_ARG): Remove.
2761 * config/darwin.opt (Zsegaddr, sectalign, sectcreate,
2762 sectobjectsymbols, sectorder, segcreate, segprot): New.
2764 2010-11-05 H.J. Lu <hongjiu.lu@intel.com>
2765 Uros Bizjak <ubizjak@gmail.com>
2767 * config/i386/i386.c (ix86_expand_move): Set use_avx256_p if
2768 256bit AVX register is used.
2769 (ix86_expand_vector_move_misalign): Likewise.
2770 (ix86_expand_vector_move): Replace use_avx256_p with
2771 VALID_AVX256_REG_MODE.
2773 2010-11-05 Joern Rennecke <amylaar@spamcop.net>
2776 * config/pdp11/t-pdp11 (dwarf2out.o, java/constants.o): Undo last
2777 change. Set $@-warn.o to -Wno-error.
2780 * expr.c (emit_push_insn): Cast value of PUSH_ROUNDING before
2781 comparing it to a signed value.
2784 * expr.c (can_store_by_pieces): Add ATTRIBUTE_UNUSED to cst.
2786 * haifa-sched.c (initiate_bb_reg_pressure_info): Add ATTRIBUTE_UNUSED
2790 * config/m32c/m32c.c (m32_function_arg): Rename declaration to...
2791 (m32c_function_arg). Add comma between arguments two and three.
2792 (m32c_promote_prototypes): Remove declaration.
2793 (current_function_special_page_vector): Likewise.
2794 (m32c_regno_reg_class): Change return type to enum reg_class.
2795 (m32c_pushm_popm): Use add_reg_note.
2796 (m32c_push_rounding): Change return type to unsigned int.
2797 (m32c_legitimize_reload_address): Cast argument 11 to push_reload to
2799 (m32c_insert_attributes): Constify variable name.
2800 (m32c_output_aligned_common): Add ATTRIBUTE_UNUSED to argument decl.
2801 (m32c_prepare_shift): Remove variable lref.
2802 (m32c_expand_movcc): Remove variable cmp.
2803 (m32c_expand_insv): Fix check of op0 rtx_code to use GET_CODE.
2804 (m32c_compare_redundant): Remove variable op2.
2805 * config/m32c/m32c-pragma.c ("c-family/c-common.h"): Include.
2806 (m32c_pragma_memregs): Assign the number to target_memregs.
2807 (m32c_pragma_address): Remove variable var_str.
2808 * config/m32c/m32c.h (REG_CLASS_FROM_CONSTRAINT): Case value to
2810 (LIMIT_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
2811 * config/m32c/bitops.md (andsi3): Add default case to switch.
2812 (iorsi3, xorsi3): Likewise.
2813 * config/m32c/addsub.md (addsi3_1, subsi3_1): Likewise.
2814 * config/m32c/jump.md (call, call_value): Likewise.
2815 * config/m32c/m32c-protos.h (m32c_push_rounding): Update prototype.
2816 (m32c_regno_reg_class): Likewise.
2817 (current_function_special_page_vector): Declare.
2819 2010-11-05 Jakub Jelinek <jakub@redhat.com>
2821 * cfgexpand.c (expand_debug_expr): Handle MEM_REF with non-zero offset.
2823 PR tree-optimization/46099
2824 * tree-parloops.c (take_address_of): Add GSI argument. Return NULL
2825 if it is NULL and uid wasn't found in the hash table. Just fold the
2826 result if it is NULL otherwise. Insert other potentially needed
2827 stmts right before current stmt instead of on the entry edge.
2828 (struct elv_data): Add gsi and reset fields.
2829 (eliminate_local_variables_1): Adjust caller. If take_address_of
2830 failed for debug stmt, set dta->reset and return.
2831 (eliminate_local_variables_stmt): Change STMT argument for GSI,
2832 pass GSI through to the callback, handle resetting of debug stmts.
2833 (eliminate_local_variables): Adjust caller. Process debug stmts
2837 * gimplify.c (gimplify_asm_expr): If a "m" input is a
2838 {pre,post}{in,de}crement, fail.
2841 * tree-ssa-operands.c (get_expr_operands): Handle FMA_EXPR.
2842 * tree-pretty-print.c (dump_generic_node): Likewise.
2843 (op_code_prio): Likewise.
2844 * cfgexpand.c (expand_debug_expr): Likewise.
2846 2010-11-04 Paul Koning <ni1d@arrl.net>
2848 * doc/md.texi (Machine Constraints): Correct formatting in PDP-11
2851 2010-11-04 Chao-ying Fu <fu@mips.com>
2853 * configure.ac: Test assembler support for DSP Rev1 mult.
2854 * configure: Regenerate.
2855 * config.in: Regenerate.
2856 * config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
2857 * config/mips/mips.c (CODE_FOR_mips_mult): New define.
2858 (CODE_FOR_mips_multu): New define.
2859 (mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
2861 (mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
2862 Delete returns when ISA_HAS_DSPR2 because the old patterns are deleted.
2863 * config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
2864 New define_expand patterns.
2865 * config/mips/constraints.md (ka): Update the constraint to test
2866 ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
2867 * config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
2868 mips_multu): Delete.
2869 * config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
2870 Change target constraint to "ka".
2871 Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
2872 (!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
2873 Emit the accumulator destination when ISA_HAS_DSP_MULT.
2874 (<u>msubsidi4): Add comments. Test ISA_HAS_DSP.
2875 Emit the accumulator destination when ISA_HAS_DSP_MULT.
2876 (<u>maddsidi4): Likewise.
2877 * doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
2878 msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
2880 2010-11-04 Paul Koning <ni1d@arrl.net>
2882 * doc/md.texi (Machine Constraints): Add PDP-11 constraints.
2884 2010-11-04 Paul Koning <ni1d@arrl.net>
2886 * doc/invoke.texi (PDP-11 Options): Delete -msplit, -mno-split.
2888 2010-11-04 Nicola Pero <nicola.pero@meta-innovation.com>
2890 Fixed using the Objective-C 2.0 dot-syntax with class names.
2891 * c-parser.c (c_parser_next_token_starts_declspecs): In
2892 Objective-C, detect Objective-C 2.0 dot-syntax with a class name.
2893 (c_parser_next_token_starts_declaration): Same.
2894 (c_parser_postfix_expression): Parse the Objective-C 2.0
2895 dot-syntax with a class name.
2897 2010-11-04 Pat Haugen <pthaugen@us.ibm.com>
2899 * final.c (compute_alignments): Compute/free loop info all the time.
2900 * config/rs6000/rs6000.h (LOOP_ALIGN): Define.
2901 * config/rs6000/rs6000-protos.h (rs6000_loop_align): Declare.
2902 * config/rs6000/t-rs6000 (rs6000.o): Add cfgloop.h.
2903 * config/rs6000/rs6000.c (cfgloop.h): Include.
2904 (can_override_loop_align): New.
2905 (rs6000_option_override_internal): Set it.
2906 (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): Define target hook.
2907 (rs6000_loop_align): New function.
2908 (rs6000_loop_align_max_skip): Likewise.
2910 2010-11-04 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2913 * collect2.c (main): Print --help output to stdout. Do not
2914 exit right away, so ld --help is appended. Add empty lines
2915 to separate output suitably.
2917 2010-11-04 Jakub Jelinek <jakub@redhat.com>
2919 PR tree-optimization/46233
2920 * ipa-pure-const.c (local_pure_const): Do noreturn discovery
2921 after calling analyze_function, not before.
2924 * config/rs6000/rs6000.c (rs6000_va_start): Use build_simple_mem_ref
2925 instead of build_va_arg_indirect_ref.
2926 * config/spu/spu.c (spu_va_start): Likewise.
2927 * config/s390/s390.c (s390_va_start): Likewise.
2929 2010-11-03 Uros Bizjak <ubizjak@gmail.com>
2932 * lower-subreg.c (simplify_subreg_concatn): For VOIDmode elements,
2933 if the innermode is not vector mode, determine the mode of a subreg
2934 by using mode_for_size of inner_size.
2936 2010-11-04 Richard Guenther <rguenther@suse.de>
2938 PR rtl-optimization/46183
2939 * gcse.c (execute_rtl_cprop): Cleanup the CFG if something changed.
2940 (execute_rtl_pre): Likewise.
2941 (execute_rtl_hoist): Likewise.
2943 2010-11-04 Richard Guenther <rguenther@suse.de>
2945 PR tree-optimization/46068
2946 * ipa-split.c (consider_split): Remove gcc_unreachable.
2948 2010-11-04 Richard Guenther <rguenther@suse.de>
2950 * tree-nested.c (build_addr): Use build_fold_addr_expr.
2952 2010-11-04 Richard Guenther <rguenther@suse.de>
2954 PR tree-optimization/45991
2955 * gimplify.c (force_gimple_operand_1): Use the provded test
2956 function in the initial test.
2958 2010-11-04 Jeff Law <law@redhat.com>
2960 * ira.c (validate_equiv_mem): Remove code to avoid invalidation
2961 of readonly memory equivalances for const/pure calls.
2963 2010-11-04 Richard Guenther <rguenther@suse.de>
2965 PR tree-optimization/45733
2966 * tree-vect-stmts.c (reverse_vec_elements): Honor the
2967 permute builtins function return type.
2969 2010-11-04 Joern Rennecke <amylaar@spamcop.net>
2972 * emit-rtl.c (gen_rtx_REG): Before using PIC_OFFSET_TABLE_REGNUM
2973 as an index, check it is not INVALID_REGNUM.
2976 * ifcvt.c (noce_emit_cmove): Add ATTRIBUTE_UNUSED to target and
2978 * reload1.c (set_reload_reg): Add ATTRIBUTE_UNUSED to regno.
2981 * function.c (thread_prologue_and_epilogue_insns): Add
2982 ATTRIBUTE_UNUSED to seq, epilogue_end and entry_edge.
2985 * varasm.c (asm_output_bss): Add ATTRIBUTE_UNUSED to function.
2988 * config/pdp11/pdp11.c: (pdp11_secondary_reload): Now static.
2989 (pdp11_preferred_reload_class): Rename class to rclass.
2990 (pdp11_preferred_output_reload_class): Likewise.
2991 * config/pdp11/t-pdp11 (dwarf2out.o): Add -Wno-error=type-limits to
2993 (java/constants.o): Add -Wno-error to ALL_COMPILERFLAGS.
2996 * genopinit.c (main) [FIXUNS_TRUNC_LIKE_FIX_TRUNC]: Cast
2997 iteration variables to enum machine_mode.
3000 * config/h8300/h8300.c: Include df.h.
3001 (push, pop): Use add_reg_note.
3002 (compute_plussi_cc, compute_logical_op_cc): Return enum attr_c.
3003 (compute_a_shift_cc): Likewise.
3004 (expand_a_shift): Argument code has type enum rtx_code.
3005 (struct shift_insn): Member cc_valid has type enum attr_cc.
3006 (struct shift_info) <cc_inline, cc_special>: Likewise.
3008 * config/h8300/h8300-protos.h (compute_plussi_cc): Update prototype.
3009 (compute_a_shift_cc, compute_logical_op_cc, expand_a_shift): Likewise.
3011 2010-11-04 Ira Rosen <irar@il.ibm.com>
3013 PR tree-optimization/46213
3014 * tree-vect-loop.c (vect_is_simple_reduction_1): Handle
3015 MINUS_EXPR only if the first operand is reduction operand.
3017 2010-11-04 Richard Guenther <rguenther@suse.de>
3018 Richard Henderson <rth@redhat.com>
3020 * tree.def (FMA_EXPR): New tree code.
3021 * expr.c (expand_expr_real_2): Add FMA_EXPR expansion code.
3022 * gimple.c (gimple_rhs_class_table): FMA_EXPR is a GIMPLE_TERNARY_RHS.
3023 * tree-cfg.c (verify_gimple_assign_ternary): Verify FMA_EXPR types.
3024 * tree-inline.c (estimate_operator_cost): Handle FMA_EXPR.
3025 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
3026 * tree-ssa-math-opts.c (convert_mult_to_fma): New function.
3027 (execute_optimize_widening_mul): Call it. Reorganize to allow
3028 dead stmt removal. Move TODO flags ...
3029 (pass_optimize_widening_mul): ... here.
3030 * flag-types.h (enum fp_contract_mode): New enum.
3031 * common.opt (flag_fp_contract_mode): New variable.
3032 (-ffp-contract): New option.
3033 * opts.c (common_handle_option): Handle it.
3034 * doc/invoke.texi (-ffp-contract): Document.
3035 * tree.h (fold_fma): Declare.
3036 * builtins.c (fold_fma): New function.
3037 (fold_builtin_fma): Likewise.
3038 (fold_builtin_3): Call it for fma.
3039 * fold-const.c (fold_ternary_loc): Fold FMA_EXPR.
3040 * optabs.c (optab_for_tree_code): Handle FMA_EXPR.
3041 * config/i386/sse.md (fms<mode>4, fnma<mode>, fnms<mode>4):
3043 * doc/md.texi (fms<mode>4, fnma<mode>, fnms<mode>4): Document new
3045 * genopinit.c (optabs): Initialize fms_optab, fnma_optab and fnms_optab.
3046 * optabs.h (enum optab_index): Add OTI_fms, OTI_fnma and OTI_fnms.
3047 (fms_optab, fnma_optab, fnms_optab): New defines.
3048 * gimplify.c (gimplify_expr): Handle binary truth expressions
3049 explicitly. Handle FMA_EXPR.
3050 * tree-vect-stmts.c (vectorizable_operation): Handle ternary
3053 2010-11-04 Artjoms Sinkarovs <artyom.shinakroff@gmail.com>
3054 Richard Guenther <rguenther@suse.de>
3056 * passes.c (init_optimization_passes): Move veclower after SSA.
3057 * tree-vect-generic.c (uniform_vector_p): New function.
3058 (expand_vector_operations_1): Handle conversion.
3059 (pass_lower_vector): Update SSA form.
3061 2010-11-04 Iain Sandoe <iains@gcc.gnu.org>
3063 * configure.ac: Filter -mdynamic-no-pic from CFLAGS when testing for
3064 plugin capabilities.
3065 * configure: Regenerate.
3067 2010-11-03 Xinliang David Li <davidxl@google.com>
3070 * tree-ssa-loop-ivopts.c (get_computation_cost_at):
3071 Adjust cbase if the use stmt is after iv update.
3073 2010-11-03 Kaz Kojima <kkojima@gcc.gnu.org>
3075 * config.gcc (sh64*) <tm_file>: Add newlib-stdint.h for newlib targets.
3077 2010-11-03 Kaz Kojima <kkojima@gcc.gnu.org>
3079 * config/sh/sh.c (sh_expand_prologue): Remove unnecessary
3080 comment. Pass true to the last argument of output_stack_adjust.
3082 2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
3085 * config/i386/i386.c (ix86_expand_vector_move): Set use_avx256_p
3086 if 256bit AVX register is used.
3088 2010-11-03 Michael Meissner <meissner@linux.vnet.ibm.com>
3090 * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support to use
3091 xsmindp/xsmaxdp on VSX for single precision min/max.
3092 * config/rs6000/vsx.md (vsx_smaxsf3): Ditto.
3093 (vsx_sminsf3): Ditto.
3095 2010-11-03 Eric Botcazou <ebotcazou@adacore.com>
3097 * combine.c (try_combine): Fix formatting issues, improve comments and
3100 2010-11-03 Eric Botcazou <ebotcazou@adacore.com>
3102 * tree-tailcall.c (find_tail_calls): Convert the operands to the type
3103 of the result before building binary expressions.
3105 2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
3107 PR rtl-optimization/45865
3108 * Makefile.in (df-problems.o): Revert revision 164552.
3109 * basic-block.h (enum bb_flags): Likewise.
3110 * cfgcleanup.c (block_was_dirty): Likewise.
3111 (try_forward_edges): Likewise.
3112 (try_crossjump_bb): Likewise.
3113 (try_head_merge_bb): Likewise.
3114 (try_optimize_cfg): Likewise.
3115 (cleanup_cfg): Likewise.
3116 * df-core.c (df_set_bb_dirty): Likewise.
3117 * df-problems.c: Likewise.
3118 (df_simulate_find_uses): Likewise.
3119 (MEMREF_NORMAL, MEMREF_VOLATILE): Likewise.
3120 (find_memory, find_memory_store): Likewise.
3121 (can_move_insns_across): Likewise.
3122 * df.h (can_move_insns_across): Likewise.
3123 * ifcvt.c (find_memory): Likewise.
3124 (dead_or_predicable): Likewise.
3126 2010-11-03 Richard Guenther <rguenther@suse.de>
3129 * predict.c (strip_predict_hints): Simply DCE builtin expect if
3130 the result is unused.
3132 2010-11-03 Jakub Jelinek <jakub@redhat.com>
3134 PR tree-optimization/46009
3135 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
3136 cond_if_else_store_replacement if bb1 and bb2 have the same
3138 (cond_store_replacement): Use gimple_assign_single_p, don't
3139 check if rhs is SSA_NAME or invariant. Call release_defs for
3141 (cond_if_else_store_replacement): New function.
3143 2010-11-03 Richard Guenther <rguenther@suse.de>
3145 * opts.c (finish_options): Properly check for all WHOPR
3146 flags before complaining about -flto-partition.
3148 2010-11-04 Alan Modra <amodra@gmail.com>
3150 * config/rs6000/rs6000.c (rs6000_pic_labelno): Make static.
3151 (rs6000_emit_load_toc_table): Don't use rs6000_pic_labelno when
3153 * config/rs6000/sysv4.h (rs6000_pic_labelno): Don't declare.
3154 * config/rs6000/rs6000.md (load_toc_v4_PIC_3b): Use "b" constraint
3155 on input, "r" on output.
3157 2010-11-03 Nicola Pero <nicola.pero@meta-innovation.com>
3159 Implemented -fobjc-std=objc1 flag.
3160 * doc/invoke.texi (Option Summary): Document -fobjc-std=objc1
3162 * doc/standards.texi (Standards): Updated the section on
3163 Objective-C; mention support for Objective-C 2.0 features and the
3164 new -fstd-objc=objc1 flag to disable them.
3166 2010-11-03 Richard Guenther <rguenther@suse.de>
3169 * dwarf2out.c (scope_die_for): Properly detect global scope.
3171 2010-11-03 Richard Guenther <rguenther@suse.de>
3173 PR tree-optimization/46190
3174 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3175 Properly compute peel iterations.
3177 2010-11-03 Richard Guenther <rguenther@suse.de>
3179 PR tree-optimization/46286
3180 * tree-ssa-structalias.c (get_constraint_for_1): Avoid referencing
3181 re-allocated vector data.
3183 2010-11-03 H.J. Lu <hongjiu.lu@intel.com>
3186 * config/i386/i386.c (ix86_expand_call): Conditionally decorate
3187 calls with UNSPEC_CALL_NEEDS_VZEROUPPER unspec before reload
3190 2010-11-03 Richard Guenther <rguenther@suse.de>
3192 PR tree-optimization/46217
3193 * tree-ssa.c (non_rewritable_mem_ref_base): Check if volatile
3195 (execute_update_addresses_taken): Likewise.
3197 2010-11-03 Joern Rennecke <joern.rennecke@embecosm.com>
3200 * targhooks.c (targhook_words_big_endian): New function.
3201 (targhook_float_words_big_endian): Likewise.
3202 * targhooks.h (targhook_words_big_endian): Declare.
3203 (targhook_float_words_big_endian): Likewise.
3204 * target.def (words_big_endian, float_words_big_endian): New hooks.
3206 2010-11-03 Jakub Jelinek <jakub@redhat.com>
3208 PR tree-optimization/46165
3209 * tree-ssa-pre.c (eliminate): Return TODO_cleanup_cfg if changing
3210 a normal call into noreturn call.
3212 2010-11-03 Richard Guenther <rguenther@suse.de>
3215 * builtins.c (expand_builtin_sincos): Properly build MEM_REFs,
3218 2010-11-03 Jakub Jelinek <jakub@redhat.com>
3220 PR tree-optimization/46107
3221 * cfgloopmanip.c (loop_version): Set irred_flag back into entry->flags
3222 if cfg_hook_duplicate_loop_to_header_edge failed.
3224 2010-11-03 Ian Lance Taylor <iant@google.com>
3227 * config.gcc: Don't set lto_binary_reader.
3228 * doc/install.texi (Prerequisites): Remove libelf paragraphs.
3229 (Configuration): Mention --disable-lto. Remove --with-libelf
3232 2010-11-03 Jakub Jelinek <jakub@redhat.com>
3235 * reload1.c (delete_dead_insn): Use prev_active_insn instead of
3237 * gcse.c (insert_insn_end_basic_block): Likewise.
3239 PR rtl-optimization/46034
3240 PR rtl-optimization/46212
3241 PR rtl-optimization/46248
3242 * combine.c (try_combine): If added_sets_2 where i0dest_in_i0src
3243 and i0 feeds i1 and i1 feeds i2 or i0 feeds i2, make a copy of i1src
3244 before i0dest -> i0src substitution and pass 1 instead of 0 as last
3245 argument to subst on i2pat.
3247 2010-11-02 Ian Lance Taylor <iant@google.com>
3249 * configure.ac: Use AC_SYS_LARGEFILE.
3250 * configure: Rebuild.
3251 * config.in: Rebuild.
3253 2010-11-02 Nathan Froyd <froydnj@codesourcery.com>
3255 * builtins.c (fold_builtin_signbit): Use build_zero_cst instead of
3257 * c-typeck.c (build_function_call_vec): Likewise.
3258 * cfgexpand.c (expand_debug_expr): Likewise.
3259 * cgraphunit.c (assemble_thunk): Likewise.
3260 * config/sparc/sparc.c (sparc_fold_builtin): Likewise.
3261 * fold-const.c (fold_unary_loc, fold_mult_zconjz): Likewise.
3262 (fold_binary_loc, fold_ternary_loc): Likewise.
3263 * gimple-fold.c (get_symbol_constant_value): Likewise.
3264 * gimple-low.c (lower_builtin_setjmp): Likewise.
3265 * gimple.c (gimple_cond_get_ops_from_tree): Likewise.
3266 * gimplify.c (gimplify_init_constructor): Likewise.
3267 * lambda.h (build_linear_expr): Likewise.
3268 * omp-low.c (omp_reduction_init): Likewise.
3269 * tree-inline.c (remap_ssa_name): Likewise.
3270 * tree-object-size.c (compute_object_sizes): Likewise.
3271 * tree-sra.c (init_subtree_with_zero): Likewise.
3272 (sra_ipa_modify_assign): Likewise.
3273 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Likewise.
3274 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Likewise.
3275 (eliminate_plus_minus_pair, eliminate_not_pairs): Likewise.
3276 (undistribute_ops_list): Likewise.
3277 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
3278 * tree-vect-stmts.c (vectorizable_call): Likewise.
3279 * tree.c (build_vector_from_ctor, build_one_cst): Likewise.
3280 (build_zero_cst): Handle more cases directly. Update comment.
3282 2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
3284 * config/i386/i386-protos.h (ix86_split_call_pop_vzeroupper): Removed.
3285 * config/i386/i386.c (ix86_split_call_pop_vzeroupper): Likewise.
3287 * config/i386/i386.md (*call_pop_0_vzeroupper): Use parallel
3288 and call ix86_split_call_vzeroupper instead of
3289 ix86_split_call_pop_vzeroupper.
3290 (*call_pop_1_vzeroupper): Likewise.
3291 (*sibcall_pop_1_vzeroupper): Likewise.
3292 (*call_value_pop_0_vzeroupper): Likewise.
3293 (*call_value_pop_1_vzeroupper): Likewise.
3294 (*sibcall_value_pop_1_vzeroupper): Likewise.
3296 2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
3298 * config/i386/i386.md (*sibcall_1_rex64_vzeroupper): Fix a typo.
3300 2010-11-02 Eric Botcazou <ebotcazou@adacore.com>
3302 * basic-block.h (insert_insn_end_bb_new): Delete.
3303 * cfgrtl.c (insert_insn_end_bb_new): Likewise.
3305 2010-11-02 Uros Bizjak <ubizjak@gmail.com>
3306 H.J. Lu <hongjiu.lu@intel.com>
3308 * config/i386/i386-protos.h (ix86_split_call_vzeroupper): New.
3309 (ix86_split_call_pop_vzeroupper): Likewise.
3311 * config/i386/i386.c (move_or_delete_vzeroupper_2): Rewrite the loop.
3312 (ix86_expand_call): Conditionally decorate calls with
3313 UNSPEC_CALL_NEEDS_VZEROUPPER unspec.
3314 (ix86_split_call_vzeroupper): New.
3315 (ix86_split_call_pop_vzeroupper): Likewise.
3317 * config/i386/i386.md (UNSPEC_CALL_NEEDS_VZEROUPPER): New.
3318 (*call_pop_0_vzeroupper): New insn_and_split pattern.
3319 (*call_pop_1_vzeroupper): Likewise.
3320 (*sibcall_pop_1_vzeroupper): Likewise.
3321 (*call_0_vzeroupper): Likewise.
3322 (*call_1_vzeroupper): Likewise.
3323 (*sibcall_1_vzeroupper): Likewise.
3324 (*call_1_rex64_vzeroupper): Likewise.
3325 (*call_1_rex64_ms_sysv_vzeroupper): Likewise.
3326 (*call_1_rex64_large_vzeroupper): Likewise.
3327 (*sibcall_1_rex64_vzeroupper): Likewise.
3328 (*call_value_pop_0_vzeroupper): Likewise.
3329 (*call_value_pop_1_vzeroupper): Likewise.
3330 (*sibcall_value_pop_1_vzeroupper): Likewise.
3331 (*call_value_0_vzeroupper): Likewise.
3332 (*call_value_0_rex64_vzeroupper): Likewise.
3333 (*call_value_0_rex64_ms_sysv_vzeroupper): Likewise.
3334 (*call_value_1_vzeroupper): Likewise.
3335 (*sibcall_value_1_vzeroupper): Likewise.
3336 (*call_value_1_rex64_vzeroupper): Likewise.
3337 (*call_value_1_rex64_ms_sysv_vzeroupper): Likewise.
3338 (*call_value_1_rex64_large_vzeroupper): Likewise.
3339 (*sibcall_value_1_rex64_vzeroupper): Likewise.
3341 2010-11-02 Ian Lance Taylor <iant@google.com>
3344 * config.gcc: Revert last patch: set lto_binary_reader.
3346 2010-11-02 Richard Guenther <rguenther@suse.de>
3348 PR tree-optimization/46149
3349 * tree-ssa-structalias.c (get_constraint_for_1): Properly handle
3350 non-indirect MEM_REF variants.
3352 2010-11-02 Richard Guenther <rguenther@suse.de>
3354 PR tree-optimization/46216
3355 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
3356 Check if we can propagate from a POINTER_PLUS_EXPR before doing so.
3358 2010-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3360 * configure.ac (*-*-irix6*): Disable set_have_as_tls.
3361 (*-*-osf*): Likewise.
3362 * configure: Regenerate.
3364 2010-11-02 H.J. Lu <hongjiu.lu@intel.com>
3366 * config/i386/driver-i386.c (host_detect_local_cpu): Updated
3367 for Intel Core 2 and Core i7.
3369 2010-11-02 Maxim Kuvyrkov <maxim@codesourcery.com>
3371 Model decoder of Core 2/i7 for multipass scheduling.
3373 * config/i386/i386-protos.h (struct ix86_first_cycle_multipass_data_):
3374 New type to hold target-specific data for multipass scheduling.
3375 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
3376 * config/i386/i386.c (ia32_multipass_dfa_lookahead): Update for
3378 (core2i7_secondary_decoder_max_insn_size,)
3379 (core2i7_secondary_ifetch_block_size, core2i7_ifetch_block_max_insns):
3380 New static variables.
3381 ([const_]ix86_first_cycle_multipass_data_t): New typedefs.
3382 ([_]ix86_first_cycle_multipass_data): New static variable.
3383 (core2i7_first_cycle_multipass_init, core2i7_dfa_poast_advance_cycle):
3384 Implement targetm.sched hooks.
3385 (core2i7_first_cycle_multipass_filter_ready_try): New static subroutine
3387 (core2i7_first_cycle_multipass_{begin, issue, backtrack, end, fini}):
3388 Implement new targetm.sched hooks.
3389 (ix86_sched_init_global, TARGET_SCHED_INIT_GLOBAL): Define
3390 targetm.sched hook to install multipass scheduling hooks on demand.
3392 * doc/tm.texi.in: Document new targetm.sched hooks.
3393 * doc/tm.texi: Regenerate.
3395 * haifa-sched.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DATA_T): Define.
3396 (first_cycle_multipass_data_t): New typedef.
3397 (struct choice_entry: target_data): New field.
3398 (max_issue): Add first_cycle_insn_p parameter. Call new target hooks
3399 to allow target model restrictions not represented in DFA.
3400 (choose_ready, schedule_block): Update.
3401 (sched_extend_ready_list, sched_finish_ready_list): Call new target
3402 hooks to initialize target-specific data for multipass scheduling.
3403 * sched-int.h (max_issue): Update declaration.
3404 * sel-sched.c (choose_best_insn): Update.
3405 * target.def (first_cycle_multipass_{begin, issue, backtrack},)
3406 (first_cycle_multipass_{init, fini}): Define and document new
3407 targetm.sched hooks.
3409 2010-11-02 Richard Guenther <rguenther@suse.de>
3411 PR tree-optimization/46184
3412 * tree-vect-loop.c (vectorizable_reduction): Try to obtain the
3413 input vector type from the reduction operand as well.
3415 2010-11-02 Richard Guenther <rguenther@suse.de>
3417 PR tree-optimization/46177
3418 * tree-loop-distribution.c (prop_phis): Use
3419 mark_virtual_phi_result_for_renaming.