1 2010-09-30 Joseph Myers <joseph@codesourcery.com>
3 * opt-functions.awk (static_var): Update comment.
4 (var_ref): Return offsetof expression or -1, not variable address.
5 * optc-gen.awk: Generate structure field initializers instead of
6 static variables. Expect -1 for missing variables instead of null
7 pointer. Add gcc_options parameters to generated functions.
8 * opth-gen.awk: Generate structure fields for static variables.
9 Add gcc_options parameters to generated functions.
10 * common.opt (optimize, optimize_size): Add variables.
11 * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
12 &global_options to cl_target_option_restore.
13 * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
14 &global_options to cl_optimization_restore, cl_target_option_save
15 and cl_target_option_restore.
16 (ix86_set_current_function): Pass &global_options to
17 cl_target_option_restore.
18 * config/pdp11/pdp11.h (optimize): Remove.
19 * config/rs6000/rs6000.h (optimize): Remove.
20 * config/sh/sh.h (optimize): Remove.
21 * config/xtensa/xtensa.h (optimize): Remove.
22 * coretypes.h (struct gcc_options): Declare.
23 * diagnostic.c (diagnostic_initialize): Initialize
24 context->option_state.
25 (diagnostic_report_diagnostic): Pass option_state to
27 * diagnostic.h (diagnostic_context.option_enabled): Add void *
29 (diagnostic_context.option_state): New field.
30 * final.c (final_start_function, final, final_scan_insn): Rename
31 optimize parameter to optimize_p.
32 * flags.h (optimize, optimize_size): Remove.
33 * function.c (invoke_set_current_function_hook): Pass
34 &global_options to cl_optimization_restore.
35 * gcc.c (driver_handle_option): Take gcc_options parameter.
36 Assert that it is &global_options.
37 (process_command): Pass &global_options to read_cmdline_option.
38 * ipa-pure-const.c (suggest_attribute): Pass &global_options to
40 * lto-opts.c (lto_reissue_options): Use option_flag_var. Pass
41 &global_options to set_option.
42 * opts-common.c (handle_option, handle_generated_option,
43 read_cmdline_option, set_option): Take explicit gcc_options
44 parameters. Use option_flag_var.
45 (option_flag_var): New.
46 * opts.c (common_handle_option, lang_handle_option,
47 target_handle_option): Take gcc_options parameter. Assert that it
49 (read_cmdline_options): Pass &global_options to
51 (print_filtered_help): Use option_flag_var. Pass &global_options
53 (common_handle_option): Use option_flag_var.
54 (option_enabled): Take opts parameter. Use option_flag_var.
55 (get_option_state): Take gcc_options parameter. Use
56 option_flag_var. Pass gcc_options parameter to option_enabled.
57 (enable_warning_as_error): Pass &global_options to
58 handle_generated_option.
59 * opts.h (struct cl_option): Change flag_var to flag_var_offset.
60 (cl_option_handler_func.handler): Take gcc_options parameter.
61 (option_enabled, get_option_state, set_option, handle_option,
62 handle_generated_option, read_cmdline_option): Take gcc_options
64 * toplev.c (optimize, optimize_size): Remove.
65 (print_switch_values): Pass &global_options to option_enabled.
66 (option_affects_pch_p): Use option_flag_var. Pass &global_options
68 (general_init): Initialize global_dc->option_state.
69 * tree.c (build_optimization_node): Pass &global_options to
71 (build_target_option_node): Pass &global_options to
72 cl_target_option_save.
74 2010-09-30 Martin Jambor <mjambor@suse.cz>
76 * tree-sra.c (type_consists_of_records_p): Do not check for trailing
77 zero sized bit-fields.
79 2010-09-30 Nicola Pero <nicola.pero@meta-innovation.com>
81 * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
82 Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
83 (c_parser_external_declaration): Use RID_AT_CLASS
85 (c_parser_objc_class_declaration): Same change.
86 (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
87 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
88 (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
89 instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
90 and RID_AT_PUBLIC instead of RID_PUBLIC.
91 (c_parser_statement_after_labels): Use RID_AT_TRY instead of
92 RID_TRY and RID_AT_CATCH instead of RID_CATCH.
94 2010-09-30 Tom G. Christensen <tgc@jupiterrise.com>
96 * doc/install.texi (Binaries): Update link to HP-UX porting centre.
97 Add links to current providers of packages for Solaris and IRIX.
99 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
101 Merge from 'apple/trunk' branch on FSF servers.
102 * c-parser.c: Applied change originally in c-parse.in.
104 2005-10-04 Fariborz Jahanian <fjahanian@apple.com>
107 * c-decl.c (start_decl): Check for redeclaration of class name.
108 * c-parse.in (after_type_declarator): Recognize CLASSNAME.
110 2010-09-29 Steve Ellcey <sje@cup.hp.com>
112 * config/ia64/ia64.c (ia64_builtin_decl): New.
113 (TARGET_BUILTIN_DECL): Define.
114 (ia64_builtins): New.
115 (ia64_init_builtins): Save decls in ia64_builtins.
117 2010-09-29 Bernd Schmidt <bernds@codesourcery.com>
120 * postreload.c (move2add_use_add2_insn): Use full_costs for
122 (move2add_use_add3_insn): Likewise.
123 (reload_cse_move2add): Likewise.
124 * rtlanal.c (get_full_rtx_cost): New function.
125 * rtl.h (struct full_rtx_costs): New.
126 (init_costs_to_max, init_costs_to_zero, costs_lt_p,
127 costs_add_n_insns): New inline functions.
128 (get_full_rtx_cost): Declare.
131 * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
132 invariants. Check for reg_equiv_invariant.
133 (reload): Assert that spilled_pseudos is empty when returning.
135 2010-09-29 Kai Tietz <kai.tietz@onevision.com>
137 * config/i386/mingw32.h (TARGET_64BIT): replaced by
138 TARGET_64BIT_DEFAULT in #if check.
140 2010-09-29 Jack Howarth <howarth@bromo.med.uc.edu>
142 * varasm.c (assemble_alias): Add error message for
145 2010-09-29 Mike Stump <mikestump@comcast.net>
147 * config/darwin.h (flag_mkernel): Remove.
148 (flag_apple_kext): Likewise.
150 2010-09-29 Joseph Myers <joseph@codesourcery.com>
151 Jack Howarth <howarth@bromo.med.uc.edu>
153 * config/darwin.opt (undefined): Add.
155 2010-09-29 Nathan Sidwell <nathan@codesourcery.com>
157 * configure.ac: Add --enable-indirect-function option.
158 * config.gcc: Add default_gnu_indirect_function.
159 * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
160 (HAVE_GNU_INDIRECT_FUNCTION): ... this.
161 * varasm.c (do_assemble_alias): Adjust for macto name change.
162 * configure: Rebuilt.
163 * doc/install.texi: Document --enable-indirect-function.
165 2010-09-29 Joseph Myers <joseph@codesourcery.com>
167 * doc/options.texi (Variable, Var, Init): Update documentation
168 without reference to VarExists.
170 * common.opt, config/i386/i386.opt, config/linux.opt,
171 config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
174 2010-09-29 Joseph Myers <joseph@codesourcery.com>
176 * optc-gen.awk: Generate global_options initializer instead of
177 individual variables. Add x_ prefix to names of structure
179 * opth-gen.awk: Generate gcc_options structure. Add x_ prefix to
180 names of structure members.
181 * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
182 HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
183 * doc/tm.texi: Regenerate.
184 * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
185 * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
186 * c-parser.c (disable_extension_diagnostics,
187 restore_extension_diagnostics): Update names of cpp_options
189 * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
190 * common.opt (fcompare-debug-second): Don't use Var.
191 * config/alpha/alpha.h (target_flags): Remove.
192 * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
193 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
194 * config/bfin/bfin.h (target_flags): Remove.
195 * config/cris/cris.h (target_flags): Remove.
196 * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
197 cl_target_option members.
198 * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
199 (ix86_function_specific_print, ix86_valid_target_attribute_tree,
200 ix86_can_inline_p): Update names of cl_target_option members.
201 * config/i386/i386.h (ix86_isa_flags): Remove.
202 * config/lm32/lm32.h (target_flags): Remove.
203 * config/mcore/mcore.h (mcore_stack_increment): Remove.
204 * config/mcore/mcore.md (addsi3): Remove extern declaration of
205 flag_omit_frame_pointer.
206 * config/mep/mep.h (target_flags): Remove.
207 * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
208 HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
209 * config/mmix/mmix.h (target_flags): Remove.
210 * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
211 flag_expensive_optimizations): Remove.
212 * config/s390/s390.h (flag_pic): Remove.
213 * config/score/score-conv.h (target_flags): Remove.
214 * config/sh/sh.h (sh_fixed_range_str): Remove.
215 * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
216 * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
217 * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
218 * diagnostic.c (diagnostic_initialize): Update names of
219 diagnostic_context members.
220 * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
222 (diagnostic_report_warnings_p): Update for new names.
223 * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
224 * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
225 HARD_FRAME_POINTER_IS_ARG_POINTER.
226 * flags.h (flag_compare_debug): Declare.
227 * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
228 * opts.c (flag_compare_debug): Define.
229 (common_handle_option): Update names of diagnostic_context
230 members. Handle -fcompare-debug-second.
231 (fast_math_flags_struct_set_p): Update names of cl_optimization
233 * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
234 * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
235 * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
236 * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
237 * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
238 * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
239 HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
240 * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
241 * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
243 2010-09-29 Hariharan Sandanagobalane <hariharan@picochip.com>
245 * config/picochip/picochip.c (picochip_output_internal_label):
246 This function can now be called for debug CFI labels, which can come in
247 the middle of a vliw instruction. Postpone until end of vliw.
249 2010-09-29 Richard Guenther <rguenther@suse.de>
251 * tree.h (SCOPE_FILE_SCOPE_P): New macro.
252 (DECL_FILE_SCOPE_P): Use it.
253 (TYPE_FILE_SCOPE_P): New macro.
255 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
257 * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
258 a CPP_NAME which is a reserved word, clearly separate cases for
259 OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
261 2010-09-29 Nicola Pero <nicola.pero@meta-innovation.com>
263 * c-parser.c (c_lex_one_token): In Objective-C, do not replace
264 token->value with the canonical spelling. Do exactly like C and
265 C++ and leave it as it is.
267 2010-09-28 Richard Henderson <rth@redhat.com>
269 * config/alpha/alpha.c (alpha_builtins): New.
270 (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
271 (alpha_builtin_function): New.
272 (alpha_add_builtins, alpha_init_builtins): Use it.
274 2010-09-28 Nicola Pero <nicola.pero@meta-innovation.com>
276 * doc/standards.texi (Standards): Expanded the section on
277 Objective-C and Objective-C++.
279 2010-09-28 DJ Delorie <dj@redhat.com>
282 * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
285 2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
287 * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
288 attributes on methods.
289 (c_parser_objc_method_definition): Handle attributes.
290 (c_parser_objc_methodproto): Likewise.
291 (c_parser_objc_maybe_method_attributes): New.
292 (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
293 missing definition, similar to that in ObjC++.
295 2010-09-28 Richard Henderson <rth@redhat.com>
297 * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
298 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
299 (CONFIG_SJLJ_EXCEPTIONS): Remove.
300 (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
301 (STACK_CHECK_PROTECT): Likewise.
302 * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
303 (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
304 (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
305 (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
306 (dwarf2out_assembly_start): Likewise.
307 * except.c (init_eh): Use targetm.except_unwind_info.
308 (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
309 (output_one_function_exception_table): Likewise.
310 * final.c: Unconditionally include dwarf2out.h.
311 (final_start_function): Unconditionally call dwarf2out routines.
312 (final_end_function, final_scan_insn): Likewise.
313 * function.c (expand_function_end): Use targetm.except_unwind_info.
314 * opts.c (decode_options): Use targetm.except_unwind_info.
315 * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
316 * target.def (debug_unwind_info, except_unwind_info): New.
317 * target.h (enum unwind_info_type): New.
318 * targhooks.c (default_debug_unwind_info): New.
319 (default_except_unwind_info): New.
320 (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
321 * targhooks.h: Declare them.
322 * tree-tailcall.c: Include "target.h"
323 (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
324 * Makefile.in (tree-tailcall.o): Update.
325 * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
326 (lhd_gcc_personality): Likewise.
328 * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
329 (TARGET_EXCEPT_UNWIND_INFO): New.
330 (DWARF2_UNWIND_INFO): Update.
331 (TARGET_DEBUG_UNWIND_INFO): New.
332 * doc/tm.texi: Rebuild.
334 * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
335 targetm.except_unwind_info.
337 * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
338 (arm_except_unwind_info): New.
339 (arm_compute_func_type): Use it.
340 (arm_expand_prologue, thumb_pushpop): Likewise.
341 (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
342 (arm_unwind_emit, arm_output_fn_unwind): Likewise.
343 * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
344 * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
345 (DWARF2_UNWIND_INFO): Remove.
346 (MUST_USE_SJLJ_EXCEPTIONS): Remove.
347 (ARM_EABI_UNWIND_TABLES): Remove.
349 * config/ia64/ia64.c (ia64_debug_unwind_info): New.
350 (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
351 (ia64_except_unwind_info): New.
352 (ia64_output_function_prologue): Use it.
353 (ia64_add_bundle_selector_before): Likewise.
354 (ia64_reorg, ia64_asm_unwind_emit): Likewise.
355 * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
356 (TARGET_UNWIND_INFO): Remove.
358 * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
360 2010-09-28 Iain Sandoe <iains@gcc.gnu.org>
362 * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
363 (c_parser_objc_protocol_definition): Likewise.
364 (c_parser_external_declaration): Provide dummy attribute arguments.
365 (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
366 (c_parser_objc_class_definition): Handle attributes.
367 (c_parser_objc_protocol_definition): Likewise.
369 2010-09-28 Tobias Burnus <burnus@net-b.de>
373 * toplev.h (save_decoded_options, save_decoded_options_count):
374 New global variables.
375 * toplev.c (save_decoded_options, save_decoded_options_count):
378 2010-09-28 Ian Lance Taylor <iant@google.com>
380 * config/i386/i386.c (ix86_supports_split_stack): Test
381 HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than
382 dwarf2out_do_cfi_asm.
384 2010-09-28 Ian Lance Taylor <iant@google.com>
387 * opts.c (decode_options): Don't test whether the target supports
388 split stack if flag_split_stack == 0.
390 2010-09-28 Jan Hubicka <jh@suse.cz>
392 * builtin-attrs.def (ATTR_LEAF): New attribute.
393 (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
394 ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
395 ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
396 ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
397 ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
398 ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
399 ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
400 * sync-builtins.def: Annotate all builtins by leaf.
401 * omp-builtins.def: Annotate all builtins by leaf.
402 * builtins.def: Annotate relevant builtins with leaf attribute.
403 (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
404 ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
407 2010-09-28 Jan Hubicka <jh@suse.cz>
409 * tree-ssa-ccp.c (fold_ctor_reference): New function.
410 (fold_const_aggregate_ref): Use it.
411 * fold-const.c (canonicalize_constructor_val): Check that we don't fold
412 into external static.
414 2010-09-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
417 * config/i386/i386.opt (mvect8-ret-in-mem): Define.
418 * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
419 (ix86_solaris_return_in_memory): Remove.
420 * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
421 * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
422 (TARGET_SUBTARGET_DEFAULT): Redefine.
423 * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
424 * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
425 (TARGET_SUBTARGET_DEFAULT): Redefine.
426 * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
428 (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
430 2010-09-29 Alan Modra <amodra@gmail.com>
433 * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
434 * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
435 * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
437 * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
438 (rs6000_emit_prologue): Don't just create frame save info for r2,
441 2010-09-28 Richard Henderson <rth@redhat.com>
443 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
444 when 8 bytes are requested.
446 2010-09-28 Tristan Gingold <gingold@adacore.com>
448 * config/avr/avr.c (expand_prologue): Set
449 current_function_static_stack_size.
451 2010-09-28 Tristan Gingold <gingold@adacore.com>
453 * config/alpha/alpha.md: Change the initial condition of the
456 2010-09-28 Uros Bizjak <ubizjak@gmail.com>
458 * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
459 Split from *avx_<maxmin:code><mode>3.
460 (*avx_<smaxmin:code><mode>3): Ditto.
461 * config/i386/i386.md (maxmin): Remove code iterator.
463 2010-09-27 Ian Lance Taylor <iant@google.com>
465 * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
466 requires assembler support for CFI directives.
468 2010-09-27 Richard Henderson <rth@redhat.com>
470 * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
472 2010-09-27 Hans-Peter Nilsson <hp@axis.com>
474 * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
475 that AFTER is not in the range FROM..TO, inclusive.
477 2010-09-27 Hans-Peter Nilsson <hp@axis.com>
478 Bernd Schmidt <bernds@codesourcery.com>
480 PR rtl-optimization/45792
481 * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
482 If not all insns are to be merged, for each edge, stash the
483 next candidate after the to-be-merged insns before doing the
484 merge, and use them for the retry at the new insertion point.
485 Handle CC0 targets when retrying.
487 2010-09-27 Ian Lance Taylor <iant@google.com>
489 * common.opt (fsplit-stack): New option.
490 * opts.c (decode_options): Set flag_split_stack to final value.
491 * target.def (supports_split_stack): New hook.
492 * gcc.c (STACK_SPLIT_SPEC): Define.
493 (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
494 * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
495 (Code Gen Options): Document -fsplit-stack.
496 * doc/extend.texi (Function Attributes): Mention no_split_stack.
497 (Function Attributes): Document no_split_stack.
498 * doc/tm.texi.in (Stack Smashing Protection): Add @hook
499 TARGET_SUPPORTS_SPLIT_STACK.
500 * doc/tm.texi: Rebuild.
501 * function.c (thread_prologue_and_epilogue_insns): If
502 flag_split_stack, add split stack prologue.
503 * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
504 * varasm.c (saw_no_split_stack): New static variable.
505 (assemble_start_function): Set saw_no_split_stack if the function
506 has the no_split_stack attribute.
507 (file_end_indicate_split_stack): New function.
508 * output.h (file_end_indicate_split_stack): Declare.
509 * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
511 * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
513 * config/i386/i386.c (ix86_option_override_internal): Don't set
514 expand_builtin_va_start to NULL if -fsplit-stack.
515 (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
517 (ix86_va_start): If -fsplit-stack, get overflow pointer from
518 scratch register set by prologue.
519 (ix86_code_end): If -fsplit-stack, call
520 file_end_indicate_split_stack.
521 (ix86_supports_split_stack): New static function.
522 (SPLIT_STACK_AVAILABLE): Define.
523 (split_stack_prologue_scratch_regno): New static function.
524 (split_stack_fn): New static variable.
525 (ix86_expand_split_stack_prologue): New function.
526 (ix86_live_on_entry): New static function.
527 (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
528 (output_pic_addr_const): Likewise.
529 (i386_asm_output_addr_const_extra): Likewise.
530 (ix86_expand_call): Change return type to rtx. Return the new
532 (TARGET_SUPPORTS_SPLIT_STACK): Define.
533 (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
534 * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
535 (split_stack_prologue, split_stack_return): New insns.
536 (split_stack_space_check): New insn.
537 * config/i386/i386.h (struct machine_function): Add
538 split_stack_varargs_pointer field.
539 * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
540 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
541 * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
542 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
543 * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
545 (ix86_expand_call): Update declaration.
547 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
549 * doc/objc.texi (Type encoding): Added the new 'long double' (D)
550 code. Added byref, which was missing in the list of codes.
551 Explain that enumeration values are encoded as the integer type
552 that the compiler uses to store them. Explain and make examples
553 of how 'const' interacts with pointers, and the complication of
554 the encoding of 'const char *'.
555 (Legacy type encoding): New subsection, explaining that GCC emits
556 incorrect type encodings for the NeXT runtime for compatibility
558 (@@encode): New subsection, explaining @encode and particularly
559 that protocol qualifiers are not recognized inside an @encode()
561 (Method signatures): New subsection, explaining how method
562 signatures are encoded.
564 2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
566 Merge from 'apple/trunk' branch on FSF servers. Removed small
567 change in build_conditional_expr that had been added when fixing
568 PR objc/27377 and which did the same check in a less complete way.
570 2005-12-15 Fariborz Jahanian <fjahanian@apple.com>
573 * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
574 looking for objective-c common pointer types.
576 2005-06-22 Ziemowit Laski <zlaski@apple.com>
579 * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
580 use their ObjC common type.
582 2010-09-27 Richard Guenther <rguenther@suse.de>
584 * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
586 2010-09-27 Jie Zhang <jie@codesourcery.com>
588 * print-tree.c (print_node): Print in-constant-pool.
590 2010-09-27 Uros Bizjak <ubizjak@gmail.com>
592 * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
593 (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
594 (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
595 (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
597 2010-09-26 Uros Bizjak <ubizjak@gmail.com>
599 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
600 from pro_epilogue_adjust_stack_<mode>_{1,2}.
601 (pro_epilogue_adjust_stack_<mode>_add): Rename from
602 pro_epilogue_adjust_stack_<mode>_3.
603 * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
604 renamed pro_epilogue_adjust_stack_{si,di}_add.
605 (ix86_expand_prologue): Use indirect functions. Update for renamed
606 pro_epilogue_adjust_stack_{si,di}_sub.
608 2010-09-26 Uros Bizjak <ubizjak@gmail.com>
610 * config/i386/i386.md (movmsk_df): New insn.
611 (signbitdf): Split out of signbit<mode>2. Generate movmsk_df
612 sequence for TARGET_SSE_MATH.
614 2010-09-26 Richard Sandiford <rdsandiford@googlemail.com>
616 * config/mips/mips.c (mips_builtin_decls): Declare.
617 (mips_init_builtins): Store function declarations in
619 (mips_builtin_decl): New function.
620 (TARGET_BUILTIN_DECL): Define.
622 2010-09-25 Kai Tietz <kai.tietz@onevision.com>
623 Richard Henderson <rth@redhat.com>
625 * config/i386/cygwin.asm: Include auto-host.h.
626 (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
627 cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
628 (__chkstk, __alloca): Annotate for dwarf2 unwind info. Drop
629 alignment code from the 64-bit path. Use gas local labels.
630 * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
631 from _di_2. Remove the useless constant integer argument.
632 (pro_epilogue_adjust_stack_<mode>_3): New.
633 (allocate_stack_worker_probe_<mode>): Macroize from
634 allocate_stack_worker_{32,64}. Use __chkstk_ms. Update all users.
635 * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
636 use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
637 (__chkstk_ms): New function.
638 * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
639 * gcc/config/i386/t-interix: Likewise.
640 * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
641 (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
642 (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
643 * configure, config.in: Rebuild.
645 2010-09-25 Eric Botcazou <ebotcazou@adacore.com>
647 * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
648 statements because of the return slot optimization.
650 2010-09-25 Anatoly Sokolov <aesok@post.ru>
652 * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
653 * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
654 * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
655 (class_likely_spilled_p): Rename to...
656 (avr_class_likely_spilled_p): ...this. Make static. Change argument
659 2010-09-24 Jan Hubicka <jh@suse.cz>
661 * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
662 (lto_symtab_resolve_symbols): Set it.
663 (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
664 store resolution field in cgraph/varpool.
665 * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
666 (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
667 (cgraph_dump_node): Drop used_from_object_file.
668 (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
669 (cgraph_function_body_availability): Use decl_replaceable_p.
670 (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
671 (cgraph_can_remove_if_no_direct_calls_and_refs): Use
672 cgraph_used_from_object_file_p.
673 (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
674 cgraph_used_from_object_file_p.
675 (resolution_used_from_other_file_p): New functoin.
676 (cgraph_used_from_object_file_p): New predicate.
677 * cgraph.h: Include plugin-api.h
678 (struct cgraph_local_info): Remove used_from_object_file.
679 (struct cgraph_node): Add resolution field.
680 (struct varpool_node): Likewise; remove used_from_object_file;
681 reove const_value_known.
682 (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
683 cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
684 (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
685 varpool_used_from_object_file_p): Declare.
686 (varpool_get_node, varpool_extra_name_alias): Update prototype.
687 * tree.h (DECL_REPLACEABLE_P): Remove.
688 (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
689 * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
690 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
691 input_overwrite_node, input_node, input_varpool_node): Stream
693 * expr.c (expand_expr_real_1): Use const_value_known_p
694 * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
696 (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
697 (function_and_variable_visibility): Set resolution for local vars
698 and functions; use varpool_used_from_object_file_p.
699 * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
701 (default_binds_local_p_1): Use resolutoin info.
702 (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
703 * varpool.c (varpool_get_node): Constify.
704 (const_value_known_p): Do not use vnode->const_value_known;
705 use decl_replaceable_p.
706 (varpool_finalize_decl): Do not set const_value_known.
707 (cgraph_variable_initializer_availability): Use decl_replaceable_p
708 (varpool_extra_name_alias): Return new node.
709 (varpool_used_from_object_file_p): New function.
711 2010-09-24 Richard Henderson <rth@redhat.com>
713 * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
714 (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
715 (do_spill): Use REG_CFA_OFFSET.
716 (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
718 (ia64_expand_epilogue): Likewise.
719 (process_set): Split into ...
720 (process_cfa_adjust_cfa): this,
721 (process_cfa_register): this,
722 (process_cfa_offset): and this new function.
723 (ia64_asm_unwind_emit): Use them. Expect REG_CFA_* notes
724 instead of REG_FRAME_RELATED_EXPR.
726 2010-09-24 Olivier Hainque <hainque@adacore.com>
728 * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
730 2010-09-24 Jan Hubicka <jh@suse.cz>
732 * doc/extend.texi: (attribute leaf): Document.
733 * tree.c (local_define_builtin): Handle ECF_LEAF.
734 (build_common_builtin_nodes): Set ECF_LEAF where needed.
735 * tree.h (ECF_LEAF): New.
736 * ipa-reference.c (propagate_bits): For leaf calls propagate ever
737 overwrittable and unavailable functions.
738 (ipa_init): Put all_module_statics into optimization_summary_obstack.
739 (copy_global_bitmap): Do not copy all_module_statics.
740 (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
741 (propagate): Handle overwritable and unavailable leaf functions;
742 initialize global info for overwritable and unavailable leaf functions;
743 do not free all module statics.
744 (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
746 * calls.c (flags_from_decl_or_type): Handle leaf.
747 * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
750 2010-09-24 Basile Starynkevitch <basile@starynkevitch.net>
752 * gengtype.c: Reindented.
753 * gengtype.h: Reindented.
754 * gengtype-parse.c: Reindented.
756 2010-09-24 Jan Hubicka <jh@suse.cz>
758 PR tree-optimization/45738
759 PR tree-optimization/45741
760 * expr.c (string_constant): Allow CONST_DECL too;
761 check that DECL_INITIAL is set.
762 * varpool.c (const_value_known_p): Only look into VAR_DECL
765 2010-09-24 Joseph Myers <joseph@codesourcery.com>
767 * common.opt (undef): New.
769 2010-09-24 Jakub Jelinek <jakub@redhat.com>
772 * rtl.h (enum global_rtl_index): Add
773 GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
774 (LAST_VIRTUAL_POINTER_REGISTER): Define.
775 (virtual_preferred_stack_boundary_rtx,
776 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
777 (LAST_VIRTUAL_REGISTER): Increase by one.
778 (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
779 instead of LAST_VIRTUAL_REGISTER.
780 * function.c (instantiate_new_reg): Handle
781 virtual_preferred_stack_boundary_rtx.
782 * emit-rtl.c (init_virtual_regs): Handle
783 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
784 (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
785 * explow.c (round_push): If crtl->preferred_stack_boundary
786 is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
787 virtual_preferred_stack_boundary_rtx alignment instead of
788 crtl->preferred_stack_boundary alignment.
789 (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
790 macros. Never decrease crtl->preferred_stack_boundary,
791 use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
792 instead of PREFERRED_STACK_BOUNDARY. Don't modify
793 stack_pointer_delta in dynamic allocation, even when size
795 (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
797 * print-rtl.c (print_rtx): Handle
798 VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
799 * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
800 LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
801 * config/frv/frv.c (frv_emit_movsi): Likewise.
802 * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
803 * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
807 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
810 * calls.c (expand_call): Make sure that all variable sized
811 adjustments are multiple of preferred stack boundary after
814 2010-09-24 Iain Sandoe <iains@gcc.gnu.org>
815 Dominique Dhumieres <dominiq@lps.ens.fr>
818 * gcc/config/darwin-driver.c (darwin_default_min_version):
819 Adjust size passed to memcpy in two places.
821 2010-09-24 Richard Guenther <rguenther@suse.de>
823 * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
824 Make sure to not call set_type_context with error_mark_node.
825 * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
827 2010-09-24 Richard Guenther <rguenther@suse.de>
829 * Makefile.in (OBJS-onestep): Remove.
830 (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
831 (libbackend.a): Remove onestep support.
832 (libbackend.o): Remove.
833 * configure.ac (--enable-intermodule): Remove.
834 * configure: Regenerate.
836 2010-09-24 Bernd Schmidt <bernds@codesourcery.com>
838 * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
839 reaching the end of a block if it occurs at a DEBUG_INSN.
841 2010-09-09 Tristan Gingold <gingold@adacore.com>
844 * config/vms/vms-crt0-64.c: Removed.
845 * config/vms/vms-crt0.c: Removed.
846 * config/vms/vms-psxcrt0-64.c: Removed.
847 * config/vms/vms-psxcrt0.c: Removed.
848 * config/vms/vms-ucrt0.c: New file.
849 * config/vms/t-vms64: Removed.
850 * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it. Remove DECC.
851 Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
852 * config.gcc (alpha-dec-vms): Use t-vms.
854 2010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
856 * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
857 underfull hbox in DVI output.
858 (-fobjc-class-cxx-cdtors): Same change.
859 (-fobjc-exceptions): Tidied up documentation. Explain what the
860 option does, but moved the (lenghty) description of the exception
861 syntax into objc.texi.
862 (-fobjc-gc): Explain that the option is not useful with the GNU
864 (-fzero-link): Explain that the GNU runtime always works in
866 * doc/objc.texi: All sections: simplified @node declarations
867 removing specification of next, previous, up node.
868 (Objective-C): Updated introduction.
869 (Garbage Collection): Updated. The bohem-gc library is now
870 included in gcc itself. Mention that this section only applies to
871 the GNU Objective-C runtime.
872 (compatibility_alias): Small tidy up.
873 (Exceptions): New section mostly containing text previously in the
874 description of the -fobjc-exception command-line option.
875 (Synchronization): Same.
877 2010-09-24 Uros Bizjak <ubizjak@gmail.com>
879 * config/i386/i386.md (ix86_code_end): Move the initialization of
880 xops array near the consumer. Use AX_REG and SP_REG instead of
883 2010-09-24 Nicola Pero <nicola.pero@meta-innovation.com>
885 * c-typeck.c (convert_arguments): Use warning 'too many arguments to
886 method [methodname]' for an Objective-C method instead of the less
887 satisfactory 'too many arguments to function' (with no method name).
889 2010-09-23 Eric Botcazou <ebotcazou@adacore.com>
891 * tree-flow.h (execute_update_addresses_taken): Remove parameter.
892 * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
893 (execute_update_addresses_taken): Remove parameter. Execute the
894 optimization unconditionally.
895 * passes.c (execute_function_todo): Call execute_update_addresses_taken
896 unconditionally if TODO_rebuild_alias is set, else only when optimizing
897 if TODO_update_address_taken is set.
899 2010-09-23 Anatoly Sokolov <aesok@post.ru>
901 * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
902 * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
903 * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
904 (arm_output_addr_const_extra): Make static.
906 2010-09-23 Uros Bizjak <ubizjak@gmail.com>
908 * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
909 define as unspec_volatile.
910 ("nops"): Define as unspec_volatile. Use fputs to write to
911 asm_out_file directly. Output NOPs on separate lines using while loop.
912 * config/i386/i386.c (ix86_code_end): Use fputs to write to
913 asm_out_file directly. Output NOPs on separate lines using while loop.
915 2010-09-23 Richard Guenther <rguenther@suse.de>
917 PR tree-optimization/45565
918 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
919 Make sure to adjust the fndecl before replacing the stmt.
921 2010-09-23 Richard Guenther <rguenther@suse.de>
924 * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
927 2010-09-23 Alan Modra <amodra@gmail.com>
929 * config/rs6000/rs6000.c (toc_relative_ok): Delete.
930 (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
932 2010-09-23 Bernd Schmidt <bernds@codesourcery.com>
934 PR rtl-optimization/44374
935 * basic-block.h (enum bb_flags): Add BB_MODIFIED.
936 * df-core.c (df_set_bb_dirty): Set it.
937 * ifcvt.c (find_memory): Remove function.
938 (dead_or_predicable): Use can_move_insns_across.
939 * df.h (can_move_insns_across): Declare function.
940 * cfgcleanup.c (block_was_dirty): New static variable.
941 (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
942 than df_get_bb_dirty.
943 (try_head_merge_bb): New static function.
944 (try_optimize_cfg): Call it. Call df_analyze if block_was_dirty
946 * df-problems.c: Include "target.h"
947 (df_simulate_find_uses): New static function.
948 (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
949 (find_memory, find_memory_store): New static functions.
950 (can_move_insns_across): New function.
951 * Makefile.in (df-problems.o): Update dependencies.
953 2010-09-22 Eric Botcazou <ebotcazou@adacore.com>
956 * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
957 is specified and the suffix of the file isn't ".c".
958 * config/sparc/linux64.h (ASM_SPEC): Likewise.
960 2010-09-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
962 * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
963 * doc/cppopts.texi: Fix markup of index entry.
964 * doc/extend.texi (Constructing Calls): Fix markup of
965 __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
966 (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
967 (Vague Linkage, C++ Attributes): Fix markup of index entries and
969 * doc/invoke.texi (Option Summary): Fix spacing. Rewrap to
971 (C Dialect Options, C++ Dialect Options, Warning Options)
972 (Debugging Options, Spec Files, Darwin Options)
973 (i386 and x86-64 Options, MIPS Options)
974 (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
975 index entries, avoid abbreviations, allow URLs to wrap, avoid
976 long lines, avoid overlong pages from long @itemx lists.
977 * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
978 * doc/standards.texi (Standards): Likewise.
979 * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
981 2010-09-22 Joseph Myers <joseph@codesourcery.com>
983 * opts-common.c (prune_options): Make static. Work with decoded
985 (decode_cmdline_options_to_array): Call prune_options. Don't
986 resize option array here.
987 * opts.h (prune_options): Remove prototype.
988 * gcc.c (process_command): Take decoded options; don't call
989 decode_cmdline_options_to_array here. Use decoded options for argv[0].
990 (main): Call decode_cmdline_options_to_array here instead of
991 prune_options. Update call to process_command.
992 * config/darwin-driver.c: Include opts.h.
993 (darwin_default_min_version): Work with decoded options. Don't
994 handle -b or -V here.
995 * config/darwin.h (darwin_default_min_version): Update prototype.
996 (GCC_DRIVER_HOST_INITIALIZATION): Update call to
997 darwin_default_min_version.
998 * config/i386/cygwin.h (mingw_scan): Update prototype.
999 (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
1000 * config/i386/cygwin1.c: Include opts.h.
1001 (mingw_scan): Work with decoded options.
1002 * config/i386/t-cygwin (cygwin1.o): Update dependencies.
1003 * config/t-darwin (darwin-driver.o): Update dependencies.
1005 2010-09-22 Joseph Myers <joseph@codesourcery.com>
1007 * common.opt (-assemble, -compile, -coverage, -debug, -dump,
1008 -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
1009 -for-assembler, -for-assembler=, -for-linker, -for-linker=,
1010 -force-link, -force-link=, -language, -language=,
1011 -library-directory, -library-directory=, -no-canonical-prefixes,
1012 -no-standard-libraries, -no-warnings, -optimize, -output,
1013 -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
1014 -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
1015 -print-file-name=, -print-libgcc-file-name,
1016 -print-multi-directory, -print-multi-lib,
1017 -print-multi-os-directory, -print-prog-name, -print-prog-name=,
1018 -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
1019 -profile, -save-temps, -shared, -specs, -specs=, -static,
1020 -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
1022 (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
1023 * gcc.c (A Short Introduction to Adding a Command-Line Option):
1025 (cc1_options): Correct specs for passing down --help,
1026 --target-help and --help=*. Add spec for passing down --version.
1027 (struct option_map, option_map, target_option_translations,
1028 translate_options): Remove.
1029 (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
1030 and OPT__target_help instead of OPT_fversion, OPT_fhelp,
1031 OPT_fhelp_ and OPT_ftarget_help.
1032 (process_command): Don't call translate_options. Call
1033 decode_cmdline_options_to_array before checking for
1034 -no-canonical-prefixes using decoded options.
1035 * opts-common.c (tm.h): Update comment on #include.
1036 (find_opt): Allow abbreviations of long options.
1037 (struct option_map, option_map): New.
1038 (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
1040 (target_option_translations): New.
1041 (decode_cmdline_options_to_array): Handle
1042 TARGET_OPTION_TRANSLATE_TABLE in driver.
1043 * opts.c (common_handle_option): Don't handle OPT_fhelp,
1044 OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
1046 2010-09-22 Richard Guenther <rguenther@suse.de>
1048 * tree-inline.c (optimize_inline_calls): Schedule cleanups
1049 only if we inlined something. Block compaction and conditional
1050 folding are done by cfg cleanup. Schedule update-address-taken.
1051 (tree_function_versioning): Remove redundant call to number_blocks.
1052 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
1053 folding is done by cfg cleanup.
1054 * passes.c (init_optimization_passes): Remove update-address-taken
1055 pass after IPA inlining.
1057 2010-09-22 Chung-Lin Tang <cltang@codesourcery.com>
1059 * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
1060 to update conditions. Fix reg_mode[] check.
1062 2010-09-22 Hariharan Sandanagobalane <hariharan@picochip.com>
1064 * config/picochip/picochip.md (movhicc): Use expand to check whether
1065 movhicc is available and split it after reload.
1067 2010-09-22 Richard Guenther <rguenther@suse.de>
1069 * tree-ssanames.c (release_dead_ssa_names): Do not remove
1071 * passes.c (init_optimization_passes): Remove early CFG cleanup.
1072 * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
1073 (pass_cleanup_cfg): Likewise.
1074 (execute_fixup_cfg): Cleanup.
1075 * tree-pass.h (pass_cleanup_cfg): Remove.
1077 2010-09-22 Martin Jambor <mjambor@suse.cz>
1079 * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
1080 builtins if it is true.
1081 (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
1084 2010-09-22 Martin Jambor <mjambor@suse.cz>
1086 * tree-sra.c (struct access): New field grp_no_warning.
1087 (create_access_replacement): Set TREE_NO_WARNING according to
1089 (create_artificial_child_access): Use build_ref_for_model and set
1090 grp_no_warning if build_user_friendly_ref_for_offset fails.
1091 (propagate_subaccesses_across_link): Likewise.
1093 2010-09-22 Eric Botcazou <ebotcazou@adacore.com>
1096 * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
1099 2010-09-22 Tristan Gingold <gingold@adacore.com>
1101 * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
1103 2010-09-22 Uros Bizjak <ubizjak@gmail.com>
1105 * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
1106 * config/i386/i386.c (decide_alg): Update for rename.
1108 2010-09-22 Jakub Jelinek <jakub@redhat.com>
1110 PR rtl-optimization/45739
1111 * simplify-rtx.c (simplify_binary_operation_1): Optimize even
1112 vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
1114 2010-09-21 Anatoly Sokolov <aesok@post.ru>
1116 * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
1117 * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
1119 * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
1120 (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1122 2010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
1125 * c-parser.c (c_parser_objc_method_definition): Check the return
1126 value of objc_start_method_definition and if false is returned,
1127 parse the method definition but emit no code.
1129 2010-09-21 Nicola Pero <nicola.pero@meta-innovation.com>
1132 * c-decl.c (detect_field_duplicates): If compiling Objective-C,
1133 call objc_get_interface_ivars ().
1135 2010-09-21 Kai Tietz <kai.tietz@onevision.com>
1138 * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
1139 static chain-register is used for 64-bit.
1141 2010-09-21 Richard Guenther <rguenther@suse.de>
1143 * dwarf2out.c (is_cu_die): New function.
1144 (add_pubtype): Use it.
1145 (gen_subprogram_die): Likewise.
1146 (gen_struct_or_union_type_die): Likewise.
1147 (dwarf2out_finish): Likewise.
1148 (comp_unit_die): Rename to ...
1149 (single_comp_unit_die): ... this.
1150 (comp_unit_die): New function lazily constructing and
1151 returning single_comp_unit_die.
1152 (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
1153 base_type_die, subrange_type_die, modified_type_die,
1154 lower_bound_default, add_bound_info, add_prototyped_attribute,
1155 dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
1156 dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
1157 force_decl_die, gen_namespace_die, dwarf2out_decl,
1158 dwarf2out_start_source_file, dwarf2out_end_source_file,
1159 prune_unused_types, dwarf2out_finish): Use it.
1160 (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
1161 the global list of translation-unit decls.
1162 (dwarf2out_init): Do not create single_comp_unit_die here.
1163 (force_decl_die): Handle TRANSLATION_UNIT_DECL.
1165 2010-09-21 Richard Guenther <rguenther@suse.de>
1167 * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
1170 2010-09-21 Bernd Schmidt <bernds@codesourcery.com>
1172 * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
1173 (qhs_extenddi_cstr): Likewise.
1174 * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
1175 them for the source operand.
1177 2010-09-21 Uros Bizjak <ubizjak@gmail.com>
1179 * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
1180 to half_width. Use GET_MODE_BITSIZE to calculate mode size.
1181 (ix86_split_ashr): Ditto.
1182 (ix86_split_lshr): Ditto.
1184 2010-09-21 Richard Guenther <rguenther@suse.de>
1186 PR tree-optimization/45580
1187 * tree-ssa-propagate.c (substitute_and_fold): Always replace
1189 * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
1190 virtuals fold the call into a regular indirect one.
1192 2010-09-20 Eric Botcazou <ebotcazou@adacore.com>
1194 PR rtl-optimization/42775
1195 * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
1196 scheduling is enabled.
1198 2010-09-20 Jakub Jelinek <jakub@redhat.com>
1200 PR rtl-optimization/45728
1201 * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
1202 gen_lowpart_common first and if that fails, force_reg first
1203 before calling gen_lowpart.
1206 * cfgexpand.c (expand_one_stack_var_at): Use
1207 crtl->max_used_stack_slot_alignment as max_align, instead
1208 of maximum of that and PREFERRED_STACK_BOUNDARY.
1209 Don't call update_stack_alignment.
1211 2010-09-20 Eric Botcazou <ebotcazou@adacore.com>
1213 * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
1214 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
1215 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
1216 * system.h (LANG_HOOKS_HASH_TYPES): Poison.
1217 * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
1218 (build_nonstandard_integer_type): Likewise.
1219 (build_range_type_1): New function, built from...
1220 (build_range_type): ...this. Call build_range_type_1.
1221 (build_nonshared_range_type): New function.
1222 (build_array_type_1): New function, built from...
1223 (build_array_type: ...this. Call build_array_type_1.
1224 (build_nonshared_array_type): New function.
1225 * tree.h (build_nonshared_range_type): Declare.
1226 (build_nonshared_array_type): Likewise.
1228 2010-09-20 Anatoly Sokolov <aesok@post.ru>
1230 * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
1231 * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1232 (arm_class_likely_spilled_p): New function.
1234 2010-09-20 Uros Bizjak <ubizjak@gmail.com>
1236 * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
1238 (ix86_split_ashl): Ditto.
1239 (ix86_split_ashr): Ditto.
1240 (ix86_split_lshr): Ditto.
1241 (ix86_adjust_counter): Ditto.
1243 2010-09-20 Nicola Pero <nicola.pero@meta-innovation.com>
1245 * c-family/c-common.h (constant_string_class): Documented with
1246 comment identical to the one already in c-common.c.
1248 2010-09-20 Jakub Jelinek <jakub@redhat.com>
1250 * dwarf2out.c (any_cfis_emitted): New static variable.
1251 (add_fde_cfi): Set it.
1252 (dwarf2out_frame_debug): Clear it before processing,
1253 if it is set afterwards, flush any queued reg saves.
1256 * dwarf2out.c (add_accessibility_attribute): Assume
1257 DW_ACCESS_private as the default for dwarf_version > 2
1258 and DW_TAG_class_type parent.
1259 (gen_inheritance_die): Assume DW_ACCESS_public as the default
1260 for dwarf_version > 2 and parent other than DW_TAG_class_type.
1262 2010-09-20 Rafael Carre <rafael.carre@gmail.com>
1265 * arm.md (arm_movt): Only enable on machines with MOVT.
1267 2010-09-20 Jie Zhang <jie@codesourcery.com>
1269 * config/arm/arm.c (arm_address_offset_is_imm): New.
1270 (arm_early_store_addr_dep): New.
1271 (arm_early_load_addr_dep): New.
1272 * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
1273 (arm_early_load_addr_dep): Declare.
1274 (arm_address_offset_is_imm): Declare.
1275 * config/arm/cortex-m4.md: New file.
1276 * config/arm/cortex-m4-fpu.md: New file.
1277 * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
1278 (attr generic_sched): Exclude cortexm4.
1279 (attr generic_vfp): Exclude cortexm4.
1281 2010-09-20 Richard Guenther <rguenther@suse.de>
1284 * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
1286 2010-09-20 Jan Hubicka <jh@suse.cz>
1288 PR tree-optimize/45605
1289 * cgraph.h (const_value_known_p): Declare.
1290 (varpool_decide_const_value_known): Remove.
1291 * tree-ssa-ccp.c (get_base_constructor): Use it.
1292 * lto-cgraph.c (compute_ltrans_boundary): Likewise.
1293 * expr.c (string_constant): Likewise.
1294 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
1295 * ipa.c (ipa_discover_readonly_nonaddressable_var,
1296 function_and_variable_visibility): Likewise.
1297 * gimplify.c (gimplify_call_expr): Likewise.
1298 * gimple-fold.c (get_symbol_constant_value): Likewise.
1299 * varpool.c (varpool_decide_const_value_known): Replace by...
1300 (const_value_known_p): ... this one; handle other kinds of DECLs
1301 too and work for automatic vars.
1302 (varpool_finalize_decl): Use const_value_known_p.
1304 2010-09-20 Rafael Carre <rafael.carre@gmail.com>
1307 * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
1309 2010-09-20 Richard Guenther <rguenther@suse.de>
1311 PR tree-optimization/45705
1312 * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
1314 2010-09-20 Jakub Jelinek <jakub@redhat.com>
1316 PR rtl-optimization/45695
1317 * combine.c (try_combine): When splitting a two set pattern,
1318 make sure the pattern which will be put into i2 doesn't use REGs
1319 or MEMs set by insns in between i2 and i3.
1321 2010-09-19 Jan Hubicka <jh@suse.cz>
1324 * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
1325 processing same node twice.
1327 2010-09-19 Anatoly Sokolov <aesok@post.ru>
1329 * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
1330 * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1331 (bfin_class_likely_spilled_p): New function
1333 2010-09-19 Ira Rosen <irar@il.ibm.com>
1335 PR tree-optimization/45714
1336 * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
1337 created in vectorizable_call instead of the original statement in
1340 2010-09-19 Uros Bizjak <ubizjak@gmail.com>
1342 * config/i386/i386-protos.h (split_double_mode): New prototype.
1343 (split_di, split_ti): Remove prototypes.
1344 * config/i386/i386.c (split_double_mode): New function.
1345 (split_di, split_ti): Remove.
1346 (ix86_expand_branch): Use split_double_mode.
1347 (ix86_split_to_parts): Ditto.
1348 (ix86_split_ashl): Ditto.
1349 (ix86_split_ashr): Ditto.
1350 (ix86_split_lshr): Ditto.
1351 (ix86_force_to_memory): Ditto.
1352 * config/i386/i386.md: Use split_double_mode in double-mode splitters.
1354 2010-09-18 Jan Hubicka <jh@suse.cz>
1356 PR tree-optimization/45453
1357 * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
1358 virtual functions are reachable.
1359 * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
1360 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
1361 * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
1362 when modifying function.
1364 2010-09-18 Jan Hubicka <jh@suse.cz>
1366 PR tree-optimization/45605
1367 * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
1368 * gimple-fold.c (static_object_in_other_unit_p): New function.
1369 (canonicalize_constructor_val): Use it.
1370 (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
1372 (gimple_fold_obj_type_ref_known_binfo): Use
1373 static_object_in_other_unit_p.
1375 2010-09-18 Richard Guenther <rguenther@suse.de>
1377 PR tree-optimization/45709
1378 * tree-inline.c (copy_phis_for_bb): Delay commit of edge
1379 insertions until after all PHI nodes of the block are processed.
1381 2010-09-18 Tijl Coosemans <tijl@coosemans.org>
1383 * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
1385 2010-09-18 Kai Tietz <kai.tietz@onevision.com>
1387 * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
1389 2010-09-18 Richard Guenther <rguenther@suse.de>
1391 PR tree-optimization/45709
1392 * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
1394 2010-09-17 Sebastian Pop <sebastian.pop@amd.com>
1396 * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
1397 (dot_deps_stmt): Same.
1398 * graphite-poly.c (dot_lst): Same.
1399 * graphite-scop-detection.c (dot_all_scops): Same.
1402 2010-09-17 Sebastian Pop <sebastian.pop@amd.com>
1405 2009-12-16 Ben Elliston <bje@au.ibm.com>
1407 * tree-data-ref.c (dot_rdg_1): Added back.
1408 (dot_rdg): Same. Added "#if 0" around system call.
1410 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
1411 Richard Henderson <rth@redhat.com>
1413 * config/i386/i386.c (initial_ix86_tune_features): Add
1414 X86_TUNE_PAD_SHORT_FUNCTION.
1415 (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
1416 (ix86_count_insn): New.
1417 (ix86_pad_short_function): Likewise.
1418 (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
1420 * config/i386/i386.h (ix86_tune_indices): Add
1421 X86_TUNE_PAD_SHORT_FUNCTION.
1422 (TARGET_PAD_SHORT_FUNCTION): New.
1424 * config/i386/i386.md (UNSPEC_NOPS): New.
1427 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
1430 * calls.c (expand_call): Make sure that all variable sized
1431 adjustments are multiple of preferred stack boundary after
1434 2010-09-17 DJ Delorie <dj@redhat.com>
1436 * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
1437 passed an invalid value, print an error instead of ICEing.
1438 (valid_psw_flag): New.
1439 (rx_expand_builtin): Call it for setpsw/clrpsw.
1440 (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
1442 * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
1443 (bitclr_in_memory): Likewise.
1444 (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
1446 2010-09-17 H.J. Lu <hongjiu.lu@intel.com>
1449 * cfgexpand.c (update_stack_alignment): New.
1450 (get_decl_align_unit): Use it.
1451 (expand_one_stack_var_at): Call update_stack_alignment.
1453 2010-09-17 Richard Guenther <rguenther@suse.de>
1455 * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
1456 Properly copy the read string.
1458 2010-09-17 Joseph Myers <joseph@codesourcery.com>
1460 * doc/options.texi (Variable): Document.
1461 * optc-gen.awk, opth-gen.awk: Handle Variable records. Don't
1462 generate target_flags declarations explicitly. Don't define
1463 VarExists variables for the driver.
1464 * common.opt (target_flags): New Variable record.
1465 (flag_dump_unnumbered, flag_dump_unnumbered_links,
1466 flag_var_tracking, flag_var_tracking_assignments,
1467 flag_var_tracking_assignments_toggle): Don't mark variables with
1469 * config/i386/i386.c (ix86_isa_flags): Don't define here.
1470 * config/i386/i386.opt (ix86_isa_flags): Define here.
1471 * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
1472 * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
1474 * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
1475 * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
1476 Only define for generator programs.
1477 * rtlanal.c (target_flags): Remove.
1478 * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
1479 flag_var_tracking_assignments_toggle): Remove.
1481 2010-09-17 Michael Matz <matz@suse.de>
1483 PR tree-optimization/43432
1484 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
1485 Accept backwards consecutive accesses.
1486 (vect_create_data_ref_ptr): If step is negative generate
1488 * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
1489 (perm_mask_for_reverse, reverse_vec_elements): New functions.
1490 (vectorizable_load): Handle loads with negative steps when easily
1493 2010-09-03 Jan Hubicka <jh@suse.cz>
1495 * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
1497 2010-09-03 Naveen H.S <naveen.S@kpitcummins.com>
1499 * config/v850/v850.c (v850_function_value_regno_p): Make static.
1500 Adjust comments. Declare.
1501 (TARGET_FUNCTION_VALUE_REGNO_P): Define.
1502 * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
1504 2010-09-17 Richard Guenther <rguenther@suse.de>
1506 * common.opt (combine): Remove.
1507 * gcc.c (default_compilers): Remove specs testing combine.
1508 The C compilers no longer can combine.
1509 (option_map): Remove -combine.
1510 (display_help): Remove -combine.
1511 (driver_handle_option): Remove OPT_combine handling.
1512 (compile_input_file_p): Remove.
1513 (do_spec): Remove code concerning combine.
1515 * doc/invoke.texi: Remove traces of -combine.
1516 * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
1518 2010-09-17 Richard Guenther <rguenther@suse.de>
1521 * builtins.c (fold_builtin_memory_op): Always properly adjust
1522 alignment of memory accesses.
1524 2010-09-16 Jan Hubicka <jh@suse.cz>
1526 * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
1529 2010-09-16 H.J. Lu <hongjiu.lu@intel.com>
1531 * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
1533 * config/i386/i386.c (predict_jump): Add prototype.
1534 (flag_opts): Add -m8bit-idiv.
1535 (ix86_split_idivmod): New.
1537 * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
1538 Add 2 splitters for SI/DI mode divide.
1539 (divmod<mode>4_1): New pattern.
1540 (udivmod<mode>4_1): Likewise.
1541 (testdi_ccno_1): Likewise.
1543 * config/i386/i386.opt (m8bit-idiv): New.
1545 * doc/invoke.texi: Document -m8bit-idiv.
1547 2010-09-16 Reza Yazdani <reza.yazdani@amd.com>
1550 * config/i386/i386.c (min_insn_size): Moved out of the
1551 ASM_OUTPUT_MAX_SKIP_PAD ifdef.
1553 2010-09-16 Jan Hubicka <jh@suse.cz>
1555 * lto-cgraph.c (lto_output_node): Fix handling of clones.
1556 * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
1557 unreachable clones with reachable clones.
1558 * tree-inline.c (copy_bb): Fix sanity checking when producing
1561 2010-09-16 Anatoly Sokolov <aesok@post.ru>
1563 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
1564 (TARGET_MEMORY_MOVE_COST): Define.
1565 (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
1567 2010-09-16 Alexander Monakov <amonakov@ispras.ru>
1569 * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
1570 maybe_tidy_empty_bb.
1573 2010-09-06 Alexander Monakov <amonakov@ispras.ru>
1574 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
1576 2010-09-16 Joseph Myers <joseph@codesourcery.com>
1578 * target.def (target_option.optimization): New hook.
1579 * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
1580 TARGET_OPTION_OPTIMIZATION hook.
1581 * doc/tm.texi: Regenerate.
1582 * hooks.c (hook_void_int_int): New.
1583 * hooks.h (hook_void_int_int): Declare.
1584 * opts.c: Don't include tm_p.h.
1585 (decode_options): Use targetm.target_option.optimization instead
1586 of OPTIMIZATION_OPTIONS.
1587 * system.h (OPTIMIZATION_OPTIONS): Poison.
1588 * config/arm/arm-protos.h (arm_optimization_options): Remove.
1589 * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
1590 (arm_optimization_options): Rename to arm_option_optimization.
1592 * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
1593 * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
1594 (cris_option_optimization): New.
1595 * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
1596 * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
1597 (crx_option_optimization): New.
1598 * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
1599 * config/frv/frv-protos.h (frv_optimization_options): Remove.
1600 * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
1601 (frv_optimization_options): Rename to frv_option_optimization.
1603 * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
1604 * config/h8300/h8300.c (h8300_option_optimization): New.
1605 (TARGET_OPTION_OPTIMIZATION): Define.
1606 * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
1607 * config/i386/i386-protos.h (optimization_options): Remove.
1608 * config/i386/i386.c (optimization_options): Rename to
1609 ix86_option_optimization. Make static.
1610 (TARGET_OPTION_OPTIMIZATION): Define.
1611 * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
1612 * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
1613 * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
1614 (ia64_optimization_options): Rename to ia64_option_optimization.
1615 Make static. Call SUBTARGET_OPTIMIZATION_OPTIONS.
1616 * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove. Remove
1617 commented-out definition.
1618 * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
1619 instead of OPTIMIZATION_OPTIONS.
1620 * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
1621 (m32r_option_optimization): New.
1622 * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
1623 * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
1625 * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
1626 (mcore_option_optimization): New.
1627 * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
1628 * config/mep/mep-protos.h (mep_optimization_options): Remove.
1629 * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
1630 (mep_optimization_options): Rename to mep_option_optimization.
1631 Make static. Take unused level and size parameters.
1632 * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
1633 * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
1634 (mmix_option_optimization): New.
1635 * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
1636 * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
1637 (pdp11_option_optimization): New.
1638 * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
1639 * config/rs6000/rs6000-protos.h (optimization_options): Remove.
1640 * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
1641 (optimization_options): Rename to rs6000_option_optimization.
1643 * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
1644 * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
1645 * config/rx/rx.c (rx_set_optimization_options): Rename to
1646 rx_option_optimization. Make static. Take unused level and size
1648 (TARGET_OPTION_OPTIMIZATION): Define.
1649 * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
1650 * config/s390/s390-protos.h (optimization_options): Remove.
1651 * config/s390/s390.c (optimization_options): Rename to
1652 s390_option_optimization. Make static. Don't mark size parameter
1654 (TARGET_OPTION_OPTIMIZATION): Define.
1655 * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
1656 * config/sh/sh-protos.h (sh_optimization_options): Remove.
1657 * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
1658 (sh_optimization_options): Rename to sh_option_optimization. Make
1659 static. Don't mark parameters unused.
1660 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
1661 * config/spu/spu-protos.h (spu_optimization_options): Remove.
1662 * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
1663 (spu_optimization_options): Rename to spu_option_optimization.
1665 * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
1666 * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
1667 (v850_option_optimization): New.
1668 * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
1669 * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
1670 (xtensa_option_optimization): New.
1671 * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
1673 2010-09-16 Joseph Myers <joseph@codesourcery.com>
1675 * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
1676 (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
1677 * doc/tm.texi: Regenerate.
1678 * system.h (OVERRIDE_OPTIONS): Poison.
1679 * target.def (override): Default to hook_void_void.
1680 * targhooks.c (default_target_option_override): Remove.
1681 * genmodes.c, machmode.def: Update comments mentioning
1683 * config/alpha/alpha-modes.def: Update comment mentioning
1684 alpha_override_options.
1685 * config/alpha/alpha-protos.h (override_options): Remove.
1686 * config/alpha/alpha.c (override_options): Rename to
1687 alpha_option_override. Call SUBTARGET_OVERRIDE_OPTIONS. Make static.
1688 (TARGET_OPTION_OVERRIDE): Define.
1689 * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
1690 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
1691 of OVERRIDE_OPTIONS.
1692 * config/arc/arc-protos.h (arc_init): Remove.
1693 * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
1694 (arc_init): Rename to arc_option_override. Make static.
1695 * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
1696 (OVERRIDE_OPTIONS): Remove.
1697 * config/arm/arm-protos.h (arm_override_options): Remove.
1698 * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
1699 (arm_override_options): Rename to arm_option_override. Make
1700 static. Call SUBTARGET_OVERRIDE_OPTIONS.
1701 * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
1702 * config/arm/arm.md: Update comment referring to arm_override_options.
1703 * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
1704 instead of OVERRIDE_OPTIONS.
1705 * config/avr/avr-protos.h (avr_override_options): Remove.
1706 * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
1707 (avr_override_options): Rename to avr_option_override. Make static.
1708 * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
1709 * config/bfin/bfin-protos.h (override_options): Remove (twice).
1710 * config/bfin/bfin.c (override_options): Rename to
1711 bfin_option_override. Make static.
1712 (TARGET_OPTION_OVERRIDE): Define.
1713 * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
1714 * config/cris/cris-protos.h (cris_override_options): Remove.
1715 * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
1716 (cris_override_options): Rename to cris_option_override. Make static.
1717 * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
1718 * config/frv/frv-protos.h (frv_override_options): Remove.
1719 * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
1720 (frv_override_options): Rename to frv_option_override. Make static.
1721 * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
1722 * config/h8300/h8300-protos.h (h8300_init_once): Remove.
1723 * config/h8300/h8300.c (h8300_init_once): Rename to
1724 h8300_option_override. Make static.
1725 (TARGET_OPTION_OVERRIDE): Define.
1726 * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
1727 * config/i386/i386-protos.h (override_options): Remove.
1728 * config/i386/i386.c (override_options): Rename to
1729 ix86_option_override_internal. Make static. Comments referring
1730 to this function and callers changed.
1731 (ix86_option_override): New.
1732 (TARGET_OPTION_OVERRIDE): Define.
1733 * config/i386/i386.h (OVERRIDE_OPTION): Remove.
1734 * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
1735 * config/ia64/ia64.c (ia64_file_start): Update comment referring
1736 to ia64_override_options.
1737 * config/iq2000/iq2000-protos.h (override_options): Remove.
1738 * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
1739 (override_options): Rename to iq2000_option_override. Make static.
1740 * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
1741 * config/lm32/lm32-protos.h (lm32_override_options): Remove.
1742 * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
1743 (lm32_override_options): Rename to lm32_option_override. Make static.
1744 * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
1745 * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
1746 (m32r_option_override): New.
1747 (m32r_init): Update comment.
1748 * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
1749 * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
1750 * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
1751 (m68hc11_override_options): Rename to m68hc11_option_override.
1752 Make static. Return void.
1753 * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
1754 * config/m68k/m68k-protos.h (override_options): Remove.
1755 * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
1756 (override_options): Rename to m68k_option_override. Make static.
1757 * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
1758 * config/mcore/mcore-protos.h (mcore_override_options): Remove.
1759 * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
1760 (mcore_override_options): Rename to mcore_option_override. Make
1762 * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
1763 * config/mep/mep-protos.h (mep_override_options): Remove.
1764 * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
1765 (mep_override_options): Rename to mep_option_override. Make static.
1766 * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
1767 * config/mmix/mmix-protos.h (mmix_override_options): Remove.
1768 * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
1769 (mmix_override_options): Rename to mmix_option_override. Make static.
1770 * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
1771 * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
1772 * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
1773 (mn10300_override_options): Rename to mn10300_option_override.
1775 * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
1776 * config/moxie/moxie-protos.h (moxie_override_options): Remove.
1777 * config/moxie/moxie.c (moxie_override_options): Rename to
1778 moxie_option_override. Make static.
1779 (TARGET_OPTION_OVERRIDE): Define.
1780 * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
1781 * config/picochip/picochip-protos.h (picochip_override_options):
1782 Remove. Update comment referring to picochip_override_options.
1783 * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
1784 (picochip_override_options): Rename to picochip_option_override.
1785 Make static. Update comment and definition of
1786 TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
1787 * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
1788 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1789 * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1790 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1791 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1792 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1793 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
1794 instead of OVERRIDE_OPTIONS.
1795 * config/rs6000/rs6000-modes.def: Update comment referring to
1796 rs6000_override_options.
1797 * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
1798 * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
1799 (rs6000_override_options): Rename to
1800 rs6000_option_override_internal. Make static. Commented
1801 referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
1802 (rs6000_option_override): New.
1803 * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
1804 instead of OVERRIDE_OPTIONS.
1805 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
1806 * config/s390/s390-protos.h (override_options): Remove.
1807 * config/s390/s390.c (override_options): Rename to
1808 s390_option_override. Make static.
1809 (TARGET_OPTION_OVERRIDE): Define.
1810 * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
1811 * config/score/score-protos.h (score_override_options): Remove.
1812 * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
1813 (score_override_options): Rename to score_option_override. Make
1815 * config/score/score.h (OVERRIDE_OPTIONS): Remove.
1816 Update comment referring to override_options.
1817 * config/score/score3.c (score3_override_options): Rename to
1818 score3_option_override.
1819 * config/score/score3.h (score3_override_options): Rename to
1820 score3_option_override.
1821 * config/score/score7.c (score7_override_options): Rename to
1822 score7_option_override.
1823 * config/score/score7.h (score7_override_options): Rename to
1824 score7_option_override.
1825 * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
1826 * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
1827 (sparc_override_options): Rename to sparc_option_override. Make
1828 static. Call SUBTARGET_OVERRIDE_OPTIONS.
1829 * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
1830 * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
1831 instead of OVERRIDE_OPTIONS.
1832 * config/spu/spu-protos.h (spu_override_options): Remove.
1833 * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
1834 (spu_override_options): Rename to spu_option_override. Make
1836 * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
1837 * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
1839 * config/vax/vax-protos.h (override_options): Remove.
1840 * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
1841 (override_options): Rename to vax_option_override. Make static.
1842 Call SUBTARGET_OVERRIDE_OPTIONS.
1843 * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
1844 * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
1845 * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
1846 * config/xtensa/xtensa-protos.h (override_options): Remove.
1847 * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
1848 (override_options): Rename to xtensa_option_override. Make static.
1849 * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
1851 2010-09-16 Richard Guenther <rguenther@suse.de>
1853 PR tree-optimization/45623
1854 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
1855 (get_constraint_for_component_ref): If computing a constraint
1856 for the rhs handle type punning through unions.
1857 (get_constraint_for_address_of): Adjust.
1858 (get_constraint_for_1): Likewise.
1859 (get_constraint_for): Likewise.
1860 (get_constraint_for_rhs): New function.
1861 (do_structure_copy): Adjust.
1862 (make_constraint_to): Likewise.
1863 (handle_const_call): Likewise.
1864 (find_func_aliases): Likewise.
1865 (process_ipa_clobber): Likewise.
1866 (create_variable_info_for): Likewise.
1868 2010-09-16 Ira Rosen <irar@il.ibm.com>
1870 * tree-vectorizer.c: Fix documentation.
1871 * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
1872 (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
1873 is_pattern_stmt_p, is_loop_header_bb_p,
1874 stmt_vinfo_set_inside_of_loop_cost,
1875 stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
1876 known_alignment_for_access_p): Likewise.
1877 * tree-vect-loop.c: Fix documentation.
1878 (vect_get_cost): Start function name from new line.
1879 * tree-vect-data-refs.c: Fix documentation.
1880 * tree-vect_stmts.c: Likewise.
1881 (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
1882 (vectorizable_store): Free vec_oprnds if allocated.
1883 (vectorizable_condition): Initialize several variables to avoid
1885 * tree-vect-slp.c: Fix documentation.
1887 2010-09-16 Richard Guenther <rguenther@suse.de>
1889 * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
1890 is TS_TRANSLATION_UNIT_DECL.
1891 (initialize_tree_contains_struct): Adjust.
1892 (all_translation_units): New global vector.
1893 (build_translation_unit_decl): New function.
1894 * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
1895 (struct tree_translation_unit_decl): New.
1896 (all_translation_units): Declare.
1897 (union tree_node): Add translation_unit_decl member.
1898 (build_translation_unit_decl): Declare.
1899 * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
1900 * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
1902 (pack_value_fields): Call it.
1903 (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
1904 (lto_output_ts_translation_unit_decl_tree_pointers): New function.
1905 (lto_output_tree_pointers): Call it.
1906 * lto-streamer-in.c (lto_input_tree_ref): Handle references
1907 to TRANSLATION_UNIT_DECL.
1908 (unpack_ts_translation_unit_decl_value_fields): New function.
1909 (unpack_value_fields): Call it.
1910 (lto_input_ts_translation_unit_decl_tree_pointers): New function.
1911 (lto_input_tree_pointers): Call it.
1912 * lto-streamer.c (check_handled_ts_structures): Adjust.
1913 * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
1914 * c-decl.c (all_translation_units): Remove.
1915 (pop_scope): Use build_translation_unit_decl.
1916 (collect_all_refs): Adjust.
1917 (for_each_global_decl): Likewise.
1918 (c_write_global_declarations): Likewise.
1920 2010-09-16 Jakub Jelinek <jakub@redhat.com>
1923 * fold-const.c (fold_checksum_tree): Change slot from const void **
1924 to void **, use CONST_CAST_TREE to store into *slot.
1926 2010-09-16 Uros Bizjak <ubizjak@gmail.com>
1928 * config/i386/i386.md: Remove unneeded empty conditions and
1929 preparation statements from expanders.
1930 * config/i386/mmx.md: Ditto.
1931 * config/i386/sse.md: Ditto.
1933 2010-09-16 Uros Bizjak <ubizjak@gmail.com>
1935 * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
1937 2010-09-15 Eric Botcazou <ebotcazou@adacore.com>
1939 PR rtl-optimization/45593
1940 * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
1941 insns that were in delay slots as stand-alone insns.
1943 2010-09-15 Ian Lance Taylor <iant@google.com>
1945 * incpath.c (remove_duplicates): If name is not a directory, issue
1946 a warning rather than an error.
1948 2010-09-15 Martin Jambor <mjambor@suse.cz>
1951 * tree-sra.c (create_access): Check for bit-fields directly.
1953 2010-09-15 Jakub Jelinek <jakub@redhat.com>
1955 PR tree-optimization/45633
1956 * tree-cfg.c (verify_gimple_assign_binary): Allow
1957 MINUS_EXPR with lhs and rhs1 pointer vector and
1958 rhs2 sizetype vector.
1959 * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
1960 or vector pointer use TER to optimize pointer subtraction.
1962 2010-09-15 Jie Zhang <jie@codesourcery.com>
1964 * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
1967 2010-09-15 Ian Lance Taylor <iant@google.com>
1969 * config/i386/i386.md (truncxf<mode>2): Fix indentation.
1971 2010-09-15 Ian Lance Taylor <iant@google.com>
1973 * function.c (get_arg_pointer_save_area): Set
1974 arg_pointer_save_area_init to true.
1976 2010-09-15 Martin Jambor <mjambor@suse.cz>
1978 * tree-sra.c (generate_subtree_copies): Updated comment.
1979 (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
1980 obtained from the statement iterator instead.
1981 (load_assign_lhs_subreplacements): Removed parameters lhs and
1982 right_offset, which is obtained from top_racc instead. Parameter lacc
1983 is now expected to be the root of the processed tree rather than root's
1984 first child. Updated all callers.
1986 2010-09-15 Joseph Myers <joseph@codesourcery.com>
1988 * config/pdp11/pdp11.c (register_move_cost): Rename to
1989 pdp11_register_move_cost.
1990 * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
1991 pdp11_register_move_cost.
1992 * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
1993 pdp11_register_move_cost instead of register_move_cost.
1995 2010-09-15 Tejas Belagod <tejas.belagod@arm.com>
1997 * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
1998 pattern for vmovn. Expansion in case of non
1999 -mvectorize-with-neon-quad.
2000 (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
2001 non- -mvectorize-with-neon-quad case.
2002 (move_lo_quad_<mode>): New expansion to vmov into low part.
2003 (move_hi_quad_<mode>): New expansion to vmov into high part.
2004 (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
2005 (move_lo_quad_v4sf): Likewise.
2006 (move_lo_quad_v8hi): Likewise.
2007 (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
2009 (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
2011 * config/arm/iterators.md (ANY128): New mode iterator.
2012 (V_narrow_pack): New mode attribute.
2013 (V_HALF): Add attribute.
2014 (V_DOUBLE): Add attribute.
2015 (V_mode_nunits): Add attribute.
2017 2010-09-15 Eric Botcazou <ebotcazou@adacore.com>
2019 * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
2020 is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
2022 2010-09-15 Olivier Hainque <hainque@adacore.com>
2023 Jose Ruiz <ruiz@adacore.com>
2025 * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
2026 * config/alpha/osf5-unwind.h: New file.
2028 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
2031 * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
2032 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
2033 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
2035 2010-09-15 Laurynas Biveinis <laurynas.biveinis@gmail.com>
2037 * c-lang.h (struct lang_type): Add variable_size GTY option.
2039 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
2042 * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
2044 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
2046 * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
2047 result isn't used in memory address.
2049 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
2051 * defaults.h (UNITS_PER_SIMD_WORD): Removed.
2052 * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
2053 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
2054 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2055 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2056 * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2058 * target.def: Add units_per_simd_word to vectorize.
2060 * targhooks.c (default_units_per_simd_word): New.
2061 * targhooks.h (default_units_per_simd_word): Likewise.
2062 * config/arm/arm.c (arm_units_per_simd_word): Likewise.
2063 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2064 * config/mips/mips.c (mips_units_per_simd_word): Likewise.
2065 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2066 * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
2067 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2068 * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
2069 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
2071 * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
2072 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
2074 * tree-vect-stmts.c: Don't include "tm_p.h".
2075 (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
2076 with targetm.vectorize.units_per_simd_word.
2078 * system.h (UNITS_PER_SIMD_WORD): Poisoned.
2080 * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
2082 * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
2083 (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
2085 * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD. Add
2086 TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
2088 * doc/tm.texi: Regenerated.
2090 2010-09-14 H.J. Lu <hongjiu.lu@intel.com>
2092 * tree-vect-stmts.c: Include "tm_p.h".
2094 * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
2097 2010-09-14 Martin Jambor <mjambor@suse.cz>
2099 * tree-sra.c (build_ref_for_offset): Loc made a parameter. Set the
2100 location of generated statement. Changed all callers.
2101 (build_ref_for_model): New parameter loc which used to set location of
2102 all generated expressions. Changed all callers.
2103 (generate_subtree_copies): Likewise.
2104 (init_subtree_with_zero): Likewise.
2105 (sra_modify_expr): Set locations of all generated statements and
2106 expressions to the location the original statement.
2107 (handle_unscalarized_data_in_subtree): Likewise.
2108 (load_assign_lhs_subreplacements): Likewise.
2109 (sra_modify_constructor_assign): Likewise.
2110 (sra_modify_assign): Likewise.
2112 2010-09-14 Eric Botcazou <ebotcazou@adacore.com>
2117 * doc/install.texi (sparc*-*-*): New section.
2118 (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
2120 2010-09-14 Jakub Jelinek <jakub@redhat.com>
2123 * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
2124 expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
2125 (expand_builtin): Adjust caller.
2126 (expand_builtin_unop): Only use subtarget if it has the right mode.
2128 2010-09-14 Tristan Gingold <gingold@adacore.com>
2130 * configure.ac (plugins): Fix typos.
2131 * configure: Regenerate.
2133 2010-09-14 Jakub Jelinek <jakub@redhat.com>
2136 * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
2137 gen_type_die for function/method return type.
2139 2010-09-14 Ira Rosen <irar@il.ibm.com>
2141 PR tree-optimization/45470
2142 * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
2143 can throw an exception.
2144 * tree-vect-stmts.c (vectorizable_call): Likewise.
2146 2010-09-14 DJ Delorie <dj@redhat.com>
2149 * config/mep/mep-protos.h (mep_save_register_info,
2150 mep_reinit_regs, mep_init_regs): Declare.
2152 * config/mep/mep.c: Move all target definitions to the end of the
2153 file to avoid the need for duplicate declarations.
2154 (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
2155 (mep_reorg_erepeat): Remove unused variables.
2156 (mep_expand_builtin): Likewise.
2158 * config/mep/mep-pragma.c: Don't include rtl.h.
2159 (INVALID_REGNUM): New.
2160 (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
2162 (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
2163 Avoid enum/integer math.
2165 2010-09-13 Joseph Myers <joseph@codesourcery.com>
2168 * config/mep/t-mep (GTM_H): Add insn-constants.h.
2169 * config/mep/mep.c (mep_conditional_register_usage): Take no
2171 * config/mep/mep-protos.h (mep_conditional_register_usage): Update
2173 * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
2174 call to mep_conditional_register_usage.
2176 2010-09-13 Eric Botcazou <ebotcazou@adacore.com>
2179 * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
2182 2010-09-13 Jakub Jelinek <jakub@redhat.com>
2184 PR rtl-optimization/45617
2185 * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
2186 even if low N bits of X aren't known to be zero.
2188 2010-09-13 H.J. Lu <hongjiu.lu@intel.com>
2190 * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
2192 * config/i386/i386.c (initial_ix86_tune_features): Add
2193 X86_TUNE_VECTORIZE_DOUBLE.
2194 (ix86_units_per_simd_word): New.
2196 * config/i386/i386.h (ix86_tune_indices): Add
2197 X86_TUNE_VECTORIZE_DOUBLE.
2198 (TARGET_VECTORIZE_DOUBLE): New.
2199 (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
2201 2010-09-13 Pat Haugen <pthaugen@us.ibm.com>
2203 * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
2204 (new_temp_expr_table): Allocate call_cnt vector.
2205 (free_temp_expr_table): Free it.
2206 (process_replaceable): Add call_cnt parm and set in vector.
2207 (find_replaceable_in_bb): Skip replacement if def/use span a call.
2208 (debug_ter): Dump call_cnt value, remove stderr uses.
2210 2010-09-13 Jan Hubicka <jh@suse.cz>
2212 * tree.c (build_zero_cst): New.
2213 * tree.h (build_zero_cst): Declare.
2214 * tree-ssa-ccp.c (get_constant_value): Accept general operands.
2215 (get_base_constructor): Break out from ...
2216 (fold_const_aggregate_ref): Here; handle empty constructors.
2218 2010-09-13 Marcus Shawcroft <marcus.shawcroft@arm.com>
2220 * config/arm/arm.md: (define_attr "conds"): Update comment.
2221 * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
2222 conds attribute to clob.
2223 (arm_sync_compare_and_swapsi): Likewise.
2224 (arm_sync_compare_and_swap<mode>): Likewise.
2225 (arm_sync_lock_test_and_setsi): Likewise.
2226 (arm_sync_lock_test_and_set<mode>): Likewise.
2227 (arm_sync_new_<sync_optab>si): Likewise.
2228 (arm_sync_new_nandsi): Likewise.
2229 (arm_sync_new_<sync_optab><mode>): Likewise.
2230 (arm_sync_new_nand<mode>): Likewise.
2231 (arm_sync_old_<sync_optab>si): Likewise.
2232 (arm_sync_old_nandsi): Likewise.
2233 (arm_sync_old_<sync_optab><mode>): Likewise.
2234 (arm_sync_old_nand<mode>): Likewise.
2236 2010-09-13 Olivier Hainque <hainque@adacore.com>
2238 * fwprop.c (forward_propagate_and_simplify): Only attach a
2239 REG_EQUAL note to an insn if the destination is a register.
2240 * gcse.c (try_replace_reg): Likewise.
2242 2010-09-13 Richard Guenther <rguenther@suse.de>
2244 PR tree-optimization/45611
2245 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
2246 (copy_ref_info): Likewise.
2248 2010-09-13 Alexandre Oliva <aoliva@redhat.com>
2253 * tree-pretty-print.c (dump_generic_node): Disregard top-level
2254 types of MEM_REF pointer types to the same type.
2256 2010-09-13 Hans-Peter Nilsson <hp@axis.com>
2258 PR rtl-optimization/41087
2259 * ifcvt.c (noce_get_condition): Don't allow conditions with
2262 2010-09-12 Anatoly Sokolov <aesok@post.ru>
2264 * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2265 * config/frv/frv-protos.h (frv_register_move_cost): Remove.
2266 * config/frv/frv.c (frv_register_move_cost): Make static. Change
2267 arguments type to reg_class_t. Add mode argument.
2268 (frv_memory_move_cost): New.
2269 (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
2271 2010-09-12 Bernd Schmidt <bernds@codesourcery.com>
2273 * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
2274 arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
2276 2010-09-10 Jan Hubicka <jh@suse.cz>
2278 * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
2280 2010-09-10 Richard Guenther <rguenther@suse.de>
2282 * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
2283 * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
2284 * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
2285 not stream TYPE_DEBUG_REPRESENTATION_TYPE.
2286 * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
2288 2010-09-10 Richard Guenther <rguenther@suse.de>
2290 * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
2291 for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
2292 * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
2293 using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
2295 2010-09-10 H.J. Lu <hongjiu.lu@intel.com>
2298 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
2299 of string folding is of integral type.
2301 2010-09-10 Ryan Mansfield <rmansfield@qnx.com>
2303 * doc/invoke.texi (-x): Fix typo.
2305 2010-09-10 Richard Guenther <rguenther@suse.de>
2308 * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
2309 * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
2310 Output DECL_DEBUG_EXPR.
2311 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
2312 Input DECL_DEBUG_EXPR.
2314 2010-09-10 Richard Guenther <rguenther@suse.de>
2316 * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
2317 (build_index_type): Implement in terms of build_range_type.
2318 (build_range_type): Do not allow NULL_TREE type, improve
2319 hashing to cover more cases. Set TYPE_STRUCTURAL_EQUALITY_P
2321 * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
2322 create a distinct copy of the type.
2324 2010-09-10 Kai Tietz <kai.tietz@onevision.com>
2326 * configure: Regenerated.
2327 * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
2329 2010-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2331 * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
2332 * config/arm/cortex-a9-neon.md: New and partially generated.
2333 * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
2335 2010-09-10 Richard Guenther <rguenther@suse.de>
2337 * tree.h (build_index_2_type): Remove.
2338 * tree.c (build_index_2_type): Remove.
2340 2010-09-10 Jakub Jelinek <jakub@redhat.com>
2343 * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
2344 HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
2345 (implicit_ptr_descriptor): Return NULL if dwarf_strict.
2347 2010-09-10 Martin Jambor <mjambor@suse.cz>
2349 PR tree-optimization/44972
2350 * tree-sra.c: Include toplev.h.
2351 (build_ref_for_offset): Entirely reimplemented.
2352 (build_ref_for_model): New function.
2353 (build_user_friendly_ref_for_offset): New function.
2354 (analyze_access_subtree): Removed build_ref_for_offset check.
2355 (propagate_subaccesses_across_link): Likewise.
2356 (create_artificial_child_access): Use
2357 build_user_friendly_ref_for_offset.
2358 (propagate_subaccesses_across_link): Likewise.
2359 (ref_expr_for_all_replacements_p): Removed.
2360 (generate_subtree_copies): Updated comment. Use build_ref_for_model.
2361 (sra_modify_expr): Use build_ref_for_model.
2362 (load_assign_lhs_subreplacements): Likewise.
2363 (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
2364 checks for return values of build_ref_for_offset.
2365 * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
2366 build_ref_for_offset.
2367 * ipa-prop.h: Include gimple.h
2368 * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
2369 (ipa_analyze_indirect_call_uses): Update comment.
2370 * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
2371 (IPA_PROP_H): Likewise.
2373 2010-09-10 Martin Jambor <mjambor@suse.cz>
2375 PR tree-optimization/44972
2376 * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
2377 calling build_ref_for_offset.
2379 2010-09-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2381 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
2382 * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
2383 * config/arm/arm-tune.md: Regenerate.
2384 * doc/invoke.texi (ARM Options): Document it.
2386 2010-09-09 Reza Yazdani <reza.yazdani@amd.com>
2388 * config/i386/i386.c: Include sched-int.h.
2389 (TARGET_SCHED_DISPATCH): Defined.
2390 (TARGET_SCHED_DISPATCH_DO): Defined.
2391 (DISPATCH_WINDOW_SIZE): Defined.
2392 (MAX_DISPATCH_WINDOWS): Defined.
2393 (MAX_INSN): Defined.
2395 (MAX_IMM_SIZE): Defined.
2396 (MAX_IMM_32): Defined.
2397 (MAX_IMM_64): Defined.
2398 (MAX_LOAD): Defined.
2399 (MAX_STORE): Defined.
2401 (dispatch_group): New.
2402 (num_allowable_groups): New.
2404 (sched_insn_info_s): New.
2405 (dispatch_windows_s): New.
2407 (dispatch_window_list): New.
2408 (dispatch_window_list1): New.
2409 (get_mem_group): New.
2411 (dispatch_violation): New.
2415 (allocate_window): New.
2416 (init_dispatch_sched): New.
2417 (is_end_basic_block): New.
2418 (process_end_window): New.
2419 (allocate_next_window): New.
2420 (find_constant_1): New.
2421 (find_constant): New.
2422 (get_num_immediates): New.
2423 (has_immediate): New.
2424 (get_insn_path): New.
2425 (get_insn_group): New.
2426 (count_num_restricted): New.
2427 (fits_dispatch_window): New.
2428 (add_insn_window): New.
2429 (add_to_dispatch_window): New.
2430 (debug_dispatch_window_file): New.
2431 (debug_dispatch_window): New.
2432 (debug_insn_dispatch_info_file): New.
2433 (debug_ready_dispatch): New.
2435 (has_dispatch): New.
2436 * config/i386/i386.h (debug_ready_dispatch): Declared.
2437 (debug_dispatch_window): Declared.
2438 * config/i386/i386.opt (mdispatch-scheduler): New flag.
2439 * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
2440 (TARGET_SCHED_DISPATCH_DO): New.
2441 * doc/tm.texi: Regererated.
2442 * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
2443 ready_remove_first_dispatch
2444 (schedule_block): Call targetm.sched.dispatch and
2445 targetm.sched.dispatch_do.
2446 (sched_init): Call targetm.sched.dispatch and
2447 targetm.sched.dispatch_do.
2448 (ready_remove_first_dispatch): New.
2449 (number_in_ready): New.
2450 (get_ready_element): New.
2451 * hooks.c (hook_bool_rtx_int_false): New.
2452 (hook_void_rtx_int): New.
2453 * hooks.h (hook_bool_rtx_int_false): Declared.
2454 (hook_void_rtx_int): Declared.
2455 * sched-int.h (IS_DISPATCH_ON): Defined.
2457 (DISPATCH_VIOLATION): Defined.
2458 (FITS_DISPATCH_WINDOW): Defined.
2459 (DISPATCH_INIT): Defined.
2460 (ADD_TO_DISPATCH_WINDOW): Defined.
2461 (get_ready_element): Declared.
2462 (number_in_ready): Declared.
2463 * target.def (dispatch): Defined.
2464 (dispatch_do): Defined.
2466 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
2469 * reload1.c (merge_assigned_reloads): Remove.
2470 (reload_as_needed): Don't call it.
2472 2010-09-09 Anatoly Sokolov <aesok@post.ru>
2474 * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
2475 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
2476 * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
2478 2010-09-09 Matthias Klose <doko@ubuntu.com>
2481 * configure.ac (--enable-plugin): Enhance for cross builds.
2482 * configure: Regenerate.
2484 2010-09-09 Jan Hubicka <jh@suse.cz>
2486 PR tree-optimization/45598
2487 * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
2488 string folding is of integral type.
2490 2010-09-09 Nathan Sidwell <nathan@codesourcery.com>
2492 * configure.ac (gnu_indirect_function): New test.
2493 * configure: Rebuilt.
2494 * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
2495 * defaults.h (IFUNC_ASM_TYPE): Provide default.
2497 * doc/extend.texi (Function Attributes): Document ifunc.
2498 * varasm.c (do_assemble_alias): Deal with ifuncs too.
2500 2010-09-09 Hariharan Sandanagobalane <hariharan@picochip.com>
2502 * config/picochip/picochip.c (picochip_reorg): Check for note_p for
2503 epilogue instruction move.
2505 2010-09-09 Jan Hubicka <jh@suse.cz>
2507 * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
2508 command line to allow more partitions than input files.
2510 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
2513 * ira.c (ira): Switch off sharing spill slots if setjmp is called.
2515 2010-09-09 Vladimir Makarov <vmakarov@redhat.com>
2518 * ira.c (pseudo_for_reload_consideration_p): Don't use
2519 flag_ira_share_spill_slots.
2521 2010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2523 * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
2524 point zero operands that fit into a single GPR.
2525 (s390_preferred_reload_class): Ensure we only return general-purpose
2527 * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
2528 floating-point zero operands into GPRs.
2529 ("*mov<mode>_64"): Likewise.
2530 ("mov<mode>"): Likewise using lhi.
2532 2010-09-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2534 * config/s390/s390.c (s390_symref_operand_p): Return false for
2535 literal pool references.
2536 (s390_check_qrst_address): Update caller.
2538 2010-09-09 Uros Bizjak <ubizjak@gmail.com>
2540 * config/i386/predicates.md (ext_register_operand): Check that
2541 SUBREG_REG is really a register before looking for REGNO.
2542 (reg_not_xmm0_operand): Handle SUBREGs correctly.
2543 (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
2545 2010-09-09 Jakub Jelinek <jakub@redhat.com>
2547 * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
2548 * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
2549 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
2550 * print-rtl.c (print_rtx): Likewise.
2551 * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
2552 * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
2553 for ADDR_EXPR with non-addressable object.
2554 * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
2555 (struct dw_val_struct): Add v.val_decl_ref.
2556 (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
2557 Handle DW_OP_GNU_implicit_pointer.
2558 (size_of_loc_descr): Likewise. Fix up DW_OP_call_ref size.
2559 (get_ref_die_offset_label): New function.
2560 (implicit_ptr_descriptor): New function.
2561 (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
2562 (loc_descriptor): Likewise.
2563 (gen_variable_die): Put even definitions into decl_die_table.
2564 (resolve_addr_in_expr): Resolve still unresolved
2565 DW_OP_GNU_implicit_pointer operands, if it can't be resolved
2567 (dwarf2out_finish): Call output_location_lists after outputting
2568 .debug_info and .debug_abbrev instead of before.
2570 2010-09-09 Roland McGrath <roland@redhat.com>
2572 * dwarf2out.c (DWARF_REF_SIZE): Define.
2573 (size_of_loc_descr): Use it for DW_OP_call_ref.
2575 2010-09-09 Alan Modra <amodra@gmail.com>
2577 * doc/invoke.text: Reinstate mcmodel=medium.
2578 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
2579 CMODEL_MEDIUM as default.
2580 * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
2581 * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
2582 (toc_relative_ok, offsettable_ok_by_alignment): New functions.
2583 (rs6000_emit_move): Reinstate mcmodel=medium optimization.
2585 2010-09-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2588 * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
2589 hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
2590 (builtin_longjmp): Likewise.
2591 (allocate_stack): Use hard_frame_pointer_rtx instead of
2593 * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
2594 * config/pa/pa.c (pa_internal_arg_pointer): Declare.
2595 (pa_can_eliminate): Likewise.
2596 (TARGET_INTERNAL_ARG_POINTER): Define.
2597 (TARGET_CAN_ELIMINATE): Define.
2598 (hppa_expand_prologue): Use hard frame pointer instead of soft frame
2600 (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
2601 (pa_internal_arg_pointer, pa_can_eliminate,
2602 pa_initial_elimination_offset): New.
2603 * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
2604 (HARD_FRAME_POINTER_REGNUM): Set to register three.
2605 (INITIAL_FRAME_POINTER_OFFSET): Delete.
2606 (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
2608 (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
2609 REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
2610 * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
2611 (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
2612 REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
2613 new soft frame pointer.
2614 * config/pa/pa64-regs.h: Likewise.
2616 2010-09-08 Uros Bizjak <ubizjak@gmail.com>
2618 * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
2620 (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
2622 2010-09-08 Alexandre Oliva <aoliva@redhat.com>
2625 * cfglayout.c (fixup_reorder_chain): Skip debug insns.
2627 2010-09-08 Alexandre Oliva <aoliva@redhat.com>
2631 * tree-pretty-print.c (dump_generic_node): Disregard top-level
2632 qualifiers in otherwise equal MEM_REF pointer types.
2633 * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
2634 * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
2636 2010-09-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2639 * config/arm/arm.md (bswapsi2): Handle condition correctly
2640 for armv6 and optimize_size.
2642 2010-09-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2645 * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
2647 2010-09-08 Uros Bizjak <ubizjak@gmail.com>
2649 * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
2650 symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
2651 ix86_expand_strlen, legitimate_pic_address_disp_p,
2652 ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
2653 ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
2654 ix86_check_movabs, ix86_secondary_memory_needed): Change function
2656 * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
2657 return_in_memory_ms_64, ix86_check_movabs,
2658 symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
2659 legitimate_pic_address_disp_p, ix86_binary_operator_ok,
2660 ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
2661 ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
2662 ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
2663 ix86_secondary_memory_needed): Change to bool. Return
2664 "true" and "false" values.
2665 * config/i386/i386.md: Return "true" and "false" values.
2667 2010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2669 * doc/sourcebuild.texi (Effective-Target Keywords): Document
2670 run_expensive_tests.
2672 2010-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2674 * toplev.c (output_stack_usage): Use lbasename instead of basename.
2676 2010-09-08 Martin Jambor <mjambor@suse.cz>
2679 * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
2682 2010-09-08 Richard Guenther <rguenther@suse.de>
2684 * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
2686 (iterative_hash_gimple_type): Likewise.
2687 (gimple_type_hash): Likewise.
2688 (gimple_register_type): Likewise.
2689 (print_gimple_types_stats): Likewise.
2690 (free_gimple_type_tables): Likewise.
2692 2010-09-08 Michael Matz <matz@suse.de>
2694 PR tree-optimization/43430
2695 * tree-vect-stmts.c (vectorizable_condition): Support multiple
2696 copies for conditional statements if it's not part of a reduction.
2698 2010-09-08 Michael Matz <matz@suse.de>
2700 PR tree-optimization/33244
2701 * tree-ssa-sink.c (statement_sink_location): Don't sink into
2704 2010-09-08 Richard Guenther <rguenther@suse.de>
2706 PR tree-optimization/45578
2707 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
2708 Be more careful when transfering alignment information to
2709 the new induction variable.
2710 (copy_ref_info): Likewise.
2712 2010-09-08 Richard Guenther <rguenther@suse.de>
2714 * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
2715 * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
2717 2010-09-08 Arnaud Charlet <charlet@adacore.com>
2719 * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
2720 * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
2722 2010-09-08 Kenneth Zadeck <zadeck@naturalbridge.com>
2725 * doc/md.texi: Fixed modes on several standard pattern names.
2727 2010-09-08 Mingjie Xing <mingjie.xing@gmail.com>
2729 * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
2730 (ashl<mode>3): ...this.
2731 (loongson_psra<V_suffix>): Rename to...
2732 (ashr<mode>3): ...this.
2733 (loongson_psrl<V_suffix>): Rename to...
2734 (lshr<mode>3): ...this.
2735 * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
2736 (CODE_FOR_loongson_psllw): Define.
2737 (CODE_FOR_loongson_psrlh): Define.
2738 (CODE_FOR_loongson_psrlw): Define.
2739 (CODE_FOR_loongson_psrah): Define.
2740 (CODE_FOR_loongson_psraw): Define.
2742 2010-09-07 Richard Henderson <rth@redhat.com>
2744 * tree-vect-data-refs.c: Include tm_p.h.
2745 * Makefile.in (tree-vect-data-refs.o): Update deps.
2746 * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
2747 Move delarations outside #ifdef RTX_CODE.
2749 2010-09-07 Richard Henderson <rth@redhat.com>
2751 * final.c (rest_of_handle_final): Unconditionally do
2752 output_function_exception_table before assemble_end_function.
2754 2010-09-07 Jan Hubicka <jh@suse.cz>
2756 * tree-inline.c (tree_inlinable_function_p): Do not test
2758 * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
2759 update_callee_keys, cgraph_decide_inlining): Test function availability.
2760 * cif-code.def (OVERWRITABLE): New code.
2762 2010-09-07 H.J. Lu <hjl.tools@gmail.com>
2763 Jack Howarth <howarth@bromo.med.uc.edu>
2768 * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
2769 profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
2770 (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
2773 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
2775 * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
2776 Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
2778 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
2780 * config.gcc: Don't append t-android for Android targets.
2782 * config/t-android: Removed.
2784 2010-09-07 Richard Henderson <rth@redhat.com>
2786 * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
2787 * doc/tm.texi.in: Add doc marker.
2788 * doc/tm.texi: Rebuild.
2789 * except.c (switch_to_exception_section): Always build.
2790 (output_one_function_exception_table): Move section switch,
2791 personality output, and label output ...
2792 (output_function_exception_table): ... here. Use the new
2795 * config/ia64/ia64.c (ia64_asm_emit_except_personality,
2796 ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
2797 TARGET_ASM_INIT_SECTIONS): New.
2798 (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
2800 (TARGET_ASM_UNWIND_EMIT): Update to match.
2801 * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
2803 * config/arm/arm.c (arm_asm_emit_except_personality): New.
2804 (arm_asm_init_sections): New.
2805 (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
2807 2010-09-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2809 * config/arm/arm.md: Remove unused variable.
2811 2010-09-07 Anatoly Sokolov <aesok@post.ru>
2813 * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2814 * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
2815 (m32r_memory_move_cost): New function.
2817 2010-09-07 H.J. Lu <hongjiu.lu@intel.com>
2819 * config.gcc: Append t-android for Android targets.
2821 * config/t-android: New.
2823 2010-09-07 Richard Henderson <rth@redhat.com>
2825 * target.def (unwind_emit_before_insn): New hook.
2826 * doc/tm.texi.in: Add @hook marker for it.
2827 * doc/tm.texi: Rebuild.
2828 * final.c (final_scan_insn): Respect unwind_emit_before_insn.
2830 2010-09-07 Martin Jambor <mjambor@suse.cz>
2833 * ipa-cp.c (ipcp_versionable_function_p): Return false if there
2834 are any type attributes.
2836 2010-09-07 Jan Hubicka <jh@suse.cz>
2838 * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
2839 array_ref_low_bound in string access folding.
2841 2010-09-07 Uros Bizjak <ubizjak@gmail.com>
2844 * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
2845 eh_return fixup sequence.
2847 2010-09-07 Jan Hubicka <jh@suse.cz>
2849 * gimple-fold.c (maybe_fold_reference): Verify that operand is
2850 gimple_min_invariant.
2852 2010-09-07 Richard Guenther <rguenther@suse.de>
2855 * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
2856 nor CONSTRUCTOR can trap.
2857 * tree-complex.c (update_complex_assignment): Update EH info.
2859 2010-09-07 Richard Guenther <rguenther@suse.de>
2862 * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
2863 * passes.c (execute_function_todo): Do not verify anything if
2866 2010-09-07 Richard Guenther <rguenther@suse.de>
2868 * tree-pretty-print.c (dump_generic_node): Dump void types as void.
2870 2010-09-07 Bernd Schmidt <bernds@codesourcery.com>
2873 * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
2874 New define_mode_attrs.
2875 * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
2876 arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
2877 (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
2878 (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
2879 Remove pool_range attribute.
2880 (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
2881 arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
2882 pool_range and neg_pool_range attributes.
2883 * config/arm/thumb2.md (thumb2_zero_extendsidi2,
2884 thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
2885 thumb2_extendhidi2, thumb2_extendqidi2): Delete.
2887 2010-09-06 H.J. Lu <hongjiu.lu@intel.com>
2889 * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
2892 2010-09-06 Uros Bizjak <ubizjak@gmail.com>
2895 * config/i386/mmx.md (*mov<mode>_internal_rex64,
2896 *mov<mode>_internal_avx, *mov<mode>_internal,
2897 *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
2898 *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
2900 2010-09-06 Mark Mitchell <mark@codesourcery.com>
2902 * c-typeck.c (do_warn_double_promotion): Remove.
2903 * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
2906 2010-09-06 Anatoly Sokolov <aesok@post.ru>
2908 * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
2909 * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
2910 * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
2911 argument type to reg_class_t. Change result type to bool.
2912 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2914 2010-09-06 Nicola Pero <nicola.pero@meta-innovation.com>
2917 * gthr-posix.h (__gthread_objc_thread_detach): Use
2918 _objc_thread_attribs when detaching a thread.
2919 * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
2921 2010-09-06 H.J. Lu <hongjiu.lu@intel.com>
2924 * configure.ac (enable_decimal_float): Set to $default_decimal_float.
2925 * configure: Regenerated.
2927 2010-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
2929 * combine.c (try_combine): Set subst_low_luid to i0.
2931 2010-09-06 Richard Guenther <rguenther@suse.de>
2933 * tree.def (MISALIGNED_INDIRECT_REF): Remove.
2934 * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
2935 (build_aligned_type): Declare.
2936 * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
2937 (check_aligned_type): New function.
2938 (build_aligned_type): Likewise.
2939 * expr.c (expand_assignment): Handle misaligned stores via
2940 TARGET_MEM_REF and MEM_REF using movmisalign_optab.
2941 (expand_expr_real_1): Likewise.
2942 (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
2943 * tree-vect-stmts.c (vectorizable_store): Do not build
2944 MISALIGNED_INDIRECT_REF but initialize alignment information.
2945 (vectorizable_load): Likewise.
2946 * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
2948 * cfgexpand.c (expand_debug_expr): Likewise.
2949 * dwarf2out.c (loc_list_from_tree): Likewise.
2950 * fold-const.c (maybe_lvalue_p): Likewise.
2951 (operand_equal_p): Likewise.
2952 (build_fold_addr_expr_with_type_loc): Likewise.
2953 * gimplify.c (gimplify_addr_expr): Likewise.
2954 (gimplify_expr): Likewise.
2955 * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
2956 (verify_gimple_assign_single): Likewise.
2957 * tree-dump.c (dequeue_and_dump): Likewise.
2958 (tree_could_trap_p): Likewise.
2959 * tree-predcom.c (ref_at_iteration): Likewise.
2960 * tree-pretty-print.c (dump_generic_node): Likewise.
2961 (op_code_prio): Likewise.
2962 (op_symbol_code): Likewise.
2963 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
2964 * tree-ssa-loop-im.c (for_each_index): Likewise.
2965 (gen_lsm_tmp_name): Likewise.
2966 * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
2967 (find_interesting_uses_address): Likewise.
2968 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
2969 * tree-ssa-operands.c (get_expr_operands): Likewise.
2970 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
2971 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
2972 (ao_ref_init_from_vn_reference): Likewise.
2973 * tree.c (staticp): Likewise.
2974 (build1_stat): Likewise.
2975 (reference_alias_ptr_type): Likewise.
2976 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2977 * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
2978 MISALIGNED_INDIRECT_REF handling.
2980 2010-09-06 Richard Guenther <rguenther@suse.de>
2982 PR tree-optimization/45534
2983 * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
2984 (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
2986 (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
2987 valid on the target.
2989 2010-09-06 Andreas Schwab <schwab@redhat.com>
2991 * configure.ac: Quote argument of AC_MSG_WARN.
2992 * configure: Regenerate.
2994 2010-09-06 Alexander Monakov <amonakov@ispras.ru>
2996 * sel-sched.c (move_cond_jump): Correct arguments to
2997 maybe_tidy_empty_bb.
2998 * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
3000 2010-09-06 Andrey Belevantsev <abel@ispras.ru>
3002 PR rtl-optimization/44919
3003 * sel-sched.c (move_cond_jump): Remove assert, check that
3004 the several blocks case can only happen with mutually exclusive
3005 insns instead. Rewrite the movement code to support moving through
3006 several basic blocks.
3008 2010-09-06 Uros Bizjak <ubizjak@gmail.com>
3010 * config/i386/i386.md (iptrsize): New mode attribute.
3012 (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
3014 (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
3015 (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
3016 (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
3017 (stack_tls_protect_set_<mode>): Ditto from
3018 stack_tls_protect_set_{si,di}. Use %@ to output segment register
3019 of thread base pointer load.
3020 (stack_tls_protect_test_<mode>): Ditto from
3021 stack_tls_protect_test_{si,di}. Use %@ to output segment register
3022 of thread base pointer load.
3023 (stack_protect_set): Rewrite using indirect functions.
3024 (stack_protect_test): Ditto.
3025 * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
3026 (ix86_print_operand): Handle '@'.
3028 2010-09-05 Giuseppe Scrivano <gscrivano@gnu.org>
3030 * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
3033 2010-09-05 Mark Mitchell <mark@codesourcery.com>
3035 * doc/invoke.texi: Document -Wdouble-promotion.
3036 * c-typeck.c (convert_arguments): Check for implicit conversions
3037 from float to double.
3038 (do_warn_double_promotion): New function.
3039 (build_conditional_expr): Use it.
3040 (build_binary_op): Likewise.
3042 2010-09-05 Richard Guenther <rguenther@suse.de>
3044 PR tree-optimization/45535
3045 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
3046 handle TMR_INDEX2. Make sure TMR_INDEX is not NULL before
3048 (indirect_refs_may_alias_p): Likewise.
3050 2010-09-05 Naveen H.S <naveen.S@kpitcummins.com>
3052 * config/sh/sh.c (sh_option_override): Make static.
3053 Adjust comments. Declare.
3054 (sh_function_value_regno_p): Likewise.
3055 (sh_register_move_cost): Modify the arguments, make static.
3056 Adjust comments. Declare.
3057 (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
3058 TARGET_FUNCTION_VALUE_REGNO_P): Define.
3059 * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
3060 REGISTER_MOVE_COST): Delete.
3061 * config/sh/sh-protos.h (sh_override_options): Delete.
3062 (sh_register_move_cost): Delete.
3063 (sh_function_value_regno_p): Delete.
3065 2010-09-04 Anatoly Sokolov <aesok@post.ru>
3067 * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
3068 m32r_function_value_regno_p): New functions.
3069 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3070 TARGET_FUNCTION_VALUE_REGNO_P): Declare.
3071 * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
3072 FUNCTION_VALUE_REGNO_P): Remove.
3074 2010-09-04 Jan Hubicka <jh@suse.cz>
3076 * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
3077 * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
3078 fold_read_from_constant_string.
3080 * gimple.h (canonicalize_constructor_val): Declare.
3081 * gimple-fold.c (canonicalize_constructor_val): New function.
3082 (get_symbol_constant_value):Use it.
3083 * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
3085 2010-09-04 Jan Hubicka <jh@suse.cz>
3087 * tree-switch-conversion.c (build_one_array): Set constructor to be
3089 * varpool.c (varpool_finalize_decl): Compute const_value_known.
3091 2010-09-04 Richard Guenther <rguenther@suse.de>
3094 * tree-flow.h (force_gimple_operand_1): Declare.
3095 (force_gimple_operand_gsi_1): Likewise.
3096 * gimplify.c (force_gimple_operand_1): New worker taking a
3097 gimple predicate for ...
3098 (force_gimple_operand): ... which now wraps it.
3099 (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
3100 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
3102 * tree-ssa-address.c (gimplify_mem_ref_parts): Use
3103 force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
3104 (create_mem_ref): Likewise.
3106 2010-09-04 Uros Bizjak <ubizjak@gmail.com>
3108 * config/i386/predicates.md (sse_reg_operand): New predicate.
3109 * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
3110 predicate for operand 1.
3111 (XFmode push splitter): Use fp_register_operand predicate
3113 (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
3114 (SF-DF float_extend push splitter): Add reload_completed insn
3116 ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
3117 MODEF mode macro. Add reload_completed insn predicate.
3119 2010-09-04 Paolo Bonzini <bonzini@gnu.org>
3121 * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
3122 (struct df_extract_ref): Remove.
3123 (union df_ref_d): Remove extract_ref member.
3124 (df_ref_create): Remove last three arguments.
3125 (DF_REF_LOC): Remove DF_REF_EXTRACT case.
3126 * df-scan.c (df_ref_record): Remove last three arguments, do not
3127 pass them to df_ref_create_structure.
3128 (df_uses_record): Remove first and last three arguments. Replace
3129 first argument with DF_REF_REGULAR, adjust calls to remove the
3130 width, offset and mode. Always call recursively on the second
3131 and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
3132 (df_ref_create_structure): Remove first argument.
3133 (struct df_scan_problem_data): Remove ref_extract_pool.
3134 (df_scan_free_internal): Do not free it.
3135 (df_scan_alloc): Do not allocate it.
3136 (df_ref_create): Remove last three arguments, do not pass them to
3137 df_ref_create_structure.
3138 (df_free_ref): Remove DF_REF_EXTRACT case.
3139 (df_notes_rescan): Adjust call to df_uses_record.
3140 (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
3141 Remove DF_REF_EXTRACT case.
3142 (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
3143 Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
3144 and SUBREG definitions.
3145 (df_get_conditional_uses): Remove references to width/offset/mode,
3146 adjust call to df_ref_create_structure.
3147 (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
3148 df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
3149 calls to df_uses_record and df_ref_record.
3150 * fwprop.c (update_df): Remove references to width/offset/mode,
3151 adjust call to df_ref_create.
3153 2010-09-03 Jan Hubicka <jh@suse.cz>
3155 * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
3156 (build_cdtor_fns): Update use of build_cdtor.
3158 2010-09-03 Joseph Myers <joseph@codesourcery.com>
3160 * doc/options.texi (SeparateAlias): Document.
3161 * opt-functions.awk (switch_flags): Handle SeparateAlias.
3162 * opth-gen.awk: Generate enumeration names for options marked
3163 SeparateAlias, but not for those marked Ignore.
3164 * opts-common.c (generate_canonical_option): Don't output separate
3165 argument for options marked CL_SEPARATE_ALIAS.
3166 (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
3167 * opts.h (CL_SEPARATE_ALIAS): New.
3168 (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
3169 CL_COMMON): Adjust definitions.
3170 * config/i386/darwin.opt, config/mips/sde.opt: New.
3171 * common.opt (fdump-final-insns): New.
3172 * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
3174 (mips*-sde-elf*): Add mips/sde.opt.
3175 * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
3176 -mno-data-in-code and -mcode-xonly here.
3177 * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
3178 * gcc.c (option_map): Add "j" to --dump entry.
3179 (translate_options): Don't translate -d to -foutput-class-dir= here.
3181 2010-09-03 Sebastian Pop <sebastian.pop@amd.com>
3183 * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
3185 (compute_all_dependences): Same.
3186 (create_rdg_edge_for_ddr): Same.
3187 * tree-data-ref.h (DR_IS_WRITE): New.
3188 (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
3189 * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
3190 (write_memrefs_written_at_least_once): Same.
3191 * tree-predcom.c (suitable_component_p): Same.
3192 (determine_roots_comp): Same.
3193 (execute_load_motion): Same.
3194 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
3195 (vect_enhance_data_refs_alignment): Same.
3196 (vect_analyze_group_access): Same.
3198 2010-09-03 Joern Rennecke <joern.rennecke@embecosm.com>
3201 * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
3202 (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
3204 2010-09-03 Marcin Baczynski <marbacz@gmail.com>
3206 * dwarf2out.c (file scope): Remove #if0'd code.
3207 (gen_subprogram_die): Same.
3209 2010-09-03 Jakub Jelinek <jakub@redhat.com>
3212 * dwarf2out.c (flush_queued_reg_saves): Rename to...
3213 (dwarf2out_flush_queued_reg_saves): ... this. No longer static.
3214 (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
3215 * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
3216 * config/i386/i386.c (output_set_got): Call it.
3218 2010-09-03 Michael Matz <matz@suse.de>
3221 * tree-sra.c (sra_modify_assign): If we modify the statement,
3224 * tree-ssa.c (verify_ssa): Check number of operands and links
3225 per statement to agree.
3227 2010-09-03 Uros Bizjak <ubizjak@gmail.com>
3228 Iain Sandoe <iains@gcc.gnu.org>
3231 * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
3232 * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
3233 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
3235 2010-09-03 Richard Guenther <rguenther@suse.de>
3237 * lto-streamer-out.c (output_function): Output function
3239 * lto-streamer-in.c (input_function): Input function start
3242 2010-09-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3244 * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
3245 * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
3246 * configure: Regenerate.
3247 * aclocal.m4: Regenerate.
3249 2010-09-03 Jan Hubicka <jh@suse.cz>
3252 * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
3253 on functions/variables in other partition.
3255 2010-09-03 Jan Hubicka <jh@suse.cz>
3257 * cgraph.h (struct varpool_node): Add const_value_known.
3258 (varpool_decide_const_value_known): Declare.
3259 * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
3260 * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
3261 (input_varpool_node): Restore const_value_known.
3262 * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
3263 initializer folding.
3264 * ipa.c (ipa_discover_readonly_nonaddressable_var,
3265 function_and_variable_visibility): Compute const_value_known.
3266 * gimple-fold.c (get_symbol_constant_value): Use varpool for
3267 initializer folding.
3268 * varpool.c (varpool_decide_const_value_known): New function.
3270 2010-09-03 Uros Bizjak <ubizjak@gmail.com>
3272 * config/i386/i386.md: Remove empty preparation statements
3275 2010-09-03 Jan Hubicka <jh@suse.cz>
3277 * passes.c (rest_of_decl_compilation): Do not add local vars into
3279 * varpool.c (varpool_get_node, varpool_node): Sanity check that only
3280 static or extern vars are in varpool.
3281 (varpool_finalize_decl): Sanity check that only static vars are
3284 2010-09-03 Jakub Jelinek <jakub@redhat.com>
3287 * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
3288 not just generic vectors with BLKmode.
3290 2010-09-03 Richard Guenther <rguenther@suse.de>
3292 * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
3293 Move TMR_OFFSET to second operand. Add TMR_INDEX2.
3294 * tree.h (TMR_SYMBOL): Remove.
3295 (TMR_BASE, TMR_OFFSET): Adjust.
3297 * alias.c (ao_ref_from_mem): Use TMR_BASE.
3298 * builtins.c (get_object_alignment): Merge TMR_BASE and
3299 TMR_SYMBOL handling.
3300 * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
3301 * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
3302 handling. Also allow TARGET_MEM_REF as base address.
3303 (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
3304 * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
3305 base. Gimplify TMR_INDEX2.
3306 * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
3307 * tree-dfa.c (get_ref_base_and_extent): Likewise.
3308 (get_addr_base_and_unit_offset): Likewise.
3309 * tree-eh.c (tree_could_trap_p): Likewise.
3310 * tree-pretty-print.c (dump_generic_node): Likewise.
3311 * tree-ssa-address.c (tree_mem_ref_addr): Simplify. Handle TMR_INDEX2.
3312 (create_mem_ref_raw): Merge symbol and base. Move 2ndary
3314 (get_address_description): Reconstruct addres description
3315 from merged TMR_BASE and TMR_INDEX2.
3316 (maybe_fold_tmr): Fold propagated addresses.
3317 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
3318 MEM_REF and TARGET_MEM_REF paths.
3319 (indirect_refs_may_alias_p): Likewise.
3320 * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
3321 instead of TMR_SYMBOL.
3322 * tree-ssa-operands.c (get_tmr_operands): Simplify.
3323 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
3324 according to changes ...
3325 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
3326 Split TARGET_MEM_REF into two fields plus the base.
3327 * tree.c (mem_ref_offset): Simplify.
3328 * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
3329 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
3330 Strip NOPs when folding MEM_REF addresses.
3331 * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
3332 * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
3333 (fold_gimple_assign): ... not here.
3335 2010-09-03 Mingjie Xing <mingjie.xing@gmail.com>
3337 * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
3338 * config/mips/mips.c (mips_shift_truncation_mask): New function.
3339 (TARGET_SHIFT_TRUNCATION_MASK): Define.
3341 2010-09-02 Richard Henderson <rth@redhat.com>
3343 * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
3344 instead of readelf in the test.
3345 (gcc_cv_as_cfi_sections_directive): Check for correct relocation
3346 in the .debug_frame section for coff targets.
3347 * configure: Rebuild.
3349 2010-09-02 Anatoly Sokolov <aesok@post.ru>
3351 * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
3352 * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
3353 * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3354 (m32c_class_likely_spilled_p): Make static. Change argument type to
3355 reg_class_t. Change result type to bool.
3357 2010-09-02 Michael Meissner <meissner@linux.vnet.ibm.com>
3359 * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
3360 to convert (double)(long) into a single FRIZ instruction or not
3361 when -ffast-math is used.
3363 * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
3364 (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
3365 or FRIZ instruction if -ffast-math.
3366 * config/rs6000/rs6000.md (friz): Ditto.
3368 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
3370 2010-09-02 Joseph Myers <joseph@codesourcery.com>
3372 * opth-gen.awk (quote, comma): Remove unused variables.
3374 2010-09-02 Ryan Mansfield <rmansfield@qnx.com>
3376 * arm.c (arm_override_options): Correct fall-back code to use
3377 SUBTARGET_CPU_DEFAULT.
3379 2010-09-02 Julian Brown <julian@codesourcery.com>
3381 * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
3383 (vcond<mode>, vcondu<mode>): New expanders.
3384 (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
3385 comparisons with zero.
3386 (neon_vcle<mode>, neon_vclt<mode>): New patterns.
3387 * config/arm/constraints.md (Dz): New constraint.
3389 2010-09-02 Anatoly Sokolov <aesok@post.ru>
3391 * target.def (class_likely_spilled_p): New hook.
3392 * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
3393 * doc/tm.texi: Regenerate.
3394 * targhooks.c (default_class_likely_spilled_p): New function.
3395 * targhooks.h (default_class_likely_spilled_p): Declare.
3396 * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
3397 * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
3398 TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
3399 Use fixed_reg_set instead of fixed_regs.
3400 * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
3401 * calls.c (avoid_likely_spilled_reg): Ditto.
3402 * ira-conflicts.c (ira_build_conflicts): Ditto.
3403 * ira.c (update_equiv_regs): Ditto.
3404 * mode-switching.c (create_pre_exit): Ditto.
3405 * regmove.c (find_matches): Ditto.
3406 (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
3407 * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
3408 (small_register_class_p): New inline function.
3409 (push_secondary_reload, find_reusable_reload, find_reloads): Use
3410 small_register_class_p instead of SMALL_REGISTER_CLASS_P.
3412 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
3413 * config/i386/i386.c (ix86_class_likely_spilled_p): New.
3414 (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3416 2010-09-02 Richard Guenther <rguenther@suse.de>
3418 PR tree-optimization/44937
3419 PR tree-optimization/45412
3420 * ipa-split.c (split_function): Properly remove PHI nodes.
3422 2010-09-02 Joseph Myers <joseph@codesourcery.com>
3424 * opts.h (struct cl_option): Add warn_message field.
3425 (struct cl_decoded_option): Add warn_message field.
3426 * doc/options.texi (Ignore, Warn): Document.
3427 * opt-functions.awk (needs_state_p): Don't consider aliases or
3428 ignored options to need state saved.
3429 * optc-gen.awk: Handle Warn and Ignore.
3430 * opth-gen.awk: Output OPT_SPECIAL_ignore.
3431 * opts-common.c (decode_cmdline_option): Set warn_message field.
3432 Handle ignored options.
3433 (decode_cmdline_options_to_array, generate_option,
3434 generate_option_input_file): Set warn_message field.
3435 (read_cmdline_option): Generate warnings from warn_message field.
3436 Handle ignored options.
3437 * common.opt (Wunreachable-code, fargument-alias,
3438 fargument-noalias, fargument-noalias-global,
3439 fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
3440 floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
3441 fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
3442 ftree-salias): Mark Ignore.
3443 * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
3444 -mintel-syntax and -mno-intel-syntax here.
3445 * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
3447 * opts.c (common_handle_option): Don't handle options marked as
3449 (enable_warning_as_error): Handle ignored options.
3451 2010-09-02 Joseph Myers <joseph@codesourcery.com>
3454 * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
3455 alias_target fields.
3456 * opt-functions.awk (opt_sanitized_name): Don't handle
3457 finline-limit=, Wlarger-than= and ftemplate-depth= specially.
3458 * optc-gen.awk: Generate alias fields.
3459 * opth-gen.awk: Explicitly give values for OPT_* enum constants.
3460 Don't generate such constants for aliases.
3461 * opts-common.c (generate_canonical_option): New.
3462 (decode_cmdline_option): Handle aliases. Use
3463 generate_canonical_option for known options instead of copying the
3465 * doc/options.texi (Alias): Document.
3466 * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
3467 fstack-check, specs): Mark as aliases.
3468 * gcc.c (driver_handle_option): Canonicalize -L options to joined
3470 (driver_handle_option): Don't handle OPT_specs.
3471 * opts.c (common_handle_option): Don't handle options marked as
3473 (enable_warning_as_error): Handle aliases.
3474 * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
3475 OPT_Wlarger_than_eq.
3476 * tree-optimize.c (tree_rest_of_compilation): Use
3477 OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
3479 2010-09-02 Uros Bizjak <ubizjak@gmail.com>
3481 * config/i386/i386.md (nonmemory_operand): New mode attribute.
3482 (push memory peephole2): Macroize peepholes using SWI mode iterator.
3483 (move immediate to memory peephole2): Macroize peepholes using
3484 SWI124 mode iterator.
3485 (non-pairable NOT peephole2): Macroize peepholes using SWI124
3487 (simple lea add peephole2): Macroize peepholes using SWI48
3489 (simple lea mult peephole2): Ditto.
3490 (imul by 3,5,9 to lea peephole2): Ditto.
3491 (mov $-1, reg peephole2): Macroize peepholes using SWI248
3493 (imul $32bit_imm,mem,reg peephole2): Ditto.
3494 (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
3496 2010-09-02 Ian Bolton <ian.bolton@arm.com>
3498 * tree-ssa-loop-prefetch.c: Fix comment at head of file.
3500 2010-09-02 Olivier Hainque <hainque@adacore.com>
3503 * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
3504 (allocno_priority_compare_func): Use it instead of a straight
3505 difference computation over priorities.
3507 2010-09-02 Andi Kleen <ak@linux.intel.com>
3509 * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
3511 2010-09-02 Ira Rosen <irar@il.ibm.com>
3513 * tree-vectorizer.h (get_later_stmt): New function.
3514 (vect_analyze_data_ref_dependences): Add argument.
3515 * tree-vect-loop.c (vect_analyze_loop): Update call to
3516 vect_analyze_data_ref_dependences.
3517 * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
3519 (vect_analyze_data_ref_dependence): Add argument for basic block
3520 dependencies. Check dependencies in basic block vectorization.
3521 (vect_analyze_data_ref_dependences): Add argument and update call to
3522 vect_analyze_data_ref_dependences.
3523 * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
3524 (vect_bb_vectorizable_with_dependencies): New.
3525 (vect_slp_analyze_bb): Check dependencies in basic block.
3526 (vect_schedule_slp_instance): Insert stores before the last store in
3529 2010-09-02 Uros Bizjak <ubizjak@gmail.com>
3532 * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
3533 LIBGCC2_TF_CEXT, TF_SIZE): New defines.
3535 2010-09-01 Jakub Jelinek <jakub@redhat.com>
3538 * bb-reorder.c (add_labels_and_missing_jumps): Treat
3539 bbs ending with throwing insns like blocks ending with a call.
3540 (fix_up_fall_thru_edges): Likewise.
3542 2010-09-01 Nathan Froyd <froydnj@codesourcery.com>
3544 * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
3545 (m32c_function_arg_advance): Delete.
3546 * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3547 * config/m32c/m32c.c (m32c_function_arg): Make static. Adjust
3548 comments. Take a const_tree and a bool. Declare.
3549 (m32c_function_arg_advance): Likewise.
3550 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3552 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
3555 * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
3556 LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
3557 * config/i386/mingw32.h: ... here.
3559 2010-09-01 Andi Kleen <ak@linux.intel.com>
3562 * lto-streamer-in.c (lto_input_ts_target_option): Add.
3563 (lto_input_tree_pointers): Call lto_input_ts_target_option.
3564 * lto-streamer-out (lto_output_ts_target_option): Add.
3565 (lto_output_tree_pointers): Call lto_output_ts_target_option.
3567 2010-09-01 Kai Tietz <kai.tietz@onevision.com>
3570 * config/i386/cygwin.h: Change order of specified import libraries.
3571 * config/i386/mingw32.h: Likewise.
3572 * config/i386/t-cygwin: Likewise.
3573 * config/i386/t-mingw32: Likewise.
3574 * config/i386/t-mingw-w32: Likewise.
3575 * config/i386/t-mingw-w64: Likewise.
3577 2010-09-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3579 * config/arm/neon-schedgen.ml (core): New type.
3580 (allCores): List of supported cores.
3581 (availability_table): Add supported cores.
3582 (collate_bypasses): Accept core as a parameter.
3583 (worst_case_latencies_and_bypasses): Accept core as a parameter.
3584 (emit_insn_reservations): Accept core as a parameter. Use tuneStr
3585 and coreStr to get tune attribute and prefix for functional units.
3586 (emit_bypasses): Accept core name and use it.
3587 (calculate_per_core_availability_table): New.
3589 (calculate_core_availability_table): New.
3590 (main): Use calculate_core_availablity_table.
3591 * config/arm/cortex-a8-neon.md: Update copyright year.
3592 Regenerated from ml file and merged in.
3593 (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
3596 2010-09-01 Ian Bolton <ian.bolton@arm.com>
3598 * Makefile.in (tree-switch-conversion.o): Update dependencies.
3600 2010-09-01 Richard Guenther <rguenther@suse.de>
3602 * alias.c (ao_ref_from_mem): Adjust.
3603 * builtins.c (get_object_alignment): Likewise.
3604 * cfgexpand.c (expand_debug_expr): Likewise.
3605 * gimple.c (get_base_address): Likewise.
3606 * tree-dfa.c (get_ref_base_and_extent): Likewise.
3607 (get_addr_base_and_unit_offset): Likewise. Fix for
3608 both TMR_SYMBOL and TMR_BASE being set.
3609 * tree-eh.c (tree_could_trap_p): Likewise.
3610 * gimplify.c (gimplify_expr): Do not attempt to gimplify
3611 TMR_SYMBOL. Always gimplify TMR_BASE.
3612 * tree-cfg.c (verify_types_in_gimple_reference): Verify
3613 TMR_BASE if there is a TMR_SYMBOL.
3614 * tree-pretty-print.c (dump_generic_node): Adjust.
3615 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
3616 (tree_mem_ref_addr): Likewise.
3617 (create_mem_ref_raw): Likewise.
3618 (move_fixed_address_to_symbol): Likewise.
3619 (create_mem_ref): Likewise.
3620 (dump_mem_address): Likewise.
3621 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
3622 Fix for both TMR_SYMBOL and TMR_BASE being set.
3623 (indirect_refs_may_alias_p): Likewise.
3624 * tree-ssa-operands.c (get_tmr_operands): Adjust.
3625 * tree.def (TARGET_MEM_REF): Adjust documentation.
3627 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
3629 * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
3630 Rename from X86_TUNE_ADD_ESP_4.
3631 <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
3632 <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
3633 <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
3634 (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
3635 (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
3636 (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
3637 (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
3638 * config/i386/i386.c (initial_ix86_tune_features)
3639 <X86_TUNE_SINGLE_POP>: Invert members.
3640 <X86_TUNE_DOUBLE_POP>: Ditto.
3641 <X86_TUNE_SINGLE_PUSH>: Ditto.
3642 <X86_TUNE_DOUBLE_PUSH>: Ditto.
3643 * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
3645 (push peephole2 patterns): Macroize peepholes using P mode iterator.
3646 Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
3647 (pop peephole2 patterns): Macroize peepholes using P mode iterator.
3648 Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
3650 2010-09-01 Eric Botcazou <ebotcazou@adacore.com>
3652 * gimplify.c (gimplify_init_constructor): Do not create a temporary for
3653 a volatile LHS if the constructor has only one element.
3655 2010-09-01 Mikael Pettersson <mikpe@it.uu.se>
3658 * tree.c (stdarg_p): Make fntype parameter const.
3659 * tree.h (stdarg_p): Likewise.
3660 (function_args_iterator): Remove unused fntype field.
3661 (function_args_iter_init): Do not initialize fntype
3662 field. Make fntype parameter const.
3664 2010-09-01 Richard Guenther <rguenther@suse.de>
3666 * tree-vrp.c (adjust_range_with_scev): Use number of iteration
3668 (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
3669 (execute_vrp): Compute number of iteration estimates.
3670 * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
3671 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
3672 * tree-data-ref.c (estimated_loop_iterations): Adjust.
3673 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
3674 Infer loop bounds from undefined behavior based on a new parameter.
3675 (estimate_numbers_of_iterations): Likewise.
3676 (scev_probably_wraps_p): Adjust.
3677 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
3679 2010-09-01 Nick Clifton <nickc@redhat.com>
3681 * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
3683 (xstormy16_legitimate_address_p): Use true and false instead of 1
3685 (xstormy16_expand_prologue): Delete unused local variable 'insn'.
3686 (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
3688 (xstormy16_expand_call): Fix comment at start of function.
3690 2010-09-01 Nick Clifton <nickc@redhat.com>
3692 * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
3693 when pushing accumulator register.
3694 (rx_get_stack_layout): Always save call clobbered registers inside
3696 * config/rx/rx-modes.def: Fix descriptive comment at start of file.
3698 2010-09-01 Uros Bizjak <ubizjak@gmail.com>
3700 * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
3701 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
3703 * libgcc-std.ver (GCC_4.6.0): Define version.
3705 2010-08-31 Eric Botcazou <ebotcazou@adacore.com>
3707 * tree-nested.c (convert_all_function_calls): Iterate until after the
3708 sum of static chains in the nest doesn't change.
3710 2010-08-31 Anatoly Sokolov <aesok@post.ru>
3712 * config/m32c/m32c.c (classes_intersect): Remove.
3713 (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
3714 reg_classes_intersect_p instead of classes_intersect.
3715 (class_can_hold_mode): Change arguments type from enum reg_class to
3716 reg_class_t. Use reg_class_contents instead of class_contents.
3717 (m32c_register_move_cost): Make static. Change arguments type from
3718 enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
3719 classes_intersect. Use reg_class_contents instead of class_contents.
3720 (m32c_memory_move_cost): Make static. Change arguments type from
3721 enum reg_class to reg_class_t.
3722 (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
3723 * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
3724 * config/m32c/m32c-protos.h (m32c_register_move_cost,
3725 m32c_memory_move_cost): Remove.
3727 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
3729 * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
3730 (arm_function_arg): Delete.
3731 (arm_needs_doubleword_align): Take a const_tree.
3732 * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3733 * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
3734 (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
3735 (arm_function_arg): Make static. Take a const_tree and a bool.
3736 (arm_function_arg_advance): Likewise.
3737 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3739 2010-08-31 Andi Kleen <ak@linux.intel.com>
3741 * common.opt (fwhopr=): Update for -fwhopr=jobserver
3742 * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
3743 * lto-wrapper.c (run_gcc): Add jobserver mode.
3744 * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
3747 2010-08-31 Uros Bizjak <ubizjak@gmail.com>
3749 * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
3751 (*popdi1_epilogue): Ditto.
3752 (*popsi1_epilogue): Ditto.
3753 (popsi, popdi peephole2 patterns): Update peepholes for changed
3754 pop{si,di}1 and *pop{si,di}1_epilogue patterns.
3756 (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
3757 (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
3759 * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
3760 (override_options): Do not initialize removed ix86_gen_pop1.
3761 (gen_pop): New static function.
3762 (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
3763 (release_scratch_register_on_entry): Ditto.
3764 (ix86_restore_reg_using_pop): Ditto.
3765 (ix86_expand_epilogue): Ditto.
3767 2010-08-31 Jakub Jelinek <jakub@redhat.com>
3770 * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
3772 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
3774 * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
3777 2010-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3779 * doc/extend.texi: Fix documentation of the return value of
3780 __builtin_choose_expr.
3782 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
3784 * config/v850/v850-protos.h (function_arg): Delete.
3785 * config/v850/v850.h (FUNCTION_ARG): Delete.
3786 (FUNCTION_ARG_ADVANCE): Move code to...
3787 * config/v850/v850.c (v850_function_arg_advance): ...here.
3788 (v850_function_arg): Make static. Take a const_tree and a bool.
3789 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3791 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
3793 * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
3795 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
3797 * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
3799 (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
3801 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3803 2010-08-31 Nathan Froyd <froydnj@codesourcery.com>
3805 * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
3807 * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3808 * config/rx/rx.c (rx_function_arg_size): Make static.
3809 (rx_function_arg): Likewise.
3810 (rx_function_arg_advance): New function.
3811 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3813 2010-08-31 John Tytgat <John.Tytgat@aaug.net>
3815 * config/arm/arm.c (arm_override_options): Remove superfluous test.
3818 2010-08-31 Eric Botcazou <ebotcazou@adacore.com>
3820 * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
3821 (dwarf2out_decl) <CONST_DECL>: Likewise.
3823 2010-08-30 Eric Botcazou <ebotcazou@adacore.com>
3826 * common.opt (-fstack-usage): New option.
3827 * doc/invoke.texi (Debugging options): Document it.
3828 * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
3829 allocate_dynamic_stack_space.
3830 (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
3831 and propagate it to allocate_dynamic_stack_space.
3832 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
3833 * calls.c (initialize_argument_information): Pass TRUE as 4th
3834 argument to allocate_dynamic_stack_space.
3835 (expand_call): Set current_function_has_unbounded_dynamic_stack_size
3836 to 1 when pushing a variable-sized argument onto the stack. Pass
3837 TRUE as 4th argument to allocate_dynamic_stack_space.
3838 Update current_function_pushed_stack_size.
3839 (emit_library_call_value_1): Likewise.
3840 * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
3841 CANNOT_ACCUMULATE. If flag_stack_usage, look into the size and
3842 attempt to find an upper bound. Remove redundant code for the
3843 SETJMP_VIA_SAVE_AREA case.
3844 * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
3845 * function.h (struct stack_usage): New structure.
3846 (current_function_static_stack_size): New macro.
3847 (current_function_dynamic_stack_size): Likewise.
3848 (current_function_pushed_stack_size): Likewise.
3849 (current_function_dynamic_alloc_count): Likewise.
3850 (current_function_has_unbounded_dynamic_stack_size): Likewise.
3851 (current_function_allocates_dynamic_stack_space): Likewise.
3852 (struct function): Add new field 'su'.
3853 * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
3854 add the value of the dynamic offset to the dynamic stack usage.
3855 (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
3856 for variable-sized objects.
3857 (prepare_function_start): Allocate cfun->su if flag_stack_usage.
3858 (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
3859 * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
3860 BUILT_IN_ALLOCA for variable-sized objects.
3861 * output.h (output_stack_usage): Declare.
3862 * toplev.c (stack_usage_file): New file pointer.
3863 (output_stack_usage): New function.
3864 (open_auxiliary_file): Likewise.
3865 (lang_dependent_init): Open file if flag_stack_usage is set.
3866 (finalize): Close file if stack_usage_file is not null.
3867 * tree.h (ALLOCA_FOR_VAR_P): New macro.
3868 * config/alpha/alpha.c (compute_frame_size): New function.
3869 (alpha_expand_prologue): Use it.
3870 (alpha_start_function): Likewise.
3871 (alpha_expand_epilogue): Likewise. Set stack usage info.
3872 * config/i386/i386.c (ix86_expand_prologue): Likewise.
3873 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
3874 * config/mips/mips.c (mips_expand_prologue): Likewise.
3875 * config/pa/pa.c (hppa_expand_prologue): Likewise.
3876 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
3877 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
3879 2010-08-30 Zdenek Dvorak <ook@ucw.cz>
3881 PR tree-optimization/45427
3882 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
3883 Handle the case that the exit is never taken correctly.
3884 (number_of_iterations_ne): Pass exit_must_be_taken to
3885 number_of_iterations_ne_max.
3887 2010-08-30 Catherine Moore <clm@codesourcery.com>
3889 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
3890 Infer -mdspr2 for the the 74K.
3892 2010-08-30 Jakub Jelinek <jakub@redhat.com>
3895 * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
3898 * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
3899 and TRUTH_{AND,OR,XOR}_EXPR.
3900 * c-parser.c (c_parser_omp_atomic): Handle boolean
3901 {PRE,POST}_{INC,DEC}REMENT.
3903 2010-08-30 Nathan Froyd <froydnj@codesourcery.com>
3905 * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
3906 (function_arg): Delete.
3907 * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
3908 (FUNCTION_INCOMING_ARG): Delete.
3909 * config/xtensa/xtensa.c (function_arg_advance): Rename to...
3910 (xtensa_function_arg_advance): ...this. Make static. Take a const_tree
3912 (function_arg): Rename to...
3913 (xtensa_function_arg_1): ...this. Make static. Take a const_tree and
3915 (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
3916 (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
3917 (TARGET_FUNCTION_INCOMING_ARG): Define.
3919 2010-08-30 Richard Guenther <rguenther@suse.de>
3921 PR tree-optimization/21602
3922 * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
3923 using points-to information.
3925 2010-08-30 H.J. Lu <hongjiu.lu@intel.com>
3927 * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
3929 2010-08-30 Richard Guenther <rguenther@suse.de>
3931 PR tree-optimization/45449
3932 * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
3935 2010-08-30 Joseph Myers <joseph@codesourcery.com>
3937 * opts.h (CL_ERR_NEGATIVE): Define.
3938 * opts.c (unknown_option_callback): Don't postpone warnings for
3939 options marked with CL_ERR_NEGATIVE.
3940 * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
3941 for negative versions of CL_REJECT_NEGATIVE options.
3943 2010-08-30 Uros Bizjak <ubizjak@gmail.com>
3945 * config/i386/i386.md (zero_extendsidi2_1): Rename from
3946 zero_extendsidi2_32.
3947 (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
3948 using SWI12 mode iterator.
3949 (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
3950 to define_insn_and_split pattern.
3951 (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
3952 using SWI24 mode iterator.
3953 (*zero_extendqi<mode>2_and): Macroize insn from
3954 *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
3955 (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
3956 *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
3957 SWI24 mode iterator.
3958 (*zero_extendqi<mode>2_movzbl): Ditto from
3959 *zero_extendqi{hi,si}2_movzbl.
3960 (extendsidi2_1): Rename from extendsidi2_32.
3961 (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
3962 SWI12 mode iterator.
3964 2010-08-29 Eric Botcazou <ebotcazou@adacore.com>
3966 * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
3967 general purpose registers.
3968 (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
3969 * config/ia64/ia64.md (*movcci): Change to named pattern. Deal
3970 with general purpose registers and memory operands. Add associated
3971 CCImode post-reload splitter.
3972 * config/ia64/div.md: Change BImode to CCImode throughout.
3974 2010-08-28 Eric Botcazou <ebotcazou@adacore.com>
3976 * config/ia64/ia64.md (cstorebi4): Fix thinko.
3978 2010-08-28 Hariharan Sandanagobalane <hariharan@picochip.com>
3980 * config/picochip/picochip.c (reorder_var_tracking_notes): This
3981 function was dropping debug insns which caused PR45299.
3983 2010-08-28 Uros Bizjak <ubizjak@gmail.com>
3985 * config/i386/sse.md (extsuffix): New code attribute.
3986 (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
3987 and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
3988 (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
3989 and sse4_1_zero_extendv4qiv4si2.
3990 (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
3991 and sse4_1_zero_extendv2qiv2di2.
3992 (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2