1 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
3 * Makefile.in (graphite.o): Depends on PREDICT_H.
4 * graphite.c: Include predict.h.
5 (graphite_finalize): Call tree_estimate_probability.
6 * predict.c (predict_loops): Do not call scev_initialize and
8 (tree_estimate_probability_bb): New.
9 (tree_estimate_probability): Do not initialize loops: move that
10 code to the driver. Call tree_estimate_probability_bb.
11 (tree_estimate_probability_driver): New.
12 (pass_profile): Use tree_estimate_probability_driver.
13 * predict.h (tree_estimate_probability): Declared.
15 2009-08-12 Sebastian Pop <sebastian.pop@amd.com>
17 * graphite-clast-to-gimple.c (gloog): Add time to TV_GRAPHITE_CODE_GEN.
18 * graphite-dependences.c (graphite_legal_transform): Add time to
19 TV_GRAPHITE_DATA_DEPS.
20 (dependency_between_pbbs_p): Same.
21 * timevar.def (TV_GRAPHITE_DATA_DEPS, TV_GRAPHITE_CODE_GEN): New.
23 2009-08-12 Andrey Belevantsev <abel@ispras.ru>
25 PR rtl-optimization/41033
26 * alias.c (nonoverlapping_component_refs_p): Punt when strict
29 2009-08-11 Adam Nemet <anemet@caviumnetworks.com>
31 * config/mips/predicates.md (qi_mask_operand, hi_mask_operand,
32 si_mask_operand, and_load_operand, low_bitmask_operand,
33 and_reg_operand, and_operand): New predicates.
34 * config/mips/constraints.md (Yb, Yh, Yw, Yz): New constraints.
35 * config/mips/mips.c (and_operands_ok): New function.
36 * config/mips/mips-protos.h (and_operands_ok): Declare it.
37 * config/mips/mips.md (move_type): Add ext_ins and logical.
39 (and<mode>3): Use and_reg_operand as the second operand's
41 (*and<mode>3): Add alternatives for lbu, lhu, lwu, <d>ext and
42 shift_shift. Remove commutative constraint modifier.
43 (*and<mode>3_mips16): Add alternatives for lbu, lhu, lwu and
45 (*clear_upper32_dext): Remove define_insn_and_split.
46 (*clear_upper32): Turn this define_insn_and_split ...
47 (splitter for ANDing register with 0xffff_ffff): .. into this.
49 2009-08-11 Adam Nemet <anemet@caviumnetworks.com>
51 * combine.c (try_widen_shift_mode): Factor out code to check if an
52 integer constant is a low-order bitmask from here ...
53 * rtlanal.c (low_bitmask_len): ... to here.
54 * rtl.h (low_bitmask_len): Declare.
56 2009-08-11 Uros Bizjak <ubizjak@gmail.com>
59 * config/alpha/alpha.md (addsi3): Remove expander.
60 (addsi3): Rename from *addsi3_internal insn pattern.
61 (subsi3): Remove expander.
62 (subsi3): Rename from *subsi3_internal insn pattern.
64 2009-08-11 Douglas B Rupp <rupp@gnat.com>
66 * config/alpha/alpha.c (alpha_init_builtins): Nullify FWRITE and
69 2009-08-11 Vasiliy Fofanov <fofanov@adacore.com>
70 Eric Botcazou <botcazou@adacore.com>
71 Douglas B Rupp <rupp@gnat.com>
73 * config/alpha/alpha.c (alpha_return_in_memory): On VMS, ensure
74 that records that fit in 64 bits are returned by immediate value,
75 as required by OpenVMS Calling Standard.
76 (function_value): Adjust for above modification.
77 (alpha_va_start) <TARGET_ABI_OPEN_VMS>: Use
78 virtual_incoming_args_rtx as base object, not next_arg.
79 * config/alpha/vms.h: (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
81 2009-08-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
83 * reload.c (find_reloads_subreg_address): Check the original
84 req_equiv_mem address to detect the case where an address is
85 not valid in the outer mode.
87 2009-08-11 Richard Guenther <rguenther@suse.de>
90 * builtins.c (gimplify_va_arg_expr): Do not call SET_EXPR_LOCATION.
92 2009-08-10 Douglas B Rupp <rupp@gnat.com>
94 * config/alpha/vms.h (OPTIMIZATION_OPTIONS): Remove
95 (OVERRIDE_OPTIONS): Incorporate removed OPTIMIZATION_OPTIONS.
97 2009-08-10 Olivier Hainque <hainqueu@adacore.com>
98 Douglas B Rupp <rupp@gnat.com>
100 * config/alpha/alpha.c (alpha_sa_size): Force procedure type to
101 PT_STACK when frame_pointer_needed on OpenVMS.
102 (alpha_pv_save_size, alpha_using_fp): Remove.
103 (alpha_vms_can_eliminate): New function. Support for CAN_ELIMINATE
104 with proper processing for PT_NULL.
105 (alpha_vms_initial_elimination_offset): New function. Support for
106 INITIAL_ELIMINATION_OFFSET with proper processing for PT_NULL.
107 (alpha_sa_size): Force procedure type to PT_STACK when
108 frame_pointer_needed on OpenVMS.
109 * config/alpha/alpha-protos.h (alpha_pv_save_size): Remove prototype.
110 (alpha_using_fp): Likewise.
111 (alpha_vms_can_eliminate): Add prototype.
112 (alpha_vms_initial_elimination_offset): Likewise.
113 * config/alpha/vms.h (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET):
114 Call alpha_vms_can_eliminate and alpha_vms_initial_elimination_offset.
116 2009-08-10 Eric Botcazou <botcazou@adacore.com>
117 Douglas B Rupp <rupp@gnat.com>
119 * config/alpha/alpha.c (common_object_handler): New function.
120 (vms_attribute_table): Declare a single attribute "common_object".
121 (vms_output_aligned_decl_common): New global function.
122 (SECTION_VMS_OVERLAY): Delete.
123 (SECTION_VMS_GLOBAL): Likewise.
124 (SECTION_VMS_INITIALIZE): Likewise.
125 (vms_asm_named_section): Remove support for above flags.
126 (vms_section_type_flags): Delete.
127 (TARGET_SECTION_TYPE_FLAGS): Likewise.
128 * config/alpha/alpha-protos.h (vms_output_aligned_decl_common): New.
129 * config/alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.
130 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New macro.
132 2009-08-10 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
135 * longlong.h [__sh__] (udiv_qrnnd): Add T register to clobber list.
136 (sub_ddmmss): Likewise.
138 2009-08-10 Andreas Tobler <a.tobler@schweiz.org>
141 * config/rs6000/freebsd.h: Define SVR4_ASM_SPEC. Adjust copyright
144 2009-08-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
147 * reload1.c (reload_as_needed): Use cancel_changes to completely
148 undo a failed replacement attempt.
150 2009-08-10 Richard Guenther <rguenther@suse.de>
153 * tree-ssa.c (useless_type_conversion_p_1): Fold into ...
154 (useless_type_conversion_p): ... here. Require pointer targets
157 2009-08-10 Dodji Seketeli <dodji@redhat.com>
160 * tree-inline.c (copy_statement_list): The resulting copy shouldn't
161 loose the original type of the statement list.
163 2009-08-09 Douglas B Rupp <rupp@gnat.com>
165 * config/alpha/alpha.c: Include libfuncs.h
166 (avms_asm_output_extern): New function.
167 (alpha_init_libfuncs): Init some decc libfuncs.
168 * config/alpha/alpha-protos.h (avms_asm_output_external): Declare.
169 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define.
170 (DO_CRTL_NAMES): Define.
172 * config/alpha/vms64.h: (POINTERS_EXTEND_UNSIGNED): Remove undef.
173 (LONG_TYPE_SIZE): Define.
174 (TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1
175 (SUBTARGET_SWITCHES): Define malloc64 switch.
176 (TARGET_DEFAULT): Default MASK_MALLOC64 set.
177 (MASK_RETURN_ADDR): Define.
178 doc/invoke.texi (mmalloc64): Document switch.
180 2009-08-09 Olivier Hainque <hainque@adacore.com>
181 Douglas B Rupp <rupp@gnat.com>
183 * config/alpha/alpha.c (struct machine_function): New flag for VMS,
184 uses_condition_handler.
185 (alpha_expand_builtin_establish_vms_condition_handler): New expander.
186 (alpha_expand_builtin_revert_vms_condition_handler): New expander.
187 (enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER
188 and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values.
189 (code_for_builtin): New insn codes for the new alpha_builtins.
190 (alpha_init_builtins): Register the new functions as BUILT_IN_MD.
191 (alpha_sa_size): Account for uses_condition_handler.
192 (alpha_expand_prologue): Likewise.
193 (alpha_start_function): Likewise.
194 (alpha_expand_epilogue): Likewise.
195 * config/alpha/alpha-protos.h: Prototype the new alpha.c builtin
196 establish/revert expanders.
197 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define.
198 * config/alpha/alpha.md (builtin_establish_vms_condition_handler):
199 New expander, resorting to the alpha.c associated function.
200 (builtin_revert_vms_condition_handler): Likewise.
201 * config/alpha/vms-gcc_shell_handler.c: New file. Implements
202 __gcc_shell_handler, the static VMS condition handler used as
203 an indirection wrapper to the current dynamically established
205 * config/alpha/vms-unwind.h: Complete rewrite.
206 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c
207 * config/alpha/vms.h (MD_UNWIND_SUPPORT):
209 2009-08-09 Eric Botcazou <botcazou@adacore.com>
210 Douglas B Rupp <rupp@gnat.com>
212 * config/alpha/alpha.c (alpha_links): Add 'target' field.
213 (alpha_need_linkage): Handle aliases. Return function symbol.
214 (alpha_use_linkage): Rename 'linkage' argument to 'func'.
215 Use ultimate alias target for the linkage name.
216 * config/alpha/alpha.md (movmemdi): Use the symbol returned
217 by alpha_need_linkage for the function symbol.
218 (setmemdi): Likewise.
220 2009-08-09 Douglas B Rupp <rupp@gnat.com>
222 * config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS.
223 * config/alpha/vms.h (OBJECT_FORMAT_ELF): Define.
224 (ASM_WEAKEN_LABEL): Define.
225 (CRT_CALL_STATIC_FUNCTION): Define.
226 (STARTFILE_SPEC): Add crtbegin.o crtbeginS.o.
227 (ENDFILE_SPEC): Define.
228 (INIT_SECTION_ASM_OP): Define.
229 * config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove.
230 * config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o
232 (MULTILIB_OSDIRNAMES): Define.
233 (shlib_version): Define.
235 (SHLIB_OBJS): Define.
236 (SHLIB_NAME): Define.
237 (SHLIB_MULTILIB): Define.
238 (SHLIB_INSTALL): Define.
239 (SHLIB_SYMVEC): Define.
240 (SHLIB_SYMVECX2): Define.
241 (SHLIB_LINK): Define.
243 2009-08-09 Douglas B Rupp <rupp@gnat.com>
245 * config/alpha/alpha.c (alpha_initialize_trampoline):
246 Initialize VMS trampoline IAW ABI for bounded procedure calls.
247 (alpha_start_function): Emit transfer address on nested functions
248 for VMS trampoline call.
249 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm
250 since no longer used.
251 * config/alpha/vms-tramp.asm: Remove.
252 * config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined
253 since now only data initialized at runtime.
255 2009-08-09 Douglas B Rupp <rupp@gnat.com>
257 * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define.
258 (LINK_GCC_C_SEQUENCE_SPEC): Define.
259 (MD_EXEC_PREFIX): Remove, no longer used.
260 (MD_STARTFILE_PREFIX): Likewise.
261 (INCLUDE_DEFAULTS): Likewise.
262 * config/alpha/t-vms:
263 (vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile.
265 2009-08-09 Richard Guenther <rguenther@suse.de>
267 PR tree-optimization/41016
268 * tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification bug.
269 (operand_precision): Remove.
270 (integral_operand_p): Likewise.
271 (recognize_single_bit_test): Adjust.
273 2009-08-09 Richard Sandiford <rdsandiford@googlemail.com>
275 * c-common.c (c_fully_fold_internal): Issue a warning if a binary
276 operation overflows. Likewise non-cast unary arithmetic.
277 If one arm of a conditional expression is always taken,
278 inhibit evaluation warnings for the other arm. Likewise inhibit
279 evaluation warnings for the second && or || operand if the first
280 operand is enough to determine the result.
281 * c-typeck.c (build_conditional_expr): Apply the same inhibition
283 (build_binary_op): Prevent duplicate evaluation warnings.
285 2009-08-09 Richard Sandiford <rdsandiford@googlemail.com>
287 * tree-out-of-ssa.c (insert_value_copy_on_edge): If the source
288 and destination have different modes, Use promote_mode to
289 determine the signedness of the conversion. Assert that the
290 promoted source mode matches the destination mode. Don't pass
291 the destination and destination mode to expand_expr if the source
292 mode is different. Simplify conversion logic.
294 2009-08-09 Ira Rosen <irar@il.ibm.com>
296 PR tree-optimization/41008
297 * tree-vect-loop.c (vect_is_simple_reduction): Get operands
298 from condition only in case it's a comparison. Adjust checks.
300 2009-08-09 Bernd Schmidt <bernd.schmidt@analog.com>
302 * tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function.
303 * tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it.
304 * tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer.
305 (enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE.
306 (dump_cand): Handle them.
307 (struct iv_cand): New members COST_STEP and AINC_USE.
308 (stmt_after_increment): Likewise.
309 (stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos. All
310 callers changed. Use gimple_uid comparison instead of scanning.
311 (add_candidate_1): When looking for identical candidates, take
312 AINC_USE into account. Set it for new candidates.
313 (force_expr_to_var_cost): Cast target_spill_cost to int.
314 (get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC.
315 All callers changed. Check for availability of autoinc addressing
316 modes, both in general for a given mode, and in the specific use case.
317 (get_computation_cost_at): New argument CAN_AUTOINC. All callers
319 (get_computation_cost): Likewise.
320 (autoinc_possible_for_pair, set_autoinc_for_original_candidates,
321 add_autoinc_candidates): New static functions.
322 (add_candidate): Call add_autoinc_candidates for candidates based on
324 (find_iv_candidates): Call set_autoinc_for_original_candidates.
325 (determine_use_iv_cost_address): If we have an autoinc candidate at
326 the matching use, verify autoinc is possible and subtract the cost
327 of the candidate's step from the cost.
328 (determine_iv_cost): Record the cost of the increment in the COST_STEP
329 member of the candidate.
330 (tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and
331 determine_use_iv_costs. Call renumber_gimple_stmt_uids_in_blocks.
333 2009-08-09 Douglas B Rupp <rupp@gnat.com>
335 * config.build (ia64-hp-*vms*): New target.
336 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
338 * config.gcc (ia64-hp-*vms*): New target.
339 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
341 * config.host (ia64-hp-*vms*): New target.
342 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
345 2009-08-08 Richard Guenther <rguenther@suse.de>
347 PR tree-optimization/40991
348 * tree-ssa-pre.c (eliminate): Delay purging EH edges.
350 2009-08-08 Richard Sandiford <rdsandiford@googlemail.com>
352 * combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from
353 mode check. Do truncations in an integer mode.
354 (force_to_mode): Handle subregs for all mode types. Only do
355 arithmetic simplifications on integer modes.
357 2009-08-07 Richard Guenther <rguenther@suse.de>
359 PR tree-optimization/40999
360 * tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs.
361 (maybe_fold_reference): Lookup constant initializers.
362 (fold_gimple_assign): Likewise.
364 2009-08-07 Richard Guenther <rguenther@suse.de>
366 * tree-ssa.c (useless_type_conversion_p_1): Only for types
367 that require structural equality defer to the langhook.
369 2009-08-07 Martin Jambor <mjambor@suse.cz>
371 * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed
373 (struct ipa_pass_through_data): New type.
374 (struct ipa_ancestor_jf_data): New type.
375 (union jump_func_value): Removed field formal_id, added fields
376 pass_through and ancestor.
377 (struct ipa_param_call_note): Changed type of formal_id to int from
379 * ipa-prop.c (ipa_print_node_jump_functions): Print pass through with
380 operations jump functions and ancestor jump functions.
381 (compute_complex_pass_through): New function.
382 (compute_scalar_jump_functions): Call compute_complex_pass_through,
383 reflect changes in the jump function strucutre.
384 (update_jump_functions_after_inlining): Ignore complex pass-through
385 and ancestor jump functions.
386 * ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and
387 polynomial pass-through with operation jump functions.
389 2009-08-07 Jakub Jelinek <jakub@redhat.com>
391 * dwarf2out.c (output_fde): When doing hot/cold partitioning, use
392 fde->dw_fde_begin as begin label instead of hot/cold label.
393 Use LLSDAC label instead of LLSDA for second section lsda.
394 (dwarf2out_do_cfi_startproc): Add SECOND argument. Use LLSDAC
395 label instead of LLSDA if it is true.
396 (dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust
398 * except.c (add_call_site, dw2_size_of_call_site_table): Add
399 SECTION argument. Use it as index into crtl->eh.call_site_record
401 (dw2_output_call_site_table): Likewise. Add CS_FORMAT argument,
402 use it to determine how to print table entries instead of using
403 #ifdef HAVE_AS_LEB128. For SECTION > 0 use hot resp. cold
404 label instead of normal begin label as base.
405 (sjlj_assign_call_site_values): Adjust add_call_site caller.
406 (convert_to_eh_region_ranges): When doing hot/cold partitioning,
407 ensure no EH range spans between sections and that landing pads
408 are always in the corresponding section.
409 (sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust
410 for crtl->eh.call_site_record being an array rather than scalar.
411 (output_one_function_exception_table): New function, copied
412 from output_function_exception_table. Adjust
413 dw2_size_of_call_site_table, dw2_output_call_site_table
414 callers. For SECOND section use *C suffixed labels.
415 (output_function_exception_table): Call
416 output_one_function_exception_table and, when doing hot/cold
417 partitioning, also another time for the second section.
418 * opts.c: Include except.h.
419 (decode_options): Allow -freorder-blocks-and-partition with
420 exceptions, unless SJLJ or TARGET_UNWIND_INFO.
421 * Makefile.in (opts.o): Depend on $(EXCEPT_H).
422 * function.h (struct rtl_eh): Change call_site_record from
423 scalar into array of 2 elements.
425 2009-08-07 Martin Jambor <mjambor@suse.cz>
427 * ipa-prop.c (count_formal_params_1): New function.
428 (ipa_get_vector_of_formal_parms): New function.
429 (get_vector_of_formal_parm_types): New function.
430 (ipa_modify_formal_parameters): New function.
431 (ipa_modify_call_arguments): New function.
432 (index_in_adjustments_multiple_times_p): New function.
433 (ipa_combine_adjustments): New function.
434 (ipa_dump_param_adjustments): New function.
435 * ipa-prop.h (struct ipa_parm_adjustment): New type.
436 (ipa_get_vector_of_formal_parms): Declare.
437 (ipa_modify_formal_parameters): Declare.
438 (ipa_modify_call_arguments): Declare.
439 (ipa_combine_adjustments): Declare.
440 (ipa_dump_param_adjustments): Declare.
441 (build_ref_for_offset): Declare.
442 * Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies.
443 * tree-sra.c: Include ipa-prop.c.
444 (build_ref_for_offset): Make public.
446 2009-08-06 Neil Vachharajani <nvachhar@gmail.com>
448 * value-prof.c (init_pid_map): Replace xmalloc with XCNEWVEC.
450 2009-08-06 Thomas Schwinge <tschwinge@gnu.org>
452 * gcc/doc/extend.texi (__builtin_extract_return_address)
453 (__builtin_frob_return_address): Document.
455 2009-08-06 Paul Brook <paul@codesourcery.com>
457 * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation.
458 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1
459 implementation on ARMv6-M.
461 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
463 * doc/extend.texi (pcs): Document new attribute for ARM.
465 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
467 * arm.c (pcs_attribute_args): Comment out unsupported attribute
470 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
472 * arm.c (arm_handle_pcs_attribute): Pass the entire name object to
475 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
477 * arm.c (arm_handle_pcs_attribute): Use %qE in warning.
479 2009-08-06 Richard Earnshaw <rearnsha@arm.com>
481 Merge ARM/hard_vfp_branch to trunk.
483 2009-08-04 Richard Earnshaw <rearnsha@arm.com>
485 * arm.c (libcall_eq): New function.
486 (libcall_hash): New function.
487 (add_libcall): New function.
488 (arm_libcall_uses_aapcs_base): New function.
489 (arm_libcall_value): Use arm_libcall_uses_aapcs_base to check for
490 libcalls using the base PCS.
491 (arm_init_cumulative_args): Likewise.
493 2009-07-20 Joseph Myers <joseph@codesourcery.com>
495 * config/arm/arm.c (arm_libcall_value, arm_init_cumulative_args):
496 Use base ABI for conversion libfuncs between HFmode and SFmode.
498 2009-05-12 Joseph Myers <joseph@codesourcery.com>
500 * config/arm/arm.c (aapcs_vfp_sub_candidate): Use V2SImode and
501 V4SImode as representatives of all 64-bit and 128-bit vector
502 types. Allow vector types without vector modes.
503 (aapcs_vfp_is_call_or_return_candidate): Handle vector types
504 without vector modes like BLKmode.
505 (aapcs_vfp_allocate): Handle TImode for non-TARGET_NEON like
506 BLKmode. Avoid unsupported vector modes or TImode moves for
508 (aapcs_vfp_allocate_return_reg): Likewise.
509 (arm_vector_mode_supported_p): Only support V2SImode, V4HImode and
510 V8QImode if TARGET_NEON || TARGET_IWMMXT.
512 2009-05-12 Joseph Myers <joseph@codesourcery.com>
514 * config/arm/arm.c (arm_handle_pcs_attribute): New.
515 (arm_get_pcs_model): Pass attribute arguments to
516 arm_pcs_from_attribute.
517 (arm_init_cumulative_args): Use base AAPCS for conversions from
518 floating-point types to DImode.
519 (arm_attribute_table): Add pcs attribute.
520 (arm_handle_pcs_attribute): New.
521 * config/arm/bpabi.h (DECLARE_LIBRARY_RENAMES): When renaming
522 conversions from floating-point types to DImode, also declare them
523 to use base AAPCS and declare functions they call to use base
524 AAPCS and their RTABI names.
526 2009-05-12 Joseph Myers <joseph@codesourcery.com>
528 * doc/invoke.texi (-mfloat-abi=@var{name}): Remove statement about
529 -mfloat-abi=hard not being supported for VFP.
531 2009-05-11 Kazu Hirata <kazu@codesourcery.com>
533 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Pass a libcall
534 SYMBOL_REF to hard_libcall_value.
536 2009-03-05 Joseph Myers <joseph@codesourcery.com>
537 Richard Earnshaw <rearnsha@arm.com>
539 * config/arm/arm.c (aapcs_layout_arg): Once a co-processor argument
540 has been put on the stack, all remaining co-processory arguments for
541 that co-processor also go on the stack.
543 2009-03-05 Joseph Myers <joseph@codesourcery.com>
545 * config/arm/arm.c (arm_return_in_memory): Handle returning
546 vectors of suitable size in registers also for AAPCS case.
548 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
550 * doc/tm.texi (TARGET_LIBCALL_VALUE): Add missing end statement.
552 2008-12-09 Richard Earnshaw <rearnsha@arm.com>
554 ARM Hard-VFP calling convention
555 * target-def.h (TARGET_LIBCALL_VALUE): New hook.
556 * target.h (gcc_target): Add libcall_value to table of call hooks.
557 * targhooks.h (default_libcall_value): Default implementation.
558 * targhooks.c (default_libcall_value): Likewise.
559 * doc/tm.texi (TARGET_LIBCALL_VALUE): Document it.
560 * optabs.c (expand_unop): Use it.
561 * expr.h (hard_libcall_value): Pass the function RTX through.
562 * calls.c (emit_library_call_value_1): Update call to
564 * explow.c (hard_libcall_value): Use new target hook.
565 * testsuite/lib/target-supports.exp
566 (check_effective_target_arm_hard_vfp_ok): New hook.
567 (check_effective_target_arm_neon_ok): Improve test for neon
569 * testsuite/gcc.target/arm/eabi1.c: Only run test in base variant.
570 * config/arm/arm.c: Include cgraph.h
571 (TARGET_FUNCTION_VALUE): Override default hook.
572 (arm_pcs_default): New variable.
573 (arm_override_options): Don't fault hard calling convention with VFP.
574 Add support for AAPCS variants.
575 (arm_function_value): Make static. Handle AAPCS variants.
576 (arm_libcall_value): New function.
577 (arm_apply_result_size): Handle VFP registers in results.
578 (arm_return_in_memory): Rework all AAPCS variants; handle hard-vfp
580 (pcs_attribute_args): New variable.
581 (arm_pcs_from_attribute): New function.
582 (arm_get_pcs_model): New function.
583 (aapcs_vfp_cum_init): New function.
584 (aapcs_vfp_sub_candidate): New function.
585 (aapcs_vfp_is_return_candidate): New function.
586 (aapcs_vfp_is_call_candidate): New function.
587 (aapcs_vfp_allocate): New function.
588 (aapcs_vfp_allocate_return_reg): New function.
589 (aapcs_vfp_advance): New function.
590 (aapcs_cp_arg_layout): New variable.
591 (aapcs_select_call_coproc): New function.
592 (aapcs_select_return_coproc): New function.
593 (aapcs_allocate_return_reg): New function.
594 (aapcs_libcall_value): New function.
595 (aapcs_layout_arg): New function.
596 (arm_init_cumulative_args): Initialize AAPCS args data.
597 (arm_function_arg): Handle AAPCS variants using new interface.
598 (arm_arg_parital_bytes): Likewise.
599 (arm_function_arg_advance): New function.
600 (arm_function_ok_for_sibcall): Ensure that sibling calls agree on
602 (arm_setup_incoming_varargs): Handle new AAPCS args data.
603 * arm.h (NUM_VFP_ARG_REGS): Define.
604 (LIBCALL_VALUE): Update.
605 (FUNCTION_VALUE): Delete.
606 (FUNCTION_VALUE_REGNO_P): Add VFP regs.
608 (CUMULATIVE_ARGS): New data to support AAPCS argument marshalling.
609 (FUNCTION_ARG_ADVANCE): Call arm_function_arg_advance.
610 (FUNCTION_ARG_REGNO_P): Add VFP regs.
611 * arm-protos.h (arm_function_arg_advance): Add.
612 (aapcs_libcall_value): Add.
613 (arm_function_value): Delete.
615 2009-08-06 Uros Bizjak <ubizjak@gmail.com>
616 H.J. Lu <hongjiu.lu@intel.com>
619 * config/i386/i386.c (standard_sse_mode_p): Remove.
620 (standard_sse_constant_p): Return 2 for integer mode
621 vector_all_ones_operand when SSE2 is enabled.
622 (standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd.
623 (ix86_expand_vector_move): Do not check for negative values from
624 standard_sse_constant_p.
626 2009-08-06 Richard Guenther <rguenther@suse.de>
628 * tree-ssa.c (useless_type_conversion_p_1): Make function and
629 array type comparisons frontend independent.
630 * Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency.
631 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill
632 out array reference lower bound and element size operands.
633 (ao_ref_init_from_vn_reference): Properly compute the offset
635 (vn_reference_fold_indirect): Fill out array reference lower
636 bound and element size operands.
637 * tree-ssa-pre.c (phi_translate_1): Fail if we have to translate
638 a non gimple valued reference operand which can happen for
639 array reference lower bound or element size.
640 (create_component_ref_by_pieces_1): Properly generate the
641 element size operand for array references.
643 2009-08-06 Richard Guenther <rguenther@suse.de>
645 PR tree-optimization/40964
646 * tree.c (iterative_hash_host_wide_int): Export.
647 * tree.h (iterative_hash_host_wide_int): Declare.
648 * tree-ssa-structalias.c (heapvar_map): New struct.
649 (heapvar_map_eq): New function.
650 (heapvar_map_hash): Likewise.
651 (heapvar_lookup): Adjust.
652 (heapvar_insert): Likewise.
653 (make_constraint_from_heapvar): Allow multiple heap variables
654 per decl at different offsets.
655 (init_alias_heapvars): Adjust.
657 2009-08-04 David Daney <ddaney@caviumnetworks.com>
659 * config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro.
660 * mips_output_sync_loop (mips_output_sync_loop): Only emit
661 trailing sync if TARGET_SYNC_AFTER_SC.
663 2009-08-05 David Daney <ddaney@caviumnetworks.com>
665 * gcc/config/mips/sync.md (sync_compare_and_swap<mode>,
666 compare_and_swap_12, sync_add<mode>, sync_<optab>_12,
667 sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12,
668 sync_old_nand_12, sync_new_nand_12, sync_sub<mode>,
669 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
670 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
671 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
672 sync_new_nand<mode>, sync_lock_test_and_set<mode>,
673 test_and_set_12): Rewrite calls to mips_output_sync_loop.
674 * gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make
675 the prototype declaration match the definition.
676 * gcc/config/mips/mips.c (mips_output_sync_loop): Emit sync
677 instructions explicitly. Add barrier_before and operands
679 * gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP,
680 MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12,
681 MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP,
682 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
683 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE,
684 MIPS_SYNC_EXCHANGE_12): Remove sync instructions.
686 2009-08-05 Andrew Pinski <pinskia@gmail.com>
688 * tree-ssa-alias.c: Fix intervals to use [) syntax.
690 2009-08-05 Uros Bizjak <ubizjak@gmail.com>
691 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
694 * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part
697 2009-08-05 Jakub Jelinek <jakub@redhat.com>
699 PR rtl-optimization/40924
700 * dse.c (canon_address): Before calling cselib_expand_value_rtx
701 make sure canon_rtx (mem_address) isn't simpler than
702 canon_rtx (expanded_mem_address).
704 2009-08-05 Li Feng <nemokingdom@gmail.com>
706 * graphite-sese-to-poly.c (build_pbb_drs): Remove build alias set
708 (build_scop_drs): Build alias set for each SCoP.
710 2009-08-04 Sandra Loosemore <sandra@codesourcery.com>
712 * doc/invoke.texi (MIPS Options): Document new 1004K -march options.
713 * config/mips/mips.c (mips_cpu_info_table): Add 1004K cores.
714 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Add pattern for 1004K.
715 (MIPS_ARCH_FLOAT_SPEC): Likewise.
716 (BASE_DRIVER_SELF_SPECS): Likewise.
718 2009-08-04 Andrew Pinski <pinskia@gmail.com>
720 * tree-ssa-alias.c: Fix some comment typos.
722 2009-08-04 Kaz Kojima <kkojima@gcc.gnu.org>
724 * config/sh/linux-atomic.asm (ATOMIC_BOOL_COMPARE_AND_SWAP,
725 ATOMIC_OP_AND_FETCH, ATOMIC_COMBOP_AND_FETCH): Define.
727 2009-08-03 Janis Johnson <janis187@us.ibm.com>
730 * simplify-rtx.c (simplify_binary_operation_1): Disable
731 simplifications for decimal float operations.
733 2009-08-03 Jakub Jelinek <jakub@redhat.com>
736 * tree-ssa.c (warn_uninitialized_var): Even on LHS warn for
737 operand of INDIRECT_REF.
739 2009-08-03 Uros Bizjak <ubizjak@gmail.com>
741 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
742 constants referencing TLS symbols.
744 2009-08-03 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
746 * config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename
747 __sync_compare_and_swap_* to __sync_val_compare_and_swap_*.
749 2009-08-03 Richard Guenther <rguenther@suse.de>
751 * tree.c (make_vector_type): Build a main variant first,
752 get the canonical one and then build the variant.
753 * tree-ssa.c (useless_type_conversion_p_1): Handle
755 (useless_type_conversion_p): Conversions to pointers to
756 incomplete record types are useless.
758 2009-08-03 Richard Guenther <rguenther@suse.de>
760 * tree-cfg.c (pass_warn_unused_result): Mark name that no dump
761 file will be created.
762 * omp-low.c (pass_diagnose_omp_blocks): Likewise.
763 * toplev.c (compile_file): Adjust comment.
765 2009-08-03 Kaz Kojima <kkojima@gcc.gnu.org>
767 * config/sh/sh-protos.h (sh_promote_function_mode): Remove.
768 * config/sh/sh.c (sh_promote_function_mode): Wrap long lines.
769 (TARGET_PROMOTE_FUNCTION_MODE): Define.
770 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
771 (sh_promote_function_mode): Fix typo.
773 2009-08-03 Andreas Krebbel <krebbel1@de.ibm.com>
775 * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused.
777 2009-08-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
779 * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from
780 declaration arguments.
782 2009-08-02 Uros Bizjak <ubizjak@gmail.com>
784 * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
785 of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01).
786 (ix86_split_ashl): Ditto.
787 (ix86_expand_vector_init_one_nonzero): Ditto.
788 (ix86_expand_vector_set): Ditto.
789 (ix86_expand_reduc_v4sf): Ditto.
791 2009-08-02 Paolo Bonzini <bonzini@gnu.org>
793 * explow.c (promote_function_mode): Remove assert.
794 * config/sh/sh.c (sh_promote_function_mode): Declare.
796 2009-08-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
798 * config/pa/pa.c (pa_promote_function_mode): Declare.
799 Change to static. Fix promote_mode call.
801 * gthr-dce.h (CONST_CAST2): Define if not defined.
802 (__gthread_setspecific): Use CONST_CAST2 to fix warning.
804 * config.gcc (hppa[12]*-*-hpux10*): Add stdint support.
806 2009-08-01 Paolo Bonzini <bonzini@gnu.org>
808 * expr.c (store_constructor): Use promote_decl_mode. Remove
809 now write-only variable unsignedp.
810 (expand_expr_real_1): Use promote_decl_mode.
811 * expr.h (promote_function_mode, promote_decl_mode): New.
812 (promote_mode): Remove last argument.
813 * function.c (assign_temp): Drop last argument of promote_mode.
814 (assign_parm_find_data_types): Use promote_function_mode.
815 (assign_parm_setup_reg): Likewise.
816 (expand_function_end): Use promote_function_mode.
817 * calls.c (initialize_argument_information): Use promote_function_mode.
818 (precompute_arguments): Use promote_mode instead of checking if
819 only PROMOTE_FUNCTION_MODE is defined.
820 (expand_call): When making sibcall decisions, use promote_function_mode.
821 Below, remove an if for targetm.calls.promote_function_return and
822 and use promote_function_mode.
823 (emit_library_call_value_1): Use promote_function_mode, fix bug
824 where promote_mode was passed FOR_CALL == 0 for a return value in an
826 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
827 * explow.c (promote_function_mode, promote_decl_mode): New.
828 (promote_mode): Keep only the FOR_CALL == 0 case.
829 * combine.c (setup_incoming_promotion): Remove test of
830 promote_function_args. Use promote_function_mode.
831 * stmt.c (expand_value_return): Use promote_decl_mode.
832 (expand_decl): Use promote_decl_mode.
834 * expr.c (store_constructor): Use promote_decl_mode. Remove
835 now write-only variable unsignedp.
836 (expand_expr_real_1): Use promote_decl_mode.
837 * expr.h (promote_function_mode, promote_decl_mode): New.
838 (promote_mode): Remove last argument.
839 * function.c (assign_temp): Drop last argument of promote_mode.
840 (assign_parm_find_data_types): Use promote_function_mode.
841 (assign_parm_setup_reg): Likewise.
842 (expand_function_end): Use promote_function_mode.
843 * calls.c (initialize_argument_information): Use promote_function_mode.
844 (precompute_arguments): Use promote_mode instead of checking if
845 only PROMOTE_FUNCTION_MODE is defined.
846 (expand_call): When making sibcall decisions, use promote_function_mode.
847 Below, remove an if for targetm.calls.promote_function_return and
848 and use promote_function_mode.
849 (emit_library_call_value_1): Use promote_function_mode, fix bug
850 where promote_mode was passed FOR_CALL == 0 for a return value in an
852 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
853 * explow.c (promote_function_mode, promote_decl_mode): New.
854 (promote_mode): Keep only the FOR_CALL == 0 case.
855 * combine.c (setup_incoming_promotion): Remove test of
856 promote_function_args. Use promote_function_mode.
857 * stmt.c (expand_value_return): Use promote_decl_mode.
858 (expand_decl): Use promote_decl_mode.
860 * explow.c (promote_function_mode): Just call the target hook.
861 * targhooks.c (default_promote_function_mode,
862 default_promote_function_mode_always_promote): New.
863 * targhooks.h (default_promote_function_mode,
864 default_promote_function_mode_always_promote): Declare.
865 * target.h (promote_function_args, promote_function_return): Remove.
866 (promote_function_mode): New.
867 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
868 TARGET_PROMOTE_FUNCTION_RETURN): Remove.
869 (TARGET_PROMOTE_FUNCTION_MODE): New.
870 (TARGET_CALLS): Adjust.
871 * system.h (TARGET_PROMOTE_FUNCTION_ARGS,
872 TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.
874 * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
875 * config/s390/s390.c (s390_promote_function_mode): ... here,
876 with pointer handling.
877 (TARGET_PROMOTE_FUNCTION_MODE): Define.
878 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
880 * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
881 * config/sparc/sparc.c (sparc_promote_function_mode): ... here,
882 with pointer handling.
883 (TARGET_PROMOTE_FUNCTION_MODE): Define.
884 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
886 * config/sh/sh-protos.h (sh_promote_function_mode): New.
887 * config/sh/sh.c (sh_promote_function_mode): New.
888 (TARGET_PROMOTE_FUNCTION_MODE): Define.
889 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
891 * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
892 * config/cris/cris.c (cris_promote_function_mode): ... here.
893 (TARGET_PROMOTE_FUNCTION_MODE): Define.
894 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
896 * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
897 * config/mmix/mmix.c (mmix_promote_function_mode): ... here.
898 (TARGET_PROMOTE_FUNCTION_MODE): Define.
899 (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
901 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
902 * config/arm/arm.c (arm_promote_function_mode): ... here, without
903 complex type handling.
904 (TARGET_PROMOTE_FUNCTION_MODE): Define.
905 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
907 * config/pa/pa.c (pa_promote_function_mode): New.
908 (TARGET_PROMOTE_FUNCTION_MODE): Define.
909 (TARGET_PROMOTE_FUNCTION_RETURN): Remove.
911 * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
912 TARGET_PROMOTE_FUNCTION_RETURN): Remove.
913 (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
914 * config/xtensa/xtensa.c: Likewise.
915 * config/stormy16/stormy16.c: Likewise.
916 * config/iq2000/iq2000.c: Likewise.
917 * config/rs6000/rs6000.c: Likewise.
918 * config/picochip/picochip.c: Likewise.
919 * config/arc/arc.c: Likewise.
920 * config/mcore/mcore.c: Likewise.
921 * config/score/score.c: Likewise.
922 * config/mips/mips.c: Likewise.
923 * config/bfin/bfin.c: Likewise.
924 * config/ia64/ia64.c: Likewise (disabled though).
926 * config/frv/frv.h: Remove pointless remark.
928 * doc/tm.texi (PROMOTE_FUNCTION_MODE,
929 TARGET_PROMOTE_FUNCTION_ARGS,
930 TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
931 (TARGET_PROMOTE_FUNCTION_MODE): ... this.
933 2009-08-01 Sebastian Pop <sebastian.pop@amd.com>
935 * doc/invoke.texi (-fgraphite-force-parallel): Renamed
936 -floop-parallelize-all.
937 * toplev.c (process_options): Rename flag_graphite_force_parallel to
938 flag_loop_parallelize_all.
939 * tree-ssa-loop.c (gate_graphite_transforms): Same.
940 * graphite.c (graphite_transform_loops): Same.
942 * graphite-poly.c (apply_poly_transforms): Same.
944 2009-07-31 Richard Earnshaw <rearnsha@arm.com>
946 PR tree-optimization/40914
947 * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
948 if set, then check the delta field of the PMF record.
949 (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
950 (ipa_analyze_call_uses): Handle machines where the vbit for a PMF
951 call is stored in the delta.
953 2009-07-31 Adam Nemet <anemet@caviumnetworks.com>
955 * config/mips/mips.md (*clear_upper32_dext): New pattern.
957 2009-07-31 Uros Bizjak <ubizjak@gmail.com>
959 * config/i386/bsd.h (ASM_BYTE): New define.
960 * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
961 * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
962 .byte. Use fputs or putc instead of fprintf where appropriate.
963 * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte. Use
964 fputs or putc instead of fprintf where appropriate.
965 * config/i386/i386elf.h: Ditto.
966 * config/i386/sysv4.h: Ditto.
968 * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
969 * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
970 (*tls_global_dynamic_64): Ditto.
972 2009-07-31 Christian Bruel <christian.bruel@st.com>
974 * gcc/config.gcc (sh*-*-elf): test with_libgloss.
976 2009-07-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
978 * config/arm/arm.c (arm_arm_address_cost): Fix typo.
979 Remove dead code for MINUS.
981 2009-07-31 Anthony Green <green@moxielogic.com>
983 * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of
985 (moxie_expand_epilogue): Ditto for epilogue.
986 (moxie_setup_incoming_varargs): ABI change. Use 5 registers for
988 (moxie_function_arg): Ditto.
989 (moxie_pass_by_reference): Ditto.
990 (moxie_arg_partial_bytes): Ditto.
991 * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto.
992 (FUNCTION_ARG_ADVANCE) Ditto.
993 (REG_PARM_STACK_SPACE) Ditto.
994 (FUNCTION_ARG_REGNO_P) Dito.
996 * config.gcc: Add moxie linux config support.
997 * gcc/config/moxie/uclinux.h: New file.
999 2009-07-31 DJ Delorie <dj@redhat.com>
1001 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
1002 (UNSPECV_SP_SWITCH_E): New.
1003 (sp_switch_1): Change to an unspec.
1004 (sp_switch_2): Change to an unspec. Don't use post-inc when we
1006 * config/sh/sh.c (sh_expand_prologue): Use the constant pool to
1007 reference the new stack's address
1009 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1011 * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
1012 graphite-clast-to-gimple.o, graphite-dependences.o,
1013 graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
1014 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
1015 (graphite-blocking.o,
1016 graphite-clast-to-gimple.o, graphite-dependences.o,
1017 graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
1018 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
1019 * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
1020 * cfgloop.h (struct loop): Add can_be_parallel field.
1021 * common.opt (fgraphite-identity): Moved up.
1022 (fgraphite-force-parallel): New flag.
1023 * graphite.c: Rewrite.
1024 * graphite.h: Rewrite.
1025 * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
1027 * toplev.c (graphite_out_file): New file descriptor.
1028 (graphite_in_file): New.
1029 (process_options): flag_graphite_force_parallel cannot be used without
1031 * tree-ssa-loop.c: Include toplev.h.
1032 (gate_graphite_transforms): Enable flag_graphite for
1033 flag_graphite_force_parallel.
1035 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1037 * ChangeLog.graphite: New.
1038 * graphite-blocking.c: New.
1039 * graphite-clast-to-gimple.c: New.
1040 * graphite-clast-to-gimple.h: New.
1041 * graphite-dependences.c: New.
1042 * graphite-dependences.h: New.
1043 * graphite-interchange.c: New.
1044 * graphite-poly.c: New.
1045 * graphite-poly.h: New.
1046 * graphite-ppl.c: New.
1047 * graphite-ppl.h: New.
1048 * graphite-scop-detection.c: New.
1049 * graphite-scop-detection.h: New.
1050 * graphite-sese-to-poly.c: New.
1051 * graphite-sese-to-poly.h: New.
1055 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1057 * tree-chrec.c (evolution_function_right_is_integer_cst): New.
1058 * tree-chrec.h (evolution_function_right_is_integer_cst): Declared.
1060 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1062 * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR.
1063 (scev_is_linear_expression): Return false if the evolution is not
1064 affine multivariate.
1066 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1068 * tree-data-ref.c (graphite_find_data_references_in_stmt): New.
1069 * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.
1071 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1073 * tree-data-ref.c (debug_data_references): New.
1074 (debug_data_reference): New.
1075 * tree-data-ref.h (debug_data_references): Declared.
1076 (debug_data_reference): Declared.
1078 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1080 * tree-data-ref.c (stmt_simple_memref_p: Removed.
1081 * tree-data-ref.h (scop_p): Removed.
1082 (struct data_reference): Remove field scop.
1084 (stmt_simple_memref_p): Removed.
1086 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1088 * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument.
1089 * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch
1092 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1094 * doc/invoke.texi (-fgraphite-force-parallel): Documented.
1096 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1098 * doc/invoke.texi (-fgraphite-identity): Documented.
1100 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1102 * tree-scalar-evolution.c: Fix comment.
1103 (instantiate_scev_1): Return unknow from scev instantiation if the
1104 result is not above instantiate_below.
1106 2009-07-30 Sebastian Pop <sebastian.pop@amd.com>
1108 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
1109 static anymore. Instantiate the symbols that may have been introduced
1111 * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
1114 2009-07-30 DJ Delorie <dj@redhat.com>
1116 * config/mep/mep.c (mep_asm_init_sections): Add section flags and
1117 .vliw directive to VLIW sections.
1119 2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1121 * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
1123 ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
1124 (AUTOHEADER): New variable.
1125 ($(srcdir)/cstamp-h.in): Use it.
1127 2009-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
1128 Pat Haugen <pthaugen@us.ibm.com>
1129 Revital Eres <ERES@il.ibm.com>
1131 * config/rs6000/vector.md (VEC_F): Add VSX support.
1135 (vector_load_<mode>): Ditto.
1136 (vector_store_<mode>): Ditto.
1137 (vector GPR move split): Ditto.
1138 (vec_reload_and_plus_<mptrsize>): Ditto.
1139 (vec_reload_and_reg_<mptrsize>): Ditto.
1140 (add<mode>3): Ditto.
1141 (sub<mode>3): Ditto.
1142 (mul<mode>3): Ditto.
1143 (neg<mode>2): Ditto.
1144 (abs<mode>2): Ditto.
1145 (smin<mode>3): Ditto.
1146 (smax<mode>3): Ditto.
1147 (vector_eq<mode>): Ditto.
1148 (vector_gt<mode>): Ditto.
1149 (vector_ge<mode>): Ditto.
1150 (vector_gtu<mode>): Ditto.
1151 (vector_select_<mode>_uns): Ditto.
1152 (vector_eq_<mode>_p): Ditto.
1153 (vector_gt_<mode>_p): Ditto.
1154 (vector_ge_<mode>_p): Ditto.
1155 (vector_gtu_<mode>_p): Ditto.
1156 (cr6_test_for_zero): Ditto.
1157 (cr6_test_for_zero_reverse): Ditto.
1158 (cr6_test_for_lt): Ditto.
1159 (cr6_test_for_lt_reverse): Ditto.
1160 (xor<mode>3): Ditto.
1161 (ior<mode>3): Ditto.
1162 (and<mode>3): Ditto.
1163 (one_cmpl<mode>2): Ditto.
1164 (nor<mode>2): Ditto.
1165 (andc<mode>2): Ditto.
1166 (float<VEC_int<mode>2): Ditto.
1167 (unsigned_float<VEC_int><mode>2): Ditto.
1168 (fix_trunc<mode><VEC_int>2): Ditto.
1169 (fixuns_trunc<mode><VEC_int>2): Ditto.
1171 (vec_set<mode>): Ditto.
1172 (vec_extract<mode>): Ditto.
1173 (vec_interleave_highv4sf): Ditto.
1174 (vec_interleave_lowv4sf): Ditto.
1175 (vec_realign_load_<mode>): Ditto.
1176 (vec_shl_<mode>): Ditto.
1177 (vec_shr_<mode>): Ditto.
1178 (div<mode>3): New patterns for VSX.
1179 (vec_interleave_highv2df): Ditto.
1180 (vec_interleave_lowv2df): Ditto.
1181 (vec_pack_trunc_v2df): Ditto.
1182 (vec_pack_sfix_trunc_v2df): Ditto.
1183 (vec_pack_ufix_trunc_v2df): Ditto.
1184 (vec_unpacks_hi_v4sf): Ditto.
1185 (vec_unpacks_lo_v4sf): Ditto.
1186 (vec_unpacks_float_hi_v4si): Ditto.
1187 (vec_unpacku_float_lo_v4si): Ditto.
1188 (vec_unpacku_float_hi_v4si): Ditto.
1189 (vec_unpacks_float_lo_v4si): Ditto.
1190 (movmisalign<mode>): Ditto.
1191 (vector_ceil<mode>2): New patterns for vectorizing math library.
1192 (vector_floor<mode>2): Ditto.
1193 (vector_btrunc<mode>2): Ditto.
1194 (vector_copysign<mode>3): Ditto.
1196 * config/rs6000/predicates.md (easy_vector_constant_msb): New
1197 predicate for setting the high bit in each word, used for copysign.
1199 * config/rs6000/ppc-asm.h (f19): Whitespace.
1200 (f32-f63): Define if VSX.
1201 (v0-v31): Define if Altivec.
1202 (vs0-vs63): Define if VSX.
1204 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md.
1206 * config/rs6000/power7.md: New file, provide tuning parameters for
1209 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support.
1210 (rs6000_cpu_cpp_builtins): Ditto.
1211 (altivec_overloaded_builtins): Ditto.
1212 (altivec_resolve_overloaded_builtin): Ditto.
1214 * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new
1215 debug switch to disable vectorizing simple math builtin
1218 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
1219 Vectorize simple math builtin functions.
1220 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
1221 hook to vectorize math builtins.
1222 (rs6000_override_options): Enable -mvsx on -mcpu=power7.
1223 (rs6000_builtin_conversion): Add VSX/power7 support.
1224 (rs6000_builtin_vec_perm): Ditto.
1225 (vsplits_constant): Add support for loading up a vector constant
1226 with just the high bit set in each part.
1227 (rs6000_expand_vector_init): Add VSX/power7 support.
1228 (rs6000_expand_vector_set): Ditto.
1229 (rs6000_expand_vector_extract): Ditto.
1230 (rs6000_emit_move): Ditto.
1231 (bdesc_3arg): Ditto.
1232 (bdesc_2arg): Ditto.
1233 (bdesc_1arg): Ditto.
1234 (rs6000_expand_ternop_builtin): Ditto.
1235 (altivec_expand_builtin): Ditto.
1236 (rs6000_expand_unop_builtin): Ditto.
1237 (rs6000_init_builtins): Ditto.
1238 (altivec_init_builtins): Ditto.
1239 (builtin_function_type): Ditto.
1240 (rs6000_common_init_builtins): Ditto.
1241 (rs6000_handle_altivec_attribute); Ditto.
1242 (rs6000_mangle_type): Ditto.
1243 (rs6000_vector_mode_supported_p): Ditto.
1244 (rs6000_mode_dependent_address): Altivec addresses with AND -16
1247 * config/rs6000/vsx.md: New file for VSX support.
1249 * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for
1250 identifing values with just the most significant bit set.
1251 (enum rs6000_builtins): Add builtins for VSX. Add simple math
1252 vectorized builtins.
1254 * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete.
1255 (UNSPEC_VRFIM): Delete.
1256 (splitter for loading up vector with most significant bit): New
1257 splitter for vectorizing copysign.
1258 (altivec_vrfiz): Rename from altivec_fturncv4sf2. Add support for
1259 vectorizing simple math functions.
1260 (altivec_vrfip): Add support for vectorizing simple math functions.
1261 (altivec_vrfim): Ditto.
1262 (altivec_copysign_v4sf3): New insn for Altivec copysign support.
1264 * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant.
1265 (power7.md, vsx.md): Include for power7 support.
1266 (copysigndf3): Use VSX instructions if -mvsx.
1267 (negdf2_fpr): Ditto.
1268 (absdf2_fpr): Ditto.
1269 (nabsdf2_fpr): Ditto.
1270 (adddf3_fpr): Ditto.
1271 (subdf3_fpr): Ditto.
1272 (muldf3_fpr): Ditto.
1273 (divdf3_fpr): Ditto.
1274 (fix_truncdfdi2_fpr): Ditto.
1275 (cmpdf_internal1): Ditto.
1276 (fred, fred_fpr): Convert into expander/insn to add VSX support.
1277 (btruncdf2, btruncdf2_fpr): Ditto.
1278 (ceildf2, ceildf2_fpr): Ditto.
1279 (floordf2, floordf2_fpr): Ditto.
1280 (floatdidf2, floatdidf2_fpr): Ditto.
1281 (fmadddf4_fpr): Name insn. Use VSX instructions if -mvsx.
1282 (fmsubdf4_fpr): Ditto.
1283 (fnmadddf4_fpr_1): Ditto.
1284 (fnmadddf4_fpr_2): Ditto.
1285 (fnmsubdf4_fpr_1): Ditto.
1286 (fnmsubdf4_fpr_2): Ditto.
1287 (fixuns_truncdfdi2): Add expander for VSX support.
1288 (fix_truncdfdi2): Ditto.
1289 (fix_truncdfsi2): Ditto.
1291 (btruncsf2): Whitespace.
1292 (movdf_hardfloat32): Add support for VSX registers.
1293 (movdf_softfloat32): Ditto.
1294 (movdf_hardfloat64): Ditto.
1295 (movdf_hardfloat64_mfpgpr): Ditto.
1296 (movdf_softfloat64): Ditto.
1297 (movti splitters): Add check for vector registers supporting
1298 TImode in the future.
1299 (bpermd): Add power7 bpermd instruction.
1301 * config/rs6000/altivec.h (vec_div): Define if VSX.
1305 (vec_nearbyint): Ditto.
1308 (all predicates): Use the generic builtin function, and not the V4SF
1309 specific function so that the predicates will work with VSX's V2DF.
1313 * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
1314 Document new VSX functions and types.
1316 * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx
1319 * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws",
1320 "wa", and "j" constraints. Modify "v" to talk about Altivec
1321 instead of just vector.
1323 2009-07-30 Andrew MacLeod <amacleod@redhat.com>
1326 * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
1327 location for phi arguments.
1328 (rewrite_update_phi_arguments): Find locations for reaching defs.
1329 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
1330 Add location to add_phi_arg calls.
1331 * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
1332 * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
1333 split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
1334 * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
1335 create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
1336 * tree.h (struct phi_arg_d): Add location_t to PHI arguments.
1337 * tree-phinodes.c (make_phi_node): Initialize location.
1338 (resize_phi_node): Initialize location to UNKNOWN_LOCATION.
1339 (add_phi_arg): Add location parameter.
1340 (remove_phi_arg_num): Move location when moving phi argument.
1341 * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set
1343 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
1344 slpeel_update_phi_nodes_for_guard1,
1345 slpeel_update_phi_nodes_for_guard2,
1346 slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
1347 vect_loop_versioning): Set locations.
1348 * tree-parloops.c (create_phi_for_local_result,
1349 transform_to_exit_first_loop, create_parallel_loop): Add locations.
1350 * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
1351 * tree-vect-loop.c (get_initial_def_for_induction,
1352 vect_create_epilog_for_reduction, vect_finalize_reduction): Add
1354 * tree-flow-inline.h (gimple_phi_arg_location): New. Return locus.
1355 (gimple_phi_arg_location_from_edge): New. Return locus from an edge.
1356 (gimple_phi_arg_set_location): New. Set locus.
1357 (gimple_phi_arg_has_location): New. Check for locus.
1358 (redirect_edge_var_map_location): New. Return locus from var_map.
1359 * tree-vect-data-refs.c (vect_setup_realignment): Set location.
1360 * tree-ssa-phiopt.c (conditional_replacement): Set locus when
1361 combining PHI arguments.
1362 (cond_store_replacement): Set location.
1363 * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
1364 * grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
1365 scop_add_exit_phis_edge): Add locations.
1366 * tree-cfgcleanup.c (remove_forwarder_block,
1367 remove_forwarder_block_with_phi): Add locations.
1368 * tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
1369 * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
1371 * tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
1372 * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
1373 flush_pending_stmts): Add source location.
1374 * lambda-code.c (perfect_nestify): Maintain location stack with argument
1375 stack to preserve locations.
1376 * tree-vect-stmts.c (vectorizable_load): Add location.
1377 * tree-inline.c (copy_phis_for_bb): Copy locus.
1378 (setup_one_parameter): Add call locus to inlined parameter stmts.
1379 (initialize_inlined_parameters): Pass in call location as parameter
1381 (tree_function_versioning): Pass location to setup_one_parameter.
1382 * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
1383 * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
1384 copy and edge lists.
1385 (insert_partition_copy_on_edge, insert_value_copy_on_edge,
1386 insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a
1387 locus parameter and override the stmt default if provided.
1388 (new_elim_graph, clear_elim_graph, delete_elim_graph,
1389 elim_graph_add_edge, elim_graph_remove_succ_edge,
1390 FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
1391 elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
1392 eliminate_phi): Add locus info in elimination graph for each edge and
1394 (insert_backedge_copies): Copy locus if present.
1395 * tree-flow.h (struct _edge_var_map): Add locus field.
1396 * tree-switch_conversions.c (fix_phi_nodes): Add locations.
1397 * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
1398 add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add
1400 * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.
1402 2009-07-30 Martin Jambor <mjambor@suse.cz>
1404 PR tree-optimization/40570
1405 * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
1408 2009-07-30 Razya Ladelsky <razya@il.ibm.com>
1410 * ssa-loop-manip.c: Include langhooks.h.
1411 (rewrite_phi_with_iv): New.
1412 (rewrite_all_phi_nodes_with_iv): New.
1413 (canonicalize_loop_ivs): Move here from tree-parloops.c.
1414 Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv.
1415 * tree-parloops.c (loop_parallel_p): Move out all conditions
1416 except dependency check.
1417 (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c.
1418 (gen_parallel_loop): Call canonicalize_loop_ivs without
1419 reduction_list argument.
1420 (build_new_reduction): New.
1421 (gather_scalar_reductions): New.
1422 (try_get_loop_niter): New.
1423 (try_create_reduction_list): New.
1424 (parallleize_loops): Change the parallel conditions check.
1425 * tree-flow.h (canonicalize_loop_ivs): Remove one argument.
1426 * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency.
1428 2009-07-30 Dave Korn <dave.korn.cygwin@gmail.com>
1430 * opt-functions.awk (opt_args): Allow argument to be enclosed in
1432 * doc/options.texi (Option properties): Mention new quoting syntax.
1434 2009-07-29 Douglas B Rupp <rupp@gnat.com>
1436 * config/alpha/alpha.c (alpha_start_function):
1437 Handle VMS_DEBUG_MAIN_POINTER
1438 * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro.
1439 * doc/invoke.texi: Document -mdebug-main switch.
1441 2009-07-29 Richard Henderson <rth@redhat.com>
1443 * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
1444 (cgraph_create_edge_including_clones): Likewise.
1445 * tree-inline.c (copy_bb): Operate on the correct edges
1446 when updating the callgraph.
1448 2009-07-29 Douglas B Rupp <rupp@gnat.com>
1450 * config/alpha/vms-cc.c: Deleted.
1451 * config/alpha/vms-ld.c: Deleted.
1452 * config/alpha/t-vms64: Moved to config/vms
1453 * config/alpha/vms-crt0-64.c: Moved to config/vms
1454 * config/alpha/vms-crt0.c: Moved to config/vms
1455 * config/alpha/vms-psxcrt0-64.c: Moved to config/vms
1456 * config/alpha/vms-psxcrt0.c: Moved to config/vms
1457 * config/alpha/xm-vms.h: Moved to config/vms
1458 * config/alpha/x-vms: Moved to config/vms
1459 * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
1461 * config/vms/t-vms: Moved here from config/alpha. Alpha specific
1462 parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
1464 * config/vms/t-vms64: Moved here from config/alpha
1465 * config/vms/vms-crt0-64.c: Moved here from config/alpha.
1466 (argc,argv,envp): Enforce 32bit malloc'ing.
1467 * config/vms/vms-psxcrt0-64.c: Likewise.
1468 * config/vms/vms-crt0.c: Moved here from config/alpha.
1469 * config/vms/vms-psxcrt0.c: Likewise.
1470 * config/vms/vms-crtl-64.h: New file.
1471 * config/vms/vms-crtl.h: New file.
1472 * config/vms/vms.opt: New file.
1473 * config/vms/xm-vms64.h: New file.
1474 * config/vms/xm-vms.h: Moved here from config/alpha.
1475 (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
1477 * config/vms/x-vms: Moved here from config/alpha.
1478 (version, VMS_EXTRA_PARTS): Moved to t-vms.
1479 (vms-ld.o, vms-cc.o): Removed.
1480 (LN, LN_S, USE_COLLECT2, POD2MAN): Set.
1482 2009-07-29 Douglas B Rupp <rupp@gnat.com>
1484 * dwarf2out.c (add_name_and_src_coords_attributes): Push on the
1485 correct stack (obvious VMS fix).
1487 2009-07-29 Douglas B Rupp <rupp@gnat.com>
1489 * dwarf2out.c (output_file_names): Output VMS style file name, size,
1490 date, version info if VMS_DEBUGGING_INFO defined.
1491 * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
1492 size, date calculating code moved here.
1494 2009-07-29 Paul Brook <paul@codesourcery.com>
1496 * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and
1499 2009-07-29 Uros Bizjak <ubizjak@gmail.com>
1502 * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
1503 to DImode when generating insq_le insn.
1505 2009-07-28 Douglas B Rupp <rupp@gnat.com>
1507 * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET):
1508 New macro set for VMS_DEBUGGGING_INFO.
1509 (AT_string_form): Use it.
1511 2009-07-28 DJ Delorie <dj@redhat.com>
1513 * config/mep/mep.c (vtext_section): New.
1514 (vftext_section): New.
1515 (ftext_section): New.
1516 (mep_select_section): Add support for functions.
1517 (mep_unique_section): Likewise.
1518 (mep_asm_init_sections): Likewise.
1519 (mep_encode_section_info): Remove it from here.
1521 * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
1523 2009-07-28 Paolo Bonzini <bonzinI@gnu.org>
1525 * tree.h (TREE_DEPRECATED): Document it is used for types too.
1526 (TYPE_VECTOR_OPAQUE): Use default_def_flag
1528 2009-07-28 Douglas B Rupp <rupp@gnat.com>
1530 * dwarf2out.c (output_file_names): Test new macro
1531 DWARF2_DIR_SHOULD_END_WITH_SEPARATOR.
1532 (add_comp_dir_attribute): Likewise.
1534 2009-07-28 Kai Tietz <kai.tietz@onevision.com>
1536 * config/i386/mingw-w64.h (LINK_SPEC): Add
1537 separating space between commands.
1539 2009-07-28 Jan Hubicka <jh@suse.cz>
1541 PR tree-optimization/40759
1542 * tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses
1545 2009-07-27 DJ Delorie <dj@redhat.com>
1547 * config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit
1548 types are dword-aligned.
1549 (mep_expand_va_start): Likewise.
1551 2009-07-27 Olivier Hainque <hainque@adacore.com>
1552 Douglas B Rupp <rupp@gnat.com>
1554 * convert.c (convert_to_pointer): Don't assume the target
1555 pointer type is POINTER_SIZE long. Fetch its precision instead.
1557 2009-07-27 Douglas B Rupp <rupp@gnat.com>
1559 * system.h (fopen): Undefine if macro.
1561 2009-07-27 Jakub Jelinek <jakub@redhat.com>
1563 * dwarf2out.c (output_cfi_p): Removed.
1564 (output_cfis): New function.
1565 (output_fde): New function, split from output_call_frame_info.
1566 (output_call_frame_info): Use it.
1567 (dwarf2out_switch_text_section): Use output_cfis.
1569 2009-07-24 Kai Tietz <kai.tietz@onevision.com>
1571 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when
1572 TARGET_BI_ARCH is specified without enabling SJLJ.
1573 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT,
1574 if TARGET_64BIT and TARGET_BI_ARCH aren't defined.
1576 2009-07-26 Mikael Pettersson <mikpe@it.uu.se>
1578 * arm.md (negdi2): Use DImode if forcing a value into a register.
1580 2009-07-26 Ira Rosen <irar@il.ibm.com>
1582 PR tree-optimization/40801
1583 * tree-vect-stmts.c (vectorizable_call): Get previous copy
1584 of vector operand from the previous copy of vector statement.
1585 Pass the correct definition type value to
1586 vect_get_vec_def_for_stmt_copy().
1588 2009-07-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1590 * collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to
1591 const char ** conversion.
1593 2009-07-25 David Daney <ddaney@caviumnetworks.com>
1595 * system.h (gcc_assert): Invoke __builtin_unreachable() instead of
1596 fancy_abort() if !ENABLE_ASSERT_CHECKING.
1597 (gcc_unreachable): Invoke __builtin_unreachable() if
1598 !ENABLE_ASSERT_CHECKING.
1600 2009-07-25 David Daney <ddaney@caviumnetworks.com>
1602 PR rtl-optimization/40445
1603 * emit-rtl.c (next_nonnote_insn_bb): New function.
1604 * rtl.h (next_nonnote_insn_bb): Declare new function.
1605 * cfgcleanup.c (try_optimize_cfg): Don't remove an empty block
1606 with no successors that is the successor of the ENTRY_BLOCK.
1607 Continue from the top after removing an empty fallthrough block.
1608 * cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead
1609 of next_nonnote_insn.
1611 2009-07-25 David Daney <ddaney@caviumnetworks.com>
1613 * cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks.
1615 2009-07-25 Martin Jambor <mjambor@suse.cz>
1617 * c-common.c (c_common_attribute_table): New element for noclone.
1618 (handle_noclone_attribute): New function. Forward-declare.
1619 * tree-inline.c (tree_versionable_function_p): Check for noclone
1621 * doc/extend.texi (Labels as Values): Document need for noclone.
1622 (Function Attributes): Document noclone attribute.
1624 2009-07-25 Jakub Jelinek <jakub@redhat.com>
1626 PR rtl-optimization/34999
1627 * dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi
1628 and dw_fde_switched_cold_to_hot fields.
1629 (output_cfi_p): New function.
1630 (output_call_frame_info): If fde->dw_fde_switched_sections,
1631 output 2 FDEs instead of one with corrupted header.
1632 (dwarf2out_do_cfi_startproc): New function.
1633 (dwarf2out_begin_prologue): Use it. Initialize fde->dw_fde_switch_cfi
1634 and fde->dw_fde_switched_cold_to_hot.
1635 (dwarf2out_switch_text_section): Compute
1636 fde->dw_fde_switched_cold_to_hot. Switch to new text section here.
1637 If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call
1638 dwarf2out_do_cfi_startproc plus emit again currently active CFI insns.
1639 Otherwise, compute fde->dw_fde_switch_cfi.
1641 2009-07-24 Cary Coutant <ccoutant@google.com>
1643 * tree-cfg.c (assign_discriminator): Add explicit parentheses.
1645 2009-07-24 Cary Coutant <ccoutant@google.com>
1647 * cfghooks.c (split_block): Copy discriminator to new block.
1648 * tree-cfg.c (assign_discriminator): Check location of last
1649 instruction in block as well as first.
1651 2009-07-24 Uros Bizjak <ubizjak@gmail.com>
1653 * config/i386/linux.c: Use fputs or putc instead of fprintf
1655 * config/i386/gas.h: Ditto.
1656 * config/i386/x86-64.h: Ditto.
1657 * config/i386/att.h: Ditto.
1659 2009-07-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1661 * expmed.c (emit_store_flag): Use a recursive call to optimize the
1664 2009-07-24 Martin Jambor <mjambor@suse.cz>
1666 * ipa-prop.h (struct ipa_node_params): New flag node_enqued.
1667 (ipa_push_func_to_list_1): Declare.
1668 (ipa_push_func_to_list): New function.
1670 * ipa-prop.c (ipa_push_func_to_list_1): New function.
1671 (ipa_init_func_list): Call ipa_push_func_to_list_1.
1672 (ipa_push_func_to_list): Removed.
1673 (ipa_pop_func_from_list): Clear node_enqueued flag.
1675 2009-07-24 Andreas Krebbel <krebbel1@de.ibm.com>
1677 * config/s390/s390.c (override_options): Default
1678 max-unrolled-insns to 100 for z10 tuning.
1680 2009-07-24 Tobias Grosser <grosser@fim.uni-passau.de>
1682 * Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o
1683 tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o,
1684 tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o,
1685 tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o,
1686 tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o
1687 tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o,
1688 lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H.
1690 2009-07-24 Kai Tietz <kai.tietz@onevision.com>
1692 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and
1693 use default set in mingw32.h header.
1694 * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and
1695 64-bit /mingw/include path.
1696 (STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib
1699 2009-07-23 Neil Vachharajani <nvachhar@google.com>
1701 PR rtl-optimization/40209
1702 * loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem.
1704 2009-07-23 Uros Bizjak <ubizjak@gmail.com>
1706 * config/i386/i386.c: Use ASM_LONG instead of .long. Concatenate
1707 ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings
1708 with the rest of string where appropriate. Use fputs or putc
1709 instead of fprintf where appropriate.
1711 2009-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
1712 Pat Haugen <pthaugen@us.ibm.com>
1713 Revital Eres <ERES@il.ibm.com>
1715 * config/rs6000/vector.md: New file. Move most of the vector
1716 expander support here from altivec.md to allow for the VSX vector
1717 unit in the future. Add support for secondary_reload patterns.
1718 Rewrite the patterns for vector comparison, and vector comparison
1719 predicate instructions so that the RTL expresses the desired
1720 behavior, instead of using unspec.
1722 * config/rs6000/constraints.md ("f" constraint): Use
1723 rs6000_constraints to hold the precalculated register class.
1724 ("d" constraint): Ditto.
1725 ("wd" constraint): New constraint for VSX.
1726 ("wf" constraint): Ditto.
1727 ("ws" constraint): Ditto.
1728 ("wa" constraint): Ditto.
1729 ("wZ" constraint): Ditto.
1730 ("j" constraint): Ditto.
1732 * config/rs6000/predicates.md (vsx_register_operand): New
1734 (vfloat_operand): New predicate for vector.md.
1735 (vint_operand): Ditto.
1736 (vlogical_operand): Ditto.
1737 (easy_fp_constant): If VSX, 0.0 is an easy constant.
1738 (easy_vector_constant): Add VSX support.
1739 (altivec_indexed_or_indirect_operand): New predicate for
1740 recognizing Altivec style memory references with AND -16.
1742 * config/rs6000/rs6000.c (rs6000_vector_reload): New static global
1743 for vector secondary reload support.
1744 (rs6000_vector_reg_class): Delete, replacing it with
1746 (rs6000_vsx_reg_class): Ditto.
1747 (rs6000_constraints): New array to hold the register classes of
1748 each of the register constraints that can vary at runtime.
1749 (builtin_mode_to_type): New static array for builtin function type
1751 (builtin_hash_table): New static hash table for builtin function
1753 (TARGET_SECONDARY_RELOAD): Define target hook.
1754 (TARGET_IRA_COVER_CLASSES): Ditto.
1755 (rs6000_hard_regno_nregs_internal): If -mvsx, floating point
1756 registers are 128 bits if VSX memory reference instructions are used.
1757 (rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory
1759 (rs6000_debug_vector_unit): Move into rs6000_debug_reg_global.
1760 (rs6000_debug_reg_global): Move -mdebug=reg statements here.
1761 Print several of the scheduling related parameters.
1762 (rs6000_init_hard_regno_mode_ok): Switch to putting constraints in
1763 rs6000_constraints instead of rs6000_vector_reg_class. Move
1764 -mdebug=reg code to rs6000_debug_reg_global. Add support for
1765 -mvsx-align-128 debug switch. Drop testing float_p if VSX or
1766 Altivec. Add VSX support. Setup for secondary reload support on
1767 Altivec/VSX registers.
1768 (rs6000_override_options): Make power7 set the scheduling groups
1769 like the power5. Add support for new debug switches to override
1770 the scheduling defaults. Temporarily disable -mcpu=power7 from
1771 setting -mvsx. Add support for debug switches -malways-hint,
1772 -msched-groups, and -malign-branch-targets.
1773 (rs6000_buitlin_conversion): Add support for returning unsigned
1774 vector conversion functions to fix regressions due to stricter
1776 (rs6000_builtin_mul_widen_even): Ditto.
1777 (rs6000_builtin_mul_widen_odd): Ditto.
1778 (rs6000_builtin_vec_perm): Ditto.
1779 (rs6000_vec_const_move): On VSX, use xxlxor to clear register.
1780 (rs6000_expand_vector_init): Initial VSX support for using xxlxor
1782 (rs6000_emit_move): Fixup invalid const symbol_ref+reg that is
1784 (bdesc_3arg): Add builtins for unsigned types. Add builtins for
1785 VSX types for bit operations. Changes to accomidate vector.md.
1786 (bdesc_2arg): Ditto.
1787 (bdesc_1arg): Ditto.
1788 (struct builtin_description_predicates): Rewrite predicate
1789 handling so that RTL describes the operation, instead of passing
1790 the instruction to be used as a string argument.
1791 (bdesc_altivec_preds): Ditto.
1792 (altivec_expand_predicate_builtin): Ditto.
1793 (altivec_expand_builtin): Ditto.
1794 (rs6000_expand_ternop_builtin): Use a switch instead of an if
1795 statement for vsldoi support.
1796 (altivec_expand_ld_builtin): Change to use new names from vector.md.
1797 (altivec_expand_st_builtin): Ditto.
1798 (paired_expand_builtin): Whitespace changes.
1799 (rs6000_init_builtins): Add V2DF/V2DI types. Initialize the
1800 builtin_mode_to_type table for secondary reload. Call
1801 builtin_function_type to build random builtin functions.
1802 (altivec_init_builtins): Change to use builtin_function_type to
1803 create builtin function types dynamically as we need them.
1804 (builtin_hash_function): New support for hashing the tree types
1805 for builtin function as we need it, rather than trying to build
1806 all of the trees that we need. Add initial preliminary VSX support.
1807 (builtin_function_type): Ditto.
1808 (builtin_function_eq): Ditto.
1809 (builtin_hash_struct): Ditto.
1810 (rs6000_init_builtins): Ditto.
1811 (rs6000_common_init_builtins): Ditto.
1812 (altivec_init_builtins): Ditto.
1813 (rs6000_common_init_builtins): Ditto.
1814 (enum reload_reg_type): New enum for simplifing reg classes.
1815 (rs6000_reload_register_type): Simplify register classes into GPR,
1816 Vector, and other registers. Altivec and VSX addresses in reload.
1817 (rs6000_secondary_reload_inner): Ditto.
1818 (rs6000_ira_cover_classes): New target hook, that returns the
1819 appropriate cover classes, based on -mvsx being used or not.
1820 (rs6000_secondary_reload_class): Add VSX support.
1821 (get_vec_cmp_insn): Delete, rewrite vector conditionals.
1822 (get_vsel_insn): Ditto.
1823 (rs6000_emit_vector_compare): Rewrite vector conditional support
1824 so that where we can, we use RTL operators, instead of blindly use
1826 (rs6000_emit_vector_select): Ditto.
1827 (rs6000_emit_vector_cond_expr): Ditto.
1828 (rs6000_emit_minmax): Directly generate min/max under altivec, vsx.
1829 (create_TOC_reference): Add -mdebug=addr support.
1830 (emit_frame_save): VSX loads/stores need register indexed addressing.
1832 * config/rs6000/rs6000.md: Include vector.md.
1834 * config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md.
1836 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1837 support for V2DI, V2DF in logical, permute, select operations.
1839 * config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug
1840 switch for vsx/power7.
1841 (-mvsx-scalar-memory): Ditto.
1842 (-mvsx-align-128): Ditto.
1843 (-mallow-movmisalign): Ditto.
1844 (-mallow-df-permute): Ditto.
1845 (-msched-groups): Ditto.
1846 (-malways-hint): Ditto.
1847 (-malign-branch-targets): Ditto.
1849 * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target
1851 (IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx.
1852 (IRA_COVER_CLASSES_VSX): Cover classes if -mvsx.
1853 (rs6000_vector_reg_class): Delete.
1854 (rs6000_vsx_reg_class): Ditto.
1855 (enum rs6000_reg_class_enum): New enum for the constraints that
1856 vary based on target switches.
1857 (rs6000_constraints): New array to hold the register class for all
1858 of the register constraints that vary based on the switches used.
1859 (ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions.
1860 (enum rs6000_builtins): Add unsigned varients for the builtin
1861 declarations returned by target hooks for expanding multiplies,
1862 select, and permute operations. Add VSX builtins.
1863 (enum rs6000_builtin_type_index): Add entries for VSX.
1864 (V2DI_type_node): Ditto.
1865 (V2DF_type_node): Ditto.
1866 (unsigned_V2DI_type_node): Ditto.
1867 (bool_long_type_node): Ditto.
1868 (intDI_type_internal_node): Ditto.
1869 (uintDI_type_internal_node): Ditto.
1870 (double_type_internal_node): Ditto.
1872 * config/rs6000/altivec.md (whole file): Move all expanders to
1873 vector.md from altivec.md. Rename insn matching functions to be
1875 (UNSPEC_VCMP*): Delete, rewrite vector comparisons.
1876 (altivec_vcmp*): Ditto.
1877 (UNSPEC_VPERM_UNS): New, add for unsigned types using vperm.
1878 (VM): New iterator for moves that includes the VSX types.
1879 (altivec_vperm_<mode>): Add VSX types. Add unsigned types.
1880 (altivec_vperm_<mode>_uns): New, for unsigned types.
1881 (altivec_vsel_*): Rewrite vector comparisons and predicate builtins.
1882 (altivec_eq<mode>): Ditto.
1883 (altivec_gt<mode>): Ditto.
1884 (altivec_gtu<mode>): Ditto.
1885 (altivec_eqv4sf): Ditto.
1886 (altivec_gev4sf): Ditto.
1887 (altivec_gtv4sf): Ditto.
1888 (altivec_vcmpbfp_p): Ditto.
1890 2009-07-23 Richard Earnshaw <rearnsha@arm.com>
1892 * arm.md (split for ior/xor with shift and zero-extend): Cast op3 to
1895 2009-07-23 Uros Bizjak <ubizjak@gmail.com>
1898 * config/i386/i386.c (output_387_ffreep): Rewrite to use
1899 ASM_SHORT instead of .word.
1900 * config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
1901 instead of .word in asm template.
1903 2009-07-22 Vladimir Makarov <vmakarov@redhat.com>
1906 * ira-lives.c (bb_has_abnormal_call_pred): New function.
1907 (process_bb_node_lives): Use it.
1909 * ira.c (setup_cover_and_important_classes): Don't setup
1910 ira_important_class_nums. Add cover classes to the end of
1912 (cover_class_order, comp_reg_classes_func, reorder_important_classes):
1914 (find_reg_class_closure): Use reorder_important_classes.
1916 * config/i386/i386.h (IRA_COVER_CLASSES): Remove.
1918 * config/i386/i386.c (i386_ira_cover_classes): New function.
1919 (TARGET_IRA_COVER_CLASSES): Redefine.
1921 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about
1922 importance of order of cover classes in the array.
1924 2009-07-22 Diego Novillo <dnovillo@google.com>
1926 * tree-pass.h (TDF_EH): Define.
1927 * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS
1928 contains TDF_EH, print the EH region number holding GS.
1929 * tree-dump.c (dump_options): Add "eh".
1930 * doc/invoke.texi: Document it.
1932 2009-07-22 Doug Kwan <dougkwan@google.com>
1934 * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.
1936 2009-07-22 Michael Matz <matz@suse.de>
1938 PR tree-optimization/35229
1939 PR tree-optimization/39300
1941 * tree-ssa-pre.c (includes): Include tree-scalar-evolution.h.
1942 (inhibit_phi_insertion): New function.
1943 (insert_into_preds_of_block): Call it for REFERENCEs.
1944 (init_pre): Initialize and finalize scalar evolutions.
1945 * Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h .
1947 2009-07-22 Uros Bizjak <ubizjak@gmail.com>
1949 * config/i386/predicates.md (zero_extended_scalar_load_operand):
1950 Use CONST_VECTOR_NUNITS to determine number of elements.
1952 2009-07-22 Andreas Krebbel <krebbel1@de.ibm.com>
1954 * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
1955 (U, W): Constraints are now deprecated and will be removed if we
1957 * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
1959 ("prefetch"): Add the stcmh instruction for prefetching.
1960 * config/s390/s390.c (s390_symref_operand_p): Function moved. No
1962 (s390_short_displacement): Return always true if compiling for
1963 machines not providing the long displacement facility.
1964 (s390_mem_constraint): Support the new constraint letter Z.
1965 (s390_check_qrst_address): New function.
1967 2009-07-21 DJ Delorie <dj@redhat.com>
1969 * config/mep/mep.c (mep_legitimize_arg): Leave control registers
1972 2009-07-21 Jason Merrill <jason@redhat.com>
1974 * c-common.c (max_tinst_depth): Increase default to 1024.
1976 2009-07-21 Uros Bizjak <ubizjak@gmail.com>
1978 * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
1979 (vec_unpacku_float_lo_v4si): Ditto.
1981 2009-07-21 Uros Bizjak <ubizjak@gmail.com>
1984 * config/i386/sse.md (sse2_cvtudq2ps): New expander.
1985 (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
1986 (builtin_description): Add __builtin_ia32_cvtudq2ps.
1987 (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.
1989 2009-07-21 Jakub Jelinek <jakub@redhat.com>
1991 PR tree-optimization/40813
1992 * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
1995 2009-07-21 Kaz Kojima <kkojima@gcc.gnu.org>
1997 * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
1998 with a NOP_EXPR if needed.
2000 2009-07-21 Paul Brook <paul@codesourcery.com>
2002 * tree-vectorizer.c (increase_alignment): Handle nested arrays.
2003 Terminate debug dump with newline.
2005 2009-07-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2007 * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
2008 Cast "1" to unsigned HOST_WIDE_INT.
2009 (compute_zdepdi_operands): Limit maximum length to 64 bits. Limit
2010 deposit length to the maximum length - lsb. Extend length if
2011 HOST_BITS_PER_WIDE_INT is 32.
2013 2009-07-20 Olatunji Ruwase <tjruwase@google.com>
2015 * cgraph.h (constant_pool_htab): New function.
2016 (constant_descriptor_tree): Move from varasm.c.
2017 * varasm.c (constant_pool_htab): New function.
2018 (constant_descriptor_tree): Move to cgraph.h.
2020 2009-07-20 Olatunji Ruwase <tjruwase@google.com>
2022 * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().
2024 2009-07-20 Shujing Zhao <pearly.zhao@oracle.com>
2026 * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
2029 2009-07-20 Xinliang David Li <davidxl@google.com>
2031 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.
2033 2009-07-20 Adam Nemet <anemet@caviumnetworks.com>
2035 * config/mips/mips.md (move_type): Add arith.
2036 (type): Handle arith.
2037 (zero_extendsidi2): Rename this into ...
2038 (*zero_extendsidi2): ... this. Don't match if ISA_HAS_EXT_INS.
2039 (zero_extendsidi2): New expander.
2040 (*zero_extendsidi2_dext): New pattern.
2042 2009-07-20 Nick Clifton <nickc@redhat.com>
2044 * config.gcc (mips64-*-*): Add definition of tm_defines in order
2045 to set MIPS_ABI_DEFAULT.
2046 * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
2048 2009-07-20 Jakub Jelinek <jakub@redhat.com>
2050 * tree-object-size.c (addr_object_size): Handle unions with
2051 array in it as last field of structs in __bos (, 1) as __bos (, 0).
2053 PR tree-optimization/40792
2054 * tree.c (build_function_type_skip_args): Remove bogus assert.
2056 2009-07-20 Jan Hubicka <jh@suse.cz>
2057 Martin Jambor <mjambor@suse.cz>
2059 * cgraph.h (combined_args_to_skip): New field.
2060 * cgraph.c (cgraph_create_virtual_clone): Properly handle
2061 combined_args_to_skip and args_to_skip.
2062 * tree-inline.c (update_clone_info): New function.
2063 (tree_function_versioning): Call update_clone_info.
2064 * cgraphunit.c: (cgraph_materialize_clone): Dump materialized
2066 (cgraph_materialize_all_clones): More extensive dumping, working
2067 with combined_args_to_skip rather than args_to_skip.
2069 2009-07-20 Ira Rosen <irar@il.ibm.com>
2071 * tree-vectorizer.h (vectorizable_condition): Add parameters.
2072 * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
2073 (get_initial_def_for_reduction): Likewise.
2074 (vectorizable_reduction): Skip the check of first operand in case
2075 of COND_EXPR. Add check that it is outer loop vectorization if
2076 nested cycle was detected. Call vectorizable_condition() for
2077 COND_EXPR. If reduction epilogue cannot be created do not fail for
2078 nested cycles (if it is not double reduction). Assert that there
2079 is only one type in the loop in case of COND_EXPR. Call
2080 vectorizable_condition() to vectorize COND_EXPR.
2081 * tree-vect-stmts.c (vectorizable_condition): Update comment.
2082 Add parameters. Allow nested cycles if called from
2083 vectorizable_reduction(). Use reduction vector variable if provided.
2084 (vect_analyze_stmt): Call vectorizable_reduction() before
2085 vectorizable_condition().
2086 (vect_transform_stmt): Update call to vectorizable_condition().
2088 2009-07-20 Christian Bruel <christian.bruel@st.com>
2090 * config/sh/sh.opt (-mfmovd): Resurrect and document.
2091 * doc/invoke.texi (-mfmovd): Likewise.
2092 * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
2094 2009-07-20 Jan Hubicka <jh@suse.cz>
2096 * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
2097 when handling SSA name.
2099 2009-07-19 Jan Hubicka <jh@suse.cz>
2101 PR tree-optimization/40676
2102 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
2103 virtual PHIs in empty BBs.
2105 2009-07-18 Adam Nemet <anemet@caviumnetworks.com>
2107 * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
2108 re-expanded the compound use gen_lowpart instead to convert to the
2111 2009-07-18 Adam Nemet <anemet@caviumnetworks.com>
2113 * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
2114 OUTER_CONST arguments.
2115 <LSHIFTRT>: Use them to allow widening if the bits shifted in from
2116 the new wider mode will be masked off.
2117 (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
2119 2009-07-18 Adam Nemet <anemet@caviumnetworks.com>
2121 * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
2122 high-order bits are zero.
2124 2009-07-18 Adam Nemet <anemet@caviumnetworks.com>
2126 * combine.c (simplify_shift_const_1): Split code to determine
2128 (try_widen_shift_mode): ... here. Allow widening for ASHIFTRT if the
2129 new bits shifted in are identical to the old sign bit.
2131 2009-07-18 Richard Guenther <rguenther@suse.de>
2134 * gimplify.c (gimplify_call_expr): Reject code using results from
2135 functions returning void.
2137 2009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com>
2139 * doc/md.texi: Document the new PowerPC "es" constraint.
2140 Document that "m" can include automodified addresses on this target,
2141 and explain how %U must be used. Extend the "Q" and "Z" documentation
2142 to suggest "es" as well as "m".
2143 * config/rs6000/constraints.md (es): New memory constraint.
2144 (Q, Z): Update strings to match new documentation.
2146 2009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com>
2148 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
2149 offset from virtual_stack_vars_rtx and arg_pointer_rtx.
2150 * config/rs6000/predicates.md (volatile_mem_operand): Use
2151 offsettable_nonstrict_memref_p.
2152 * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
2153 (*floatunssidf2_internal): Likewise.
2154 (*fix_truncdfsi2_internal): Likewise.
2155 (*fix_trunctfsi2_internal): Likewise.
2157 2009-07-17 Anatoly Sokolov <aesok@post.ru>
2159 * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
2161 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
2163 2009-07-17 Richard Guenther <rguenther@suse.de>
2166 * tree-pass.h (pass_diagnose_omp_blocks): Declare.
2167 (pass_warn_unused_result): Likewise.
2168 (TODO_set_props): Remove.
2169 * omp-low.c (diagnose_omp_structured_block_errors): Change to
2171 (pass_diagnose_omp_blocks): Define.
2172 * c-decl.c (pop_file_scope): Do not finalize the CU here.
2173 (c_gimple_diagnostics_recursively): Remove.
2174 (finish_function): Do not call it.
2175 (c_write_global_declarations): Continue after errors.
2176 Finalize the CU here.
2177 * c-gimplify.c (c_genericize): Do not gimplify here.
2178 * c-common.c (c_warn_unused_result): Move ...
2179 * tree-cfg.c (do_warn_unused_result): ... here.
2180 (run_warn_unused_result): New function.
2181 (gate_warn_unused_result): New function.
2182 (pass_warn_unused_result): New pass.
2183 * c-common.h (c_warn_unused_result): Remove.
2184 * flags.h (flag_warn_unused_result): Declare.
2185 * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
2186 * opts.c (flag_warn_unused_result): Initialize to false.
2187 * toplev.c (compile_file): Add comment.
2188 * omp-low.c (create_omp_child_function): Do not register
2189 the function with the frontend.
2190 (diagnose_omp_structured_block_errors): Prepare to be
2191 called as optimization pass.
2192 (gate_diagnose_omp_blocks): New function.
2193 (pass_diagnose_omp_blocks): New pass.
2194 * cgraph.h (cgraph_optimize): Remove.
2195 (cgraph_analyze_function): Likewise.
2196 * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
2197 * cgraphunit.c (cgraph_lower_function): Lower nested functions
2198 before their parents here.
2199 (cgraph_finalize_function): Not here.
2200 (cgraph_analyze_function): Gimplify functions here.
2201 (cgraph_finalize_compilation_unit): Continue after errors.
2202 Optimize the callgraph from here.
2203 (cgraph_optimize): Make static.
2204 * langhooks.c (write_global_declarations): Finalize the CU.
2205 * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
2206 (gimplify_function_tree): Assert we gimplify only once.
2207 Set PROP_gimple_any property.
2208 * tree-nested.c (gimplify_all_functions): New function.
2209 (lower_nested_functions): Gimplify all nested functions.
2210 * gimple.h (diagnose_omp_structured_block_errors): Remove.
2211 * passes.c (init_optimization_passes): Add pass_warn_unused_result
2212 and pass_diagnose_omp_blocks after gimplification. Do not
2213 set TODO_set_props on all_lowering_passes.
2214 (execute_one_pass): Do not handle TODO_set_props.
2215 * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
2216 (gimplify.o): Add tree-pass.h dependency.
2217 * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
2218 (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
2219 (unsave_r): Likewise.
2220 * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
2223 2009-07-17 Sandra Loosemore <sandra@codesourcery.com>
2225 * doc/service.texi (Service): Restore previously removed link,
2226 which isn't broken after all.
2228 2009-07-17 Richard Guenther <rguenther@suse.de>
2230 PR tree-optimization/40321
2231 * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
2232 PHI nodes to the maximal set.
2233 (make_values_for_phi): Add PHI arguments to the maximal set.
2234 (execute_pre): Dump PHI_GEN and the maximal set.
2236 2009-07-17 Jakub Jelinek <jakub@redhat.com>
2239 * gimplify.c (gimplify_conversion): Don't change non-conversions into
2242 2009-07-16 Sandra Loosemore <sandra@codesourcery.com>
2244 * doc/extend.texi (Nested Functions): Replace broken link with
2246 * doc/service.texi (Service): Remove broken link.
2248 2009-07-16 H.J. Lu <hongjiu.lu@intel.com>
2251 * builtins.c (expand_builtin_memcmp): Use loc instead of
2252 EXPR_LOCATION (exp).
2253 (expand_builtin_strncmp): Likewise.
2255 2009-07-17 Aldy Hernandez <aldyh@redhat.com>
2256 Manuel López-Ibáñez <manu@gcc.gnu.org>
2259 * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
2260 builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
2261 tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
2262 c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
2263 calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
2264 tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
2265 tree-inline.c, c-common.c, c-common.h, gimple.c,
2266 tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
2267 convert.c: Add location argument to fold_{unary,binary,ternary},
2268 fold_build[123], build_call_expr, build_size_arg,
2269 build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
2270 fold_build1_initializer, fold_build2_initializer,
2271 fold_build3_initializer, fold_build_call_array,
2272 fold_build_call_array_initializer, fold_single_bit_test,
2273 omit_one_operand, omit_two_operands, invert_truthvalue,
2274 fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
2275 combine_comparisons, fold_builtin_*, fold_call_expr,
2276 build_range_check, maybe_fold_offset_to_address, round_up,
2279 2009-07-16 Jason Merrill <jason@redhat.com>
2282 * c-common.c (c_common_reswords): Add __is_standard_layout
2284 * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
2285 * doc/implement-cxx.texi: New.
2286 * doc/gcc.texi: Include it.
2288 2009-07-16 DJ Delorie <dj@redhat.com>
2290 * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
2291 compares that may be indirectly affected by previous instructions.
2293 2009-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2295 * builtins.c (do_mpc_arg2): New.
2296 (fold_builtin_2): Fold builtin cpow.
2297 * real.h (HAVE_mpc_pow): New.
2299 2009-07-16 Bingfeng Mei <bmei@broadcom.com>
2301 * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
2302 comparison to skip unprofitable schedule
2304 2009-07-16 Simon Baldwin <simonb@google.com>
2306 * gcc.c (option_map): New flag -no-canonical-prefixes.
2307 * (display_help): Print help text for new flag.
2308 * (process_command): Move options translation and language specifics
2309 and handle new flag early. Use it to set a function pointer to a
2310 prefix builder. Replace make_relative_prefix calls with calls to
2311 the function pointed to. Ignore new flag in regular options handling.
2312 * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
2314 2009-07-15 DJ Delorie <dj@redhat.com>
2316 * config/mep/mep.md (sibcall_internal): Change register to avoid
2318 (sibcall_value_internal): Likewise.
2320 2009-07-15 Eric Botcazou <ebotcazou@adacore.com>
2322 PR rtl-optimization/40710
2323 * resource.c (mark_target_live_regs): Reset DF problem to LR.
2325 2009-07-15 Adam Nemet <anemet@caviumnetworks.com>
2327 * config/mips/mips.md (*extenddi_truncate<mode>,
2328 *extendsi_truncate<mode>): Change type attribute to move_type
2329 with shift_shift. Split out code handling exts from here ...
2330 (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
2332 (*extendhi_truncateqi): Change type attribute to move_type with
2333 shift_shift. Split out code handling exts from here ...
2334 (*extendhi_truncateqi_exts): ... to this new pattern.
2336 2009-07-15 Uros Bizjak <ubizjak@gmail.com>
2338 * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
2339 instead of "and" with inverted sign bit mask value. Use
2340 "nonimmediate_operand" for operand 1 and operand 2 predicate.
2341 Allocate registers only for operand 4 and operand 5.
2343 2009-07-15 Jakub Jelinek <jakub@redhat.com>
2346 * fold-const.c (fold_cond_expr_with_comparison): When folding
2347 < and <= to MIN, make sure the MIN uses the same type as the
2348 comparison's operands.
2350 2009-07-15 Richard Earnshaw <rearnsha@arm.com>
2352 * arm.md (ior_xor): New code iterator.
2353 (split for ior/xor with shift and zero-extend): New split pattern.
2354 * arm/predicates.md (subreg_lowpart_operator): New special predicate.
2356 2009-07-15 Richard Guenther <rguenther@suse.de>
2358 * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
2361 2009-07-15 Richard Guenther <rguenther@suse.de>
2364 * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
2366 2009-07-15 Maxim Kuvyrkov <maxim@codesourcery.com>
2368 * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
2369 handle 2.6.30 kernel.
2371 2009-07-15 DJ Delorie <dj@redhat.com>
2373 * config/mep/mep.md (sibcall_internal): Change register to allow
2374 for 24-bit addresses.
2375 (sibcall_value_internal): Likewise.
2377 2009-07-14 Ghassan Shobaki <ghassan.shobaki@amd.com>
2379 * doc/invoke.texi: Added descriptions of the scheduling heuristics
2380 that are enabled/disabled by the flags introduced by a previous patch.
2382 2009-07-14 DJ Delorie <dj@redhat.com>
2384 * config/mep/mep.md (sibcall_internal): Include non-toggling
2386 (sibcall_value_internal): Likewise.
2388 2009-07-14 Taras Glek <tglek@mozilla.com>
2389 Rafael Espindola <espindola@google.com>
2391 * doc/sourcebuild.texi: Document install-plugin target.
2392 * configure.ac: Added install-plugin target to language makefiles.
2393 * configure: Regenerate.
2394 * Makefile.in: (install-plugin): Install more headers,
2395 depend on lang.install-plugin.
2397 2009-07-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
2399 * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
2402 2009-07-14 DJ Delorie <dj@redhat.com>
2404 * config/mep/mep.c (mep_vliw_jmp_match): New function.
2405 * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
2406 * config/mep/mep.md (sibcall_internal): Change test from
2407 mep_vliw_mode_match to mep_vliw_jmp_match.
2408 (sibcall_value_internal): Likewise.
2410 2009-07-14 Uros Bizjak <ubizjak@gmail.com>
2412 * config/i386/sse.md (copysign<mode>3): New expander.
2413 * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
2414 * config/i386/i386.c (ix86_build_signbit_mask): Make public.
2415 Use ix86_build_const_vector.
2416 (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
2417 IX86_BUILTIN_CPYSGNPD.
2418 (builtin_description): Add __builtin_ia32_copysignps and
2419 __builtin_ia32_copysignpd.
2420 (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
2421 and BUILT_IN_COPYSIGNF.
2423 2009-07-13 Jason Merrill <jason@redhat.com>
2425 * builtins.c (can_trust_pointer_alignment): New fn.
2426 (get_pointer_alignment): Factor it out from here.
2427 * tree.h: Declare it.
2429 2009-07-14 David Edelsohn <edelsohn@gnu.org>
2431 * config/rs6000/predicates.md (offsettable_mem_operand): Test
2434 2009-07-14 Dodji Seketeli <dodji@redhat.com>
2438 * dwarf2.out.c (gen_type_die_with_usage): Added comment.
2440 2009-07-14 Richard Guenther <rguenther@suse.de>
2441 Andrey Belevantsev <abel@ispras.ru>
2444 * cfgexpand.c (partition_stack_vars): Do not bother to update
2445 alias information when not optimizing.
2447 2009-07-14 Richard Guenther <rguenther@suse.de>
2448 Andrey Belevantsev <abel@ispras.ru>
2450 * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
2451 (pt_solution_set): Likewise.
2452 * tree-ssa-alias.c (refs_may_alias_p_1): Export.
2453 * tree-ssa-structalias.c (pt_solution_set): New function.
2454 * final.c (rest_of_clean_state): Free SSA data structures.
2455 * print-rtl.c (print_decl_name): Remove.
2456 (print_mem_expr): Implement in terms of print_generic_expr.
2457 * alias.c (ao_ref_from_mem): New function.
2458 (rtx_refs_may_alias_p): Likewise.
2459 (true_dependence): Query alias-export info.
2460 (canon_true_dependence): Likewise.
2461 (write_dependence_p): Likewise.
2462 * tree-dfa.c (get_ref_base_and_extent): For void types leave
2464 * emit-rtl.c (component_ref_for_mem_expr): Remove.
2465 (mem_expr_equal_p): Use operand_equal_p.
2466 (set_mem_attributes_minus_bitpos): Do not use
2467 component_ref_for_mem_expr.
2468 * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
2469 (update_alias_info_with_stack_vars): Likewise.
2470 (partition_stack_vars): Call update_alias_info_with_stack_vars.
2471 * tree-ssa.c (delete_tree_ssa): Do not release SSA names
2472 explicitly nor clear stmt operands.
2473 Free the decl-to-pointer map.
2474 * tree-optimize.c (execute_free_datastructures): Do not free
2475 SSA data structures here.
2476 * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
2477 * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
2478 (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
2480 (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
2482 2009-07-13 DJ Delorie <dj@redhat.com>
2484 * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
2485 unrolling at the right iteration count.
2487 * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
2490 2009-07-13 Ghassan Shobaki <ghassan.shobaki@amd.com>
2492 * haifa-sched.c (rank_for_schedule): Introduced flags to
2493 enable/disable individual scheduling heuristics.
2494 * common.opt: Introduced flags to enable/disable individual
2495 heuristics in the scheduler.
2496 * doc/invoke.texi: Introduced flags to enable/disable individual
2497 heuristics in the scheduler.
2499 2009-07-13 Kai Tietz <kai.tietz@onevision.com>
2501 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
2502 config/i386/mingw-tls.c.
2503 * config/i386/mingw-tls.c: Removed.
2505 2009-07-13 Ira Rosen <irar@il.ibm.com>
2507 * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the
2508 checks access only relevant statements.
2509 (vectorizable_reduction): Likewise.
2511 2009-07-12 Kai Tietz <kai.tietz@onevision.com>
2513 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
2514 just for 32-bit case.
2516 2009-07-12 Jan Hubicka <jh@suse.cz>
2518 PR tree-optimization/40585
2519 * except.c (expand_resx_expr): When there already is resume
2520 instruction, produce linked list.
2521 (build_post_landing_pads): Assert that resume is empty.
2522 (connect_post_landing_pads): Handle resume lists.
2523 (dump_eh_tree): Dump resume list.
2525 2009-07-12 Ira Rosen <irar@il.ibm.com>
2527 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
2528 with additional argument.
2529 * tree-vectorizer.h (enum vect_def_type): Add
2530 vect_double_reduction_def.
2531 (vect_is_simple_reduction): Add argument.
2532 * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
2534 (vect_analyze_scalar_cycles_1): Detect double reduction. Call
2535 vect_is_simple_reduction with additional argument.
2536 (vect_analyze_loop_operations): Handle exit phi nodes in case of
2538 (reduction_code_for_scalar_code): Handle additional codes by
2539 returning ERROR_MARK for them. Fix comment and indentation.
2540 (vect_is_simple_reduction): Fix comment, add argument to specify
2541 double reduction. Detect double reduction.
2542 (get_initial_def_for_induction): Fix indentation.
2543 (get_initial_def_for_reduction): Fix comment and indentation.
2544 Handle double reduction. Create initial definitions that do not
2545 require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
2546 (vect_create_epilog_for_reduction): Fix comment, add argument to
2547 handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
2548 epilogue result extraction. Create double reduction phi node and
2549 replace relevant uses.
2550 (vectorizable_reduction): Call vect_is_simple_reduction with
2551 additional argument. Fix indentation. Update epilogue code treatment
2552 according to the changes in reduction_code_for_scalar_code. Check
2553 for double reduction. Call vect_create_epilog_for_reduction with
2554 additional argument.
2555 * tree-vect-stmts.c (process_use): Handle double reduction, update
2557 (vect_mark_stmts_to_be_vectorized): Handle double reduction.
2558 (vect_get_vec_def_for_operand): Likewise.
2560 2009-07-12 Danny Smith <dansmister@gmail.com>
2562 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
2563 dllexport if !TREE_PUBLIC.
2564 (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
2566 2009-07-11 Anatoly Sokolov <aesok@post.ru>
2568 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
2569 (avr_extra_arch_macro) Remove declatation.
2570 * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
2571 (avr_extra_arch_macro) Declare as static.
2572 * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
2574 2009-07-11 Jan Hubicka <jh@suse.cz>
2577 * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
2579 2009-07-11 Jakub Jelinek <jakub@redhat.com>
2582 * dwarf2out.c (dw_fde_struct): Add in_std_section and
2583 cold_in_std_section bits.
2584 (dwarf2out_begin_prologue): Initialize them.
2585 (dwarf2out_finish): Don't emit FDE range into .debug_ranges
2586 if already covered by text_section or cold_text_section range.
2588 PR rtl-optimization/40667
2589 * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
2590 * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
2591 * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
2592 * config/i386/i386.c (ix86_minimum_alignment): New function.
2593 * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
2594 * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
2595 * emit-rtl.c (gen_reg_rtx): Likewise.
2596 * function.c (assign_parms): Likewise. If nominal_type needs
2597 bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
2598 rather than passed_type's alignment.
2601 * function.c (assign_parm_setup_stack): Adjust
2602 MEM_OFFSET (data->stack_parm) if promoted_mode is different
2603 from nominal_mode on big endian.
2605 2009-07-11 Paolo Bonzini <bonzini@gnu.org>
2607 * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
2609 2009-07-10 DJ Delorie <dj@redhat.com>
2611 * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
2613 2009-07-10 Mark Mitchell <mark@codesourcery.com>
2615 * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
2617 (thumb2_cbnz): Likewise.
2619 2009-07-10 David Daney <ddaney@caviumnetworks.com>
2622 * config.gcc (supported_defaults): Add synci.
2623 (with_synci): Add validation.
2624 (all_defaults): Add synci.
2625 * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
2628 * config/mips/mips.opt (msynci): New option.
2629 * config/mips/mips.c (mips_override_options): Warn on use of
2630 -msynci for targets that do now support it.
2631 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
2633 * gcc/doc/invoke.texi (-msynci): Document the new option.
2634 * doc/install.texi (--with-synci): Document the new option.
2636 2009-07-10 Richard Guenther <rguenther@suse.de>
2638 PR tree-optimization/40496
2639 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
2640 the PHI result with a compatible type.
2642 2009-07-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
2646 * c.opt (Wunused-result): New.
2647 * doc/invoke.texi: Document it.
2648 * c-common.c (c_warn_unused_result): Use it.
2650 2009-07-09 DJ Delorie <dj@redhat.com>
2652 * targhooks.c (default_target_can_inline_p): Rename from
2653 default_target_option_can_inline_p.
2654 * targhooks.h (default_target_can_inline_p): Likewise.
2655 * target-def.h (TARGET_CAN_INLINE_P): Rename from
2656 TARGET_OPTION_CAN_INLINE_P.
2657 * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
2658 * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
2659 (mep_target_can_inline_p): Rename from
2660 mep_target_option_can_inline_p.
2663 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
2664 registers used to pass vectors.
2666 * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
2668 2009-07-09 Tom Tromey <tromey@redhat.com>
2670 * unwind-dw2-fde-darwin.c: Include dwarf2.h.
2671 * config/mmix/mmix.c: Include dwarf2.h.
2672 * config/rs6000/darwin-fallback.c: Include dwarf2.h.
2673 * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
2674 * config/sh/sh.c: Include dwarf2.h.
2675 * config/i386/i386.c: Include dwarf2.h.
2676 * Makefile.in (DWARF2_H): Remove 'elf'.
2677 * except.c: Include dwarf2.h.
2678 * unwind-dw2.c: Include dwarf2.h.
2679 * dwarf2out.c: Include dwarf2.h.
2680 * unwind-dw2-fde-glibc.c: Include dwarf2.h.
2681 * unwind-dw2-fde.c: Include dwarf2.h.
2682 * dwarf2asm.c: Include dwarf2.h.
2684 2009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
2686 * haifa-sched.c (insn_finishes_cycle_p): New static function.
2687 (max_issue): Use it.
2688 * sched-int.h (struct sched_info: insn_finishes_block_p): New
2690 * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
2691 (region_sched_info): Update.
2692 * sched-ebb.c (ebb_sched_info): Update.
2693 * modulo-sched.c (sms_sched_info): Update.
2694 * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
2696 2009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com>
2698 * varasm.c (build_constant_desc): Don't share RTL in pool entries.
2700 2009-07-09 Basile Starynkevitch <basile@starynkevitch.net>
2702 * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen.
2704 2009-07-09 Jakub Jelinek <jakub@redhat.com>
2707 * fold-const.c (fold_cond_expr_with_comparison): Don't replace
2708 arg1 with arg01 if arg1 is already INTEGER_CST.
2710 2009-07-08 Adam Nemet <anemet@caviumnetworks.com>
2712 * simplify-rtx.c (simplify_binary_operation_1) <AND>:
2713 Transform (and (truncate)) into (truncate (and)).
2715 2009-07-08 Adam Nemet <anemet@caviumnetworks.com>
2717 * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
2718 creating LHS paradoxical subregs. Fix surrounding returns to
2719 use NULL_RTX rather than 0.
2721 2009-07-08 DJ Delorie <dj@redhat.com>
2723 * config/mep/mep.c: (mep_option_can_inline_p): New.
2724 (TARGET_OPTION_CAN_INLINE_P): Define.
2726 2009-07-08 Mark Wielaard <mjw@redhat.com>
2729 * dwarf2out.c (add_data_member_location_attribute): When we have
2730 only a constant offset don't emit a new location description using
2731 DW_OP_plus_uconst, but just add the constant with add_AT_int, when
2734 2009-07-08 Richard Henderson <rth@redhat.com>
2737 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
2738 (enum reg_class): Add CLOBBERED_REGS.
2739 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
2740 * config/i386/i386.c (ix86_conditional_register_usage): Moved
2741 from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
2742 (ix86_function_ok_for_sibcall): Tidy. Disallow MS->SYSV sibcalls.
2743 (ix86_expand_call): Use sibcall_insn_operand when needed. Don't
2744 force 64-bit sibcalls into R11.
2745 * config/i386/constraints.md (U): New constraint.
2746 * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
2747 (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
2748 (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
2750 2009-07-08 Shujing Zhao <pearly.zhao@oracle.com>
2752 * basic-block.h (dump_regset, debug_regset): Remove duplicate
2754 * c-objc-common.h (c_initialize_diagnostics): Ditto.
2755 * ebitmap.h (dump_ebitmap): Ditto.
2756 * optabs.h (optab_libfunc): Ditto.
2757 * tree.h (tree_expr_nonzero_warnv_p): Ditto.
2758 * tree-flow.h (vect_can_force_dr_alignment_p,
2759 get_vectype_for_scalar_type): Ditto.
2760 (vectorize_loops): Move prototype to ...
2761 * tree-vectorizer.h: ... here. Also, adjust comment.
2762 (vect_set_verbosity_level): Remove duplicate prototype.
2763 * tree-ssa-loop.c: Include tree-vectorizer.h.
2764 * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
2766 2009-07-08 Nick Clifton <nickc@redhat.com>
2768 * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
2771 2009-07-08 DJ Delorie <dj@redhat.com>
2773 * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
2774 cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
2775 cpmovtocc_P0S_P1): Mark volatile. Note which registers are
2777 * config/mep/intrinsics.md: Regenerated.
2778 * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
2779 registers when asm() or calls are detected.
2781 2009-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
2784 * gimplify.c (gimplify_expr): Propagate no_warning flag when
2786 * gimple (gimple_build_call_from_tree): Likewise.
2787 * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
2788 no_warning flag before warning.
2790 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
2792 * tree.c (set_expr_locus): Remove.
2793 * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
2794 * c-typeck.c (c_finish_stmt_expr): Replace EXPR_LOCUS by
2796 * gimplify.c (internal_get_tmp_var): Likewise.
2797 (gimplify_call_expr): Likewise.
2798 (gimplify_one_sizepos): Likewise.
2800 2009-07-07 Eric Botcazou <ebotcazou@adacore.com>
2803 * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
2804 to variables for debugging purposes.
2806 2009-06-23 Mark Loeser <mark@halcy0n.com>
2809 * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
2811 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
2813 * pretty-print.c (pp_base_format): Remove %J.
2814 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
2815 gcc_cxxdiag_char_table): Likewise.
2816 (init_dynamic_diag_info): Likewise.
2818 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
2820 * pretty-print.c (pp_base_format): Remove %H.
2821 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
2822 gcc_cxxdiag_char_table): Likewise.
2823 (init_dynamic_diag_info): Likewise.
2824 * config/mep/mep.c (mep_select_section): Likewise.
2826 2009-07-07 Duncan Sands <baldrick@free.fr>
2828 * final.c (pass_clean_state): Give the pass a name.
2829 * passes.c (pass_rest_of_compilation): Likewise.
2830 * tree-optimize.c (pass_all_optimizations): Likewise.
2832 2009-07-07 H.J. Lu <hongjiu.lu@intel.com>
2834 * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
2835 an extra 'decl' for error_at.
2837 2009-07-07 Jakub Jelinek <jakub@redhat.com>
2840 * tree-tailcall.c (adjust_return_value_with_ops,
2841 create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
2842 if it has complex or vector type.
2844 2009-07-07 Olivier Hainque <hainque@adacore.com>
2846 * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
2849 2009-07-07 Basile Starynkevitch <basile@starynkevitch.net>
2851 * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
2853 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
2855 * cgraphunit.c: Replace %J by an explicit location. Update all calls.
2856 * c-decl.c: Likewise.
2857 * function.c: Likewise.
2858 * varasm.c: Likewise.
2859 * tree-ssa.c: Likewise.
2860 * c-common.c: Likewise.
2861 * tree-cfg.c: Likewise.
2862 * config/spu/spu.c: Likewise.
2863 * config/ia64/ia64.c: Likewise.
2864 * config/v850/v850.c: Likewise.
2866 2009-07-06 DJ Delorie <dj@redhat.com>
2868 * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
2869 * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
2870 unspecified accesses to control registers.
2871 * config/mep/intrinsics.md: Regenerate.
2872 * config/mep/intrinsics.h: Regenerate.
2873 * config/mep/mep-intrin.h: Regenerate.
2875 2009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org>
2877 * c-lex.c: Replace %H by an explicit location. Update all calls.
2878 * c-common.c: Likewise.
2879 * c-decl.c: Likewise.
2880 * c-typeck.c: Likewise.
2881 * fold-const.c: Likewise.
2882 * gimplify.c: Likewise.
2884 * tree-cfg.c: Likewise.
2885 * tree-ssa-loop-niter.c: Likewise.
2886 * tree-vrp.c: Likewise.
2887 * value-prof.c: Likewise.
2889 2009-07-06 Diego Novillo <dnovillo@google.com>
2891 * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
2892 if it has one. Handle cases where VAR does not have an
2893 annotation or cfun is NULL.
2895 2009-07-06 Diego Novillo <dnovillo@google.com>
2897 * tree.c: Include debug.h.
2898 (initialize_tree_contains_struct): New.
2899 (init_ttree): Call it.
2900 (tree_node_structure_for_code): Factor out of ...
2901 (tree_node_structure): ... here.
2902 * treestruct.def (TS_PHI_NODE): Remove.
2903 (TS_GIMPLE_STATEMENT): Remove.
2905 2009-07-06 Diego Novillo <dnovillo@google.com>
2907 * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
2908 (debug_tree_chain): Handle cycles.
2910 2009-07-06 Nick Clifton <nickc@redhat.com>
2911 DJ Delorie <dj@redhat.com>
2913 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
2914 __FMOVD_ENABLED__ is defined.
2916 (TARGET_FMOVD): Provide a default definition.
2917 (MASK_FMOVD): Likewise.
2918 (TARGET_CPU_CPP_BUILTINS): Define
2919 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
2920 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
2921 two fmov instructions depending upon whether TARGET_FMOVD is enabled.
2922 (split for DF load from memory into register): Also handle
2923 MEMs which consist of REG+DISP addressing.
2924 (split for DF store from register to memory): Likewise.
2925 (movsf_ie): Always use single fp_mode.
2926 * config/sh/sh.c (sh_override_options): Do not automatically
2927 enable TARGET_MOVD for the SH2A when supporting doubles - leave
2928 that to the -mfmovd command line switch.
2929 (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
2930 (fldi_ok): Always allow.
2931 * config/sh/sh.opt (mfmovd): Remove this switch.
2932 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
2934 2009-07-06 J"orn Rennecke <joern.rennecke@arc.com>
2935 Kaz Kojima <kkojima@gcc.gnu.org>
2937 PR rtl-optimization/30807
2938 * postreload.c (reload_combine): For every new use of REG_SUM,
2939 record the use of BASE.
2941 2009-07-06 Jan Hubicka <jh@suse.cz>
2943 * params.def: Revert my accidental commit at 2009-06-30.
2945 2009-07-04 Ian Lance Taylor <iant@google.com>
2948 * config/i386/msformat-c.c (mingw_format_attributes): Declare as
2950 (mingw_format_attribute_overrides): Likewise.
2952 2009-07-04 Jakub Jelinek <jakub@redhat.com>
2955 * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
2956 don't check cfa.reg. Instead of cfa.indirect use
2957 fde && fde->drap_reg != INVALID_REGNUM test.
2959 2009-07-04 Eric Botcazou <ebotcazou@adacore.com>
2961 * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
2963 2009-07-03 Vladimir Makarov <vmakarov@redhat.com>
2966 * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
2968 2009-07-03 Richard Guenther <rguenther@suse.de>
2970 PR tree-optimization/40640
2971 * tree-switch-conversion.c (build_arrays): Perform arithmetic
2974 2009-07-03 Jan Hubicka <jh@suse.cz>
2976 * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
2977 for size, reduce amount of inlining.
2979 2009-07-03 Richard Guenther <rguenther@suse.de>
2982 * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
2983 if t +- x is known to not overflow and the conversion widens the
2985 * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
2987 2009-07-03 Jan Hubicka <jh@suse.cz>
2989 * ipa-pure-const.c (analyze): Update loop optimizer init.
2990 * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
2991 try_remove_empty_loop, remove_empty_loops): Remove.
2992 * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
2993 * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
2994 to mark regular loops as neccesary.
2995 (degenerate_phi_p): New function.
2996 (propagate_necessity, remove_dead_phis): Use it.
2997 (forward_edge_to_pdom): Likewise.
2998 (eliminate_unnecessary_stmts): Take care to remove uses of results of
2999 virtual PHI nodes that became unreachable.
3000 (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
3001 * tree-flow.h (remove_empty_loops): Remove.
3002 * passes.c (init_optimization_passes): Remove.
3004 2009-07-03 Uros Bizjak <ubizjak@gmail.com>
3006 * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
3007 can_create_pseudo_p.
3008 (*fix_trunc<mode>_i387_1): Ditto.
3009 (*floathi<mode>2_1): Ditto.
3010 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
3011 (*fistdi2_1): Ditto.
3012 (*fist<mode>2_1): Ditto.
3013 (frndintxf2_floor): Ditto.
3014 (*fist<mode>2_floor_1): Ditto.
3015 (frndintxf2_ceil): Ditto.
3016 (*fist<mode>2_ceil_1): Ditto.
3017 (frndintxf2_trunc): Ditto.
3018 (frndintxf2_mask_pm): Ditto.
3019 (fxam<mode>2_i387_with_temp): Ditto.
3020 * config/i386/sse.md (mulv16qi3): Ditto.
3021 (*sse2_mulv4si3): Ditto.
3023 (sse4_2_pcmpestr): Ditto.
3024 (sse4_2_pcmpistr): Ditto.
3026 2009-07-03 Jan Hubicka <jh@suse.cz>
3028 * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
3029 (mark_stmt_necessary): Set it.
3030 (mark_operand_necessary): Set it.
3031 (mark_control_dependent_edges_necessary): Set it.
3032 (mark_virtual_phi_result_for_renaming): New function.
3033 (get_live_post_dom): New function.
3034 (forward_edge_to_pdom): New function.
3035 (remove_dead_stmt): Fix handling of control dependences.
3036 (tree_dce_init): Init new bitmap.
3037 (tree_dce_done): Free it.
3039 2009-07-02 Richard Guenther <rguenther@suse.de>
3042 * tree-ssa-structalias.c (new_var_info): Initialize
3045 2009-07-02 Jan Hubicka <jh@suse.cz>
3047 * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
3050 2009-07-02 Paolo Bonzini <bonzini@gnu.org>
3052 * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
3053 instead of recomputing it. Adjust calls.
3054 (emit_store_flag): Adjust recursive calls.
3056 2009-07-02 Richard Guenther <rguenther@suse.de>
3058 * tree-ssa-live.c (remove_unused_locals): Do not remove
3060 * tree-ssa-structalias.c (handle_lhs_call): Delay setting
3061 of DECL_EXTERNAL for HEAP variables.
3062 (compute_points_to_sets): Set DECL_EXTERNAL for escaped
3063 HEAP variables. Do not adjust RESTRICT vars.
3064 (find_what_var_points_to): Nobody cares if something
3067 2009-07-02 Ben Elliston <bje@au.ibm.com>
3069 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
3070 pc_low and pc_high declarations to the top of the function.
3072 2009-07-01 DJ Delorie <dj@redhat.com>
3074 * config/mep/mep.c (mep_handle_option): Leave IVC2 control
3076 (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
3077 * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
3078 unspecified accesses to control registers.
3079 * config/mep/intrinsics.md: Regenerate.
3080 * config/mep/intrinsics.h: Regenerate.
3081 * config/mep/mep-intrin.h: Regenerate.
3083 2009-07-01 Anthony Green <green@moxielogic.com>
3085 * config/moxie/moxie.c (moxie_expand_prologue): Use dec
3086 instruction when possible.
3087 (moxie_expand_prologue): Ditto. Also, save an instruction and
3088 some complexity by popping off of $r12 instead of $sp.
3089 * config/moxie/moxie.md (movsi_pop): Don't assume $sp. Take two
3092 2009-07-01 Richard Henderson <rth@redhat.com>
3095 * function.c (reposition_prologue_and_epilogue_notes): If epilogue
3096 contained no insns, reposition note before last insn.
3098 2009-07-01 Richard Henderson <rth@redhat.com>
3101 * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
3102 DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
3104 2009-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
3107 * config/rs6000/rs6000.c (print_operand): Undo change that breaks
3108 darwin9 for printing reg addresses with %y.
3110 2009-07-01 Adam Nemet <anemet@caviumnetworks.com>
3112 * combine.c (force_to_mode): Handle TRUNCATE. Factor out
3113 truncation from operands in binary operations.
3115 2009-07-01 Adam Nemet <anemet@caviumnetworks.com>
3118 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
3119 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
3120 subreg of op0 to the original op0.
3122 * expmed.c (store_bit_field_1): Use a temporary as the destination
3123 instead of a paradoxical subreg when we need to truncate the result.
3125 2009-07-01 DJ Delorie <dj@redhat.com>
3127 * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
3128 names to VLIW variants.
3129 (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
3130 * config/mep/intrinsics.md: Regenerate.
3131 * config/mep/intrinsics.h: Regenerate.
3132 * config/mep/mep-intrin.h: Regenerate.
3134 2009-07-01 Jakub Jelinek <jakub@redhat.com>
3137 * jump.c (returnjump_p): Revert last patch.
3138 * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
3140 2009-07-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3143 * pa.md (casesi32p): Use jump table label to determine the offset
3145 (casesi64p): Likewise.
3147 * pa.c (forward_branch_p): Return bool type. Use instruction
3148 addresses when available. Assert that INSN has a jump label.
3149 (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
3152 2009-07-01 Richard Guenther <rguenther@suse.de>
3154 PR tree-optimization/19831
3155 * tree-ssa-dce.c (propagate_necessity): Calls to functions
3156 that only act as barriers do not make any previous stores necessary.
3157 * tree-ssa-structalias.c (handle_lhs_call): Delay making
3158 HEAP variables global, do not add a constraint from nonlocal.
3159 (find_func_aliases): Handle escapes through return statements.
3160 (compute_points_to_sets): Make escaped HEAP variables global.
3162 2009-07-01 Paolo Bonzini <bonzini@gnu.org>
3165 * expmed.c (emit_store_flag): Perform a conversion if necessary,
3166 after reducing a DImode cstore to SImode.
3168 2009-07-01 Paolo Bonzini <bonzini@gnu.org>
3170 * expr.c (expand_expr_real_1): Reinstate fallthrough to
3171 TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
3173 2009-07-01 Maciej W. Rozycki <macro@linux-mips.org>
3175 * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro. Set to 1.
3176 * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro. Redefine the
3178 * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
3179 and umod_optab if TARGET_BSD_DIVMOD.
3180 * config/vax/lib1funcs.asm: New file.
3181 * config/vax/t-linux: New file.
3182 * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
3184 2009-06-30 Jakub Jelinek <jakub@redhat.com>
3187 * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
3188 to type arguments that have void type.
3191 * dwarf2out.c (gen_formal_parameter_die): Call
3192 equate_decl_number_to_die if node is different from origin.
3194 2009-06-30 Anthony Green <green@moxielogic.com>
3196 Clean up moxie port for --enable-build-with-cxx.
3197 * config/moxie/moxie.c (moxie_function_value): First two
3198 parameters are const_tree, not tree.
3199 * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
3200 (REG_CLASS_NAMES): Ditto.
3201 (REGNO_REG_CLASS): Ditto.
3202 * config/moxie/moxie-protos.h (moxie_override_options): Declare.
3203 (moxie_function_value): Fix constyness of arguments.
3205 2009-06-30 Eric Botcazou <ebotcazou@adacore.com>
3207 * cgraphunit.c (cgraph_finalize_compilation_unit): Call
3208 finalize_size_functions before further processing.
3209 * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
3210 (variable_size): Call self_referential_size on size expressions
3211 that contain a PLACEHOLDER_EXPR.
3212 (size_functions): New static variable.
3213 (copy_self_referential_tree_r): New static function.
3214 (self_referential_size): Likewise.
3215 (finalize_size_functions): New global function.
3216 * tree.c: Include tree-inline.h.
3217 (push_without_duplicates): New static function.
3218 (find_placeholder_in_expr): New global function.
3219 (substitute_in_expr) <tcc_declaration>: Return the replacement object
3221 <tcc_expression>: Likewise.
3222 <tcc_vl_exp>: If the replacement object is a constant, try to inline
3223 the call in the expression.
3224 * tree.h (finalize_size_functions): Declare.
3225 (find_placeholder_in_expr): Likewise.
3226 (FIND_PLACEHOLDER_IN_EXPR): New macro.
3227 (substitute_placeholder_in_expr): Update comment.
3228 * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
3230 (copy_tree_body_r): Likewise.
3231 (copy_tree_body): New static function.
3232 (maybe_inline_call_in_expr): New global function.
3233 * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
3234 (maybe_inline_call_in_expr): Declare.
3235 * Makefile.in (tree.o): Depend on TREE_INLINE_H.
3236 (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
3239 2009-06-30 Richard Guenther <rguenther@suse.de>
3241 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
3243 (propagate_necessity): Do not mark reaching defs of stores
3246 2009-06-30 Jan Hubicka <jh@suse.cz>
3248 * cfgloopanal.c (check_irred): Move into ...
3249 (mark_irreducible_loops): ... here; return true if ireducible
3251 * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
3252 (analyze_function): Try to prove loop finiteness.
3253 * cfgloop.h (mark_irreducible_loops): Update prototype.
3254 * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
3256 2009-06-30 Basile Starynkevitch <basile@starynkevitch.net>
3258 * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
3260 2009-06-30 Ira Rosen <irar@il.ibm.com>
3262 PR tree-optimization/40542
3263 * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile
3266 2009-06-30 Martin Jambor <mjambor@suse.cz>
3268 PR tree-optimization/40582
3269 * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
3270 than useless_type_conversion_p.
3271 (generate_subtree_copies): Increment sra_stats.subtree_copies at a
3274 2009-06-30 Martin Jambor <mjambor@suse.cz>
3277 * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
3279 2009-06-30 Richard Guenther <rguenther@suse.de>
3281 * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
3282 use ao_ref references.
3283 (walk_aliased_vdefs): Likewise.
3284 * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
3285 * tree-ssa-dce.c (struct ref_data): Remove.
3286 (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
3287 (mark_aliased_reaching_defs_necessary): Adjust.
3288 (mark_all_reaching_defs_necessary_1): Likewise.
3290 2009-06-30 Paolo Bonzini <bonzini@gnu.org>
3293 * expmed.c (emit_cstore): New name of emit_store_flag_1.
3294 (emit_store_flag_1): Extract from emit_store_flag, adjust
3295 calls to (what now is) emit_cstore.
3296 (emit_store_flag): Call emit_store_flag_1 and also use it
3297 for what used to be recursive calls.
3299 2009-06-30 Wei Guozhi <carrot@google.com>
3302 * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
3303 if the target bb post dominates from bb.
3304 * config/i386/i386.c (memory_address_length): Check existence of base
3305 register before using it.
3307 2009-06-30 Nick Clifton <nickc@redhat.com>
3308 DJ Delorie <dj@redhat.com>
3310 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
3311 __FMOVD_ENABLED__ is defined.
3313 (TARGET_FMOVD): Provide a default definition.
3314 (MASK_FMOVD): Likewise.
3315 (TARGET_CPU_CPP_BUILTINS): Define
3316 __FMOVD_ENABLED__ if TARGET_FMOVD is true.
3317 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
3318 two fmov instructions depending upon whether TARGET_FMOVD is
3320 (split for DF load from memory into register): Also handle
3321 MEMs which consist of REG+DISP addressing.
3322 (split for DF store from register to memory): Likewise.
3323 * config/sh/sh.opt (mfmovd): Remove this switch.
3324 * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
3325 * config/sh/sh.c (sh_override_options): Do not automatically
3326 enable TARGET_MOVD for the SH2A when supporting doubles - leave
3327 that to the -mfmovd command line switch.
3329 * config/sh/sh.c (broken_move): Do not restrict fldi test to only
3331 (fldi_ok): Always allow.
3332 * config/sh/sh.md (movsf_ie): Always use single fp_mode.
3334 2009-06-29 DJ Delorie <dj@redhat.com>
3336 * doc/install.texi (mep-x-elf): Correct chip's full name.
3338 2009-06-29 H.J. Lu <hongjiu.lu@intel.com>
3340 * doc/extend.texi: Fix typo.
3342 2009-06-29 Tom Tromey <tromey@redhat.com>
3345 * Makefile.in (DWARF2_H): New variable.
3347 (dwarf2out.o): Likewise.
3348 (dwarf2asm.o): Likewise.
3349 * config/i386/t-i386: Use DWARF2_H.
3350 * except.c: Include elf/dwarf2.h.
3351 * unwind-dw2.c: Include elf/dwarf2.h.
3352 * dwarf2out.c: Include elf/dwarf2.h.
3353 (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
3354 <dtprel>: New field.
3355 (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
3356 (size_of_loc_descr): Likewise.
3357 (output_loc_operands_raw): Likewise.
3358 (output_loc_operands): Handle new dtprel field.
3359 (loc_checksum): Update.
3360 (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
3361 * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
3362 * unwind-dw2-fde.c: Include elf/dwarf2.h.
3363 * dwarf2asm.c: Include elf/dwarf2.h.
3364 * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
3365 * config/mmix/mmix.c: Include elf/dwarf2.h.
3366 * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
3367 * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
3368 * config/sh/sh.c: Include elf/dwarf2.h.
3369 * config/i386/i386.c: Include elf/dwarf2.h.
3371 2009-06-29 DJ Delorie <dj@redhat.com>
3373 * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
3375 * doc/extend.texi: Add MeP attributes and pragmas.
3376 * doc/invoke.text: Add MeP Options.
3377 * doc/contrib.texi: Add MeP contribution.
3378 * doc/md.texi: Add MeP constraints.
3379 * doc/install.texi: Add MeP target.
3381 2009-06-30 Anatoly Sokolov <aesok@post.ru>
3383 * target.h (struct gcc_target): Add frame_pointer_required field.
3384 * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
3385 (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
3386 * ira.c (setup_eliminable_regset): Use frame_pointer_required target
3388 * reload1.c (update_eliminables): (Ditto.).
3389 * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
3390 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
3391 (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
3393 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
3395 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
3396 * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3397 (arm_frame_pointer_required): New function.
3399 * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
3400 * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3401 (avr_frame_pointer_required_p): Declare as static.
3402 * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
3404 * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
3405 * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3406 (bfin_frame_pointer_required): Make as static, change return type
3408 * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
3410 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
3411 * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3412 (cris_frame_pointer_required): New function.
3414 * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
3416 * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
3417 * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3418 (fr30_frame_pointer_required): New function.
3420 * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
3421 * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3422 (frv_frame_pointer_required): Make as static, change return type
3424 * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
3426 * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
3427 * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3428 (ix86_frame_pointer_required): Make as static, change return type to
3430 * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
3432 * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
3433 * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3435 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
3437 * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
3439 * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
3441 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
3442 * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3443 (mips_frame_pointer_required): Make as static.
3444 * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
3446 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
3447 * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3448 (mmix_frame_pointer_required): Mew function.
3450 * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
3451 * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3453 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
3455 * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
3457 * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
3459 * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
3460 (CAN_ELIMINATE): Redefine.
3461 * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3462 (sparc_frame_pointer_required): New function.
3463 (sparc_can_eliminate): New function.
3464 * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
3466 * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
3467 * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3469 * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
3470 * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3471 (xtensa_frame_pointer_required): Make as static, change return type
3473 * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
3476 2009-06-29 Olatunji Ruwase <tjruwase@google.com>
3478 * doc/plugins.texi: Document PLUGIN_START_UNIT.
3479 * toplev.c (compile_file): Call PLUGIN_START_UNIT.
3480 * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
3481 * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
3482 (register_callback): Handle PLUGIN_START_UNIT.
3483 (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
3485 2009-06-29 Eric Botcazou <ebotcazou@adacore.com>
3487 * tree.c (process_call_operands): Propagate TREE_READONLY from the
3489 (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
3490 (build3_stat): Propagate TREE_READONLY for COND_EXPR.
3492 2009-06-29 Daniel Jacobowitz <dan@codesourcery.com>
3494 * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
3497 2009-06-29 Uros Bizjak <ubizjak@gmail.com>
3499 * doc/extend.texi (Additional Floating Types): __float128 is also
3500 supported on i386 targets.
3502 2009-06-29 Richard Guenther <rguenther@suse.de>
3505 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
3507 (pt_solutions_same_restrict_base): Declare.
3508 * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
3510 (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
3511 (make_constraint_from, make_copy_constraint): Move earlier.
3512 (make_constraint_from_heapvar): New function.
3513 (make_constraint_from_restrict): Likewise.
3514 (handle_lhs_call): Use it.
3515 (find_func_aliases): Use it to track conversions to restrict
3517 (struct fieldoff): Add only_restrict_pointers flag.
3518 (push_fields_onto_fieldstack): Initialize it.
3519 (create_variable_info_for): Track global restrict qualified pointers.
3520 (intra_create_variable_infos): Use make_constraint_from_heapvar.
3521 Track restrict qualified pointer arguments.
3522 (set_uids_in_ptset): Use varinfo is_global_var flag.
3523 (find_what_var_points_to): Set the vars_contains_restrict flag.
3524 Always create the points-to solution for sets including restrict tags.
3525 (pt_solutions_same_restrict_base): New function.
3526 * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
3527 qualified pointers use pt_solutions_same_restrict_base as
3528 additional source for disambiguation.
3530 2009-06-29 Richard Guenther <rguenther@suse.de>
3533 * alias.c (find_base_decl): Remove.
3534 (get_deref_alias_set_1): Remove restrict handling.
3535 * c-common.c (c_apply_type_quals_to_decl): Do not set
3536 DECL_POINTER_ALIAS_SET.
3537 * gimplify.c (find_single_pointer_decl_1): Remove.
3538 (find_single_pointer_decl): Likewise.
3539 (internal_get_tmp_var): Remove restrict handling.
3540 (gimple_regimplify_operands): Likewise.
3541 * omp-low.c (expand_omp_atomic_pipeline): Do not set
3542 DECL_POINTER_ALIAS_SET. Use ref-all pointers.
3543 * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
3544 * tree.c (restrict_base_for_decl): Remove.
3545 (init_ttree): Do not allocate it.
3546 (make_node_stat): Do not set DECL_POINTER_ALIAS_SET. Set
3547 LABEL_DECL_UID for label decls.
3548 (copy_node_stat): Do not copy restrict information.
3549 (decl_restrict_base_lookup): Remove.
3550 (decl_restrict_base_insert): Likewise.
3551 (print_restrict_base_statistics): Likewise.
3552 (dump_tree_statistics): Do not call print_restrict_base_statistics.
3553 * tree.h (DECL_POINTER_ALIAS_SET): Remove.
3554 (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
3555 (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
3556 (LABEL_DECL_UID): Adjust.
3557 (DECL_BASED_ON_RESTRICT_P): Remove.
3558 (DECL_GET_RESTRICT_BASE): Likewise.
3559 (SET_DECL_RESTRICT_BASE): Likewise.
3560 (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
3562 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
3563 instead of DECL_POINTER_ALIAS_SET.
3564 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
3565 * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
3566 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
3568 2009-06-29 Richard Guenther <rguenther@suse.de>
3570 PR tree-optimization/40579
3571 * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
3572 the IL to simplify has constants that overflowed.
3574 2009-06-28 Uros Bizjak <ubizjak@gmail.com>
3576 PR tree-optimization/40550
3577 * tree-vect-generic.c (expand_vector_operations_1): Compute in
3578 vector_compute_type only when the size of vector_compute_type is
3579 less than the size of type.
3581 2009-06-28 Eric Botcazou <ebotcazou@adacore.com>
3583 * fold-const.c (contains_label_1): Fix comments.
3584 (contains_label_p): Do not walk trees multiple time.
3586 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
3588 * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
3589 * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
3590 cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
3591 ix86_fp_comparison_operator.
3592 (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
3593 *fp_jcc_2_sse, *fp_jcc_2_387): Delete
3594 (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
3595 *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
3596 !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
3597 to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
3598 (related splits): Change predicate to ix86_fp_comparison_operator.
3599 * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
3600 instead of ix86_fp_comparison_codes.
3601 (ix86_trivial_fp_comparison_operator,
3602 ix86_fp_comparison_operator): New.
3603 * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
3604 (ix86_expand_compare): Eliminate last two parameters.
3605 (ix86_fp_jump_nontrivial_p): Kill.
3606 * config/i386/i386.c (put_condition_code): Eliminate call to
3607 ix86_fp_comparison_codes and subsequent assertion.
3608 (ix86_fp_comparison_codes): Eliminate.
3609 (ix86_fp_swap_condition): New.
3610 (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
3611 ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
3612 into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
3613 (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
3614 and ix86_fp_swap_condition.
3615 (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
3616 Use ix86_fp_comparison_strategy.
3617 (ix86_expand_compare): Likewise. Eliminate last two arguments.
3618 (ix86_fp_jump_nontrivial_p): Eliminate.
3619 (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple. Adjust
3620 call to ix86_expand_compare.
3621 (ix86_split_fp_branch, ix86_expand_setcc,
3622 ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
3623 ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
3625 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
3627 * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
3628 related to jump_clobbers.
3629 * config/arm/arm.md (conds): Remove jump_clob case.
3630 (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
3631 splits): Change comparison_operator to arm_comparison_operator.
3632 (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
3635 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
3637 * dojump.c (do_compare_rtx_and_jump): Try swapping the
3638 condition for floating point modes.
3639 * expmed.c (emit_store_flag_1): Move here a bigger part
3641 (emit_store_flag): Try swapping the condition for floating point
3643 * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
3645 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
3647 * expr.c (expand_expr_real_1): Just use do_store_flag.
3648 (do_store_flag): Drop support for TRUTH_NOT_EXPR. Use
3649 emit_store_flag_force.
3650 * expmed.c (emit_store_flag_force): Copy here trick
3651 previously in expand_expr_real_1. Try reversing the comparison.
3652 (emit_store_flag_1): Work if target is NULL.
3653 (emit_store_flag): Work if target is NULL, using the result mode
3654 from the comparison. Use split_comparison, restructure final part
3655 to simplify conditionals.
3657 2009-06-28 Paolo Bonzini <bonzini@gnu.org>
3659 * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
3660 * dojump.c (do_jump): Change handling of floating-point
3661 ops to use just do_compare_and_jump.
3662 (split_comparison): New.
3663 (do_compare_rtx_and_jump): Add here logic coming previously
3664 in do_jump, using split_comparison.
3666 2009-06-27 H.J. Lu <hongjiu.lu@intel.com>
3669 * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
3671 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
3673 * tree-ssa-alias.c: Fix unintentional commit.
3675 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
3677 * passes.c (execute_one_pass): Fix unintentional commit.
3679 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
3681 * df-problems.c (df_set_seen, df_unset_seen): Delete.
3682 (df_rd_local_compute, df_md_local_compute): Inline them.
3684 (df_md_scratch): New.
3685 (df_md_alloc, df_md_free): Allocate/free it.
3686 (df_md_local_compute): Only include live registers in init.
3687 (df_md_transfer_function): Prune the in-set computed by
3688 the confluence function, and the gen-set too.
3690 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
3692 PR rtl-optimization/26854
3693 * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
3694 * df-problems.c (df_rd_add_problem): Fix comment.
3695 (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
3696 df_md_simulate_artificial_defs_at_top,
3697 df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
3698 df_md_bb_local_compute, df_md_local_compute, df_md_reset,
3699 df_md_transfer_function, df_md_init, df_md_confluence_0,
3700 df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
3701 problem_MD, df_md_add_problem): New.
3702 * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
3703 df_md_get_bb_info): New.
3704 (DF_LAST_PROBLEM_PLUS1): Adjust.
3706 * Makefile.in (fwprop.o): Include domwalk.h.
3707 * fwprop.c: Include domwalk.h.
3708 (reg_defs, reg_defs_stack): New.
3709 (bitmap_only_bit_between): Remove.
3710 (process_defs): New.
3711 (process_uses): Use reg_defs and local_md instead of
3712 bitmap_only_bit_between and local_rd.
3713 (single_def_use_enter_block): New, from build_single_def_use_links.
3714 (single_def_use_leave_block): New.
3715 (build_single_def_use_links): Remove code moved to
3716 single_def_use_enter_block, invoke domwalk.
3717 (use_killed_between): Adjust comment.
3719 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
3721 * bitmap.h (bitmap_ior_and_into): New.
3722 * bitmap.c (bitmap_ior_and_into): New.
3724 2009-06-27 Paolo Bonzini <bonzini@gnu.org>
3726 * domwalk.h (struct dom_walk_data): Remove all callbacks except
3727 before_dom_children_before_stmts and after_dom_children_after_stmts.
3728 Rename the two remaining callbacks to just before_dom_children and
3729 after_dom_children. Remove other GIMPLE statement walking bits.
3730 * domwalk.c (walk_dominator_tree): Remove now unsupported features.
3731 * graphite.c: Do not include domwalk.h.
3732 * tree-into-ssa.c (interesting_blocks): New global.
3733 (struct mark_def_sites_global_data): Remove it and names_to_rename.
3734 (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
3735 rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
3736 now that they're not domwalk callbacks.
3737 (rewrite_initialize_block): Rename to...
3738 (rewrite_enter_block): ... this, place after called functions. Test
3739 interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
3740 (rewrite_finalize_block): Rename to...
3741 (rewrite_leave_block): ... this, place after called functions.
3742 (rewrite_update_init_block): Rename to...
3743 (rewrite_update_enter_block): ... this, place after called functions.
3744 Test interesting_blocks, call rewrite_update_stmt and
3745 rewrite_update_phi_arguments.
3746 (rewrite_update_fini_block): Rename to...
3747 (rewrite_leave_block): ... this, place after called functions.
3748 (rewrite_blocks): Remove last argument, simplify initialization of
3750 (mark_def_sites_initialize_block): Rename to...
3751 (mark_def_sites_block): ... this, call mark_def_sites.
3752 (mark_def_sites_blocks): Remove argument, simplify initialization of
3754 (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
3755 (update_ssa): Likewise.
3756 * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
3758 (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
3759 (dom_opt_initialize_block): Rename to...
3760 (dom_opt_enter_block): ... this, place after called functions. Walk
3761 statements here, inline propagate_to_outgoing_edges.
3762 (dom_opt_finalize_block): Rename to...
3763 (dom_opt_leave_block): ... this, place after called functions.
3764 * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
3766 (dse_enter_block, dse_record_phi): New.
3767 (dse_record_phis): Delete.
3768 (dse_finalize_block): Rename to...
3769 (dse_leave_block): ... this.
3770 (tree_ssa_dse): Simplify initialization of walk_data.
3771 * tree-ssa-loop-im.c (determine_invariantness, move_computations):
3772 Adjust initialization of walk_data.
3773 * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
3774 * tree-ssa-loop-phiopt.c (get_non_trapping):
3775 Adjust initialization of walk_data.
3776 * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
3777 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
3778 it's not a domwalk callback.
3779 (uncprop_initialize_block): Rename to...
3780 (dse_enter_block): ... this, call uncprop_into_successor_phis.
3781 (dse_finalize_block): Rename to...
3782 (dse_leave_block): ... this.
3783 (tree_ssa_uncprop): Simplify initialization of walk_data.
3784 * Makefile.in: Adjust dependencies.
3786 2009-06-27 Richard Earnshaw <rearnsha@arm.com>
3788 * arm.md (casesi): Fix test for Thumb1.
3789 (thumb1_casesi_internal_pic): Likewise.
3790 (thumb1_casesi_dispatch): Likewise.
3792 2009-06-26 Daniel Gutson <dgutson@codesourcery.com>
3794 * config/arm/arm-cores.def: Added core cortex-m0.
3795 * config/arm/arm-tune.md: Regenerated.
3796 * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
3798 2009-06-26 DJ Delorie <dj@redhat.com>
3800 * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
3802 * config/mep/mep.c (mep_bundle_insns): Account for the fact that
3803 the scheduler doesn't tag jump insns.
3805 2009-06-26 H.J. Lu <hongjiu.lu@intel.com>
3807 * c-decl.c (merge_decls): Re-indent.
3809 2009-06-26 Janis Johnson <janis187@us.ibm.com>
3812 * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
3813 Special-case decimal float constants.
3815 2009-06-26 Richard Henderson <rth@redhat.com>
3817 * function.h (struct function): Add cannot_be_copied_reason,
3818 and cannot_be_copied_set.
3819 * tree-inline.c (has_label_address_in_static_1): Rename from
3820 inline_forbidden_p_2; don't set inline_forbidden_reason here.
3821 (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
3822 don't set inline_forbidden_reason.
3823 (copy_forbidden): New function, split out of inline_forbidden_p.
3824 (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
3825 (inline_forbidden_p): Use copy_forbidden.
3826 (tree_versionable_function_p): Likewise.
3827 (inlinable_function_p): Merge into tree_inlinable_function_p.
3828 (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
3829 * ipa-cp.c (ipcp_versionable_function_p): New function.
3830 (ipcp_cloning_candidate_p): Use it.
3831 (ipcp_node_modifiable_p): Likewise.
3833 2009-06-26 Olatunji Ruwase <tjruwase@google.com>
3835 * builtins.c (expand_builtin_alloca): Handle builtin alloca
3836 that is marked not to be inlined. Remove flag_mudflap use.
3837 * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
3838 (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
3840 2009-06-26 Steve Ellcey <sje@cup.hp.com>
3843 * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
3844 * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
3846 2009-06-26 Kai Tietz <kai.tietz@onevision.com>
3848 * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
3850 (__mingwthr_remove_key_dtor): Likewise.
3852 2009-06-26 Richard Guenther <rguenther@suse.de>
3854 * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
3856 2009-06-26 Steven Bosscher <steven@gcc.gnu.org>
3859 * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
3860 try the non-cond_exec path also.
3862 2009-06-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3865 * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
3866 (output_cbranch): Use new functions.
3867 (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
3870 2009-06-25 Michael Meissner <meissner@linux.vnet.ibm.com>
3871 Pat Haugen <pthaugen@us.ibm.com>
3872 Revital Eres <ERES@il.ibm.com>
3874 * config/rs6000/rs6000.c (print_operand): Correct lossage message
3875 for %c error. Add %x support to print VSX registers as a unified
3876 register set, instead of separate float and altivec registers.
3877 Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
3878 %y case, and add support for VSX pre-modify addresses.
3879 (output_toc): Add assert for CONST containing an integer constant
3881 (rs6000_adjust_cost): Add POWER7 support.
3882 (insn_must_be_first_in_group): Ditto.
3883 (insn_must_be_last_in_group): Ditto.
3884 (rs6000_emit_popcount): Ditto.
3885 (rs6000_vector_mode_supported_p): Ditto.
3887 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
3888 Change some of the functions called by macros to being called
3889 through a pointer, so debug functions can be inserted if
3890 -mdebug=addr or -mdebug=cost.
3891 (rs6000_preferred_reload_class_ptr): Ditto.
3892 (rs6000_secondary_reload_class_ptr): Ditto.
3893 (rs6000_secondary_memory_needed_ptr): Ditto.
3894 (rs6000_cannot_change_mode_class_ptr): Ditto.
3895 (rs6000_secondary_reload_inner): Ditto.
3896 (rs6000_legitimize_reload_address): Ditto.
3897 (rs6000_legitimize_reload_address_ptr): Ditto.
3898 (rs6000_mode_dependent_address): Ditto.
3899 (rs6000_mode_dependent_address_ptr): Ditto.
3901 * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
3902 function to return true if the mode allows reg + integer
3904 (virtual_stack_registers_memory_p): New function to return true if
3905 the address refers to a virtual stack register.
3906 (rs6000_legitimate_offset_address_p): Move code to say whether a
3907 mode supports reg+int addressing to reg_offset_addressing_ok_p and
3909 (rs6000_legitimate_address_p): Add checks for modes that only can
3910 do reg+reg addressing. Start adding VSX support.
3911 (rs6000_legitimize_reload_address): Ditto.
3912 (rs6000_legitimize_address): Ditto.
3913 (rs6000_debug_legitimate_address_p): New debug functions for
3914 -mdebug=addr and -mdebug=cost.
3915 (rs6000_debug_rtx_costs): Ditto.
3916 (rs6000_debug_address_costs): Ditto.
3917 (rs6000_debug_adjust_cost): Ditto.
3918 (rs6000_debug_legitimize_address): Ditto.
3919 (rs6000_legitimize_reload_address_ptr): Point to call normal
3920 function or debug function. Make functions called via pointer
3922 (rs6000_mode_dependent_address_ptr): Ditto.
3923 (rs6000_secondary_reload_class_ptr): Ditto.
3924 (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
3925 (rs6000_emit_move): Add -mdebug=addr support. Change an abort
3926 into a friendlier error.
3927 (rs6000_init_builtins): Add initial VSX support.
3928 (rs6000_adjust_cost): Fix some spacing issues.
3930 * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
3931 (REG_CLASS_NAMES): Ditto.
3932 (REG_CLASS_CONTENTS): Ditto.
3933 (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
3934 pointer, to add -mdebug=addr support.
3935 (CANNOT_CHANGE_MODE_CLASS): Ditto.
3936 (SECONDARY_RELOAD_CLASS): Call through a pointer to add
3937 -mdebug=addr support.
3938 (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
3939 (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
3940 (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
3942 * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
3944 (bswapsi*): Set attribute types for load/store. Add combiner
3945 patterns to eliminate zero extend on 64-bit.
3946 (bswapdi*): Add support for swapping 64-bit values. Use ldbrx and
3947 stdbrx if the hardware supports those instructions.
3949 2009-06-25 Ian Lance Taylor <iant@google.com>
3951 * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
3952 (Link Options): Document -static-libstdc++.
3954 2009-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com>
3957 * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
3958 DATA_ALIGNMENT instead.
3960 2009-06-25 Richard Guenther <rguenther@suse.de>
3962 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
3963 indirect references against the callused/escaped solutions.
3964 (call_may_clobber_ref_p_1): Likewise.
3966 2009-06-25 Martin Jambor <mjambor@suse.cz>
3968 PR tree-optimization/40493
3969 * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
3970 (enum unscalarized_data_handling): New type.
3971 (handle_unscalarized_data_in_subtree): Return what has been done.
3972 (load_assign_lhs_subreplacements): Handle left flushes differently.
3973 (sra_modify_assign): Use unscalarized_data_handling, simplified
3974 condition determining whether to remove the statement.
3976 2009-06-25 Basile Starynkevitch <basile@starynkevitch.net>
3978 * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
3979 excerpt - @ should be doubled for texinfo.
3981 2009-06-24 Ian Lance Taylor <iant@google.com>
3983 * config/arc/arc.c: Include "df.h".
3984 (arc_attribute_table): Make static. Move higher in file.
3985 (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
3986 (output_shift): Initialize n later to avoid warning.
3987 * config/arm/arm.c (arm_attribute_table): Make static. Move
3989 * config/avr/avr.c (avr_attribute_table): Make static. Move
3991 (reg_class_tab): Change array type from int to enum reg_class.
3992 (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
3994 (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
3995 (lshrhi3_out): Likewise.
3996 (class_likely_spilled_p): Change return type to bool.
3997 (avr_rtx_costs): Use local code variable with enum type.
3998 * config/avr/avr.md (movmemhi): Use add_reg_note.
3999 (andhi3, andsi3): Don't use AS2 with "and".
4000 (iorhi3, iorsi3): Don't use AS2 with "or".
4001 * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
4002 * config/crx/crx.c: Include "df.h".
4003 (crx_attribute_table): Make static.
4004 * config/m32r/m32r.c: Include "df.h".
4005 (m32r_attribute_table): Make static. Move higher in file.
4006 (pop): Use add_reg_note.
4007 (block_move_call): Change 0 to LCT_NORMAL in function call.
4008 * config/m32r/m32r.md (movsi_insn): Remove unused local value.
4009 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
4010 * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
4011 declare, not just when TREE_CODE is defined.
4012 * config/m68hc11/m68hc11.c: Include "expr.h".
4013 (m68hc11_attribute_table): Make static. Move higher in file.
4014 (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
4016 (m68hc11_register_indirect_p): Likewise.
4017 (m68hc11_function_arg_padding): Change return type to enum
4019 (emit_move_after_reload): Use add_reg_note.
4020 (m68hc11_emit_logical): Change code parameter to enum rtx_code.
4021 (m68hc11_split_logical): Likewise.
4022 (m68hc11_rtx_costs): Add local code_and outer_code variables with
4024 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
4025 to VOIDmode in function call.
4026 * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
4028 (m68hc11_split_logical): Update declaration.
4029 (m68hc11_function_arg_padding): Update declaration.
4030 * config/mcore/mcore.c (regno_reg_class): Change form array of int
4031 to array of enum reg_class.
4032 (mcore_attribute_table): Make static. Move higher in file.
4033 (mcore_rtx_costs): Add cast to enum type.
4034 * config/mcore/mcore.h (regno_reg_class): Update declaration.
4035 (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
4036 * config/sh/sh.c (sh_attribute_table): Make static. Move higher
4038 * config/sh/predicates.md (trapping_target_operand): Rename and to
4040 * config/sparc/sparc.c (sparc_attribute_table): Make static. Move
4042 * config/spu/spu.c (spu_attribute_table): Make static. Move
4044 * config/v850/v850.c (v850_attribute_table): Make static. Move
4046 (v850_rtx_costs): Use local code with enum type.
4047 (expand_epilogue): Add cast.
4048 * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
4050 2009-06-23 Takashi YOSHII <yoshii.takashi@renesas.com>
4053 * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
4054 -m2a-single-only and -m2a-nofpu.
4055 * config/sh/sh.opt: Document m2a generates FPU code.
4057 2009-06-24 Anatoly Sokolov <aesok@post.ru>
4059 * defaults.h (CAN_ELIMINATE): Provide default.
4060 * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
4061 * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
4062 * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
4063 * config/spu/spu.h (CAN_ELIMINATE): Delete.
4064 * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
4065 * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
4066 * config/cris/cris.h (CAN_ELIMINATE): Delete.
4067 * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
4068 * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
4069 * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
4071 2009-06-24 DJ Delorie <dj@redhat.com>
4073 * mep-ext-cop.cpu: Fix copyright notice.
4074 * mep-default: Fix copyright notice.
4075 * mep-core: Fix copyright notice.
4076 * mep: Fix copyright notice.
4077 * mep-ivc2: Fix copyright notice.
4078 * mep-c5: Fix copyright notice.
4080 2009-06-24 Denis Chertykov <chertykov@gmail.com>
4082 * doc/contrib.texi (Contributors):
4084 2009-06-24 Andreas Krebbel <krebbel1@de.ibm.com>
4087 * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
4088 src and dst operands if necessary.
4090 2009-06-23 DJ Delorie <dj@redhat.com>
4093 * config.gcc: Add mep support.
4094 * recog.c: Resurrect validate_replace_rtx_subexp().
4095 * recog.h: Likewise.
4096 * config/mep/: Add new port:
4097 * config/mep/constraints.md: New file.
4098 * config/mep/default.h: New file.
4099 * config/mep/intrinsics.h: New file.
4100 * config/mep/intrinsics.md: New file.
4101 * config/mep/ivc2-template.h: New file.
4102 * config/mep/mep-c5.cpu: New file.
4103 * config/mep/mep-core.cpu: New file.
4104 * config/mep/mep-default.cpu: New file.
4105 * config/mep/mep-ext-cop.cpu: New file.
4106 * config/mep/mep-intrin.h: New file.
4107 * config/mep/mep-ivc2.cpu: New file.
4108 * config/mep/mep-lib1.asm: New file.
4109 * config/mep/mep-lib2.c: New file.
4110 * config/mep/mep-pragma.c: New file.
4111 * config/mep/mep-protos.h: New file.
4112 * config/mep/mep-tramp.c: New file.
4113 * config/mep/mep.c: New file.
4114 * config/mep/mep.cpu: New file.
4115 * config/mep/mep.h: New file.
4116 * config/mep/mep.md: New file.
4117 * config/mep/mep.opt: New file.
4118 * config/mep/predicates.md: New file.
4119 * config/mep/t-mep: New file.
4121 2009-06-23 Ian Lance Taylor <iant@google.com>
4123 * configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
4124 from loose_warn into c_loose_warn and from strict_warn into
4125 c_strict_warn. Set and substitute warn_cxxflags. Check for
4126 --enable-build-with-cxx. Set and substitute
4127 ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
4128 * Makefile.in (CXXFLAGS): New variable.
4129 (C_LOOSE_WARN, C_STRICT_WARN): New variables.
4130 (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
4131 the default is the same as $(STRICT_WARN).
4132 (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
4133 (CXX): New variable.
4134 (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
4135 (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
4136 (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
4137 (HOST_LIBS): New variable.
4138 (GCC_CFLAGS): Add $(C_LOOSE_WARN).
4139 (ALL_CXXFLAGS): New variable.
4140 (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
4141 * doc/install.texi (Configuration): Document
4142 --enable-build-with-cxx, --with-stage1-ldflags,
4143 --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
4144 * configure: Rebuild.
4146 2009-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4148 * config/arm/arm.c (arm_override_options): Fix braces and formatting
4149 from previous commit.
4151 2009-06-23 Ian Lance Taylor <iant@google.com>
4153 * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
4155 2009-06-23 Ian Lance Taylor <iant@google.com>
4157 * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
4158 with ATTRIBUTE_UNUSED.
4160 2009-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4161 Pat Haugen <pthaugen@us.ibm.com>
4162 Revital Eres <eres@il.ibm.com>
4164 * config.in (HAVE_AS_POPCNTD): Add default definition.
4165 (HAVE_AS_LWSYNC): Ditto.
4167 * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
4169 (gcc_cv_as_powerpc_cmpb): Ditto.
4170 (gcc_cv_as_powerpc_dfp): Ditto.
4171 (gcc_cv_as_powerpc_vsx): Ditto.
4172 (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
4173 supporting the popcntd/lwsync instructions.
4174 (gcc_cv_as_powerpc_lwsync): Ditto.
4175 * configure: Regenerate.
4177 * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
4178 -mcpu=native and -mcpu=power7.
4179 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
4181 * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
4182 a variable instead of a mask to reduce the number of mask bits.
4183 * config/rs6000/sysv4.opt (-mbit-align): Ditto.
4184 (-mbit-word): Ditto.
4185 (-mregnames): Ditto.
4186 * config/rs6000/rs6000.opt (-mupdate): Ditto.
4187 (-mfused-madd): Ditto.
4189 * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
4191 (-mvsx): New switch for VSX instructions.
4192 (-misel): Move from a variable to a mask to allow it to be set by
4195 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
4196 function declaration to an array declaration.
4197 (rs6000_hard_regno_nregs): New external array declaration.
4199 * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
4200 files included by rs6000.md.
4202 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
4203 SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
4205 * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
4207 (rs6000_debug_reg): New -mdebug= variables.
4208 (rs6000_debug_addr): Ditto.
4209 (rs6000_debug_cost): Ditto.
4210 (rs6000_pmode): New variable to hold Pmode.
4211 (rs6000_pointer_size): New variable to hold POINTER_SIZE.
4212 (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
4213 calculated at compiler start.
4214 (rs6000_hard_regno_nregs): Change function to an array which holds
4215 HARD_REGNO_NREGS calculated at compiler start.
4216 (rs6000_explicit_options): Delete isel field.
4217 (rs6000_vector_unit): New array to hold which vector unit
4218 supports arithmetic options for a given type.
4219 (rs6000_vector_mem): New array to hold which vector unit supports
4220 memory reference operations for a given type.
4221 (rs6000_vector_align): New array to given the alignment of each
4223 (power7_cost): New basic costs for power7.
4224 (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
4225 (rs6000_hard_regno_nregs_internal): New function, moved from
4226 HARD_REGNO_NREGS, to calculate the number of registers each hard
4227 register takes for each type.
4228 (rs6000_debug_reg_print): New function for -mdebug=reg support.
4229 (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
4230 (+rs6000_init_hard_regno_mode_ok): New function, move calculation
4231 of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
4232 unit information here so it is calculated once at compiler startup
4234 (rs6000_override_options): Make -misel a target mask. Add more
4235 power7 target masks. Setup Pmode and POINTER_SIZE. Add initial
4236 VSX support. Add support for -mdebug=reg, -mdebug=addr, and
4238 (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
4239 (rs6000_handle_option): Move -misel from variable to target mask.
4240 (rs6000_builtin_mask_for_load): Add VSX support.
4241 (rs6000_conditional_register_usage): Ditto.
4242 (USE_ALTIVEC_FOR_ARG_P): Ditto.
4243 (function_arg_boundary): Ditto.
4244 (rs6000_expand_builtin): Ditto.
4245 (def_builtin): Make abort message a little friendlier.
4246 (rs6000_emit_int_cmove): Add support for 64-bit isel.
4248 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
4249 assembler support the popcntd instruction instead of a vsx
4250 instruction to enable power7 support.
4251 (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
4252 (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
4253 option to the assembler if -mcpu=native.
4254 (ASM_CPU_NATIVE_SPEC): Ditto.
4255 (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
4257 (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
4258 the lwsync instruction.
4259 (enum processor_type): Add PROCESSOR_POWER7.
4260 (rs6000_debug_reg): New -mdebug= options.
4261 (rs6000_debug_addr): Ditto.
4262 (rs6000_debug_cost): Ditto.
4263 (rs6000_isel): Delete.
4264 (enum rs6000_vector): New enum to say what vector unit we have.
4265 (VECTOR_UNIT_*): New macros to say which vector unit has
4266 arithmetic operations for a given type.
4267 (VECTOR_MEM_*): New macros to say which vector unit has memory
4268 operations for a given type.
4269 (TARGET_LDBRX): Whether the machine supports the ldbrx
4271 (TARGET_ISEL): Delete, -misel moved to be a mask.
4272 (TARGET_ISEL64): New macro for 64-bit isel support.
4273 (UNITS_PER_VSX_WORD): New macro.
4274 (POINTER_SIZE): Move to be an external variable, rather than
4275 calculating whether we are generating 32 ot 64-bit code.
4277 (STACK_BOUNDARY): Add VSX support.
4278 (LOCAL_ALIGNMENT): Ditto.
4279 (SLOW_UNALIGNED_ACCESS): Ditto.
4280 (VSX_REGNO_P): New macro for VSX support.
4281 (VFLOAT_REGNO_P): Ditto.
4282 (VINT_REGNO_P): Ditto.
4283 (VLOGICAL_REGNO_P): Ditto.
4284 (VSX_VECTOR_MODE): Ditto.
4285 (VSX_SCALAR_MODE): Ditto.
4287 (VSX_MOVE_MODE): Ditto.
4288 (VSX_REG_CLASS_P): Ditto.
4289 (HARD_REGNO_NREGS): Instead of calling a function, use an array
4291 (UNITS_PER_SIMD_WORD): Add VSX support.
4292 (MODES_TIEABLE_P): Ditto.
4293 (STARTING_FRAME_OFFSET): Ditto.
4294 (STACK_DYNAMIC_OFFSET): Ditto.
4295 (EPILOGUE_USES): Ditto.
4296 (REGNO_REG_CLASS): Move to array lookup.
4297 (CLASS_MAX_NREGS): Ditto.
4298 (rs6000_vector_reg_class): Add declaration.
4299 (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
4300 overlap with the floating point and Altivec registers.
4302 * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
4304 * config/rs6000/driver-rs6000.c (asm_names): New static array to
4305 give the appropriate asm switches if -mcpu=native.
4306 (host_detect_local_cpu): Add support for "asm".
4307 (host_detect_local_cpu): Follow GNU code guidelines for name.
4309 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
4310 -mbit-word to a variable instead of being a target mask.
4312 * config/rs6000/sync.md (lwsync): If the assembler supports it,
4313 emit the lwsync instruction instead of emitting the instruction as
4314 an integer constant.
4316 * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
4317 fixuns_trundfsi2, move expander into rs6000.md.
4319 * config/rs6000/rs6000.md (cpu): Add power7.
4320 (sel, *ptrsize): New mode attributes for 32/64-bit isel.
4321 (logical predicate patterns): Change the single instruction
4322 primitives that set CR0 to be fast_compare instead of compare.
4324 (popcntwsi2): Add support for ISA 2.06 popcount instructions.
4325 (popcntddi2): Ditto.
4326 (popcount<mode>): Ditto.
4327 (floating multiply/add insns): Name the floating point
4329 (isel_signed_<mode>): Add support for -misel on 64-bit systems.
4330 (isel_unsigned_<mode>): Ditto.
4331 (fixuns_trundfsi2): Move expander here from spe.md.
4332 (smindi3): Define if we have -misel on 64-bit systems.
4337 2009-06-23 Anatoly Sokolov <aesok@post.ru>
4339 * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
4341 * config/avr/avr.c (avr_current_device): New variable.
4342 (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
4343 (avr_arch, mcu_type_s): Move to avr.h.
4344 * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
4345 default_data_section_start fields.
4346 (avr_arch): Moved from avr.c.
4347 (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
4348 library_name fields.
4349 (avr_current_device, avr_mcu_types, avr_arch_types,
4350 avr_device_to_arch, avr_device_to_data_start,
4351 avr_device_to_startfiles, avr_device_to_devicelib): Declare.
4352 (EXTRA_SPEC_FUNCTIONS): Define.
4353 (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
4354 options mapping. Use device_to_arch and device_to_data_start insted.
4355 (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
4356 (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
4357 * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
4358 * config/avr/driver-avr.c: New file.
4359 * config/avr/avr-devices.c: New file.
4361 2009-06-23 Jakub Jelinek <jakub@redhat.com>
4363 * var-tracking.c (unshare_variable): Force initialized to
4364 be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
4365 (set_variable_part): Likewise.
4366 (struct variable_union_info): Remove pos_src field.
4367 (vui_vec, vui_allocated): New variables.
4368 (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
4369 unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l
4370 == 1 use a simpler sorting algorithm. Compute pos field right
4371 away, don't fill in pos_src. For dst_l == 2 avoid qsort.
4372 Avoid quadratic comparison if !flag_var_tracking_uninit.
4373 (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
4374 unshare_variable unconditionally.
4375 (dataflow_set_different_2): Removed.
4376 (dataflow_set_different): Don't traverse second hash table.
4377 (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
4378 unconditionally to var_reg_set or var_mem_set.
4379 (emit_notes_in_bb): Likewise.
4380 (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
4382 (emit_note_insn_var_location): Don't set initialized to
4383 VAR_INIT_STATUS_INITIALIZED early.
4384 (vt_finalize): Free vui_vec if needed, clear vui_vec and
4386 * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
4388 * tree-object-size.c (addr_object_size): Instead of checking
4389 for non-NULL TREE_CHAIN of the FIELD_DECL check that there
4390 are no FIELD_DECLs following it.
4392 2009-06-23 Andreas Krebbel <krebbel1@de.ibm.com>
4394 * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
4395 order to match bswaps with signed source operands.
4397 2009-06-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4399 * sdbout.c (sdbout_one_type): Fix braces in switch.
4401 2009-06-23 Richard Guenther <rguenther@suse.de>
4403 * tree-ssa-structalias.c (struct variable_info): Add is_global_var
4405 (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
4406 readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
4407 var_callused, callused_tree, var_storedanything, storedanything_tree,
4408 var_integer, integer_tree): Remove global variables.
4409 (new_var_info): Do not pass new id, append the new var to the
4410 global variable vector.
4411 (do_ds_constraint): Use is_global_var member of the variable-info.
4412 (new_scalar_tmp_constraint_exp): Adjust.
4413 (create_function_info_for): Likewise.
4414 (create_variable_info_for): Likewise.
4415 (find_what_var_points_to): Remove dead code.
4416 (init_base_vars): Simplify.
4417 (compute_points_to_sets): Adjust.
4419 2009-06-22 Adam Nemet <anemet@caviumnetworks.com>
4421 * combine.c (try_combine): Dump information about the insns we're
4424 2009-06-22 Adam Nemet <anemet@caviumnetworks.com>
4426 * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
4427 check when calling force_to_mode on TRUNCATE's operand.
4429 2009-06-22 Ian Lance Taylor <iant@google.com>
4431 * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
4433 2009-06-22 Steven Bosscher <steven@gcc.gnu.org>
4435 * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
4437 2009-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
4439 * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
4440 override library linkage flags such as -static-libgcc or
4443 2009-06-22 Maxim Kuvyrkov <maxim@codesourcery.com>
4445 * config/m68k/m68k-devices.def: Add line for MCF5221x.
4447 2009-06-22 Ian Lance Taylor <iant@google.com>
4449 * config/linux.opt: Put mglibc ahead of muclibc.
4451 * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
4452 for duplicate decls.
4454 2009-06-22 Matthias Klose <doko@ubuntu.com>
4456 * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
4458 2009-06-22 Steven Bosscher <steven@gcc.gnu.org>
4461 * c-parser.c (c_parser_objc_message_args): Return error_mark_node
4462 instead of NULL if a parser error occurs.
4464 2009-06-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
4466 * dwarf2out.c (dwarf2_debug_hooks): Initialize
4467 non-DWARF2_DEBUGGING_INFO version.
4469 2009-06-22 Kai Tietz <kai.tietz@onevision.com>
4471 * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
4472 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
4474 * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
4475 (LIBGCC2_TF_CEXT): Define.
4478 2009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4481 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
4483 2009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4485 * config/arm/arm.c (arm_override_options): Disable
4486 -mcaller-super-interworking and -mcallee-super-interworking.
4487 * doc/invoke.texi (ARM Options): Document this.
4489 2009-06-22 Nathan Sidwell <nathan@codesourcery.com>
4491 * config/arm/arm.c (arm_print_operand): Deal with HIGH.
4492 * config/arm/constraints.md (j): New constraint for movw operands.
4493 (N): Remove thumb2 meaning.
4494 * config/arm/arm.md (*arm_movw): Delete.
4495 (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
4496 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
4497 * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
4499 2009-06-22 Martin Jambor <mjambor@suse.cz>
4501 PR tree-optimization/40492
4502 * tree-sra.c (sra_modify_assign): Pass zero offsets to
4503 build_ref_for_offset.
4505 2009-06-22 Shujing Zhao <pearly.zhao@oracle.com>
4507 * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
4508 JUMP_TABLE_DATA_P predicates where applicable.
4509 * auto-inc-dec.c: Ditto.
4510 * builtins.c: Ditto.
4511 * caller-save.c: Ditto.
4513 * cfgcleanup.c: Ditto.
4514 * cfglayout.c: Ditto.
4517 * combine-stack-adj.c: Ditto.
4523 * dwarf2asm.c: Ditto.
4524 * dwarf2out.c: Ditto.
4525 * emit-rtl.c: Ditto.
4531 * function.c: Ditto.
4534 * genpreds.c: Ditto.
4535 * genrecog.c: Ditto.
4537 * ira-costs.c: Ditto.
4538 * ira-lives.c: Ditto.
4541 * lower-subreg.c: Ditto.
4542 * modulo-sched.c: Ditto.
4544 * postreload.c: Ditto.
4545 * print-rtl.c: Ditto.
4554 * sched-vis.c: Ditto.
4556 * sel-sched-ir.c: Ditto.
4557 * simplify-rtx.c: Ditto.
4558 * targhooks.c: Ditto.
4559 * var-tracking.c: Ditto.
4560 * vmsdbgout.c: Ditto.
4562 2009-06-22 Matthias Klose <doko@ubuntu.com>
4564 * Makefile.in (install-plugin): Always use DESTDIR.
4566 2009-06-22 Olivier Hainque <hainque@adacore.com>
4568 * config/pa/pa.c (output_call): Don't optimize post call jumps
4569 into return address adjustments if the call may throw.
4571 2009-06-21 Richard Earnshaw <rearnsha@arm.com>
4573 * arm.c (thumb1_output_casesi): New function.
4574 * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
4575 optimizing for size or PIC.
4576 (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
4577 * arm.md (UNSPEC_THUMB1_CASESI): New constant.
4578 (casesi): Handle Thumb-1 when optimizing for size or PIC.
4579 (thumb1_casesi_internal_pic): New expand rule.
4580 (thumb1_casesi_dispatch): New pattern.
4581 * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
4583 * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
4584 in the text seciton when PIC or optimizing for size.
4585 * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
4586 * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
4587 preservation properties of code.
4588 (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
4589 (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
4590 (__gnu_thumb1_case_si): New function.
4591 * t-arm (LIB1ASMSRC): Define here.
4592 (LIB1ASMFUNCS): Add some common functions.
4593 * t-arm-elf (LIB1ASMSRC): Delete.
4594 (LIB1ASMFUNCS): Append to existing set.
4595 * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
4596 * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
4597 * t-symbian (LIB1ASMFUNCS): Likewise.
4598 * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
4599 * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
4601 2009-06-21 Richard Guenther <rguenther@suse.de>
4603 PR tree-optimization/38729
4604 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
4605 to loops with a single exit if -fno-expensive-optimizations.
4607 2009-06-21 Jakub Jelinek <jakub@redhat.com>
4609 * var-tracking.c (struct shared_hash_def, shared_hash): New types.
4610 (dataflow_set): Change vars type from htab_t to shared_hash.
4611 (shared_hash_pool, empty_shared_hash): New variables.
4612 (vars_clear): Removed.
4613 (shared_hash_shared, shared_hash_htab, shared_hash_copy,
4614 shared_hash_find_slot_unshare, shared_hash_find_slot,
4615 shared_hash_find_slot_noinsert, shared_hash_find): New
4617 (shared_hash_unshare, shared_hash_destroy): New functions.
4618 (unshare_variable): Unshare set->vars if shared, use
4620 (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
4621 (get_init_value, find_src_set_src, dump_dataflow_set,
4622 clobber_variable_part, emit_notes_for_differences): Use
4624 (dataflow_set_init): Remove second argument, set vars to
4625 empty_shared_hash instead of creating a new htab.
4626 (dataflow_set_clear): Call shared_hash_destroy and set vars
4627 to empty_shared_hash instead of calling vars_clear.
4628 (dataflow_set_copy): Don't call vars_copy, instead just share
4629 the src htab with dst.
4630 (variable_union): Use shared_hash_*, use initially NO_INSERT
4631 lookup if set->vars is shared. Don't keep slot cleared before
4632 calling unshare_variable. Unshare set->vars if needed.
4633 Even ->refcount == 1 vars must be unshared if set->vars is shared
4634 and var needs to be modified.
4635 (variable_canonicalize): New function.
4636 (dataflow_set_union): If dst->vars is empty, just share src->vars
4637 with dst->vars and traverse with variable_canonicalize to canonicalize
4638 and unshare what is needed.
4639 (dataflow_set_different): If old_set and new_set use the same shared
4640 htab, they aren't different. If number of htab elements is different,
4641 htabs are different. Use shared_hash_*.
4642 (dataflow_set_destroy): Call shared_hash_destroy instead of
4644 (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
4645 second argument to dataflow_set_init.
4646 (vt_initialize): Likewise. Initialize shared_hash_pool and
4647 empty_shared_hash, move bb in/out initialization afterwards.
4648 Use variable_htab_free instead of NULL as changed_variables del hook.
4649 (variable_was_changed): Change type of second argument to pointer to
4650 dataflow_set. When inserting var into changed_variables, bump
4651 refcount. Unshare set->vars if set is shared htab and slot needs to
4653 (set_variable_part): Use shared_hash_*, use initially NO_INSERT
4654 lookup if set->vars is shared. Unshare set->vars if needed.
4655 Even ->refcount == 1 vars must be unshared if set->vars is shared
4656 and var needs to be modified. Adjust variable_was_changed caller.
4657 (delete_variable_part): Use shared_hash_*. Even ->refcount == 1
4658 vars must be unshared if set->vars is shared and var needs to be
4659 modified. Adjust variable_was_changed caller.
4660 (emit_note_insn_var_location): Don't pool_free var.
4661 (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
4663 (vt_finalize): Call htab_delete on empty_shared_hash->htab and
4664 free_alloc_pool on shared_hash_pool.
4666 2009-06-20 Anthony Green <green@moxielogic.com>
4668 * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
4669 * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
4671 2009-06-20 Richard Guenther <rguenther@suse.de>
4673 * tree-ssa-structalias.c (find_func_aliases): For memset use
4674 a constraint from NULL if we memset to zero.
4675 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
4676 we explicitly handle that do not read from memory.
4677 (call_may_clobber_ref_p_1): Properly handle builtins that may
4680 2009-06-20 Richard Guenther <rguenther@suse.de>
4682 PR tree-optimization/40495
4683 * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
4684 (new_scalar_tmp_constraint_exp): New function.
4685 (process_constraint): Do not create temporary decls.
4686 (process_all_all_constraints): Likewise.
4687 (handle_const_call): Likewise.
4688 (create_function_info_for): Do not set decl.
4690 2009-06-19 Ian Lance Taylor <iant@google.com>
4692 * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
4693 (rs6000_attribute_table): Make static; move before use.
4695 2009-06-19 Eric Botcazou <ebotcazou@adacore.com>
4697 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
4698 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
4699 Propagate the TREE_READONLY flag without overwriting it.
4700 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
4701 Propagate the TREE_READONLY flag onto the result.
4702 (process_call_operands): Move around. Use correct constant value.
4704 2009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4707 * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
4708 * config/arm/arm.md: Likewise.
4710 2009-06-19 Ian Lance Taylor <iant@google.com>
4712 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
4713 to GIMPLE_ERROR_MARK.
4715 * c-typeck.c (build_conditional_expr): Add op1_original_type and
4716 op2_original_type parameters. Warn about using different enum types.
4717 * c-parser.c (c_parser_conditional_expression): Pass original
4718 types to build_conditional_expr.
4719 * c-tree.h (build_conditional_expr): Update declaration.
4721 2009-06-19 Ian Lance Taylor <iant@google.com>
4723 * config/i386/i386.c (ix86_function_specific_save): Test that
4724 fields match values, rather than testing the values are in a
4727 2009-06-19 Richard Guenther <rguenther@suse.de>
4729 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
4731 (ptr_derefs_may_alias_p): Likewise.
4732 (ptr_deref_may_alias_ref_p_1): New function.
4733 (ptr_deref_may_alias_ref_p): Likewise.
4734 (ref_maybe_used_by_call_p_1): Handle builtins that are not
4735 covered by looking at the ESCAPED solution.
4736 (call_may_clobber_ref_p_1): Likewise.
4737 * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
4738 Handle NULL_TREE offset. Do not produce redundant constraints.
4739 (process_all_all_constraints): New helper function.
4740 (do_structure_copy): Use it.
4741 (handle_lhs_call): Likewise.
4742 (find_func_aliases): Handle some builtins with pointer arguments
4743 and/or return values explicitly.
4745 2009-06-19 Ian Lance Taylor <iant@google.com>
4747 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
4749 2009-06-19 Ian Lance Taylor <iant@google.com>
4751 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
4753 2009-06-19 Ian Lance Taylor <iant@google.com>
4755 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
4756 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
4759 * c-decl.c (finish_decl): If -Wc++-compat, warn about
4760 uninitialized const.
4762 2009-06-19 Ian Lance Taylor <iant@google.com>
4764 * dse.c (struct store_info): Rename bitmap field to bmap. Change
4767 * c-decl.c (in_struct, struct_types): Remove.
4768 (struct c_binding): Add in_struct field.
4769 (c_binding_ptr): Define type, along with VEC.
4770 (struct c_struct_parse_info): Define.
4771 (struct_parse_info): New static variable.
4772 (bind): Initialize in_struct field.
4773 (start_struct): Remove enclosing_in_struct and
4774 enclosing_struct_types parameters. Add
4775 enclosing_struct_parse_info parameter. Change all callers. Set
4776 struct_parse_info rather than in_struct and struct_types.
4777 (grokfield): If -Wc++-compat and there is a symbol binding for the
4778 field name, set the in_struct flag and push it on the
4779 struct_parse_info->fields vector.
4780 (warn_cxx_compat_finish_struct): New static function.
4781 (finish_struct): Remove enclosing_in_struct and
4782 enclosing_struct_types parameters. Add
4783 enclosing_struct_parse_info parameter. Change all callers. Don't
4784 set C_TYPE_DEFINED_IN_STRUCT here. Call
4785 warn_cxx_compat_finish_struct. Free struct_parse_info and set to
4786 parameter. Only push on struct_types if warn_cxx_compat.
4787 (finish_enum): Only push on struct_types if warn_cxx_compat.
4788 (declspecs_add_type): Add loc parameter. Change all callers.
4789 Change all error calls to error_at. Pass loc, not input_location,
4790 to pedwarn calls. Warn if -Wc++-compat and a typedef name is
4791 defined in a struct. If -Wc++-compat and parsing a struct, record
4792 that a typedef name was used.
4793 * c-parser.c (c_parser_declspecs): Get location to pass to
4795 (c_parser_struct_or_union_specifier): Update calls to start_struct
4797 * c-tree.h (struct c_struct_parse_info): Declare.
4798 (finish_struct, start_struct): Update declarations.
4799 (declspecs_add_type): Update declaration.
4801 2009-06-19 Ian Lance Taylor <iant@google.com>
4803 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
4804 variable with an anonymous type.
4806 2009-06-19 Uros Bizjak <ubizjak@gmail.com>
4808 * see.c: Remove for real.
4810 2009-06-19 Uros Bizjak <ubizjak@gmail.com>
4812 * optabs.h (enum optab_index): Add new OTI_significand.
4813 (significand_optab): Define corresponding macro.
4814 * optabs.c (init_optabs): Initialize significand_optab.
4815 * genopinit.c (optabs): Implement significand_optab using
4816 significand?f2 patterns.
4817 * builtins.c (expand_builtin_mathfn): Handle
4818 BUILT_IN_SIGNIFICAND{,F,L}.
4819 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
4820 expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4822 * config/i386/i386.md (significandxf2, significand<mode>2): New
4823 expanders to implement significandf, significand and significandl
4824 built-ins as inline x87 intrinsics.
4826 2009-06-18 Anatoly Sokolov <aesok@post.ru>
4828 * config/avr/avr.c (avr_override_options): Remove setting value of
4829 PARAM_INLINE_CALL_COST.
4831 2009-06-18 Richard Henderson <rth@redhat.com>
4834 * tree-pass.h (TDF_ASMNAME): New.
4835 * tree-dump.c (dump_options): Add asmname.
4836 * doc/invoke.texi: Document it.
4838 * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
4839 (dump_decl_name): ...here.
4840 (dump_function_name): New flags arg; mind TDF_ASMNAME.
4841 (dump_generic_node): Update dump_function_name calls.
4842 (print_call_name): New flags arg; update all dump calls.
4843 * diagnostic.h (print_call_name): Update.
4844 * gimple-pretty-print.c (dump_gimple_call): Update.
4846 2009-06-18 H.J. Lu <hongjiu.lu@intel.com>
4849 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
4851 2009-06-18 Diego Novillo <dnovillo@google.com>
4853 * doc/plugins.texi: Document plugin_is_GPL_compatible.
4854 * plugin.c (str_license): Declare.
4855 (try_init_one_plugin): Assert that the symbol
4856 'plugin_is_GPL_compatible' exists.
4858 2009-06-18 Sergei Dyshel <sergeid@il.ibm.com>
4861 * Makefile.in (OBJS-common): Remove see.o.
4863 * common.opt (fsee): Mark as preserved for backward compatibility.
4864 * opts.c (common_handle_option): Add OPT_fsee to the backward
4865 compatibility section.
4866 * passes.c (init_optimization_passes, pass_see): Remove pass.
4867 * timevar.def (TV_SEE): Remove.
4868 * tree-pass.h (pass_see): Remove declaration.
4869 * doc/invoke.texi (-fsee): Remove documentation.
4871 2009-06-18 Martin Jambor <mjambor@suse.cz>
4873 * tree-sra.c: Include statistics.h
4874 (sra_stats): New variable.
4875 (sra_initialize): Clear sra_stats.
4876 (create_access_replacement): Increment sra_stats.replacements.
4877 (get_access_replacement): Do not return twice.
4878 (analyze_all_variable_accesses): Increment statistics counter by the
4879 number of scalarized aggregates.
4880 (generate_subtree_copies): Increment sra_stats.subtree_copies.
4881 (sra_modify_expr): Increment sra_stats.exprs.
4882 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
4883 (sra_modify_assign): Increment sra_stats.exprs,
4884 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
4885 (perform_intra_sra): Update statistics counters.
4886 * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
4888 2009-06-18 Sandra Loosemore <sandra@codesourcery.com>
4890 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
4891 (arm_scalar_mode_supported_p): New function.
4893 2009-06-18 Paul Brook <paul@codesourcery.com>
4894 Sandra Loosemore <sandra@codesourcery.com>
4896 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
4897 (__extendhfsf2, __truncsfhf2): Define.
4898 * config/arm/fp16.c: New file.
4899 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
4900 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
4902 2009-06-18 Sandra Loosemore <sandra@codesourcery.com>
4904 * doc/extend.texi (Half-Precision): New section.
4905 * doc/invoke.texi (Option Summary): List -mfp16-format.
4906 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format.
4907 * config/arm/arm.opt (mfp16-format=): New.
4908 * config/arm/arm.c: Include intl.h.
4909 (TARGET_INVALID_PARAMETER_TYPE): Redefine.
4910 (TARGET_INVALID_RETURN_TYPE): Redefine.
4911 (TARGET_PROMOTED_TYPE): Redefine.
4912 (TARGET_CONVERT_TO_TYPE): Redefine.
4913 (arm_fp16_format): Define.
4914 (all_fpus): Add entry for neon-fp16.
4915 (fp_model_for_fpu): Likewise.
4916 (struct fp16_format): Declare.
4917 (all_fp16_formats): Define.
4918 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
4920 (arm_override_options): Set arm_fp16_format. Call sorry for fp16
4922 (arm_legitimate_index_p): Treat HFmode like HImode.
4923 (thumb1_legitimate_address_p): Make it recognize HFmode constants.
4924 (coproc_secondary_reload_class): Special-case HFmode.
4925 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
4926 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
4927 (arm_init_fp16_builtins): New.
4928 (arm_init_builtins): Call it.
4929 (arm_invalid_parameter_type): New.
4930 (arm_invalid_return_type): New.
4931 (arm_promoted_type): New.
4932 (arm_convert_to_type).
4933 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16
4935 (arm_emit_fp16_const): New function.
4936 (arm_mangle_type): Mangle __fp16 as "Dh".
4937 * config/arm/arm.h (TARGET_VFPD32): Make it know about
4939 (TARGET_NEON_FP16): New.
4940 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
4941 (enum fputype): Add FPUTYPE_NEON_FP16.
4942 (enum arm_fp16_format_type): Declare.
4943 (arm_fp16_format): Declare.
4944 (LARGEST_EXPONENT_IS_NORMAL): Define.
4945 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
4946 * config/arm/arm-modes.def (HFmode): Define.
4947 * config/arm/vfp.md: (*movhf_vfp): New.
4950 * config/arm/arm.md: (fpu): Add neon_fp16.
4951 (floatsihf2, floatdihf2): New.
4952 (fix_trunchfsi2, fix_trunchfdi2): New.
4956 (*arm32_movhf): New.
4957 (*thumb1_movhf): New.
4958 (consttable_2): Add check for HFmode constants.
4959 (consttable_4): Handle HFmode constants.
4961 2009-06-18 Uros Bizjak <ubizjak@gmail.com>
4963 * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
4965 2009-06-17 Olivier Hainque <hainque@adacore.com>
4967 * collect2.c (main): Use CONST_CAST2 to perform char ** to
4968 const char ** conversion in AIX specific section.
4970 2009-06-17 H.J. Lu <hongjiu.lu@intel.com>
4972 * config/i386/i386.c (ix86_special_builtin_type): Remove
4973 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED.
4974 (bdesc_special_args): Updated.
4975 (ix86_init_mmx_sse_builtins): Likewise.
4976 (ix86_expand_special_args_builtin): Likewise.
4978 2009-06-17 Richard Henderson <rth@redhat.com>
4980 * tree-pretty-print.c (maybe_dump_asm_name): New.
4981 (dump_decl_name): Use it.
4982 (PRINT_FUNCTION_NAME): Merge into...
4983 (dump_function_name): ... here. Use maybe_dump_asm_name.
4985 2009-06-17 Cary Coutant <ccoutant@google.com>
4987 * dbxout.c (dbxout_source_line): Add is_stmt parameter.
4989 * debug.c (struct gcc_debug_hooks): Change placeholder for
4991 (debug_nothing_int_charstar_int): Replaced by...
4992 (debug_nothing_int_charstar_int_bool): ...this.
4993 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
4994 source_line prototype.
4995 (debug_nothing_int_charstar_int): Replaced by...
4996 (debug_nothing_int_charstar_int_bool): ...this.
4997 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
4998 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
4999 Output is_stmt operand when necessary.
5000 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
5001 (notice_source_line): Add is_stmt parameter.
5002 * sdbout.c (sdbout_source_line): Add is_stmt parameter.
5003 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
5005 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
5006 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
5008 2009-06-17 Ian Lance Taylor <iant@google.com>
5010 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
5012 (struct store_by_pieces_d): Rename from store_by_pieces. Change
5015 2009-06-17 Adam Nemet <anemet@caviumnetworks.com>
5017 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
5018 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
5019 tree_strip_sign_nop_conversions and
5020 tree_ssa_strip_useless_type_conversions rather than stripping
5021 the operations here.
5022 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
5024 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
5025 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
5026 * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
5027 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
5030 2009-06-17 Michael Eager <eager@eagercon.com>
5032 * config/rs6000/constraints.md (register_constraint "d"): New.
5033 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
5034 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
5035 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
5036 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
5037 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
5038 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
5039 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
5040 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
5041 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
5042 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
5044 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
5045 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
5046 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
5047 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
5048 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
5049 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
5050 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
5051 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
5052 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
5053 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
5054 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
5055 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
5056 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
5057 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
5059 2009-06-16 Ian Lance Taylor <iant@google.com>
5061 * profile.c (total_num_never_executed): Don't define.
5062 (compute_branch_probabilities): Don't count or print
5064 (init_branch_prob): Don't set total_num_never_executed.
5065 (end_branch_prob): Don't print total_num_never_executed.
5067 2009-06-17 David Daney <ddaney@caviumnetworks.com>
5069 * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
5071 2009-06-17 David Edelsohn <edelsohn@gnu.org>
5073 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
5074 (nabstd2_fpr): Same.
5076 2009-06-17 Steve Ellcey <sje@cup.hp.com>
5078 * expr.c (expand_assignment): Change complex type check.
5080 2009-06-17 Basile Starynkevitch <basile@starynkevitch.net>
5082 * doc/plugins.texi (Building GCC plugins): Added new section.
5084 2009-06-17 Ian Lance Taylor <iant@google.com>
5086 * c-pch.c (get_ident): Don't set size of templ array.
5087 (pch_init): Don't set size of partial_pch array.
5089 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
5090 string constant to intialize an array whose size is the length of
5093 2009-06-17 Richard Guenther <rguenther@suse.de>
5095 PR tree-optimization/40389
5096 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
5097 to addressable types.
5098 * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
5100 2009-06-17 Richard Guenther <rguenther@suse.de>
5103 * tree-chrec.h (build_polynomial_chrec): If we cannot determine
5104 if there is no evolution of left in the loop bail out.
5105 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
5106 chrec_fold_multiply.
5108 2009-06-16 J"orn Rennecke <joern.rennecke@arc.com>
5109 Janis Johnson <janis187@us.ibm.com>
5112 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
5113 for the symbol ref of a constant that is the source of a move
5114 - nor for any other not-obvious-label-ref constants.
5116 2009-06-16 Olatunji Ruwase <tjruwase@google.com>
5118 * plugin.c (position_pass): Skip newly inserted pass during list
5119 traversal to avoid repeated insertion.
5121 2009-06-16 Ian Lance Taylor <iant@google.com>
5123 * vec.h (VEC_stack_alloc): Define different version if
5124 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
5125 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
5126 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
5127 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
5129 2009-06-16 H.J. Lu <hongjiu.lu@intel.com>
5131 * config.gcc (extra_headers): Add ia32intrin.h for x86.
5133 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
5134 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
5135 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
5136 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
5137 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
5138 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
5139 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
5140 (bdesc_special_args): Add __builtin_ia32_rdtsc and
5141 __builtin_ia32_rdtscp.
5142 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
5143 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
5144 and __builtin_ia32_rorhi.
5145 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
5146 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
5147 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
5148 (ix86_expand_args_builtin): Likewise.
5149 (ix86_expand_special_args_builtin): Likewise.
5151 * config/i386/i386.md (UNSPECV_RDTSCP): New.
5152 (UNSPECV_RDTSC): Likewise.
5153 (UNSPECV_RDPMC): Likewise.
5154 (*bsr): Renamed to ...
5156 (*bsr_rex64): Renamed to ...
5160 (*rdpmc_rex64): Likewise.
5163 (*rdtsc_rex64): Likewise.
5165 (*rdtscp): Likewise.
5166 (*rdtscp_rex64): Likewise.
5168 * config/i386/ia32intrin.h: New.
5170 * config/i386/x86intrin.h: Include <ia32intrin.h>.
5172 2009-06-16 Ian Lance Taylor <iant@google.com>
5174 * ira-build.c (copy_info_to_removed_store_destinations):
5175 Initialize parent_a.
5177 2009-06-16 Ian Lance Taylor <iant@google.com>
5179 * c-decl.c (grokdeclarator): Change size_varies to bool.
5181 2009-06-16 Ian Lance Taylor <iant@google.com>
5183 * sel-sched.c: Make forward declarations of move_op_hooks and
5184 fur_hooks explicitly extern.
5186 2009-06-16 Ian Lance Taylor <iant@google.com>
5188 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
5189 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
5191 2009-06-16 Ian Lance Taylor <iant@google.com>
5193 * resource.c (mark_referenced_resources): Change
5194 include_delayed_effects parameter to bool. Change all callers.
5195 (mark_end_of_function_resources): Likewise.
5196 * reorg.c (insn_references_resource_p): Likewise.
5197 (insn_sets_resource_p): Likewise.
5198 * resource.h (mark_referenced_resources): Update declaration.
5199 (mark_end_of_function_resources): Update declaration.
5201 2009-06-16 David Edelsohn <edelsohn@gnu.org>
5203 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
5205 2009-06-16 David Edelsohn <edelsohn@gnu.org>
5207 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
5208 GCC can bootstrap on AIX with GNU Binutils 2.20.
5210 2009-06-16 Ian Lance Taylor <iant@google.com>
5212 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
5214 2009-06-16 Ian Lance Taylor <iant@google.com>
5216 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
5217 inline, not extern inline.
5218 (exact_log2): Likewise.
5219 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
5221 (exact_log2): Likewise, but don't test CTZ_HWI.
5223 2009-06-16 Ian Lance Taylor <iant@google.com>
5225 * bitmap.c (bitmap_clear): Don't declare as inline.
5226 * gimple.c (gimplify_assign): Likewise.
5227 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
5228 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
5229 (sched_scan_info): Remove duplicate definition.
5231 2009-06-16 Ian Lance Taylor <iant@google.com>
5233 * c-common.c (skip_evaluation): Don't define.
5234 (c_inhibit_evaluation_warnings): Define global variable.
5235 (overflow_warning): Check c_inhibit_evaluation_warnings rather
5236 than skip_evaluation.
5237 (convert_and_check, warn_for_div_by_zero): Likewise.
5238 * c-common.h (skip_evaluation): Don't declare.
5239 (c_inhibit_evaluation_warnings): Declare.
5240 * c-parser.c (c_parser_typeof_specifier): Set
5241 c_inhibit_evaluation_warnings rather than skip_evaluation.
5242 (c_parser_conditional_expression): Likewise.
5243 (c_parser_binary_expression): Likewise.
5244 (c_parser_sizeof_expression): Likewise.
5245 (c_parser_alignof_expression): Likewise.
5246 * c-typeck.c (build_indirect_ref): Check
5247 c_inhibit_evaluation_warnings rather than skip_evaluation.
5248 (build_conditional_expr, build_binary_op): Likewise.
5250 2009-06-16 Richard Guenther <rguenther@suse.de>
5252 * tree-ssa-alias.c (is_escape_site): Remove.
5253 * tree-ssa-alias.h (enum escape_type): Remove.
5254 (is_escape_site): Likewise.
5255 * tree-ssa-structalias.c (find_func_aliases): Handle escapes
5256 via casts and asms without deferring to is_escape_site.
5258 2009-06-16 Jakub Jelinek <jakub@redhat.com>
5261 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
5262 use gen_lowpart if op0 has complex mode.
5264 2009-06-16 Richard Guenther <rguenther@suse.de>
5266 * tree-ssa-structalias.c (do_ds_constraint): Stores in global
5267 variables add them to ESCAPED.
5268 (find_func_aliases): Do not make all indirectly stored values escaped.
5270 2009-06-16 Rafael Avila de Espindola <espindola@google.com>
5272 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
5275 2009-06-16 Martin Jambor <mjambor@suse.cz>
5277 PR tree-optimization/40432
5278 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
5279 check whether we need to force gimple register operand.
5281 2009-06-16 Martin Jambor <mjambor@suse.cz>
5283 PR tree-optimization/40413
5284 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
5285 build_ref_for_offset.
5286 (propagate_subacesses_accross_link): Fix a typo in a comment.
5288 2009-06-16 Ira Rosen <irar@il.ibm.com>
5290 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
5291 with additional parameter.
5292 * tree-vectorizer.h (enum vect_def_type): Add new value
5294 (enum vect_relevant): Add comments.
5295 (vect_is_simple_reduction): Add new argument.
5296 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
5297 Detect nested cycles.
5298 (vect_is_simple_reduction): Update documentation, add an argument to
5299 distinguish inner-loop reduction from nested cycle, detect nested
5300 cycles, fix printings and indentation, don't swap operands in case
5302 (get_initial_def_for_reduction): Handle subtraction.
5303 (vect_create_epilog_for_reduction): Add new argument to specify
5305 (vect_finalize_reduction): Handle subtraction, fix comments.
5306 (vectorizable_reduction): Handle nested cycles. In case of nested
5307 cycle keep track of the reduction variable position. Call
5308 vect_is_simple_reduction with additional parameter. Use original
5309 statement code in reduction epilogue for nested cycle. Call
5310 vect_create_epilog_for_reduction with additional parameter.
5311 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
5312 inner-loop vectorization.
5313 (vect_recog_widen_sum_pattern): Likewise.
5314 * tree-vect-stmts.c (process_use): Distinguish between nested cycles
5316 (vect_mark_stmts_to_be_vectorized): Likewise.
5317 (vect_get_vec_def_for_operand): Handle nested cycles.
5319 2009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
5321 * doc/invoke.texi (Debugging Options): Fix option index entries
5322 for -fdump-statistics, -frandom-seed add entries for
5323 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
5324 (FRV Options): Fix entries for -mTLS, -mtls.
5325 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
5326 (i386 and x86-64 Options): Fix entry for -mno-red-zone.
5327 (M68hc1x Options): Fix @itemx for -mnominmax.
5328 (MCore Options): Fix entry for -mno-lsim.
5329 (MMIX Options): Fix entry for -mabi=mmixware.
5330 (PDP-11 Options): Fix entry for -mbcopy-builtin.
5332 2009-06-16 Basile Starynkevitch <basile@starynkevitch.net>
5334 * doc/plugins.texi (Interacting with the GCC Garbage Collector):
5335 Mention the plugin mode of gengtype.
5336 * doc/gty.texi (Source Files Containing Type Information): Likewise.
5337 * gengtype.c: Updated copyright.
5338 (plugin_files, nb_plugin_files) Added new static variables.
5339 (measure_input_list) Care about plugin_files.
5340 (write_rtx_next): Added early return in plugin mode.
5341 (create_file): Updated copyright year in generated file. Added
5343 (oprintf): Added early return if NULL outf.
5344 (get_output_file_with_visibility): Care of plugin_files.
5345 (get_output_file_name): May return null.
5346 (write_local): Added early return.
5347 (put_mangled_filename): Ditto.
5348 (finish_root_table): Added check for base_files.
5349 (write_roots): Care about null when plugins.
5350 (main): Added plugin mode.
5352 2009-06-15 Ian Lance Taylor <iant@google.com>
5354 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
5355 * gcov.c (read_count_file): Add braces around variables declared
5358 * c.opt (Wjump-misses-init): New warning.
5359 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
5360 -Wall and -Wc++-compat if not already set.
5361 (c_common_post_options): Clear warn_jump_misses_init if it was not
5363 * c-decl.c (struct c_binding): Change type field to a union with
5364 new label field. Make it the first field in the struct. Update
5365 references to type to use u.type instead.
5366 (struct c_spot_bindings): Define.
5367 (struct c_goto_bindings): Define.
5368 (c_goto_bindings_p): Define, along with VECs.
5369 (struct c_label_vars): Define.
5370 (struct c_scope): Add has_label_bindings field.
5371 (bind_label, set_spot_bindings): New static functions.
5372 (decl_jump_unsafe, update_spot_bindings): New static functions.
5373 (update_label_decls): New static function.
5374 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope.
5375 Update binding u.label field to shadowed field.
5376 (c_binding_start_stmt_expr): New function.
5377 (c_binding_end_stmt_expr): New function.
5378 (pushdecl): Don't call c_begin_vm_scope.
5379 (make_label): Add defining and p_label_vars parameters. Change
5381 (lookup_label): Correct test for whether a label has not yet been
5382 defined. Call bind_label rather than bind.
5383 (warn_about_goto): New static function.
5384 (lookup_label_for_goto): New function.
5385 (declare_label): Call bind_label rather than bind.
5386 (check_earlier_gotos): New static function.
5387 (define_label): Don't give errors about jumping into statement
5388 expressions or scopes of variably modified types. Call
5389 set_spot_bindings and check_earlier_gotos. Call bind_label
5390 instead of bind. Don't set label_context_stack_se or
5391 label_context_stack_vm.
5392 (c_get_switch_bindings): New function.
5393 (c_release_switch_bindings): New function.
5394 (c_check_switch_jump_warnings): New function.
5395 (start_function): Don't set label_context_stack_se or
5396 label_context_stack_vm.
5397 (finish_function): Likewise.
5398 * c-typeck.c (label_context_stack_se): Don't define.
5399 (label_context_stack_vm): Don't define.
5400 (c_finish_goto_label): Call lookup_label_for_goto rather than
5401 lookup_label. Don't give errors about jumping into a statement
5402 expression or the scope of a variably modified type. Don't set
5403 label_context_stack_se or label_context_stack_vm.
5404 (struct c_switch): Remove blocked_stmt_expr and blocked_vm
5405 fields. Add bindings field.
5406 (c_start_case): Don't set deleted fields. Set bindings field.
5407 (do_case): Rework order of tests. Don't check blocked_stmt_expr
5408 or blocked_vm. Call c_check_switch_jump_warnings.
5409 (c_finish_case): Don't test blocked_stmt_expr field. Call
5410 c_release_switch_bindings.
5411 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
5412 c_switch_stack. Don't walk label_context_stack_se labels. Don't
5413 set label_context_stack_se. Call c_bindings_start_stmt_expr.
5414 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
5415 c_switch_stack. Don't walk label_context_stack_se labels. Don't
5416 set label_context_stack_se. Call c_bindings_end_stmt_expr.
5417 (c_begin_vm_scope, c_end_vm_scope): Don't define.
5418 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
5419 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
5420 (C_DECL_UNJUMPABLE_VM): Don't define.
5421 (C_DECL_UNDEFINABLE_VM): Don't define.
5422 (struct c_label_list): Don't define.
5423 (struct c_label_context_se): Don't define.
5424 (struct c_label_context_vm): Don't define.
5425 (struct c_spot_bindings): Declare.
5426 (c_bindings_start_stmt_expr): Declare.
5427 (c_bindings_end_stmt_expr): Declare.
5428 (lookup_label_for_goto): Declare.
5429 (c_get_switch_bindings, c_release_switch_bindings): Declare.
5430 (c_check_switch_jump_warnings): Declare.
5431 (label_context_stack_se, label_context_stack_vm): Don't declare.
5432 (c_finish_goto_label): Update declaration.
5433 (c_begin_vm_scope, c_end_vm_scope): Don't declare.
5434 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
5435 (Warning Options): Document -Wjump-misses-init.
5437 2009-06-15 Jakub Jelinek <jakub@redhat.com>
5439 * tree-object-size.c (addr_object_size): Fix a pasto in the last
5442 2009-06-15 Rafael Avila de Espindola <espindola@google.com>
5444 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
5446 2009-06-15 Aldy Hernandez <aldyh@redhat.com>
5448 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
5450 2009-06-15 Aldy Hernandez <aldyh@redhat.com>
5452 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
5454 2009-06-15 Rafael Avila de Espindola <espindola@google.com>
5456 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
5457 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
5458 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
5459 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
5460 * dwarf2asm.c (dw2_force_const_mem): Update call to
5462 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
5463 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
5464 * langhooks.c (lhd_comdat_group): Remove.
5465 * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
5466 * tree.h (DECL_COMDAT_GROUP): New.
5467 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
5468 (tree_decl_with_vis): Add comdat_group. Remove one_only.
5469 (make_decl_one_only): Change signature.
5470 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
5472 (make_decl_one_only): Change signature.
5473 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
5475 2009-06-15 Richard Guenther <rguenther@suse.de>
5478 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
5480 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5482 * tree-ssa-math-opts.c: Remove extra divide.
5484 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5486 * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
5488 2009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5490 * passes.c: Add bswap pass.
5491 * tree-pass.h: Add pass_optimize_bswap declaration.
5492 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
5493 Include rtl.h, expr.h and optabs.h for optab_handler check.
5494 (struct symbolic_number, pass_optimize_bswap): New definition.
5495 (do_shift_rotate, verify_symbolic_number_p): New functions.
5496 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
5497 (gate_optimize_bswap): New function.
5498 * tree.c (widest_int_cst_value): New function.
5499 * tree.h (widest_int_cst_value): Prototype added.
5501 2009-06-14 Steven Bosscher <steven@gcc.gnu.org>
5503 * cfgcleanup.c (old_insns_match_p): Remove code to substitute
5504 REG_EQUAL/REG_EQUIV notes.
5506 2009-06-14 Richard Guenther <rguenther@suse.de>
5509 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
5510 has its address taken if NRV was applied and it is addressable.
5511 * tree-ssa-structalias.c (get_constraint_for_address_of): New
5512 function split out from ...
5513 (get_constraint_for_1): ... here.
5514 (handle_rhs_call): Use it to mark the return slot escaped if
5515 it is addressable and NRV was applied.
5517 2009-06-13 Aldy Hernandez <aldyh@redhat.com>
5519 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
5520 Change first argument type to location_t.
5521 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
5522 Do not set input_location.
5523 Use loc instead of input_location throughout.
5525 2009-06-13 Richard Guenther <rguenther@suse.de>
5527 PR tree-optimization/40421
5528 * tree-predcom.c (should_unroll_loop_p): Remove.
5529 (tree_predictive_commoning_loop): Use can_unroll_loop_p.
5531 2009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
5533 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5534 Add location argument.
5536 2009-06-13 Aldy Hernandez <aldyh@redhat.com>
5538 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
5540 * config/s390/s390.c (s390_build_builtin_va_list): Same.
5541 (s390_gimplify_va_arg): Pass location to create_artificial_label.
5542 * config/spu/spu-protos.h: Add location to
5543 spu_resolve_overloaded_builtin.
5544 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
5545 spu_build_builtin_va_list.
5546 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
5547 argument. Pass location to build_function_call_vec.
5548 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
5550 (emit_fpu_switch): Same.
5551 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
5552 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
5553 to build_decl and create_artificial_label.
5554 (xtensa_gimplify_va_arg_expr): Same.
5555 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
5556 (xstormy16_gimplify_va_arg_expr): Same.
5557 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
5558 * config/arm/arm.c (arm_build_builtin_va_list): Same.
5559 * config/mips/mips.c (mips_build_builtin_va_list): Same.
5560 (mips16_build_function_stub): Same.
5561 (mips16_build_call_stub): Same.
5563 2009-06-13 Richard Earnshaw <rearnsha@arm.com>
5566 * arm/constraints.md (Pa, Pb): New constraints.
5567 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a
5568 split pattern to deal with them.
5570 2009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de>
5572 * doc/invoke.texi: Add missing option -Wp,OPTION in list,
5573 fix index entry for -Xpreprocessor.
5575 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
5577 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5578 Add location argument to build_decl call.
5579 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
5580 (rs6000_init_builtins): Same.
5581 (spe_init_builtins): Same.
5582 (rs6000_gimplify_va_arg): Add location argument to
5583 create_artificial_label call.
5585 2009-06-12 Steven Bosscher <steven@gcc.gnu.org>
5587 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
5588 * combine-stack-adj.c (pass_stack_adjustments): Use it.
5589 * Makefile.in: Fix GGC dependency for gcse.o.
5591 2009-06-12 Aldy Hernandez <aldyh@redhat.com>
5593 * tree-pretty-print.c (dump_generic_node): Dump column numbers.
5594 * gimple-pretty-print.c (dump_gimple_stmt): Same.
5595 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
5597 * c-parser.c (c_parser_binary_expression): Use current column while
5598 building binary operations.
5599 * common.opt (fshow-column): Enable by default.
5600 * tree-vrp.c (check_array_ref): Use warning_at.
5601 (check_array_bounds): Use location from call back if expr has no
5603 * tree.h: Add location argument to maybe_fold_*.
5604 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
5605 (maybe_fold_offset_to_array_ref): Add location argument and use it.
5606 (maybe_fold_offset_to_component_ref): Same.
5607 (maybe_fold_offset_to_reference): Same.
5608 (maybe_fold_offset_to_address): Same.
5609 (maybe_fold_stmt_indirect): Same.
5610 (maybe_fold_stmt_addition): Same.
5611 (fold_stmt_r): Pass location to maybe_fold_*.
5612 (fold_gimple_assign): Same.
5613 * c-tree.h: Add location argument to finish_decl,
5614 default_function_array_conversion, store_init_value.
5615 * c-decl.c (define_label): Use error_at.
5616 (c_make_fname_decl): Pass location to finish_decl.
5617 (finish_decl): New location argument.
5618 (build_compound_literal): Pass location to store_init_value.
5619 (grokdeclarator): Pass location to finish_decl.
5621 * c-typeck.c (array_to_pointer_conversion): New location argument.
5622 (function_to_pointer_conversion): Same.
5623 (default_function_array_conversion): Same.
5624 (parser_build_unary_op): Pass location to overflow_warning.
5625 (parser_build_binary_op): Same. Use warning_at.
5626 (build_unary_op): Pass location to array_to_pointer_conversion.
5627 (build_c_cast): Pass location to digest_init.
5628 (build_modify_expr): New location argument.
5629 (convert_for_assignment): Same.
5630 (store_init_value): Same.
5631 (digest_init): Same.
5632 (output_init_element): Pass location to digest_init and
5633 array_to_pointer_conversion.
5634 (c_finish_return): Pass location to convert_for_assignment.
5635 * gimplify.c (gimplify_conversion): Pass location to
5636 maybe_fold_offset_to_address.
5637 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
5638 to maybe_fold_stmt_addition.
5639 * c-omp.c (c_finish_omp_atomic): Pass new location to
5641 (c_finish_omp_for): Same.
5642 * c-common.c (overflow_warning): New argument.
5643 * c-common.h: New argument to build_modify_expr, overflow_warning.
5644 * c-parser.c (c_parser_declaration_or_fndef): Pass location to
5646 (c_parser_initializer): Pass location to
5647 default_function_array_conversion.
5648 (c_parser_initelt): Same.
5649 (c_parser_initval): Same.
5650 (c_parser_asm_operands): Same.
5651 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr.
5652 (c_parser_conditional_expression): Same.
5653 (c_parser_binary_expression): Add location info to stack. Use it.
5654 (c_parser_unary_expression): Pass location to
5655 default_function_array_conversion, parser_build_unary_op,
5656 build_indirect_ref, c_parser_postfix_expression_after_primary.
5657 (c_parser_postfix_expression_after_primary): New location argument.
5659 (c_parser_expression_conv): Pass location to
5660 default_function_array_conversion.
5661 (c_parser_expr_list): Same.
5662 (c_parser_omp_atomic): Same.
5663 (c_parser_omp_for_loop): Same.
5664 * c-tree.h: (struct c_declarator): Add comment to id_loc.
5665 (build_array_declarator): New argument.
5666 * c-decl.c (build_array_declarator): Add location argument.
5667 (grokdeclarator): Set id_loc for cdk_array.
5668 * c-parser.c (c_parser_direct_declarator_inner): Pass location to
5669 build_array_declarator.
5670 * tree.c (build_omp_clause): Add location argument.
5671 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
5672 (OMP_CLAUSE_LOCATION): New macro.
5673 (struct tree_omp_clause): Add location field.
5674 (build_omp_clause): Add argument.
5675 * testsuite/gcc.dg/gomp/for-1.c: Fix column.
5676 * cp/pt.c (tsubst_omp_for_iterator): Pass location to
5678 * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
5679 (cp_parser_omp_clause_collapse): Same.
5680 (cp_parser_omp_clause_default): Same.
5681 (cp_parser_omp_clause_if): Same.
5682 (cp_parser_omp_clause_nowait): Same.
5683 (cp_parser_omp_clause_num_threads): Same.
5684 (cp_parser_omp_clause_ordered): Same.
5685 (cp_parser_omp_clause_schedule): Same.
5686 (cp_parser_omp_clause_untied): Same.
5687 (cp_parser_omp_for_loop): Same.
5688 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
5689 * c-tree.h (c_start_case): Add location argument.
5690 (c_process_expr_stmt): Same.
5691 (c_finish_goto_*): Same.
5692 * tree-parloops.c (initialize_reductions): Pass location to
5694 (create_parallel_loop): Same.
5695 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
5696 (gfc_trans_omp_reduction_list): Same.
5697 (gfc_trans_omp_clauses): Same.
5698 (gfc_trans_omp_do): Same.
5699 * c-typeck.c (c_finish_goto_label): Same.
5700 (c_finish_goto_ptr): New location argument.
5701 (c_start_case): Same.
5702 (emit_side_effect_warnings): Same.
5703 (c_process_expr_stmt): Same.
5704 (c_finish_stmt_expr): Same.
5705 (c_finish_omp_clauses): Use error_at instead of error.
5706 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
5708 * c-omp.c (c_split_parallel_clauses): New location argument.
5709 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
5710 to build_omp_clause.
5711 (convert_local_reference_stmt): Same.
5712 (convert_gimple_call): Same.
5713 * c-common.h (c_split_parallel_clauses): New argument.
5714 * c-parser.c (c_parser_statement_after_labels): Pass location to
5715 c_finish_goto_label.
5716 (c_parser_switch_statement): Pass location to c_start_case.
5717 (c_parser_for_statement): Pass location to c_finish_expr_stmt,
5718 and c_process_expr_stmt.
5719 (c_parser_omp_variable_list): Add location argument.
5720 (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
5721 (c_parser_omp_clause_default): Same.
5722 (c_parser_omp_clause_if): Same.
5723 (c_parser_omp_clause_num_threads): Same.
5724 (-c_parser_omp_clause_ordered): Same.
5725 (c_parser_omp_clause_reduction): Pass location to
5726 c_parser_omp_variable_list.
5727 (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
5728 (c_parser_omp_clause_untied): Same.
5729 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
5730 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
5732 * c-tree.h (check_for_loop_decls, undeclared_variable,
5733 build_component_ref, build_array_ref, build_external_ref,
5734 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
5735 build_conditional_expr, build_compound_expr, c_cast_expr,
5736 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
5737 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
5739 * c-semantics.c (build_stmt): Same.
5740 (build_case_label): Same.
5741 * c-decl.c (c_finish_incomplete_decl): Pass location on down.
5742 (undeclared_variable): New argument.
5744 (lookup_label): Pass location on down.
5745 (define_label): Same.
5746 (finish_decl): Same.
5747 (build_compound_literal): Same.
5748 (finish_struct): Same.
5749 (finish_function): Do not set location here.
5750 (check_for_loop_decls): New argument.
5751 * tree.c (save_expr): Set location.
5752 (build_empty_stmt): New argument.
5753 * tree.h (build_empty_stmt): New argument to build_empty_stmt.
5754 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
5755 * builtins.c (gimplify_va_arg_expr): Use locations.
5756 (expand_builtin_sync_operation): Same.
5757 * c-typeck.c (build_component_ref): New argument.
5758 (build_array_ref): Same.
5759 (build_external_ref): Same.
5760 (c_expr_sizeof_expr): Same.
5761 (c_expr_sizeof_type): Same.
5762 (parser_build_unary_op): Same.
5763 (build_conditional_expr): Same.
5764 (build_compound_expr): Pass location on down.
5765 (build_compound_expr): New argument.
5766 (build_c_cast): Same.
5767 (c_cast_expr): Same.
5768 (build_asm_expr): Same.
5769 (c_finish_return): Same.
5770 (c_process_expr_stmt): Pass location on down.
5771 (c_finish_stmt_expr): New argument.
5772 (push_clenaup): Same.
5773 (c_finish_omp_parallel): Same.
5774 (c_finish_omp_task): Same.
5775 * gimplify.c (gimplify_call_expr): Pass location on down.
5776 * c-omp.c (c_finish_omp_master): New argument.
5777 (c_finish_omp_critical): Same.
5778 (c_finish_omp_ordered): Same.
5779 (c_finish_omp_barrier): Same.
5780 (-c_finish_omp_taskwait): Same.
5781 (c_finish_omp_atomic): Same.
5782 (c_finish_omp_flush): Same.
5783 * tree-inline.c (copy_tree_body_r): Pass location on down.
5784 (inline_forbidden_p): Remove use of input_location.
5785 * c-gimplify.c (c_build_bind_expr): New argument.
5786 * c-common.c (c_common_truthvalue_conversion): Pass location on down.
5787 (c_sizeof_or_alignof_type): New argument.
5788 (c_alignof_expr): Same.
5789 (build_va_arg): Same.
5790 (c_add_case_label): Same.
5791 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
5792 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
5793 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
5794 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
5795 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
5796 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
5798 * stub-objc.c (objc_build_selector_expr): Same.
5799 (objc_build_throw_stmt): Same.
5800 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
5801 (c_parser_initelt): Same.
5802 (c_parser_compound_statement): Same.
5803 (c_parser_compound_statement_nostart): Same.
5804 (c_parser_label): Same.
5805 (c_parser_statement_after_labels): Same.
5806 (c_parser_if_body): Same.
5807 (c_parser_else_body): Same.
5808 (c_parser_if_statement): Same.
5809 (c_parser_switch_statement): Same.
5810 (c_parser_while_statement): Same.
5811 (c_parser_do_statement): Same.
5812 (c_parser_for_statement): Same.
5813 (c_parser_asm_statement): Same.
5814 (c_parser_conditional_expression): Same.
5815 (c_parser_binary_expression): Same.
5816 (c_parser_cast_expression): Same.
5817 (c_parser_unary_expression): Same.
5818 (c_parser_sizeof_expression): Same.
5819 (c_parser_alignof_expression): Same.
5820 (c_parser_postfix_expression): Same.
5821 (c_parser_expression): Same.
5822 (c_parser_objc_receiver): Same.
5823 (c_parser_omp_variable_list): Same.
5824 (c_parser_omp_structured_block): Same.
5825 (c_parser_omp_atomic): New argument.
5826 (c_parser_omp_barrier): Same.
5827 (c_parser_omp_critical): Same.
5828 (c_parser_omp_flush): Pass location on down.
5829 (c_parser_omp_for_loop): New argument.
5830 (c_parser_omp_for): Same.
5831 (c_parser_omp_master): Same.
5832 (c_parser_omp_ordered): Same.
5833 (c_parser_omp_sections_scope): Same.
5834 (c_parser_omp_sections): Same.
5835 (c_parser_omp_parallel): Same.
5836 (c_parser_omp_single): Same.
5837 (c_parser_omp_task): Same.
5838 (c_parser_omp_taskwait): Pass location on down.
5839 (c_parser_omp_construct): Same.
5840 (c_parser_omp_threadprivate): Same.
5841 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
5842 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
5843 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
5844 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
5845 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
5846 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
5847 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
5848 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
5849 config/i386/i386.c, stmt.c:
5850 Add location argument to the following function definitions and/or
5851 function calls: build_decl, objcp_start_struct, objcp_finish_struct,
5852 start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
5853 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
5854 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
5855 do_case, c_finish_bc_stmt, build_compound_literal,
5856 build_function_call.
5857 * c-decl.c (build_compound_literal): Add location argument.
5858 Make all diagnostic calls use location.
5859 (start_struct): Same.
5860 (finish_struct): Same.
5862 (build_enumerator): Same.
5863 (start_function): Same.
5864 (grokdeclarator): Make all diagnostic calls use location.
5865 (store_parm_decls_oldstyle): Same.
5866 * c-typeck.c (build_function_call): Add location argument.
5867 Make all diagnostic calls use location.
5869 (c_finish_bc_stmt): Same.
5870 * tree-nested.c (get_trampoline_type): Add argument.
5871 Pass location to build_decl.
5872 (lookup_tramp_for_decl): Pass location to get_trampoline_type.
5873 * rtl.h (RTL_LOCATION): New.
5874 * c-common.c (c_add_case_label): Add location argument.
5875 Make all diagnostic calls use location.
5876 * c-common.h: Add location argument to make_fname_decl, do_case,
5877 c_add_case_label, build_function_call, resolve_overloaded_builtin.
5878 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
5879 Set it appropriately for every case. Pass enum_loc to start_enum
5880 call. Pass value_loc first to build_enumerator. Pass enum_loc to
5882 (c_parser_struct_or_union_specifier): Save location. Use it for
5883 start_struct, finish_struct, and parser_xref_tag.
5885 2009-06-12 Ian Lance Taylor <iant@google.com>
5887 * fold-const.c (fold_unary): Rename local variable and to and_expr.
5889 * c-opts.c (c_common_handle_option): For -Wc++-compat set
5890 cpp_opts->warn_cxx_operator_names.
5892 2009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
5895 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
5896 is returns NULL and OP is a VCE, look through the VCE.
5898 2009-06-12 Ian Lance Taylor <iant@google.com>
5901 * collect2.c (main): Use CONST_CAST2 in code inside #if
5902 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
5904 2009-06-12 Joey Ye <joey.ye@intel.com>
5907 * cfgexpand.c (get_decl_align_unit): Update
5908 max_used_stack_slot_alignment with align instead of
5909 stack_alignment_needed.
5911 * function.c (assign_stack_local_1): Update
5912 max_used_stack_slot_alignment with alignment_in_bits instead
5913 of stack_alignment_needed.
5914 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
5917 2009-06-12 Jakub Jelinek <jakub@redhat.com>
5919 * dwarf2out.c (last_var_location_insn): New variable.
5920 (dwarf2out_end_epilogue): Clear last_var_location_insn.
5921 (dwarf2out_var_location): Don't record anything after last real
5922 insn. Only change labels if there were any real instructions
5923 in between last note and this one, or if changed sections.
5925 2009-06-11 Richard Henderson <rth@redhat.com>
5927 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
5928 note when storing the frame pointer in a register.
5929 (FRP): Don't redefine to nothing for epilogue.
5930 (alpha_expand_epilogue): Mark register and sp restores.
5931 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
5933 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
5934 when gen_lowpart is needed.
5936 2009-06-11 Richard Henderson <rth@redhat.com>
5938 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
5940 * dwarf2out.c (need_data_align_sf_opcode): New.
5941 (div_data_align): Move earlier.
5942 (def_cfa_1, reg_save): Use it.
5944 2009-06-11 H.J. Lu <hongjiu.lu@intel.com>
5946 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
5947 (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
5948 (ix86_handle_option): Handle OPT_mcrc32.
5949 (ix86_target_string): Add -mcrc32.
5950 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
5952 * config/i386/i386.h (TARGET_CRC32): New.
5954 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
5955 (sse4_2_crc32di): Likewise.
5957 * config/i386/i386.opt (mcrc32): New.
5959 * doc/invoke.texi: Document -mcrc32.
5961 2009-06-11 Richard Henderson <rth@redhat.com>
5963 * common.opt (gdwarf-): Accept a version number.
5964 * doc/invoke.texi (gdwarf-): Update docs.
5965 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
5966 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
5967 version level, and record it.
5969 * dwarf2.h (DW_CIE_VERSION): Remove.
5970 * dwarf2out.c (DWARF_VERSION): Remove.
5971 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
5972 (output_call_frame_info): Use CIE version 3 for dwarf3,
5973 or if the return register column is out of range for version 1.
5974 (dwarf_stack_op_name): Add all dwarf3 values.
5975 (DEBUG_PUBTYPES_SECTION): New.
5976 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
5977 encoding change for dwarf3.
5978 (output_die) [dw_val_class_die_ref]: Likewise.
5979 (output_compilation_unit_header): Emit correct version for dwarf3.
5980 (output_line_info): Likewise.
5981 (output_pubnames): Update for DWARF_VERSION removal.
5982 (output_aranges): Likewise.
5983 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
5984 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
5985 (dwarf2out_finish): Likewise.
5987 2009-06-11 David Daney <ddaney@caviumnetworks.com>
5989 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
5992 2009-06-11 David Daney <ddaney@caviumnetworks.com>
5995 * doc/extend.texi ( __builtin_unreachable): Document new builtin.
5996 * builtins.c (expand_builtin_unreachable): New function.
5997 (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
5998 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
5999 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
6001 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
6002 searching for missing barriers.
6004 2009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
6006 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
6007 when -fprofile-generate* was passed.
6008 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
6010 2009-06-11 Anthony Green <green@moxielogic.com>
6012 * config/moxie/moxie.md: Define length attribute for all instructions.
6014 (*b<cond:code>): Support limited branch ranges for new PC-relative
6015 branch instructions.
6016 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
6018 2009-06-11 Jakub Jelinek <jakub@redhat.com>
6020 * config/i386/i386.c (min_insn_size): Use get_attr_length
6021 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
6024 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
6025 instead of emit_insn_before.
6027 2009-06-10 Ian Lance Taylor <iant@google.com>
6030 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
6033 2009-06-10 Revital Eres <eres@il.ibm.com>
6035 * passes.c (init_optimization_passes): Reschedule
6036 predictive-commoning pass before complete unroll pass.
6038 2009-06-10 Martin Jambor <mjambor@suse.cz>
6040 * cgraph.c (cgraph_node_can_be_local_p): New function.
6041 (cgraph_make_node_local): New function.
6042 * cgraph.h (cgraph_node_can_be_local_p): Declare.
6043 (cgraph_make_node_local): Declare.
6045 2009-06-10 Nathan Froyd <froydnj@codesourcery.com>
6047 * tree.h (tree_base): Add packed_flag and user_align fields.
6048 Decrease size of spare field.
6049 (TYPE_USER_ALIGN): Use user_align from tree_base.
6050 (DECL_USER_ALIGN): Likewise.
6051 (TYPE_PACKED): Use packed_flag from tree_base.
6052 (DECL_PACKED): Likewise.
6053 (tree_type): Delete packed_flag and user_align fields. Widen
6054 precision field. Widen mode field and shuffle fields to align
6055 mode on an 8-bit boundary.
6056 (tree_decl_common): Delete decl_flag_1 and user_align fields.
6057 Renumber decl_flag_* fields. Fix comments. Widen
6058 decl_common_unused field.
6059 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
6060 (DECL_EXTERNAL): Likewise.
6061 (DECL_BIT_FIELD): Likewise.
6062 (DECL_NONADDRESSABLE_P): Likewise.
6063 (TYPE_DECL_SUPRESS_DEBUG): Likewise.
6064 * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
6066 2009-06-10 Ian Lance Taylor <iant@google.com>
6068 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
6069 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
6070 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
6071 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
6072 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
6073 DEF_VEC_ALLOC_FUNC_P.
6074 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
6075 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
6076 DEF_VEC_ALLOC_FUNC_O.
6077 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
6078 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
6079 DEF_VEC_ALLOC_FUNC_I.
6080 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
6081 (vec_stack_p_reserve_exact_1): Declare.
6082 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
6083 (vec_stack_free): Declare.
6084 (VEC_stack_alloc): Define.
6085 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
6086 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
6087 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
6088 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P
6090 (stack_vecs): New static variable.
6091 (vec_stack_p_reserve_exact_1): New function.
6092 (vec_stack_o_reserve_1): New static function.
6093 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
6094 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
6095 (vec_stack_free): New function.
6096 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
6097 (VEC_df_ref_stack_alloc): Define.
6098 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and
6099 DEF_VEC_ALLOC_P_STACK.
6100 (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
6101 (struct df_collection_rec): Change _vec fields to VEC. Remove
6103 (df_free_collection_rec): Adjust for new fields.
6104 (df_insn_rescan): Use new df_collection_rec fields.
6105 (df_notes_rescan, df_canonize_collection_rec): Likewise.
6106 (df_ref_create_structure, df_ref_record): Likewise.
6107 (df_get_conditional_uses, df_get_call_refs): Likewise.
6108 (df_insn_refs_collect, df_bb_refs_collect): Likewise.
6109 (df_bb_refs_record, df_record_entry_block_defs): Likewise.
6110 (df_record_exit_block_uses, df_bb_verify): Likewise.
6111 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers.
6112 (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
6113 Remove count parameter. Change return type to void. Change all
6115 (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
6116 Remove count parameter. Change return type to void. Change all
6118 (df_install_refs): Change old_vec parameter to VEC. Remove count
6119 parameter. Change all callers.
6120 (df_install_mws): Change old_vec parameter to VEC. Remove count
6121 parameter. Change all callers.
6122 (df_refs_verify): Change new_rec parameter to VEC. Change call
6124 (df_mws_verify): Likewise.
6126 2009-06-10 Alexandre Oliva <aoliva@redhat.com>
6128 * gcc.c (compare_files): Cast munmap argumento to caddr_t.
6130 2009-06-10 H.J. Lu <hongjiu.lu@intel.com>
6132 * doc/extend.texi: Add description for __builtin_ia32_crc32di.
6134 2009-06-10 Anthony Green <green@moxielogic.com>
6136 * config/moxie/crti.asm: New file.
6137 * config/moxie/crtn.asm: New file.
6138 * config/moxie/moxie.c: New file.
6139 * config/moxie/moxie.h: New file.
6140 * config/moxie/sfp-machine.h: New file.
6141 * config/moxie/moxie-protos.h: New file.
6142 * config/moxie/t-moxie: Created.
6143 * config/moxie/t-moxie-softfp: Created.
6144 * config/moxie/moxie.md: Created.
6145 * config/moxie/constraints.md: Created.
6146 * config.gcc: Add moxie support.
6147 * doc/md.texi (Machine Constraints): Add moxie constraints.
6148 * doc/contrib.texi (Contributors): Mention moxie port.
6149 * doc/install.texi (Specific): Mention the moxie port.
6151 2009-06-09 Ian Lance Taylor <iant@google.com>
6153 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
6155 * optabs.c (optab_table): Only use designated initializers if
6156 HAVE_DESIGNATED_INITIALIZERS is defined.
6157 (convert_optab_table): Likewise.
6158 (init_optabs): Always call init_insn_codes if
6159 HAVE_DESIGNATED_INITIALIZERS is not defined.
6161 2009-06-09 Ian Lance Taylor <iant@google.com>
6163 * targhooks.c (default_builtin_vectorized_function): Change fn
6164 parameter to unsigned int.
6165 (default_builtin_vectorized_conversion): Change code parameter to
6167 (default_builtin_reciprocal): Change fn parameter to unsigned int.
6168 * targhooks.h: Update declarations.
6169 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
6170 parameter to unsigned int.
6172 * c-typeck.c (comptypes_check_enum_int): New static function.
6173 (comptypes_internal): Add enum_and_int_p parameter. Change all
6175 (comp_target_types): Add location parameter. Change all callers.
6176 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
6178 (function_types_compatible_p, type_lists_compatible_p): Likewise.
6179 (build_conditional_expr): Add colon_loc parameter. Change all
6181 (convert_for_assignment): Add location parameter. Change all callers.
6182 * c-parser.c (c_parser_conditional_expression): Pass location of
6183 colon to build_conditional_expr.
6184 * c-tree.h (build_conditional_expr): Update declaration.
6186 2009-06-09 Sebastian Pop <sebastian.pop@amd.com>
6188 * graphite.c: Revert previous patch.
6190 2009-06-09 Sebastian Pop <sebastian.pop@amd.com>
6193 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
6195 2009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com>
6197 * tree-ssa-loop-prefetch.c
6198 (loop_prefetch_arrays): Fixed a portability problem in printf format
6201 2009-06-09 Martin Jambor <mjambor@suse.cz>
6203 PR tree-optimization/40351
6204 * tree-sra.c (propagate_subacesses_accross_link): Check that a
6205 refrence to a potential artifical subaccess can be constructed.
6207 2009-06-08 Kaz Kojima <kkojima@gcc.gnu.org>
6209 * config/sh/sh-protos.h (sh_optimization_options): Declare.
6210 (sh_override_options): Likewise.
6211 * config/sh/sh.c: Include params.h.
6212 (sh_optimization_options): New.
6213 (sh_override_options): Likewise.
6214 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
6215 (OVERRIDE_OPTIONS): Use sh_override_options.
6217 2009-06-08 Jakub Jelinek <jakub@redhat.com>
6219 * dwarf2out.c (emit_cfa_remember): New variable.
6220 (add_fde_cfi): If emit_cfa_remember, recurse to add
6221 DW_CFA_remember_state first.
6222 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
6223 instead just set emit_cfa_remember.
6225 2009-06-08 Jan Hubicka <jh@suse.cz>
6228 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
6230 2009-06-08 Jan Hubicka <jh@suse.cz>
6233 * cgraphunit.c (save_inline_function_body): Do not copy transform
6234 hooks for saved inline bodies.
6235 * ipa-passes.c (do_per_function): Do not add the hoks multiple times
6238 2009-06-08 Adam Nemet <anemet@caviumnetworks.com>
6240 * jump.c (returnjump_p): Handle delayed branches. Add missing
6243 2009-06-08 Jan Hubicka <jh@suse.cz>
6246 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
6247 original node might've been modified.
6248 * tree-inline.c (copy_bb): Do not assume that all clones are the same.
6250 2009-06-08 Jakub Jelinek <jakub@redhat.com>
6252 * tree-object-size.c (addr_object_size): Add OSI argument.
6253 Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
6254 (compute_builtin_object_size, expr_object_size): Adjust callers.
6255 (plus_stmt_object_size): Call addr_object_size instead of
6256 compute_builtin_object_size.
6258 2009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com>
6259 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
6261 * tree-ssa-loop-prefetch.c
6262 (gather_memory_references): Introduced a counter for the number of
6264 (anything_to_prefetch_p): Introduced a counter for the number of
6266 (is_loop_prefetching_profitable): New function with a cost model
6268 (loop_prefetch_arrays): Use the new cost model to determine if
6269 prefetching is profitable.
6270 * params.def (MIN_INSN_TO_PREFETCH_RATIO,
6271 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
6272 * params.h (MIN_INSN_TO_PREFETCH_RATIO,
6273 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
6274 * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO,
6275 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
6277 2009-06-08 Michael Matz <matz@suse.de>
6280 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
6281 partitions use the same.
6282 (expand_one_var): Deal with DECL_RTL sometimes begin set also
6283 for basevars of SSA_NAMEs.
6284 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
6285 to not expand them twice.
6286 (gimple_expand_cfg): Clear DECL_RTL for those decls that have
6289 2009-06-08 Alexandre Oliva <aoliva@redhat.com>
6291 * common.opt (fcompare-debug=, fcompare-debug-second): New.
6292 (fdump-final-insns=, gtoggle): New.
6293 * doc/invoke.texi: Document them.
6294 * final.c (rest_of_clean_state): Dump final insn stream.
6295 * gcc.c (invoke_as): Hook in -fcompare-debug.
6296 (static_spec_functions): Add compare-debug-dump-opt,
6297 compare-debug-self-opt and compare-debug-auxbase-opt.
6298 (compare_debug, compare_debug_second, compare_debug_opt): New.
6299 (switches_debug_check, n_switches_debug_check): New.
6300 (debug_auxbase_opt, debug_check_temp_file): New.
6301 (process_command): Handle -fno-compare-debug, -fcompare-debug and
6303 (do_self_spec): Handle arguments after switches.
6304 (do_spec_1): Add .gk extension to temp file basenames for compare.
6305 (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
6306 (cc1_options): Use it instead of normal auxbase computation for
6307 the second compare-debug compilation.
6308 (compare_files): New.
6309 (main): Set up and implement compare debug mode.
6310 (compare_debug_dump_opt_spec_function): New.
6311 (compare_debug_self_opt_spec_function): New.
6312 (compare_debug_auxbase_opt_spec_function): New.
6313 * toplev.c (process_options): Handle flag_gtoggle,
6314 flag_dump_final_insns.
6315 * coverage.c (coverage_begin_output): Don't overwrite .gcno file
6316 during -fcompare-debug-second compilation.
6318 2009-06-07 Ian Lance Taylor <iant@google.com>
6320 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
6321 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
6323 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
6324 with no default node. Change warning with %H to warning_at.
6325 Don't clear warn_switch around case checking.
6326 * doc/invoke.texi (Warning Options): Clarify distinction between
6327 -Wswitch and -Wswitch-enum.
6329 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6331 * tree-pass.h (TODO_update_ssa_any): Document internal use only.
6333 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6335 * gbl-ctors.h: Add header guard.
6337 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6339 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
6340 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
6341 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
6342 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
6343 prototypes for removed functions.
6344 (expressions_equal_p): Move to ...
6345 * tree-ssa-sccvn.h: ... here and ...
6346 * matrix-reorg.c: ... adjust includes.
6348 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6350 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
6352 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6354 * c-decl.c (finish_decl): Use bool for variable was_incomplete.
6355 (finish_function): Remove erroneous whitespace.
6357 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6359 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
6360 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
6362 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6364 * errors.c (internal_error): Commentary typo fix.
6365 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
6366 * tree-ssa-pre.c: Ditto.
6368 2009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6370 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
6371 them is supposed to hold actual statements.
6373 2009-06-06 Ian Lance Taylor <iant@google.com>
6375 * doc/extend.texi (Attribute Syntax): Document that C++ labels on
6376 empty statements can now have attributes.
6378 2009-06-05 Shujing Zhao <pearly.zhao@oracle.com>
6380 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
6381 * config/mips/mips.md: Ditto.
6383 2009-06-05 Nathan Froyd <froydnj@codesourcery.com>
6385 * config/rs6000/eabi.asm (__eabi_convert): Don't define if
6387 (__eabi_uconvert): Likewise.
6389 2009-06-05 Nathan Froyd <froydnj@codesourcery.com>
6391 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
6392 CFI_* definitions with IN_GCC.
6394 2009-06-05 David Edelsohn <edelsohn@gnu.org>
6396 * xcoffout.h (xcoffout_source_line): Update prototype.
6398 2009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6400 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
6401 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
6403 2009-06-05 Jakub Jelinek <jakub@redhat.com>
6406 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
6407 inlined_function_outer_scope_p blocks for artificial inlines
6409 * tree.c (tree_nonartificial_location): Rewrite using
6410 block_nonartificial_location.
6412 2009-06-05 Revital Eres <eres@il.ibm.com>
6413 Leehod Baruch <leehod@il.ibm.com>
6415 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
6416 (expand_expr_real_1): Remove comment.
6417 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
6418 Vectorize misaligned access when the target supports it.
6419 (vect_supportable_dr_alignment): Check for unaligned access support.
6420 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
6423 2009-06-05 Julian Brown <julian@codesourcery.com>
6425 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
6426 * config/arm/ieee754-sf.S (cmpsf2): Likewise.
6428 2009-06-05 Richard Guenther <rguenther@suse.de>
6431 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
6434 2009-06-05 Jakub Jelinek <jakub@redhat.com>
6436 * config/s390/s390.c (global_not_special_regno_p): New static inline.
6437 (save_gprs): Don't tell unwinder when a global register is saved.
6438 (s390_emit_epilogue): Emit needed epilogue unwind info.
6440 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
6442 * dwarf2out.c (deferred_asm_name): New.
6443 (add_name_and_src_coords_attributes): Defer creation of
6444 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
6446 (move_linkage_attr): New.
6447 (dwarf2out_finish): Revisit deferrals and emit attributes at the
6450 2009-06-05 Alexandre Oliva <aoliva@redhat.com>
6452 * tree-nested.c (finalize_nesting_tree_1): Declare the
6453 frame_decl in the binding tree.
6455 2009-06-04 Cary Coutant <ccoutant@google.com>
6457 * basic-block.h (struct basic_block_def): Add discriminator field.
6458 * dbxout.c (dbxout_source_line): Add new parameter. Change all
6460 * debug.c (do_nothing_debug_hooks): Add additional entry.
6461 (debug_nothing_int_charstar_int): New function.
6462 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
6463 (debug_nothing_int_charstar_int): New declaration.
6464 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write
6465 discriminator value in .loc directive.
6466 * final.c (last_discriminator): New variable.
6467 (discriminator): New variable.
6468 (final_start_function): Initialize above variables, pass current
6469 discriminator to debug hook.
6470 (notice_source_line): Check for discriminator change.
6471 * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
6472 * sdbout.c (sdbout_source_line): New parameter.
6473 * tree-cfg.c (struct locus_discrim_map): New structure type.
6474 (discriminator_per_locus): New hash table.
6475 (build_gimple_cfg): Allocate and free discriminator hash table.
6476 (make_edges): Call assign_discriminator.
6477 (locus_map_hash): New function.
6478 (locus_map_eq): New function.
6479 (next_discriminator_for_locus): New function.
6480 (same_line_p): New function.
6481 (assign_discriminator): New function.
6482 (make_cond_expr_edges): Call assign_discriminator.
6483 (make_gimple_switch_edges): Likewise.
6484 (first_non_label_stmt): New function.
6485 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change
6487 * xcoffout.c (xcoffout_source_line): Add new parameter.
6489 * configure.ac (gcc_cv_as_discriminator): New configury check for
6490 gas support for discriminator.
6491 * configure: Regenerate.
6492 * config.in: Regenerate.
6494 2009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6496 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
6497 val after checking for integers.
6499 2009-06-04 Uros Bizjak <ubizjak@gmail.com>
6501 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
6503 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
6504 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
6505 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
6506 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
6507 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of
6508 X64_SSE_REGPARM_MAX.
6509 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
6510 X64_SSE_REGPARM_MAX.
6512 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
6514 * gcc.c (report_times_to_file): New.
6515 (execute): Implement it.
6516 (process_command): Support -time=.
6517 * doc/invoke.texi: Document it.
6519 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
6521 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
6522 that have value exprs.
6524 2009-06-04 Alexandre Oliva <aoliva@redhat.com>
6526 * dwarf2asm.c (dw2_force_const_mem): Defer creation of
6527 declarations for constants until...
6528 (dw2_output_indirect_constant_1): ... this point.
6530 2009-06-04 Richard Earnshaw <rearnsha@arm.com>
6533 * arm.md (arm_addsi3): Don't try to split an add with an
6534 eliminable register until after reload has completed.
6536 2009-06-03 Ian Lance Taylor <iant@google.com>
6538 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
6539 * genattrtab.c (write_length_unit_log): Likewise.
6540 * genchecksum.c (dosum): Likewise.
6541 * gengtype.c (write_rtx_next): Likewise.
6542 (finish_root_table, write_roots): Likewise.
6543 * gimple.c (gimple_ops_offset_): Likewise.
6544 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
6545 * config/arc/arc.c (arc_attribute_table): Likewise.
6546 * config/arm/arm.c (arm_attribute_table): Likewise.
6547 * config/avr/avr.c (avr_attribute_table): Likewise.
6548 * config/crx/crx.c (crx_attribute_table): Likewise.
6549 * config/m32r/m32r.c (m32r_attribute_table): Likewise.
6550 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
6551 * config/mcore/mcore.c (mcore_attribute_table): Likewise.
6552 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
6553 * config/sh/sh.c (sh_attribute_table): Likewise.
6554 * config/sparc/sparc.c (sparc_attribute_table): Likewise.
6555 * config/spu/spu.c (spu_attribute_table): Likewise.
6556 * config/v850/v850.c (v850_attribute_table): Likewise.
6558 * config/alpha/alpha.c (vms_attribute_table): Make static.
6559 * config/bfin/bfin.c (bfin_attribute_table): Likewise.
6560 * config/h8300/h8300.c (h8300_attribute_table): Likewise.
6561 * config/mips/mips.c (mips_attribute_table): Likewise.
6563 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
6565 (cc1-checksum.o): Likewise.
6567 2009-06-03 Steve Ellcey <sje@cup.hp.com>
6569 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
6571 2009-06-03 Jakub Jelinek <jakub@redhat.com>
6573 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
6574 insn if it is changing sp. Use gen_add3_insn instead of
6575 conditionally gen_addsi3 and gen_adddi3.
6576 (offset_below_red_zone_p): New static inline function.
6577 (rs6000_emit_epilogue): Emit needed epilogue unwind info.
6578 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
6579 * config/rs6000/ppc-asm.h: Include auto-host.h.
6580 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
6581 CFI_RESTORE): Define.
6582 * config/rs6000/crtresxgpr.asm: Add unwind info.
6583 * config/rs6000/crtresxfpr.asm: Likewise.
6584 * config/rs6000/crtresgpr.asm: Likewise.
6585 * config/rs6000/crtresfpr.asm: Likewise.
6586 * config/rs6000/crtsavgpr.asm: Likewise.
6587 * config/rs6000/crtsavfpr.asm: Likewise.
6589 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
6590 argument of DWARF2_FRAME_REG_OUT macros.
6592 2009-06-03 Julian Brown <julian@codesourcery.com>
6594 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
6595 words or less (including TImode) in core registers.
6597 2009-06-03 Richard Guenther <rguenther@suse.de>
6600 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
6602 2009-06-03 Andrey Belevantsev <abel@ispras.ru>
6604 * statistics.c (statistics_counter_event): Do not record event
6605 in pass dump if its number == -1.
6606 (curr_statistics_hash): Add assert that we never get passes
6607 with static number == -1.
6609 2009-06-03 Richard Guenther <rguenther@suse.de>
6610 Andrey Belevantsev <abel@ispras.ru>
6612 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only
6613 non-BLKmode arrays addressable.
6615 2009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com>
6617 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
6618 * config/m68k/m68k.h: ... here.
6619 * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
6622 2009-06-03 Martin Jambor <mjambor@suse.cz>
6624 PR tree-optimization/40323
6625 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
6628 2009-06-03 Richard Guenther <rguenther@suse.de>
6630 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
6633 2009-06-03 Shujing Zhao <pearly.zhao@oracle.com>
6635 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
6636 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
6637 JUMP_TABLE_DATA_P where applicable.
6638 * config/sh/sh.c: Ditto.
6639 * config/sh/sh.h: Ditto.
6640 * config/sh/sh.md: Ditto.
6641 * config/sh/symbian.c: Ditto.
6643 2009-06-03 Uros Bizjak <ubizjak@gmail.com>
6645 * config/i386/driver-i386.c (describe_cache): Optimize
6646 concatenation of strings. Use snprintf instead of sprintf.
6647 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native
6648 target when not compiling with GCC.
6650 2009-06-02 Kaz Kojima <kkojima@gcc.gnu.org>
6652 * config/sh/sh.c: Revert last change.
6653 (sh_expand_epilogue): Emit a blockage insn before the frame
6654 pointer adjustment unconditionally.
6656 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
6658 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
6659 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
6660 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
6661 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
6662 to COLLECT_GCC_OPTIONS.
6664 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
6666 * collect2.c (target_system_root): New variable.
6667 (main): Handle --sysroot=.
6668 (ignore_library): Strip the sysroot from the library path.
6670 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
6672 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
6673 (collect2.o): Depend on collect2-aix.h.
6674 (collect2-aix.o): New rule.
6675 * collect2-aix.h: New file.
6676 * collect2-aix.c: Likewise.
6677 * collect2.c: Include collect2-aix.h. Don't undefine
6678 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
6679 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
6680 Use TARGET_AIX_VERSION instead of _AIX51.
6681 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
6682 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
6683 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
6684 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
6685 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
6687 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
6689 * collect2.c (ignore_library): Avoid premature post-increment
6692 2009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com>
6694 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
6695 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
6696 !CROSS_DIRECTORY_STRUCTURE alternative and use it for
6697 CROSS_DIRECTORY_STRUCTURE too.
6698 (LINK_LIBG_SPEC): Likewise.
6699 (LIB_SPEC): Add %R to sysroot paths.
6700 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
6701 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
6702 * config/rs6000/aix51.h: As for aix43.h.
6703 * config/rs6000/aix52.h: Likewise.
6704 * config/rs6000/aix53.h: Likewise.
6705 * config/rs6000/aix61.h: Likewise.
6706 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
6707 to the beginning of sysroot paths.
6709 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
6711 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
6712 INSN_LISTs that are out of the REG_NOTE range.
6714 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
6716 * loop-unroll.c (struct iv_to_split): Add pointer to next.
6717 (struct var_to_expand): Likewise.
6718 (struct opt_info): Add head and tail for linked lists of the above.
6719 (analyze_insn_to_expand_var): Initialize next.
6720 (analyze_iv_to_split_insn): Likewise.
6721 (analyze_insns_in_loop): Create linked lists.
6722 (allocate_basic_variable): Simplify for use without hash table.
6723 (insert_var_expansion_initialization): Likewise, make it type-safer.
6724 (combine_var_copies_in_loop_exit): Likewise.
6725 (apply_opt_in_copies): Walk lists rather than hash tables.
6726 (release_var_copies): Simplified and inlined by hand into...
6727 (free_opt_info): ... this function.
6729 2009-06-02 Richard Guenther <rguenther@suse.de>
6731 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
6734 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
6736 * cfgexpand.c (gimple_expand_cfg): Discard the source location
6737 only for builtins that are not overridden.
6739 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
6741 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
6744 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
6746 * df-core.c (df_ref_debug): Honor -fdump-noaddr.
6748 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
6750 * combine.c (move_deaths): Compare LUIDs within the same BB only.
6752 2009-06-02 Alexandre Oliva <aoliva@redhat.com>
6754 * common.opt (fdump-unnumbered-links): New.
6755 * doc/invoke.texi (-fdump-unnumbered-links): Document it.
6756 * print-rtl.c (flag_dump_unnumbered_links): New.
6757 (print_rtx): Test it.
6759 2009-06-02 Richard Earnshaw <rearnsha@arm.com>
6761 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
6762 push/pop multiple to 8-byte alignment.
6764 2009-06-01 Jakub Jelinek <jakub@redhat.com>
6766 * config/i386/i386.c (queued_cfa_restores): New static variable.
6767 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
6769 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
6770 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
6771 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
6772 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
6773 note unconditionally.
6774 (ix86_emit_restore_regs_using_mov): Likewise.
6775 (ix86_emit_restore_sse_regs_using_mov): Likewise.
6776 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
6777 it through to ix86_emit_restore_reg_using_pop.
6778 (ix86_emit_leave): Add RED_OFFSET argument. Call
6779 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note
6780 instead of adding REG_CFA_OFFSET note unconditionally.
6781 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
6782 the above functions. Call ix86_add_queued_cfa_restore_notes when
6785 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
6786 force output of the label even for dwarf2out_do_cfi_asm.
6787 (add_fde_cfi): If -g2 and above and cfi might change CFA,
6788 force creation of CFI label and chain DW_CFA_set_loc jumping to it
6789 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label
6791 (dwarf2out_stack_adjust, dwarf2out_frame_debug,
6792 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
6793 dwarf2out_cfi_label callers.
6794 * tree.h (dwarf2out_cfi_label): Adjust prototype.
6795 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
6796 Adjust dwarf2out_cfi_label callers.
6797 * config/vax/vax.c (vax_output_function_prologue): Likewise.
6799 * config/i386/i386.h (struct machine_cfa_state,
6800 struct machine_function): Guard with ifndef USED_FOR_TARGET
6801 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
6804 * emutls.c (__emutls_get_address): Change arr->size to mean number
6805 of allocated arr->data entries instead of # of slots + 1.
6808 * recog.c (peep2_reinit_state): New function.
6809 (peephole2_init_state): Use it at the end of a basic block and also
6810 when seeing a RTX_FRAME_RELATED_P insn.
6812 2009-06-01 Steve Ellcey <sje@cup.hp.com>
6814 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
6815 fixuns_truncrfdi2): New.
6816 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
6817 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
6818 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
6819 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
6820 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
6821 *recip_approx): Remove.
6822 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
6823 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
6824 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
6826 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
6829 2009-06-01 Ian Lance Taylor <iant@google.com>
6831 * attribs.c (register_attribute): Use CONST_CAST.
6832 * collect2.c (main): Use CONST_CAST2.
6833 (scan_prog_file): Likewise.
6834 * gcc.c (process_command, main): Likewise.
6835 * toplev.c (toplev_main): Likewise.
6837 * c-typeck.c (handle_warn_cast_qual): New static function,
6838 partially broken out of build_c_cast.
6839 (build_c_cast): Call handle_warn_cast_qual.
6840 * doc/invoke.texi (Warning Options): Document new effect of
6843 2009-06-01 Aldy Hernandez <aldyh@redhat.com>
6845 * diagnostic.c (diagnostic_build_prefix): Always print columns.
6846 (diagnostic_report_current_module): Print columns.
6847 * common.opt (flag_show_column): Enable by default.
6849 2009-06-01 Luis Machado <luisgpm@br.ibm.com>
6851 * alias.c (find_base_term): Check for NULL term before returning.
6853 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
6855 Revert due to PR40320:
6856 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
6857 * calls.c (emit_library_call_value_1): Don't force_operand for move
6860 2009-06-01 Olivier Hainque <hainque@adacore.com>
6861 Eric Botcazou <ebotcazou@adacore.com>
6863 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
6864 to be processed as a bitfield for constructor output purposes.
6865 * output.h (initializer_constant_valid_for_bitfield_p): Declare
6867 * varasm.c (oc_local_state): New type, output_constructor
6868 local state to support communication with helpers.
6869 (oc_outer_state): New type, output_constructor outer state of
6870 relevance in recursive calls.
6871 (output_constructor_array_range): New output_constructor helper,
6872 extracted code for an array range element.
6873 (output_constructor_regular_field): New output_constructor helper,
6874 extracted code for an element that is not a bitfield.
6875 (output_constructor_bitfield): New output_constructor helper,
6876 extracted code for a bitfield element. Accept an OUTER state
6877 argument for recursive processing. Recurse on record or array
6878 CONSTRUCTOR values, possibly past noop conversions.
6879 (initializer_constant_valid_for_bitfield_p): New predicate. Whether
6880 VALUE is a valid constant-valued expression for use in a static
6881 bit-field initializer.
6882 (output_constructor): Rework to use helpers. Accept and honor an
6883 OUTER state argument for recursive calls. Return total size. Be
6884 prepared for nested constructors initializing bitfields.
6885 (output_constant): Feed OUTER in calls to output_constructor.
6887 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com>
6889 * calls.c (emit_library_call_value_1): Don't force_operand for move
6892 2009-06-01 Nick Clifton <nickc@redhat.com>
6894 * doc/invoke.texi (IA-64 Options): Fix typo.
6896 2009-06-01 Ira Rosen <irar@il.ibm.com>
6898 PR tree-optimization/39129
6899 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
6901 (vect_do_peeling_for_loop_bound): Use
6902 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
6903 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
6904 (vect_loop_versioning): Likewise.
6905 (vect_create_cond_for_alias_checks): Fix indentation.
6906 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
6908 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
6909 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
6910 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
6911 "control flow in loop".
6912 (vect_estimate_min_profitable_iters): Use
6913 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
6914 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
6915 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
6916 (vect_create_data_ref_ptr): Don't mention array dimension in printing.
6917 * tree-vect-stmts.c (vectorizable_store): Replace the check that the
6918 statement belongs to a group of strided accesses with the exact code
6920 (vectorizable_load): Likewise.
6921 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
6922 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
6924 2009-06-01 Gerald Pfeifer <gerald@pfeifer.com>
6926 * config/freebsd-stdint.h: New file.
6927 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
6928 Add freebsd-stdint.h to tm_file.
6930 2009-06-01 Richard Earnshaw <rearnsha@arm.com>
6932 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
6933 (thumb2_extendhidi2): Likewise.
6935 2009-05-31 Ian Lance Taylor <iant@google.com>
6937 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
6939 2009-05-31 Ian Lance Taylor <iant@google.com>
6941 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
6942 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
6943 (ipa-reference.o): Depend upon gt-ipa-reference.h.
6945 2009-05-31 Jason Merrill <jason@redhat.com>
6947 * tree-pretty-print.c (print_call_name): Take the callee, not the
6948 call itself. Make non-static. Use dump_function_name for functions.
6949 (dump_generic_node): Adjust.
6950 * diagnostic.h: Declare print_call_name.
6951 * gimple-pretty-print.c (dump_gimple_call): Use it.
6953 2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
6955 * config/sh/sh.md (ashldi3_std): New define_expand.
6958 2009-05-31 Kaz Kojima <kkojima@gcc.gnu.org>
6961 * config/sh/sh.c: Include debug.h.
6962 (sh_expand_epilogue): Emit a blockage insn before the frame
6963 pointer adjustment also when dwarf2out_do_frame returns true.
6965 2009-05-31 Richard Earnshaw <rearnsha@arm.com>
6967 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
6968 (thumb2_extendqidi2): New pattern.
6970 2009-05-31 Ira Rosen <irar@il.ibm.com>
6972 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
6973 mark phis for renaming.
6974 * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
6975 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
6976 Call mark_sym_for_renaming.
6977 * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
6978 * tree-vect-loop.c (vect_transform_loop): Remove
6979 vect_memsyms_to_rename initialization and a call to
6980 mark_set_for_renaming.
6982 2009-05-31 Jakub Jelinek <jakub@redhat.com>
6985 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
6986 frame related even if !set_cfa && style < 0.
6988 2009-05-30 Kai Tietz <kai.tietz@onevision.com>
6990 * config/i386/mingw-tls.c: New file.
6991 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
6992 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
6993 defining _WIN32 but not __CYGWIN__.
6995 2009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6997 * configure.ac: Add MPC support.
6999 * config.in, configure: Regenerate.
7001 2009-05-29 Richard Henderson <rth@redhat.com>
7003 * cfgcleanup.c (try_crossjump_to_edge): Only skip past
7004 NOTE_INSN_BASIC_BLOCK.
7005 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
7006 Duplicate NOTE_INSN_EPILOGUE_BEG notes.
7007 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
7009 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
7011 (add_cfi): Disable check redefining cfa away from drap.
7012 (lookup_cfa_1): Add remember argument; handle remember/restore.
7013 (lookup_cfa): Pass remember argument.
7014 (cfa_remember): New.
7015 (compute_barrier_args_size_1): Remove sibcall check.
7016 (dwarf2out_frame_debug_def_cfa): New.
7017 (dwarf2out_frame_debug_adjust_cfa): New.
7018 (dwarf2out_frame_debug_cfa_offset): New.
7019 (dwarf2out_frame_debug_cfa_register): New.
7020 (dwarf2out_frame_debug_cfa_restore): New.
7021 (dwarf2out_frame_debug): Handle REG_CFA_* notes.
7022 (dwarf2out_begin_epilogue): New.
7023 (dwarf2out_frame_debug_restore_state): New.
7024 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
7025 DW_CFA_restore_state.
7026 (output_cfi_directive): Likewise.
7027 (convert_cfa_to_fb_loc_list): Likewise.
7028 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
7029 * dwarf2out.h: Update.
7030 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
7031 (copy_insn_1): Early out for null.
7032 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
7033 and dwarf2out_frame_debug_restore_state.
7034 * function.c (prologue, epilogue, sibcall_epilogue): Remove.
7035 (prologue_insn_hash, epilogue_insn_hash): New.
7036 (free_after_compilation): Adjust freeing accordingly.
7037 (record_insns): Create hash table if needed; push insns into
7038 hash instead of array.
7039 (maybe_copy_epilogue_insn): New.
7040 (contains): Search hash table instead of array.
7041 (sibcall_epilogue_contains): Remove.
7042 (thread_prologue_and_epilogue_insns): Split eh_return insns
7043 and mark them as epilogues.
7044 (reposition_prologue_and_epilogue_notes): Rewrite epilogue
7045 scanning in terms of basic blocks.
7046 * insn-notes.def (CFA_RESTORE_STATE): New.
7047 * jump.c (returnjump_p_1): Accept EH_RETURN.
7048 (eh_returnjump_p_1, eh_returnjump_p): New.
7049 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
7050 CFA_REGISTER, CFA_RESTORE): New.
7051 * rtl.def (EH_RETURN): New.
7052 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
7054 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
7055 (eh_return_internal): Use eh_return rtx; split w/ epilogue.
7057 * config/i386/i386.c (gen_push): Update cfa state.
7058 (pro_epilogue_adjust_stack): Add set_cfa argument. When true,
7059 add a CFA_ADJUST_CFA note.
7060 (ix86_dwarf_handle_frame_unspec): Remove.
7061 (ix86_expand_prologue): Update cfa state.
7062 (ix86_emit_restore_reg_using_pop): New.
7063 (ix86_emit_restore_regs_using_pop): New.
7064 (ix86_emit_leave): New.
7065 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
7066 (ix86_expand_epilogue): Add notes for unwinding the epilogue.
7067 * config/i386/i386.h (struct machine_cfa_state): New.
7068 (ix86_cfa_state): New.
7069 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
7070 (eh_return_internal): Merge from eh_return_<mode>,
7071 use eh_return rtx, split w/ epilogue.
7073 2009-05-29 Ian Lance Taylor <iant@google.com>
7075 * builtins.c (validate_gimple_arglist): Don't use va_arg with
7077 * calls.c (emit_library_call_value_1): Likewise.
7079 * c-typeck.c (c_build_va_arg): New function.
7080 * c-tree.h (c_build_va_arg): Declare.
7081 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
7082 instead of build_va_arg.
7084 2009-05-29 Eric Botcazou <ebotcazou@adacore.com>
7086 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
7087 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
7088 (ptr_difference_cost): Use affine combinations to compute it.
7089 (difference_cost): Likewise.
7090 (get_computation_cost_at): Compute more accurate cost for addresses
7091 if the ratio is a multiplier allowed in addresses.
7092 For non-addresses, consider that an additional offset or symbol is
7095 2009-05-29 Jakub Jelinek <jakub@redhat.com>
7097 * config/i386/i386.c (ix86_decompose_address): Avoid useless
7098 0 displacement. Add 0 displacement if base is %[er]bp or %r13.
7100 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
7101 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
7102 (prefix_rex): For UNIT_MMX don't imply the prefix by default
7104 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
7105 to 1 for TYPE_SSE{IADD1,CVT1}.
7106 (prefix_vex_imm8): Removed.
7107 (length_vex): Only pass 1 as second argument to
7108 ix86_attr_length_vex_default if prefix_extra is 0.
7109 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
7110 (length): For prefix vex computation use length_immediate
7111 attribute instead of prefix_vex_imm8.
7112 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
7113 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
7114 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
7115 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
7116 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
7117 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
7118 a space in between the operands.
7119 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1
7120 if one operand is 0xff and the other one si, di, bp or sp.
7121 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
7122 other one si, di, bp or sp.
7123 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
7124 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
7125 type and mode attributes.
7126 (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
7127 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
7128 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
7129 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
7130 prefix_data16 attribute iff MODE_DF.
7131 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
7132 (fix_trunc<mode>di_sse): Set prefix_rex attribute.
7133 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
7134 constm128_operand in length_immediate computation.
7135 (*addhi_4): Likewise. Fix mode attribute to MODE_HI.
7136 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
7137 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
7138 length_immediate attribute to 1.
7139 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
7140 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
7141 for certain alternatives.
7142 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
7143 prefix_data16 attribute if MODE_V1DF.
7144 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
7145 length_immediate to 1.
7146 (set_got_rex64, set_rip_rex64): Remove length attribute, set
7147 length_address to 4, set mode attribute to MODE_DI.
7148 (set_got_offset_rex64): Likewise. Set length_immediate to 0.
7149 (fxam<mode>2_i387): Set length attribute to 4.
7150 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
7151 *prefetch_3dnow_rex): Override length_address attribute.
7152 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
7154 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
7155 (constm128_operand): Removed.
7156 * config/i386/i386.c (memory_address_length): For
7157 disp && !index && !base in 64-bit mode account for SIB byte if
7158 print_operand_address can't optimize disp32 into disp32(%rip)
7159 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length
7160 for fs: or gs: segment.
7161 (ix86_attr_length_immediate_default): When checking if shortform
7162 is possible, truncate immediate to the length of the non-shortened
7164 (ix86_attr_length_address_default): Ignore MEM_P operands
7166 (ix86_attr_length_vex_default): Only check for DImode on
7167 GENERAL_REG_P operands.
7168 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
7169 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
7170 (sse_cvttps2pi): Clear prefix_rep attribute.
7171 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
7173 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
7174 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
7175 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
7176 iff operand 2 is const_int_operand.
7177 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
7178 sse2_shufpd_<mode>): Set length_immediate attribute to 1.
7179 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex
7181 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
7183 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
7184 prefix_data16 attribute for movlpd and movhpd instructions.
7185 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override
7186 length_immediate for shufpd instruction.
7187 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
7188 (avx_cmpp<avxmodesuffixf2c><mode>3,
7189 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
7190 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
7191 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
7192 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
7193 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
7194 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
7195 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
7196 prefix_data16 attribute for the first alternative to 1.
7197 (*avx_loadlps): Override length_immediate for the first alternative.
7198 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
7199 attributes for second alternative.
7200 (*vec_concatv2sf_sse4_1): Override length_immediate and
7201 prefix_data16 attributes for second alternative.
7202 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
7203 vec_extract_hi_<mode>, vec_extract_lo_v16hi,
7204 vec_extract_hi_v16hi, vec_extract_lo_v32qi,
7205 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
7206 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
7207 prefix_data16 and length_immediate to 1.
7208 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
7210 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
7211 prefix_extra attribute for variants that don't have 0f prefix alone.
7212 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1.
7213 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
7214 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
7215 *sse4_1_pextrd): Set length_immediate to 1.
7216 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1.
7217 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
7219 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
7220 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
7221 length_immediate to 1 for second alternative.
7222 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
7223 prefix_extra and length_immediate attributes for the first
7225 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
7227 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex
7228 to 1 for the first and third alternative.
7229 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
7231 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
7233 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
7235 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
7236 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
7237 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
7238 *avx_psign<mode>3): Set prefix_extra attribute to 1.
7239 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
7240 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
7241 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
7242 ssse3_psign<mode>3): Override prefix_rex attribute.
7243 (*avx_palignrti): Override prefix_extra and length_immediate to 1.
7244 (ssse3_palignrti): Override length_immediate to 1.
7245 (ssse3_palignrdi): Override length_immediate to 1, override
7246 prefix_rex attribute.
7247 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
7248 (sse4a_extrqi): Override length_immediate to 2.
7249 (sse4a_insertqi): Likewise. Override prefix_data16 to 0.
7250 (sse4a_insertq): Override prefix_data16 to 0.
7251 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
7252 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
7253 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
7254 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
7255 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
7256 and length_immediate to 1.
7257 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
7258 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
7259 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
7260 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
7261 and length_immediate to 1.
7262 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
7263 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
7264 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
7265 avx_ptest256): Override prefix_extra to 1.
7266 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
7267 Override prefix_data16 and length_immediate to 1.
7268 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
7269 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
7270 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
7271 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
7272 prefix_data16 to 0 and prefix_extra to 2.
7273 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
7274 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
7276 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
7277 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
7278 Override prefix_data16 and prefix_rep to 0, length_immediate to 1
7279 and prefix_extra to 2.
7280 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
7281 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
7282 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
7283 avx_vpermilvar<mode>3,
7284 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
7285 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
7286 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
7287 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
7288 Override prefix_extra to 1.
7289 (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
7290 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
7291 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
7292 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
7293 prefix_extra and length_immediate to 1.
7294 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
7296 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
7297 to 1 for the first alternative.
7298 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
7299 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
7301 (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
7302 *movv2sf_internal_avx, *movv2sf_internal): Override
7303 prefix_rep attribute for certain alternatives.
7304 (*mov<mode>_internal): Override prefix_rep or prefix_data16
7305 attributes for certain alternatives.
7306 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
7307 attributes for certain alternatives.
7308 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
7309 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
7310 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
7311 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
7312 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
7313 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
7314 mmx_pswapdv2si2): Set prefix_extra attribute to 1.
7315 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
7316 length_immediate to 1 if operand 2 is const_int_operand.
7317 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
7318 *vec_extractv2si_1): Set length_immediate attribute to 1.
7319 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
7320 using old 3DNOW insn rather than SSE/3DNOW_A.
7321 (mmx_emms, mmx_femms): Clear modrm attribute.
7323 2009-05-29 Martin Jambor <mjambor@suse.cz>
7325 * tree-sra.c: New implementation of SRA.
7327 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
7328 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
7329 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
7330 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
7331 (SRA_MAX_STRUCTURE_COUNT): Removed.
7332 (SRA_FIELD_STRUCTURE_RATIO): Removed.
7333 * doc/invoke.texi (sra-max-structure-size): Removed.
7334 (sra-field-structure-ratio): Removed.
7336 2009-05-29 Jakub Jelinek <jakub@redhat.com>
7339 * builtins.c (expand_builtin_memcmp): Convert len to sizetype
7342 2009-05-29 Andrey Belevantsev <abel@ispras.ru>
7344 PR rtl-optimization/40101
7345 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
7346 seqno. Adjust comment.
7347 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when
7348 inserting bookkeeping before a jump, the jump is not scheduled.
7349 When no positive seqno found, provide a value. Add comment.
7351 2009-05-29 Richard Guenther <rguenther@suse.de>
7353 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
7354 short-cutting on the first component.
7356 2009-05-29 Jakub Jelinek <jakub@redhat.com>
7359 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
7360 for trees other than decls/types.
7362 2009-05-29 Richard Guenther <rguenther@suse.de>
7364 * tree-ssa-operands.c (get_expr_operands): Do not handle
7365 INDIRECT_REFs in the handled-component case. Remove
7366 unused get_ref_base_and_extent case.
7367 * tree-dfa.c (get_ref_base_and_extent): Avoid calling
7368 tree_low_cst and host_integerp where possible.
7369 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
7370 codes for equivalence.
7371 * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
7373 2009-05-29 David Billinghurst <billingd@gcc.gnu.org>
7375 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
7376 to tmake_file for i[34567]86-*-cygwin*.
7378 2009-05-29 Jakub Jelinek <jakub@redhat.com>
7381 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
7382 (altivec_categorize_keyword, init_vector_keywords,
7383 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
7386 2009-05-29 Kai Tietz <kai.tietz@onevision.com>
7388 * tree.c (handle_dll_attribute): Check if node is
7389 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
7391 2009-05-29 Richard Earnshaw <rearnsha@arm.com>
7393 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
7395 (thumb2_zero_extendqidi2): Likewise.
7397 2009-05-28 Kaz Kojima <kkojima@gcc.gnu.org>
7399 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
7400 instead of gen_movrt.
7401 * config/sh/sh.md (movrt): Remove.
7403 2009-05-28 Steve Ellcey <sje@cup.hp.com>
7405 * doc/invoke.texi (IA-64 Options):
7406 Add -msdata, -mfused-madd, -mno-inline-float-divide,
7407 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
7408 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
7409 -msched-prefer-non-control-spec-insns,
7410 -msched-stop-bits-after-every-cycle,
7411 -msched-count-spec-in-critical-path,
7412 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
7413 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
7414 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
7415 and -msched-spec-verbose.
7417 2009-05-28 Joseph Myers <joseph@codesourcery.com>
7419 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
7420 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
7422 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
7424 2009-05-28 Richard Guenther <rguenther@suse.de>
7426 * tree-ssa-alias.c (ao_ref_init): New function.
7427 (ao_ref_base): Likewise.
7428 (ao_ref_base_alias_set): Likewise.
7429 (ao_ref_alias_set): Likewise.
7430 (refs_may_alias_p_1): Change signature.
7431 (refs_may_alias_p): Adjust.
7432 (refs_anti_dependent_p): Likewise.
7433 (refs_output_dependent_p): Likewise.
7434 (call_may_clobber_ref_p_1): Change signature.
7435 (call_may_clobber_ref_p): Adjust.
7436 (stmt_may_clobber_ref_p_1): New function split out from ...
7437 (stmt_may_clobber_ref_p): ... here.
7438 (maybe_skip_until): Adjust signature.
7439 (get_continuation_for_phi): Likewise.
7440 (walk_non_aliased_vuses): Likewise.
7441 * tree-ssa-alias.h (struct ao_ref_s): New structure type.
7442 (ao_ref_init): Declare.
7443 (ao_ref_base): Likewise.
7444 (ao_ref_alias_set): Likewise.
7445 (stmt_may_clobber_ref_p_1): Likewise.
7446 (walk_non_aliased_vuses): Adjust.
7447 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
7448 (get_ref_from_reference_ops): remove.
7449 (vn_reference_lookup_2): Adjust signature.
7450 (vn_reference_lookup_3): Do not re-build trees. Handle unions.
7451 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
7452 (vn_reference_lookup): Adjust.
7453 (vn_reference_insert): Likewise.
7454 (vn_reference_insert_pieces): Adjust signature.
7455 (visit_reference_op_call): Adjust.
7456 * tree-ssa-pre.c (get_expr_type): Simplify.
7457 (phi_translate_1): Adjust.
7458 (compute_avail): Likewise.
7459 (translate_vuse_through_block): Do not re-build trees.
7460 (value_dies_in_block_x): Likewise.
7461 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
7463 (vn_reference_lookup_pieces): Adjust declaration.
7464 (vn_reference_insert_pieces): Likewise.
7466 2009-05-28 Benjamin Kosnik <bkoz@redhat.com>
7468 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
7469 with checking disabled.
7471 2009-05-28 Dave Korn <dave.korn.cygwin@gmail.com>
7475 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and
7476 macro definition for support of three-operand format aligned
7477 .comm directive in assembler on cygwin/pe/mingw target OS.
7478 * configure: Regenerate.
7479 * config.h: Regenerate.
7481 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use
7482 aligned form of .comm directive if -mpe-aligned-commons is in effect.
7483 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option.
7485 * doc/invoke.texi (-mpe-aligned-commons): Document new target option.
7486 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons.
7488 2009-05-28 Ira Rosen <irar@il.ibm.com>
7490 PR tree-optimization/40254
7491 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
7492 in analysis of basic blocks.
7494 2009-05-28 Adam Nemet <anemet@caviumnetworks.com>
7497 * target.h (struct gcc_target): Fix indentation. Add const_anchor.
7498 * target-def.h (TARGET_CONST_ANCHOR): New macro.
7499 (TARGET_INITIALIZER): Use it.
7500 * cse.c (CHEAPER): Move it up to the other macros.
7501 (insert): Rename this ...
7502 (insert_with_costs): ... to this. Add cost parameters. Update
7504 (insert): New function. Call insert_with_costs.
7505 (compute_const_anchors, insert_const_anchor, insert_const_anchors,
7506 find_reg_offset_for_const, try_const_anchors): New functions.
7507 (cse_insn): Call try_const_anchors. Adjust cost of src_related
7508 when using a const-anchor. Call insert_const_anchors.
7509 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
7510 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
7512 2009-05-28 Alexandre Oliva <aoliva@redhat.com>
7514 * tree-inline.c (remap_decls): Enable nonlocalized variables
7515 when not optimizing.
7517 2009-05-28 Alexandre Oliva <aoliva@redhat.com>
7519 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
7520 Simplify other tests involving optimize.
7522 2009-05-27 Tom Tromey <tromey@redhat.com>
7524 * unwind-dw2.c (_Unwind_DebugHook): New function.
7525 (uw_install_context): Call _Unwind_DebugHook.
7527 2009-05-27 Tom Tromey <tromey@redhat.com>
7529 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
7531 2009-05-27 Ian Lance Taylor <iant@google.com>
7533 * Makefile.in (LINKER, LINKER_FLAGS): Define.
7534 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
7535 (ALL_LINKERFLAGS): Define.
7536 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
7537 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
7538 (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
7539 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
7540 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
7541 $(LINKER_FOR_BUILD).
7542 (build/gcov-iov$(build_exeext)): Likewise.
7544 2009-05-27 Julian Brown <julian@codesourcery.com>
7546 * gcse.c (target.h): Include.
7547 (can_assign_to_reg_without_clobbers_p): Check that the target allows
7548 copy of argument to a pseudo register.
7550 2009-05-27 Diego Novillo <dnovillo@google.com>
7552 * tree-ssa-live.c (dump_scope_block): Document arguments.
7553 (dump_scope_blocks): Document.
7554 (debug_scope_blocks): New.
7555 * tree-flow.h (debug_scope_blocks): Declare.
7557 2009-05-21 Denis Chertykov <denisc@overta.ru>
7559 * doc/contrib.texi (Contributors): Add myself to the list.
7561 2009-05-27 Olivier Hainque <hainque@adacore.com>
7563 * expr.c (target_align): New function. Alignment the TARGET of an
7564 assignment may be assume to have.
7565 (highest_pow2_factor_for_target): Use it instead of relying on
7566 immediate tree attributes of TARGET, not necessarily honored when
7567 intermediate bitfields are involved.
7569 2009-05-27 H.J. Lu <hongjiu.lu@intel.com>
7572 * config/i386/driver-i386.c (host_detect_local_cpu): Support
7573 AVX, SSE4, AES, PCLMUL and POPCNT.
7575 2009-05-27 Diego Novillo <dnovillo@google.com>
7577 * tree-pretty-print.c (dump_location): New.
7578 (dump_generic_node): Call it.
7579 Factor code to handle BLOCK nodes ...
7580 (dump_block_node): ... here.
7582 2009-05-27 Rafael Avila de Espindola <espindola@google.com>
7584 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
7586 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
7588 * gcc-plugin.h: Include config.h and system.h.
7589 (IN_GCC): Define if not defined.
7591 2009-05-27 Hans-Peter Nilsson <hp@axis.com>
7594 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
7597 2009-05-27 Shujing Zhao <pearly.zhao@oracle.com>
7599 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
7601 * config/m32r/m32r.h: Ditto.
7602 * config/m32r/m32r.md: Ditto.
7603 * config/m32r/predicates.md: Ditto.
7605 2009-05-27 Alexandre Oliva <aoliva@redhat.com>
7607 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
7609 2009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
7612 (Loading plugins): typo.
7613 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
7614 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
7615 (Interacting with the GCC Garbage Collector): Added new section.
7616 (Giving information about a plugin): Added new section for
7618 * ggc.h (ggc_register_root_tab): Added declaration.
7619 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
7620 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
7621 (register_callback): Improved comment in declaration.
7622 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
7623 (extra_root_vec) Added static variable for dynamic roots registration.
7624 (ggc_register_root_tab) Added new routine.
7625 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
7626 PLUGIN_GGC_MARKING event.
7627 * ggc-zone.c: Include plugin.h.
7628 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
7629 * ggc-page.c: Include plugin.h.
7630 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
7631 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
7632 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
7633 (register_callback): check lack of callbacks for
7634 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
7635 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
7636 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
7637 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
7638 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
7639 dependency on plugin.h.
7640 (plugin.o): Added dependency on ggc.h...
7642 2009-05-26 Richard Guenther <rguenther@suse.de>
7646 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
7647 with mismatched comparison modes.
7649 * expr.c (expand_expr_real_1): Expand the operand of a
7650 VIEW_CONVERT_EXPR in its natural mode.
7652 2009-05-26 Ian Lance Taylor <iant@google.com>
7654 * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
7655 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
7656 (ALL_COMPILERFLAGS): Define.
7657 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
7658 (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
7659 (collect2$(exeext), collect2.o): Likewise.
7660 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
7661 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
7662 ($(out_object_file), mips-tfile, mips-tdump): Likewise.
7663 (libbackend.o, intl.o, cppdefault.o): Likewise.
7664 (gcov$(exeext), gcov-dump$(exeext)): Likewise.
7665 (build/%.o): Use $(COMPILER_FOR_BUILD).
7666 (build/gen%$(build_exeext)): Likewise.
7667 (build/gcov-iov$(build_exeext)): LIkewise.
7668 * config/t-darwin (darwin.o): Use $(COMPILER).
7669 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
7670 * config/t-sol2 (sol2-c.o): Likewise.
7672 * config/t-vxworks (vxworks.o): Likewise.
7673 * config/x-darwin (host-darwin.o): Likewise.
7674 * config/x-hpux (host-hpux.o): Likewise.
7675 * config/x-linux (host-linux.o): Likewise.
7676 * config/x-solaris (host-solaris.o): Likewise.
7677 * config/alpha/x-alpha (driver-alpha.o): Likewise.
7678 * config/arm/t-arm (arm-c.o): Likewise.
7679 * config/arm/t-pe (pe.o): Likewise.
7680 * config/arm/t-wince-pe (pe.o): Likewise.
7681 * config/i386/t-cygming (winnt.o): Likewise.
7682 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
7683 * config/i386/t-cygwin (cygwin1.o): Likewise.
7684 (cygwin2.o): Likewise.
7685 * config/i386/t-i386 (i386-c.o): Likewise.
7686 * config/i386/t-interix (winnt.o): Likewise.
7687 * config/i386/t-netware (netware.o): Likewise.
7688 * config/i386/t-nwld (nwld.o): Likewise.
7689 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
7690 * config/i386/x-i386 (driver-i386.o): Likewise.
7691 * config/i386/x-cygwin (host-cygwin.o): Likewise.
7692 * config/i386/x-mingw32 (host-mingw32.o): Likewise.
7693 * config/ia64/t-ia64 (ia64-c.o): Likewise.
7694 * config/m32c/t-m32c (m32c-pragma.o): Likewise.
7695 * config/mips/x-native (driver-native.o): Likewise.
7696 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
7697 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
7698 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
7699 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
7700 * config/score/t-score-elf (score7.o): Likewise.
7701 (score3.o): Likewise.
7702 * config/sh/t-sh (sh-c.o): Likewise.
7703 * config/sh/t-symbian (sh-c.o): Likewise.
7704 (symbian.o): Likewise.
7705 * config/spu/t-spu-elf (spu-c.o): Likewise.
7706 * config/v850/t-v850 (v850-c.o): Likewise.
7707 * config/v850/t-v850e (v850-c.o): Likewise.
7709 2009-05-26 Richard Guenther <rguenther@suse.de>
7711 PR tree-optimization/40122
7712 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
7713 VECTOR_CSTs if possible.
7714 (fold_gimple_assign): Likewise.
7716 2009-05-26 Richard Guenther <rguenther@suse.de>
7719 * fold-const.c (fold_binary): Use the correct types for building
7722 2009-05-26 Richard Guenther <rguenther@suse.de>
7724 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
7725 redundant calls to merge_alias_info.
7726 (bump_vector_ptr): Likewise.
7727 * tree-ssa-copy.c (merge_alias_info): Remove.
7728 (replace_exp_1): Remove call to merge_alias_info.
7729 (propagate_tree_value): Likewise.
7730 (fini_copy_prop): Propagate points-to info.
7731 * tree-flow.h (merge_alias_info): Remove.
7733 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
7735 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
7737 2009-05-25 Jan Hubicka <jh@suse.cz>
7739 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
7740 * cgraph.h (struct inline_summary): New filed self_wize,
7741 size_inlining_benefit, self_time and time_inlining_benefit.
7742 (struct cgraph_global_info): Replace insns by time ans size fields.
7743 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
7744 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
7745 (ipcp_update_callgraph): Do not touch function bodies.
7746 * ipa-inline.c: Include except.h
7747 (MAX_TIME): New constant.
7748 (overall_insns): Remove.
7750 (overall_size, max_benefit): New static variables.
7751 (cgraph_estimate_time_after_inlining): New function.
7752 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
7753 (cgraph_clone_inlined_nodes): Update size.
7754 (cgraph_mark_inline_edge): Update size.
7755 (cgraph_estimate_growth): Use size info.
7756 (cgraph_check_inline_limits): Check size.
7757 (cgraph_default_inline_p): Likewise.
7758 (cgraph_edge_badness): Compute badness based on benefit and size cost.
7759 (cgraph_decide_recursive_inlining): Check size.
7760 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
7762 (cgraph_decide_inlining): Likewise.
7763 (cgraph_decide_inlining_incrementally): Likewise; honor
7764 PARAM_EARLY_INLINING_INSNS.
7765 (likely_eliminated_by_inlining_p): New predicate.
7766 (estimate_function_body_sizes): New function.
7767 (compute_inline_parameters): Use it.
7768 * except.c (must_not_throw_labels): New function.
7769 * except.h (must_not_throw_labels): Declare.
7770 * tree-inline.c (init_inline_once): Kill inlining_weigths
7771 * tree-ssa-structalias.c: Avoid uninitialized warning.
7772 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
7773 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
7774 (PARAM_INLINE_CALL_COST): Remove.
7775 (PARAM_EARLY_INLINING_INSNS): New.
7777 2009-05-25 Richard Guenther <rguenther@suse.de>
7779 PR tree-optimization/36327
7780 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
7781 callback for reference translation or lookup at the point of may-defs.
7782 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
7783 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
7784 for union COMPONENT_REFs.
7785 (vn_reference_lookup_3): New callback. Lookup from memset
7786 and CONSTRUCTOR assignment, translate through struct copies.
7787 (vn_reference_lookup_pieces): Make sure to not free the
7788 passed operands array. Adjust walk_non_aliased_vuses call.
7789 (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
7790 make sure we do not leak memory.
7792 2009-05-25 Richard Guenther <rguenther@suse.de>
7794 * tree-ssa-alias.h (dump_points_to_solution): Declare.
7795 * tree-inline.c (expand_call_inline): Reset the escaped and
7797 * tree-ssa-structalias.c (pass_build_ealias): New.
7798 * tree-pass.h (pass_build_ealias): Declare.
7799 * passes.c (init_optimization_passes): Add PTA during
7800 early optimizations.
7801 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
7802 and CALLUSED solutions.
7803 (dump_points_to_solution): New function, split out from ...
7804 (dump_points_to_info_for): ... here.
7805 * tree-parloops.c (parallelize_loops): Reset the escaped and
7808 2009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7811 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
7812 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
7814 2009-05-25 Ira Rosen <irar@il.ibm.com>
7816 PR tree-optimization/40238
7817 * tree-vect-stmts.c (vect_init_vector): Insert initialization
7818 statements after basic block's labels.
7819 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info()
7820 to free the allocated memory.
7822 2009-05-24 Kaz Kojima <kkojima@gcc.gnu.org>
7824 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
7825 return address with a USE.
7827 2009-05-24 Richard Guenther <rguenther@suse.de>
7830 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
7831 array type from the main variant of the inner type.
7833 2009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7835 * config/vax/vax-protos.h (legitimate_constant_address_p): Change
7836 definition to bool (from int) to un-break build.
7837 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
7839 2009-05-24 Paolo Bonzini <bonzini@gnu.org>
7841 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
7842 discard_stmt_changes): Delete.
7843 * tree-ssa-operands.c (scb_stack): Delete.
7844 (init_ssa_operands): Do not initialize it.
7845 (fini_ssa_operands): Do not free it.
7846 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
7848 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with
7849 update_stmt, remove the others. Fix comments.
7850 * tree-dfa.c (optimize_stack_restore): Likewise.
7851 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
7852 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
7853 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
7854 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
7856 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
7857 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
7858 (dom_opt_finalize_block): Likewise, adjusting access to
7860 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
7861 (stmts_to_rescan): Change item type to gimple.
7862 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
7864 2009-05-24 Ira Rosen <irar@il.ibm.com>
7866 * doc/passes.texi (Tree-SSA passes): Document SLP pass.
7867 * tree-pass.h (pass_slp_vectorize): New pass.
7868 * params.h (SLP_MAX_INSNS_IN_BB): Define.
7869 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
7870 * tree-vectorizer.c (timevar.h): Include.
7871 (user_vect_verbosity_level): Declare.
7872 (vect_location): Fix comment.
7873 (vect_set_verbosity_level): Update user_vect_verbosity_level
7874 instead of vect_verbosity_level.
7875 (vect_set_dump_settings): Add an argument. Ignore user defined
7876 verbosity if dump flags require higher level of verbosity. Print to
7877 stderr only for loop vectorization.
7878 (vectorize_loops): Update call to vect_set_dump_settings.
7879 (execute_vect_slp): New function.
7880 (gate_vect_slp): Likewise.
7881 (struct gimple_opt_pass pass_slp_vectorize): New.
7882 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
7884 (vec_info_for_bb): New function.
7885 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
7886 (VECTORIZATION_ENABLED): New macro.
7887 (SLP_ENABLED, SLP_DISABLED): Likewise.
7888 (vect_is_simple_use): Add bb_vec_info argument.
7889 (new_stmt_vec_info, vect_analyze_data_ref_dependences,
7890 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
7891 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
7892 vect_schedule_slp, vect_analyze_slp): Likewise.
7893 (vect_analyze_stmt): Add slp_tree argument.
7894 (find_bb_location): Declare.
7895 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
7896 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
7897 (vect_analyze_loop_operations, vect_analyze_loop,
7898 get_initial_def_for_induction, vect_create_epilog_for_reduction,
7899 vect_finalize_reduction, vectorizable_reduction,
7900 vectorizable_live_operation, vect_transform_loop): Likewise.
7901 * tree-data-ref.c (dr_analyze_innermost): Update comment,
7902 skip evolution analysis if analyzing a basic block.
7903 (dr_analyze_indices): Likewise.
7904 (initialize_data_dependence_relation): Skip the test whether the
7905 object is invariant for basic blocks.
7906 (compute_all_dependences): Skip dependence analysis for data
7907 references in basic blocks.
7908 (find_data_references_in_stmt): Don't fail in case of invariant
7909 access in basic block.
7910 (find_data_references_in_bb): New function.
7911 (find_data_references_in_loop): Move code to
7912 find_data_references_in_bb and add a call to it.
7913 (compute_data_dependences_for_bb): New function.
7914 * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
7915 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
7917 (vect_analyze_data_ref_dependence): Check for interleaving in case of
7918 unknown dependence in basic block and fail in case of dependence in
7920 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
7921 dependence instances from either loop or basic block vectorization
7923 (vect_compute_data_ref_alignment): Check if it is loop vectorization
7924 before calling nested_in_vect_loop_p.
7925 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
7926 dependence instances from either loop or basic block vectorization
7928 (vect_verify_datarefs_alignment): Likewise.
7929 (vect_enhance_data_refs_alignment): Adjust function calls.
7930 (vect_analyze_data_refs_alignment): Likewise.
7931 (vect_analyze_group_access): Fix printing. Skip different checks if
7932 DR_STEP is 0. Keep strided stores either in loop or basic block
7933 vectorization data structure. Fix indentation.
7934 (vect_analyze_data_ref_access): Fix comments, allow zero step in
7936 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
7937 dependence instances from either loop or basic block vectorization
7939 (vect_analyze_data_refs): Update comment. Call
7940 compute_data_dependences_for_bb to analyze basic blocks.
7941 (vect_create_addr_base_for_vector_ref): Check for outer loop only in
7942 case of loop vectorization. In case of basic block vectorization use
7943 data-ref itself as a base.
7944 (vect_create_data_ref_ptr): In case of basic block vectorization:
7945 don't advance the pointer, add new statements before the current
7946 statement. Adjust function calls.
7947 (vect_supportable_dr_alignment): Support only aligned accesses in
7948 basic block vectorization.
7949 * common.opt (ftree-slp-vectorize): New flag.
7950 * tree-vect-patterns.c (widened_name_p): Adjust function calls.
7951 (vect_pattern_recog_1): Likewise.
7952 * tree-vect-stmts.c (process_use): Likewise.
7953 (vect_init_vector): Add new statements in the beginning of the basic
7954 block in case of basic block SLP.
7955 (vect_get_vec_def_for_operand): Adjust function calls.
7956 (vect_finish_stmt_generation): Likewise.
7957 (vectorizable_call): Add assert that it is loop vectorization, adjust
7959 (vectorizable_conversion, vectorizable_assignment): Likewise.
7960 (vectorizable_operation): In case of basic block SLP, take
7961 vectorization factor from statement's type and skip the relevance
7962 check. Adjust function calls.
7963 (vectorizable_type_demotion): Add assert that it is loop
7964 vectorization, adjust function calls.
7965 (vectorizable_type_promotion): Likewise.
7966 (vectorizable_store): Check for outer loop only in case of loop
7967 vectorization. Adjust function calls. For basic blocks, skip the
7968 relevance check and don't advance pointers.
7969 (vectorizable_load): Likewise.
7970 (vectorizable_condition): Add assert that it is loop vectorization,
7971 adjust function calls.
7972 (vect_analyze_stmt): Add argument. In case of basic block SLP, check
7973 that it is not reduction, get vector type, call only supported
7974 functions, skip loop specific parts.
7975 (vect_transform_stmt): Check for outer loop only in case of loop
7977 (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
7978 (vect_is_simple_use): Fix comment, add new argument, fix conditions
7979 for external definition.
7980 * passes.c (pass_slp_vectorize): New pass.
7981 * tree-vect-slp.c (find_bb_location): New function.
7982 (vect_get_and_check_slp_defs): Add argument, adjust function calls,
7983 check for patterns only in loops.
7984 (vect_build_slp_tree): Add argument, adjust function calls, fail in
7985 case of multiple types in basic block SLP.
7986 (vect_mark_slp_stmts_relevant): New function.
7987 (vect_supported_load_permutation_p): Fix comment.
7988 (vect_analyze_slp_instance): Add argument. In case of basic block
7989 SLP, take vectorization factor from statement's type, check that
7990 unrolling factor is 1. Adjust function call. Save SLP instance in
7991 either loop or basic block vectorization structure. Return FALSE,
7993 (vect_analyze_slp): Add argument. Get strided stores groups from
7994 either loop or basic block vectorization structure. Return FALSE
7995 if basic block SLP failed.
7996 (new_bb_vec_info): New function.
7997 (destroy_bb_vec_info, vect_slp_analyze_node_operations,
7998 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
7999 (vect_schedule_slp): Add argument. Get SLP instances from either
8000 loop or basic block vectorization structure. Set vectorization factor
8001 to be 1 for basic block SLP.
8002 (vect_slp_transform_bb): New function.
8003 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
8005 2009-05-23 Mark Mitchell <mark@codesourcery.com>
8007 * final.c (shorten_branches): Do not align labels for jump tables.
8008 (final_scan_insn): Use JUMP_TABLE_DATA_P.
8010 2009-05-23 Eric Botcazou <ebotcazou@adacore.com>
8012 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
8013 Remove outdated reference to flow.c and fix nits.
8014 * doc/gccint.texi: Tweak RTL description.
8015 * doc/rtl.texi: Likewise.
8017 2009-05-23 Denis Chertykov <chertykov@gmail.com>
8019 * config/avr/avr.c: Change my email address.
8020 * config/avr/avr.h: Likewise.
8021 * config/avr/avr.md: Likewise.
8022 * config/avr/avr-protos.h: Likewise.
8023 * config/avr/libgcc.S: Likewise.
8025 2009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
8027 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
8028 (spu_split_load, spu_split_store): Change return type to int.
8029 (spu_split_convert): Declare.
8030 * config/spu/predicates.md (spu_mem_operand): Remove.
8031 (spu_mov_operand): Update.
8032 (spu_dest_operand, shiftrt_operator, extend_operator): Define.
8033 * config/spu/spu.c (regno_aligned_for_load): Remove.
8034 (reg_aligned_for_addr, spu_expand_load): Define.
8035 (spu_expand_extv): Reimplement and handle MEM.
8036 (spu_expand_insv): Handle MEM.
8037 (spu_sched_reorder): Handle insn's with length 0.
8038 (spu_legitimate_address_p): Reimplement.
8039 (store_with_one_insn_p): Return TRUE for any mode with size
8040 larger than 16 bytes.
8041 (address_needs_split): Define.
8042 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
8044 (spu_convert_move): Define.
8045 (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
8046 (spu_split_store): Change all MEM's to TImode.
8047 (spu_init_expanders): Preallocate registers that correspond to
8048 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
8050 (spu_split_convert): Define.
8051 * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
8052 (_move<mode>, _movdi, _movti): Update predicate and condition.
8053 (load, store): Change to define_split.
8054 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
8056 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
8057 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
8058 define_insn_and_split of lshr<mode>3.
8059 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
8060 (<v>ashr<mode>3_imm): Define.
8061 (extv, extzv, insv): Allow MEM operands.
8062 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
8063 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
8064 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
8065 (_spu_convert2): Change to define_insn_and_split and remove the
8066 corresponding define_peephole2.
8067 (stack_protect_set, stack_protect_test, stack_protect_test_si):
8068 Change predicates to memory_operand.
8070 2009-05-22 Mark Mitchell <mark@codesourcery.com>
8072 * config/arm/thumb2.md: Add 16-bit multiply instructions.
8074 2009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com>
8076 PR tree-optimization/40219
8077 * tree.c (iterative_hash_expr): Make sure the builtin function is
8078 a normal builtin function and not a front end or back end builtin
8079 before indexing into the built_in_decls array.
8081 2009-05-22 Richard Guenther <rguenther@suse.de>
8084 * alias.c (write_dependence_p): Do not use TBAA for answering
8085 anti-dependence or output-dependence.
8086 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
8087 (emit_pointer_definition): Remove.
8088 (emit_alias_warning): Likewise.
8089 (find_what_var_points_to): Remove TBAA pruning code.
8090 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing
8092 (compute_points_to_sets): Remove code computing the set of
8093 dereferenced pointers.
8094 * tree-data-ref.c (dr_may_alias_p): Properly use the split
8095 oracle for querying anti and output dependencies.
8096 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
8097 if TBAA may be applied.
8098 (refs_anti_dependent_p): New function.
8099 (refs_output_dependent_p): Likewise.
8100 * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
8101 (refs_output_dependent_p): Likewise.
8102 * doc/tree-ssa.texi (Memory model): New section.
8103 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
8104 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
8105 * cfgexpand.c (expand_gimple_basic_block): Do not handle
8106 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
8107 * expr.c (expand_expr_real_1): Likewise.
8108 * gimple-low.c (lower_stmt): Likewise.
8109 * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
8110 (dump_gimple_cdt): Remove.
8111 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
8112 (gimple_size): Likewise.
8113 (walk_gimple_op): Likewise.
8114 (is_gimple_stmt): Likewise.
8115 (walk_stmt_load_store_addr_ops): Likewise.
8116 (gimple_build_cdt): Remove.
8117 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
8118 * gimple.h (gimple_cdt_new_type): Remove.
8119 (gimple_cdt_new_type_ptr): Likewise.
8120 (gimple_cdt_set_new_type): Likewise.
8121 (gimple_cdt_location): Likewise.
8122 (gimple_cdt_location_ptr): Likewise.
8123 (gimple_cdt_set_location): Likewise.
8124 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
8125 * tree-cfg.c (remove_useless_stmts_1): Do not handle
8126 GIMPLE_CHANGE_DYNAMIC_TYPE.
8127 (verify_types_in_gimple_stmt): Likewise.
8128 * tree-inline.c (estimate_num_insns): Likewise.
8129 (expand_call_inline): Do not copy DECL_NO_TBAA_P.
8130 (copy_decl_to_var): Likewise.
8131 (copy_result_decl_to_var): Likewise.
8132 * tree-pretty-print.c (dump_generic_node): Do not handle
8133 CHANGE_DYNAMIC_TYPE_EXPR.
8134 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
8135 * tree-ssa-operands.c (get_expr_operands): Likewise.
8136 * tree-ssa-structalias.c (struct variable_info): Remove
8137 no_tbaa_pruning member.
8138 (new_var_info): Do not set it based on DECL_NO_TBAA_P.
8139 (unify_nodes): Do not copy it.
8140 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
8141 (dump_solution_for_var): Do not dump no_tbaa_pruning state.
8142 (set_uids_in_ptset): Do not check it.
8143 (find_what_var_points_to): Likewise.
8144 (compute_tbaa_pruning): Remove.
8145 (compute_points_to_sets): Do not call it.
8146 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
8147 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
8148 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
8149 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
8150 (DECL_NO_TBAA_P): Likewise.
8151 (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
8152 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
8153 (expand_omp_atomic_pipeline): Do not set it.
8154 * print-tree.c (print_node): Do not dump it.
8155 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
8158 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
8161 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
8164 2009-05-22 Mark Mitchell <mark@codesourcery.com>
8166 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
8169 2009-05-22 Ben Elliston <bje@au.ibm.com>
8171 * Makefile.in (bversion.h, s-bversion): New targets.
8172 (TOPLEV_H): Add bversion.h.
8173 * toplev.h: Include "bversion.h".
8174 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
8175 the __format__ attribute only if compiling with the same version
8176 of GCC as the sources (the "build version").
8178 2009-05-22 Ben Elliston <bje@au.ibm.com>
8180 * c-format.c (handle_format_attribute): Fix comment typo.
8182 2009-05-21 Steve Ellcey <sje@cup.hp.com>
8185 * config/ia64/ia64.opt (mfused-madd): New.
8186 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
8187 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
8188 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
8189 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
8190 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
8191 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
8192 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
8193 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms
8194 instruction if !TARGET_FUSED_MADD.
8195 (fpma, fpms): Remove colon from name.
8197 2009-05-22 Richard Guenther <rguenther@suse.de>
8199 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
8200 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE.
8201 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
8203 (create_expression_by_pieces): Only convert if necessary.
8204 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
8205 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
8207 2009-05-21 Adam Nemet <anemet@caviumnetworks.com>
8209 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
8210 regular pattern from a template and rename it ...
8211 (*extzv_truncsi_exts): ... to this.
8213 2009-05-21 Richard Guenther <rguenther@suse.de>
8215 * cgraph.h (struct cgraph_node): Remove inline_decl member.
8216 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
8217 (cgraph_default_inline_p): Likewise.
8218 (cgraph_decide_inlining_incrementally): Likewise.
8220 2009-05-21 H.J. Lu <hongjiu.lu@intel.com>
8221 Uros Bizjak <ubizjak@gmail.com>
8223 * config/i386/cpuid.h (bit_MOVBE): New.
8225 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
8227 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
8228 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
8229 (ix86_handle_option): Handle OPT_mmovbe.
8230 (ix86_target_string): Add -mmovbe.
8231 (pta_flags): Add PTA_MOVBE.
8232 (processor_alias_table): Add PTA_MOVBE to "atom".
8233 (override_options): Handle PTA_MOVBE.
8235 * config/i386/i386.h (TARGET_MOVBE): New.
8237 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
8238 (*bswapsi_movbe): New.
8239 (*bswapdi_movbe): Likewise.
8240 (bswapdi2): Renamed to ...
8242 (bswapdi2): New expander.
8244 * config/i386/i386.opt (mmovbe): New.
8246 * doc/invoke.texi: Document -mmovbe.
8248 2009-05-21 Taras Glek <tglek@mozilla.com>
8250 * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
8251 * gcc-plugin.h (plugin_init): Updated signature.
8252 * gcc-plugin.h (plugin_name_args): Moved to this header.
8253 * doc/plugins.texi (plugin_init): Updated documention to reflect
8255 * doc/plugins.texi (plugin_name_args): Added to documention.
8257 2009-05-21 Mark Mitchell <mark@codesourcery.com>
8259 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
8260 (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
8262 2009-05-21 Shujing Zhao <pearly.zhao@oracle.com>
8264 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
8265 JUMP_TABLE_DATA_P predicates where applicable.
8266 * config/i386/predicates.md: Ditto.
8267 * config/i386/sse.md: Ditto.
8269 2009-05-21 Jakub Jelinek <jakub@redhat.com>
8271 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
8272 operand2 -128 override length_immediate attribute to 1.
8273 * config/i386/predicates.md (constm128_operand): New predicate.
8275 * config/i386/i386.c (memory_address_length): Handle %r12
8276 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp
8278 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
8279 mode look through optional ZERO_EXTEND and SUBREG.
8280 * config/i386/i386.md (R12_REG): New define_constant.
8281 (prefix_data16): For sse unit set also for MODE_TI insns.
8282 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX
8283 insns set if operand 1 is ext_QIreg_operand.
8284 (modrm): For TYPE_IMOV clear only if not MODE_DI. For
8285 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
8287 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
8288 mode from MODE_DI to MODE_SI.
8289 (movdi_1_rex64): Override modrm and length_immediate attributes
8290 only for movabs (TYPE_IMOV, alternative 2).
8291 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
8292 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
8293 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
8294 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
8295 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
8296 prefix_rex attribute if DImode.
8297 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
8298 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
8299 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
8300 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
8301 attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
8302 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
8303 Likewise. For TYPE_IMOV clear length_immediate attribute.
8304 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
8305 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
8306 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
8307 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
8308 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
8309 or one operand TYPE_ISHIFT.
8310 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
8311 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
8312 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
8313 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
8314 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
8315 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
8316 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
8317 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
8318 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
8319 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
8320 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
8321 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
8322 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
8323 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
8324 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
8325 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
8326 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
8327 set mode attribute, don't override length attribute.
8328 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
8330 (return_internal_long): Set length attribute to 2 instead of 1.
8331 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
8332 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
8333 prefix_rex attribute.
8334 * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
8336 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
8338 2009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8340 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
8342 2009-05-20 Ian Lance Taylor <iant@google.com>
8344 * tree.c (build_tree_list_vec_stat): New function.
8345 (ctor_to_vec): New function.
8346 (build_nt_call_vec): New function.
8347 (build_call_array): Change args to be a const pointer.
8348 (build_call_vec): New function.
8349 * tree.h (build_nt_call_vec): Declare.
8350 (build_tree_list_vec_stat): Declare.
8351 (build_tree_list_vec): Define.
8352 (build_call_array): Update declaration.
8353 (build_call_vec): Declare.
8354 (ctor_to_vec): Declare.
8355 * c-common.c (tree_vector_cache): New static variable.
8356 (make_tree_vector): New function.
8357 (release_tree_vector): New function.
8358 (make_tree_vector_single): New function.
8359 (make_tree_vector_copy): New function.
8360 * c-common.h (tree_vector_cache, make_tree_vector): Declare.
8361 (make_tree_vector_single, make_tree_vector_copy): Declare.
8362 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
8363 (c_parser_expr_list): Don't manage cache here, instead call
8365 (c_parser_release_expr_list): Remove static function.
8366 (c_parser_vec_to_tree_list): Remove static function.
8367 (c_parser_attributes): Call build_tree_list_vec instead of
8368 c_parser_vec_to_tree_list. Call release_tree_vector instead of
8369 c_parser_release_expr_list.
8370 (c_parser_postfix_expression_after_primary): Likewise.
8371 (c_parser_objc_keywordexpr): Likewise.
8373 2009-05-20 Sandra Loosemore <sandra@codesourcery.com>
8375 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
8376 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
8377 TARGET_CONVERT_TO_TYPE.
8378 * hooks.c (hook_tree_const_tree_null): Define.
8379 * hooks.h (hook_tree_const_tree_null): Declare.
8380 * target.h (struct gcc_target): Add invalid_parameter_type,
8381 invalid_return_type, promoted_type, and convert_to_type fields.
8382 * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
8383 (TARGET_INVALID_RETURN_TYPE): Define.
8384 (TARGET_PROMOTED_TYPE): Define.
8385 (TARGET_CONVERT_TO_TYPE): Define.
8386 (TARGET_INITIALIZER): Update for new fields.
8387 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
8388 (grokparms): Check targetm.invalid_parameter_type.
8389 * c-typeck.c (default_conversion): Check targetm.promoted_type.
8390 * c-convert.c (convert): Check targetm.convert_to_type.
8392 2009-05-20 Adam Nemet <anemet@caviumnetworks.com>
8394 * config/mips/mips.md (*extenddi_truncate<mode>,
8395 *extendsi_truncate<mode>): Emit exts if supported. Add attribute
8397 (*extendhi_truncateqi): New define_insn_and_sptit.
8399 2009-05-20 Jakub Jelinek <jakub@redhat.com>
8402 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
8403 recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
8405 2009-05-20 Eric Botcazou <ebotcazou@adacore.com>
8407 * fold-const.c (build_fold_addr_expr_with_type): Take the address of
8408 the operand of VIEW_CONVERT_EXPR.
8410 2009-05-20 H.J. Lu <hongjiu.lu@intel.com>
8412 * config/i386/driver-i386.c (host_detect_local_cpu): Check
8413 extended family and model for Intel processors. Support Intel Atom.
8415 2009-05-20 Olivier Hainque <hainque@adacore.com>
8417 * gstab.h (stab_code_type): Define, to be used instead of the
8418 __stab_debug_code enum, made anonymous. Add 2009 to the copyright
8420 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
8421 occurrences by stab_code_type.
8422 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
8424 2009-05-20 Martin Jambor <mjambor@suse.cz>
8426 * tree-flow.h (insert_edge_copies_seq): Undeclare.
8427 (sra_insert_before): Likewise.
8428 (sra_insert_after): Likewise.
8429 (sra_init_cache): Likewise.
8430 (sra_type_can_be_decomposed_p): Likewise.
8431 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
8432 * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
8433 (sra_insert_before): Likewise.
8434 (sra_insert_after): Likewise.
8435 (sra_init_cache): Likewise.
8436 (insert_edge_copies_seq): Made static and moved upwards.
8438 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
8441 * tree-flow-inline.h (contains_view_convert_expr_p): New function.
8443 * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
8444 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
8447 2009-05-20 Richard Guenther <rguenther@suse.de>
8449 * expr.c (expand_expr_real_1): Avoid calling do_store_flag
8450 with mismatched comparison modes.
8452 2009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8454 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
8455 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
8456 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
8457 with shifts for Thumb2.
8458 (orsi_notsi): New for orn.
8459 (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
8460 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
8461 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
8462 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
8463 Don't invert remainder for IOR.
8465 2009-05-19 Zdenek Dvorak <ook@ucw.cz>
8467 PR tree-optimization/40087
8468 * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
8469 number_of_iterations_ne): Rename never_infinite argument.
8470 (number_of_iterations_lt_to_ne, number_of_iterations_lt,
8471 number_of_iterations_le): Handle pointer-type ivs when
8472 exit_must_be_taken is false.
8473 (number_of_iterations_cond): Do not always assume that
8474 exit_must_be_taken if the control variable is a pointer.
8476 2009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com>
8478 * c-typeck.c (build_binary_op): Allow % on integal vectors.
8479 * doc/extend.texi (Vector Extension): Document that % is allowed too.
8481 2009-05-19 H.J. Lu <hongjiu.lu@intel.com>
8483 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
8484 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
8486 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
8489 * c.opt (Wlogical-op): Disabled by default.
8490 * c-opt (c_common_post_options): Do not enable Wlogical-op with
8492 * doc/invoke.texi (Wlogical-op): Likewise.
8494 2009-05-19 Eric Botcazou <ebotcazou@adacore.com>
8496 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
8498 <PLUS_EXPR>: Strip useless type conversions instead of type nops.
8499 Propagate the type of the first operand.
8500 <ASSERT_EXPR>: Simplify.
8501 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
8502 Rewrite using the RHS code as discriminant.
8503 <NOP_EXPR>: Turn into CASE_CONVERT.
8504 <PLUS_EXPR>: Propagate the type of the first operand.
8506 2009-05-19 Steve Ellcey <sje@cup.hp.com>
8508 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
8509 (ia64_dconst_0_375): New.
8510 * config/ia64/ia64.c (ia64_override_options): Remove
8511 -minline-sqrt-min-latency warning.
8512 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
8513 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
8514 * config/ia64/ia64.md (*sqrt_approx): Remove.
8515 (sqrtsf2): Remove #if 0.
8516 (sqrtsf2_internal_thr): Rewrite and move to div.md.
8517 (sqrtdf): Remove assert.
8518 (sqrtdf2_internal_thr): Rewrite and move to div.md.
8519 (sqrtxf2): Remove #if 0.
8520 (sqrtxf2_internal_thr): Rewrite and move to div.md.
8521 * div.md (sqrt_approx_rf): New.
8522 (sqrtsf2_internal_thr): New implementation.
8523 (sqrtsf2_internal_lat): New.
8524 (sqrtdf2_internal_thr: New implementation.
8525 (sqrtxf2_internal): New implementation.
8527 2009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com>
8528 Hans-Peter Nilsson <hp@axis.com>
8530 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
8531 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
8532 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
8533 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
8534 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
8535 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
8536 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
8537 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
8538 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
8539 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
8540 * c-common.c: ...from here.
8542 2009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
8544 * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
8546 2009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8548 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
8550 2009-05-19 Ben Elliston <bje@au.ibm.com>
8552 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
8553 assignments with memcpy calls.
8554 (add_fdes): Likewise.
8555 (binary_search_unencoded_fdes): Likewise.
8556 (linear_search_fdes): Eliminate type puns.
8558 2009-05-19 Richard Guenther <rguenther@suse.de>
8560 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
8561 not falsely claim to have propagated into all uses.
8563 2009-05-19 Ben Elliston <bje@au.ibm.com>
8565 * doc/invoke.texi (C Dialect Options): Update OpenMP specification
8568 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
8570 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
8571 * config/sh/sh.c (sh_legitimate_address_p): Make static.
8572 (TARGET_LEGITIMATE_ADDRESS_P): New.
8573 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8574 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
8576 2009-05-18 Dodji Seketeli <dodji@redhat.com>
8579 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
8580 child of the containing namespace's DIE.
8582 2009-05-18 Adam Nemet <anemet@caviumnetworks.com>
8584 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
8585 *zero_extendhi_truncqi): Move after the zero_extend patterns.
8586 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
8589 2009-05-18 H.J. Lu <hongjiu.lu@intel.com>
8592 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
8593 gen_align with gen_pad.
8594 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
8595 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
8597 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
8598 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
8600 * config/i386/i386.md (align): Renamed to ...
8601 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
8602 ASM_OUTPUT_MAX_SKIP_PAD.
8604 2009-05-18 Andreas Schwab <schwab@linux-m68k.org>
8606 * config.gcc: Fix variable syntax.
8609 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
8610 before calling exact_log2.
8611 (output_iorsi3): Likewise.
8612 (output_xorsi3): Likewise.
8614 2009-05-18 Kaz Kojima <kkojima@gcc.gnu.org>
8616 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
8617 for the none zero constant operand except for EQ and NE
8618 comprisons even when the first operand is R0.
8620 2009-05-18 Andreas Krebbel <krebbel1@de.ibm.com>
8622 * config/s390/2064.md: Remove trailing whitespaces.
8623 * config/s390/2084.md: Likewise.
8624 * config/s390/constraints.md: Likewise.
8625 * config/s390/fixdfdi.h: Likewise.
8626 * config/s390/libgcc-glibc.ver: Likewise.
8627 * config/s390/s390-modes.def: Likewise.
8628 * config/s390/s390-protos.h: Likewise.
8629 * config/s390/s390.c: Likewise.
8630 * config/s390/s390.h: Likewise.
8631 * config/s390/s390.md: Likewise.
8632 * config/s390/tpf-unwind.h: Likewise.
8634 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
8636 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
8638 2009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com>
8641 * configure.ac (m68k-*-*): Check if binutils support TLS.
8642 * configure: Regenerate.
8643 * config/m68k/predicates.md (symbolic_operand): Extend comment.
8644 * config/m68k/constraints.md (Cu): New constraint.
8645 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
8646 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
8647 (movsi): Handle TLS symbols.
8648 (addsi3_5200): Handle XTLS symbols, indent.
8649 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
8650 (m68k_tls_reference_p): Declare.
8651 (m68k_legitimize_address): Declare.
8652 (m68k_unwrap_symbol): Declare.
8653 * config/m68k/m68k.opt (mxtls): New option.
8654 * config/m68k/m68k.c (ggc.h): Include.
8655 (m68k_output_dwarf_dtprel): Implement hook.
8656 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
8657 (m68k_expand_prologue): Load GOT pointer when function needs it.
8658 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
8659 (m68k_legitimate_constant_address_p): Same.
8660 (m68k_decompose_address): Handle TLS references.
8661 (m68k_get_gp): New static function.
8662 (enum m68k_reloc): New contants.
8663 (TLS_RELOC_P): New macro.
8664 (m68k_wrap_symbol): New static function.
8665 (m68k_unwrap_symbol): New function.
8666 (m68k_final_prescan_insn_1): New static function.
8667 (m68k_final_prescan_insn): New function.
8668 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
8670 (legitimize_pic_address): Handle TLS references..
8671 (m68k_tls_get_addr, m68k_get_tls_get_addr)
8672 (m68k_libcall_value_in_a0_p)
8673 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
8674 (m68k_call_m68k_read_tp): Helper variables and functions for ...
8675 (m68k_legitimize_tls_address): Handle TLS references.
8676 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
8678 (m68k_legitimize_address): Handle TLS symbols.
8679 (m68k_get_reloc_decoration): New static function.
8680 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
8682 (m68k_output_dwarf_dtprel): Implement hook.
8683 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
8684 (m68k_libcall_value): Return result in A0 instead of D0 when asked by
8685 m68k_call_* routines.
8686 (sched_attr_op_type): Handle TLS symbols.
8687 (gt-m68k.h): Include.
8688 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
8689 (LEGITIMATE_PIC_OPERAND_P): Support TLS.
8691 2009-05-18 Martin Jambor <mjambor@suse.cz>
8693 * ipa-prop.c (ipa_check_stmt_modifications): Removed.
8694 (visit_store_addr_for_mod_analysis): New function.
8695 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
8696 (determine_cst_member_ptr): Use gimple_assign_single_p.
8697 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
8698 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
8699 operands. Don't check number of operands of a NOP_EXPR.
8701 2009-05-18 Eric Fisher <joefoxreal@gmail.com>
8703 * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
8705 2009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
8708 * c-common.c (warn_logical_operator): Don't warn if one of
8709 expression isn't always true or false.
8711 2009-05-17 Kai Tietz <kai.tietz@onevision.com>
8713 * config/i386/biarch32.h: New file.
8714 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
8716 2009-05-17 Adam Nemet <anemet@caviumnetworks.com>
8718 * config/mips/mips.md (*zero_extend<mode>_trunchi,
8719 *zero_extend<mode>_truncqi): Merge these into ...
8720 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
8721 Name the pattern following this as *zero_extendhi_truncqi.
8723 2009-05-16 Brad Lucier <lucier@math.purdue.edu>
8726 * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
8727 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
8728 (output_info): Make field HOST_WIDEST_INT.
8729 (print_statistics): Use HOST_WIDEST_INT_PRINT.
8730 (dump_bitmat_statistics): Same.
8732 2009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com>
8734 * config.gcc (use_gcc_stdint): Set to wrap.
8735 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
8736 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
8737 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
8738 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
8739 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
8740 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
8741 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
8742 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
8744 2009-05-16 Joseph Myers <joseph@codesourcery.com>
8746 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
8748 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
8749 Move definitions earlier.
8750 (OPT_ARCH64, OPT_ARCH32): Define.
8751 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
8754 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
8757 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
8760 2009-05-16 Richard Earnshaw <rearnsha@arm.com>
8762 * arm.md (movdi2): Copy non-reg values to DImode registers.
8764 2009-05-16 Jakub Jelinek <jakub@redhat.com>
8767 * final.c (label_to_max_skip): New function.
8768 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
8769 CODE_LABEL_NUMBER <= max_labelno.
8770 * output.h (label_to_max_skip): New prototype.
8771 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
8772 (ix86_avoid_jump_mispredicts): ... this. Don't define if
8773 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment.
8774 Handle CODE_LABELs with >= 16 byte alignment or with
8775 max_skip == (1 << align) - 1.
8776 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
8777 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
8780 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
8781 .p2align 3 if MAX_SKIP is smaller than 7.
8782 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8784 2009-05-15 Ian Lance Taylor <iant@google.com>
8786 * alias.c (struct alias_set_entry_d): Rename from struct
8787 alias_set_entry. Change all uses.
8788 * except.c (struct call_site_record_d): Rename from struct
8789 call_site_record. Change all uses.
8790 * except.h (struct eh_region_d): Rename from struct eh_region.
8792 * gcse.c (struct hash_table_d): Rename from struct hash_table.
8794 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
8795 ivtype_map_elt. Change all uses.
8796 (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
8798 (struct ifsese_d): Rename fromstruct ifsese. Change all uses.
8799 * graphite.h (struct name_tree_d): Rename from struct name_tree.
8801 (struct sese_d): Rename from struct sese. Change all uses.
8802 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses.
8803 (struct omega_pb_d): Rename from struct omega_pb. Change all uses.
8804 * optabs.h (struct optab_d): Rename from struct optab. Change all
8806 (struct convert_optab_d): Rename from struct convert_optab.
8808 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
8809 ipa_opt_pass. Change all uses.
8810 * tree-predcom.c (struct dref_d): Rename from struct dref. Change
8813 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
8814 defined as a typedef.
8815 (grokdeclarator): If -Wc++-compat, warn if a typedef is already
8818 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
8821 * fold-const.c (make_range,build_range_check,merge_ranges): Move
8823 (merge_ranges): Returns bool.
8824 * tree.h (make_range): .. to here.
8825 (build_range_check): Likewise.
8826 (merge_ranges): Likewise. Renamed from merge_ranges.
8827 * c-typeck.c (parser_build_binary_op): Update calls to
8828 warn_logical_operator.
8829 * c-common.c (warn_logical_operator): Add new warning.
8830 * c-common.h (warn_logical_operator): Update declaration.
8832 2009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
8834 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
8836 2009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8838 * doc/install.texi: Document MPC requirements, flags etc.
8840 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
8841 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
8842 Evaluate constant arguments.
8843 (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
8844 (fold_builtin_1): Likewise, also evaluate constant arguments.
8845 Remove superfluous break.
8846 (do_mpc_ckconv): New.
8847 * real.h: Include mpc.h.
8848 * toplev.c (print_version): Output MPC version info if available.
8850 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
8852 * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
8854 2009-05-15 H.J. Lu <hongjiu.lu@intel.com>
8856 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
8859 2009-05-15 Jan Hubicka <jh@suse.cz>
8861 * doc/invoke.texi (max-early-inliner-iterations): New flag.
8862 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
8863 (try_inline): Fix return value.
8864 (cgraph_decide_inlining_incrementally): Honor new value.
8865 (cgraph_early_inlining): Handle indirect inlining.
8866 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
8868 2009-05-15 Jan Hubicka <jh@suse.cz>
8870 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
8871 * cgraphunit.c (cgraph_finalize_function): Set it.
8872 (cgraph_expand_function): Use it.
8874 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
8876 * real.c (encode_ieee_half): Define.
8877 (decode_ieee_half): Define.
8878 (ieee_half_format): Define.
8879 (arm_half_format): Define.
8880 * real.h (ieee_half_format): Declare.
8881 (arm_half_format): Declare.
8883 2009-05-15 Sandra Loosemore <sandra@codesourcery.com>
8885 * optabs.c (prepare_float_lib_cmp): Test that the comparison,
8886 swapped, and reversed optabs exist before trying to use them.
8888 2009-05-15 Paul Brook <paul@codesourcery.com>
8889 Sandra Loosemore <sandra@codesourcery.com>
8891 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
8892 loads. Allow PRE_DEC.
8893 (output_move_neon): Handle PRE_DEC.
8894 (arm_print_operand): Add 'A' for neon structure loads.
8895 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
8896 * config/arm/neon.md (neon_mov): Update comment.
8897 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
8899 (Um): New constraint.
8901 2009-05-15 Jan Hubicka <jh@suse.cz>
8903 Revert the following patch until testsuite fallout is fixed:
8904 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
8905 * cgraph.h (struct inline_summary): New filed self_wize,
8906 size_inlining_benefit, self_time and time_inlining_benefit.
8907 (struct cgraph_global_info): Replace insns by time ans size fields.
8908 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
8909 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
8910 (ipcp_update_callgraph): Do not touch function bodies.
8911 * ipa-inline.c: Include except.h
8912 (MAX_TIME): New constant.
8913 (overall_insns): Remove
8914 (overall_size, max_benefit): New static variables.
8915 (cgraph_estimate_time_after_inlining): New function.
8916 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
8917 (cgraph_clone_inlined_nodes): Update size.
8918 (cgraph_mark_inline_edge): Update size.
8919 (cgraph_estimate_growth): Use size info.
8920 (cgraph_check_inline_limits): Check size.
8921 (cgraph_default_inline_p): Likewise.
8922 (cgraph_edge_badness): Compute badness based on benefit and size cost.
8923 (cgraph_decide_recursive_inlining): Check size.
8924 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
8926 (cgraph_decide_inlining): Likewise.
8927 (cgraph_decide_inlining_incrementally): Likewise; honor
8928 PARAM_EARLY_INLINING_INSNS.
8929 (likely_eliminated_by_inlining_p): New predicate.
8930 (estimate_function_body_sizes): New function.
8931 (compute_inline_parameters): Use it.
8932 * except.c (must_not_throw_labels): New function.
8933 * except.h (must_not_throw_labels): Declare.
8934 * tree-inline.c (init_inline_once): Kill inlining_weigths
8935 * tree-ssa-structalias.c: Avoid uninitialized warning.
8936 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
8937 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
8938 (PARAM_INLINE_CALL_COST): Remove.
8939 (PARAM_EARLY_INLINING_INSNS): New.
8941 2009-05-15 Richard Guenther <rguenther@suse.de>
8943 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
8944 not TODO_update_ssa.
8946 2009-05-15 Richard Guenther <rguenther@suse.de>
8948 PR tree-optimization/39999
8949 * gimple.h (gimple_expr_type): Use the expression type looking
8950 through useless conversions.
8951 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
8952 (vn_nary_op_insert_stmt): Likewise.
8953 (simplify_binary_expression): Likewise.
8955 2009-05-15 Richard Guenther <rguenther@suse.de>
8957 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
8958 New options, enabled by default.
8959 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
8961 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
8962 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
8963 * tree-ssa-structalias.c (gate_tree_pta): New function.
8964 (pass_build_alias): Use it.
8966 2009-05-15 Joseph Myers <joseph@codesourcery.com>
8968 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
8969 recurse on an invariant address if a conversion from a pointer
8970 type to a wider integer type is involved.
8972 2009-05-15 Jan Hubicka <jh@suse.cz>
8974 * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
8975 * cgraph.h (struct inline_summary): New filed self_wize,
8976 size_inlining_benefit, self_time and time_inlining_benefit.
8977 (struct cgraph_global_info): Replace insns by time ans size fields.
8978 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
8979 (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
8980 (ipcp_update_callgraph): Do not touch function bodies.
8981 * ipa-inline.c: Include except.h
8982 (MAX_TIME): New constant.
8983 (overall_insns): Remove
8984 (overall_size, max_benefit): New static variables.
8985 (cgraph_estimate_time_after_inlining): New function.
8986 (cgraph_estimate_size_after_inlining): Rewrite using benefits.
8987 (cgraph_clone_inlined_nodes): Update size.
8988 (cgraph_mark_inline_edge): Update size.
8989 (cgraph_estimate_growth): Use size info.
8990 (cgraph_check_inline_limits): Check size.
8991 (cgraph_default_inline_p): Likewise.
8992 (cgraph_edge_badness): Compute badness based on benefit and size cost.
8993 (cgraph_decide_recursive_inlining): Check size.
8994 (cgraph_decide_inlining_of_small_function): Update size; dump sizes
8996 (cgraph_decide_inlining): Likewise.
8997 (cgraph_decide_inlining_incrementally): Likewise; honor
8998 PARAM_EARLY_INLINING_INSNS.
8999 (likely_eliminated_by_inlining_p): New predicate.
9000 (estimate_function_body_sizes): New function.
9001 (compute_inline_parameters): Use it.
9002 * except.c (must_not_throw_labels): New function.
9003 * except.h (must_not_throw_labels): Declare.
9004 * tree-inline.c (init_inline_once): Kill inlining_weigths
9005 * tree-ssa-structalias.c: Avoid uninitialized warning.
9006 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
9007 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
9008 (PARAM_INLINE_CALL_COST): Remove.
9009 (PARAM_EARLY_INLINING_INSNS): New.
9010 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
9011 (inline-call-cost): Remove.
9012 (early-inlining-insns): New.
9014 2009-05-15 Eric Botcazou <ebotcazou@adacore.com>
9016 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them
9018 (print_int_cst_bounds_in_octal_p): Likewise.
9019 (dbxout_type): Adjust calls to above functions. Be prepared to deal
9021 * dwarf2out.c (base_type_die): Likewise.
9022 (is_subrange_type): Delete.
9023 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds.
9024 (modified_type_die): Call subrange_type_for_debug_p on subtypes.
9025 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
9026 if the destination type is boolean.
9027 (build_range_check): Do not special-case subtypes.
9028 (fold_sign_changed_comparison): Likewise.
9029 (fold_unary): Likewise.
9030 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
9031 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
9032 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
9033 * tree.c (subrange_type_for_debug_p): New predicate based on the
9034 former is_subrange_type.
9035 * tree.h (subrange_type_for_debug_p): Declare.
9036 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
9037 (convert_affine_scev): Remove call to above function.
9038 (chrec_convert_aggressive): Likewise.
9039 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
9040 false for conversions involving subtypes.
9041 * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
9042 (vrp_val_min): Likewise.
9043 (needs_overflow_infinity): Likewise.
9044 (extract_range_from_unary_expr): Likewise.
9046 2009-05-15 Paolo Bonzini <bonzini@gnu.org>
9048 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
9049 * config/frv/frv.c: Likewise.
9050 * config/s390/s390.c: Likewise.
9051 * config/sparc/sparc.h: Likewise.
9052 * config/i386/i386.h: Likewise.
9053 * config/i386/i386.c: Likewise.
9054 * config/crx/crx.c: Likewise.
9055 * config/m68hc11/m68hc11.h: Likewise.
9056 * config/iq2000/iq2000.c: Likewise.
9057 * config/mn10300/mn10300.h: Likewise.
9058 * config/mn10300/mn10300.c: Likewise.
9059 * config/m68k/m68k.c: Likewise.
9060 * config/rs6000/rs6000.c: Likewise.
9061 * config/rs6000/xcoff.h: Likewise.
9062 * config/rs6000/linux64.h: Likewise.
9063 * config/rs6000/sysv4.h: Likewise.
9064 * config/score/score3.c: Likewise.
9065 * config/score/score7.c: Likewise.
9066 * config/score/score.c: Likewise.
9067 * config/arm/arm.md: Likewise.
9068 * config/mips/mips.c: Likewise.
9069 * config/mips/mips.md: Likewise.
9070 * config/bfin/bfin.h: Likewise.
9071 * config/pa/pa.c: Likewise.
9072 * config/pa/constraints.md: Likewise.
9074 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
9075 * config/pdp11/pdp11.c (legitimate_address_p): Delete.
9076 * config/pdp11/pdp11.h: Use memory_address_p instead.
9078 2009-05-14 Ian Lance Taylor <iant@google.com>
9080 * passes.c (finish_optimization_passes): Change i to int.
9081 * plugin.c (plugins_active_p): Change event to int.
9082 (dump_active_plugins): Likewise.
9083 * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
9085 * tree.c (tree_range_check_failed): Change c to unsigned int.
9086 (omp_clause_range_check_failed): Likewise.
9087 (build_common_builtin_nodes): Change mode to int. Add cast.
9088 * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
9089 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
9091 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
9092 ++ or -- with a variable of enum type.
9094 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
9097 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
9099 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
9101 * store-motion.c: Do not include params.h
9102 * Makefile.in: Fix dependencies for various files.
9104 2009-05-14 Steven Bosscher <steven@gcc.gnu.org>
9106 * auto-inc-dec.c: Fix pass description, remove apparent
9107 accidental duplication.
9109 2009-05-14 H.J. Lu <hongjiu.lu@intel.com>
9112 * ipa-utils.h (memory_identifier_string): Moved to ...
9113 * tree.h (memory_identifier_string): Here. Add GTY(()).
9115 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
9117 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
9118 in the former documentation of...
9119 (GO_IF_LEGITIMATE_ADDRESS): ... this.
9120 * ira-conflicts.c (get_dup_num): Use address_operand.
9121 * targhooks.c (default_legitimate_address_p): New.
9122 * targhooks.h (default_legitimate_address_p): New.
9123 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
9125 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
9126 * target.h (struct target): Add legitimate_address_p.
9127 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
9128 (TARGET_INITIALIZER): Include it.
9130 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9131 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
9132 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
9133 (TARGET_LEGITIMATE_ADDRESS_P): New.
9135 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9136 (REG_OK_STRICT_P): Delete.
9137 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
9138 (frv_legitimate_address_p_1): ... this.
9139 * config/frv/frv.c (frv_legitimate_address_p): Forward to...
9140 (frv_legitimate_address_p_1): ... the renamed old
9141 frv_legitimate_address_p.
9142 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
9143 (TARGET_LEGITIMATE_ADDRESS_P): New.
9145 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9146 * config/s390/s390-protos.h (legitimate_address_p): Remove.
9147 * config/s390/s390.c (legitimate_address_p): Rename to...
9148 (s390_legitimate_address_p): ... this, make static.
9149 (legitimize_address): Adjust call.
9150 (TARGET_LEGITIMATE_ADDRESS_P): New.
9151 * config/s390/constraints.md ("e"): Call strict_memory_address_p.
9153 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9154 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
9155 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
9156 (TARGET_LEGITIMATE_ADDRESS_P): New.
9158 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9159 * config/spu/spu-protos.h (spu_legitimate_address): Remove.
9160 * config/spu/spu.c (spu_legitimate_address): Rename to...
9161 (spu_legitimate_address_p): ... this, make static.
9162 (TARGET_LEGITIMATE_ADDRESS_P): New.
9164 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9165 * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
9166 * config/sparc/sparc.c (legitimate_address_p): Rename to...
9167 (sparc_legitimate_address_p): ... this, make static and return bool.
9168 (legitimize_address): Adjust call.
9169 (TARGET_LEGITIMATE_ADDRESS_P): New.
9171 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9172 * config/i386/i386-protos.h (legitimate_address_p): Remove.
9173 * config/i386/i386.c (legitimate_address_p): Rename to...
9174 (ix86_legitimate_address_p): ... this, make static.
9175 (constant_address_p): Move after it, adjust call.
9176 (TARGET_LEGITIMATE_ADDRESS_P): New.
9178 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9179 * config/avr/avr-protos.h (legitimate_address_p): Remove.
9180 * config/avr/avr.c (legitimate_address_p): Rename to...
9181 (avr_legitimate_address_p): ... this, make static.
9182 (legitimize_address): Adjust call.
9183 (TARGET_LEGITIMATE_ADDRESS_P): New.
9185 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9186 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
9187 * config/crx/crx.c (crx_legitimate_address_p): Make static.
9188 (TARGET_LEGITIMATE_ADDRESS_P): New.
9190 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9191 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
9192 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
9193 (TARGET_LEGITIMATE_ADDRESS_P): New.
9195 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9196 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
9198 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
9200 (TARGET_LEGITIMATE_ADDRESS_P): New.
9202 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9203 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
9205 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
9207 (m68hc11_legitimate_address_p): ... this, make static.
9208 (go_if_legitimate_address_internal): Rename to...
9209 (m68hc11_legitimate_address_p_1): ... this.
9210 (legitimize_address): Adjust call.
9211 (TARGET_LEGITIMATE_ADDRESS_P): New.
9213 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9214 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
9215 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
9216 (TARGET_LEGITIMATE_ADDRESS_P): New.
9218 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9219 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
9220 * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
9221 (mn10300_legitimate_address_p): ... this, make static.
9222 (TARGET_LEGITIMATE_ADDRESS_P): New.
9224 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9225 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
9226 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
9227 (TARGET_LEGITIMATE_ADDRESS_P): New.
9229 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9230 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
9231 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
9232 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9233 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
9234 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
9235 (rs6000_legitimate_address_p): ... this, make static.
9236 (TARGET_LEGITIMATE_ADDRESS_P): New.
9237 (REG_MODE_OK_FOR_BASE_P): Delete.
9238 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
9240 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9241 * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
9243 * config/picochip/picochip.c (picochip_legitimate_address_p): Make
9244 static, adjust types.
9245 (TARGET_LEGITIMATE_ADDRESS_P): New.
9247 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9248 * config/score/score.c (score_address_p): Rename to...
9249 (score_legitimate_address_p): ... this.
9250 (TARGET_LEGITIMATE_ADDRESS_P): New.
9251 * config/score/score3.c (score3_address_p): Rename to...
9252 (score3_legitimate_address_p): ... this.
9253 * config/score/score7.c (score7_address_p): Rename to...
9254 (score7_legitimate_address_p): ... this.
9256 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
9257 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
9258 GO_IF_LEGITIMATE_ADDRESS): Delete.
9259 * config/arm/arm-protos.h (thumb1_legitimate_address_p,
9260 thumb2_legitimate_address_p): Delete.
9261 (arm_legitimate_address_p): Rename to...
9262 (arm_legitimate_address_outer_p): ... this.
9263 * config/arm/constraints.md ("Uq"): Adjust call.
9264 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
9265 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
9267 (arm_legitimate_address_outer_p): ... this.
9268 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
9270 (TARGET_LEGITIMATE_ADDRESS_P): New.
9272 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9273 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
9274 * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
9275 (TARGET_LEGITIMATE_ADDRESS_P): New.
9277 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9278 * config/vax/vax-protos.h (legitimate_address_p): Remove.
9279 * config/vax/vax.c (legitimate_address_p): Rename to...
9280 (vax_legitimate_address_p): ... this, make static.
9281 (TARGET_LEGITIMATE_ADDRESS_P): New.
9283 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9284 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
9285 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
9286 (TARGET_LEGITIMATE_ADDRESS_P): New.
9288 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9289 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
9290 * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
9291 (mmix_legitimate_address_p): ... this, make static.
9292 (TARGET_LEGITIMATE_ADDRESS_P): New.
9294 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
9295 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
9296 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
9297 (TARGET_LEGITIMATE_ADDRESS_P): New.
9299 2009-05-14 Paolo Bonzini <bonzini@gnu.org>
9301 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
9302 of MODE_COMPLEX_INT.
9304 2009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
9306 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
9307 LCT_NORMAL in function call.
9308 * mips-tdump.c (print_file_desc): Add cast to enum type.
9309 * mips-tfile.c (add_ext_symbol): Add casts to enum types.
9310 (mark_stabs): Add casts to enum types.
9311 (parse_stabs_common): Add casts to enum types.
9313 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
9315 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
9316 Check for invalid values of LETTER.
9318 2009-05-13 Taras Glek <tglek@mozilla.com>
9320 * attribs.c (register_attribute): moved out attribute registration
9321 into register_attribute.
9322 * doc/plugins.texi: Documented register_attribute and
9324 * gcc-plugin.h: Added forward decl for register_attribute.
9325 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
9326 * plugin.c (register_callback, invoke_plugin_callbacks): Added
9327 PLUGIN_ATTRIBUTES boilerplate.
9329 2009-05-14 Dave Korn <dave.korn.cygwin@gmail.com>
9331 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration
9332 values even in sentinel and empty entries.
9333 (ms_printf_flag_specs): Likewise.
9334 (ms_scanf_flag_specs): Likewise.
9335 (ms_strftime_flag_specs): Likewise.
9336 (ms_print_char_table): Likewise.
9337 (ms_scan_char_table): Likewise.
9338 (ms_time_char_table): Likewise.
9340 2009-05-13 Doug Kwan <dougkwan@google.com>
9342 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
9344 2009-05-13 Adam Nemet <anemet@caviumnetworks.com>
9346 * config/mips/mips.md (store): Add attributes for QI and HI.
9348 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
9349 (truncdi<mode>2): ... this new pattern.
9351 2009-05-13 Brad Hards <bradh@kde.org>
9353 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
9355 2009-05-14 Jakub Jelinek <jakub@redhat.com>
9356 Ben Elliston <bje@au.ibm.com>
9359 * dse.c (check_mem_read_rtx): Guard against width == -1.
9361 2009-05-13 Michael Matz <matz@suse.de>
9364 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
9365 (trivially_conflicts_p): New function.
9366 (insert_backedge_copies): Use it.
9368 2009-05-13 Janis Johnson <janis187@us.ibm.com>
9370 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
9371 (handle_stdc_pragma): Use new enum constant names.
9372 (handle_pragma_float_const_decimal64): Ditto.
9374 2009-05-13 Ian Lance Taylor <iant@google.com>
9376 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
9379 2009-05-13 Nathan Sidwell <nathan@codesourcery.com>
9381 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
9382 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
9384 * config/m68k/m68k.h (FL_UCLINUX): Define.
9386 2009-05-13 Jan Hubicka <jh@suse.cz>
9388 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
9390 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
9392 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
9393 unless -fschedule-insns is specified.
9395 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
9398 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
9399 TARGET_EXPAND_CBRANCHDI4.
9400 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
9401 * config/sh/sh.opt (mexpand-cbranchdi): Remove.
9402 (cmpeqdi): Fix comment.
9404 2009-05-12 Kaz Kojima <kkojima@gcc.gnu.org>
9406 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
9407 (sh_legitimate_address_p): Likewise.
9408 * config/sh/sh.c (sh_legitimate_index_p): New.
9409 (sh_legitimate_address_p): Likewise.
9410 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
9411 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
9412 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
9413 (MAYBE_BASE_REGISTER_RTX_P): New macro.
9414 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
9415 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
9416 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
9417 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
9418 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
9420 2009-05-12 Jan Hubicka <jh@suse.cz>
9422 * tree-inline.c (estimate_operator_cost): Add operands;
9423 when division happens by constant, it is cheap.
9424 (estimate_num_insns): Loads and stores are not having cost of 0;
9425 EH magic stuff is cheap; when computing runtime cost of switch,
9426 use log2 base of amount of its cases; builtin_expect has cost of 0;
9427 compute cost for moving return value of call.
9428 (init_inline_once): Initialize time_based flags.
9429 * tree-inline.h (eni_weights_d): Add time_based flag.
9431 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
9433 * df-core.c: Update head documentation.
9435 2009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com>
9438 * rs6000.c (rs6000_generate_compare): Use op1b instead of
9439 shadowing exisiting variable op1.
9441 2009-05-12 Uros Bizjak <ubizjak@gmail.com>
9444 * config/i386/driver-i386.c (processor_signatures): New enum.
9445 (SIG_GEODE): Move from vendor_signatures to processor_signatures.
9446 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
9447 processor signature to detect geode processor.
9449 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
9453 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
9455 * optabs.c (prepare_cmp_insn): Temporarily disable test that
9456 causes spurious differences between trunk and cond-optab branch.
9458 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
9460 * dojump.c (compare_from_rtx): Delete.
9461 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize
9462 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail
9463 if the comparison does not satisfy the predicate; test predicates for
9464 operands 2 and 3 of a cstore pattern. Don't try cstore optab
9465 further if one existing pattern fails.
9466 * expr.h (compare_from_rtx): Delete.
9467 (prepare_operand): Declare it.
9468 * optabs.c: Change "lib call" to "libcall" throughout.
9469 (bcc_gen_fctn, setcc_gen_code, trap_rtx,
9470 HAVE_conditional_trap, emit_cmp_insn): Delete.
9471 (can_compare_p): Delete cmp_optab case.
9472 (prepare_float_lib_cmp): Return an rtx and a machine mode.
9473 Accept other parameters by value.
9474 (prepare_operand): Make non-static.
9475 (prepare_cmp_insn): Return an rtx and a machine mode. Accept
9476 other parameters by value. Try to widen operands here based on
9477 an optab_methods argument and looking at cbranch_optab.
9478 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
9479 loop. Use cbranch_optab directly.
9480 (emit_cmp_and_jump_insns): Fix comment. Adjust call to
9481 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
9483 (emit_conditional_move, emit_conditional_add): Inline what's needed
9484 of compare_from_rtx, using new prepare_cmp_insn for the rest.
9485 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
9486 with COMPARE. Move cmov_optab and cstore_optab above
9487 with cbranch_optab, move cmp_optab down with ucmp_optab,
9488 remove tst_otpab. Do not initialize trap_rtx.
9489 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate
9490 for trap code. Do not check HAVE_conditional_trap. Use
9491 prepare_cmp_insn. Accept no predicate for operand 3.
9492 * optabs.h (OTI_cmp): Mark as used only for libcalls.
9493 (OTI_ctrap, ctrap_optab): New.
9494 (tst_optab): Delete.
9495 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
9496 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
9497 with lookup of ctrap_optab.
9498 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
9502 * combine.c (combine_simplify_rtx, simplify_set): Do not
9503 special case comparing against zero for cc0 machines.
9504 * simplify-rtx.c (simplify_binary_operation_1): Never remove
9505 COMPARE on cc0 machines.
9506 (simplify_relational_operation): Return a new expression when
9507 a COMPARE could be removed.
9508 * final.c (final_scan_insn): Compare cc_status values
9509 against LHS of a (compare FOO (const_int 0)) cc0 source.
9510 Also check if cc_status.value is the full compare.
9512 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
9513 (cstoreMM4): Document.
9514 (conditional_trap): Document ctrapMM4 instead.
9515 (sync_compare_and_swapMM): Refer to cbranchcc4.
9516 (Dependent Patterns): Eliminate obsolete information referring to
9517 the old jump optimization phase.
9518 (Canonicalization): Include cbranchcc4 case, omit canonicalization
9519 of compares with 0 on cc0 machines.
9520 (Jump Patterns): Refer to MODE_CC jump patterns preferably,
9521 avoiding references to cc0. Remove text about storing operands
9523 * doc/tm.texi (Condition Codes): Include blurb on different
9524 condition code representations, separate into subsections for
9525 CC0, MODE_CC and conditional execution.
9527 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
9528 alpha_emit_setcc): Accept operands and a machine mode.
9529 * config/alpha/alpha.c (alpha_emit_conditional_branch):
9530 Get code/op0/op1 from operands, use machine mode argument
9531 instead of alpha_compare.fp_p. Emit the branch here.
9532 (alpha_emit_setcc): Likewise, and return boolean.
9533 (alpha_emit_conditional_move): Likewise. Assert that
9534 cmp_op_mode == cmp_mode, and simplify accordingly.
9535 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
9536 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
9537 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
9539 (stack probe test): Use cbranchdi4.
9540 * config/alpha/predicates.md (alpha_cbranch_operator): New.
9542 * config/arc/arc.c (gen_compare_reg): Do not emit cmp.
9543 * config/arc/arc.h (movsicc, movsfcc): Use it.
9544 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
9545 (cbranchsi4, cstoresi4): New.
9546 (cmpsi, bCC and sCC expanders): Remove.
9548 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
9549 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
9550 * config/arm/predicates.md (arm_comparison_operator): Only include
9551 floating-point operators if there is a hardware floating-point unit.
9552 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
9553 deferring to cbranch_cc and cstore_cc respectively.
9554 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
9555 cbranch_cc, cstore_cc): New.
9556 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
9558 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
9560 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
9561 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
9563 (adjust_insn_length): Adjust calls.
9564 (avr_reorg): Handle (compare (foo) (const_int 0)).
9565 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
9566 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
9567 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
9568 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
9570 (cbranchqi4, cbranchhi4, cbranchsi4): New.
9571 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
9573 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
9574 (cbranchsi4, cstorebi4, cstoresi4): New.
9575 (movbisi): This insn is duplicate, split it to zero_extend.
9576 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
9577 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode.
9578 (bfin_optimize_loop): Use cbranch expander.
9579 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
9580 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
9581 (bfin_bimode_comparison_operator): ... this.
9582 (bfin_direct_comparison_operator): New.
9584 * config/cris/cris.c (cris_normal_notice_update_cc): Look
9585 inside (compare FOO (const_int 0)).
9586 (cris_rtx_costs): Handle ZERO_EXTRACT.
9587 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
9588 (*tstdi_non_v32): Fold in *cmpdi_non_v32.
9589 (*tstdi_v32): Delete.
9590 (*cmpdi_non_v32): Add M alternative for operand 1.
9591 (cmpsi, cmp<mode>): Make private.
9592 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
9594 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
9596 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
9597 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
9598 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
9599 (cc_reg_operand): New.
9601 * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
9602 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
9603 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
9604 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
9605 crx_expand_scond): Delete.
9607 * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
9609 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
9610 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
9612 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
9613 cstoresi4, cstoresf4, cstoredf4): New.
9614 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
9615 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
9616 Receive the entire operands array.
9617 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
9618 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
9619 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
9620 Get test/op0/op1 from the operands array.
9621 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
9623 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
9624 (h8300_expand_store): New.
9625 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
9627 (h8300_expand_branch): Emit compare here. Adjust for new arguments.
9628 (h8300_expand_store): New.
9629 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
9630 or do not try to produce (set (cc0) REG).
9631 (peepholes): Wrap arguments with COMPARE. Add a peephole to
9632 change a compare into a move to a scratch register. Disable some
9633 peepholes when comparing with zero.
9634 (tstsi, tsthi, tstsi, cmpqi): Make private.
9637 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
9640 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
9641 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
9642 (ix86_emit_i387_log1p): Use gen_cbranchxf4.
9643 (ix86_emit_i387_log1p): Use cbranchxf2.
9644 (ix86_expand_setcc): Return void.
9645 * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
9646 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
9647 cmp<MODEF>, cmpcc): Remove.
9648 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
9649 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
9650 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
9651 (sCC and bCC expanders): Remove.
9652 (stack_protect_test): Use cbranchcc4.
9654 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
9656 (ia64_expand_compare): Accept three rtx by reference and return void.
9657 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
9658 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code
9659 from *expr. Update *expr with the BImode comparison to do.
9660 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
9661 cmptf, bCC, sCC, conditional_trap): Delete.
9662 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4,
9663 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
9664 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
9665 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
9666 * config/ia64/predicates.md (ia64_cbranch_operator): New.
9668 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
9669 type of last argument.
9670 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
9671 (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
9672 use machine mode argument instead of branch_type. Remove dead
9673 code for floating-point comparisons.
9674 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
9675 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
9677 (cbranchsi4, cstoresi4): New.
9678 * config/iq2000/predicates.md (reg_or_const_operand): New.
9680 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
9681 * config/m32c/m32c.md (any_cond, gl_cond): Delete.
9682 (b<code>_op): Rewrite to...
9683 (bcc_op): ... this, using match_operator.
9684 (s<code>_op): Rewrite to...
9685 (scc_op): ... this, using match_operator.
9686 (s<code>_24_op): Rewrite to...
9687 (scc_op_24): ... this, using match_operator.
9688 (s<code>_<mode>): Rewrite to...
9689 (cstore<mode>4): ... this, using match_operator.
9690 (s<code>_<mode>_24): Rewrite to...
9691 (cstore<mode>4_24): ... this, using match_operator.
9692 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
9693 m32c_unpend_compare, m32c_expand_scc): Delete.
9694 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
9695 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
9696 (m32c_expand_movcc): Change NE to EQ if necessary.
9697 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
9699 * config/m32r/m32r-protos.h (gen_cond_store): New.
9700 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
9701 (gen_cond_store): New, from sCC patterns.
9702 (m32r_expand_block_move): Use cbranchsi4.
9703 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
9704 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
9705 (cbranchsi4, cstoresi4): New.
9707 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
9709 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
9710 (m68hc11_notice_update_cc): Look into a compare with 0.
9711 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
9713 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
9714 cmphi, cmpqi, bCC): Delete.
9715 (cbranchsi4, cbranchhi4, cbranchqi4): New.
9716 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
9717 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
9720 * config/m68k/predicates.md (m68k_cstore_comparison_operator,
9721 const0_operand, const1_operand, m68k_subword_comparison_operand): New.
9722 * config/m68k/constraints.md (H): New.
9723 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
9724 the define_insn below.
9725 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
9726 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
9727 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
9728 patterns): Wrap RHS with COMPARE.
9729 (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
9730 (*cmpdi_internal): Name this pattern.
9731 (cmpdi): Change to define_insn.
9732 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
9733 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
9734 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
9736 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
9737 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
9738 (conditional_trap): Change to...
9739 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
9740 (*conditional_trap): Use the ordered_comparison_operator and
9741 const1_operand predicates.
9742 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
9743 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
9744 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
9745 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
9747 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
9748 mcore_modify_comparison, mcore_gen_compare_reg): Remove.
9749 (mcore_gen_compare): New.
9750 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
9751 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
9752 (mcore_gen_compare): ... this.
9753 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
9754 (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
9755 (stack probe pattern): Use cbranchsi4.
9757 * config/mips/predicates.md (mips_cstore_operator): New.
9758 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
9759 * config/mips/mips.md (any_cond): Delete.
9760 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates,
9762 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
9763 fixuns_truncsfdi2): Use cbranch patterns.
9764 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete.
9765 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
9766 Adjust call to mips_expand_conditional_branch.
9767 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
9769 * config/mips/mips-protos.h (mips_expand_conditional_branch,
9770 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
9771 * config/mips/mips.c (cmp_operands): Delete.
9772 (mips_emit_compare): Get comparison operands from *op0/*op1.
9773 (mips_expand_scc): Get code/op0/op1/target from operands. Assert
9774 that it succeeds. Use op0/op1 instead of cmp_operands.
9775 (mips_expand_conditional_branch, mips_expand_conditional_move,
9776 mips_expand_conditional_trap): Likewise.
9777 (mips_block_move_loop): Use cbranch patterns.
9778 * config/mips/mips.h (cmp_operands): Delete.
9780 * config/mmix/mmix.c (mmix_valid_comparison): Delete.
9781 (mmix_gen_compare_reg): Just return a register in the right CC mode.
9782 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
9783 * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
9784 (*cmpcc_folded): Rename to...
9785 (*cmpdi_folded): this.
9786 (*cmpcc): Rename to...
9788 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
9791 (cbranchdf4): New. Handle invalid comparisons here.
9792 * config/mmix/predicates.md (float_comparison_operator): New.
9794 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
9795 zero_extract to be cheap in (compare (zero_extract) (const_int 0).
9796 * config/mn10300/mn10300.md (tst): Delete.
9797 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
9798 Name these patterns and wrap RHS in a compare.
9799 (*cmpsi): Make this pattern private. Include tst.
9800 (*cmpsf): Make this pattern private.
9801 (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
9802 (compare with zero peepholes): Likewise.
9804 (cbranchsi4, cbranchsf4): New.
9805 (casesi): Use cbranchsi4.
9807 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
9808 hppa_branch_type): Delete.
9809 (return_addr_rtx): Use cbranchsi4.
9810 (emit_bcond_fp): Accept all operands. Replace CODE with NE.
9811 Emit CCFPmode comparison here.
9812 (gen_cmp_fp): Delete, now part of emit_bcond_fp.
9813 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
9814 hppa_branch_type): Delete.
9815 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
9816 (movsicc, movdicc): Remove references to hppa_compare_op0,
9817 hppa_compare_op1 and compare_from_rtx.
9818 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
9819 (casesi): Use cbranchsi4.
9821 * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
9822 * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
9823 * config/pdp11/pdp11.md (register_or_const0_operand): New.
9824 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives.
9825 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
9827 (cbranchdf4, cbranchhi4, cbranchqi4): New.
9828 (*branch, *branch_inverted): New.
9830 * config/picochip/picochip.md (cbranchhi4): Use
9831 ordered_comparison_operator.
9832 (cmphi, bCC): Remove.
9834 * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
9835 (trap_comparison_operator): Delete.
9836 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
9837 rs6000_emit_cbranch): Accept mode and operands.
9838 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
9839 rs6000_compare_fp_p): Delete.
9840 (rs6000_generate_compare): Accept mode and comparison. Extract code
9841 and op0/op1 from there. Replace references to rs6000_compare_op0
9842 and rs6000_compare_op1.
9843 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
9844 extract result from passed operands.
9845 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
9846 extract loc from passed operands.
9847 (rs6000_emit_cmove): Likewise.
9848 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
9849 rs6000_compare_fp_p): Delete.
9850 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
9851 (cbranch<GPR>4, cbranch<FP>4): New.
9852 (cstore<mode>4): New. Consolidate here all choices about when to use
9853 portable or specialized sCC sequences.
9854 (stack_protect_test): Use cbranchsi4.
9855 (conditional_trap): Replace with ctrap<GPR>4.
9856 (conditional trap insn): Replace trap_comparison_operator with
9857 ordered_comparison_operator.
9859 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
9860 (s390_emit_prologue): Use ctrap.
9861 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
9862 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
9863 New predicates replacing...
9864 * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
9865 (cmp<GPR>, cmp<FP>, cmpcc): Delete.
9866 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
9867 (add<mode>cc): Do not use s390_compare_op0/op1.
9868 (s<code>): Change to...
9869 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
9871 (cstorecc4): ... this. Handle EQ or NE equally.
9872 (*sne): Un-privatize for use in cstorecc4.
9873 (b<code>): Change to...
9874 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
9875 (conditional_trap): Replace with...
9876 (ctrap<GPR>4, ctrap<FP>4): ... these.
9877 (stack_protect): Use cbranchcc4.
9879 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
9880 * config/score/score-protos.h (score_gen_cmp): Delete.
9881 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
9882 (score_block_move-loop): Use cbranchsi4.
9883 * config/score/score.md (cbranchsi4): New.
9884 (cmpsi, bCC): Delete.
9885 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
9886 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
9887 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
9888 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
9889 * config/score/score3.h (score3_gen_cmp): Delete.
9890 * config/score/score7.h (score7_gen_cmp): Delete.
9892 * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
9893 (sh_emit_scc_to_t): ... this. Return void.
9894 (from_compare): Rename to...
9895 (sh_emit_compare_and_branch): ... this.
9896 (sh_emit_compare_and_set): New.
9897 (sh_expand_t_scc): Accept operands.
9898 * config/sh/predicates.md (sh_float_comparison_operator): New.
9899 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
9900 (prepare_scc_operands): Rename to...
9901 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from
9903 (sh_emit_cheap_store_flag): New.
9904 (sh_emit_set_t_insn): New.
9905 (from_compare): Rename to...
9906 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite
9907 handling of TARGET_SH2E floating point to avoid recursive call.
9908 Generate branch here.
9909 (sh_emit_compare_and_set): New.
9910 (sh_expand_t_scc): Get op0/op1 from arguments.
9911 (sh_emit_cheap_store_flag): New.
9912 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
9914 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
9915 (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
9916 (movsicc, movdicc): Do nothing when it recreated operands from
9917 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to
9918 prepare_scc_operands (now sh_emit_scc_to_t).
9919 (udivdi3): Use cstoresi4.
9920 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
9921 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
9922 (cbranchint4_media, cbranchfp4_media): New.
9923 (casesi): Use cbranchdi4.
9924 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
9926 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
9927 (movnegt): Remove second operand.
9928 (cbranchsf4, cbranchdf4): New.
9929 (stack_protect): Use cbranchdi4/cbranchsi4.
9931 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
9932 (gen_compare_reg): Accept comparison, extract part of it to...
9933 (gen_compare_reg_1): ... this.
9934 (gen_compare_operator): Delete.
9935 (gen_v9_scc): Accept separate destination, comparison code and arms.
9936 Do not use sparc_compare_op0/sparc_compare_op1.
9937 (emit_scc_insn, emit_conditional_branch_insn): New.
9938 (emit_v9_brxx): Make static. Remove useless assertion.
9939 (sparc_emit_float_lib_cmp): Return RTL instead of calling
9941 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
9942 * config/sparc/sparc-protos.h (gen_compare_reg,
9943 sparc_emit_float_lib_cmp): Adjust prototype.
9944 (emit_scc_insn, emit_conditional_branch_insn): New.
9945 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
9946 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
9947 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
9948 iterators to the top.
9949 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
9950 snesi_special_extend, sCC, bCC, seqdi_special_trunc,
9951 snedi_special_trunc): Delete.
9952 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
9953 and snedi_special_trunc.
9954 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
9955 cbranchdi4, cbranch<F:mode>4): New.
9956 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
9957 here. Use gen_compare_reg instead of gen_compare_operator.
9958 (conditional_trap): Replace with...
9959 (ctrapsi4, ctrapdi4): ... this.
9960 (stack_protect_test): Use cbranchcc4.
9962 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
9964 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove.
9965 (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
9966 Change spu_compare_op0/op1 to op0/op1 throughout. Get target
9967 from operands[0] or operands[3] depending on is_set.
9968 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
9969 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
9970 cmpdf, bCC), sCC: Remove.
9971 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4,
9972 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
9974 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
9975 spu_emit_branch_or_set.
9977 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
9979 * config/stormy16/stormy16.h (xstormy16_compare_op0,
9980 xstormy16_compare_op1): Delete.
9981 * config/stormy16/stormy16.c (xstormy16_compare_op0,
9982 xstormy16_compare_op1): Delete.
9983 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
9985 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
9986 (cmphi, cmpsi, bCC): Remove.
9988 * config/v850/v850.md (tstsi, cmpsi): Fold into...
9989 (*cmpsi): ... this one.
9990 (cbranchsi4, cstoresi4): New.
9991 (bCC expanders): Delete.
9992 (sCC insns): Fold into...
9993 (*setcc): ... this one.
9994 (casesi): Do not use gen_cmpsi and gen_bgtu.
9995 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
9996 (movsicc): Simplify.
9997 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
9999 * config/vax/vax-protos.h (cond_name): New.
10000 (vax_output_conditional_branch): Remove.
10001 * config/vax/vax.c (cond_name): New.
10002 (vax_output_conditional_branch): Remove.
10003 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
10004 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
10005 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst.
10006 (bit<VAXint>): Wrap source with (compare).
10007 (b<code> and following unnamed pattern): Rename to *branch and
10008 *branch_reversed. Change macroization to match_operator.
10009 (cbranch<VAXint>4, cbranch<VAXfp>4): New.
10011 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
10012 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
10013 Change last argument to machine_mode.
10014 (xtensa_expand_scc): Add machine_mode argument.
10015 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
10016 (gen_conditional_move, xtensa_expand_conditional_branch,
10017 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
10018 instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
10019 Adjust operand numbers.
10020 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
10022 * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
10023 (cmpsi, cmpsf, b<code>, s<code>): Delete.
10024 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
10026 2009-05-12 Paolo Bonzini <bonzini@gnu.org>
10028 * optabs.c (prepare_cmp_insn): Temporarily disable test that
10029 causes spurious differences between trunk and cond-optab branch.
10031 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
10034 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
10036 2009-05-12 Alexandre Oliva <aoliva@redhat.com>
10038 * tree.c (iterative_hash_pointer): Delete.
10039 (iterative_hash_expr): Short-circuit handling of NULL pointer.
10040 Hash UIDs and versions of SSA names. Don't special-case built-in
10041 function declarations.
10043 2009-05-11 Ian Lance Taylor <iant@google.com>
10046 * graphite.c: Force -Wc++-compat to only be a warning before
10047 #including "cloog/cloog.h".
10049 2009-05-11 Martin Jambor <mjambor@suse.cz>
10051 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
10053 2009-05-11 Jan Hubicka <jh@suse.cz>
10055 * tree-ssa-loop-ivcanon.c: Include target.h
10056 (struct loop_size): new structure.
10057 (constant_after_peeling): New predicate.
10058 (tree_estimate_loop_size): New function.
10059 (estimated_unrolled_size): Rewrite for new estimates.
10060 (try_unroll_loop_completely): Use new estimates.
10061 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
10063 2009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
10065 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
10066 libcpp interface change.
10067 (spu_macro_to_expand): Likewise.
10069 2009-05-11 Paolo Bonzini <bonzini@gnu.org>
10071 PR tree-optimization/40026
10072 * gimplify.c (gimplify_init_constructor): Change initial conditional
10073 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after
10074 optimize_compound_literals_in_ctor.
10076 2009-05-11 Nathan Sidwell <nathan@codesourcery.com>
10078 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
10080 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
10082 2009-05-11 H.J. Lu <hongjiu.lu@intel.com>
10084 * tree-vect-data-refs.c (vect_analyze_group_access): Use
10085 HOST_WIDE_INT for gap.
10087 2009-05-11 Ira Rosen <irar@il.ibm.com>
10089 PR tree-optimization/40074
10090 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
10091 account in group size and step comparison.
10093 2009-05-11 Richard Guenther <rguenther@suse.de>
10095 * passes.c (init_optimization_passes): Strip now incorrect comment.
10096 (execute_function_todo): Do not set PROP_alias.
10097 * tree-pass.h (PROP_alias): Remove.
10098 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
10099 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
10100 * tree-nrv.c (pass_return_slot): Likewise.
10101 * tree-object-size.c (pass_object_sizes): Likewise.
10102 * tree-ssa-dom.c (pass_dominator): Likewise.
10103 (pass_phi_only_cprop): Likewise.
10104 * tree-ssa-dse.c (pass_dse): Likewise.
10105 * tree-ssa-phiopt.c (pass_phiopt): Likewise.
10106 (pass_cselim): Likewise.
10107 * tree-ssa-pre.c (pass_pre): Likewise.
10108 (pass_fre): Likewise.
10109 * tree-ssa-reassoc.c (pass_reassoc): Likewise.
10110 * tree-ssa-sink.c (pass_sink_code): Likewise.
10111 * tree-stdarg.c (pass_stdarg): Likewise.
10112 * tree-tailcall.c (pass_tail_calls): Likewise.
10113 * tree-vrp.c (pass_vrp): Likewise.
10115 2009-05-10 Ian Lance Taylor <iant@google.com>
10117 * basic-block.h (enum profile_status): Break out of struct
10118 control_flow_graph.
10119 * cgraph.h (struct inline_summary): Break out of struct
10121 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
10122 of struct cgraph_order_sort.
10123 * combine.c (enum undo_kind): New enum, broken out of struct undo.
10124 * cse.c (struct branch_path): Break out of struct
10125 cse_basic_block_data.
10126 * except.h (enum eh_region_type): Break out of struct eh_region.
10127 * gcc.c (enum add_del): Break out of struct modify_target.
10128 * genrecog.c (enum decision_type): Break out of struct decision_test.
10129 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
10131 * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
10132 * regmove.c (enum match_use): New enum, broken out of struct match.
10133 * sched-int.h (enum post_call_group): New enum, broken out of
10135 (struct deps_reg): Break out of struct deps.
10136 * target.h (struct asm_int_op): Break out of struct gcc_target.
10137 * tree-eh.c (struct goto_queue_node): Break out of struct
10139 * tree-inline.h (enum copy_body_cge_which): Break out of
10141 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
10143 * c-decl.c (in_struct, struct_types): New static variables.
10144 (pushtag): Add loc parameter. Change all callers.
10145 (lookup_tag): Add ploc parameter. Change all callers.
10146 (check_compound_literal_type): New function.
10147 (parser_xref_tag): Add loc parameter. Change all callers. If
10148 -Wc++-compat, warn about struct/union/enum types defined within a
10150 (start_struct): Add enclosing_in_struct, enclosing_struct_types,
10151 and loc parameters. Change all callers. Change error calls to
10152 error_at, using loc. For a redefinition, if the location of the
10153 original definition is known, report it. Set in_struct and
10154 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof.
10155 (finish_struct): Add new parameters enclosing_in_struct and
10156 enclosing_struct_types. Change all callers. Set
10157 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
10158 in the struct. If in a struct, add this struct to struct_types.
10159 (start_enum): Add loc parameter. Change all callers. Use
10160 error_at for errors, using loc. For a redefinition, if the
10161 location of the original definition is known, report it. If in a
10162 struct, add this enum type to struct_types. If -Wc++-compat warn
10163 if in sizeof, typeof, or alignof.
10164 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
10165 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
10166 (c_parser_enum_specifier): Get enum location for start_enum.
10167 (c_parser_struct_or_union_specifier): Get struct location for
10168 start_struct. Save in_struct and struct_types status between
10169 start_struct and finish_struct.
10170 (c_parser_cast_expression): Get location of cast.
10171 (c_parser_alignof_expression): Get location of type.
10172 (c_parser_postfix_expression): Likewise.
10173 (c_parser_postfix_expression_after_paren_type): Add type_loc
10174 parameter. Change all callers. Call check_compound_literal_type.
10175 Use type_loc for error about variable size type.
10176 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
10177 of an enum constant from an enum type defined in a struct or union.
10178 (c_cast_expr): Add loc parameter. Change all callers. If
10179 -Wc++-compat, warn about defining a type in a cast.
10180 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
10181 (start_enum, start_struct, finish_struct): Update declarations.
10182 (parser_xref_tag, c_cast_expr): Update declarations.
10183 (check_compound_literal_type): Declare.
10185 2009-05-11 Ben Elliston <bje@au.ibm.com>
10187 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
10188 for recent libcpp interface change.
10189 (rs6000_macro_to_expand): Likewise.
10191 2009-05-10 Michael Matz <matz@suse.de>
10194 * config/arm/arm.c (require_pic_register): Emit on entry edge,
10195 not at entry of function.
10197 2009-05-10 Richard Guenther <rguenther@suse.de>
10199 PR tree-optimization/40081
10201 * tree-sra.c (instantiate_element): Instantiate scalar replacements
10202 using the main variant of the element type. Do not fiddle with
10203 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
10205 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
10206 structs with volatile fields.
10208 2009-05-10 Jan Hubicka <jh@suse.cz>
10210 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
10211 (estimate_move_cost): Assert that it does not get called for
10213 (estimate_num_insns): Skip VOID types in argument handling.
10214 (optimize_inline_calls): Delete unreachable blocks and verify that
10215 callgraph is valid.
10217 2009-05-10 Jan Hubicka <jh@suse.cz>
10219 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
10220 * cgraph.c (cgraph_mark_address_taken_node): New function.
10221 (dump_cgraph_node): Dump new flag.
10222 * cgraph.h (struct cgraph_node): Add address_taken.
10223 (cgraph_mark_address_taken_node): New function.
10224 * ipa.c (cgraph_postorder): Prioritize functions with address taken
10225 since new direct calls can be born.
10227 2009-05-10 Joseph Myers <joseph@codesourcery.com>
10229 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
10230 tok->val.node.node.
10232 2009-05-10 Jan Hubicka <jh@suse.cz>
10234 PR middle-end/40084
10235 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
10237 (cgraph_update_edges_for_call_stmt): Take old_decl argument.
10238 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
10239 * tree-inline.c (copy_bb): Set frequency correctly.
10240 (fold_marked_statements): Update call to
10241 cgraph_update_edges_for_call_stmt.
10243 2009-05-10 Joseph Myers <joseph@codesourcery.com>
10245 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
10246 identifiers in diagnostics.
10247 * config/arm/arm.c (arm_handle_fndecl_attribute,
10248 arm_handle_isr_attribute): Likewise.
10249 * config/avr/avr.c (avr_handle_progmem_attribute,
10250 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
10251 * config/bfin/bfin.c (handle_int_attribute,
10252 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
10253 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
10254 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
10256 * config/darwin.c (darwin_handle_kext_attribute,
10257 darwin_handle_weak_import_attribute): Likewise.
10258 * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
10259 h8300_handle_eightbit_data_attribute,
10260 h8300_handle_tiny_data_attribute): Likewise.
10261 * config/i386/i386.c (ix86_handle_cconv_attribute,
10262 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
10263 * config/i386/winnt.c (ix86_handle_shared_attribute,
10264 ix86_handle_selectany_attribute): Likewise.
10265 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
10266 * config/m32c/m32c.c (function_vector_handler): Likewise.
10267 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
10268 m68hc11_handle_fntype_attribute): Likewise.
10269 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
10270 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
10271 * config/mips/mips.c (mips_insert_attributes,
10272 mips_merge_decl_attributes, mips_expand_builtin): Likewise.
10273 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
10274 rs6000_handle_struct_attribute): Likewise.
10275 * config/sh/sh.c (sh_insert_attributes,
10276 sh_handle_resbank_handler_attribute,
10277 sh_handle_interrupt_handler_attribute,
10278 sh2a_handle_function_vector_handler_attribute,
10279 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
10281 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
10282 * config/spu/spu.c (spu_handle_fndecl_attribute,
10283 spu_handle_vector_attribute): Likewise.
10284 * config/stormy16/stormy16.c
10285 (xstormy16_handle_interrupt_attribute): Likewise.
10286 * config/v850/v850-c.c (ghs_pragma_section): Likewise.
10287 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
10289 2009-05-10 Joseph Myers <joseph@codesourcery.com>
10291 * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
10292 (pp_translate_identifiers): New.
10293 (pp_identifier): Only conditionally translate identifier to locale
10295 * pretty-print.c (pp_construct): Set pp_translate_identifiers.
10296 (pp_base_tree_identifier): Only conditionally translate identifier
10297 to locale character set.
10298 * c-pretty-print.c (M_): Define.
10299 (pp_c_type_specifier, pp_c_primary_expression): Mark English
10300 fragments for conditional translation with M_.
10301 * tree-pretty-print.c (maybe_init_pretty_print): Disable
10302 identifier translation.
10304 2009-05-10 Richard Guenther <rguenther@suse.de>
10306 PR tree-optimization/40081
10307 * tree-sra.c (instantiate_element): Instantiate scalar replacements
10308 using the main variant of the element type. Do not fiddle with
10309 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
10311 2009-05-09 Jan Hubicka <jh@suse.cz>
10313 PR middle-end/40080
10314 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
10315 indirect calls; verify cgraph afterwards.
10317 2009-05-09 Jan Hubicka <jh@suse.cz>
10320 * ipa.c (update_inlined_to_pointer): New function.
10321 (cgraph_remove_unreachable_nodes): Use it.
10323 2009-05-09 Jan Hubicka <jh@suse.cz>
10325 * tree-eh.c (struct leh_state): Remove prev_try.
10326 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
10327 not track prev_try.
10328 * except.c (gen_eh_region_cleanup, duplicate_eh_regions,
10329 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
10330 remove_eh_handler_and_replace, foreach_reachable_handler,
10331 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
10332 * except.h (struct eh_region): Remove eh_region_u_cleanup.
10333 (gen_eh_region_cleanup): Update prototype.
10335 2009-05-09 Jan Hubicka <jh@suse.cz>
10337 PR middle-end/40043
10338 * except.c (copy_eh_region): Always set prev_try.
10339 (redirect_eh_edge_to_label): Find outer try.
10340 (foreach_reachable_handler): When looking for prev try
10341 handle case where previous try is not going to be taken.
10343 2009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com>
10345 PR tree-optimization/40049
10346 * tree-vect-stmts.c (vectorizable_operation): If the machine has
10347 only vector/vector shifts, convert the type of the constant to the
10348 appropriate type to avoid building incorrect trees, which
10349 eventually have problems with garbage collection.
10351 2009-05-08 Joseph Myers <joseph@codesourcery.com>
10353 * fold-const.c (fold_binary): Do not fold multiplication by 1 or
10354 -1 for complex floating-point types if honoring signed zeros.
10356 2009-05-08 Jan Hubicka <jh@suse.cz>
10358 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
10359 argument; handle correctly when profile is absent.
10360 (build_cgraph_edges): Update.
10361 (rebuild_cgraph_edges): Update.
10362 * cgraph.c: Do not include varray.h.
10363 (cgraph_set_call_stmt_including_clones): New function.
10364 (cgraph_create_edge_including_clones): Likewise
10365 (cgraph_update_edges_for_call_stmt_node): New static cfunction.
10366 (cgraph_update_edges_for_call_stmt): Handle clones.
10367 (cgraph_remove_node): Handle clone tree.
10368 (cgraph_remove_node_and_inline_clones): New function.
10369 (dump_cgraph_node): Dump clone tree.
10370 (cgraph_clone_node): Handle clone tree.
10371 (clone_function_name): Bring here from tree-inline.c.
10372 (cgraph_create_virtual_clone): New function.
10373 * cgraph.h (ipa_replace_map): Move here from ipa.h.
10374 (cgraph_clone_info): New function.
10375 (strut cgraph_node): Add clone_info and new clone tree pointers.
10376 (cgraph_remove_node_and_inline_clones,
10377 cgraph_set_call_stmt_including_clones,
10378 cgraph_create_edge_including_clones,
10379 cgraph_create_virtual_clone): Declare.
10380 (cgraph_function_versioning): Use VEC argument.
10381 (compute_call_stmt_bb_frequency): Update prototype.
10382 (cgraph_materialize_all_clones): New function.
10383 * ipa-cp.c (ipcp_update_cloned_node): Remove.
10384 (ipcp_create_replace_map): Update to VECtors.
10385 (ipcp_update_callgraph): Use virtual clones.
10386 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
10387 (ipcp_update_profiling): Do not update local profiling.
10388 (ipcp_insert_stage): Use VECtors and virtual clones.
10389 * cgraphunit.c (verify_cgraph_node): Verify clone tree.
10390 (clone_of_p): New function.
10391 (cgraph_preserve_function_body_p): Use clone tree.
10392 (cgraph_optimize): Materialize clones.
10393 (cgraph_function_versioning): Update for VECtors.
10394 (save_inline_function_body): Use clone tree.
10395 (cgraph_materialize_clone): New function.
10396 (cgraph_materialize_all_clones): Likewise.
10397 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
10398 * ipa.c: Include gimple.h.
10399 (cgraph_remove_unreachable_nodes): Use clone tree.
10400 * ipa-prop.c (ipa_note_param_call): Update call to
10401 compute_call_stmt_bb_frequencycall.
10402 * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
10403 * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
10404 (copy_bb): Handle updating of clone tree; add new edge when new call
10406 (expand_call_inline): Be strict about every call having edge.
10407 (clone_fn_id_num, clone_function_name): Move to cgraph.c.
10408 (delete_unreachable_blocks_update_callgraph): New function.
10409 (tree_function_versioning): Use VECtors; always remove unreachable
10410 blocks and fold conditionals.
10411 * tree-inline.h: Do not include varray.h.
10412 (tree_function_versioning): Remove.
10413 * Makefile.in (GTFILES): Remove tree-inline.c
10414 * passes.c (do_per_function): Do only functions having body.
10415 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
10418 2009-05-08 H.J. Lu <hongjiu.lu@intel.com>
10419 Andrew Morrow <acm@google.com>
10422 * c-common.c (c_common_attribute_table): Permit deprecated
10423 attribute to take an optional argument.
10424 (handle_deprecated_attribute): If the optional argument to
10425 __attribute__((deprecated)) is not a string ignore the attribute
10426 and emit a warning.
10428 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
10429 * c-typeck.c (build_component_ref): Likewise.
10430 (build_external_ref): Likewise.
10432 * toplev.c (warn_deprecated_use): Add an attribute argument.
10433 Emit the message associated with __attribute__((deprecated)).
10435 * toplev.h (warn_deprecated_use): Updated.
10437 * doc/extend.texi: Document new optional parameter to
10438 __attribute__((deprecated))
10440 2009-05-08 Michael Eager <eager@eagercon.com>
10442 * config/rs6000/rs6000.md (*movdf_softfloat32): replace
10443 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
10445 2009-05-08 Richard Guenther <rguenther@suse.de>
10447 PR tree-optimization/40062
10448 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
10449 Avoid exponential behavior.
10451 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
10453 PR rtl-optimization/33928
10455 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
10456 process_uses, build_single_def_use_links): New.
10457 (update_df): Update use_def_ref.
10458 (forward_propagate_into): Use get_def_for_use instead of use-def
10460 (fwprop_init): Call build_single_def_use_links and let it initialize
10462 (fwprop_done): Free use_def_ref.
10463 (fwprop_addr): Eliminate duplicate call to df_set_flags.
10464 * df-problems.c (df_rd_simulate_artificial_defs_at_top,
10465 df_rd_simulate_one_insn): New.
10466 (df_rd_bb_local_compute_process_def): Update head comment.
10467 (df_chain_create_bb): Use the new RD simulation functions.
10468 * df.h (df_rd_simulate_artificial_defs_at_top,
10469 df_rd_simulate_one_insn): New.
10470 * opts.c (decode_options): Enable fwprop at -O1.
10471 * doc/invoke.texi (-fforward-propagate): Document this.
10473 2009-05-08 Joseph Myers <joseph@codesourcery.com>
10476 * c-typeck.c (build_binary_op): Handle arithmetic between one real
10477 and one complex operand specially.
10478 * tree-complex.c (some_nonzerop): Do not identify a real value as
10479 zero if flag_signed_zeros.
10481 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
10483 PR rtl-optimization/33928
10484 * loop-invariant.c (record_use): Fix && vs. || mishap.
10486 2009-05-08 Paolo Bonzini <bonzini@gnu.org>
10488 PR rtl-optimization/33928
10489 * loop-invariant.c (struct use): Add addr_use_p.
10490 (struct def): Add n_addr_uses.
10491 (struct invariant): Add cheap_address.
10492 (create_new_invariant): Set cheap_address.
10493 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses.
10494 (record_uses): Pass df_ref to record_use.
10495 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
10498 2009-05-08 Kaz Kojima <kkojima@gcc.gnu.org>
10500 * config/sh/sh.c: Do not include c-pragma.h.
10502 2009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com>
10504 * config/spu/spu.c: Remove include of c-common.h.
10506 2009-05-07 Janis Johnson <janis187@us.ibm.com>
10509 * c-common.h (mark_valid_location_for_stdc_pragma,
10510 valid_location_for_stdc_pragma_p, set_float_const_decimal64,
10511 clear_float_const_decimal64, float_const_decimal64_p): New.
10512 * c.opt (Wunsuffixed-float-constants): New.
10513 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
10514 unsuffixed float constant, handle new warning.
10515 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
10516 * c-decl.c (c_scope): New flag float_const_decimal64.
10517 (set_float_const_decimal64, clear_float_const_decimal64,
10518 float_const_decimal64_p): New.
10519 (push_scope): Set new flag.
10520 * c-parser.c (c_parser_translation_unit): Mark when it's valid
10521 to use STDC pragmas.
10522 (c_parser_external_declaration): Ditto.
10523 (c_parser_compound_statement_nostart): Ditto.
10524 * c-pragma.c (valid_location_for_stdc_pragma,
10525 mark_valid_location_for_stdc_pragma,
10526 valid_location_for_stdc_pragma_p, handle_stdc_pragma,
10527 handle_pragma_float_const_decimal64): New.
10528 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
10529 * cp/semantics.c (valid_location_for_stdc_pragma_p,
10530 set_float_const_decimal64, clear_float_const_decimal64,
10531 float_const_decimal64_p): New dummy functions.
10532 * doc/extend.texi (Decimal Float): Remove statement that the
10533 pragma, and suffix for double constants, are not supported.
10534 * doc/invoke.texi (Warning Options): List new option.
10535 (-Wunsuffixed-float-constants): New.
10537 2009-05-08 Steven Bosscher <steven@gcc.gnu.org>
10539 * config/i386/i386.c: Do not include c-common.h.
10541 2009-05-07 Mark Heffernan <meheff@google.com>
10543 * doc/invoke.texi (Debugging Options): Document change of debugging
10545 * opts.c (decode_options): Make dump_base_name relative to
10546 aux_base_name directory.
10548 2009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com>
10550 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
10551 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
10553 2009-05-07 Rafael Avila de Espindola <espindola@google.com>
10555 * Makefile.in (install-plugin): Simplify a bit.
10557 2009-05-07 Paolo Bonzini <bonzini@gnu.org>
10559 * Makefile.in (OBJS-common): Add regcprop.o.
10561 * timevar.def (TV_CPROP_REGISTERS): New.
10562 * regrename.c (regrename_optimize): Return 0.
10563 (rest_of_handle_regrename): Delete.
10564 (pass_rename_registers): Point to regrename_optimize.
10565 (struct value_data_entry, struct value_data,
10566 kill_value_one_regno, kill_value_regno, kill_value,
10567 set_value_regno, init_value_data, kill_clobbered_value,
10568 kill_set_value, kill_autoinc_value, copy_value,
10569 mode_change_ok, maybe_mode_change, find_oldest_value_reg,
10570 replace_oldest_value_reg, replace_oldest_value_addr,
10571 replace_oldest_value_mem, copyprop_hardreg_forward_1,
10572 debug_value_data, validate_value_data): Move...
10573 * regcprop.c: ... here.
10574 (rest_of_handle_cprop): Delete.
10575 (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
10577 2009-05-07 Jakub Jelinek <jakub@redhat.com>
10579 PR middle-end/40057
10580 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
10581 GEN_INT for 1 << bitnum.
10582 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
10583 build_int_cst_type.
10585 2009-05-07 Uros Bizjak <ubizjak@gmail.com>
10587 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
10588 Remove wrong description of "nand" operation.
10590 2009-05-06 Richard Guenther <rguenther@suse.de>
10591 Adam Nemet <anemet@caviumnetworks.com>
10593 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
10594 comment. Add that if LHS is not a gimple register, then RHS1 has
10595 to be a single object (GIMPLE_SINGLE_RHS).
10597 2009-05-06 Adam Nemet <anemet@caviumnetworks.com>
10599 * expr.c (get_def_for_expr): Move it up in the file.
10600 (store_field): When expanding a bit-field store, look at the
10601 defining gimple stmt for the masking conversion.
10603 2009-05-06 Janis Johnson <janis187@us.ibm.com>
10605 PR middle-end/39986
10606 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
10607 decode_decimal64, encode_decimal128, decode_decimal128): Avoid
10608 32-bit memcpy into long.
10610 2009-05-06 Jakub Jelinek <jakub@redhat.com>
10612 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
10613 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
10615 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
10616 instead of appending DW_OP_deref*.
10618 2009-05-06 Michael Matz <matz@suse.de>
10620 PR middle-end/40021
10621 * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
10622 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
10624 2009-05-06 Rafael Avila de Espindola <espindola@google.com>
10626 * Makefile.in (install-plugin): Fix srcdir handling.
10628 2009-05-06 Andrey Belevantsev <abel@ispras.ru>
10630 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
10631 when processing for not_regs_needed bitmap.
10632 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
10633 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while
10634 handling it for rhs.
10636 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
10638 * config/i386/i386.md (unnamed inc/dec peephole): Use
10639 optimize_insn_for_size_p instead of optimize_size.
10640 * config/i386/predicates.md (incdec_operand): Likewise.
10641 (aligned_operand): Likewise.
10642 * config/i386/sse.md (divv8sf3): Likewise.
10643 (sqrtv8sf2): Likewise.
10645 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
10647 * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
10649 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
10651 2009-05-06 H.J. Lu <hongjiu.lu@intel.com>
10653 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
10654 ssemodesuffixf2c with avxmodesuffixf2c.
10656 2009-05-06 Joseph Myers <joseph@codesourcery.com>
10659 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
10661 2009-05-05 Jakub Jelinek <jakub@redhat.com>
10663 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
10664 (struct tree_base): Adjust spacing for 8 bit boundaries.
10665 (struct tree_decl_common): Add decl_by_reference_flag bit.
10666 (DECL_BY_REFERENCE): Adjust.
10667 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
10668 print DECL_BY_REFERENCE bit.
10669 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
10670 * dwarf2out.c (loc_by_reference, gen_decl_die): Check
10671 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
10672 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED
10675 PR middle-end/39666
10676 * gimplify.c (gimplify_switch_expr): If case labels cover the whole
10677 range of the type, but default label is missing, add it with one
10678 of the existing labels instead of adding a new label for it.
10680 2009-05-05 Joseph Myers <joseph@codesourcery.com>
10684 2009-05-05 Rafael Avila de Espindola <espindola@google.com>
10686 * Makefile.in (enable_plugin, plugin_includedir): New.
10687 (install): Depend on install-plugin.
10688 (PLUGIN_HEADERS): New.
10689 (install-plugin): New.
10690 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
10692 2009-05-05 Richard Guenther <rguenther@suse.de>
10694 PR tree-optimization/40022
10695 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
10697 (phivn_valid_p): Fix tuplification error, simplify.
10698 (phiprop_insert_phi): Add dumps.
10699 (propagate_with_phi): Simplify.
10701 2009-05-05 Richard Guenther <rguenther@suse.de>
10703 PR middle-end/40023
10704 * builtins.c (gimplify_va_arg_expr): Properly build the address.
10706 2009-05-05 Shujing Zhao <pearly.zhao@oracle.com>
10708 * tree.h (strip_float_extensions): Remove duplicate declaration.
10709 (build_low_bits_mask, debug_fold_checksum, expand_function_end,
10710 expand_function_start, stack_protect_prologue, stack_protect_epilogue,
10711 block_ultimate_origin): Rearrange the declarations line to match the
10712 comment that indicates the .c file which the functions are defined.
10713 (dwarf2out_*, set_decl_rtl): Add comment.
10714 (get_base_address): Adjust comment.
10715 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
10716 declarations line and add comment.
10717 (is_builtin_name): Add blank after function name, for clarity.
10719 2009-05-04 Joseph Myers <joseph@codesourcery.com>
10721 * attribs.c (decl_attributes): Use %qE for identifiers in
10723 * cgraphunit.c (verify_cgraph_node): Translate function names to
10724 locale character set in diagnostics.
10725 * coverage.c (get_coverage_counts): Use %qE for identifiers in
10727 * doc/invoke.texi (-finstrument-functions-exclude-function-list):
10728 Document that functions are named in UTF-8.
10729 * expr.c (expand_expr_real_1): Translate function names to locale
10730 character set in diagnostics.
10731 * gimplify.c (omp_notice_variable, omp_is_private,
10732 gimplify_scan_omp_clauses): Use %qE for identifiers in
10734 * langhooks.c (lhd_print_error_function): Translate function names
10735 to locale character set.
10736 * langhooks.h (decl_printable_name): Document that return value is
10737 in internal character set.
10738 * stmt.c: Include pretty-print.h
10739 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
10741 (resolve_operand_name_1): Translate named operand name to locale
10743 * stor-layout.c (finalize_record_size): Use %qE for identifiers in
10745 * toplev.c (announce_function): Translate function names to locale
10747 (warn_deprecated_use): Use %qE for identifiers in diagnostics.
10748 (default_tree_printer): Use pp_identifier or translate identifiers
10749 to locale character set. Mark "<anonymous>" for translation.
10750 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
10751 for identifiers in diagnostics.
10752 * tree.c (handle_dll_attribute): Use %qE for identifiers in
10754 * varasm.c (output_constructor): Use %qE for identifiers in
10757 2009-05-04 Rafael Avila de Espindola <espindola@google.com>
10759 * configure.ac: use ` ` instead of $()
10760 * configure: Regenerate.
10762 2009-05-05 Ben Elliston <bje@au.ibm.com>
10764 * config/pa/linux-atomic.c: Eliminate conditional include of
10765 errno.h on non-LP64 systems to simplify build requirements.
10767 2009-05-04 Joseph Myers <joseph@codesourcery.com>
10769 * c-common.c (handle_mode_attribute): Use %qE for identifiers in
10771 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
10772 and pass value to identifier_to_locale.
10773 (warn_variable_length_array): Make name a tree.
10774 (grokdeclarator): Separate diagnostic texts for named and unnamed
10775 declarators. Use %qE for named declarators.
10776 * c-parser.c (c_lex_one_token): Use %qE for identifiers in
10778 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
10779 identifiers in diagnostics.
10780 * c-typeck.c (push_member_name, start_init): Pass identifiers to
10781 identifier_to_locale. Mark "anonymous" strings for translation.
10783 2009-05-04 Michael Eager <eager@eagercon.com>
10785 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
10786 address for DImode/DFmode only if double-precision FP regs.
10788 2009-05-04 Michael Eager <eager@eagercon.com>
10790 * config/rs6000/rs6000.c (rs6000_libcall_value): Add
10791 TARGET_SINGLE_FLOAT check.
10793 2009-05-04 Michael Eager <eager@eagercon.com>
10795 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
10797 2009-05-04 Michael Eager <eager@eagercon.com>
10799 * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
10800 * config/rs6000/t-xilinx: New
10802 2009-05-04 Paolo Bonzini <bonzini@gnu.org>
10804 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
10805 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
10806 * gcc/explow.c (memory_address): Use target hook.
10807 * gcc/targhooks.c (default_legitimize_address): New.
10808 * gcc/targhooks.h (default_legitimize_address): New.
10809 * gcc/target.h (legitimize_address): New.
10810 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
10811 (TARGET_INITIALIZER): Include it.
10812 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
10814 * config/bfin/bfin-protos.h (legitimize_address): Remove.
10815 * config/bfin/bfin.c (legitimize_address): Remove.
10816 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
10817 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
10819 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
10820 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
10822 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
10823 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
10824 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
10825 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
10826 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
10827 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
10828 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
10829 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
10830 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
10831 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
10832 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
10833 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
10834 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
10835 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
10836 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
10837 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
10838 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
10839 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
10840 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
10841 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
10842 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
10843 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
10844 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
10846 * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
10847 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
10848 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
10849 * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
10850 * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
10851 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
10852 * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
10853 * gcc/config/arm/arm-protos.h (arm_legitimize_address,
10854 (thumb_legitimize_address): Delete.
10855 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
10856 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
10857 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
10858 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
10859 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
10860 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
10862 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
10865 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
10866 * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
10867 * config/m32r/m32r.c (m32r_legitimize_address): New.
10868 * config/m68k/m68k.c (m68k_legitimize_address): New.
10869 * config/score/score.c (score_legitimize_address): Standardize.
10870 * config/score/score3.c (score3_legitimize_address): Standardize.
10871 * config/score/score3.h (score3_legitimize_address): Adjust.
10872 * config/score/score7.c (score7_legitimize_address): Standardize.
10873 * config/score/score7.h (score7_legitimize_address): Adjust.
10874 * config/sh/sh.c (sh_legitimize_address): New.
10875 * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
10877 * gcc/config/s390/s390.c (legitimize_address): Rename to...
10878 (s390_legitimize_address): ... this.
10879 * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
10880 (sparc_legitimize_address): ... this.
10881 * gcc/config/i386/i386.c (legitimize_address): Rename to...
10882 (ix86_legitimize_address): ... this.
10883 * gcc/config/avr/avr.c (legitimize_address): Rename to...
10884 (avr_legitimize_address): ... this.
10885 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
10886 (mn10300_legitimize_address): ... this.
10887 * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
10888 (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
10889 (alpha_expand_mov): Adjust call.
10891 * config/frv/frv.c (frv_legitimize_address): Return x on failure.
10892 * config/spu/spu.c (spu_legitimize_address): Likewise.
10893 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
10894 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
10896 2009-05-04 Joseph Myers <joseph@codesourcery.com>
10898 * intl.c (locale_encoding, locale_utf8): New.
10899 (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
10900 * intl.h (locale_encoding, locale_utf8): Declare.
10901 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV.
10902 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
10904 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
10906 (pp_tree_identifier): Define to call pp_base_tree_identifier.
10907 (pp_base_tree_identifier): Declare as function.
10908 (identifier_to_locale): Declare.
10909 * Makefile.in (pretty-print.o): Update dependencies.
10910 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
10912 2009-05-04 Richard Guenther <rguenther@suse.de>
10914 PR middle-end/40015
10915 * builtins.c (fold_builtin_memory_op): Do not decay to element
10916 type if the size matches the whole array.
10918 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
10920 * expmed.c (synth_mult): When trying out a shift, pass the result
10923 2009-05-04 Kazu Hirata <kazu@codesourcery.com>
10925 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
10926 (shiftsub1_cost): New.
10927 (init_expmed): Compute shiftsub1_cost.
10928 (synth_mult): Optimize multiplications by constants of the form
10929 -(2^^m-1) for some constant positive integer m.
10931 2009-05-03 Richard Guenther <rguenther@suse.de>
10934 * c-typeck.c (array_to_pointer_conversion): Do not built
10935 ADDR_EXPRs of arrays of pointer-to-element type.
10936 * c-gimplify.c (c_gimplify_expr): Revert change fixing
10937 up wrong ADDR_EXPRs after-the-fact.
10938 * c-common.c (strict_aliasing_warning): Strip pointer
10939 conversions for obtaining the original type.
10940 * builtins.c (fold_builtin_memset): Handle array types.
10941 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
10944 2009-05-03 Richard Guenther <rguenther@suse.de>
10946 PR middle-end/23329
10947 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
10948 Do not lose casts from array types with unknown extent to array
10949 types with known extent.
10950 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
10951 alias set compatibility.
10953 2009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
10955 * flags.h (extra_warnings): Delete.
10956 * toplev.c (process_options): Handle Wuninitialized here.
10957 * opts.c (extra_warnings): Delete.
10958 (set_Wextra): Delete.
10959 (common_handle_option): -Wextra can be handled automatically.
10960 * c-opts.c (c_common_handle_option): Delete obsolete code.
10961 (c_common_post_options): Simplify comment.
10962 * common.opt (W): Add Var.
10964 (Wuninitialized): Initialize to -1.
10966 2009-05-03 Adam Nemet <anemet@caviumnetworks.com>
10967 Richard Guenther <rguenther@suse.de>
10969 * expr.c (get_def_for_expr): New function.
10970 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
10971 SSA rather than trees.
10972 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of
10973 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
10975 2009-05-03 Joseph Myers <joseph@codesourcery.com>
10977 * c-common.c (reswords): Add _Imaginary.
10978 * c-common.c (enum rid): Add RID_IMAGINARY.
10980 2009-05-03 Paolo Bonzini <bonzini@gnu.org>
10982 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
10983 Patch by Richard Guenther.
10985 2009-05-03 Anatoly Sokolov <aesok@post.ru>
10987 * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
10988 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
10989 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
10990 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
10991 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
10992 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
10993 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
10994 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
10995 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
10996 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
10997 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
10998 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
10999 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
11000 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
11001 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
11002 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
11003 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
11004 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
11006 2009-05-02 Richard Guenther <rguenther@suse.de>
11008 PR tree-optimization/39940
11009 * tree-ssa-pre.c (eliminate): Make sure we may propagate before
11012 2009-05-02 Richard Guenther <rguenther@suse.de>
11014 PR middle-end/40001
11015 * tree-ssa.c (execute_update_addresses_taken): Properly check
11016 if we can mark a variable DECL_GIMPLE_REG_P.
11017 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
11018 back to the end of the function.
11019 (is_gimple_reg_type): Remove complex type special casing.
11020 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
11023 2009-05-02 Ben Elliston <bje@au.ibm.com>
11025 * doc/collect2.texi (Collect2): Document search path behaviour
11026 when configured with --with-ld.
11028 2009-05-02 Jan Hubicka <jh@suse.cz>
11030 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
11031 parameter; update callers.
11032 (coalesce_cost_edge): EH edges are costier because they needs
11033 splitting even if not critical and even more costier when there are
11034 multiple EH predecestors.
11036 2009-05-02 Jan Hubicka <jh@suse.cz>
11038 * except.c (remove_eh_handler_and_replace): Handle updating after
11039 removing TRY blocks.
11041 2009-05-02 Eric Botcazou <ebotcazou@adacore.com>
11043 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
11045 2009-05-02 Steven Bosscher <steven@gcc.gnu.org>
11047 * varasm.c: Do not include c-pragma.h.
11048 * attribs.c: Do not incude c-common.h.
11050 2009-05-01 Michael Matz <matz@suse.de>
11052 * calls.c (initialize_argument_information): Handle SSA names like
11053 decls with a non MEM_P DECL_RTL.
11055 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
11057 * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
11058 * ipa-utils.c: Likewise.
11059 * ipa-type-escape.c: Likewise.
11060 * cgraphunit.c Do not include c-common.h.
11061 * ipa-pure-const.c: Likewise.
11062 * tree-if-conv.c: Likewise.
11063 * matrix-reorg.c: Do not include c-common.h and c-tree.h.
11064 * ipa-struct-reorg.c: Likewise.
11065 * tree-nomudflap.c: Likewise.
11066 * tree-ssa-structalias.c: Likewise.
11068 2009-05-01 Steven Bosscher <steven@gcc.gnu.org>
11070 * store-motion.c: Many cleanups to make this pass a first-class
11071 citizen instead of an appendix to gcse load motion. Add TODO list
11072 to make this pass faster/cleaner/better.
11074 (struct ls_expr): Post gcse.c-split cleanups.
11075 Rename to st_expr. Rename "loads" field to "antic_stores". Rename
11076 "stores" field to "avail_stores".
11077 (pre_ldst_mems): Rename to store_motion_mems.
11078 (pre_ldst_table): Rename to store_motion_mems_table.
11079 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
11080 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
11081 (ldst_entry): Rename to st_expr_entry, update users.
11082 (free_ldst_entry): Rename to free_st_expr_entry, update users.
11083 (free_ldst_mems): Rename to free_store_motion_mems, update users.
11084 (enumerate_ldsts): Rename to enumerate_store_motion_mems,
11086 (first_ls_expr): Rename to first_st_expr, update users.
11087 (next_ls_expr): Rename to next_st_expr, update users.
11088 (print_ldst_list): Rename to print_store_motion_mems. Print names of
11089 fields properly for store motion instead of names inherited from load
11091 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
11092 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we
11095 (ae_kill): Rename to st_kill, update users.
11096 (ae_gen): Rename to st_avloc, update users.
11097 (transp): Rename to st_transp, update users.
11098 (pre_insert_map): Rename to st_insert_map, update users.
11099 (pre_delete_map): Rename to st_delete_map, update users.
11100 (insert_store, build_store_vectors, free_store_memory,
11101 one_store_motion_pass): Update for abovementioned changes.
11103 (gcse_subst_count, gcse_create_count): Remove.
11104 (one_store_motion_pass): New statistics counters "n_stores_deleted"
11105 and "n_stores_created", local variables.
11107 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
11110 (regvec, compute_store_table_current_insn): Remove.
11111 (reg_set_info, reg_clear_last_set): Remove.
11112 (compute_store_table): Use DF caches instead of local dataflow
11115 2009-05-01 Joseph Myers <joseph@codesourcery.com>
11117 * c-objc-common.c (c_tree_printer): Print identifiers with
11118 pp_identifier, not pp_string. Mark "({anonymous})" for
11120 * c-pretty-print.c (pp_c_ws_string): New.
11121 (pp_c_cv_qualifier, pp_c_type_specifier,
11122 pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
11123 pp_c_storage_class_specifier, pp_c_function_specifier,
11124 pp_c_attributes, pp_c_bool_constant, pp_c_constant,
11125 pp_c_primary_expression, pp_c_postfix_expression,
11126 pp_c_unary_expression, pp_c_shift_expression,
11127 pp_c_relational_expression, pp_c_equality_expression,
11128 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
11129 use pp_string and pp_c_ws_string in place of pp_identifier and
11130 pp_c_identifier for non-identifiers. Mark English strings for
11132 * c-pretty-print.h (pp_c_ws_string): Declare.
11134 2009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com>
11135 Roland McGrath <roland@redhat.com>
11137 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
11138 (ENABLE_LD_BUILDID): New configuration option.
11139 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
11140 (LINK_BUILDID_SPEC): New macro.
11141 (init_spec): If defined, prepend it between LINK_EH_SPEC and
11143 * doc/install.texi: Document --enable-linker-build-id option.
11144 * configure: Rebuild.
11145 * config.in: Rebuild.
11147 2009-04-30 Adam Nemet <anemet@caviumnetworks.com>
11149 * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
11150 MIPS_GP_SAVE_AREA_SIZE): Define new macros.
11151 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use
11152 MIPS_GP_SAVE_AREA_SIZE.
11153 * config/mips/mips.c (struct mips_frame_info): Update comment
11154 before arg_pointer_offset and hard_frame_pointer_offset.
11155 (mips_compute_frame_info): Update diagram before function: to
11156 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
11157 indicate the position of frame_pointer_rtx with -fstack-protector and
11158 to show args_size. Don't allocate cprestore area for leaf functions
11159 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set
11161 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
11163 2009-04-30 Michael Matz <matz@suse.de>
11165 PR tree-optimization/39955
11166 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
11168 2009-04-30 Dave Korn <dave.korn.cygwin@gmail.com>
11170 * ira.c (setup_cover_and_important_classes): Use safe macro
11171 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
11173 * genpreds.c (write_tm_preds_h): Output suitable definition of
11174 REG_CLASS_FOR_CONSTRAINT.
11176 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
11178 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
11180 * bitmap.c (bitmap_descriptor): Likewise.
11181 * ggc-common.c (loc_descriptor): Likewise.
11182 * varray.c (varray_descriptor): Likewise.
11183 * vec.c (vec_descriptor): Likewise.
11185 2009-04-30 Eric Botcazou <ebotcazou@adacore.com>
11187 * Makefile.in (dce.o): Add $(EXCEPT_H).
11188 * dce.c: Include except.h and delete redundant vector definitions.
11189 (deletable_insn_p): Return false for non-call insns that can throw
11192 2009-04-30 Steven Bosscher <steven@gcc.gnu.org>
11194 * gcse.c (ae_gen): Remove.
11195 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
11196 and make non-static function to make it available in store-motion.c.
11197 Update call sites with search-and-replace.
11198 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
11199 extract_mentioned_regs, extract_mentioned_regs_helper,
11200 find_moveable_store, compute_store_table, load_kills_store, find_loads,
11201 store_killed_in_insn, store_killed_after, store_killed_before,
11202 build_store_vectors, insert_insn_start_basic_block, insert-store,
11203 remove_reachable_equiv_notes, replace_store_insn, delete_store,
11204 free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
11205 execute_rtl_store_motion, pass_rtl_store_motion): Move to...
11206 * store-motion.c: ...new file. Also copy data structures from gcse.c
11207 and clean up to remove parts not used by store motion.
11208 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
11209 * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
11211 2009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11214 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
11215 when optimizing for size.
11217 2009-04-30 Hans-Peter Nilsson <hp@axis.com>
11219 * gcse.c (gcse_constant_p): Fix typo in last change.
11221 2009-04-30 Rafael Avila de Espindola <espindola@google.com>
11223 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
11225 2009-04-30 Andreas Krebbel <krebbel1@de.ibm.com>
11227 * gcse.c (gcse_constant_p): Make sure the constant is sharable.
11229 2009-04-29 James E. Wilson <wilson@codesourcery.com>
11231 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
11232 CONST_HIGH_PART result.
11234 2009-04-29 Anatoly Sokolov <aesok@post.ru>
11236 * config/avr/avr.c (initial_elimination_offset): Rename to
11237 avr_initial_elimination_offset.
11238 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
11239 change return type to bool.
11240 (avr_can_eliminate): New function.
11241 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
11242 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
11243 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
11244 * config/avr/avr-protos.h (initial_elimination_offset): Rename to
11245 avr_initial_elimination_offset.
11246 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
11247 (avr_initial_elimination_offset): Define.
11249 2009-04-29 Eric Botcazou <ebotcazou@adacore.com>
11250 Steven Bosscher <steven@gcc.gnu.org>
11252 PR rtl-optimization/39938
11253 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
11254 * cfgrtl.c: Include insn-attr.h.
11255 (rest_of_pass_free_cfg): New function.
11256 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
11257 * resource.c (init_resource_info): Remove call to df_analyze.
11259 2009-04-29 Richard Guenther <rguenther@suse.de>
11262 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
11263 allow conversion to signed integers.
11265 2009-04-29 Richard Guenther <rguenther@suse.de>
11267 * tree-cfg.c (verify_gimple_assign_binary): Allow vector
11268 shifts of floating point vectors if the shift amount is
11269 a constant multiple of the element size.
11271 2009-04-29 Andreas Krebbel <krebbel1@de.ibm.com>
11272 Michael Matz <matz@suse.de>
11274 PR middle-end/39927
11276 * tree-outof-ssa.c (emit_partition_copy): New function.
11277 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
11278 insert_part_to_rtx_on_edge): Perform the partition base var
11279 copy using emit_partition_copy.
11280 (insert_value_copy_on_edge): Convert constants to the right mode.
11281 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
11282 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
11284 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
11286 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
11287 scan backwards to try to find a constant to initialize it.
11289 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
11290 insn before the loop_end instruction, don't look past labels.
11292 2009-04-29 Richard Guenther <rguenther@suse.de>
11294 PR middle-end/39937
11295 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
11296 loose type conversions.
11297 (forward_propagate_addr_expr): Fix tuplification bug. Remove
11298 stmts only if there are no uses of its definition.
11300 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
11302 * config/bfin/bfin.h (splitting_loops): Declare.
11303 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
11304 Reorder bit definitions to be ascending.
11305 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
11306 * config/bfin/bfin.c (splitting_loops): New variable.
11307 (bfin_cpus): Add WA_LOAD_LCREGS as needed.
11308 (struct loop_info): Remove members INIT and LOOP_INIT.
11309 (bfin_optimize_loop): Don't set them. Reorder the code that generates
11310 the LSETUP sequence. Allow LC to be loaded from any register, but
11311 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
11312 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
11314 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
11315 of reload_completed.
11318 * config/bfin/bfin.md (movsi_insn): Refine constraints.
11320 2009-04-29 Rafael Avila de Espindola <espindola@google.com>
11322 * Makefile.in (PLUGIN_VERSION_H): New.
11323 (OBJS-common): Remove plugin-version.o.
11324 (plugin.o): Depend on (PLUGIN_VERSION_H).
11325 (plugin-version.o): Remove.
11326 * configure: Regenerate
11327 * configure.ac: Create plugin-version.h.
11328 * gcc-plugin.h (plugin_gcc_version): Remove.
11329 (plugin_default_version_check): Change signature.
11330 * plugin-version.c: Remove.
11331 * plugin.c: Include plugin-version.h.
11332 (str_plugin_gcc_version_name): Remove.
11333 (try_init_one_plugin): Pass gcc version to plugin_init.
11334 (plugin_default_version_check): Both gcc and plugin versions are now
11337 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
11339 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
11340 problematic last insns. Test for TYPE_CALL rather than CALL_P.
11341 Remove special case testing for last insn of inner loops. Don't fail
11342 if the loop ends with a jump, emit an extra nop instead.
11344 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
11345 DREGS rather than comparing directly. Remove code that tries to
11346 account for latencies.
11348 2009-04-29 Richard Guenther <rguenther@suse.de>
11350 PR tree-optimization/39941
11351 * tree-ssa-pre.c (eliminate): Schedule update-ssa after
11352 eliminating an indirect call.
11354 2009-04-29 Richard Guenther <rguenther@suse.de>
11356 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
11357 parameter. Allow invariants as base if !require_lvalue.
11358 (verify_gimple_assign_single): Adjust.
11360 2009-04-29 Bernd Schmidt <bernd.schmidt@analog.com>
11362 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
11363 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
11364 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
11365 ssubhi3, ssaddhi3_parts and sssubhi3_parts.
11366 (flag_mulhi3_parts): Produce a HImode output rather than trying to set
11368 * config/bfin/bfin.c (bfin_expand_builtin,
11369 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
11371 2009-04-28 Richard Guenther <rguenther@suse.de>
11373 * tree-vect-loop.c (get_initial_def_for_induction): Use
11374 correct types for pointer increment.
11376 2009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11378 * toplev.c (print_version): Update GMP version string calculation.
11380 2009-04-28 Eric Botcazou <ebotcazou@adacore.com>
11382 PR rtl-optimization/39938
11383 * resource.c (init_resource_info): Add call to df_analyze.
11385 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
11387 * config/alpha/alpha.md (usegp): Cast the result of
11388 alpha_find_lo_sum_using_gp to enum attr_usegp.
11389 * config/alpha/alpha.c (override_options): Remove end-of-structure
11390 marker element from cpu_table. Use array size of cpu_table to handle
11391 -mcpu and -mtune options.
11392 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
11394 2009-04-28 Joseph Myers <joseph@codesourcery.com>
11396 * config.gcc (powerpc*-*-* | rs6000-*-*): Add
11397 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64,
11398 tune_32 and tune_64.
11399 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
11400 support on PowerPC.
11401 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
11402 * config/rs6000/option-defaults.h: ... here. New file.
11403 (OPT_64, OPT_32): Define.
11404 (MASK_64BIT): Define to 0 if not already defined.
11405 (OPT_ARCH64, OPT_ARCH32): Define.
11406 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
11409 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11411 * config/arm/arm.c (arm_override_options): Emit error on using
11414 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
11416 PR rtl-optimization/39914
11417 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
11418 registers for allocnos created from user-defined variables only
11419 when not optimizing.
11421 2009-04-28 Richard Guenther <rguenther@suse.de>
11423 PR middle-end/39937
11424 * fold-const.c (fold_binary): Use distribute_real_division only
11427 2009-04-28 Steve Ellcey <sje@cup.hp.com>
11429 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
11430 add hpux-stdint.h to tm_file.
11431 (hppa[12]*-*-hpux11*): Ditto.
11432 (ia64*-*-hpux*): Ditto.
11433 * config/hpux-stdint.h: New.
11434 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
11435 __STDC_EXT__ for all compiles.
11436 * config/pa/pa-hpux.h: Ditto.
11437 * config/pa/pa-hpux10.h: Ditto.
11438 * config/pa/pa-hpux11.h: Ditto.
11440 2009-04-28 Catherine Moore <clm@codesourcery.com>
11442 * debug.h (set_name): Add comment.
11444 2009-04-28 Andrew Pinski <pinskia@gmail.com>
11447 * config/darwin.c (machopic_gen_offset): Check
11448 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
11449 * config/arm/arm.c (require_pic_register): Likewise.
11451 2009-04-28 Paolo Bonzini <bonzini@gnu.org>
11453 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
11454 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
11455 m32c_promote_prototypes): Delete.
11457 2009-04-28 Michael Matz <matz@suse.de>
11459 PR middle-end/39922
11460 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
11463 2009-04-28 Richard Guenther <rguenther@suse.de>
11465 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
11467 2009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11469 * config/arm/arm-cores.def: Add support for arm1156t2f-s.
11470 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
11471 * config/arm/arm-tune.md: Regenerate.
11473 2009-04-28 Alexander Monakov <amonakov@ispras.ru>
11475 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
11476 block if there are complex incoming edges.
11477 (sel_merge_blocks): Remove useless assert.
11478 (sel_redirect_edge_and_branch): Check that edge was redirected.
11479 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
11480 (sel_find_rgns): Delete declaration.
11481 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
11482 the region when it is not a preheader.
11484 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
11487 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
11489 2009-04-28 Richard Guenther <rguenther@suse.de>
11491 * tree.h (SSA_NAME_VALUE): Remove.
11492 (struct tree_ssa_name): Remove value_handle member.
11493 * tree-vrp.c (execute_vrp): Initialize/free the value-handle
11494 array for jump threading.
11495 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
11497 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
11498 * tree-flow.h (threadedge_initialize_values): Declare.
11499 (threadedge_finalize_values): Likewise.
11500 * tree-ssa-threadedge.c (ssa_name_values): New global variable.
11501 (SSA_NAME_VALUE): Define.
11502 (threadedge_initialize_values): New function.
11503 (threadedge_finalize_values): Likewise.
11504 * tree-ssa-dom.c (ssa_name_values): New global variable.
11505 (SSA_NAME_VALUE): Define.
11506 (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
11508 2009-04-28 Ira Rosen <irar@il.ibm.com>
11510 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
11511 Use REPORT_VECTORIZED_LOCATIONS instead
11512 REPORT_VECTORIZED_LOOPS.
11513 * tree-vectorizer.c (vect_verbosity_level): Make static.
11514 (vect_loop_location): Rename to vect_location.
11515 (vect_set_verbosity_level): Update comment.
11516 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
11518 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
11519 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
11520 instead REPORT_UNVECTORIZED_LOOPS.
11521 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
11522 and vect_loop_def to vect_external_def and vect_internal_def.
11523 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
11524 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and
11525 REPORT_UNVECTORIZED_LOCATIONS.
11526 (enum vect_relevant): Update comment. Rename vect_unused_in_loop
11527 and vect_used_in_loop and to vect_unused_in_scope and
11528 vect_used_in_scope.
11529 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
11530 (vect_verbosity_level): Remove declaration.
11531 (vect_analyze_operations): Likewise.
11532 (vect_analyze_stmt): Declare.
11533 * tree-vect-loop.c (vect_determine_vectorization_factor): Use
11534 REPORT_UNVECTORIZED_LOCATIONS.
11535 (vect_get_loop_niters): Fix indentation.
11536 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
11537 (vect_analyze_loop_operations): New function.
11538 (vect_analyze_loop): Call vect_analyze_loop_operations instead of
11539 vect_analyze_operations.
11540 (vect_is_simple_reduction): Use new names.
11541 (vectorizable_live_operation, vect_transform_loop): Likewise.
11542 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
11543 to specify whether the data references can be a part of interleaving
11545 (vect_analyze_data_ref_dependence): Use new names.
11546 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
11547 (vect_create_addr_base_for_vector_ref): Remove redundant code.
11548 * tree-vect-patterns.c (widened_name_p): Use new names.
11549 (vect_recog_dot_prod_pattern): Likewise.
11550 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
11551 (process_use, vect_mark_stmts_to_be_vectorized,
11552 vect_model_simple_cost, vect_model_store_cost,
11553 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
11554 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
11555 vectorizable_operation, vectorizable_type_demotion,
11556 vectorizable_type_promotion, vectorizable_store, vectorizable_load,
11557 vectorizable_condition): Likewise.
11558 (vect_analyze_operations): Split into vect_analyze_loop_operations
11560 (vect_analyze_stmt): ... new function.
11561 (new_stmt_vec_info): Use new names.
11562 (vect_is_simple_use): Use new names and fix comment.
11563 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
11564 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
11566 2009-04-28 Uros Bizjak <ubizjak@gmail.com>
11569 * config/i386/i386.c (print_operand) ['Z']: Handle floating point
11570 and integer modes for x87 operands. Do not ICE for unsupported size,
11571 generate error instead. Generate error for unsupported operand types.
11572 ['z']: Do not handle HImode memory operands specially. Warning
11573 for floating-point operands. Fallthru to 'Z' for unsupported operand
11574 types. Do not ICE for unsupported size, generate error instead.
11575 (output_387_binary_op): Use %Z to output operands.
11576 (output_fp_compare): Ditto.
11577 (output_387_reg_move): Ditto.
11579 2009-04-28 Ben Elliston <bje@au.ibm.com>
11584 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
11586 * builtins.c (c_strlen): Do not warn here.
11587 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
11588 * c-common.c (pointer_int_sum): Take an explicit location.
11589 Warn about offsets out of bounds.
11590 * c-common.h (pointer_int_sum): Adjust declaration.
11592 2009-04-27 Ian Lance Taylor <iant@google.com>
11594 * collect2.c (is_ctor_dtor): Change type of ret field in struct
11596 * dce.c (run_fast_df_dce): Change type of old_flags to int.
11597 * df-core.c (df_set_flags): Change return type to int. Change
11598 type of old_flags to int.
11599 (df_clear_flags): Likewise.
11600 * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
11601 (df_get_conditional_uses): Likewise.
11602 * df.h (df_set_flags, df_clear_flags): Update declarations.
11603 * dwarf2out.c (struct indirect_string_node): Change type of form
11604 field to enum dwarf_form.
11605 (AT_string_form): Change return type to enum dwarf_form.
11606 * fixed-value.c (fixed_compare): Add cast to enum type.
11607 * fwprop.c (update_df): Change 0 to VOIDmode.
11608 * gensupport.c: Change 0 to UNKNOWN.
11609 * gimple.h (gimple_cond_code): Add cast to enum type.
11610 * haifa-sched.c (reemit_notes): Add cast to enum type.
11611 * hooks.c (hook_int_void_no_regs): Remove function.
11612 * hooks.h (hook_int_void_no_regs): Remove declaration.
11613 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
11614 * predict.c (combine_predictions_for_insn): Add casts to enum type.
11615 * real.c (real_arithmetic): Add cast to enum type.
11616 (real_compare): Likewise.
11617 * target.h (struct gcc_target): Change return type of
11618 branch_target_register_class to enum reg_class.
11619 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
11620 default_branch_target_register_class.
11621 * targhooks.c (default_branch_target_register_class): New function.
11622 * targhooks.h (default_branch_target_register_class): Declare.
11623 * tree-data-ref.c (print_direction_vector): Add cast to enum type.
11624 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
11626 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
11628 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
11629 vect_uninitialized_def. Change 0 to ERROR_MARK.
11630 * tree-vect-stmts.c (supportable_widening_operation): Don't
11631 initialize icode1 and icode2.
11632 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
11633 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
11635 (cmn_err_flag_specs): Change 0 to STD_C89.
11636 (cmn_err_char_table): Likewise.
11637 * config/arm/arm.c (get_arm_condition_code): Change type of code
11638 to enum arm_cond_code.
11639 (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
11640 (IWMMXT_BUILTIN2): Likewise.
11641 (neon_builtin_type_bits): Don't define typedef.
11642 (neon_builtin_datum): Change type of bits field to int.
11643 (arm_expand_neon_args): Add cast to enum type.
11644 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
11646 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add
11647 casts to enum type.
11648 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
11650 * config/mips/mips.md (jal_macro): Return enum constant.
11651 (single_insn): Likewise.
11652 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
11654 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11655 casts to enum type.
11656 * config/s390/s390.c (s390_tune_flags): Change type to int.
11657 (s390_arch_flags): Likewise.
11658 (s390_handle_arch_option): Change flags field of struct pta to int.
11659 * config/s390/s390.h (s390_tune_flags): Update declaration.
11660 (s390_arch_flags): Likewise.
11661 * config/sh/sh.c (prepare_move_operands): Compare
11662 tls_symbolic_operand result with enum constant.
11663 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
11664 (sh_expand_prologue): Add cast to enum type.
11665 (sh_expand_epilogue): Likewise.
11666 (tls_symbolic_operand): Change return type to enum tls_model.
11667 (fpscr_set_from_mem): Add cast to enum type.
11668 (legitimize_pic_address): Compare tls_symbolic_operand result with
11670 (sh_target_reg_class): Change return type to enum reg_class.
11671 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
11673 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
11674 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
11675 * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
11676 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
11677 (delayed_branch, tls_call_delay): Likewise.
11678 (eligible_for_sibcall_delay): Likewise.
11679 (eligible_for_return_delay): Likewise.
11680 * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
11681 (spu_expand_builtin_1): Likewise.
11683 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
11684 for all types of conversions.
11685 (output_init_element): Issue -Wc++-compat warning if needed when
11686 initializing a bitfield with enum type.
11687 * c-parser.c (c_parser_expression): Set original_type to
11688 original_type of right hand operand of comman operator.
11690 2009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
11692 * doc/c-tree.texi (Types, Functions, Expression trees): Fix
11694 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
11695 * doc/cpp.texi (Standard Predefined Macros)
11696 (Implementation-defined behavior): Likewise.
11697 * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
11698 * doc/gimple.texi (GIMPLE Exception Handling)
11699 (@code{GIMPLE_ASSIGN}): Likewise.
11700 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
11701 * doc/invoke.texi (Warning Options, Optimize Options)
11702 (AVR Options, Darwin Options): Likewise.
11703 (Optimize Options): Reformulate -fwhole-program description.
11704 * doc/loop.texi (Lambda): Likewise.
11705 * doc/md.texi (Output Template, Define Constraints)
11706 (Standard Names, Insn Splitting): Likewise.
11707 * doc/options.texi (Option properties): Likewise.
11708 * doc/passes.texi (Tree-SSA passes): Likewise.
11709 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
11710 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
11711 (File Names and DBX): Likewise.
11712 * doc/trouble.texi (Incompatibilities): Likewise.
11714 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
11716 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
11717 instruction is correct.
11719 2009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com>
11721 Allow non-constant arguments to conversion intrinsics.
11722 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
11723 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
11724 * spu.c (print_operand): Handle 'v' and 'w'.
11725 (exp2_immediate_p, spu_gen_exp2): Define.
11726 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
11727 spu_convtf_1): Update parameter descriptions.
11728 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
11729 * constraints.md ('v', 'w'): New.
11730 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
11732 (i2f, I2F): New define_mode_attr.
11733 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
11734 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
11735 fixuns_truncv4sfv4si2): Update to use mode attribute.
11736 (float<mode><i2f>2_mul, float<mode><i2f>2_div,
11737 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
11738 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
11739 patterns for combine.
11741 2009-04-27 Steven Bosscher <steven@gcc.gnu.org>
11743 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
11744 (cprop, hoist, pre, store_motion): New debug counters.
11745 * tree-pass.h (pass_tracer): Move to list of gimple passes, it
11746 is not an RTL pass anymore.
11747 (pass_profiling): Remove extern decl for pass removed in 2005.
11748 (pass_gcse, pass_jump_bypass): Remove.
11749 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
11750 to 0 for clean state.
11751 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
11752 * cse.c (gate_handle_cse_after_global_opts,
11753 rest_of_handle_cse_after_global_opts): New functions.
11754 (pass_cse_after_global_opts): New pass, does local CSE.
11755 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
11756 (TV_CPROP): New timevar.
11757 * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
11758 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
11759 (gcse_main, recompute_all_luids): Remove.
11760 (compute_hash_table_work): Call max_reg_num instead of reading
11762 (cprop_jump): Don't set run_jump_opt_after_gcse.
11763 (constprop_register): Always allow to alter jumps.
11764 (cprop_insn): Likewise.
11765 (do_local_cprop): Likewise.
11766 (local_cprop_pass): Likewise. Return non-zero if something changed.
11767 (cprop): Remove function, fold interesting bits into one_cprop_pass.
11768 (find_implicit_sets): Add note about missed optimization opportunity.
11769 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
11770 pass_rtl_cprop execute function.
11771 Don't bother tracking the pass number, each pass gets its own dumpfile
11773 Always allow to alter jumpsand bypass jumps.
11774 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
11775 will just find no suitable set.
11776 (pre_edge_insert): Fix dumping, this function is for PRE only.
11777 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
11778 pass_rtl_pre execute function.
11779 (hoist_code): Return non-zero if something changed. Keep track of
11780 substitutions and insertions for statistics gathering similar to PRE.
11781 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
11782 called from the pass_rtl_hoist execute function. Show pass statistics.
11783 (compute_store_table): Use max_reg_num directly instead of using the
11784 formerly global max_gcse_regno.
11785 (build_store_vectors): Likewise.
11786 (replace_store_insn): Fix dumping.
11787 (store_motion): Rename to ...
11788 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION
11789 pass, called from the pass_rtl_store_motion execute function. Keep
11790 track of substitutions and insertions for statistics gathering similar
11792 (bypass_jumps): Remove, fold interesting bits into ...
11793 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called
11794 from the pass_rtl_cprop execute function.
11795 (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
11796 pass_jump_bypass): Remove.
11797 (gate_handle_gcse, rest_of_handle_gcse): Remove.
11798 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
11799 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
11800 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
11801 (gate_rtl_store_motion, execute_rtl_store_motion,
11802 pass_rtl_store_motion): New.
11803 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
11804 make it clear that -fcse-skip-blocks is a no-op for backward compat.
11805 * passes.c (init_optimization_passes): Remove pass_gcse and
11806 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion,
11807 and cse_after_global_opts in place of pass_gcse. Schedule cprop
11808 instead of pass_jump_bypass.
11810 2009-04-27 Richard Guenther <rguenther@suse.de>
11812 PR middle-end/39928
11813 * gimplify.c (gimplify_expr): If we are required to create
11814 a temporary make sure it ends up as register.
11816 2009-04-27 H.J. Lu <hongjiu.lu@intel.com>
11819 * config/i386/i386.c (construct_container): Don't call
11820 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
11821 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
11823 2009-04-27 Michael Matz <matz@suse.de>
11825 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
11826 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
11827 * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
11828 (dump_replaceable_exprs): Take a bitmap.
11829 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
11831 (expand_gimple_basic_block): Likewise.
11832 * tree-ssa-ter.c (struct temp_expr_table_d): Make
11833 replaceable_expressions member a bitmap.
11834 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
11835 (mark_replaceable): Likewise.
11836 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
11837 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
11839 2009-04-27 Richard Guenther <rguenther@suse.de>
11841 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
11842 (verify_stmts): Dispatch to gimple/type verification code.
11843 * tree-inline.c (remap_gimple_op_r): Work around C++ FE
11844 issue with call argument types.
11846 2009-04-27 Michael Matz <matz@suse.de>
11848 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
11849 (init_update_ssa, delete_update_ssa, update_ssa): Remove references
11852 2009-04-27 Richard Sandiford <rdsandiford@googlemail.com>
11853 Eric Botcazou <ebotcazou@adacore.com>
11855 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
11856 a label's basic block.
11857 (mark_target_live_regs): Tidy and rework obsolete comments.
11858 Change back DF problem to LIVE. If a label starts a basic block,
11859 assume that all registers that used to be live then still are.
11860 (init_resource_info): If a label starts a basic block, set its
11861 BLOCK_FOR_INSN accordingly.
11862 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
11864 2009-04-27 Richard Guenther <rguenther@suse.de>
11866 * tree-flow-inline.h (function_ann): Remove.
11867 (get_function_ann): Likewise.
11868 * tree-dfa.c (create_function_ann): Remove.
11869 * tree-flow.h (struct static_var_ann_d): Remove.
11870 (struct function_ann_d): Likewise.
11871 (union tree_ann_d): Remove fdecl member.
11872 (function_ann_t): Remove.
11873 (function_ann, get_function_ann, create_function_ann): Remove
11876 2009-04-27 Uros Bizjak <ubizjak@gmail.com>
11878 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
11880 2009-04-27 Jan Hubicka <jh@suse.cz>
11882 * ipa-pure-const.c (struct funct_state_d): New fields
11883 state_previously_known, looping_previously_known; remove
11884 state_set_in_source.
11885 (analyze_function): Use new fields.
11886 (propagate): Avoid assumption that state_set_in_source imply
11889 * tree-ssa-loop-niter.c (finite_loop_p): New function.
11890 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
11891 * cfgloop.h (finite_loop_p): Declare.
11893 2009-04-26 Michael Matz <matz@suse.de>
11895 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
11897 2009-04-26 Michael Matz <matz@suse.de>
11899 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
11900 pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
11901 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
11902 pass_mark_used_blocks): Remove.
11903 * tree-optimize.c (pass_free_datastructures,
11904 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
11905 * passes.c (init_optimization_passes): Don't call
11906 pass_mark_used_blocks, remove dead code.
11908 2009-04-26 H.J. Lu <hongjiu.lu@intel.com>
11910 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
11911 * tree-ssa-live.h (register_ssa_partition): Likewise.
11913 2009-04-26 Michael Matz <matz@suse.de>
11916 * builtins.c (fold_builtin_next_arg): Handle SSA names.
11917 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
11918 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
11920 (compare_pairs): Swap cost comparison.
11921 (coalesce_ssa_name): Don't use change_partition_var.
11922 * tree-nrv.c (struct nrv_data): Add modified member.
11923 (finalize_nrv_r): Set it.
11924 (tree_nrv): Use it to update statements.
11925 (pass_nrv): Require PROP_ssa.
11926 * tree-mudflap.c (mf_decl_cache_locals,
11927 mf_build_check_statement_for): Use make_rename_temp.
11928 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
11929 * alias.c (find_base_decl): Handle SSA names.
11930 * emit-rtl (set_reg_attrs_for_parm): Make non-static.
11931 (component_ref_for_mem_expr): Don't leak SSA names into RTL.
11932 * rtl.h (set_reg_attrs_for_parm): Declare.
11933 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
11934 to "optimized", remove unused locals at finish.
11935 (execute_free_datastructures): Make global, call
11936 delete_tree_cfg_annotations.
11937 (execute_free_cfg_annotations): Don't call
11938 delete_tree_cfg_annotations.
11940 * ssaexpand.h: New file.
11941 * expr.c (toplevel): Include ssaexpand.h.
11942 (expand_assignment): Handle SSA names the same as register variables.
11943 (expand_expr_real_1): Expand SSA names.
11944 * cfgexpand.c (toplevel): Include ssaexpand.h.
11945 (SA): New global variable.
11946 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
11947 (SSAVAR): New macro.
11948 (set_rtl): New helper function.
11949 (add_stack_var): Deal with SSA names, use set_rtl.
11950 (expand_one_stack_var_at): Likewise.
11951 (expand_one_stack_var): Deal with SSA names.
11952 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
11953 before unique numbers.
11954 (expand_stack_vars): Use set_rtl.
11955 (expand_one_var): Accept SSA names, add asserts for them, feed them
11956 to above subroutines.
11957 (expand_used_vars): Expand all partitions (without default defs),
11958 then only the local decls (ignoring those expanded already).
11959 (expand_gimple_cond): Remove edges when jumpif() expands an
11960 unconditional jump.
11961 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
11962 or remove abnormal edges. Ignore insns setting the LHS of a TERed
11964 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
11965 members of SA; deal with PARM_DECL partitions here; expand
11966 all PHI nodes, free tree datastructures and SA. Commit instructions
11967 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
11968 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
11969 info and statements at start, collect garbage at finish.
11970 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
11971 (VAR_ANN_PARTITION) Remove.
11972 (change_partition_var): Don't declare.
11973 (partition_to_var): Always return SSA names.
11974 (var_to_partition): Only accept SSA names.
11975 (register_ssa_partition): Only check argument.
11976 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
11978 (delete_var_map): Don't free it.
11979 (var_union): Only accept SSA names, simplify.
11980 (partition_view_init): Mark only useful SSA names as used.
11981 (partition_view_fini): Only deal with SSA names.
11982 (change_partition_var): Remove.
11983 (dump_var_map): Use ssa_name instead of partition_to_var member.
11984 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
11986 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
11987 (struct _elim_graph): New member const_dests; nodes member vector of
11989 (set_location_for_edge): New static helper.
11990 (create_temp): Remove.
11991 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
11992 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
11993 (new_elim_graph): Allocate const_dests member.
11994 (clean_elim_graph): Truncate const_dests member.
11995 (delete_elim_graph): Free const_dests member.
11996 (elim_graph_size): Adapt to new type of nodes member.
11997 (elim_graph_add_node): Likewise.
11998 (eliminate_name): Likewise.
11999 (eliminate_build): Don't take basic block argument, deal only with
12000 partition numbers, not variables.
12001 (get_temp_reg): New static helper.
12002 (elim_create): Use it, deal with RTL temporaries instead of trees.
12003 (eliminate_phi): Adjust all calls to new signature.
12004 (assign_vars, replace_use_variable, replace_def_variable): Remove.
12005 (rewrite_trees): Only do checking.
12006 (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
12007 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
12008 init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
12009 contains_tree_r, MAX_STMTS_IN_LATCH,
12010 process_single_block_loop_latch, analyze_edges_for_bb,
12011 perform_edge_inserts): Remove.
12012 (expand_phi_nodes): New global function.
12013 (remove_ssa_form): Take ssaexpand parameter. Don't call removed
12014 functions, initialize new parameter, remember partitions having a
12016 (finish_out_of_ssa): New global function.
12017 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form,
12018 don't reset in_ssa_p here, don't disable TER when mudflap.
12019 (pass_del_ssa): Remove.
12020 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
12022 (execute_free_datastructures): Declare.
12023 * Makefile.in (SSAEXPAND_H): New variable.
12024 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
12025 * basic-block.h (commit_one_edge_insertion): Declare.
12026 * passes.c (init_optimization_passes): Move pass_nrv and
12027 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
12028 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
12029 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
12030 (redirect_branch_edge): Deal with super block when expanding, split
12031 out jump patching itself into ...
12032 (patch_jump_insn): ... here, new static helper.
12034 2009-04-26 Michael Matz <matz@suse.de>
12036 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
12037 beyond num_ssa_names.
12038 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
12039 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
12041 2009-04-26 Jakub Jelinek <jakub@redhat.com>
12043 PR inline-asm/39543
12044 * fwprop.c (forward_propagate_asm): New function.
12045 (forward_propagate_and_simplify): Propagate also into __asm, if it
12046 doesn't increase the number of referenced registers.
12049 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
12051 2009-04-26 Jakub Jelinek <jakub@redhat.com>
12053 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
12054 note_nonlocal_vla_type for nonlocal VLAs.
12055 (note_nonlocal_vla_type, note_nonlocal_block_vlas,
12056 contains_remapped_vars, remap_vla_decls): New functions.
12057 (convert_nonlocal_reference_stmt): If not optimizing, call
12058 note_nonlocal_block_vlas on GIMPLE_BIND block vars.
12059 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
12060 if it wasn't found in var_map.
12061 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost
12062 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
12063 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
12065 * gimplify.c (nonlocal_vlas): New variable.
12066 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
12068 (gimplify_body): Create and destroy nonlocal_vlas.
12070 * dwarf2out.c (loc_descr_plus_const): New function.
12071 (build_cfa_aligned_loc, tls_mem_loc_descriptor,
12072 mem_loc_descriptor, loc_descriptor_from_tree_1,
12073 descr_info_loc, gen_variable_die): Use it.
12075 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
12076 !TREE_STATIC VAR_DECLs.
12077 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
12078 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
12079 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if
12080 DECL_BY_REFERENCE is valid.
12081 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
12082 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
12083 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
12084 Copy DECL_BY_REFERENCE.
12085 (struct nesting_copy_body_data): New type.
12086 (nesting_copy_decl): New function.
12087 (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
12088 if they have variable length.
12090 2009-04-26 Michael Matz <matz@suse.de>
12092 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
12093 mark new temporaries for renaming.
12095 2009-04-26 Joseph Myers <joseph@codesourcery.com>
12098 * c-decl.c (global_bindings_p): Return negative value.
12099 (c_variable_size): New. Based on variable_size from
12101 (grokdeclarator): Call c_variable_size not variable_size.
12103 2009-04-26 Uros Bizjak <ubizjak@gmail.com>
12105 * config/i386/i386.c (print_operand) ['z']: Fix typo.
12107 2009-04-26 Kai Tietz <kai.tietz@onevision.com>
12109 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
12110 Redefine it to just use mingw/include.
12111 (ASM_SPEC): Rules for -m32 and -m64.
12112 (LINK_SPEC): Use Likewise.
12113 (SPEC_32): New define.
12114 (SPEC_64): Likewise.
12115 (SUB_LINK_SPEC): Likewise.
12116 (MULTILIB_DEFAULTS): New define.
12117 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
12118 Add multilib options.
12119 (MULTILIB_DIRNAMES): Likewise.
12120 (MULTILIB_OSDIRNAMES): Likewise.
12121 (LIBGCC): Likewise.
12122 (INSTALL_LIBGCC): Likewise.
12124 2009-04-26 Joseph Myers <joseph@codesourcery.com>
12127 * c-tree.h (enum c_inline_static_type): New.
12128 (record_inline_static): Declare.
12129 * c-decl.c (struct c_inline_static, c_inline_statics,
12130 record_inline_static, check_inline_statics): New.
12131 (pop_file_scope): Call check_inline_statics.
12132 (start_decl): Call record_inline_static instead of pedwarning
12133 directly for static in inline function.
12134 * c-typeck.c (build_external_ref): Call record_inline_static
12135 instead of pedwarning directly for static referenced in inline
12138 2009-04-26 Steven Bosscher <steven@gcc.gnu.org>
12140 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
12141 not new but only being rescanned.
12142 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
12143 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
12144 alloc_reg_set_mem, free_reg_set_mem, record_one_set,
12145 record_set_info, compute_set, grealloc): Remove.
12146 (recompute_all_luids): New function.
12147 (gcse_main): Don't compute sets, and don't do related memory
12148 allocations/free-ing. If something changed before the end of the
12149 pass, update LUIDs using recompute_all_luids.
12150 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory.
12151 (free_gcse_mem): Don't free it either.
12152 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
12153 Use the df insn LUIDs.
12154 (load_killed_in_block): Likewise.
12155 (compute_hash_table_work): Don't compute reg_set_in_block.
12156 (compute_transp): Use DF_REG_DEF_CHAINs.
12157 (local_cprop_pass): Don't use compute_sets and related functions.
12158 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
12159 Use get_max_uid() instead of max_cuid.
12160 (insert_insn_end_basic_block, pre_insert_copy_insn,
12161 update_ld_motion_stores): Don't try to
12162 keep reg_set tables up to date.
12163 (pre_insert_copies): Use df insn LUIDs.
12164 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
12165 (reg_set_info): Don't use extra bitmap argument.
12166 (compute_store_table): Don't compute reg_set_in_block. Use DF scan
12167 information to compute regs_set_in_block.
12168 (free_store_memory, store_motion): Don't nullify reg_set_in_block.
12169 (bypass_jumps): Don't use compute_sets and friends.
12171 2009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
12174 * opts.c (undocumented_msg): Do not leave blank even with
12177 2009-04-25 Joseph Myers <joseph@codesourcery.com>
12179 * c-decl.c (build_enumerator): Allow values folding to integer
12180 constants but not integer constant expressions with a pedwarn if
12183 2009-04-25 Joseph Myers <joseph@codesourcery.com>
12186 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
12187 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
12188 type is an integer constant.
12190 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
12193 * config/i386/i386.c (print_operand) ['z']: Revert handling of
12196 2009-04-25 Joseph Myers <joseph@codesourcery.com>
12199 * c-decl.c (grokdeclarator): Diagnose declarations of functions
12200 with variably modified return type and no storage class
12201 specifiers, except for the case of nested functions. Distinguish
12202 extern declarations of functions with variably modified return
12203 types from those of objects with variably modified types.
12205 2009-04-25 Jan Hubicka <jh@suse.cz>
12207 * tree.c (list_equal_p): New function.
12208 * tree.h (list_equal_p): Declare.
12209 * coretypes.h (edge_def, edge, const_edge, basic_block_def
12210 basic_block_def, basic_block, const_basic_block): New.
12211 * tree-eh.c (make_eh_edge): EH edges are not abnormal.
12212 (redirect_eh_edge): New function.
12213 (make_eh_edge_update_phi): EH edges are not abnormal.
12214 * except.c: Include tree-flow.h.
12215 (list_match): New function.
12216 (eh_region_replaceable_by_p): New function.
12217 (replace_region): New function.
12218 (hash_type_list): New function.
12219 (hash_eh_region): New function.
12220 (eh_regions_equal_p): New function.
12221 (merge_peers): New function.
12222 (remove_unreachable_regions): Verify EH tree when checking;
12224 (copy_eh_region_1): New function.
12225 (copy_eh_region): New function.
12226 (push_reachable_handler): New function.
12227 (build_post_landing_pads, dw2_build_landing_pads): Be ready for
12228 regions without label but with live RESX.
12229 * except.h (redirect_eh_edge_to_label): New.
12230 * tree-flow.h (redirect_eh_edge): New.
12231 * coretypes.h (edge_def, edge, const_edge, basic_block_def
12232 basic_block_def, basic_block, const_basic_block): Remove.
12233 * Makefile.in (except.o): Add dependency on tree-flow.h
12234 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
12235 * basic-block.h (edge, const_edge, basic_block, const_basic_block):
12238 2009-04-25 Eric Botcazou <ebotcazou@adacore.com>
12241 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
12242 on the destination of memcpy.
12244 2009-04-25 Paolo Bonzini <bonzini@gnu.org>
12246 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
12247 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
12248 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
12250 2009-04-25 Jan Hubicka <jh@suse.cz>
12252 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
12253 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
12254 to be reached by different label than left.
12255 (update_eh_edges): Update comment; remove edge_to_remove if possible
12256 and return true if suceeded.
12257 (cleanup_empty_eh): Accept sharing map; handle shared regions.
12258 (cleanup_eh): Compute sharing map.
12259 * except.c (remove_eh_handler_and_replace): Add argument if we should
12261 (remove_unreachable_regions): Update for label sharing.
12262 (label_to_region_map): Likewise.
12263 (get_next_region_sharing_label): New function.
12264 (remove_eh_handler_and_replace): Add update_catch_try parameter; update
12266 (remove_eh_handler): Update.
12267 (remove_eh_region_and_replace_by_outer_of): New function.
12268 * except.h (struct eh_region): Add next_region_sharing_label.
12269 (remove_eh_region_and_replace_by_outer_of,
12270 get_next_region_sharing_label): Declare.
12271 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
12273 2009-04-25 Jan Hubicka <jh@suse.cz>
12275 * tree-cfg.c (split_critical_edges): Split also edges where we can't
12276 insert code even if they are not critical.
12278 2009-04-25 Jan Hubicka <jh@suse.cz>
12280 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
12281 (gimple_can_remove_branch_p): EH edges won't remove branch by
12283 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
12284 updating of non-abnormal EH edges.
12285 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
12286 (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
12287 (split_critical_edges): Split also edges where emitting code on them
12288 will lead to splitting later.
12290 2009-04-25 Uros Bizjak <ubizjak@gmail.com>
12291 H.J. Lu <hongjiu.lu@intel.com>
12294 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
12295 the configured assembler supports fildq and fistpq mnemonics.
12296 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
12297 * configure: Regenerated.
12298 * config.in: Ditto.
12300 * config/i386/i386.c (print_operand): Handle 'Z'.
12301 ['z']: Remove handling of special fild/fist suffixes.
12302 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
12303 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
12304 suffix of fild insn.
12305 (*floatsi<mode>2_vector_mixed): Ditto.
12306 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
12307 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
12308 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
12309 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
12310 * config/i386/gas.h (GAS_MNEMONICS): Remove.
12312 2009-04-25 Ben Elliston <bje@au.ibm.com>
12314 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
12315 the source of a set operation.
12317 2009-04-25 Anatoly Sokolov <aesok@post.ru>
12319 * target.h (struct gcc_target): Add case_values_threshold field.
12320 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
12321 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
12322 * targhooks.c (default_case_values_threshold): New function.
12323 * targhooks.h (default_case_values_threshold): Declare function.
12324 * stmt.c (expand_case): Use case_values_threshold target hook.
12325 * expr.h (case_values_threshold): Remove declartation.
12326 * expr.c (case_values_threshold): Remove function.
12327 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
12329 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
12330 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
12331 (avr_case_values_threshold): Declare as static.
12332 * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
12334 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
12335 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
12336 (mn10300_case_values_threshold): New function.
12338 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
12340 * ira.c (setup_cover_and_important_classes): Add enum cast.
12342 2009-04-24 Vladimir Makarov <vmakarov@redhat.com>
12344 * genpreds.c (write_enum_constraint_num): Output definition of
12345 CONSTRAINT_NUM_DEFINED_P macro.
12346 * ira.c (setup_cover_and_important_classes): Use
12347 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
12349 2009-04-24 DJ Delorie <dj@redhat.com>
12351 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
12352 __SH2A_SINGLE_ONLY__ also.
12354 2009-04-24 Steve Ellcey <sje@cup.hp.com>
12356 * config/ia64/ia64.md (movfs_internal): Allow flt constants.
12357 (movdf_internal): Ditto.
12358 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
12359 SFmode and DFmode constants.
12360 (ia64_print_operand): Add 'G' format for printing
12361 floating point constants.
12363 2009-04-24 Richard Guenther <rguenther@suse.de>
12365 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
12366 from unsigned additions.
12368 2009-04-24 Joseph Myers <joseph@codesourcery.com>
12370 * c-typeck.c (set_init_index): Allow array designators that are
12371 not integer constant expressions with a pedwarn if pedantic.
12373 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
12375 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
12376 zero if no overlap in nonzero bits between the operands.
12378 2009-04-24 Ian Lance Taylor <iant@google.com>
12380 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
12381 (record_dead_and_set_regs): Likewise.
12382 * df.h (struct df_mw_hardreg): Change flags field to int.
12383 (struct df_base_ref): Likewise.
12384 (struct df): Change changeable_flags field to int.
12385 * df-scan.c (df_defs_record): Change clobber_flags to int.
12386 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
12387 constants rather than #define macros.
12388 (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
12389 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
12390 (enum dwarf_calling_convention): Likewise.
12391 (enum dwarf_line_number_x_ops): Likewise.
12392 (enum dwarf_call_frame_info): Likewise.
12393 (enum dwarf_source_language): Likewise.
12394 * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
12395 (add_calling_convention_attribute): Likewise.
12396 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
12397 (combine_comparisons): Change compcode to int. Add cast to enum type.
12398 * genrecog.c (maybe_both_true_2): Change c to int.
12399 (write_switch): Likewise. Add cast to enum type.
12400 * gimplify.c (gimplify_omp_for): Handle return values from
12401 gimplify_expr using MIN rather than bitwise or.
12402 (gimplify_expr): Add cast to enum type.
12403 * ipa-prop.c (update_jump_functions_after_inlining): Change
12404 IPA_BOTTOM to IPA_JF_UNKNOWN.
12405 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
12406 Add casts to enum type.
12407 (setup_cover_and_important_classes): Change cl to int. Add casts
12409 (setup_class_translate): Change cl and mode to int.
12410 (ira_init_once): Change mode to int.
12411 (free_register_move_costs): Likewise.
12412 (setup_prohibited_mode_move_regs): Add casts to enum type.
12413 * langhooks.c (add_builtin_function_common): Rework assertion that
12414 value fits bitfield.
12415 * mcf.c (add_fixup_edge): Change type parameter to edge_type.
12416 * omega.c (omega_do_elimination): Avoid math on enum types.
12417 * optabs.c (expand_vec_shift_expr): Remove casts to int.
12418 * opts.c (set_debug_level): Change 2 to enum constant. Use new
12419 int local to handle integral_argment value.
12420 * regmove.c (try_auto_increment): Change PUT_MODE to
12422 * reload.c (push_secondary_reload): Add casts to enum type.
12423 (secondary_reload_class, find_valid_class): Likewise.
12424 * reload1.c (emit_input_reload_insns): Likewise.
12425 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
12426 * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
12427 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
12429 * tree.c (build_common_builtin_nodes): Add casts to enum type.
12430 * tree-complex.c (complex_lattice_t): Typedef to int rather than
12432 (expand_complex_libcall): Add casts to enum type.
12433 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
12434 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
12435 with ERROR_MARK, not NUM_TREE_CODES.
12436 (vect_create_epilog_for_reduction): Likewise.
12437 (vectorizable_reduction): Don't initialize epiloc_reduc_code.
12438 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
12439 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
12441 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
12442 vect_unused_in_loop. Change 0 to loop_vect.
12443 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
12444 * var-tracking.c (get_init_value): Change return type to enum
12446 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
12447 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
12449 (arm_override_options): Add casts to enum type.
12450 (arm_emit_tls_decoration): Likewise.
12451 * config/i386/i386.c (ix86_function_specific_restore): Add casts
12453 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
12454 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
12455 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
12457 * config/s390/s390.c (code_for_builtin_64): Change to array of
12459 (code_for_builtin_31): Likewise.
12460 (s390_expand_builtin): Change code_for_builtin to enum insn_code
12462 * config/sparc/sparc.c (sparc_override_options): Change value
12463 field in struct code_model to enum cmodel. In initializer change
12464 0 to NULL and add cast to enum type.
12466 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
12467 Change all callers. Issue a -Wc++-compat warning using
12468 lhs_origtype if necessary.
12469 (convert_for_assignment): Issue -Wc++-compat warnings about
12470 invalid conversions to enum type on assignment.
12471 * c-common.h (build_modify_expr): Update declaration.
12473 2009-04-24 Nick Clifton <nickc@redhat.com>
12475 * config/iq2000/iq2000.c (function_arg): Handle TImode values.
12476 (function_arg_advance): Likewise.
12477 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
12480 2009-04-24 Andreas Krebbel <krebbel1@de.ibm.com>
12482 * config/s390/constraints.md ('I', 'J'): Fix condition.
12484 2009-04-24 Diego Novillo <dnovillo@google.com>
12486 * gengtype-parse.c (parse_error): Add newline after message.
12488 2009-04-24 H.J. Lu <hongjiu.lu@intel.com>
12490 * config/i386/sse.md (avxmodesuffixs): Removed.
12491 (*avx_pinsr<avxmodesuffixs>): Renamed to ...
12492 (*avx_pinsr<ssevecsize>): This.
12494 2009-04-24 Bernd Schmidt <bernd.schmidt@analog.com>
12496 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
12497 follow chains of regs with a single definition, and allow expressions
12498 that are function_invariant_p.
12499 (simple_rhs_p): Allow expressions that are function_invariant_p.
12501 2009-04-24 Paolo Bonzini <bonzini@gnu.org>
12503 PR middle-end/39867
12504 * fold-const.c (fold_cond_expr_with_comparison): When folding
12505 > and >= to MAX, make sure the MAX uses the same type as the
12506 comparison's operands.
12508 2009-04-24 Nick Clifton <nickc@redhat.com>
12510 * config/frv/frv.c (frv_frame_access): Do not use reg+reg
12511 addressing for DImode accesses.
12512 (frv_print_operand_address): Handle PLUS case.
12513 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
12515 2009-04-24 Jakub Jelinek <jakub@redhat.com>
12517 PR rtl-optimization/39794
12518 * alias.c (canon_true_dependence): Add x_addr argument.
12519 * rtl.h (canon_true_dependence): Adjust prototype.
12520 * cse.c (check_dependence): Adjust canon_true_dependence callers.
12521 * cselib.c (cselib_invalidate_mem): Likewise.
12522 * gcse.c (compute_transp): Likewise.
12523 * dse.c (scan_reads_nospill): Likewise.
12524 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame
12525 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
12526 canon_base_addr of the group, plus optional offset.
12527 (struct group_info): Rename canon_base_mem to
12529 (get_group_info): Set canon_base_addr to canon_rtx of base, not
12530 canon_rtx of base_mem.
12532 2009-04-23 Paolo Bonzini <bonzini@gnu.org>
12534 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
12535 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
12537 2009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12539 * config/spu/spu-builtins.h: Delete file.
12541 * config/spu/spu.h (enum spu_builtin_type): Move here from
12543 (struct spu_builtin_description): Likewise. Add GTY marker.
12544 Do not use enum spu_function_code or enum insn_code.
12545 (spu_builtins): Add extern declaration.
12547 * config/spu/spu.c: Do not include "spu-builtins.h".
12548 (enum spu_function_code, enum spu_builtin_type_index,
12549 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
12550 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
12551 unsigned_V8HI_type_node, unsigned_V4SI_type_node,
12552 unsigned_V2DI_type_node): Move here from spu-builtins.h.
12553 (spu_builtin_types): Make static. Add GTY marker.
12554 (spu_builtins): Add extern declaration with GTY marker.
12555 Include "gt-spu.h".
12557 * config/spu/spu-c.c: Do not include "spu-builtins.h".
12558 (spu_resolve_overloaded_builtin): Do not use spu_function_code.
12559 Check programmatically whether all parameters are scalar.
12561 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
12563 2009-04-23 Eric Botcazou <ebotcazou@adacore.com>
12565 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
12566 assignment from the constructor either if the target is volatile.
12568 2009-04-23 Daniel Jacobowitz <dan@codesourcery.com>
12570 * config/arm/arm.md (insv): Do not share operands[0].
12572 2009-04-23 Nathan Sidwell <nathan@codesourcery.com>
12574 * config/vxlib-tls.c (active_tls_threads): Delete.
12575 (delete_hook_installed): New.
12576 (tls_delete_hook): Don't delete the delete hook.
12577 (tls_destructor): Delete it here.
12578 (__gthread_set_specific): Adjust installing the delete hook.
12579 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
12580 __gthread_leave_tsd_dtor_context.
12582 2009-04-23 Rafael Avila de Espindola <espindola@google.com>
12584 * c-format.c (gcc_tdiag_char_table): Add support for %E.
12586 2009-04-23 Uros Bizjak <ubizjak@gmail.com>
12588 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
12590 (alpha_rtx_costs): Ditto.
12591 (emit_unlikely_jump): Use add_reg_note.
12592 (emit_frame_store_1): Ditto.
12593 (alpha_expand_prologue): Ditto.
12594 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
12595 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
12597 2009-04-23 Nick Clifton <nickc@redhat.com>
12599 * config/v850/v850.md (epilogue): Remove suppressed code.
12600 (return): Rename to return_simple and remove test of frame size.
12601 * config/v850/v850.c (expand_epilogue): Rename call to gen_return
12602 to gen_return_simple.
12604 2009-04-22 Jing Yu <jingyu@google.com>
12607 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
12609 2009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
12612 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
12613 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the
12614 value is a VECTOR_CST, the element type is the element type of the
12617 2009-04-22 DJ Delorie <dj@redhat.com>
12619 * config/m32c/m32c.h: Update GTY annotations to new syntax.
12621 2009-04-22 Jakub Jelinek <jakub@redhat.com>
12623 * alias.c (find_base_term): Move around LO_SUM case, so that
12624 CONST falls through into PLUS/MINUS handling.
12627 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
12628 into 0, use omit_one_operand.
12630 2009-04-23 Ben Elliston <bje@au.ibm.com>
12632 * config/rs6000/linux-unwind.h (get_regs): Remove type
12633 puns. Change the type of `pc' to an array of unsigned ints and
12634 update all users. Constify frame24.
12636 2009-04-22 DJ Delorie <dj@redhat.com>
12638 * config/m32c/m32c.c (m32c_special_page_vector_p): Move
12639 declarations before code.
12640 (current_function_special_page_vector): Likewise.
12641 (m32c_expand_insv): Silence a warning.
12643 2009-04-21 Taras Glek <tglek@mozilla.com>
12645 * alias.c: Update GTY annotations to new syntax.
12646 * basic-block.h: Likewise.
12647 * bitmap.h: Likewise.
12648 * c-common.h: Likewise.
12649 * c-decl.c: Likewise.
12650 * c-parser.c: Likewise.
12651 * c-pragma.c: Likewise.
12652 * c-tree.h: Likewise.
12653 * cfgloop.h: Likewise.
12654 * cgraph.h: Likewise.
12655 * config/alpha/alpha.c: Likewise.
12656 * config/arm/arm.h: Likewise.
12657 * config/avr/avr.h: Likewise.
12658 * config/bfin/bfin.c: Likewise.
12659 * config/cris/cris.c: Likewise.
12660 * config/darwin.c: Likewise.
12661 * config/frv/frv.c: Likewise.
12662 * config/i386/i386.c: Likewise.
12663 * config/i386/i386.h: Likewise.
12664 * config/i386/winnt.c: Likewise.
12665 * config/ia64/ia64.h: Likewise.
12666 * config/iq2000/iq2000.c: Likewise.
12667 * config/mips/mips.c: Likewise.
12668 * config/mmix/mmix.h: Likewise.
12669 * config/pa/pa.c: Likewise.
12670 * config/pa/pa.h: Likewise.
12671 * config/rs6000/rs6000.c: Likewise.
12672 * config/s390/s390.c: Likewise.
12673 * config/sparc/sparc.c: Likewise.
12674 * config/xtensa/xtensa.c: Likewise.
12675 * cselib.h: Likewise.
12676 * dbxout.c: Likewise.
12677 * dwarf2out.c: Likewise.
12678 * except.c: Likewise.
12679 * except.h: Likewise.
12680 * fixed-value.h: Likewise.
12681 * function.c: Likewise.
12682 * function.h: Likewise.
12683 * gimple.h: Likewise.
12684 * integrate.c: Likewise.
12685 * optabs.c: Likewise.
12686 * output.h: Likewise.
12687 * real.h: Likewise.
12689 * stringpool.c: Likewise.
12690 * tree-data-ref.c: Likewise.
12691 * tree-flow.h: Likewise.
12692 * tree-scalar-evolution.c: Likewise.
12693 * tree-ssa-address.c: Likewise.
12694 * tree-ssa-alias.h: Likewise.
12695 * tree-ssa-operands.h: Likewise.
12696 * tree.c: Likewise.
12697 * tree.h: Likewise.
12698 * varasm.c: Likewise.
12699 * varray.h: Likewise.
12701 * coretypes.h: Do not define GTY macro if it is already defined.
12702 * doc/gty.texi: Update GTY documentation to new syntax.
12703 * gengtype-lex.l: Enforce attribute-like syntax for GTY
12704 annotations on structs.
12705 * gengtype-parse.c: Likewise.
12707 2009-04-22 Mark Heffernan <meheff@google.com>
12709 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
12711 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
12713 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
12716 2009-04-22 Kazu Hirata <kazu@codesourcery.com>
12718 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
12719 the same as a PLUS without a shift. Increase the cost of a
12722 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12724 * Makefile.in: Update dependencies.
12725 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
12726 * errors.h: Remove bogus comment about compatibility.
12727 (warning): Update declaration.
12728 * genautomata.c: Update all calls to warning.
12729 * gimple.c: Do not include errors.h. Include toplev.h.
12730 * tree-ssa-structalias.c: Do not include errors.h.
12731 * omega.c: Likewise.
12732 * tree-ssa-reassoc.c: Likewise.
12733 * config/spu/spu-c.c: Likewise.
12734 * config/spu/t-spu-elf: Update dependencies.
12736 2009-04-22 Richard Guenther <rguenther@suse.de>
12738 PR tree-optimization/39824
12739 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
12740 make sure the types are compatible.
12742 2009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
12745 * c-common.c (c_parse_error): Take a token_flags parameter.
12746 Use token_type for the token type instead.
12747 Pass token_flags to cpp_type2name.
12748 * c-common.h (c_parse_error): Update declaration.
12749 * c-parser.c (c_parser_error): Pass 0 as token flags.
12751 2009-04-22 Andrey Belevantsev <abel@ispras.ru>
12753 PR rtl-optimization/39580
12754 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert.
12756 2009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12758 * function.c (expand_function_end): Do not emit a jump to the "naked"
12759 return label for fall-through returns.
12760 * except.c (sjlj_emit_function_exit): Always place the call to the
12761 unregister function at the location installed by expand_function_end.
12763 2009-04-22 Richard Guenther <rguenther@suse.de>
12765 PR tree-optimization/39845
12766 * tree-switch-conversion.c (build_arrays): Add new referenced vars.
12767 (gen_inbound_check): Likewise.
12769 2009-04-22 Nathan Sidwell <nathan@codesourcery.com>
12771 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
12773 (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
12774 * config/vxlib.c (__gthread_once): Add race guard for PPC.
12776 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
12778 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
12779 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
12780 shift counts to avoid out-of-bounds array accesses.
12782 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
12784 * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
12785 (Pmode): Move above.
12787 2009-04-22 Uros Bizjak <ubizjak@gmail.com>
12789 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
12790 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
12791 GET_CODE macro. Use IN_RANGE macro where appropriate.
12792 * config/alpha/alpha.h: Ditto.
12793 * config/alpha/alpha.md: Ditto.
12794 * config/alpha/constraints.md: Ditto.
12795 * config/alpha/predicates.md: Ditto.
12797 2009-04-22 Paolo Bonzini <bonzini@gnu.org>
12799 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
12800 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12801 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12802 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12803 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12804 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12805 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12806 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12807 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12808 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12809 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12810 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12811 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12812 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12813 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12814 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12815 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12816 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12817 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12818 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12819 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12820 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12821 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12822 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12823 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12824 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12825 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12827 2009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com>
12829 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
12830 references from comments.
12831 * cfgbuild.c: (count_basic_blocks): Delete.
12832 (find_basic_blocks_1): Delete.
12833 (find_basic_blocks): Delete.
12834 * except.c (finish_eh_generation): Make static. Move comment from
12835 except.h here. Remove find_basic_blocks references from comments.
12836 * except.h (finish_eh_generation): Delete.
12837 * basic-block.h (find_basic_blocks): Delete.
12838 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
12840 2009-04-22 Dave Korn <dave.korn.cygwin@gmail.com>
12842 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs.
12843 (sdbout_parms): Likewise.
12845 2009-04-21 Kaz Kojima <kkojima@gcc.gnu.org>
12847 * config/sh/sh.c (prepare_cbranch_operands): Use
12848 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
12849 (expand_cbranchdi4): Likewise.
12850 (from_compare): Add cast to enum type.
12851 (expand_cbranchsi4): Use add_reg_note.
12852 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
12853 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
12854 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
12855 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
12856 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
12857 instead of CODE_FOR_nothing.
12858 (cbranchdi4): Likewise. Fix the order of arguments for
12860 (push_fpscr): Use add_reg_note.
12861 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
12862 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
12864 2009-04-21 Joseph Myers <joseph@codesourcery.com>
12866 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
12867 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
12868 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
12869 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
12870 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
12871 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
12872 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
12873 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
12874 config/alpha/x-vms, config/arc/t-arc,
12875 config/arm/README-interworking, config/arm/arm-c.c,
12876 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
12877 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
12878 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
12879 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
12880 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
12881 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
12882 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
12883 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
12884 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
12885 config/cris/t-elfmulti, config/crx/t-crx,
12886 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
12887 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
12888 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
12889 config/h8300/t-h8300, config/i386/athlon.md,
12890 config/i386/darwin-libgcc.10.4.ver,
12891 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
12892 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
12893 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
12894 config/i386/t-linux64, config/i386/t-nwld,
12895 config/i386/t-rtems-i386, config/i386/t-sol2-10,
12896 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
12897 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
12898 config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
12899 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
12900 config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
12901 config/iq2000/t-iq2000, config/libgcc-glibc.ver,
12902 config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
12903 config/m32r/t-m32r, config/m68hc11/t-m68hc11,
12904 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
12905 config/m68k/t-uclinux, config/mcore/t-mcore,
12906 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
12907 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
12908 config/mips/crtn.asm, config/mips/irix-crti.asm,
12909 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
12910 config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
12911 config/mips/mips-fixed.md, config/mips/sb1.md,
12912 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
12913 config/mips/t-iris6, config/mips/t-isa3264,
12914 config/mips/t-libgcc-mips16, config/mips/t-linux64,
12915 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
12916 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
12917 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
12918 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
12919 config/mn10300/t-linux, config/mn10300/t-mn10300,
12920 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
12921 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
12922 config/picochip/libgccExtras/clzsi2.asm,
12923 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
12924 config/rs6000/darwin-libgcc.10.4.ver,
12925 config/rs6000/darwin-libgcc.10.5.ver,
12926 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
12927 config/rs6000/t-aix43, config/rs6000/t-aix52,
12928 config/rs6000/t-darwin, config/rs6000/t-fprules,
12929 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
12930 config/rs6000/t-lynx, config/rs6000/t-netbsd,
12931 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
12932 config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
12933 config/rs6000/t-rtems, config/rs6000/t-spe,
12934 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
12935 config/score/t-score-elf, config/sh/divcost-analysis,
12936 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
12937 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
12938 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
12939 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
12940 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
12941 config/stormy16/stormy-abi, config/stormy16/t-stormy16,
12942 config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
12943 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
12944 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
12945 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
12946 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
12947 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
12948 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
12949 limitx.h, version.c, xcoff.h: Add copyright and license notices.
12950 * config/h8300/genmova.sh: Include copyright and license notices
12951 in generated output.
12952 * config/h8300/mova.md: Regenerate.
12953 * doc/install.texi2html: Include word "Copyright" in copyright
12954 notice and use name "Free Software Foundation, Inc.".
12955 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
12956 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
12957 ChangeLog-2007, ChangeLog-2008: Correct dates.
12959 2009-04-21 Eric Botcazou <ebotcazou@adacore.com>
12961 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
12962 NE_EXPR operations as well.
12963 * c-parser.c (c_parser_condition): Do not set location information on
12965 (c_parser_conditional_expression): Likewise.
12966 (c_parser_binary_expression): Set location information on operators.
12967 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
12968 TRUTH_NOT_EXPR has been folded.
12969 * fold-const.c (fold_truth_not_expr): Copy location information from
12970 the incoming expression to the outgoing one.
12971 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to
12972 recursive calls on the LHS of the operator but pass that of the
12973 operator to recursive calls on the RHS of the operator. Set it
12975 (shortcut_cond_expr): Set the locus of the operator on the second
12976 COND_EXPR and that of the expression on the first in degenerate cases.
12977 Pass the locus of the expression to calls to shortcut_cond_r.
12978 Set the locus of the 'then' block on the associated jump, if any.
12979 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR.
12980 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
12981 expression to call to gimplify_boolean_expr.
12983 2009-04-21 Kai Tietz <kai.tietz@onevision.com>
12985 * config.gcc: Add additional configuration for
12986 i686-w64-mingw* and x86_64-w64-mingw* triplet.
12987 * config/i386/mingw-w64.h: New mingw-w64 specific header.
12988 (CPP_SPEC): Redefine for allowing -municode option.
12989 (STARTFILE_SPEC): Likewise.
12990 * config/i386/t-mingw-w64: New.
12991 * config/i386/mingw-w64.opt: New.
12992 (municode): Add new target option.
12993 * doc/invoke.texi (municode): Add documentation for new option.
12995 2009-04-21 Ian Lance Taylor <iant@google.com>
12997 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12998 Correct test for number of arguments.
12999 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
13001 2009-04-21 Andreas Schwab <schwab@linux-m68k.org>
13003 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
13004 argument of emit_library_call.
13006 2009-04-21 Richard Guenther <rguenther@suse.de>
13008 PR middle-end/39829
13009 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
13010 inside VIEW_CONVERT_EXPRs.
13012 2009-04-21 Martin Jambor <mjambor@suse.cz>
13014 * tree-switch-conversion.c (build_constructors): Split a long line.
13015 (constructor_contains_same_values_p): New function.
13016 (build_one_array): Create assigns of constants if possible, do not
13017 call mark_sym_for_renaming, call update_stmt.
13018 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
13019 make_rename_temp. Do not call mark_symbols_for_renaming, call
13021 (gen_def_assigns): Do not call mark_symbols_for_renaming or
13022 find_new_referenced_vars, call update_stmt.
13023 (gen_inbound_check): Use create_tmp_var and create ssa names manually
13024 instead of calling make_rename_temp. Do not call
13025 find_new_referenced_vars or mark_symbols_for_renaming, call
13028 2009-04-21 Richard Guenther <rguenther@suse.de>
13030 PR tree-optimization/39827
13031 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
13032 (tree_ssa_phiprop): Pass the correct array size.
13034 2009-04-21 Uros Bizjak <ubizjak@gmail.com>
13036 * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
13038 2009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
13041 * c-typeck.c (lvalue_p): Move declaration ...
13042 * c-common.h (lvalue_p): ... to here.
13043 * c-common.c (candidate_equal_p): New.
13044 (add_tlist): Use it.
13045 (merge_tlist): Use it.
13046 (warn_for_collisions_1): Likewise.
13047 (warning_candidate_p): Accept more candidates.
13048 (verify_tree): A warning candidate can be an expression. Use
13051 2009-04-21 Ben Elliston <bje@au.ibm.com>
13054 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
13055 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
13056 options. Remove -mcall-solaris documentation.
13058 2009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
13061 * doc/invoke.texi (-Wlong-long): Update description.
13062 * c-lex (interpret_integer): Only warn if there was no previous
13063 overflow and -Wlong-long is enabled.
13064 * c-decl.c (declspecs_add_type): Drop redundant flags.
13065 * c.opt (Wlong-long): Init to -1.
13066 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
13067 and front-end warn_long_long. Wlong-long only depends on other
13068 flags if it is uninitialized.
13069 * c-parser.c (disable_extension_diagnostics): warn_long_long is
13070 the same for CPP and FE.
13071 (restore_extension_diagnostics): Likewise.
13073 2009-04-20 Ian Lance Taylor <iant@google.com>
13075 Fix enum conversions which are invalid in C++:
13076 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
13077 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
13078 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
13079 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
13080 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
13081 (dbxout_parms): Likewise.
13082 * df-core.c (df_set_flags): Change changeable_flags parameter to int.
13083 (df_clear_flags): Likewise.
13084 * df-problems.c (df_rd_bb_local_compute_process_def): Change
13085 top_flag parameter to int.
13086 (df_chain_create_bb_process_use): Likewise.
13087 (df_chain_add_problem): Change chain_flags parameter to unsigned int.
13089 * df-scan.c (df_ref_create): Change ref_flags parameter to int.
13090 (df_ref_create_structure, df_def_record_1): Likewise.
13091 (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
13092 (df_notes_rescan): Change 0 to VOIDmode in function call.
13093 (df_get_call_refs, df_insn_refs_collect): Likewise.
13094 (df_bb_regs_collect): Likewise.
13095 (df_entry_block_defs_collect): Likewise.
13096 (df_exit_block_uses_collect): Likewise.
13097 * df.h: Update declarations.
13098 * double-int.c (double_int_divmod): Add cast to enum type.
13099 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
13100 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
13101 (based_loc_descr): Likewise.
13102 (loc_descriptor_from_tree_1): Change first_op and second_op to
13103 enum dwarf_location_atom. Add cast to enum type.
13104 * expmed.c (init_expmed): Change 0 to SET in function call.
13105 * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
13106 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
13107 (do_store_flag): Likewise.
13108 * fixed-value.h (struct fixed_value): Change mode to enum
13110 * function.c (assign_parms): Change 0 to VOIDmode in function call.
13111 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
13113 (insert_insn_decl, insert_decl, insert_state): Likewise.
13114 (automata_list_finish): Likewise.
13115 * genrecog.c (process_define_predicate): Add cast to enum type.
13116 * gensupport.c (init_predicate_table): Add cast to enum type.
13117 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
13119 (gimple_build_call_1, gimple_build_label): Likewise.
13120 (gimple_build_goto, gimple_build_asm_1): Likewise.
13121 (gimple_build_switch_1, gimple_build_cdt): Likewise.
13122 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
13123 (enum fallback): Rename from enum fallback_t.
13124 (fallback_t): Typedef as int.
13125 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
13126 GSI_SAME_STMT in function call.
13127 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
13129 (setup_reg_class_relations): Likewise.
13130 (setup_reg_class_nregs): Change cl to int. Add casts to enum type.
13131 (setup_prohibited_class_mode_regs): Add cast to enum type.
13132 (setup_prohibited_mode_move_regs): Likewise.
13133 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
13134 (record_address_regs): Change i to enum reg_class.
13135 * lists.c (alloc_EXPR_LIST): Add cast to enum type.
13136 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
13137 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
13138 (GET_MODE_2XWIDER_MODE): Likewise.
13139 (GET_CLASS_NARROWEST_MODE): Likewise.
13140 * omp-low.c (expand_omp_for): Add cast to enum type.
13141 * optabs.c (debug_optab_libfuncs): Add casts to enum type.
13142 * opts.c (enable_warning_as_error): Change kind to diagostic_t.
13143 * postreload.c (reload_cse_simplify_operands): Change rclass local
13145 * predict.c (combine_predictions_for_insn): Change best_predictor
13146 and predictor to enum br_predictor.
13147 (combine_predictions_for_bb): Likewise.
13148 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
13149 use SET_PREDICT_EXPR_OUTCOME.
13150 * real.c (real_arithmetic): Change icode to code in function call.
13151 * reginfo.c (init_move_cost): Add casts to enum type.
13152 (init_reg_sets_1, init_fake_stack_mems): Likewise.
13153 * regmove.c (regclass_compatible_p): Change class0 and class1 to
13155 * reload.c (find_valid_class): Add casts to enum type.
13156 (push_reload): Change 0 to NO_REGS in function call.
13157 (find_reloads): Change this_alternative to array of enum
13158 reg_class. Remove some now-unnecessary casts.
13159 (make_memloc): Change 0 to VOIDmode in function call.
13160 * reload1.c (reload): Change 0 to VOIDmode in function call.
13161 (eliminate_regs_1, elimination_effects): Likewise.
13162 (eliminate_regs_in_insn): Likewise.
13163 (emit_input_reload_insns): Add cast to enum type.
13164 (delete_output_reload): Change 0 to VOIDmode in function call.
13165 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
13166 to enum type in function call.
13167 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
13168 (SET_PREDICT_EXPR_OUTCOME): Define.
13169 * tree-dump.c (get_dump_file_info): Change phase parameter to int.
13170 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
13171 (dump_initialized_p, dump_flag_name, dump_end): Likewise.
13172 (dump_function): Likewise.
13173 * tree-dump.h: Update declarations.
13174 * tree-pass.h: Update declarations.
13175 * varasm.c (assemble_integer): Change mclass to enum mode_class.
13176 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
13178 (arm_rtx_costs_1): Correct parenthesization.
13179 (arm_rtx_costs): Add casts to enum type.
13180 (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
13181 (vfp_emit_fstmd): Use add_rg_note.
13182 (emit_multi_reg_push, emit_sfm): Likewise.
13183 (thumb_set_frame_pointer): Likewise.
13184 (arm_expand_prologue): Likewise.
13185 (arm_regno_class): Change return type to enum reg_class.
13186 (thumb1_expand_prologue): Use add_reg_note.
13187 * config/arm/arm-protos.h (arm_regno_class): Update declaration.
13188 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
13190 * config/arm/gentune.sh: Add cast to enum type.
13191 * config/arm/arm-tune.md: Rebuild.
13192 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
13193 (ix86_split_fp_branch, predict_jump): Likewise.
13194 (ix86_expand_multi_arg_builtin): Change sub_code from enum
13195 insn_code to enum rtx_code.
13196 (ix86_builtin_vectorized_function): Add cast to enum type.
13197 * config/i386/i386.md (truncdfsf2): Change slot to enum
13199 (truncxf<mode>2, isinf<mode>2): Likewise.
13200 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
13202 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
13203 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
13204 (insert_bundle_state): Change 1 to INSERT in function call.
13205 (ia64_add_bundle_selector_before): Likewise.
13206 * config/ia64/ia64.md (cpu attr): Add cast to enum type.
13207 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
13208 (restore_stack_nonlocal): Likewise.
13209 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
13211 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
13213 (mips_rtx_costs): Likewise.
13214 (mips_override_options): Add casts to enum type.
13215 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
13217 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
13218 (store_reg, set_reg_plus_d): Likewise.
13219 (hppa_expand_prologue, hppa_profile_hook): Likewise.
13220 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
13222 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
13224 (emit_unlikely_jump): Use add_reg_note.
13225 (rs6000_emit_allocate_stack): Likewise.
13226 (rs6000_frame_related, rs6000_emit_prologue): Likewise.
13227 (output_toc): Change 1 to INSERT in function call.
13228 (output_profile_hook): Change 0 to LCT_NORMAL in function call.
13229 (rs6000_initialize_trampoline): Likewise.
13230 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
13232 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
13233 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
13234 (s390_expand_setmem, s390_expand_cmpmem): Likewise.
13235 (save_gprs): Use add_reg_note.
13236 (s390_emit_prologue): Likewise.
13237 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
13238 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
13239 (sparc_fold_builtin): Add cast to enum type.
13240 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
13242 (spu_expand_prologue): Use add_reg_note.
13243 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
13245 2009-04-20 Ian Lance Taylor <iant@google.com>
13247 * c-parser.c (c_parser_attributes): Change VEC back to tree list.
13248 (c_parser_postfix_expression_after_primary): Get VEC for list of
13249 arguments. Get original types of arguments. Call
13250 build_function_call_vec.
13251 (cached_expr_list_1, cached_expr_list_2): New static variables.
13252 (c_parser_expr_list): Change return type to VEC *. Add
13253 p_orig_types parameter. Change all callers.
13254 (c_parser_release_expr): New static function.
13255 (c_parser_vec_to_tree_list): New static function.
13256 * c-typeck.c (build_function_call): Rewrite to build a VEC and
13257 call build_function_call_vec.
13258 (build_function_call_vec): New function, based on old
13259 build_function_call.
13260 (convert_arguments): Remove nargs and argarray parameters. Change
13261 values to a VEC. Add origtypes parameter.
13262 (build_modify_expr): Add rhs_origtype parameter. Change all callers.
13263 (convert_for_assignment): Add origtype parameter. Change all
13264 callers. If warn_cxx_compat, check for conversion to an enum
13265 type when calling a function.
13266 (store_init_value): Add origtype parameter. Change all callers.
13267 (digest_init): Likewise.
13268 (struct init_node): Add origtype field.
13269 (add_pending_init): Add origtype parameter. Change all callers.
13270 (output_init_element): Likewise.
13271 (output_pending_init_elements): Pass origtype from init_node to
13272 output_init_element.
13273 (process_init_element): Pass origtype from c_expr to
13274 output_init_element.
13275 (c_finish_return): Add origtype parameter. Change all callers.
13276 * c-common.c (sync_resolve_size): Change params to VEC *. Change
13278 (sync_resolve_params): Likewise.
13279 (sync_resolve_return): Change params to first_param. Change caller.
13280 (resolve_overloaded_builtins): Change params to VEC *. Change
13281 callers. Save first parameter around call to build_function_call_vec.
13282 * c-decl.c (finish_decl): Add origtype parameter. Change all
13283 callers. Call build_function_call_vec rather than
13284 build_function_call for cleanup.
13285 * c-tree.h: Update declarations.
13286 * c-common.h: Update declarations.
13287 * stub-objc.c (objc_rewrite_function_call): Change parameter from
13288 params to first_param.
13289 * target.h (struct gcc_target): Change resolve_overloaded_builtin
13290 params parameter from tree to void *.
13291 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13292 Change arglist parameter to have type void *, and to be a pointer
13294 * config/rs6000/rs6000-protos.h
13295 (altivec_resolve_overloaded_builtin): Update declaration.
13296 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
13297 fnargs parameter to have type void *, and to be a pointer to a
13298 VEC. Call build_function_call_vec instead of
13299 build_function_call.
13300 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
13302 2009-04-20 Joey Ye <joey.ye@intel.com>
13303 Xuepeng Guo <xuepeng.guo@intel.com>
13304 H.J. Lu <hongjiu.lu@intel.com>
13306 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
13308 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
13309 (IX86_LEA_PRIORITY): Likewise.
13310 (distance_non_agu_define): New function.
13311 (distance_agu_use): Likewise.
13312 (ix86_lea_for_add_ok): Likewise.
13313 (ix86_dep_by_shift_count): Likewise.
13315 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
13316 should split for LEA.
13318 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
13320 (ix86_dep_by_shift_count): Likewise.
13322 2009-04-20 Richard Guenther <rguenther@suse.de>
13324 * expr.c (handled_component_p): Move ...
13325 * tree.h (handled_component_p): ... here.
13326 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
13327 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
13328 and REALPART_EXPR to be in one group.
13330 2009-04-20 Richard Guenther <rguenther@suse.de>
13332 * basic-block.h (get_all_dominated_blocks): Declare.
13333 * dominance.c (get_all_dominated_blocks): New function.
13334 * tree-cfg.c (get_all_dominated_blocks): Remove.
13335 (remove_edge_and_dominated_blocks): Adjust.
13336 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
13337 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks
13338 instead of recursing.
13340 2009-04-20 Doug Kwan <dougkwan@google.com>
13342 * cgraph.h (cgraph_node_ptr): New type for vector functions.
13343 (struct cgraph_node_set_def): New type.
13344 (cgraph_node_set) New type. Also declare vector functions.
13345 (struct cgraph_node_set_element_def): New type.
13346 (cgraph_node_set_element): Ditto.
13347 (cgraph_node_set_iterator): New iterator type.
13348 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
13349 cgraph_node_set_remove, dump_cgraph_node_set,
13350 debug_cgraph_node_set): New prototypes.
13351 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
13352 cgraph_node_set_size): New inlines.
13353 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
13354 including cgraph.h.
13355 (struct ipa_opt_pass): Add struct cgraph_node_set_def
13356 argument to function 'write_summary'.
13357 * ipa.c: Include ggc.h.
13358 (hash_cgraph_node_set_element,
13359 eq_cgraph_node_set_element, cgraph_node_set_new,
13360 cgraph_node_set_add, cgraph_node_set_remove,
13361 cgraph_node_set_find, dump_cgraph_node_set,
13362 debug_cgraph_node_set): New functions.
13363 * Makefile.in (ipa.o): Add dependency on GGC_H.
13365 2009-04-20 Ira Rosen <irar@il.ibm.com>
13367 PR tree-optimization/39675
13368 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
13369 check of the return code of vect_schedule_slp. Check that
13370 stmt_vec_info still exists for the statement, before checking its
13371 vectorization type.
13373 2009-04-20 Michael Matz <matz@suse.de>
13375 * Makefile.in (generated_files): Take out $(simple_generated_c).
13377 2009-04-19 Dave Korn <dave.korn.cygwin@gmail.com>
13379 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long".
13380 (UINTPTR_TYPE): Likewise.
13382 2009-04-19 Joseph Myers <joseph@codesourcery.com>
13385 * c-typeck.c (digest_init): Check for initializing an array with a
13388 2009-04-19 Joseph Myers <joseph@codesourcery.com>
13391 * c-semantics.c (pop_stmt_list): Propagate
13392 STATEMENT_LIST_HAS_LABEL to parent statement list.
13394 2009-04-19 Adam Nemet <anemet@caviumnetworks.com>
13396 * config/mips/mips.h (mips_tune_attr): New macro.
13397 * config/mips/mips.md (cpu): Use it.
13399 2009-04-19 Joseph Myers <joseph@codesourcery.com>
13402 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
13405 2009-04-19 Diego Novillo <dnovillo@google.com>
13407 * toplev.c (compile_file): Move call to coverage_finish ...
13408 * cgraphunit.c (ipa_passes): ... here.
13409 Call cgraph_process_new_functions.
13410 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
13411 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
13413 2009-04-19 Jan Hubicka <jh@suse.cz>
13415 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
13417 (dump_cgraph_node): Dump can throw external flag.
13418 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
13420 2009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
13424 * doc/invoke.texi: Add -Wlogical-op to -Wextra.
13425 * common.opt (Wlogical-op): Move from here...
13426 * c.opt (Wlogical-op): ... to here.
13427 * c-typeck.c (parser_build_binary_op): Update call to
13428 warn_logical_operator.
13429 * c-opts.c (c_common_post_options): Enable warn_logical_op with
13431 * c-common.c (warn_logical_op): Update.
13432 * c-common.h (warn_logical_op): Update declaration.
13434 2009-04-19 Eric Botcazou <ebotcazou@adacore.com>
13436 * tree.c (protected_set_expr_location): Fix formatting.
13438 2009-04-18 Joseph Myers <joseph@codesourcery.com>
13441 * c-typeck.c (readonly_warning): new.
13442 (build_unary_op, build_modify_expr): Use readonly_warning for
13443 storing into something readonly but not const-qualified.
13445 2009-04-18 Joseph Myers <joseph@codesourcery.com>
13448 * c-typeck.c (build_unary_op): Check for taking address of
13449 expression of type void.
13451 2009-04-18 Joseph Myers <joseph@codesourcery.com>
13454 * c-typeck.c (build_function_call): Check for calling a function
13455 with qualified void return types. Call require_complete_type when
13458 2009-04-18 Jan Hubicka <jh@suse.cz>
13460 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
13462 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
13463 can_throw_external flag.
13464 * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
13465 * ipa-pure-const.c (ignore_edge): New function.
13466 (propagate): Compute order for NOTHROW computation; set NOTHROWs
13467 only over can_throw_external edges.
13468 (local_pure_const): Add nothrow flag.
13469 * ipa-utils.c (searchc): Add ignore_edge callback.
13470 (ipa_utils_reduced_inorder): Add ignore_edge callback.
13471 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
13472 (set_nothrow_function_flags): Update cgraph.
13473 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
13475 2009-04-18 Richard Guenther <rguenther@suse.de>
13477 PR middle-end/39804
13478 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
13479 (fold_stmt): ... this and ...
13480 (fold_stmt_inplace): ... this.
13481 (fold_stmt_1): Fold references in calls and asms.
13482 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
13484 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
13486 * tree-vrp.c (ssa_name_nonzero_p): Remove.
13487 * tree.h: Remove the prototype for ssa_name_nonzero_p.
13489 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
13491 * tree.c (function_args_count): Remove.
13492 * tree.h: Remove the prototype for function_args_count.
13494 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
13496 * tree-iterator.c (expr_only): Remove.
13497 * tree.h: Remove the prototype for expr_only.
13499 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
13501 * reginfo.c (cannot_change_mode_set_regs): Remove.
13502 * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
13504 2009-04-08 Anatoly Sokolov <aesok@post.ru>
13506 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
13507 whether operands 0 and 1 overlaps.
13509 2009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
13511 PR middle-end/36902
13512 * tree-vrp.c (check_array_ref): Pass a location_t instead of a
13513 pointer. Use warning_at instead of warning.
13514 (search_for_addr_array): Likewise.
13515 (check_array_bounds): Likewise.
13516 (check_all_array_refs): Check that the incoming edge is not in the
13517 list of edges to be removed.
13518 (check_all_array_refs): Avoid the temporal pointer.
13519 (vrp_visit_cond_stmt): Fix typo.
13520 (simplify_switch_using_ranges): Handle the case where the switch
13521 index is an integer constant.
13523 2009-04-18 Adam Nemet <anemet@caviumnetworks.com>
13525 * config/mips/mips.c (mips_final_postscan_insn): Make it static.
13527 2009-04-18 Kazu Hirata <kazu@codesourcery.com>
13529 * doc/extend.texi, doc/invoke.texi: Fix typos.
13531 2009-04-17 Cary Coutant <ccoutant@google.com>
13533 * tree-flow-inline.h (get_lineno): Fix inverted test.
13535 2009-04-17 Diego Novillo <dnovillo@google.com>
13537 * tree-ssa-pre.c (create_expression_by_pieces): Remove
13538 assertion for AVAIL_OUT.
13540 2009-04-17 Mike Frysinger <vapier@gentoo.org>
13543 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
13544 * config/sh/linux-atomic.asm: Likewise.
13546 2009-04-17 Diego Novillo <dnovillo@google.com>
13548 * except.c (debug_eh_tree): New.
13549 (struct eh_region, struct eh_status): Move ...
13550 * except.h: ... here.
13551 (add_type_for_runtime): Declare extern.
13552 (lookup_type_for_runtime): Likewise.
13553 (debug_eh_tree): Declare.
13554 * Makefile.in (GTFILES): List except.h before except.c
13556 2009-04-17 Diego Novillo <dnovillo@google.com>
13558 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
13559 * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
13560 * tree-dfa.c (find_referenced_vars_in): Factor out of ...
13561 (find_vars_r): ... here.
13562 * tree-flow.h (find_referenced_vars_in): Declare.
13563 * tree-ssa-pre.c (create_expression_by_pieces): Assert
13564 that AVAIL_OUT exists for BLOCK.
13565 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
13566 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
13567 (tree-parloops.o): Likewise.
13569 2009-04-17 Simon Baldwin <simonb@google.com>
13571 * toplev.c (default_tree_printer): Add handling for %E format.
13573 2009-04-17 Diego Novillo <dnovillo@google.com>
13575 * tree-pretty-print.c (dump_generic_node): Add break after
13576 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and
13577 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and
13578 FUNCTION_TYPE together. Call print_struct_decl when printing
13579 structures and TDF_SLIM is not given.
13580 (print_struct_decl): Fix logic for detecting recursion.
13582 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
13585 * gcc.c (create_at_file): New.
13586 (compile_input_file_p): New.
13587 (do_spec_1): Use @args files for %i. Use create_at_file for %o.
13588 * main.c (main): Update call to toplev_main.
13589 * toplev.c (toplev_main): Change signature. Call expandargv.
13590 * toplev.h (toplev_main): Change signature.
13592 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
13594 * dwarf2out.c (field_byte_offset): Use the type size as the field size
13595 if the latter is not constant.
13597 2009-04-17 David Edelsohn <edelsohn@gnu.org>
13599 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
13601 2009-04-17 Eric Botcazou <ebotcazou@adacore.com>
13603 * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
13604 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
13606 2009-04-17 Richard Guenther <rguenther@suse.de>
13608 * tree-ssa-structalias.c (get_constraint_for_component_ref):
13609 Handle component references view-converting an invariant address.
13611 2009-04-17 Adam Nemet <anemet@caviumnetworks.com>
13613 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
13614 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
13615 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
13616 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
13617 Use @deftypevr rather than @deftypevar.
13619 2009-04-17 Richard Guenther <rguenther@suse.de>
13621 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
13622 (get_prop_source_stmt): Likewise.
13623 (can_propagate_from): Likewise.
13625 2009-04-17 Andrew Stubbs <ams@codesourcery.com>
13627 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
13628 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
13629 (--with-multilib-list): Add default value.
13630 * configure: Regenerate.
13631 * Makefile.in (TM_ENDIAN_CONFIG): Define.
13632 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
13633 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
13634 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
13635 Don't add default cpu to multilib list unnecessarily, but do enable
13636 the relevant compiler option..
13637 Add support for --with-multilib-list=<blank> and
13638 --with-multilib-list=!<somelib> to supress unwanted multilibs.
13639 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
13640 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
13641 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
13642 TM_MULTILIB_CONFIG.
13643 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
13644 (MULTILIB_OSDIRNAMES): New variable.
13645 * config/sh/t-1e: Delete file.
13646 * config/sh/t-mlib-sh1: Delete file.
13647 * config/sh/t-mlib-sh2: Delete file.
13648 * config/sh/t-mlib-sh2a: Delete file.
13649 * config/sh/t-mlib-sh2a-nofpu: Delete file.
13650 * config/sh/t-mlib-sh2a-single: Delete file.
13651 * config/sh/t-mlib-sh2a-single-only: Delete file.
13652 * config/sh/t-mlib-sh2e: Delete file.
13653 * config/sh/t-mlib-sh3e: Delete file.
13654 * config/sh/t-mlib-sh4: Delete file.
13655 * config/sh/t-mlib-sh4-nofpu: Delete file.
13656 * config/sh/t-mlib-sh4-single: Delete file.
13657 * config/sh/t-mlib-sh4-single-only: Delete file.
13658 * config/sh/t-mlib-sh4a: Delete file.
13659 * config/sh/t-mlib-sh4a-nofpu: Delete file.
13660 * config/sh/t-mlib-sh4a-single: Delete file.
13661 * config/sh/t-mlib-sh4a-single-only: Delete file.
13662 * config/sh/t-mlib-sh4al: Delete file.
13663 * config/sh/t-mlib-sh5-32media: Delete file.
13664 * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
13665 * config/sh/t-mlib-sh5-64media: Delete file.
13666 * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
13667 * config/sh/t-mlib-sh5-compact: Delete file.
13668 * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
13669 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
13670 * doc/install.texi (Options specification): Add
13671 --with-multilib-list and --with-endian.
13673 2009-04-17 Rafael Avila de Espindola <espindola@google.com>
13675 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
13677 (OBJS-common): Add plugin-version.o.
13678 (plugin-version.o): New.
13679 * gcc-plugin.h (plugin_gcc_version): New.
13680 (plugin_default_version_check): New.
13681 (plugin_init_func, plugin_init): Add version argument.
13682 * plugin-version.c: New.
13683 * plugin.c (str_plugin_gcc_version_name): New.
13684 (try_init_one_plugin): Read plugin_gcc_version from the plugin and
13685 pass it to the init function.
13686 (plugin_default_version_check): New.
13688 2009-04-17 Richard Guenther <rguenther@suse.de>
13690 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
13691 for decl-vs-decl disambiguation.
13693 2009-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
13695 * config/s390/s390.h (s390_tune_attr): New macro definition.
13696 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
13698 2009-04-17 Richard Guenther <rguenther@suse.de>
13700 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
13701 (fold_stmt_r): Likewise.
13702 (maybe_fold_reference): New function.
13703 (fold_gimple_assign): Handle cases fold_stmt_r did.
13704 (fold_stmt): Do not use fold_stmt_r.
13705 (fold_stmt_inplace): Likewise.
13707 2009-04-17 Richard Guenther <rguenther@suse.de>
13709 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
13710 (record_equivalences_from_stmt): Remove useless checks and
13712 * tree-ssa-pre.c (eliminate): Avoid converting a constant if
13713 the type is already suitable.
13715 2009-04-17 Paolo Bonzini <bonzini@gnu.org>
13717 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
13719 2009-04-17 Uros Bizjak <ubizjak@gmail.com>
13721 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
13722 (CMPtype): Define as __gcc_CMPtype.
13724 2009-04-17 Aurelien Jarno <aurelien@aurel32.net>
13726 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
13727 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
13729 2009-04-17 Richard Guenther <rguenther@suse.de>
13731 PR tree-optimization/39746
13732 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
13733 special-casing for builtins and static variable use/def.
13734 (call_may_clobber_ref_p_1): Likewise.
13736 2009-04-16 Ian Lance Taylor <iant@google.com>
13738 * df.h: Include "timevar.h".
13739 (struct df_problem): Change tv_id field to timevar_id_t.
13740 * tree-pass.h: Include "timevar.h".
13741 (struct opt_pass): Change tv_id field to timevar_id_t.
13742 * timevar.h (timevar_id_t): Define TV_NONE.
13743 * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
13744 TV_NONE rather than tv_id != 0.
13745 (execute_one_pass): Likewise.
13746 * Makefile.in (DF_H): Add $(TIMEVAR_H).
13747 (TREE_PASS_H): Define. Change all instances of tree-pass.h in
13748 dependencies to $(TREE_PASS_H).
13749 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
13751 (pass_branch_target_load_optimize2): Likewise.
13752 * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
13753 (pass_outof_cfg_layout_mode): Likewise.
13754 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
13755 (pass_rebuild_cgraph_edges): Likewise.
13756 (pass_remove_cgraph_callee_edges): Likewise.
13757 * df-core.c (pass_df_initialize_opt): Likewise.
13758 (pass_df_initialize_no_opt): Likewise.
13759 (pass_df_finish): Likewise.
13760 * emit-rtl.c (pass_unshare_all_rtl): Likewise.
13761 * except.c (pass_set_nothrow_function_flags): Likewise.
13762 (pass_convert_to_eh_region_ranges): Likewise.
13763 * final.c (pass_compute_alignments): Likewise.
13764 * function.c (pass_instantiate_virtual_regs): Likewise.
13765 (pass_init_function): Likewise.
13766 (pass_leaf_regs): Likewise.
13767 (pass_match_asm_constraints): Likewise.
13768 * gimple-low.c (pass_lower_cf): Likewise.
13769 (pass_mark_used_blocks): Likewise.
13770 * init-regs.c (pass_initialize_regs): Likewise.
13771 * integrate.c (pass_initial_value_sets): Likewise.
13772 * ira.c (pass_ira): Likewise.
13773 * jump.c (pass_cleanup_barriers): Likewise.
13774 * omp-low.c (pass_expand_omp): Likewise.
13775 (pass_lower_omp): Likewise.
13776 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
13777 * recog.c (pass_split_all_insns): Likewise.
13778 (pass_split_after_reload): Likewise.
13779 (pass_split_before_regstack): Likewise.
13780 (pass_split_before_sched2): Likewise.
13781 (pass_split_for_shorten_branches): Likewise.
13782 * reginfo.c (pass_reginfo_init): Likewise.
13783 (pass_subregs_of_mode_init): Likewise.
13784 (pass_subregs_of_mode_finish): Likewise.
13785 * passes.c (pass_postreload): Likewise.
13786 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
13787 * tree-cfg.c (pass_remove_useless_stmts): Likewise.
13788 (pass_warn_function_return): Likewise.
13789 (pass_warn_function_noreturn): Likewise.
13790 * tree-complex.c (pass_lower_complex): Likewise.
13791 (pass_lower_complex_O0): Likewise.
13792 * tree-if-conv.c (pass_if_conversion): Likewise.
13793 * tree-into-ssa.c (pass_build_ssa): Likewise.
13794 * tree-mudflap.c (pass_mudflap_1): Likewise.
13795 (pass_mudflap_2): Likewise.
13796 * tree-nomudflap.c (pass_mudflap_1): Likewise.
13797 (pass_mudflap_2): Likewise.
13798 * tree-nrv.c (pass_return_slot): Likewise.
13799 * tree-object-size.c (pass_object_sizes): Likewise.
13800 * tree-optimize.c (pass_all_optimizations): Likewise.
13801 (pass_early_local_passes): Likewise.
13802 (pass_all_early_optimizations): Likewise.
13803 (pass_cleanup_cfg): Likewise.
13804 (pass_cleanup_cfg_post_optimizing): Likewise.
13805 (pass_free_datastructures): Likewise.
13806 (pass_free_cfg_annotations): Likewise.
13807 (pass_fixup_cfg): Likewise.
13808 (pass_init_datastructures): Likewise.
13809 * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
13810 (pass_late_warn_uninitialized): Likewise.
13811 (pass_update_address_taken): Likewise.
13812 * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
13813 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
13814 (pass_cse_sincos): Likewise.
13815 (pass_convert_to_rsqrt): Likewise.
13816 * tree-ssa-structalias.c (pass_build_alias): Likewise.
13817 * tree-stdarg.c (pass_stdarg): Likewise.
13818 * tree-tailcall.c (pass_tail_recursion): Likewise.
13819 (pass_tail_calls): Likewise.
13820 * tree-vect-generic.c (pass_lower_vector): Likewise.
13821 (pass_lower_vector_ssa): Likewise.
13822 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
13824 2009-04-16 Joseph Myers <joseph@codesourcery.com>
13826 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
13828 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
13830 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
13831 logical and signext.
13833 2009-04-16 Kaz Kojima <kkojima@gcc.gnu.org>
13836 * config/sh/predicates.md (arith_operand): Check if the operand
13837 of TRUNCATE is a REG.
13839 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
13841 * cfgrtl.c (delete_insn_chain_and_edges): Remove.
13842 * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
13844 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
13846 * tree-iterator.c (tsi_split_statement_list_after,
13847 tsi_split_statement_list_before): Remove.
13848 * tree-iterator.h: Remove the prototypes for
13849 tsi_split_statement_list_after and tsi_split_statement_list_before.
13851 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
13853 * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
13854 * tree-ssa-propagate.h: Remove the prototype for
13855 stmt_makes_single_load.
13857 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
13859 * emit-rtl.c (set_mem_attrs_from_reg): Remove.
13860 * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
13862 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
13864 * tree-iterator.c (EXPR_LAST_BODY): Remove.
13866 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
13868 * except.c (eh_region_outer_p): Remove.
13869 * except.h: Remove the prototype for eh_region_outer_p.
13871 2009-04-16 Kazu Hirata <kazu@codesourcery.com>
13873 * function.c (current_function_assembler_name): Remove.
13874 * function.h: Remove the prototype for
13875 current_function_assembler_name.
13877 2009-04-16 Ian Lance Taylor <iant@google.com>
13879 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
13880 (add_reg_note): Call alloc_reg_note.
13881 * rtl.h (alloc_reg_note): Declare.
13882 * combine.c (try_combine): Use alloc_reg_note.
13883 (recog_for_combine, move_deaths): Likewise.
13884 (distribute_notes): Use alloc_reg_note and add_reg_note.
13885 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
13886 * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
13887 * reload1.c (eliminate_regs_1): Use alloc_reg_note.
13889 2009-04-16 Vladimir Makarov <vmakarov@redhat.com>
13891 PR rtl-optimization/39762
13892 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
13893 ira_may_move_out_cost): Add comments about way of their usage.
13894 (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
13896 * ira-conflicts.c (process_regs_for_copy): Use function
13897 ira_get_register_move_cost instead of global
13898 ira_register_move_cost.
13900 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
13901 color_pass, move_spill_restore, update_curr_costs): Ditto.
13903 * ira-lives.c (process_single_reg_class_operands): Ditto.
13905 * ira-emit.c (emit_move_list): Ditto.
13907 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
13908 (record_reg_classes): Ditto. Use functions
13909 ira_get_register_move_cost and ira_get_may_move_cost instead of
13910 global vars ira_register_move_cost, ira_may_move_out_cost and
13911 ira_may_move_in_cost.
13912 (record_address_regs): Don't call ira_init_register_move_cost.
13913 Use function ira_get_may_move_cost instead of global
13914 ira_may_move_in_cost.
13915 (process_bb_node_for_hard_reg_moves): Use function
13916 ira_get_register_move_cost instead of global ira_register_move_cost.
13917 (ira_costs): Don't call ira_init_register_move_cost.
13919 2009-04-16 Richard Guenther <rguenther@suse.de>
13921 * tree-cfg.c (verify_gimple_assign_binary):
13922 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
13923 * ipa-struct-reorg.c (gen_size): Fold the built expressions.
13924 (create_general_new_stmt): Note that this function is broken.
13926 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
13928 * common.opt (fhelp): Add Var(help_flag).
13929 * gcc-plugin.h (plugin_info): Add help.
13930 * plugin.c (plugin_name_args): Add help.
13931 (register_plugin_info): Set plugin->help.
13932 (print_help_one_plugin): New.
13933 (print_plugins_help): New.
13934 * plugin.h (print_plugins_help): New.
13935 * toplev.c (toplev_main): Call print_plugins_help if needed.
13937 2009-04-16 Richard Guenther <rguenther@suse.de>
13939 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
13940 (gimple_ior_addresses_taken_1): New function.
13941 (gimple_ior_addresses_taken): Likewise.
13942 * gimple.h (struct gimple_statement_with_ops_base): Remove
13943 addresses_taken member.
13944 (gimple_ior_addresses_taken): Declare.
13945 (gimple_addresses_taken, gimple_addresses_taken_ptr,
13946 gimple_set_addresses_taken): Remove.
13947 * ipa-reference.c (mark_address): New function.
13948 (scan_stmt_for_static_refs): Use it for marking addresses taken.
13949 * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
13950 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE.
13951 (gimple_add_to_addresses_taken): Remove.
13952 (get_tmr_operands): Call mark_address_taken.
13953 (get_asm_expr_operands): Likewise.
13954 (get_expr_operands): Likewise.
13955 (build_ssa_operands): Do not clear the addresses_taken bitmap.
13956 (free_stmt_operands): Do not free it.
13957 * tree-ssa.c (delete_tree_ssa): Likewise.
13958 (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
13960 2009-04-16 Richard Guenther <rguenther@suse.de>
13962 * gimple.h (walk_stmt_load_store_addr_ops): Declare.
13963 (walk_stmt_load_store_ops): Likewise.
13964 * gimple.c (get_base_loadstore): New function.
13965 (walk_stmt_load_store_addr_ops): Likewise.
13966 (walk_stmt_load_store_ops): Likewise.
13967 * ipa-pure-const.c (check_op): Simplify.
13968 (check_load, check_store): New functions.
13969 (check_stmt): Use walk_stmt_load_store_ops.
13970 * ipa-reference.c (mark_load): Adjust signature.
13971 (mark_store): Likewise.
13972 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
13974 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
13976 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
13977 (plugin_info): New.
13978 * opts.c (common_handle_option): Don't call print_version.
13979 * plugin.c (plugin_name_args): Add version.
13980 (register_plugin_info): New.
13981 (register_callback): Handle PLUGIN_INFO.
13982 (try_init_one_plugin): New.
13983 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
13985 (finalize_one_plugin): New.
13986 (finalize_plugins): New.
13987 (print_one_plugin): New.
13988 (print_plugins_versions): New.
13989 * plugin.h (print_plugins_versions): New.
13990 (finalize_plugins): New.
13991 * toplev.c (compile_file): Don't call initialize_plugins.
13992 (print_version): Call print_plugins_versions.
13993 (toplev_main): Call initialize_plugins. Print version if needed.
13994 Call finalize_plugins.
13996 2009-04-16 Rafael Avila de Espindola <espindola@google.com>
13998 * common.opt (fversion): New.
13999 * gcc.c (print_version): New.
14000 (process_command): Don't print the version. Just set print_version.
14001 (main): Print version. Call subprocesses if print_version and
14002 verbose_flag are set.
14003 * opts.c (common_handle_option): Handle OPT_fversion.
14005 2009-04-16 Richard Guenther <rguenther@suse.de>
14006 Ira Rosen <irar@il.ibm.com>
14008 PR tree-optimization/39698
14009 * tree-vect-loop.c (get_initial_def_for_reduction): Use the
14010 type of the reduction variable. Only generate the def if
14013 * omp-low.c (expand_omp_for_generic): When converting to a pointer
14014 make sure to first convert to an integer of the same precision.
14015 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
14016 the type of the evolution correctly in computing the new
14017 induction variable base.
14019 2009-04-16 Richard Guenther <rguenther@suse.de>
14021 PR middle-end/39625
14022 * tree-cfg.c (make_blocks): Split statements with to-be
14023 abnormal SSA names on the lhs.
14025 2009-04-16 Paolo Bonzini <bonzini@gnu.org>
14027 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
14028 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
14029 * c-typeck.c (really_start_incremental_init): Likewise.
14030 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
14031 (TARGET_INITIALIZER): Remove it.
14032 * target.h (struct target): Remove vector_opaque_p.
14033 * tree.c (build_opaque_vector_type): New.
14034 * tree.h (TYPE_VECTOR_OPAQUE): New.
14035 (build_opaque_vector_type): Declare.
14036 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
14037 * config/rs6000/rs6000.c (build_opaque_vector_type,
14038 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
14039 (rs6000_init_builtins): Use build_opaque_vector_type for
14040 opaque_V4SI_type_node.
14042 2009-04-15 Catherine Moore <clm@codesourcery.com>
14044 * debug.h (set_name): Declare.
14045 * dwarf2out.c (dwarf2out_set_name): Declare.
14046 (dwarf2_debug_hooks): Add set_name.
14047 (find_AT_string): New.
14048 (add_AT_string): Call find_AT_string.
14049 (dwarf2out_set_name): New.
14050 * cp/decl.c (grokdeclarator): Call set_name.
14051 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
14052 * debug.c (do_nothing_debug_hooks): Likewise.
14053 * dbxout.c (dbx_debug_hooks): Likewise.
14054 * sdbout.c (sdb_debug_hooks): Likewise.
14056 2009-04-15 Michael Eager <eager@eagercon.com>
14058 * config/rs6000/rs6000.c (rs6000_function_value): Set function return
14059 reg for single-precision FPU.
14060 * config/rs6000/rs6000.md (movsi_internal1): Only for
14061 !TARGET_SINGLE_FPU.
14062 (movsi_internal1_single): New. Add pattern to move SI values to/from
14063 single-precision FP regs.
14065 2009-04-15 Richard Guenther <rguenther@suse.de>
14067 * omp-low.c (lower_rec_input_clauses): Build correct address
14069 (expand_omp_for_generic): Fix multiplication type.
14070 * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
14071 (generate_memset_zero): Fix types.
14072 * tree-profile.c (prepare_instrumented_value): Correctly
14075 2009-04-15 Ian Lance Taylor <iant@google.com>
14077 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1.
14078 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
14079 for -Wall and for -Wc++-compat.
14080 (c_common_post_options): For C++, set warn_enum_compare if not
14082 * c-tree.h (struct c_expr): Add field original_type.
14083 (build_external_ref): Update declaration.
14084 * c-parser.c (c_parser_braced_init): Set original_type.
14085 (c_parser_initelt): Likewise.
14086 (c_parser_expr_no_commas): Likewise.
14087 (c_parser_conditional_expression): Likewise.
14088 (c_parser_cast_expression): Likewise.
14089 (c_parser_unary_expression): Likewise. Pull setting of
14090 original_code to top of function.
14091 (c_parser_sizeof_expression): Set original_type.
14092 (c_parser_alignof_expression): Likewise.
14093 (c_parser_postfix_expression): Likewise. Pull setting of
14094 original_code to top of function.
14095 (c_parser_postfix_expression_after_paren_type): Set original_type.
14096 (c_parser_postfix_expression_after_primary): Likewise.
14097 (c_parser_expression): Likewise.
14098 * c-typeck.c (build_external_ref): Add type parameter. Change all
14100 (c_expr_sizeof_expr): Set original_type field.
14101 (parser_build_unary_op): Likewise.
14102 (parser_build_binary_op): Likewise. Optionally warn about
14103 comparisons of enums of different types.
14104 (digest_init): Set original_type field.
14105 (really_start_incremental_init): Likewise.
14106 (push_init_level, pop_init_level): Likewise.
14107 * doc/invoke.texi (Warning Options): -Wenum-compare now
14110 2009-04-15 Richard Guenther <rguenther@suse.de>
14112 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
14113 out a necessary conversion.
14114 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
14115 names we didn't value number.
14116 * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
14118 2009-04-15 Richard Guenther <rguenther@suse.de>
14120 PR tree-optimization/39764
14121 * tree-ssa-ccp.c (get_value): Canonicalize value with
14122 canonicalize_float_value.
14124 2009-04-15 Jan Hubicka <jh@suse.cz>
14126 * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
14127 Wrong version of patch.
14129 2009-04-15 Jan Hubicka <jh@suse.cz>
14131 * builtins.def (va_start, va_end, va_copy): Mark nothrow.
14133 2009-04-15 Nathan Sidwell <nathan@codesourcery.com>
14135 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
14136 our distinct integral and vector types.
14138 2009-04-15 Rafael Avila de Espindola <espindola@google.com>
14140 * class.c (build_vtbl_ref_1): Remove call to assemble_external.
14141 * init.c (build_vtbl_address): Remove call to assemble_external.
14143 2009-04-14 Daniel Jacobowitz <dan@codesourcery.com>
14145 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
14146 output for other floating point modes.
14148 2009-04-14 Diego Novillo <dnovillo@google.com>
14150 * diagnostic.c (diagnostic_report_diagnostic): Do not
14151 warn about loaded plugins for DK_ERROR and DK_WARNING.
14152 * c-decl.c (declspecs_add_type): Move call to
14153 invoke_plugin_callbacks ...
14154 * c-parser.c (c_parser_declspecs): ... here.
14155 * plugin.c (dump_active_plugins): Tidy output.
14157 2009-04-14 Diego Novillo <dnovillo@google.com>
14158 Le-Chun Wu <lcwu@google.com>
14160 * configure.ac: Add --enable-plugin support.
14161 Define ENABLE_PLUGIN and PLUGINLIBS when specified.
14162 * Makefile.in (PLUGIN_H): Define.
14163 Export ENABLE_PLUGIN and GMPINC to site.exp.
14164 Add PLUGINLIBS to link command.
14165 Add/modify dependencies for plugin.o and files including plugin.h.
14167 * config.in: Regenerate.
14169 * opts.c (common_handle_option): Handle OPT_fplugin_ and
14172 2009-04-14 Le-Chun Wu <lcwu@google.com>
14174 * tree-pass.h (register_one_dump_file): Add a prototype for
14175 register_one_dump_file.
14176 * toplev.c (compile_file): Call initialize_plugins.
14177 (do_compile): Call invoke_plugin_callbacks.
14178 (toplev_main): Call invoke_plugin_callbacks.
14179 * common.opt: Add -fplugin= and -fplugin-arg-.
14180 * gcc-plugin.h: New public header file for plugins to include.
14181 * plugin.c: New source file.
14182 * plugin.h: New internal header file.
14183 * passes.c (register_one_dump_file): Make it external.
14185 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
14187 2009-04-14 Diego Novillo <dnovillo@google.com>
14189 * doc/plugins.texi: New.
14190 * doc/gccint.texi: Add reference to Plugins chapter.
14191 * doc/invoke.texi: Document -fplugin and -fplugin-arg
14192 * diagnostic.c (diagnostic_report_diagnostic): Warn about
14193 loaded plugins, if any.
14194 * timevar.def (TV_PLUGIN_INIT): Define.
14195 (TV_PLUGIN_RUN): Define.
14196 * plugin.c: Include timevar.h
14197 (plugins_active_p): New.
14198 (dump_active_plugins): New.
14199 (debug_active_plugins): New.
14201 2009-04-14 Joseph Myers <joseph@codesourcery.com>
14203 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
14205 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
14207 2009-04-14 Kazu Hirata <kazu@codesourcery.com>
14209 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
14210 the same as a minus without a shift.
14212 2009-04-14 Nick Clifton <nickc@redhat.com>
14214 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
14215 comparisons with small integers will always produce a short
14218 2009-04-14 Rafael Avila de Espindola <espindola@google.com>
14221 2008-12-19 Diego Novillo <dnovillo@google.com>
14223 * cgraph.c (dump_cgraph_node): Show memory address of NODE.
14225 2009-04-14 Richard Guenther <rguenther@suse.de>
14227 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
14229 (verify_gimple_assign_binary): Likewise. Handle shifts and
14231 (verify_gimple_phi): Print the mismatched argument position.
14232 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
14234 (vect_update_init_of_dr): Likewise.
14235 * matrix-reorg.c (transform_access_sites): Do what the
14237 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
14239 2009-04-13 Michael Eager <eager@eagercon.com>
14241 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
14242 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
14243 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi
14244 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
14245 remove duplicate config
14247 2009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
14249 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
14250 file_name:line_number type locator of the call site.
14252 2009-04-13 Vladimir Makarov <vmakarov@redhat.com>
14254 * genautomata.c: Put blank after comma.
14255 (automaton_decls): New.
14256 (struct unit_usage): Add comments to member next.
14257 (store_alt_unit_usage): Keep the list ordered.
14258 (unit_present_on_list_p, equal_alternatives_p): New.
14259 (check_regexp_units_distribution): Check units distribution
14260 correctness correctly.
14261 (main): Don't write automata if error is found. Return correct
14264 * config/m68k/cf.md (cfv4_ds): Remove.
14265 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
14266 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
14268 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
14269 power4-load-ext, power4-store, power4-store-update,
14270 power4-fpstore, power4-fpstore-update, power4-two, power4-three,
14271 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
14272 power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
14273 power4-sqrt, power4-isync): Modify reservation to make correct
14274 unit distribution to automata.
14276 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
14277 power5-store-update, power5-two, power5-three, power5-lmul,
14278 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
14280 2009-04-13 Adam Nemet <anemet@caviumnetworks.com>
14282 * except.c (pass_set_nothrow_function_flags): Set name and add
14284 (set_nothrow_function_flags): Mention in the dump file when
14285 changing a function to nothrow.
14287 2009-04-13 Ozkan Sezer <sezeroz@gmail.com>
14290 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
14291 instead of unsigned long.
14293 2009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
14295 * config/arm/arm.c (return_used_this_function): Remove.
14296 (arm_output_function_prologue): Remove use of
14297 return_used_this_function.
14298 (output_return_instruction): Replace use of
14299 return_used_this_function
14300 by cfun->machine->return_used_this_function.
14301 (arm_output_epilogue): Likewise.
14302 (arm_output_function_epilogue): Likewise.
14303 (thumb_unexpanded_epilogue): Likewise.
14304 * config/arm/arm.h (struct machine_function):
14305 New member return_used_this_function.
14307 2009-04-12 Mark Mitchell <mark@codesourcery.com>
14309 * doc/install.texi: Correct description of default directory for
14310 --with-gxx-include-dir.
14312 2009-04-12 Eric Botcazou <ebotcazou@adacore.com>
14314 * fold-const.c (build_range_check): Properly deal with enumeral and
14315 boolean base types.
14317 2009-04-12 Steven Bosscher <steven@gcc.gnu.org>
14319 * doc/invoke.texi (max_gcse_passes): Remove documentation.
14320 * params.def (PARAM_MAX_GCSE_PASSES): Remove.
14321 * params.h (MAX_GCSE_PASSES): Remove.
14322 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
14323 in sequence. Remove ability to run multiple passes.
14324 (bypass_jumps): Report run as third CPROP pass.
14326 2009-04-12 Adam Nemet <anemet@caviumnetworks.com>
14328 PR middle-end/39651
14329 * except.c (can_throw_external): Look at each insn in a SEQUENCE
14330 when deciding whether the whole SEQUENCE can throw.
14332 2009-04-12 Uros Bizjak <ubizjak@gmail.com>
14335 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
14336 offseted label references.
14338 2009-04-11 Jan Hubicka <jh@suse.cz>
14340 * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
14342 2009-04-11 Richard Guenther <rguenther@suse.de>
14344 PR middle-end/39732
14345 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
14346 return variables as TREE_ADDRESSABLE.
14348 2009-04-11 Richard Guenther <rguenther@suse.de>
14350 PR tree-optimization/39713
14351 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
14352 reference trees have SSA_NAME operands.
14354 2009-04-11 Richard Guenther <rguenther@suse.de>
14357 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
14358 address expressions.
14360 2009-04-11 Dave Korn <dave.korn.cygwin@gmail.com>
14362 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to
14363 match changes in Cygwin 1.7
14364 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
14365 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise.
14367 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
14369 PR tree-optimization/39701
14370 * doc/invoke.texi (Optimization Options): Document change in
14371 meaning and initialization of -fdelete-null-pointer-checks.
14373 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
14375 PR middle-end/39701
14376 * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
14378 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
14381 * doc/invoke.texi: Update -fdelete-null-pointer-checks.
14383 2009-04-10 Chao-ying Fu <fu@mips.com>
14385 * doc/tm.texi (Instruction Output): Document
14386 TARGET_ASM_FINAL_POSTSCAN_INSN.
14387 * target.h (final_postscan_insn): New field in asm_out.
14388 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
14389 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
14390 * final.c (final_scan_insn): Call
14391 targetm.asm_out.final_postscan_insn after outputting
14392 an asm macro and a normal instruction.
14394 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
14395 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
14396 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
14397 (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
14398 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
14400 2009-04-10 Paolo Bonzini <bonzini@gnu.org>
14402 PR middle-end/39701
14403 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
14404 variables as non-NULL even with -fdelete-null-pointer-checks.
14406 2009-04-10 H.J. Lu <hongjiu.lu@intel.com>
14408 * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
14410 2009-04-09 H.J. Lu <hongjiu.lu@intel.com>
14413 * config/i386/i386.c (classify_argument): Handle SCmode with
14414 (bit_offset % 64) != 0.
14416 2009-04-09 Sandra Loosemore <sandra@codesourcery.com>
14418 * doc/invoke.texi (Optimize Options): Add cross-reference to
14419 -Q --help=optimizers examples.
14421 2009-04-10 Ben Elliston <bje@au.ibm.com>
14424 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
14425 regalign for the reg == fpr and TDmode case.
14427 2009-04-09 David Ayers <ayers@fsfe.org>
14430 * objc/objc-act.c (warn_with_method): Remove helper function.
14431 (check_duplicates): Call warning and inform directly.
14432 (really_start_method): Likewise.
14434 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
14436 * expmed.c (expand_divmod): Always use a comparison for a division
14437 by a large unsigned integer.
14439 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
14440 for things others than variables or functions as nonzero.
14442 2009-04-09 Nick Clifton <nickc@redhat.com>
14444 * unwind-compat.c: Change copyright header to refer to version
14445 3 of the GNU General Public License with version 3.1 of the
14446 GCC Runtime Library Exception and to point readers at the
14447 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
14448 * config/alpha/crtfastmath.c: Likewise.
14449 * config/alpha/linux-unwind.h: Likewise.
14450 * config/alpha/qrnnd.asm: Likewise.
14451 * config/alpha/vms-crt0-64.c: Likewise.
14452 * config/alpha/vms-crt0.c: Likewise.
14453 * config/alpha/vms-dwarf2.asm: Likewise.
14454 * config/alpha/vms-dwarf2eh.asm: Likewise.
14455 * config/alpha/vms-psxcrt0-64.c: Likewise.
14456 * config/alpha/vms-psxcrt0.c: Likewise.
14457 * config/alpha/vms_tramp.asm: Likewise.
14458 * config/arc/initfini.c: Likewise.
14459 * config/arc/lib1funcs.asm: Likewise.
14460 * config/arm/bpabi-v6m.S: Likewise.
14461 * config/arm/bpabi.S: Likewise.
14462 * config/arm/bpabi.c: Likewise.
14463 * config/arm/crti.asm: Likewise.
14464 * config/arm/crtn.asm: Likewise.
14465 * config/arm/ieee754-df.S: Likewise.
14466 * config/arm/ieee754-sf.S: Likewise.
14467 * config/arm/lib1funcs.asm: Likewise.
14468 * config/arm/libunwind.S: Likewise.
14469 * config/arm/linux-atomic.c: Likewise.
14470 * config/arm/mmintrin.h: Likewise.
14471 * config/arm/pr-support.c: Likewise.
14472 * config/arm/unaligned-funcs.c: Likewise.
14473 * config/arm/unwind-arm.c: Likewise.
14474 * config/arm/unwind-arm.h: Likewise.
14475 * config/avr/libgcc.S: Likewise.
14476 * config/bfin/crti.s: Likewise.
14477 * config/bfin/crtlibid.s: Likewise.
14478 * config/bfin/crtn.s: Likewise.
14479 * config/bfin/lib1funcs.asm: Likewise.
14480 * config/bfin/linux-unwind.h: Likewise.
14481 * config/cris/arit.c: Likewise.
14482 * config/cris/cris_abi_symbol.c: Likewise.
14483 * config/darwin-64.c: Likewise.
14484 * config/darwin-crt2.c: Likewise.
14485 * config/darwin-crt3.c: Likewise.
14486 * config/darwin.h: Likewise.
14487 * config/dbxelf.h: Likewise.
14488 * config/dfp-bit.c: Likewise.
14489 * config/dfp-bit.h: Likewise.
14490 * config/elfos.h: Likewise.
14491 * config/fixed-bit.c: Likewise.
14492 * config/fixed-bit.h: Likewise.
14493 * config/fp-bit.c: Likewise.
14494 * config/fp-bit.h: Likewise.
14495 * config/fr30/crti.asm: Likewise.
14496 * config/fr30/crtn.asm: Likewise.
14497 * config/fr30/lib1funcs.asm: Likewise.
14498 * config/freebsd-spec.h: Likewise.
14499 * config/frv/cmovd.c: Likewise.
14500 * config/frv/cmovh.c: Likewise.
14501 * config/frv/cmovw.c: Likewise.
14502 * config/frv/frvbegin.c: Likewise.
14503 * config/frv/frvend.c: Likewise.
14504 * config/frv/lib1funcs.asm: Likewise.
14505 * config/glibc-stdint.h: Likewise.
14506 * config/h8300/clzhi2.c: Likewise.
14507 * config/h8300/crti.asm: Likewise.
14508 * config/h8300/crtn.asm: Likewise.
14509 * config/h8300/ctzhi2.c: Likewise.
14510 * config/h8300/fixunssfsi.c: Likewise.
14511 * config/h8300/lib1funcs.asm: Likewise.
14512 * config/h8300/parityhi2.c: Likewise.
14513 * config/h8300/popcounthi2.c: Likewise.
14514 * config/i386/ammintrin.h: Likewise.
14515 * config/i386/att.h: Likewise.
14516 * config/i386/avxintrin.h: Likewise.
14517 * config/i386/biarch64.h: Likewise.
14518 * config/i386/bmmintrin.h: Likewise.
14519 * config/i386/cpuid.h: Likewise.
14520 * config/i386/cross-stdarg.h: Likewise.
14521 * config/i386/crtfastmath.c: Likewise.
14522 * config/i386/crtprec.c: Likewise.
14523 * config/i386/cygming-crtbegin.c: Likewise.
14524 * config/i386/cygming-crtend.c: Likewise.
14525 * config/i386/cygwin.asm: Likewise.
14526 * config/i386/emmintrin.h: Likewise.
14527 * config/i386/gmm_malloc.h: Likewise.
14528 * config/i386/gthr-win32.c: Likewise.
14529 * config/i386/i386.h: Likewise.
14530 * config/i386/immintrin.h: Likewise.
14531 * config/i386/linux-unwind.h: Likewise.
14532 * config/i386/linux64.h: Likewise.
14533 * config/i386/mm3dnow.h: Likewise.
14534 * config/i386/mmintrin-common.h: Likewise.
14535 * config/i386/mmintrin.h: Likewise.
14536 * config/i386/nmmintrin.h: Likewise.
14537 * config/i386/pmm_malloc.h: Likewise.
14538 * config/i386/pmmintrin.h: Likewise.
14539 * config/i386/smmintrin.h: Likewise.
14540 * config/i386/sol2-c1.asm: Likewise.
14541 * config/i386/sol2-ci.asm: Likewise.
14542 * config/i386/sol2-cn.asm: Likewise.
14543 * config/i386/sol2-gc1.asm: Likewise.
14544 * config/i386/tmmintrin.h: Likewise.
14545 * config/i386/unix.h: Likewise.
14546 * config/i386/w32-unwind.h: Likewise.
14547 * config/i386/wmmintrin.h: Likewise.
14548 * config/i386/x86-64.h: Likewise.
14549 * config/i386/x86intrin.h: Likewise.
14550 * config/i386/xmmintrin.h: Likewise.
14551 * config/ia64/crtbegin.asm: Likewise.
14552 * config/ia64/crtend.asm: Likewise.
14553 * config/ia64/crtfastmath.c: Likewise.
14554 * config/ia64/crti.asm: Likewise.
14555 * config/ia64/crtn.asm: Likewise.
14556 * config/ia64/fde-glibc.c: Likewise.
14557 * config/ia64/lib1funcs.asm: Likewise.
14558 * config/ia64/linux-unwind.h: Likewise.
14559 * config/ia64/quadlib.c: Likewise.
14560 * config/ia64/unwind-ia64.c: Likewise.
14561 * config/linux.h: Likewise.
14562 * config/m32c/m32c-lib1.S: Likewise.
14563 * config/m32c/m32c-lib2-trapv.c: Likewise.
14564 * config/m32c/m32c-lib2.c: Likewise.
14565 * config/m32r/initfini.c: Likewise.
14566 * config/m68hc11/larith.asm: Likewise.
14567 * config/m68hc11/m68hc11-crt0.S: Likewise.
14568 * config/m68k/cf.md: Likewise.
14569 * config/m68k/crti.s: Likewise.
14570 * config/m68k/crtn.s: Likewise.
14571 * config/m68k/lb1sf68.asm: Likewise.
14572 * config/m68k/linux-unwind.h: Likewise.
14573 * config/mcore/crti.asm: Likewise.
14574 * config/mcore/crtn.asm: Likewise.
14575 * config/mcore/lib1.asm: Likewise.
14576 * config/mips/linux-unwind.h: Likewise.
14577 * config/mips/loongson.h: Likewise.
14578 * config/mips/mips16.S: Likewise.
14579 * config/mmix/crti.asm: Likewise.
14580 * config/mmix/crtn.asm: Likewise.
14581 * config/pa/fptr.c: Likewise.
14582 * config/pa/hpux-unwind.h: Likewise.
14583 * config/pa/lib2funcs.asm: Likewise.
14584 * config/pa/linux-atomic.c: Likewise.
14585 * config/pa/linux-unwind.h: Likewise.
14586 * config/pa/milli64.S: Likewise.
14587 * config/pa/quadlib.c: Likewise.
14588 * config/pa/stublib.c: Likewise.
14589 * config/picochip/libgccExtras/adddi3.asm: Likewise.
14590 * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
14591 * config/picochip/libgccExtras/ashlsi3.c: Likewise.
14592 * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
14593 * config/picochip/libgccExtras/ashrsi3.c: Likewise.
14594 * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
14595 * config/picochip/libgccExtras/divmod15.asm: Likewise.
14596 * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
14597 * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
14598 * config/picochip/libgccExtras/longjmp.asm: Likewise.
14599 * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
14600 * config/picochip/libgccExtras/lshrsi3.c: Likewise.
14601 * config/picochip/libgccExtras/parityhi2.asm: Likewise.
14602 * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
14603 * config/picochip/libgccExtras/setjmp.asm: Likewise.
14604 * config/picochip/libgccExtras/subdi3.asm: Likewise.
14605 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
14606 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
14607 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
14608 * config/rs6000/750cl.h: Likewise.
14609 * config/rs6000/altivec.h: Likewise.
14610 * config/rs6000/biarch64.h: Likewise.
14611 * config/rs6000/crtresfpr.asm: Likewise.
14612 * config/rs6000/crtresgpr.asm: Likewise.
14613 * config/rs6000/crtresxfpr.asm: Likewise.
14614 * config/rs6000/crtresxgpr.asm: Likewise.
14615 * config/rs6000/crtsavfpr.asm: Likewise.
14616 * config/rs6000/crtsavgpr.asm: Likewise.
14617 * config/rs6000/darwin-asm.h: Likewise.
14618 * config/rs6000/darwin-fallback.c: Likewise.
14619 * config/rs6000/darwin-fpsave.asm: Likewise.
14620 * config/rs6000/darwin-ldouble.c: Likewise.
14621 * config/rs6000/darwin-tramp.asm: Likewise.
14622 * config/rs6000/darwin-unwind.h: Likewise.
14623 * config/rs6000/darwin-vecsave.asm: Likewise.
14624 * config/rs6000/darwin-world.asm: Likewise.
14625 * config/rs6000/e500crtres32gpr.asm: Likewise.
14626 * config/rs6000/e500crtres64gpr.asm: Likewise.
14627 * config/rs6000/e500crtres64gprctr.asm: Likewise.
14628 * config/rs6000/e500crtrest32gpr.asm: Likewise.
14629 * config/rs6000/e500crtrest64gpr.asm: Likewise.
14630 * config/rs6000/e500crtresx32gpr.asm: Likewise.
14631 * config/rs6000/e500crtresx64gpr.asm: Likewise.
14632 * config/rs6000/e500crtsav32gpr.asm: Likewise.
14633 * config/rs6000/e500crtsav64gpr.asm: Likewise.
14634 * config/rs6000/e500crtsav64gprctr.asm: Likewise.
14635 * config/rs6000/e500crtsavg32gpr.asm: Likewise.
14636 * config/rs6000/e500crtsavg64gpr.asm: Likewise.
14637 * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
14638 * config/rs6000/eabi-ci.asm: Likewise.
14639 * config/rs6000/eabi-cn.asm: Likewise.
14640 * config/rs6000/eabi.asm: Likewise.
14641 * config/rs6000/linux-unwind.h: Likewise.
14642 * config/rs6000/linux64.h: Likewise.
14643 * config/rs6000/paired.h: Likewise.
14644 * config/rs6000/paired.md: Likewise.
14645 * config/rs6000/ppc64-fp.c: Likewise.
14646 * config/rs6000/ppu_intrinsics.h: Likewise.
14647 * config/rs6000/rs6000.h: Likewise.
14648 * config/rs6000/si2vmx.h: Likewise.
14649 * config/rs6000/sol-ci.asm: Likewise.
14650 * config/rs6000/sol-cn.asm: Likewise.
14651 * config/rs6000/spe.h: Likewise.
14652 * config/rs6000/spu2vmx.h: Likewise.
14653 * config/rs6000/sysv4.h: Likewise.
14654 * config/rs6000/tramp.asm: Likewise.
14655 * config/rs6000/vec_types.h: Likewise.
14656 * config/s390/linux-unwind.h: Likewise.
14657 * config/s390/tpf-unwind.h: Likewise.
14658 * config/score/crti.asm: Likewise.
14659 * config/score/crtn.asm: Likewise.
14660 * config/sh/crt1.asm: Likewise.
14661 * config/sh/crti.asm: Likewise.
14662 * config/sh/crtn.asm: Likewise.
14663 * config/sh/divtab-sh4-300.c: Likewise.
14664 * config/sh/divtab-sh4.c: Likewise.
14665 * config/sh/divtab.c: Likewise.
14666 * config/sh/lib1funcs-4-300.asm: Likewise.
14667 * config/sh/lib1funcs-Os-4-200.asm: Likewise.
14668 * config/sh/lib1funcs.asm: Likewise.
14669 * config/sh/lib1funcs.h: Likewise.
14670 * config/sh/linux-atomic.asm: Likewise.
14671 * config/sh/linux-unwind.h: Likewise.
14672 * config/sh/shmedia.h: Likewise.
14673 * config/sh/sshmedia.h: Likewise.
14674 * config/sh/ushmedia.h: Likewise.
14675 * config/sparc/crtfastmath.c: Likewise.
14676 * config/sparc/linux-unwind.h: Likewise.
14677 * config/sparc/sol2-c1.asm: Likewise.
14678 * config/sparc/sol2-ci.asm: Likewise.
14679 * config/sparc/sol2-cn.asm: Likewise.
14680 * config/spu/divmodti4.c: Likewise.
14681 * config/spu/divv2df3.c: Likewise.
14682 * config/spu/float_disf.c: Likewise.
14683 * config/spu/float_unsdidf.c: Likewise.
14684 * config/spu/float_unsdisf.c: Likewise.
14685 * config/spu/float_unssidf.c: Likewise.
14686 * config/spu/mfc_multi_tag_release.c: Likewise.
14687 * config/spu/mfc_multi_tag_reserve.c: Likewise.
14688 * config/spu/mfc_tag_release.c: Likewise.
14689 * config/spu/mfc_tag_reserve.c: Likewise.
14690 * config/spu/mfc_tag_table.c: Likewise.
14691 * config/spu/multi3.c: Likewise.
14692 * config/spu/spu_internals.h: Likewise.
14693 * config/spu/spu_intrinsics.h: Likewise.
14694 * config/spu/spu_mfcio.h: Likewise.
14695 * config/spu/vec_types.h: Likewise.
14696 * config/spu/vmx2spu.h: Likewise.
14697 * config/stormy16/stormy16-lib2.c: Likewise.
14698 * config/svr4.h: Likewise.
14699 * config/sync.c: Likewise.
14700 * config/v850/lib1funcs.asm: Likewise.
14701 * config/vxlib-tls.c: Likewise.
14702 * config/vxlib.c: Likewise.
14703 * config/vxworks-dummy.h: Likewise.
14704 * config/xtensa/crti.asm: Likewise.
14705 * config/xtensa/crtn.asm: Likewise.
14706 * config/xtensa/ieee754-df.S: Likewise.
14707 * config/xtensa/ieee754-sf.S: Likewise.
14708 * config/xtensa/lib1funcs.asm: Likewise.
14709 * config/xtensa/lib2funcs.S: Likewise.
14710 * config/xtensa/linux-unwind.h: Likewise.
14711 * config/xtensa/unwind-dw2-xtensa.c: Likewise.
14712 * config/xtensa/unwind-dw2-xtensa.h: Likewise.
14713 * coretypes.h: Likewise.
14714 * crtstuff.c: Likewise.
14715 * defaults.h: Likewise.
14716 * dwarf2.h: Likewise.
14717 * emutls.c: Likewise.
14718 * gbl-ctors.h: Likewise.
14719 * gcov-io.h: Likewise.
14720 * ginclude/float.h: Likewise.
14721 * ginclude/iso646.h: Likewise.
14722 * ginclude/stdarg.h: Likewise.
14723 * ginclude/stdbool.h: Likewise.
14724 * ginclude/stddef.h: Likewise.
14725 * ginclude/stdfix.h: Likewise.
14726 * ginclude/stdint-gcc.h: Likewise.
14727 * ginclude/tgmath.h: Likewise.
14728 * gthr-aix.h: Likewise.
14729 * gthr-dce.h: Likewise.
14730 * gthr-gnat.c: Likewise.
14731 * gthr-gnat.h: Likewise.
14732 * gthr-lynx.h: Likewise.
14733 * gthr-mipssde.h: Likewise.
14734 * gthr-nks.h: Likewise.
14735 * gthr-posix.c: Likewise.
14736 * gthr-posix.h: Likewise.
14737 * gthr-posix95.h: Likewise.
14738 * gthr-rtems.h: Likewise.
14739 * gthr-single.h: Likewise.
14740 * gthr-solaris.h: Likewise.
14741 * gthr-tpf.h: Likewise.
14742 * gthr-vxworks.h: Likewise.
14743 * gthr-win32.h: Likewise.
14744 * gthr.h: Likewise.
14745 * libgcc2.c: Likewise.
14746 * libgcc2.h: Likewise.
14747 * libgcov.c: Likewise.
14748 * tsystem.h: Likewise.
14749 * typeclass.h: Likewise.
14750 * unwind-c.c: Likewise.
14751 * unwind-compat.h: Likewise.
14752 * unwind-dw2-fde-compat.c: Likewise.
14753 * unwind-dw2-fde-darwin.c: Likewise.
14754 * unwind-dw2-fde-glibc.c: Likewise.
14755 * unwind-dw2-fde.c: Likewise.
14756 * unwind-dw2-fde.h: Likewise.
14757 * unwind-dw2.c: Likewise.
14758 * unwind-dw2.h: Likewise.
14759 * unwind-generic.h: Likewise.
14760 * unwind-pe.h: Likewise.
14761 * unwind-sjlj.c: Likewise.
14762 * unwind.inc: Likewise.
14763 * config/arm/neon-gen.ml: Change generated copyright header to
14764 refer to version 3 of the GNU General Public License with
14765 version 3.1 of the GCC Runtime Library Exception and to point
14766 readers at the COPYING3 and COPYING3.RUNTIME files and the
14767 FSF's license web page.
14768 * config/arm/arm_neon.h: Regenerate.
14770 2009-04-09 Jakub Jelinek <jakub@redhat.com>
14772 * config/cris/cris.md: Change copyright header to refer to version
14773 3 of the GNU General Public License.
14774 * doc/install.texi2html: Change copyright header to refer to version
14775 3 of the GNU General Public License and to point readers at the
14776 COPYING3 file and the FSF's license web page.
14777 * config/vax/linux.h: Likewise.
14779 2009-04-09 Paolo Bonzini <bonzini@gnu.org>
14781 * config/i386/i386.md (cmpcc): New.
14782 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
14783 (sync_compare_and_swap_cc*): Delete.
14785 * config/s390/s390.c (s390_compare_emitted): Remove.
14786 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
14787 s390_compare_emitted used to be handled. Assert that modes match.
14788 (s390_emit_compare_and_swap): Use s390_emit_compare, do not
14789 refer to sync_compare_and_swap_ccsi.
14790 * config/s390/s390.h (s390_compare_emitted): Remove.
14791 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
14792 instead of s390_compare_emitted.
14793 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
14794 instead of s390_compare_emitted.
14795 * config/s390/s390.md (cmpcc): New.
14796 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
14797 CC_REGNUM, do not pretend it's set.
14798 (sync_compare_and_swap_cc*): Delete.
14799 * config/s390/predicates.md (cc_reg_operand): New.
14801 * expr.c (sync_compare_and_swap_cc): Delete.
14802 * optabs.h (sync_compare_and_swap_cc): Delete.
14803 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
14804 is being used with can_compare_p.
14805 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
14806 (find_cc_set): New.
14807 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
14808 look for a MODE_CC set instead. Use emit_store_flag.
14809 (expand_compare_and_swap_loop): Likewise, with some additional
14810 complication to avoid a force_reg when useless. Use
14811 emit_cmp_and_jump_insns.
14812 * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
14813 * doc/md.texi (sync_compare_and_swap_cc): Merge with
14814 sync_compare_and_swap documentation.
14816 2009-04-09 Jan Hubicka <jh@suse.cz>
14818 * except.c (find_prev_try): Break out from ....
14819 (duplicate_eh_regions): ... here; properly update prev_try pointers
14820 when duplication part of tree.
14821 (dump_eh_tree): Improve dumping.
14822 (verify_eh_region): New.
14823 (verify_eh_tree): Use it.
14825 2009-04-06 Richard Guenther <rguenther@suse.de>
14827 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
14828 &ARRAY addresses by adjusting their types and prepending
14830 * tree-cfg.c (verify_gimple_assign_single): Verify that
14831 addresses are correct.
14833 2009-04-09 Richard Guenther <rguenther@suse.de>
14835 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
14836 indices into an array reference if possible.
14837 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
14838 Fold POINTER_PLUS_EXPR statements with invariant address.
14840 2009-04-09 Alan Modra <amodra@bigpond.net.au>
14843 * config.gcc (powerpc64-*-linux*): Always build biarch.
14845 2009-04-09 Joseph Myers <joseph@codesourcery.com>
14848 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
14849 it and pedwarn if this results in an INTEGER_CST.
14851 2009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14853 * doc/install.texi: Update minimum GMP version. Remove obsolete
14854 text in MPFR section.
14856 2009-04-08 Jakub Jelinek <jakub@redhat.com>
14858 * dwarf2out.c (class_scope_p): New static inline.
14859 (class_or_namespace_scope_p): Use it.
14860 (gen_variable_die): Use DW_TAG_member tag for static data member
14861 declarations instead of DW_TAG_variable.
14863 PR middle-end/39573
14864 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
14867 2009-04-08 Richard Guenther <rguenther@suse.de>
14869 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
14870 valueize random data.
14872 2009-04-08 David Edelsohn <edelsohn@gnu.org>
14874 * config.gcc (aix tm_file): Add aix-stdint.h.
14875 (aix tm clause use_gcc_stdint): Set to wrap.
14876 * config/rs6000/aix-stdint.h: New file.
14878 2009-04-08 Richard Guenther <rguenther@suse.de>
14880 PR middle-end/36291
14881 * tree-dfa.c (add_referenced_var): Do not recurse into
14882 global initializers.
14883 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
14885 (fold_const_aggregate_ref): Likewise.
14887 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
14889 * recog.c (ordered_comparison_operator): New.
14890 * gensupport.c (std_preds): Add it.
14891 * doc/md.texi (Machine-Independent Predicates): Document it.
14893 2009-04-08 Jan Hubicka <jh@suse.cz>
14895 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
14896 * function.h (rtl_eh): Remove exception_handler_label_map.
14897 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
14898 remove_exception_handler_label, for_each_eh_label_1): Remove.
14899 (rtl_remove_unreachable_regions): Remove.
14900 (convert_from_eh_region_ranges): Do not remove unreachable regions.
14901 (find_exception_handler_labels): Don't build the hashtable.
14902 (maybe_remove_eh_handler): Remove.
14903 (for_each_eh_label): Rewrite to walk the tree.
14904 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
14905 * except.h (maybe_remove_eh_handler): Remove.
14906 * passes.c (init_optimization_passes): Schedule second EH cleanup
14908 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
14909 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
14911 2009-04-08 Paolo Bonzini <bonzini@gnu.org>
14913 * genoutput.c (validate_optab_operands): New.
14914 (gen_insn, gen_expand): Call it.
14916 * genflags.c (gen_insn): Detect misused iterators.
14917 (main): Pass line_no to gen_insn, exit with status 1 on error.
14919 * genextract.c (line_no): Make global.
14920 (VEC_safe_set_locstr): Change assertion to error message.
14921 (main): Exit with status 1 on error.
14923 2009-04-08 Joseph Myers <joseph@codesourcery.com>
14927 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
14928 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
14929 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
14930 * c-convert.c (convert): Do not call fold on results of conversion
14931 functions when the result is a C_MAYBE_CONST_EXPR.
14932 * c-parser.c (c_parser_postfix_expression): Do not fold condition
14933 of __builtin_choose_expr.
14934 * c-typeck.c (remove_c_maybe_const_expr): New.
14935 (build_unary_op, build_conditional_expr, build_compound_expr,
14936 build_binary_op, c_objc_common_truthvalue_conversion): Call
14937 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
14940 2009-04-08 Bingfeng Mei <bmei@broadcom.com>
14942 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
14943 CODE to produce a new one. Add a prototype to use fold_convert_const
14945 2009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
14948 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
14949 mix declarations and code.
14951 2009-04-08 Ben Elliston <bje@au.ibm.com>
14953 * gcc.c: Replace `CC' with `GCC' throughout.
14955 2009-04-07 H.J. Lu <hongjiu.lu@intel.com>
14957 * doc/invoke.texi: Document Atom support.
14959 2009-04-07 Jason Merrill <jason@redhat.com>
14962 * c-common.h, c-common.c: Add flag_pretty_templates.
14963 * c-opts.c (c_common_handle_option): Set it.
14964 * c.opt: Add -fno-pretty-templates.
14965 * doc/invoke.texi (C++ Dialect Options): Likewise.
14967 2009-04-07 Uros Bizjak <ubizjak@gmail.com>
14969 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
14970 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
14971 (ia64_expand_builtin): Likewise.
14973 2009-04-07 Martin Jambor <mjambor@suse.cz>
14975 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
14976 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
14977 ADDR_EXPRS are include too.
14979 2009-04-07 Richard Guenther <rguenther@suse.de>
14981 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
14982 decls are only used if passes as parameters or if they are
14983 local statics and the call is not to a builtin.
14984 (call_may_clobber_ref_p_1): Likewise.
14986 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
14988 * expr.c (do_store_flag): Remove last argument. Simplify code
14989 to avoid duplication of tests already done by can_compare_p.
14990 (expand_expr_real_1): Adjust caller.
14992 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
14994 * optabs.c (can_compare_p): Test the predicate of a
14995 cbranch and cstore pattern.
14997 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
14999 * expr.c (convert_move): Use emit_store_flag instead of
15002 2009-04-07 Paolo Bonzini <bonzini@gnu.org>
15004 * config/i386/i386.c (ix86_compare_emitted): Remove.
15005 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
15006 ix86_compare_op0 like ix86_compare_emitted used to be handled.
15007 * config/i386/i386.h (ix86_compare_emitted): Remove.
15008 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
15009 instead of ix86_compare_emitted.
15010 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
15012 2009-04-07 Andrew Stubbs <ams@codesourcery.com>
15014 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
15015 Add t-sysroot-suffix to tmake_file.
15016 * config/print-sysroot-suffix.sh: New file.
15017 * config/t-sysroot-suffix: New file.
15019 2009-04-07 Ben Elliston <bje@au.ibm.com>
15021 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
15022 as the latter produces a warning when the target does not support
15025 2009-04-07 Ben Elliston <bje@au.ibm.com>
15027 * dfp.c: Replace type punning assignments with memcpy throughout.
15028 * Makefile.in (dfp.o-warn): Remove.
15030 2009-04-07 Alan Modra <amodra@bigpond.net.au>
15033 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
15034 Include soft-fp/t-softfp after rs6000/t-linux64.
15036 2009-04-06 Eric Botcazou <ebotcazou@adacore.com>
15038 * stor-layout.c (set_sizetype): Use the full precision of their
15039 machine mode for bitsize types.
15041 2009-04-06 H.J. Lu <hongjiu.lu@intel.com>
15043 * config/i386/i386.md: Revert 2 accidental checkins.
15045 2009-04-06 Joey Ye <joey.ye@intel.com>
15046 Xuepeng Guo <xuepeng.guo@intel.com>
15047 H.J. Lu <hongjiu.lu@intel.com>
15049 Atom pipeline model, tuning and insn selection.
15050 * config.gcc (atom): Add atom config options and target.
15052 * config/i386/atom.md: New.
15054 * config/i386/i386.c (atom_cost): New cost.
15055 (m_ATOM): New macro flag.
15056 (initial_ix86_tune_features): Set m_ATOM.
15057 (x86_accumulate_outgoing_args): Likewise.
15058 (x86_arch_always_fancy_math_387): Likewise.
15059 (processor_target): Add Atom cost.
15060 (cpu_names): Add Atom cpu name.
15061 (override_options): Set Atom ISA.
15062 (ix86_issue_rate): New case PROCESSOR_ATOM.
15063 (ix86_adjust_cost): Likewise.
15065 * config/i386/i386.h (TARGET_ATOM): New target macro.
15066 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
15067 (TARGET_OPT_AGU): New target option.
15068 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
15069 (processor_type): Add PROCESSOR_ATOM.
15071 * config/i386/i386.md (cpu): Add new value "atom".
15072 (use_carry, movu): New attr.
15073 (atom.md): Include atom.md.
15074 (adddi3_carry_rex64): Set attr "use_carry".
15075 (addqi3_carry): Likewise.
15076 (addhi3_carry): Likewise.
15077 (addsi3_carry): Likewise.
15078 (*addsi3_carry_zext): Likewise.
15079 (subdi3_carry_rex64): Likewise.
15080 (subqi3_carry): Likewise.
15081 (subhi3_carry): Likewise.
15082 (subsi3_carry): Likewise.
15083 (x86_movdicc_0_m1_rex64): Likewise.
15084 (*x86_movdicc_0_m1_se): Likewise.
15085 (x86_movsicc_0_m1): Likewise.
15086 (*x86_movsicc_0_m1_se): Likewise.
15087 (*adddi_1_rex64): Emit add insn as much as possible.
15088 (*addsi_1): Likewise.
15089 (return_internal): Set atom_unit.
15090 (return_internal_long): Likewise.
15091 (return_pop_internal): Likewise.
15092 (*rcpsf2_sse): Set atom_sse_attr attr.
15093 (*qrt<mode>2_sse): Likewise.
15094 (*prefetch_sse): Likewise.
15096 * config/i386/i386-c.c (ix86_target_macros_internal): New case
15098 (ix86_target_macros_internal): Likewise.
15100 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
15101 (*prefetch_sse_rex): Likewise.
15102 (sse_rcpv4sf2): Likewise.
15103 (sse_vmrcpv4sf2): Likewise.
15104 (sse_sqrtv4sf2): Likewise.
15105 (<sse>_vmsqrt<mode>2): Likewise.
15106 (sse_ldmxcsr): Likewise.
15107 (sse_stmxcsr): Likewise.
15108 (*sse_sfence): Likewise.
15109 (sse2_clflush): Likewise.
15110 (*sse2_mfence): Likewise.
15111 (*sse2_lfence): Likewise.
15112 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
15113 (<sse>_movup<ssemodesuffixf2c>): Likewise.
15114 (avx_movdqu<avxmodesuffix>): Likewise.
15115 (avx_lddqu<avxmodesuffix>): Likewise.
15116 (sse2_movntv2di): Change attr "type" to "ssemov".
15117 (sse2_movntsi): Likewise.
15118 (rsqrtv8sf2): Change attr "type" to "sseadd".
15119 (sse3_addsubv2df3): Set attr "atom_unit".
15120 (sse3_h<plusminus_insn>v4sf3): Likewise.
15121 (*sse2_pmaddwd): Likewise.
15122 (*vec_extractv2di_1_rex64): Likewise.
15123 (*vec_extractv2di_1_avx): Likewise.
15124 (sse2_psadbw): Likewise.
15125 (ssse3_phaddwv8hi3): Likewise.
15126 (ssse3_phaddwv4hi3): Likewise.
15127 (ssse3_phadddv4si3): Likewise.
15128 (ssse3_phadddv2si3): Likewise.
15129 (ssse3_phaddswv8hi3): Likewise.
15130 (ssse3_phaddswv4hi3): Likewise.
15131 (ssse3_phsubwv8hi3): Likewise.
15132 (ssse3_phsubwv4hi3): Likewise.
15133 (ssse3_phsubdv4si3): Likewise.
15134 (ssse3_phsubdv2si3): Likewise.
15135 (ssse3_phsubswv8hi3): Likewise.
15136 (ssse3_phsubswv4hi3): Likewise.
15137 (ssse3_pmaddubsw128): Likewise.
15138 (sse3_pmaddubsw: Likewise.
15139 (ssse3_palignrti): Likewise.
15140 (ssse3_palignrdi): Likewise.
15142 2009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
15144 * doc/install.texi (Specific): Fix two cross-references to MinGW.
15146 2009-04-06 Richard Guenther <rguenther@suse.de>
15148 PR tree-optimization/28868
15149 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
15150 of which PHI results we inserted.
15151 (insert_into_preds_of_block): Record inserted PHIs.
15152 (eliminate): Eliminate redundant PHI nodes.
15153 (init_pre): Init inserted_phi_names.
15155 2009-04-06 Richard Guenther <rguenther@suse.de>
15157 PR tree-optimization/39643
15158 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
15159 IMAGPART_EXPRs of complex constants.
15160 (execute_fold_all_builtins): If we folded a call queue
15161 TODO_update_address_taken.
15163 2009-04-06 Jan Hubicka <jh@suse.cz>
15165 PR middle-end/39659
15166 * except.c (remove_unreachable_regions): Propagate may_contain_throw
15169 2009-04-06 Andrew Stubbs <ams@codesourcery.com>
15171 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
15173 (ic_invalidate_array): Likewise.
15175 2009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
15177 * calls.c (emit_library_call_value_1): Fix a problem with parameter
15178 alignment for library calls.
15180 2009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
15182 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
15183 (mingw32 tm clause use_gcc_stdint): Set to wrap.
15184 * config/i386/mingw-stdint.h: New file.
15186 2009-04-05 Richard Guenther <rguenther@suse.de>
15188 PR tree-optimization/39648
15189 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
15190 our &A vs. &A[0] IL deficiencies.
15192 2009-04-04 Jan Hubicka <jh@suse.cz>
15194 * except.c (sjlj_find_directly_reachable_regions): Be ready for
15195 removed toplevel regions.
15196 (sjlj_mark_call_sites): Likewise.
15198 2009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
15200 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
15201 (cygwin tm clause use_gcc_stdint): Set to wrap.
15202 * config/i386/cygwin-stdint.h: New file.
15204 2009-04-04 Richard Guenther <rguenther@suse.de>
15206 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
15207 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
15208 single-argument PHIs if we are in loop-closed SSA form.
15209 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
15210 for the pre-condition.
15211 (slpeel_tree_peel_loop_to_edge): Likewise.
15212 (vect_build_loop_niters): Take an optional sequence to append stmts.
15213 (vect_generate_tmps_on_preheader): Likewise.
15214 (vect_do_peeling_for_loop_bound): Take extra guards for the
15216 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
15217 the cost model check.
15218 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
15219 guards if we are going to peel. Do not apply versioning in that case.
15220 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
15221 (vect_do_peeling_for_loop_bound): Likewise.
15222 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
15223 loop bound only record extra pre-conditions, do not apply loop
15226 2009-04-04 Richard Guenther <rguenther@suse.de>
15228 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
15231 2009-04-04 Jan Hubicka <jh@suse.cz>
15233 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
15234 last_basic_block for size of bb->index indexed array.
15235 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
15236 compute_out, link_btr_uses, build_btr_def_use_webs,
15237 build_btr_def_use_webs, migrate_btr_defs): Likewise.
15239 2009-04-04 Jan Hubicka <jh@suse.cz>
15241 * except.c (remove_eh_handler_and_replace): Break out from ...
15242 (remove_eh_handler): ... here.
15243 (bring_to_root): New function.
15244 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
15245 handled ones, bring others to root of tree.
15247 2009-04-04 Jan Hubicka <jh@suse.cz>
15249 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
15250 (all_phis_safe_to_merge): New function.
15251 (update_info): New structure.
15252 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
15253 (cleanup_empty_eh): Update SSA if possible.
15255 2009-04-04 Richard Guenther <rguenther@suse.de>
15257 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
15258 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
15259 (append_vuse): Likewise.
15261 2009-04-04 Jakub Jelinek <jakub@redhat.com>
15263 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
15264 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
15265 instead of REG_UNSAVED for DW_CFA_undefined.
15266 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
15267 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
15270 2009-04-04 Richard Earnshaw <rearnsha@arm.com>
15273 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
15274 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
15275 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
15277 2009-04-04 Richard Guenther <rguenther@suse.de>
15279 PR tree-optimization/8781
15280 PR tree-optimization/37892
15281 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
15282 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
15283 (valueize_refs): Call it for *& valueizations.
15284 (shared_reference_ops_from_ref): Rename to ...
15285 (valueize_shared_reference_ops_from_ref): ... this and valueize.
15286 (shared_reference_ops_from_call): Rename to ...
15287 (valueize_shared_reference_ops_from_call): ... this and valueize.
15288 (vn_reference_lookup): Update.
15289 (visit_reference_op_call): Likewise.
15290 * tree-ssa-pre.c (phi_translate_1): Fold *&.
15291 (eliminate): Value-replace the call address in call statements.
15293 2009-04-04 Richard Guenther <rguenther@suse.de>
15295 PR tree-optimization/39636
15296 * tree-ssa-forwprop.c
15297 (forward_propagate_addr_into_variable_array_index): Check for
15298 GIMPLE_ASSIGN before accessing the rhs code.
15300 2009-04-03 Jason Merrill <jason@redhat.com>
15302 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
15304 2009-04-03 Steve Ellcey <sje@cup.hp.com>
15306 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
15307 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
15308 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
15309 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
15310 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
15311 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
15312 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
15313 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
15314 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
15315 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
15316 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
15317 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
15318 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
15319 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
15320 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
15321 Use fr_reg_or_fp01_operand instead of fr_register_operand
15323 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
15324 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
15325 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
15327 2009-04-03 Vladimir Makarov <vmakarov@redhat.com>
15329 PR rtl-optimization/39607
15330 PR rtl-optimization/39631
15334 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
15335 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
15336 instead of DF_LR_OUT.
15337 * ira-lives.c (process_bb_node_lives): Ditto.
15338 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
15339 instead of DF_LR_{OUT,IN}.
15340 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
15341 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
15343 2009-04-03 Steven Bosscher <steven@gcc.gnu.org>
15345 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
15346 (execute_lower_omp): Always run but take the short way out if -fopenmp
15348 (gate_lower_omp): Remove, forcing the pass manager to always run the
15349 pass and always set PROP_gimple_lomp.
15350 (pass_lower_omp): Remove gate function.
15351 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
15352 PROP_trees. Instead, require it.
15353 * ipa-cp.c (pass_ipa_cp): Likewise.
15354 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
15355 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
15356 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
15357 and PROP_gimple_leh.
15359 2009-04-03 Richard Guenther <rguenther@suse.de>
15361 PR middle-end/13146
15362 PR tree-optimization/23940
15363 PR tree-optimization/33237
15364 PR middle-end/33974
15365 PR middle-end/34093
15366 PR tree-optimization/36201
15367 PR tree-optimization/36230
15368 PR tree-optimization/38049
15369 PR tree-optimization/38207
15370 PR tree-optimization/38230
15371 PR tree-optimization/38301
15372 PR tree-optimization/38585
15373 PR middle-end/38895
15374 PR tree-optimization/38985
15375 PR tree-optimization/39299
15376 * tree-ssa-structalias.h: Remove.
15377 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
15378 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
15379 (struct vuse_element_d): Remove.
15380 (struct vuse_vec_d): Likewise.
15381 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
15382 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
15383 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
15384 VUSE_ELEMENT_VAR): Likewise.
15385 (struct voptype_d): Likewise.
15386 (NUM_VOP_FREE_BUCKETS): Likewise.
15387 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
15388 (struct stmt_operands_d): Remove.
15389 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
15390 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
15391 VDEF_NUM, VDEF_VECT): Likewise.
15392 (copy_virtual_operands): Remove.
15393 (operand_build_cmp): Likewise.
15394 (create_ssa_artificial_load_stmt): Likewise.
15395 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
15396 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
15397 vuse_index and mayuse_index members. Pack and move done and iter_type
15398 members to the front.
15399 (SSA_OP_VMAYUSE): Remove.
15400 (SSA_OP_VIRTUAL_USES): Adjust.
15401 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
15402 (unlink_stmt_vdef): Declare.
15403 (add_to_addressable_set): Remove.
15404 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
15405 (vrp_visit_stmt): Likewise.
15406 * doc/tree-ssa.texi (Alias analysis): Update.
15407 * doc/invoke.texi (max-aliased-vops): Remove docs.
15408 (avg-aliased-vops): Likewise.
15409 * tree-into-ssa.c (syms_to_rename): Remove.
15410 (need_to_update_vops_p): Likewise.
15411 (need_to_initialize_update_ssa_p): Rename to ...
15412 (update_ssa_initialized_fn): ... this. Track function we are
15414 (symbol_marked_for_renaming): Simplify.
15415 (add_new_name_mapping): Do not set need_to_update_vops_p.
15416 (dump_currdefs): Use SYMS_TO_RENAME.
15417 (rewrite_update_stmt): Always walk all uses/defs.
15418 (dump_update_ssa): Adjust.
15419 (init_update_ssa): Take function argument. Track what we are
15421 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
15422 (create_new_def_for): Initialize for cfun, assert we are initialized
15424 (mark_sym_for_renaming): Simplify.
15425 (mark_set_for_renaming): Do not initialize update-ssa.
15426 (need_ssa_update_p): Simplify. Take function argument.
15427 (name_mappings_registered_p): Assert we ask for the correct function.
15428 (name_registered_for_update_p): Likewise.
15429 (ssa_names_to_replace): Likewise.
15430 (release_ssa_name_after_update_ssa): Likewise.
15431 (update_ssa): Likewise. Use SYMS_TO_RENAME.
15432 (dump_decl_set): Do not print a newline.
15433 (debug_decl_set): Do it here.
15434 (dump_update_ssa): And here.
15435 * tree-ssa-loop-im.c (move_computations): Adjust.
15436 (movement_possibility): Likewise.
15437 (determine_max_movement): Likewise.
15438 (gather_mem_refs_stmt): Likewise.
15439 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
15440 or NAME_MEMORY_TAG.
15441 * tree-complex.c (update_all_vops): Remove.
15442 (expand_complex_move): Adjust.
15443 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
15444 Simplify test for memory referencing statement. Exclude
15445 non-invariant ADDR_EXPRs.
15446 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
15447 * tree-loop-distribution.c (generate_memset_zero): Adjust.
15448 (rdg_flag_uses): Likewise.
15449 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
15451 (tree_optimize_tail_calls_1): Also split the
15452 edge from the entry block if we have degenerate PHI nodes in
15453 the first basic block.
15454 * tree.c (init_ttree): Remove memory-tag related code.
15455 (tree_code_size): Likewise.
15456 (tree_node_structure): Likewise.
15457 (build7_stat): Re-write to be build6_stat.
15458 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
15459 (SSA_VAR_P): Adjust.
15460 (struct tree_memory_tag): Remove.
15461 (struct tree_memory_partition_tag): Likewise.
15462 (union tree_node): Adjust.
15463 (build7): Re-write to be build6.
15464 * tree-pass.h (pass_reset_cc_flags): Remove.
15465 (TODO_update_address_taken): New flag.
15466 (pass_simple_dse): Remove.
15467 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
15468 * params.h (MAX_ALIASED_VOPS): Remove.
15469 (AVG_ALIASED_VOPS): Likewise.
15470 * omp-low.c (expand_omp_taskreg): Update SSA form.
15471 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
15472 aliases the lhs in a copy stmt.
15473 * tree-ssa-dse.c (struct address_walk_data): Remove.
15474 (memory_ssa_name_same): Likewise.
15475 (memory_address_same): Likewise.
15476 (get_kill_of_stmt_lhs): Likewise.
15477 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
15478 unused stores. Look through PHI nodes into post-dominated regions.
15479 (dse_optimize_stmt): Simplify. Properly remove stores.
15480 (tree_ssa_dse): Compute dominators.
15481 (execute_simple_dse): Remove.
15482 (pass_simple_dse): Likewise.
15483 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
15484 gimple_loaded_syms and gimple_stored_syms computation.
15485 * toplev.c (dump_memory_report): Dump alias and pta stats.
15486 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
15487 (vn_reference_eq): Likewise.
15488 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
15489 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
15490 valueize_vuses): Remove.
15491 (get_def_ref_stmt_vuses): Simplify. Rename to ...
15492 (get_def_ref_stmt_vuse): ... this.
15493 (vn_reference_lookup_2): New function.
15494 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
15495 walking equivalent vuses. Simplify.
15496 (vn_reference_lookup): Likewise.
15497 (vn_reference_insert): Likewise.
15498 (vn_reference_insert_pieces): Likewise.
15499 (visit_reference_op_call): Simplify.
15500 (visit_reference_op_load): Likewise.
15501 (visit_reference_op_store): Likewise.
15502 (init_scc_vn): Remove shared_lookup_vuses initialization.
15503 (free_scc_vn): Remove shared_lookup_vuses freeing.
15504 (sort_vuses, sort_vuses_heap): Remove.
15505 (get_ref_from_reference_ops): Export.
15506 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
15507 vector with single vuse pointer.
15508 (vn_reference_lookup_pieces, vn_reference_lookup,
15509 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
15510 (shared_vuses_from_stmt): Remove.
15511 (get_ref_from_reference_ops): Declare.
15512 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
15513 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
15514 memory-tag related code.
15515 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
15516 (likely_value): Add comment, skip static-chain of call statements.
15517 (surely_varying_stmt_p): Adjust.
15518 (gimplify_and_update_call_from_tree): Likewise.
15519 (execute_fold_all_builtins): Do not rebuild alias info.
15520 (gimplify_and_update_call_from_tree): Properly update VOPs.
15521 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
15522 (copy_ref_info): Remove memory-tag related code.
15523 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
15524 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
15525 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
15527 * tree-ssa-dom.c (gimple_p): Remove typedef.
15528 (eliminate_redundant_computations): Adjust.
15529 (record_equivalences_from_stmt): Likewise.
15530 (avail_expr_hash): Likewise.
15531 (avail_expr_eq): Likewise.
15532 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
15533 (stmt_makes_single_load): Likewise.
15534 (stmt_makes_single_store): Likewise.
15535 * tree-ssa-alias.c: Rewrite completely.
15536 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
15537 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
15538 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
15539 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
15540 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
15541 Remove public functions.
15542 (pass_reset_cc_flags): Remove.
15543 (pass_build_alias): Move ...
15544 * tree-ssa-structalias.c (pass_build_alias): ... here.
15545 * tree-ssa-alias.c (may_be_aliased): Move ...
15546 * tree-flow-inline.h (may_be_aliased): ... here.
15547 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
15548 count_uses_and_derefs): Move ...
15549 * gimple.c: ... here.
15550 * gimple.h (count_uses_and_derefs): Declare.
15551 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
15552 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
15553 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
15554 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
15555 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
15556 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
15557 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
15559 * tree-dfa.c (refs_may_alias_p): Move ...
15560 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
15561 * tree-ssa-alias.h: New file.
15562 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
15563 (statement_sink_location): Likewise.
15564 * opts.c (decode_options): Do not adjust max-aliased-vops or
15565 avg-aliased-vops values.
15566 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
15567 (TV_CALL_CLOBBER): Likewise.
15568 (TV_FLOW_SENSITIVE): Likewise.
15569 (TV_FLOW_INSENSITIVE): Likewise.
15570 (TV_MEMORY_PARTITIONING): Likewise.
15571 (TV_ALIAS_STMT_WALK): New timevar.
15572 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
15573 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
15574 (get_address_description): Remove memory-tag related code.
15575 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
15576 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
15577 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
15578 and immediate uses in statements. Document.
15579 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
15580 (dump_symbols): Remove.
15581 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
15582 * alias.c (get_deref_alias_set): New function split out from ...
15583 (get_alias_set): ... here.
15584 * alias.h (get_deref_alias_set): Declare.
15585 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
15586 type parameter. Remove restrict pointer handling. Create a
15587 ref-all pointer in case type-based alias sets do not conflict.
15588 (vect_analyze_data_refs): Remove SMT related code.
15589 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
15590 (vectorizable_load): Likewise.
15591 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
15592 (DR_SYMBOL_TAG, DR_VOPS): Remove.
15593 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
15594 Ignore vops and SMTs.
15595 (dr_analyze_alias): Likewise..
15596 (free_data_ref): Likewise.
15597 (create_data_ref): Likewise.
15598 (analyze_all_data_dependences): Likewise.
15599 (get_references_in_stmt): Adjust.
15600 * tree-flow-inline.h (gimple_aliases_computed_p,
15601 gimple_addressable_vars, gimple_call_clobbered_vars,
15602 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
15603 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
15604 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
15605 gimple_mem_ref_stats): Remove.
15606 (gimple_vop): New function.
15607 (op_iter_next_use): Remove vuses and mayuses cases.
15608 (op_iter_next_def): Remove vdefs case.
15609 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
15610 (clear_and_done_ssa_iter): Do not set removed fields.
15611 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
15612 Assert we are not iterating over vuses or vdefs if not also
15613 iterating over uses or defs.
15614 (op_iter_init_use): Likewise.
15615 (op_iter_init_def): Likewise.
15616 (op_iter_next_vdef): Remove.
15617 (op_iter_next_mustdef): Likewise.
15618 (op_iter_init_vdef): Likewise.
15619 (compare_ssa_operands_equal): Likewise.
15620 (link_use_stmts_after): Handle vuse operand.
15621 (is_call_used): Use is_call_clobbered.
15622 (is_call_clobbered): Global variables are always call clobbered,
15623 query the call-clobbers bitmap.
15624 (mark_call_clobbered): Ignore global variables.
15625 (clear_call_clobbered): Likewise.
15626 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
15627 virtual operands sanity check.
15628 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
15630 (TARGET_MEM_REF): Remove TMR_TAG operand.
15631 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
15632 Remove call-clobber related code.
15633 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
15634 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
15635 partitions or escape reason.
15636 (get_single_def_stmt, get_single_def_stmt_from_phi,
15637 get_single_def_stmt_with_phi): Remove.
15638 (dump_referenced_vars): Tidy.
15639 (get_ref_base_and_extent): Allow bare decls.
15640 (collect_dfa_stats): Adjust.
15641 * graphite.c (rename_variables_in_stmt): Adjust.
15642 (graphite_copy_stmts_from_block): Likewise.
15643 (translate_clast): Likewise.
15644 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
15646 (translate_vuse_through_block): Use the oracle.
15647 (phi_translate_1): Adjust.
15648 (value_dies_in_block_x): Use the oracle. Cache the outcome
15650 (valid_in_sets): Check if the VUSE for
15651 a REFERENCE is available.
15652 (eliminate): Do not remove stmts during elimination,
15653 instead queue and remove them afterwards.
15654 (do_pre): Do not rebuild alias info.
15655 (pass_pre): Run TODO_rebuild_alias before PRE.
15656 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
15657 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
15658 (mark_all_v_defs_stmt): Remove.
15659 (mark_all_v_defs_seq): Adjust.
15660 (sra_replace): Likewise.
15661 (scalarize_use): Likewise.
15662 (scalarize_copy): Likewise.
15663 (scalarize_init): Likewise.
15664 (scalarize_ldst): Likewise.
15665 (todoflags): Remove.
15666 (tree_sra): Do not rebuild alias info.
15667 (tree_sra_early): Adjust.
15668 (pass_sra): Run TODO_update_address_taken before SRA.
15669 * tree-predcom.c (set_alias_info): Remove.
15670 (prepare_initializers_chain): Do not call it.
15671 (mark_virtual_ops_for_renaming): Adjust.
15672 (mark_virtual_ops_for_renaming_list): Remove.
15673 (initialize_root_vars): Adjust.
15674 (initialize_root_vars_lm): Likewise.
15675 (prepare_initializers_chain): Likewise.
15676 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
15677 (may_propagate_copy_into_stmt): Likewise.
15678 (merge_alias_info): Do nothing for now.
15679 (propagate_tree_value_into_stmt): Adjust.
15680 (stmt_may_generate_copy): Likewise.
15681 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
15682 not mark symbols for renaming.
15683 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
15684 with the same statement, make sure to update the new pointed-to one.
15685 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
15686 call statements, do not mark symbols for renaming.
15687 (mark_operand_necessary): Dump something.
15688 (ref_may_be_aliased): New function.
15689 (mark_aliased_reaching_defs_necessary_1): New helper function.
15690 (mark_aliased_reaching_defs_necessary): Likewise.
15691 (mark_all_reaching_defs_necessary_1): Likewise.
15692 (mark_all_reaching_defs_necessary): Likewise.
15693 (propagate_necessity): Do not process virtual PHIs. For
15694 non-aliased loads mark all reaching definitions as necessary.
15695 For aliased loads and stores mark the immediate dominating
15696 aliased clobbers as necessary.
15697 (visited): New global static.
15698 (perform_tree_ssa_dce): Free visited bitmap after propagating
15700 (remove_dead_phis): Perform simple dead virtual PHI removal.
15701 (remove_dead_stmt): Properly unlink virtual operands when
15703 (eliminate_unnecessary_stmts): Schedule PHI removal after
15705 * tree-ssa-ter.c (is_replaceable_p): Adjust.
15706 (process_replaceable): Likewise.
15707 (find_replaceable_in_bb): Likewise.
15708 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
15709 based on the single gimple vop.
15710 (verify_flow_insensitive_alias_info): Remove.
15711 (verify_flow_sensitive_alias_info): Likewise.
15712 (verify_call_clobbering): Likewise.
15713 (verify_memory_partitions): Likewise.
15714 (verify_alias_info): Likewise.
15715 (verify_ssa): Adjust..
15716 (execute_update_addresses_taken): Export. Update SSA
15717 manually. Optimize only when optimizing. Use a local bitmap.
15718 (pass_update_address_taken): Remove TODO_update_ssa, add
15720 (pass_update_address_taken): Just use TODO_update_address_taken.
15721 (init_tree_ssa): Do not initialize addressable_vars.
15722 (verify_ssa): Verify new VUSE / VDEF properties.
15723 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
15724 Do not call verify_alias_info.
15725 (delete_tree_ssa): Clear the VUSE, VDEF operands.
15726 Do not free the loaded and stored syms bitmaps. Reset the escaped
15727 and callused solutions. Do not free addressable_vars.
15728 Remove memory-tag related code.
15729 (warn_uninitialized_var): Aliases are always available.
15730 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
15731 * lambda-code.c (can_put_in_inner_loop): Adjust.
15732 (can_put_after_inner_loop): Likewise.
15733 (perfect_nestify): Likewise.
15734 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
15735 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
15736 (vectorizable_conversion): Do not mark symbols for renaming.
15737 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
15738 (expand_call_inline): Unlink the calls virtual operands before
15740 (tree_function_versioning): Do not call update_ssa if we are not
15741 updating clones. Simplify.
15742 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
15743 (propagate_with_phi): Likewise..
15744 * tree-outof-ssa.c (create_temp): Remove memory tag and call
15745 clobber code. Assert we are not aliased or global.
15746 * tree-flow.h: Include tree-ssa-alias.h
15747 (enum escape_type): Remove.
15748 (struct mem_sym_stats_d): Likewise.
15749 (struct mem_ref_stats_d): Likewise.
15750 (struct gimple_df): Add vop member. Remove global_var,
15751 call_clobbered_vars, call_used_vars, addressable_vars,
15752 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
15753 escaped and callused members.
15754 (struct ptr_info_def): Remove all members, add points-to solution
15756 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
15757 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
15758 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
15759 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
15760 (tree-ssa-alias.o): Likewise.
15761 (toplev.o): Add tree-ssa-alias.h
15762 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
15763 * gimple.c (gimple_set_bb): Fix off-by-one error.
15764 (is_gimple_reg): Do not handle memory tags.
15765 (gimple_copy): Also copy virtual operands.
15766 Delay updating the statement. Do not reset loaded and stored syms.
15767 (gimple_set_stored_syms): Remove.
15768 (gimple_set_loaded_syms): Likewise.
15769 (gimple_call_copy_skip_args): Copy the virtual operands
15770 and mark the new statement modified.
15771 * tree-ssa-structalias.c (may_alias_p): Remove.
15772 (set_uids_in_ptset): Take the alias set to prune with as
15773 parameter. Fold in the alias test of may_alias_p.
15774 (compute_points_to_sets): Compute whether a ptr is dereferenced
15775 in a local sbitmap.
15776 (process_constraint): Deal with &ANYTHING on the lhs, reject all
15777 other ADDRESSOF constraints on the lhs.
15778 (get_constraint_for_component_ref): Assert that we don't get
15779 ADDRESSOF constraints from the base of the reference.
15780 Properly generate UNKNOWN_OFFSET for DEREF if needed.
15781 (struct variable_info): Remove collapsed_to member.
15782 (get_varinfo_fc): Remove.
15783 (new_var_info): Do not set collapsed_to.
15784 (dump_constraint): Do not follow cycles.
15785 (dump_constraint_graph): Likewise.
15786 (build_pred_graph): Likewise.
15787 (build_succ_graph): Likewise.
15788 (rewrite_constraints): Likewise.
15789 (do_simple_structure_copy): Remove.
15790 (do_rhs_deref_structure_copy): Remove.
15791 (do_lhs_deref_structure_copy): Remove.
15792 (collapse_rest_of_var): Remove.
15793 (do_structure_copy): Re-implement.
15794 (pta_stats): New global variable.
15795 (dump_pta_stats): New function.
15796 (struct constraint_expr): Make offset signed.
15797 (UNKNOWN_OFFSET): Define special value.
15798 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
15799 (solution_set_expand): New helper function split out from ...
15800 (do_sd_constraint): ... here.
15801 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
15802 (do_ds_constraint): Likewise.
15803 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
15804 and CALLUSED = *CALLUSED.
15805 (set_union_with_increment): Make inc argument signed.
15806 (type_safe): Remove.
15807 (get_constraint_for_ptr_offset): Handle unknown and negative
15809 (first_vi_for_offset): Handle offsets before start. Bail
15810 out early for offsets beyond the variable extent.
15811 (first_or_preceding_vi_for_offset): New function.
15812 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
15813 Together with ESCAPED = *ESCAPED this properly computes reachability.
15814 (find_what_var_points_to): New function.
15815 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
15816 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
15817 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
15818 pt_solutions_intersect): New functions.
15819 (compute_call_used_vars): Remove.
15820 (compute_may_aliases): New main entry into PTA computation.
15821 * gimple.h (gimple_p): New typedef.
15822 (struct gimple_statement_base): Remove references_memory_p.
15823 (struct gimple_statement_with_memory_ops_base): Remove
15824 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
15826 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
15827 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
15828 gimple_set_references_memory): Remove.
15829 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
15830 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
15832 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
15833 (verify_expr): Allow RESULT_DECL.
15834 (gimple_duplicate_bb): Do not copy virtual operands.
15835 (gimple_duplicate_sese_region): Adjust.
15836 (gimple_duplicate_sese_tail): Likewise.
15837 (mark_virtual_ops_in_region): Remove.
15838 (move_sese_region_to_fn): Do not call it.
15839 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
15840 and pass_simple_dse.
15841 (execute_function_todo): Handle TODO_update_address_taken,
15842 call execute_update_addresses_taken for TODO_rebuild_alias.
15843 (execute_todo): Adjust.
15844 (execute_one_pass): Init dump files early.
15845 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
15847 (create_general_new_stmt): Clear vops.
15848 * tree-ssa-reassoc.c (get_rank): Adjust.
15849 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
15850 symbols for renaming.
15851 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
15852 (PARAM_AVG_ALIASED_VOPS): Likewise.
15853 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
15854 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
15855 * tree-ssa-operands.c: Simplify for new virtual operand representation.
15856 (operand_build_cmp, copy_virtual_operands,
15857 create_ssa_artificial_load_stmt, add_to_addressable_set,
15858 gimple_add_to_addresses_taken): Remove public functions.
15859 (unlink_stmt_vdef): New function.
15861 2009-04-03 Alan Modra <amodra@bigpond.net.au>
15863 * config.gcc (powerpc-*-linux*): Merge variants.
15865 2009-04-02 Chao-ying Fu <fu@mips.com>
15866 James Grosbach <james.grosbach@microchip.com>
15868 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
15869 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
15871 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
15872 keep_interrupts_masked_p, use_debug_exception_return_p.
15873 (mips_attribute_table): Add interrupt, use_shadow_register_set,
15874 keep_interrupts_masked, use_debug_exception_return.
15875 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
15876 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
15878 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
15879 (mips_print_operand): Process COP0 registers to print $0 .. $31
15880 correctly for GAS to process.
15881 (mips_interrupt_extra_call_saved_reg_p): New function.
15882 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
15884 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
15885 (mips_compute_frame_info): Add supports for interrupt context that
15886 includes doubleword accumulators and COP0 registers.
15887 (mips_for_each_saved_acc): New function.
15888 (mips_for_each_saved_gpr_and_fpr): Change the function name from
15889 mips_for_each_saved_reg.
15890 (mips_save_reg): Save accumulators.
15891 (mips_kernel_reg_p): A new for_each_rtx callback.
15892 (mips_expand_prologue): Support interrupt handlers.
15893 (mips_restore_reg): Restore accumulators.
15894 (mips_expand_epilogue): Support interrupt handlers.
15895 (mips_can_use_return_insn): Return false for interrupt handlers.
15896 (mips_epilogue_uses): New function.
15897 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
15898 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
15899 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
15900 cop0_move): New instructions.
15901 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
15902 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
15904 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
15906 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
15907 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
15908 interrupt handlers, we use K0 as the temporary register.
15909 (EPILOGUE_USES): Change to a function call.
15910 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
15911 handlers, we use K0 as the temporary register.
15913 * doc/extend.texi (Function Attributes): Document interrupt,
15914 use_shadow_register_set, keep_interrupts_masked,
15915 use_debug_exception_return for MIPS attributes.
15917 2009-04-03 Alan Modra <amodra@bigpond.net.au>
15919 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
15920 Remove a number of t-files from tmake_file.
15921 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
15922 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
15923 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
15924 target_prototype, not TARGET_PROTOTYPE.
15925 (LINK_OS_GNU_SPEC): Define.
15926 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
15927 and darwin-ldoubdle.c.
15929 2009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
15932 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
15933 (cpp_options): Ditto.
15934 (default_compilers): Ditto.
15935 (display_help): Ditto.
15936 (process_command): Ditto.
15937 (do_spec_1): Ditto.
15938 (set_input): Use lbasename instead of duplicate code.
15939 (save_temps_prefix): New static for -save-temps=obj.
15940 (save_temps_length): Ditto.
15942 * doc/invoke.texi (-save-temps=obj): Document new variant to
15943 -save-temps switch.
15945 2009-04-02 Jeff Law <law@redhat.com>
15947 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
15950 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
15952 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
15953 * configure: Regenerated.
15955 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
15957 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
15958 share the argument list.
15960 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
15964 2009-02-12 Diego Novillo <dnovillo@google.com>
15966 * varpool.c (debug_varpool): New.
15967 * cgraph.h (debug_varpool): Declare.
15969 2009-04-02 Jan Hubicka <jh@suse.cz>
15971 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
15974 2009-04-02 H.J. Lu <hongjiu.lu@intel.com>
15976 * config/i386/i386.c (ix86_abi): Move initialization to ...
15977 (override_options): Here.
15979 2009-04-02 Christian Bruel <christian.bruel@st.com>
15981 * config/sh/sh.c (sh_dwarf_register_span): New function.
15982 (TARGET_DWARF_REGISTER_SPAN): Define.
15983 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
15985 2009-04-02 Ira Rosen <irar@il.ibm.com>
15987 PR tree-optimization/39595
15988 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
15989 interleaved loads group is not greater than the SLP group size.
15991 2009-04-02 Rafael Avila de Espindola <espindola@google.com>
15993 * builtins.c (is_builtin_name): New.
15994 (called_as_built_in): Use is_builtin_name.
15995 * tree.h (is_builtin_name): New.
15996 * varasm.c (incorporeal_function_p): Use is_builtin_name
15998 2009-04-02 Andrew Stubbs <ams@codesourcery.com>
16000 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
16002 2009-04-02 Dodji Seketeli <dodji@redhat.com>
16005 * c-decl.c (clone_underlying_type): Move this ...
16006 * c-common.c (set_underlying_type): ... here.
16007 Also, make sure the function properly sets TYPE_STUB_DECL() on
16008 the newly created typedef variant type.
16009 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
16010 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
16013 2009-04-02 Richard Guenther <rguenther@suse.de>
16015 PR tree-optimization/37221
16016 * tree-flow.h (degenerate_phi_result): Declare.
16017 * tree-ssa-dom.c (degenerate_phi_result): Export.
16018 * tree-scalar-evolution.c (analyze_initial_condition): If
16019 the initial condition is defined by a degenerate PHI node
16020 use the degenerate value.
16022 2009-04-01 Eric Botcazou <ebotcazou@adacore.com>
16024 PR rtl-optimization/39588
16025 * combine.c (merge_outer_ops): Do not set the constant when this
16027 (simplify_shift_const_1): Do not modify it either in this case.
16029 2009-04-01 Steven Bosscher <steven@gcc.gnu.org>
16031 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
16032 tuning is deprecated if -mtune value is set to an Itanium1 variant.
16034 2009-04-01 Janis Johnson <janis187@us.ibm.com>
16037 * c-lex.c (interpret_float): Default (no suffix) is double.
16039 2009-04-1 Xinliang David Li <davidxl@google.com>
16041 * config/i386/i386.c (legitimate_constant_p): Recognize
16042 all one vector constant.
16044 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16046 * config/vax/vax.c: Add #includes to silence warnings.
16047 Change #include order to silence two warnings.
16049 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16051 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
16052 (ASM_SPEC): Pass -k to the assembler for PIC code.
16054 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16056 * config.gcc: Add vax-*-linux* to the switch.
16057 * config/vax/linux.h: New file. (TARGET_VERSION,
16058 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
16060 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16062 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
16063 Use predicate macros instead of GET_CODE() == foo.
16064 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
16065 ashlsi3, rotrsi3, <unnamed>): Likewise.
16067 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16069 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
16070 jbbccihi, jbbccisi): Remova trailing whitespace.
16071 * config/vax/constraints.md: Likewise.
16072 * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
16073 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
16074 * config/vax/predicates.md: Likewise.
16075 * config/vax/vax.c (print_operand_address, vax_output_int_move,
16076 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
16077 * config/vax/vax.h: Likewise.
16078 * config/vax/vax.md (nonlocal_goto): Likewise.
16080 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16082 * config/vax/vax.c (vax_float_literal, vax_output_int_move)
16083 (indirectable_address_p, adjacent_operands_p): Add spaces around
16085 * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
16087 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16089 * config/vax/vax.c (legitimate_constant_address_p,
16090 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
16091 index_term_p, reg_plus_index_p, legitimate_address_p,
16092 vax_mode_dependent_address_p): Update comments to match functions
16093 modified by the recent int->bool conversion.
16095 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16097 * config/vax/builtins.md: Update copyright message.
16098 * config/vax/constraints.md: Likewise.
16099 * config/vax/netbsd-elf.h: Likewise.
16100 * config/vax/predicates.md: Likewise.
16101 * config/vax/vax-protos.h: Likewise.
16102 * config/vax/vax.c: Likewise.
16103 * config/vax/vax.h: Likewise.
16104 * config/vax/vax.md: Likewise.
16105 * config/vax/vax.opt: Likewise.
16107 2009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
16109 * config/vax/builtins.md (ffssi2, ffssi2_internal,
16110 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
16111 * config/vax/constraints.md (B, R): Likewise.
16112 * config/vax/predicates.md (external_memory_operand,
16113 nonimmediate_addsub_di_operand): Likewise.
16114 * config/vax/vax.c (vax_output_int_add): Likewise.
16115 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
16116 untyped_call): Likewise.
16118 2009-04-01 Matt Thomas <matt@3am-software.com>
16120 * config/vax/predicates.md: New file.
16121 (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
16122 external_const_operand, nonsymbolic_operand, external_memory_operand,
16123 indirect_memory_operand, indexed_memory_operand,
16124 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
16125 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
16127 * config/vax/constraints.md: New file.
16128 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
16130 * config/vax/builtins.md: New file.
16131 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
16132 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
16134 * config/vax/vax.opt (mqmath): Add option.
16135 * config/vax/vax.md (isfx): Extend with DI.
16136 (VAXintQH, VAXintQHSD): Define.
16137 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
16138 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
16139 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
16140 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
16141 (movdi): Update constraints and use vax_output_int_move().
16142 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
16143 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
16144 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
16145 nonlocal_goto): New.
16146 (mov<mode>): Extend accepted operand types.
16147 (subdi3_old): Rename from subdi3, change update constraints and use
16148 a new implementation.
16149 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
16150 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
16151 MOVE_RATIO, CLEAR_RATIO): Define.
16152 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
16153 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
16154 (PRINT_OPERAND): Redefine using a function instead of inlined code.
16155 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
16156 (split_quadword_operands): Make static and really allow variable
16158 (print_operand_address): Update for PIC generation.
16159 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
16160 indexable_address_p, fixup_mathdi_operand,
16161 vax_expand_addsub_di_operands, adjacent_operands_p): New.
16162 (vax_float_literal, legitimate_constant_p,
16163 indirectable_constant_address_p, index_term_p,
16164 reg_plus_index_p): Return bool instead of int.
16165 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
16167 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
16169 (vax_output_conditional_branch): Indent.
16170 (legitimate_constant_address_p, indirectable_constant_address_p,
16171 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
16172 vax_mode_dependent_address_p): Return bool instead of int, update for
16174 * config/vax/vax-protos.h (legitimate_constant_address_p,
16175 legitimate_constant_p, legitimate_address_p,
16176 vax_mode_dependent_address_p): Change declaration to bool.
16177 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
16178 vax_expand_addsub_di_operands, vax_output_int_subtract,
16179 vax_output_movmemsi): Declare.
16180 (split_quadword_operands, vax_float_literal): Delete declaration.
16181 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
16182 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
16183 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
16184 ASM_OUTPUT_DWARF_PCREL): Define.
16185 (ASM_SPEC): Change definition to allow PIC generation.
16187 2009-04-01 Steve Ellcey <sje@cup.hp.com>
16189 * doc/sourcebuild.texi: Update front-end requirements.
16191 2009-04-01 Jakub Jelinek <jakub@redhat.com>
16194 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
16195 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
16196 (booldi3_internal3): Use boolean_or_operator instead of
16199 2009-04-01 Joseph Myers <joseph@codesourcery.com>
16202 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
16203 declarator whose size is not an integer constant expression but
16204 folds to an integer constant, then treat it as a constant
16207 2009-04-01 Richard Guenther <rguenther@suse.de>
16209 * fold-const.c (fold_plusminus_mult_expr): Do not fold
16210 i * 4 + 2 to (i * 2 + 1) * 2.
16212 2009-04-01 Jakub Jelinek <jakub@redhat.com>
16215 * c-parser.c (c_parser_asm_statement): Skip until close paren and
16216 return if c_parser_asm_string_literal returned NULL.
16218 2009-04-01 Nick Clifton <nickc@redhat.com>
16220 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
16222 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
16223 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
16224 other typedefs to avoid conflicts with libgcc2.c. Define labels
16225 to gain 16-bit bit-manipulation functions from libgcc2.c and then
16227 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
16228 to gain 16-bit trapping arithmetic functions from libgcc2.c and
16231 2009-04-01 Rafael Avila de Espindola <espindola@google.com>
16233 * varasm.c (default_function_rodata_section): Declare DOT as
16236 2009-04-01 Kai Tietz <kai.tietz@onevision.com>
16237 Andrey Galkin <agalkin@hypercom.com>
16240 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
16241 Make object_name unique for each process.
16243 2009-04-01 Jakub Jelinek <jakub@redhat.com>
16246 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
16247 addressable variables in the parallel that could go out of scope while
16248 running queued tasks.
16250 2009-04-01 Anatoly Sokolov <aesok@post.ru>
16252 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
16253 (CASE_VALUES_THRESHOLD): Redefine.
16254 * config/avr/avr.c (avr_override_options): Remove initialization of
16255 avr_case_values_threshold variable.
16256 (avr_case_values_threshold): Remove variable. Add new function.
16257 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
16258 * config/avr/avr.opt (mno-tablejump): Remove option.
16259 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
16261 2009-04-01 DJ Delorie <dj@redhat.com>
16263 * varasm.c (default_function_rodata_section): Don't assume
16264 anything about where the first '.' in the section name is.
16266 2009-04-01 Alan Modra <amodra@bigpond.net.au>
16268 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
16269 rs6000_emit_stack_tie.
16271 2009-03-31 Ian Lance Taylor <iant@google.com>
16273 * tree-eh.c (tree_remove_unreachable_handlers): Compare
16274 gimple_code with GIMPLE_RESX, not RESX.
16276 2009-03-31 Joseph Myers <joseph@codesourcery.com>
16278 * c-common.c (c_get_ident): New.
16279 (c_common_nodes_and_builtins): Call it for type names that may be NULL.
16281 2009-04-01 Ben Elliston <bje@au.ibm.com>
16283 * config/rs6000/sysv4.opt (msdata): Improve option description.
16285 2009-03-31 Steve Ellcey <sje@cup.hp.com>
16287 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
16288 (divdf3_internal_lat): Remove.
16289 (divxf3_internal_lat): Remove.
16290 (divxf3_internal_thr): Remove.
16291 (divxf): Use divxf3_internal.
16292 * config/ia64/div.md (divsf3_internal_lat): New.
16293 (divdf3_internal_lat): New.
16294 (divxf3_internal): New.
16296 2009-03-31 Joseph Myers <joseph@codesourcery.com>
16299 * Makefile.in (USE_GCC_STDINT): Define.
16300 (stmp-int-hdrs): Install stdint.h if applicable.
16301 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
16303 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
16304 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
16305 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
16306 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
16307 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
16308 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
16309 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
16310 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
16311 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
16312 (c_common_nodes_and_builtins): Initialize
16313 underlying_wchar_type_node. Do not initialize
16314 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
16315 nodes for new types.
16316 (c_stddef_cpp_builtins): Define macros for new types.
16317 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
16319 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
16320 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
16321 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
16322 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
16323 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
16324 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
16325 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
16326 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
16327 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
16328 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
16329 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
16330 int16_type_node, int32_type_node, int64_type_node,
16331 uint8_type_node, uint16_type_node, c_uint32_type_node,
16332 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
16333 int_least32_type_node, int_least64_type_node,
16334 uint_least8_type_node, uint_least16_type_node,
16335 uint_least32_type_node, uint_least64_type_node,
16336 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
16337 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
16338 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
16339 uintptr_type_node): Define.
16340 * c-cppbuiltin.c (builtin_define_constants,
16341 builtin_define_type_minmax): New.
16342 (builtin_define_stdint_macros): Define more macros.
16343 (c_cpp_builtins): Define more limit macros.
16344 (type_suffix): New.
16345 (builtin_define_type_max): Define in terms of
16346 builtin_define_type_minmax. Remove is_long parameter. All
16348 * config.gcc (use_gcc_stdint): Define.
16349 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
16350 Add newlib-stdint.h for generic targets.
16351 * config/glibc-stdint.h, config/newlib-stdint.h,
16352 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
16353 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
16354 * config/score/score.h (UINTPTR_TYPE): Define.
16355 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
16356 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
16357 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
16358 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
16359 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
16360 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
16361 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
16362 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
16363 * config/spu/spu.h (STDINT_LONG32): Define.
16364 * configure.ac (use_gcc_stdint): Substitute.
16365 * configure: Regenerate.
16366 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
16367 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
16368 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
16369 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
16370 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
16371 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
16372 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
16373 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
16374 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
16375 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
16376 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
16377 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
16378 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
16379 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
16380 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
16381 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
16382 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
16383 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
16384 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
16385 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
16386 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
16387 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
16388 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
16389 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
16390 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
16391 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
16392 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
16393 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
16394 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
16396 2009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
16398 * loop-iv.c (suitable_set_for_replacement): Renamed from
16399 simplify_using_assignment; changed to return bool and to accept new
16400 args DEST and SRC. Return true iff we find a source/destination pair
16401 that can be used to make a replacement, and fill SRC and DEST if so.
16402 Remove arg ALTERED. Don't deal with altered regs here. All callers
16404 (simplify_using_initial_values): Deal with altered regs here and track
16405 more precisely the effect they have on the validity of our expression.
16407 * loop-iv.c (simplify_using_condition): A condition of the form
16408 (EQ REG CONST) can be used to simply make a substitution.
16409 (simplify_using_initial_values): Keep track of conditions we have seen
16410 and keep using them to simplify new expressions, while applying the
16411 same substitutions to them as to the expression.
16413 * simplify-rtx.c (simplify_relational_operation_1): Simplify
16414 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
16417 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
16418 changed. Use this when trying to improve the upper bound.
16419 Generate the comparison by using simplify_gen_relational.
16421 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
16423 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
16425 (simplify_using_assignment, simplify_using_initial_values): Call
16426 replace_in_expr to make replacements. Call replace_single_def_regs
16427 once on the initial version of the expression.
16429 2009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16432 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
16434 2009-03-31 Richard Guenther <rguenther@suse.de>
16436 PR middle-end/31029
16437 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
16438 equality comparisons. Fold C - X CMP X if C % 2 == 1.
16440 2009-03-31 Richard Guenther <rguenther@suse.de>
16442 * tree.h (div_if_zero_remainder): Declare.
16443 * fold-const.c (div_if_zero_remainder): Export.
16444 * tree-ssa-forwprop.c
16445 (forward_propagate_addr_into_variable_array_index): Handle
16446 constant array index addition outside of the variable index.
16448 2009-03-31 Joseph Myers <joseph@codesourcery.com>
16451 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
16452 define_splits, floatunssi<mode>2): Require x87 conversions from
16453 DImode to be permitted.
16455 2009-03-31 Joseph Myers <joseph@codesourcery.com>
16457 PR preprocessor/15638
16458 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
16460 2009-03-31 Richard Guenther <rguenther@suse.de>
16462 PR middle-end/23401
16463 PR middle-end/27810
16464 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
16465 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
16466 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
16467 a separate statement.
16468 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
16469 (lookup_tmp_var): Likewise.
16470 (is_gimple_formal_tmp_or_call_rhs): Remove.
16471 (is_gimple_reg_or_call_rhs): Rename to ...
16472 (is_gimple_reg_rhs_or_call): ... this.
16473 (is_gimple_mem_or_call_rhs): Rename to ...
16474 (is_gimple_mem_rhs_or_call): ... this.
16475 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
16476 DECL_GIMPLE_REG_P only if is_formal is true.
16477 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
16478 for non-proper post-modify expression gimplification.
16479 (gimplify_self_mod_expr): For post-modify expressions gimplify
16480 the lvalue to a minimal lvalue.
16481 (rhs_predicate_for): Remove formal temp case.
16482 (gimplify_modify_expr_rhs): Likewise.
16483 (gimplify_addr_expr): Use is_gimple_reg.
16484 (gimplify_expr): Remove formal temp cases.
16485 (gimple_regimplify_operands): Likewise.
16486 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
16487 and FILTER_EXPR like constants.
16488 * gimple.c (walk_gimple_op): Fix val_only initialization, use
16490 (is_gimple_formal_tmp_rhs): Remove.
16491 (is_gimple_reg_rhs): Remove special casing.
16492 (is_gimple_mem_rhs): Fix.
16493 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
16494 (is_gimple_formal_tmp_var): Remove.
16495 (is_gimple_formal_tmp_reg): Likewise.
16496 (is_gimple_min_lval): Allow invariant component ref parts.
16497 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
16498 is_gimple_formal_tmp_reg): Remove declarations.
16499 * tree-cfg.c (verify_expr): Verify that variables with address
16500 taken do not have DECL_GIMPLE_REG_P set.
16501 * tree-mudflap.c (mf_build_check_statement_for): Use
16502 force_gimple_operand instead of gimplify_expr.
16504 2009-03-31 Ayal Zaks <zaks@il.ibm.com>
16506 * modulo-sched.c (sms_schedule_by_order): Pass the actual
16507 schedulable rows to compute_split_row.
16509 2009-03-31 Ben Elliston <bje@au.ibm.com>
16512 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
16515 2009-03-31 Alan Modra <amodra@bigpond.net.au>
16517 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
16518 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
16519 * configure: Regenerate.
16520 * config.in: Regenerate.
16521 * config/rs6000/rs6000.opt (mtls-markers): Add.
16522 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
16523 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
16524 (tls_ld_aix, tls_ld_sysv): Likewise.
16525 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
16526 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
16528 2009-03-31 Alan Modra <amodra@bigpond.net.au>
16530 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
16532 2009-03-30 Jan Hubicka <jh@suse.cz>
16534 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
16536 (tree_remove_unreachable_handlers): Cleanup EH predecestor
16537 detection and label handling.
16539 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
16541 * ira-int.h (ira_allocno): Rename left_conflicts_num to
16542 left_conflicts_size.
16543 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
16544 ALLOCNO_LEFT_CONFLICTS_SIZE.
16546 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
16547 remove_allocno_from_bucket_and_push,
16548 allocno_spill_priority_compare, push_allocnos_to_stack,
16549 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
16550 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
16551 (setup_allocno_left_conflicts_num): Ditto. Rename to
16552 setup_allocno_left_conflicts_size.
16553 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
16554 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
16555 setup_allocno_left_conflicts_size instead of
16556 setup_allocno_left_conflicts_num.
16558 * ira-build.c (ira_create_allocno): Use
16559 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
16560 ALLOCNO_LEFT_CONFLICTS_NUM.
16562 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
16564 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
16565 instead of DF_LR_OUT.
16567 * ira-lives.c (process_bb_node_lives): Ditto.
16569 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
16570 instead of DF_LR_{OUT,IN}.
16572 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
16574 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
16576 2009-03-30 Jan Hubicka <jh@suse.cz>
16578 * except.c (label_to_region_map): Fix thinko.
16580 2009-03-30 Steve Ellcey <sje@cup.hp.com>
16582 PR middle-end/38237
16583 * tree.h (tree_find_value): New declaration.
16584 * tree.c (tree_find_value): New function.
16585 * varasm.c (assemble_external): Avoid duplicate entries on lists.
16587 2009-03-30 Jakub Jelinek <jakub@redhat.com>
16590 * c-decl.c (struct c_binding): Add locus field.
16591 (bind): Add locus argument, set locus field from it.
16592 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
16593 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
16594 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
16595 implicitly_declare, undeclared_variable, lookup_label,
16596 declare_label, c_make_fname_decl, c_builtin_function,
16597 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
16600 2009-03-30 H.J. Lu <hongjiu.lu@intel.com>
16603 * config/i386/i386.c (classify_argument): Check total size of
16606 2009-03-30 Martin Jambor <mjambor@suse.cz>
16608 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
16609 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
16610 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
16613 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
16614 seen_variable_array_ref while also traversing a union.
16616 * tree-inline.c (optimize_inline_calls): Do not call
16617 cgraph_node_remove_callees.
16618 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
16619 (pass_remove_cgraph_callee_edges): New variable.
16620 * passes.c (init_optimization_passes): Add
16621 pass_remove_cgraph_callee_edges after early inlining and before all
16622 late intraprocedural passes.
16624 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
16626 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
16628 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
16629 Fix typos in names.
16631 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
16633 * combine.c (simplify_comparison): Use have_insn_for.
16634 * dojump.c (do_jump): Likewise.
16636 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
16638 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
16639 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
16640 sparc_compare_op0 like sparc_compare_emitted used to be handled.
16641 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
16642 instead of sparc_compare_emitted.
16643 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
16644 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
16645 instead of sparc_compare_emitted.
16647 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
16649 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
16650 enter/exit cfglayout mode.
16651 (pass_partition_block): Require it.
16652 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
16653 (combine_instructions): Track basic blocks instead of labels.
16654 (update_cfg_for_uncondjump): New.
16655 (try_combine): Use it. Update jumps after rescanning.
16656 (pass_combine): Require PROP_cfglayout.
16657 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
16659 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
16661 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
16662 Provide/destroy PROP_cfglayout respectively.
16663 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
16664 * tree-pass.h (PROP_cfglayout): New.
16666 2009-03-30 Paolo Bonzini <bonzini@gnu.org>
16668 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
16669 fold_convert_const_fixed_from_fixed,
16670 fold_convert_const_fixed_from_int,
16671 fold_convert_const_fixed_from_real, fold_negate_const): Do not
16672 set TREE_CONSTANT_OVERFLOW.
16673 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
16674 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
16676 2009-03-30 Ira Rosen <irar@il.ibm.com>
16678 * tree-vect-loop-manip.c: New file.
16679 * tree-vectorizer.c: Update documentation and included files.
16680 (vect_loop_location): Make extern.
16681 (rename_use_op): Move to tree-vect-loop-manip.c
16682 (rename_variables_in_bb, rename_variables_in_loop,
16683 slpeel_update_phis_for_duplicate_loop,
16684 slpeel_update_phi_nodes_for_guard1,
16685 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
16686 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
16687 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
16688 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
16689 find_loop_location): Likewise.
16690 (new_stmt_vec_info): Move to tree-vect-stmts.c.
16691 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
16692 get_vectype_for_scalar_type, vect_is_simple_use,
16693 supportable_widening_operation, supportable_narrowing_operation):
16695 (bb_in_loop_p): Move to tree-vect-loop.c.
16696 (new_loop_vec_info, destroy_loop_vec_info,
16697 reduction_code_for_scalar_code, report_vect_op,
16698 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
16699 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
16700 (vect_supportable_dr_alignment): Likewise.
16701 * tree-vectorizer.h (tree-data-ref.h): Include.
16702 (vect_loop_location): Declare.
16703 Reorganize function declarations according to the new file structure.
16704 * tree-vect-loop.c: New file.
16705 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
16706 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
16707 * tree-vect-data-refs.c: New file.
16708 * tree-vect-patterns.c (timevar.h): Don't include.
16709 * tree-vect-stmts.c: New file.
16710 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
16711 tree-vect-slp.c, tree-vect-loop.c.
16712 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
16713 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
16714 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
16715 (tree-vect-analyze.o): Remove.
16716 (tree-vect-transform.o): Likewise.
16717 (tree-vect-data-refs.o): Add rule.
16718 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
16719 tree-vect-slp.o): Likewise.
16720 (tree-vect-patterns.o): Remove redundant dependencies.
16721 (tree-vectorizer.o): Likewise.
16722 * tree-vect-slp.c: New file.
16724 2009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
16726 * optc-gen.awk: Warn if an option flag has multiple different
16729 2009-03-30 Sebastian Pop <sebastian.pop@amd.com>
16731 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
16732 -floop-block): Document dependences on PPL, CLooG and Graphite.
16734 2009-03-30 Joseph Myers <joseph@codesourcery.com>
16736 PR rtl-optimization/323
16737 * c-common.c (c_fully_fold, convert_and_check,
16738 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
16739 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
16740 * c-common.def (EXCESS_PRECISION_EXPR): New.
16741 * c-cppbuiltin.c (builtin_define_float_constants): Define
16742 constants with enough digits for long double.
16743 * c-lex.c (interpret_float): Interpret constant with excess
16744 precision where appropriate.
16745 * c-opts.c (c_common_post_options): Set
16746 flag_excess_precision_cmdline. Give an error for
16747 -fexcess-precision=standard for C++ for processors where the
16748 option is significant.
16749 * c-parser.c (c_parser_conditional_expression): Handle excess
16750 precision in condition.
16751 * c-typeck.c (convert_arguments): Handle arguments with excess
16753 (build_unary_op): Move excess precision outside operation.
16754 (build_conditional_expr): Likewise.
16755 (build_compound_expr): Likewise.
16756 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
16757 (build_modify_expr): Handle excess precision in RHS.
16758 (convert_for_assignment): Handle excess precision in converted
16760 (digest_init, output_init_element, process_init_element): Handle
16761 excess precision in initializer.
16762 (c_finish_return): Handle excess precision in return value.
16763 (build_binary_op): Handle excess precision in operands and add
16764 excess precision as needed for operation.
16765 * common.opt (-fexcess-precision=): New option.
16766 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
16767 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
16768 For standard excess precision, output explicit conversion to and
16769 truncation from XFmode.
16770 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
16771 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
16772 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
16773 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
16774 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
16775 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
16776 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
16777 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
16778 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
16779 define_splits, sqrt<mode>2): Disable where appropriate for
16780 standard excess precision.
16781 * convert.c (convert_to_real): Do not shorten arithmetic to type
16782 for which excess precision would be used.
16783 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
16784 * doc/invoke.texi (-fexcess-precision=): Document option.
16785 (-mfpmath=): Correct index entry.
16786 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
16787 flag_excess_precision): New.
16788 * langhooks.c (lhd_post_options): Set
16789 flag_excess_precision_cmdline.
16790 * opts.c (common_handle_option): Handle -fexcess-precision=.
16791 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
16792 init_excess_precision): New.
16793 (lang_dependent_init_target): Call init_excess_precision.
16794 * tree.c (excess_precision_type): New.
16795 * tree.h (excess_precision_type): Declare.
16797 2009-03-30 Joseph Myers <joseph@codesourcery.com>
16800 * c-typeck.c (build_component_ref): Do not copy qualifiers from
16801 non-lvalue to component.
16803 2009-03-29 Joseph Myers <joseph@codesourcery.com>
16805 PR preprocessor/34695
16806 * Makefile.in (c-opts.o): Depend on c-tree.h.
16807 * c-common.c: Move down include of diagnostic.h.
16808 (done_lexing, c_cpp_error): New.
16809 * c-common.h (done_lexing): Declare.
16810 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
16812 * c-opts.c: Include c-tree.h.
16813 (c_common_init_options): Set preprocessor error callback.
16814 (c_common_handle_option): Do not set preprocessor
16815 inhibit_warnings, warnings_are_errors, warn_system_headers,
16816 pedantic_errors or inhibit_warnings flags.
16817 (c_common_post_options): Do not check cpp_errors (parse_in).
16818 (c_common_finish): Do not output dependencies if there were
16819 errors. Do not check return value of cpp_finish.
16820 * c-ppoutput.c (pp_file_change): Set input_location.
16821 * c-tree.h (c_cpp_error): Declare.
16822 * diagnostic.c (diagnostic_set_info_translated): Also initialize
16824 (diagnostic_build_prefix): Check override_column.
16825 * diagnostic.h (diagnostic_info): Add override_column field.
16826 (diagnostic_override_column): Define.
16828 2009-03-28 Paolo Bonzini <bonzini@gnu.org>
16830 * c-common.c (c_expand_expr, c_staticp): Remove.
16831 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
16832 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
16833 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
16834 * c-gimplify.c (gimplify_compound_literal_expr,
16835 optimize_compound_literals_in_ctor): Remove.
16836 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
16837 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
16838 * c-semantics.c (emit_local_var): Remove.
16840 * langhooks-def.h (lhd_expand_expr): Remove.
16841 * langhooks.c (lhd_expand_expr): Remove.
16842 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
16844 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
16845 handling from c-semantics.c; don't call into langhook.
16846 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
16847 * gimplify.c (gimplify_compound_literal_expr,
16848 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
16849 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
16850 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
16851 as was done in c-gimplify.c.
16852 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
16853 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
16854 Move from c-common.h.
16855 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
16857 * tree.c (staticp): Do not call langhook.
16858 * langhooks.c (lhd_staticp): Delete.
16859 * langhooks-def.h (lhd_staticp): Delete prototype.
16860 (LANG_HOOKS_STATICP): Delete.
16861 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
16863 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
16864 instead of DECL_STMTs.
16866 2009-03-29 Joseph Myers <joseph@codesourcery.com>
16874 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
16876 (fold_call_expr): Return a NOP_EXPR from folding rather than the
16877 contained expression.
16878 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
16879 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
16880 conditional expressions for C.
16881 (decl_constant_value_for_optimization): Move from
16882 decl_constant_value_for_broken_optimization in c-typeck.c. Check
16883 whether optimizing and that the expression is a VAR_DECL not of
16884 array type instead of doing such checks in the caller. Do not
16885 check pedantic. Call gcc_unreachable for C++.
16886 * c-common.def (C_MAYBE_CONST_EXPR): New.
16887 * c-common.h (c_fully_fold, c_save_expr,
16888 decl_constant_value_for_optimization): New prototypes.
16889 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
16890 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
16891 EXPR_INT_CONST_OPERANDS): Define.
16892 * c-convert.c (convert): Strip nops from expression.
16893 * c-decl.c (groktypename): Take extra parameters expr and
16894 expr_const_operands. Update call to grokdeclarator.
16895 (start_decl): Update call to grokdeclarator. Add statement for
16896 expressions used in type of decl.
16897 (grokparm): Update call to grokdeclarator.
16898 (push_parm_decl): Update call to grokdeclarator.
16899 (build_compound_literal): Add parameter non_const and build a
16900 C_MAYBE_COSNT_EXPR if applicable.
16901 (grokdeclarator): Take extra parameters expr and
16902 expr_const_operands. Track expressions used in declaration
16903 specifiers and declarators. Fold array sizes and track whether
16904 they are constant expressions and whether they are integer
16905 constant expressions.
16906 (parser_xref_tag): Set expr and expr_const_operands fields in
16908 (grokfield): Update call to grokdeclarator.
16909 (start_function): Update call to grokdeclarator.
16910 (build_null_declspecs): Set expr and expr_const_operands fields in
16912 (declspecs_add_type): Handle expressions in typeof specifiers.
16913 * c-parser.c (c_parser_declspecs): Set expr and
16914 expr_const_operands fields for declaration specifiers.
16915 (c_parser_enum_specifier): Likewise.
16916 (c_parser_struct_or_union_specifier): Likewise.
16917 (c_parser_typeof_specifier): Likewise. Update call to
16918 groktypename. Fold expression as needed. Return expressions with
16919 type instead of adding statements.
16920 (c_parser_attributes): Update calls to c_parser_expr_list.
16921 (c_parser_statement_after_labels): Fold expression before passing
16922 to objc_build_throw_stmt.
16923 (c_parser_condition): Fold expression.
16924 (c_parser_asm_operands): Fold expression.
16925 (c_parser_conditional_expression): Use c_save_expr. Update call
16926 to build_conditional_expr.
16927 (c_parser_alignof_expression): Update call to groktypename.
16928 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
16929 original_code. Fold expression argument of va_arg. Create
16930 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
16931 argument to va_arg. Update calls to groktypename. Fold array
16932 index for offsetof. Verify that first argument to
16933 __builtin_choose_expr has integer type.
16934 (c_parser_postfix_expression_after_paren_type): Update calls to
16935 groktypename and build_compound_literal. Handle expressions with
16936 side effects in type name.
16937 (c_parser_postfix_expression_after_primary): Update call to
16938 c_parser_expr_list. Set original_code for calls to
16939 __builtin_constant_p.
16940 (c_parser_expr_list): Take extra parameter fold_p. Fold
16941 expressions if requested.
16942 (c_parser_objc_type_name): Update call to groktypename.
16943 (c_parser_objc_synchronized_statement): Fold expression.
16944 (c_parser_objc_receiver): Fold expression.
16945 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
16946 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
16947 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
16948 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
16949 (struct c_typespec): Add elements expr and expr_const_operands.
16950 (struct c_declspecs): Add elements expr and expr_const_operands.
16951 (groktypename, build_conditional_expr, build_compound_literal):
16953 (in_late_binary_op): Declare.
16954 * c-typeck.c (note_integer_operands): New function.
16955 (in_late_binary_op): New variable.
16956 (decl_constant_value_for_broken_optimization): Move to c-common.c
16957 and rename to decl_constant_value_for_optimization.
16958 (default_function_array_conversion): Do not strip nops.
16959 (default_conversion): Do not call
16960 decl_constant_value_for_broken_optimization.
16961 (build_array_ref): Do not fold result.
16962 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
16963 result when operand is a VLA.
16964 (c_expr_sizeof_type): Update call to groktypename. Handle
16965 expressions included in type name. Use C_MAYBE_CONST_EXPR for
16966 result when operand names a VLA type.
16967 (build_function_call): Update call to build_compound_literal.
16968 Only fold result for calls to __builtin_* functions. Strip
16969 NOP_EXPR from INTEGER_CST returned from such functions. Fold
16970 the function designator.
16971 (convert_arguments): Fold arguments. Update call to
16972 convert_for_assignment.
16973 (build_unary_op): Handle increment and decrement of
16974 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
16975 decrement earlier. Fold operand of increment and decrement.
16976 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
16977 built for integer operand. Wrap returns that are INTEGER_CSTs
16978 without being integer constant expressions or that have integer
16979 constant operands without being INTEGER_CSTs.
16980 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
16981 (build_conditional_expr): Add operand ifexp_bcp. Track whether
16982 result is an integer constant expression or can be used in
16983 unevaluated parts of one and avoid folding and wrap as
16984 appropriate. Fold operands before possibly doing -Wsign-compare
16986 (build_compound_expr): Wrap result for C99 if operands can be used
16987 in integer constant expressions.
16988 (build_c_cast): Update call to digest_init. Do not ignore
16989 overflow from casting floating-point constants to integers. Wrap
16990 results that could be confused with integer constant expressions,
16991 null pointer constants or floating-point constants.
16992 (c_cast_expr): Update call to groktypename. Handle expressions
16993 included in type name.
16994 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
16995 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
16996 Update calls to convert_for_assignment.
16997 (convert_for_assignment): Take new parameter
16998 null_pointer_constant. Do not strip nops or call
16999 decl_constant_value_for_broken_optimization. Set
17000 in_late_binary_op for conversions to boolean.
17001 (store_init_value): Update call to digest_init.
17002 (digest_init): Take new parameter null_pointer_constant. Do not
17003 call decl_constant_value_for_broken_optimization. pedwarn for
17004 initializers not constant expressions. Update calls to
17005 convert_for_assignment.
17006 (constructor_nonconst): New.
17007 (struct constructor_stack): Add nonconst element.
17008 (really_start_incremental_init, push_init_level, pop_init_level):
17009 Handle constructor_nonconst and nonconst element.
17010 (set_init_index): Call constant_expression_warning for array
17012 (output_init_element): Fold value. Set constructor_nonconst as
17013 applicable. pedwarn for initializers not constant expressions.
17014 Update call to digest_init. Call constant_expression_warning
17015 where constant initializers are required.
17016 (process_init_element): Use c_save_expr.
17017 (c_finish_goto_ptr): Fold expression.
17018 (c_finish_return): Fold return value. Update call to
17019 convert_for_assignment.
17020 (c_start_case): Fold switch expression.
17021 (c_process_expr_stmt): Fold expression.
17022 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
17023 ensure statement expression is not evaluated in constant expression.
17024 (build_binary_op): Track whether results are integer constant
17025 expressions or may occur in such, disable folding and wrap results
17026 as applicable. Fold operands for -Wsign-compare warnings unless
17028 (c_objc_common_truthvalue_conversion): Handle results folded to
17029 integer constants that are not integer constant expressions.
17030 * doc/extend.texi: Document when typeof operands are evaluated,
17031 that condition of __builtin_choose_expr is an integer constant
17032 expression, and more about use of __builtin_constant_p in
17035 2009-03-29 Richard Guenther <rguenther@suse.de>
17037 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
17038 propagate addresses of array references.
17040 2009-03-29 Steven Bosscher <steven@gcc.gnu.org>
17042 * regmove.c (perhaps_ends_bb_p): Remove.
17043 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
17044 from INSN and check that the main loop stays within that basic block.
17045 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
17046 (regmove_forward_pass): Split out from regmove_optimize. Use
17047 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
17048 (regmove_backward_pass): Split out from regmove_optimize. Use
17049 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
17050 (regmove_optimize): Simplify.
17052 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
17055 * config/i386/i386.c (classify_argument): Ignore flexible array
17056 member in struct and warn ABI change.
17058 2009-03-29 H.J. Lu <hongjiu.lu@intel.com>
17060 * config/i386/i386-protos.h (ix86_agi_dependent): New.
17062 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
17063 (ix86_adjust_cost): Updated.
17065 2009-03-29 Jan Hubicka <jh@suse.cz>
17067 PR middle-end/28850
17068 * tree-pass.h (pass_cleanup_eh): New function.
17069 (remove_unreachable_regions): Break code handling RTL
17070 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
17071 that can not be reached by runtime.
17072 (can_be_reached_by_runtime): New function.
17073 (label_to_region_map): New function.
17074 (num_eh_regions): New function.
17075 (rtl_remove_unreachable_regions): New function.
17076 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
17077 (remove_eh_region): New function.
17078 * except.h: Include sbitmap and vecprim.
17079 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
17080 num_eh_regions): Declare.
17081 * passes.c (init_optimization_passes): Schedule cleanup_eh.
17082 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
17083 * tree-eh.c (tree_remove_unreachable_handlers): New function.
17084 (tree_empty_eh_handler_p): New function.
17085 (cleanup_empty_eh): New function.
17086 (cleanup_eh): New function.
17087 (pass_cleanup_eh): New function.
17089 2009-03-29 Jan Hubicka <jh@suse.cz>
17091 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
17092 for removed regions.
17094 2009-03-29 Jan Hubicka <jh@suse.cz>
17096 * except.c (dump_eh_tree): Dump all datastructures.
17098 2009-03-29 Jan Hubicka <jh@suse.cz>
17100 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
17101 (duplicate_eh_regions_1): Likewise.
17102 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
17103 vector; call EH verification.
17104 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
17105 Be ready for region being removed.
17107 2009-03-29 Jan Hubicka <jh@suse.cz>
17109 * bitmap.c (bitmap_last_set_bit): New function.
17110 * bitmap.h (bitmap_last_set_bit): Declare.
17112 2009-03-29 David Ayers <ayers@fsfe.org>
17115 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
17116 by calling objc_compare_types and surpress warnings about
17117 incompatible C pointers that are compatible ObjC pointers.
17119 2009-03-29 Adam Nemet <anemet@caviumnetworks.com>
17121 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
17122 call initialize_inline_failed.
17123 (initialize_inline_failed): Move it from here ...
17124 * cgraph.c (initialize_inline_failed): ... to here.
17125 (cgraph_create_edge): Call initialize_inline_failed rather than
17126 setting inline_failed directly.
17128 2009-03-29 Ben Elliston <bje@au.ibm.com>
17131 * sysv4.opt (msdata): Improve comment.
17132 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
17133 * sysv4.h (SVR4_ASM_SPEC): Likewise.
17135 2009-03-29 Ben Elliston <bje@au.ibm.com>
17138 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
17139 load and store attributes.
17141 2009-03-29 Ben Elliston <bje@au.ibm.com>
17143 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
17144 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
17145 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
17146 * doc/extend.texi (X86 Built-in Functions): Add index entries for
17147 __builtin_infq and __builtin_huge_valq.
17149 2009-03-28 Anatoly Sokolov <aesok@post.ru>
17151 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
17153 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
17154 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
17156 2009-03-28 Xinliang David Li <davidxl@google.com>
17158 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
17159 (do_dbg_cnt): New function.
17161 2009-03-28 Jan Hubicka <jh@suse.cz>
17163 Merge from pretty-ipa:
17165 2009-03-27 Jan Hubicka <jh@suse.cz>
17167 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
17168 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
17169 * passes.c (function_called_by_processed_nodes_p): New.
17170 * ipa-pure-const.c (check_call): Fix handling of operands.
17171 (analyze_function): Dump debug output for skipped bodies.
17172 (local_pure_const): Use function_called_by_processed_nodes_p.
17173 * dwarf2out.c (reference_to_unused): Use output.
17174 * passes.c (do_per_function_toporder): Likewise.
17176 2008-11-12 Jan Hubicka <jh@suse.cz>
17178 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
17179 * ipa-pure-const.c (funct_state_d): Add can throw field; make
17180 state_set_in_source enum
17181 (check_decl): Ignore memory tags; do not set fake looping flags;
17183 (check_operand, check_tree, check_rhs_var, check_lhs_var,
17184 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
17185 (check_call, analyze_function): Rewrite.
17187 (add_new_function): Update call of analyze_function.
17188 (generate_summary): Add call of analyze_function.
17189 (propagate): Propagate can_throw; handle state_set_in_source correctly.
17190 (local_pure_const): New function.
17191 (pass_local_pure_const): New pass.
17192 * ipa-inline.c (inline_transform): Set after_inlining.
17193 * tree-eh.c (stmt_can_throw_external): New.
17194 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
17195 work with aliasing built.
17196 * tree-flow.h (stmt_can_throw_external): New.
17197 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
17198 and local pure/const pass in early and late optimization queue.
17200 2009-03-28 Martin Jambor <mjambor@suse.cz>
17202 * fold-const.c (get_pointer_modulus_and_residue): New parameter
17204 (fold_binary): Allow function decl aligment consideration is the
17205 second argument is integer constant one.
17206 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
17207 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
17208 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
17210 2009-03-28 Jan Hubicka <jh@suse.cz>
17212 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
17213 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
17214 * function.h (rtl_data): Add nothrow flag.
17215 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
17216 set DECL_NOTHROW for AVAILABLE functions.
17218 2009-03-28 Jakub Jelinek <jakub@redhat.com>
17220 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
17221 following vector keyword has expansion starting with pixel or bool
17222 keyword, expand vector to __vector and pixel or bool to __pixel or
17226 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
17227 warn_if_disallowed_function_p): Removed.
17228 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
17229 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
17230 warning_if_disallowed_function_p.
17231 * flags.h (warn_if_disallowed_function_p,
17232 warn_disallowed_functions): Removed.
17233 * common.opt (Wdisallowed-function-list=): Removed.
17234 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
17236 2009-03-28 Richard Guenther <rguenther@suse.de>
17238 PR tree-optimization/38723
17239 * tree-ssa-pre.c (compute_avail): Add all default definitions to
17242 2009-03-28 Jan Hubicka <jh@suse.cz>
17244 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
17245 test introduced by my previous patch.
17247 2009-03-28 Richard Guenther <rguenther@suse.de>
17249 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
17250 the PHIs value undefined.
17252 2009-03-28 Jan Hubicka <jh@suse.cz>
17254 * tree-pass.h (pass_fixup_cfg): New pass.
17255 * ipa-inline.c (inline_transform): Set
17256 always_inline_functions_inlined/after_inlining.
17257 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
17258 (pass_fixup_cfg): New pass.
17259 * passes.c (init_optimization_passes): Add fixup_cfg.
17261 2009-03-28 Richard Guenther <rguenther@suse.de>
17263 PR tree-optimization/38458
17264 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
17265 argument use the arguments copy-of value.
17267 2009-03-28 Richard Guenther <rguenther@suse.de>
17269 PR tree-optimization/38180
17270 * tree-ssa-ccp.c (get_default_value): Simplify.
17271 (likely_value): Likewise.
17272 (surely_varying_stmt_p): Properly handle VOP case.
17273 (ccp_initialize): Likewise.
17274 (ccp_fold): Handle propagating through *&.
17275 (fold_const_aggregate_ref): Also handle decls.
17277 2009-03-28 Jan Hubicka <jh@suse.cz>
17279 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
17280 * cgraph.h (cgraph_node): Likewise.
17281 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
17282 (cgraph_reset_node): Use process flag.
17283 (cgraph_mark_functions_to_output): Likewise.
17284 (cgraph_expand_function): Likewise.
17285 (cgraph_expand_all_functions): Likewise.
17286 (cgraph_output_in_order): Likewise.
17287 * dwarf2out.c (reference_to_unused): Likewise.
17288 * passes.c do_per_function_toporder): Likewise.
17290 2009-03-28 Jan Hubicka <jh@suse.cz>
17292 Bring from lto-branch:
17294 2008-09-03 Doug Kwan <dougkwan@google.com>
17296 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
17297 enums instead of reason strings.
17298 * cgraph.c (cgraph_create_edge): Same.
17299 (cgraph_inline_failed_string): New function.
17300 * cgraph.h (cgraph_inline_failed_t): New enum type.
17301 (cgraph_inline_failed_string): New prototype.
17302 (struct cgraph_edge): Change type of INLINED_FAILED from constant
17303 char pointer to cgraph_inline_failed_t.
17304 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
17305 (cgraph_default_inline_p): Ditto.
17306 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
17307 to cgraph_inline_failed_t pointer.
17308 * cif-code.def: New file.
17309 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
17311 (cgraph_check_inline_limits): Change type of REASON to pointer to
17312 cgraph_inline_failed_t. Replace reason strings with enums.
17313 (cgraph_default_inline_p): Ditto.
17314 (cgraph_recursive_inlining_p): Ditto.
17315 (update_caller_keys): Change type of FAILED_REASON to
17316 cgraph_inline_failed_t.
17317 (cgraph_set_inline_failed): Change type of REASON to pointer to
17318 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
17319 convert enums to strings for text output.
17320 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
17321 to be of type cgraph_inline_failed_t. Replace reason strings with
17322 enums. Call cgraph_inline_failed_string to covert enums
17323 to strings for text output.
17324 (cgraph_decide_inlining): Replace reason strings with enums.
17325 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
17326 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
17328 * tree-inline.c (expand_call_inline): Change type of REASON
17329 to cgraph_inline_failed_t. Replace reason strings with enums.
17330 Call cgraph_inline_failed_string for text output.
17331 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
17334 2009-03-28 Jan Hubicka <jh@suse.cz>
17336 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
17337 cgraph_clone_node): Remove master clone handling.
17338 (cgraph_is_master_clone, cgraph_master_clone): Remove.
17339 * cgraph.h (master_clone): Remove.
17340 (cgraph_is_master_clone, cgraph_master_clone): Remove.
17341 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
17342 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
17344 2009-03-28 Jan Hubicka <jh@suse.cz>
17346 * cgraph.c (cgraph_function_body_availability): Functions declared
17347 inline are always safe to assume that it is not going to be replaced.
17349 2009-03-28 Richard Guenther <rguenther@suse.de>
17351 PR tree-optimization/38513
17352 * tree-ssa-pre.c (eliminate): Remove redundant stores.
17353 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
17354 EXC_PTR_EXPR and FILTER_EXPR.
17355 (get_ref_from_reference_ops): Likewise.
17357 2009-03-28 Richard Guenther <rguenther@suse.de>
17359 PR tree-optimization/38968
17360 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
17361 Use FLOOR_MOD_EXPR to compute misalignment.
17363 2009-03-28 Richard Guenther <rguenther@suse.de>
17365 PR tree-optimization/37795
17366 * tree.h (combine_comparisons): Declare.
17367 * fold-const.c (combine_comparisons): Export.
17368 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
17370 (ifcombine_iforif): Use combine_comparisons.
17372 2009-03-28 Jan Hubicka <jh@suse.cz>
17374 * tree-eh.c (inlinable_call_p): New function.
17375 (make_eh_edges): Use it.
17376 (verify_eh_edges): Use it.
17377 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
17378 * except.c (reachable_next_level): Add inlinable_function argument
17379 (sjlj_find_directly_reachable_regions): Update.
17380 (add_reachable_handler): Do not set saw_any_handlers.
17381 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
17382 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
17383 Add new inlinable call parameter.
17384 (can_throw_internal, can_throw_external): Update.
17385 * except.h (can_throw_internal_1, can_throw_external_1,
17386 foreach_reachable_handler): Update declaration.
17388 2009-03-28 Joseph Myers <joseph@codesourcery.com>
17390 * config/arm/t-arm-coff, config/h8300/coff.h,
17391 config/i386/i386-aout.h, config/i386/i386-coff.h,
17392 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
17393 config/pdp11/2bsd.h, config/rs6000/aix41.h,
17394 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
17395 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
17396 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
17397 sys-types.h: Remove.
17398 * Makefile.in: Remove protoize and fixproto support and references
17400 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
17401 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
17403 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
17404 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
17405 unprotoize$(exeext).
17406 (rest.encap): Don't depend on $(STMP_FIXPROTO)
17407 (.PHONY): Don't depend on proto.
17408 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
17409 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
17410 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
17411 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
17412 build/gen-protos.o, build/scan.o, xsys-protos.h,
17413 build/fix-header$(build_exeext), build/fix-header.o,
17414 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
17415 stmp-install-fixproto): Remove.
17416 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
17417 SYSCALLS.c or fixproto files.
17418 (install-common): Don't install protoize.
17419 (install-headers-tar, install-headers-cpio, install-headers-cp):
17420 Don't depend on $(STMP_FIXPROTO).
17421 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
17422 install fixproto files or write out fixproto settings.
17423 (uninstall): Don't uninstall protoize.
17424 * config.gcc (use_fixproto): Remove.
17425 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
17426 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
17427 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
17428 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
17429 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
17430 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
17431 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
17432 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
17433 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
17434 * config/t-vxworks (STMP_FIXPROTO): Remove.
17435 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
17436 STMP_FIXPROTO): Remove.
17437 * config.in, configure: Regenerate.
17438 * crtstuff.c (gid_t, uid_t): Don't undefine.
17439 * doc/install.texi: Change m68k-coff to m68k-elf in example.
17440 (arm-*-coff, arm-*-aout: Remove target entries.
17441 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
17442 Remove mention of AIX 4.1.
17443 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
17444 * doc/invoke.texi (Running Protoize): Remove.
17445 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
17446 (Protoize Caveats): Remove.
17447 * tsystem.h: Update comments on headers assumed to exist.
17449 2009-03-27 Vladimir Makarov <vmakarov@redhat.com>
17451 * genautomata.c: Add a new year to the copyright. Add a new
17453 (struct insn_reserv_decl): Add comments for member bypass_list.
17454 (find_bypass): Remove.
17455 (insert_bypass): New.
17456 (process_decls): Use insert_bypass.
17457 (output_internal_insn_latency_func): Output all bypasses with the
17458 same input insn in one switch case.
17460 * rtl.def (define_bypass): Describe bypass choice.
17461 * doc/md.texi (define_bypass): Ditto.
17463 2009-03-27 Richard Guenther <rguenther@suse.de>
17465 * gimplify.c (mark_addressable): Export.
17466 * tree-flow.h (mark_addressable): Declare.
17467 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
17468 * tree-ssa.c (verify_phi_args): Verify that address taken
17469 variables have TREE_ADDRESSABLE set.
17471 2009-03-27 Richard Guenther <rguenther@suse.de>
17473 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
17474 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
17475 Do not mark decls TREE_ADDRESSABLE.
17476 (build_fold_addr_expr): Adjust.
17477 (fold_addr_expr): Remove.
17478 (fold_unary): Use build_fold_addr_expr.
17479 (fold_comparison): Likewise.
17480 (split_address_to_core_and_offset): Likewise.
17481 * coverage.c (tree_coverage_counter_addr): Mark the array decl
17483 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
17484 (gimplify_modify_expr_to_memcpy): Mark source and destination
17486 * omp-low.c (create_omp_child_function): Mark the object decl
17488 (lower_rec_input_clauses): Mark the var we take the address of
17490 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
17492 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
17494 PR middle-end/39315
17495 * cfgexpand.c (expand_one_stack_var_at): Change alignment
17496 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
17498 2009-03-27 Richard Guenther <rguenther@suse.de>
17500 PR tree-optimization/39120
17501 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
17503 (handle_lhs_call): Process return constraints. Add escape
17504 constraints if necessary.
17505 (handle_const_call): Fill out return constraints. Make nested
17506 case more precise. Avoid consttmp if possible.
17507 (handle_pure_call): Fill out return constraints. Avoid
17508 callused if possible.
17509 (find_func_aliases): Simplify call handling.
17511 2009-03-27 Richard Guenther <rguenther@suse.de>
17513 PR tree-optimization/39120
17514 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
17515 as a representative.
17516 (solve_graph): Do propagate CALLUSED.
17517 (handle_pure_call): Use a scalar constraint from CALLUSED for
17519 (find_what_p_points_to): CALLUSED shall not appear in poins-to
17522 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
17525 * c-common.c (handle_aligned_attribute): Properly check alignment
17526 overflow. Use (1U << i) instead of (1 << i).
17528 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
17530 * expr.h (get_mem_align_offset): Updated.
17532 * tree.h (tree_decl_common): Change align to "unsigned int" and
17533 move it before pointer_alias_set.
17535 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
17536 Jakub Jelinek <jakub@redhat.com>
17539 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
17540 gr_register_operand with gr_reg_or_0_operand.
17541 (cmpxchg_rel_di): Likewise.
17542 (sync_lock_test_and_set<mode>): Likewise.
17544 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
17546 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
17547 (true_regnum): Likewise.
17549 * rtlanal.c (subreg_info): Moved to ...
17550 * rtl.h (subreg_info): Here. New.
17551 (subreg_get_info): New.
17553 * rtlanal.c (subreg_get_info): Make it extern.
17555 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
17558 * config/i386/i386.c (ix86_abi): New.
17559 (override_options): Handle -mabi=.
17560 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
17561 (ix86_call_abi_override): Likewise.
17562 (init_cumulative_args): Likewise.
17563 (function_arg_advance): Likewise.
17564 (function_arg_64): Likewise.
17565 (function_arg): Likewise.
17566 (ix86_pass_by_reference): Likewise.
17567 (ix86_function_value_regno_p): Likewise.
17568 (ix86_build_builtin_va_list_abi): Likewise.
17569 (setup_incoming_varargs_64): Likewise.
17570 (is_va_list_char_pointer): Likewise.
17571 (ix86_init_machine_status): Likewise.
17572 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
17573 (ix86_function_type_abi): Return enum calling_abi. Rewrite
17574 for 64bit. Replace DEFAULT_ABI with ix86_abi.
17575 (ix86_function_abi): Make it static and return enum calling_abi.
17576 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
17578 (ix86_fn_abi_va_list): Updated.
17580 * config/i386/i386.h (ix86_abi): New.
17581 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
17582 (CONDITIONAL_REGISTER_USAGE): Likewise.
17583 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
17584 (machine_function): Likewise.
17586 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
17588 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
17589 (STACK_BOUNDARY): Likewise.
17590 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
17592 * config/i386/i386.opt (mabi=): New.
17594 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
17595 return enum calling_abi.
17596 (ix86_function_type_abi): Likewise.
17597 (ix86_function_abi): Removed.
17599 * doc/invoke.texi: Document -mabi= option for x86.
17601 2009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17603 * builtins.c (real_dconstp): Delete.
17604 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
17606 2009-03-27 Dodji Seketeli <dodji@redhat.com>
17607 Jakub Jelinek <jakub@redhat.com>
17610 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
17611 (gen_subprogram_die): When a function is explicit, generate the
17612 DW_AT_explicit attribute.
17613 * langhooks.h (struct lang_hooks_for_decls): Add
17614 function_decl_explicit_p langhook.
17615 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
17616 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
17618 2009-03-27 Jakub Jelinek <jakub@redhat.com>
17620 * builtins.c (fold_builtin_memory_op): Optimize memmove
17621 into memcpy if we can prove source and destination don't overlap.
17623 * tree-inline.c: Include gt-tree-inline.h.
17624 (clone_fn_id_num): New variable.
17625 (clone_function_name): New function.
17626 (tree_function_versioning): Use it.
17627 * Makefile.in (GTFILES): Add tree-inline.c.
17629 2009-03-27 Mark Mitchell <mark@codesourcery.com>
17631 * BASE-VER: Change to 4.5.0.
17633 2009-03-27 Xinliang David Li <davidxl@google.com>
17635 PR tree-optimization/39557
17636 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
17638 2009-03-27 Xinliang David Li <davidxl@google.com>
17640 PR tree-optimization/39548
17641 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
17644 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
17646 * c-common.c (pointer_int_sum): Use %wd on return from
17649 2009-03-27 H.J. Lu <hongjiu.lu@intel.com>
17651 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
17652 on return from tree_low_cst.
17654 2009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
17657 * ginclude/stdarg.h (va_copy): Define also for
17658 __GXX_EXPERIMENTAL_CXX0X__.
17660 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17663 * builtins.h (c_strlen): Do not warn here.
17664 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
17665 * c-common.c (pointer_int_sum): Take an explicit location.
17666 Warn about offsets out of bounds.
17667 * c-common.h (pointer_int_sum): Adjust declaration.
17669 2009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17671 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
17674 2009-03-26 Jakub Jelinek <jakub@redhat.com>
17677 * opts.c (warn_if_disallowed_function_p): Don't assume
17678 get_callee_fndecl must return non-NULL.
17680 2009-03-26 Vladimir Makarov <vmakarov@redhat.com>
17682 PR rtl-optimization/39522
17683 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
17684 when reg_reloaded_valid is set.
17686 2009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17688 * config/spu/divv2df3.c: New file.
17689 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
17690 (DPBIT_FUNCS): Filter out _div_df.
17692 2009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
17694 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
17695 a jump insn, count that jump in the distance to the loop start.
17697 2009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
17700 * config/sh/sh.c (calc_live_regs): Fix condition for global
17701 registers except PIC_OFFSET_TABLE_REGNUM.
17703 2009-03-25 Kai Tietz <kai.tietz@onevision.com>
17706 * doc/invoke.texi (-mconsole): New.
17708 (-mno-cygwin): New.
17710 (-mnop-fun-dllimport): New.
17714 (sub section "i386 and x86-64 Windows Options"): New.
17716 2009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
17718 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
17719 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
17721 2009-03-25 Richard Guenther <rguenther@suse.de>
17723 PR middle-end/39497
17724 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
17727 2009-03-25 Andrey Belevantsev <abel@ispras.ru>
17729 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
17730 neither of haifa/selective schedulers are working.
17732 2009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17734 * doc/invoke.texi (Debugging Options): Fix description of
17735 -fno-merge-debug-strings.
17737 2009-03-24 Hans-Peter Nilsson <hp@axis.com>
17739 * config/cris/libgcc.ver: New version-script.
17740 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
17742 * configure.ac <GAS features, nop mnemonic>: Add pattern
17743 crisv32-*-* for "nop".
17744 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
17745 * configure: Regenerate.
17747 2009-03-24 Ira Rosen <irar@il.ibm.com>
17749 PR tree-optimization/39529
17750 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
17751 mark_sym_for_renaming for the tag copied to the new vector
17754 2009-03-24 Arthur Loiret <aloiret@debian.org>
17756 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
17757 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
17758 EXTRA_SPEC_FUNCTIONS.
17759 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
17760 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
17761 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
17762 -march and -mtune options.
17764 2009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
17766 * config/m68k/t-rtems: Add m5329 multilib.
17768 2009-03-24 Dodji Seketeli <dodji@redhat.com>
17769 Jakub Jelinek <jakub@redhat.com>
17772 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
17775 2009-03-23 Jakub Jelinek <jakub@redhat.com>
17778 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
17779 instead of c_parser_expression_conv, if original_code isn't one of the
17780 4 allowed comparison codes, fail.
17782 2009-03-23 Richard Guenther <rguenther@suse.de>
17784 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
17785 * tree.h (struct tree_type): Likewise.
17786 * reload.h (struct insn_chain): Likewise.
17787 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
17788 * function.h (struct function): Likewise.
17789 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
17791 2009-03-23 Jakub Jelinek <jakub@redhat.com>
17793 PR tree-optimization/39516
17794 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
17796 2009-03-23 Bingfeng Mei <bmei@broadcom.com>
17798 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
17799 should be set true if BITS_PER_WORD of target is bigger than 32
17801 2009-03-22 Hans-Peter Nilsson <hp@axis.com>
17803 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
17804 Translate -B-options to -rpath-link. Correct existing
17805 rpath-link and conditionalize on !nostdlib.
17807 2009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17809 * doc/extend.texi (Function Attributes, Variable Attributes):
17811 * doc/invoke.texi (Debugging Options, Optimize Options)
17812 (i386 and x86-64 Options, MCore Options): Likewise.
17814 2009-03-20 Jakub Jelinek <jakub@redhat.com>
17817 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
17818 it for block local namespace aliases.
17819 (gen_decl_die): Pass context_die to gen_namespace_die.
17821 2009-03-19 Jakub Jelinek <jakub@redhat.com>
17824 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
17825 minimum or maximum value.
17827 2009-03-19 Alexandre Oliva <aoliva@redhat.com>
17829 * reginfo.c (globalize_reg): Recompute derived reg sets.
17831 2009-03-19 Ozkan Sezer <sezeroz@gmail.com>
17834 * libgcc2.c (mprotect): Do not use signed arguments for
17835 VirtualProtect, use DWORD arguments. Also fix the 'may
17836 be used uninitialized' warning for the np variable.
17838 2009-03-19 Jakub Jelinek <jakub@redhat.com>
17841 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
17842 functions using regparm calling conventions when not optimizing.
17843 (ix86_function_sseregparm): Similarly for sseregparm calling
17846 2009-03-19 Li Feng <nemokingdom@gmail.com>
17848 PR middle-end/39500
17849 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
17850 dependence if the first conflict is after niter iterations.
17852 2009-03-19 Hans-Peter Nilsson <hp@axis.com>
17854 PR middle-end/38609
17855 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
17856 functions with dynamic stack-pointer adjustments.
17858 2009-03-19 Ben Elliston <bje@au.ibm.com>
17860 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
17861 option; change to -msdata=data.
17863 2009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17865 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
17868 2009-03-18 Eric Botcazou <ebotcazou@adacore.com>
17871 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
17873 2009-03-18 Sandra Loosemore <sandra@codesourcery.com>
17875 * doc/invoke.texi (Code Gen Options): Expand discussion of
17878 2009-03-18 Jakub Jelinek <jakub@redhat.com>
17880 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
17881 * matrix-reorg.c (struct matrix_info): Likewise.
17882 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
17883 * rtl.h (struct mem_attrs): Likewise.
17884 * df.h (struct df): Likewise.
17885 * tree-data-ref.h (struct data_dependence_relation): Likewise.
17886 * ira-int.h (struct ira_allocno): Likewise.
17887 * df-scan.c (struct df_collection_rec): Likewise.
17888 * ira.c (struct equivalence): Likewise.
17889 * function.c (struct temp_slot): Likewise.
17890 * cfgloop.h (struct loop): Likewise.
17893 * function.c (use_register_for_decl): When not optimizing, disregard
17894 register keyword for variables with types containing methods.
17896 2009-03-18 Sebastian Pop <sebastian.pop@amd.com>
17898 PR middle-end/39447
17899 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
17900 (is_simple_operand): Call contains_component_ref_p before calling data
17901 reference analysis that would fail on COMPONENT_REFs.
17903 * tree-vrp.c (search_for_addr_array): Fix formatting.
17905 2009-03-18 Richard Guenther <rguenther@suse.de>
17907 * tree-vect-transform.c (vect_loop_versioning): Fold the
17908 generated comparisons.
17909 * tree-vectorizer.c (set_prologue_iterations): Likewise.
17910 (slpeel_tree_peel_loop_to_edge): Likewise.
17912 2009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
17914 PR middle-end/37805
17915 * opts.c (print_specific_help): In addition to `undocumented',
17916 accept `separate' and `joined' flags if passed alone. Describe
17917 output by the first matched one of those.
17918 (common_handle_option): Skip over empty strings.
17919 * gcc.c (display_help): Fix help string for `--help='.
17920 * doc/invoke.texi (Option Summary, Overall Options): With
17921 `--help=', classes and qualifiers can both be repeated, but
17922 only the latter can be negated. One should not pass only
17923 negated qualifiers. Fix markup and examples.
17926 2008-10-14 Jakub Jelinek <jakub@redhat.com>
17927 PR middle-end/37805
17928 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
17929 and -fhelp=separate.
17931 2009-03-17 Jing Yu <jingyu@google.com>
17933 PR middle-end/39378
17934 * function.h (struct rtl_data): Move is_thunk from here...
17935 (struct function): ...to here.
17936 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
17937 * varasm.c (assemble_start_function): Change is_thunk from crtl to
17939 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
17941 (alpha_does_function_need_gp, alpha_start_function): Likewise.
17942 (alpha_output_function_end_prologue): Likewise.
17943 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
17944 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
17945 (rs6000_output_function_epilogue): Likewise.
17946 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
17948 2009-03-17 Uros Bizjak <ubizjak@gmail.com>
17951 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
17952 from different units in a single alternative.
17953 (*truncdfsf_i387): Ditto.
17954 (*truncxfsf2_mixed): Ditto.
17955 (*truncxfdf2_mixed): Ditto.
17957 2009-03-17 Jakub Jelinek <jakub@redhat.com>
17959 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
17960 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
17963 * tree-ssa-live.c (remove_unused_locals): Don't remove local
17964 unused non-artificial variables when not optimizing.
17967 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
17968 DW_TAG_imported_module even if decl is IMPORTED_DECL with
17969 NAMESPACE_DECL in its DECL_INITIAL.
17971 PR middle-end/39443
17972 * optabs.c (set_user_assembler_libfunc): New function.
17973 * expr.h (set_user_assembler_libfunc): New prototype.
17974 * c-common.c: Include libfuncs.h.
17975 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
17976 for memcmp, memset, memcpy, memmove and abort.
17977 * Makefile.in (c-common.o): Depend on libfuncs.h.
17980 * dwarf2out.c (gen_inlined_enumeration_type_die,
17981 gen_inlined_structure_type_die, gen_inlined_union_type_die,
17982 gen_tagged_type_instantiation_die): Removed.
17983 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
17986 2009-03-17 Janis Johnson <janis187@us.ibm.com>
17989 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
17991 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
17992 (check-parallel-%): Ditto.
17993 (check-consistency): Ditto.
17995 2009-03-17 Kai Tietz <kai.tietz@onevision.com>
17997 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
17998 local variable rhs by NULL_TREE.
18000 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
18003 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
18005 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
18008 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
18010 2009-03-17 H.J. Lu <hongjiu.lu@intel.com>
18013 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
18014 for ms->sysv ABI calls only in 64bit mode.
18016 * config/i386/i386.md (untyped_call): Support 32bit.
18018 2009-03-16 H.J. Lu <hongjiu.lu@intel.com>
18020 * doc/extend.texi: Replace x86_65 with x86_64.
18022 2009-03-16 Jakub Jelinek <jakub@redhat.com>
18024 PR tree-optimization/39455
18025 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
18026 mismatches for POINTER_TYPE_P (type).
18027 (number_of_iterations_le): Likewise.
18029 2009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
18031 * config/picochip/picochip.c: Removed profiling support.
18032 * config/picochip/picochip.md: Removed profiling instruction.
18033 * config/picochip/picochip.h: Removed profiling builtin.
18035 2009-03-16 Joseph Myers <joseph@codesourcery.com>
18037 * doc/install.texi (--with-host-libstdcxx): Document.
18039 2009-03-14 Anatoly Sokolov <aesok@post.ru>
18042 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
18043 generate a warning if the function name does not begin with
18044 "__vector" and the function has either the 'signal' or 'interrupt'
18045 attribute, from here to ...
18046 (avr_declare_function_name): ...here. New function.
18047 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
18048 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
18050 2009-03-14 Jakub Jelinek <jakub@redhat.com>
18053 * cse.c (fold_rtx): Don't modify original const_arg1 when
18054 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
18055 separate variable instead.
18056 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
18057 from out of range shift counts.
18058 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
18060 2009-03-13 Catherine Moore <clm@codesourcery.com>
18062 * config/i386/x-mingw32 (host-mingw32.o): Replace
18063 diagnostic.h with $(DIAGNOSTIC_H).
18065 2009-03-12 Jakub Jelinek <jakub@redhat.com>
18068 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
18070 * config/i386/sync.md (sync_compare_and_swap<mode>,
18071 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
18072 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
18074 (sync_double_compare_and_swapdi_pic,
18075 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
18076 cmpxchg8b_pic_memory_operand instead of just memory_operand.
18078 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
18081 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
18083 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
18086 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
18087 (avx_addsubv4df3): Likewise.
18088 (*avx_addsubv4sf3): Likewise.
18089 (sse3_addsubv4sf3): Likewise.
18091 2009-03-12 H.J. Lu <hongjiu.lu@intel.com>
18094 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
18096 2009-03-12 Vladimir Makarov <vmakarov@redhat.com>
18099 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
18100 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
18101 registers for allocnos created from user-defined variables.
18103 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18106 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
18107 of non-integer mode as well.
18109 2009-03-11 Adam Nemet <anemet@caviumnetworks.com>
18111 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
18112 for functions for which the parameter types are unknown.
18114 2009-03-11 Jakub Jelinek <jakub@redhat.com>
18117 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
18118 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
18119 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
18120 * config/i386/i386.c (ix86_local_alignment): For
18121 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
18122 long long variables on the stack to avoid dynamic realignment.
18123 Allow the first argument to be a decl rather than type.
18124 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
18126 2009-03-11 Nick Clifton <nickc@redhat.com>
18129 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
18131 Add description to mno-lsim option.
18132 * config/mcore/mcore.h: Remove comment about deprecated m4align
18134 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
18135 * doc/invoke.texi: Add description of mno-lsim and
18136 mstack-increment options.
18138 * config/fr30/fr30.opt: Document the -mno-lsim option.
18139 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
18140 and -mno-lsim options.
18142 2009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18144 * fold-const.c (fold_comparison): Only call fold_inf_compare
18145 if the mode supports infinities.
18147 2009-03-11 Jason Merrill <jason@redhat.com>
18150 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
18151 end already did. Notice GIMPLE_CALL modifications of the result.
18152 Don't copy debug information from an ignored decl or a decl from
18155 2009-03-10 Richard Guenther <rguenther@suse.de>
18156 Nathan Froyd <froydnj@codesourcery.com>
18158 PR middle-end/37850
18159 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
18160 (__divMODE3): Likewise.
18162 2009-03-09 Jakub Jelinek <jakub@redhat.com>
18164 PR tree-optimization/39394
18165 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
18166 DECL_SIZE_UNIT of variable length FIELD_DECLs.
18168 2009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18170 * recog.c (verfiy_changes): Disallow renaming of hard regs in
18171 inline asms for register asm ("") declarations.
18173 2009-03-09 Eric Botcazou <ebotcazou@adacore.com>
18175 * fold-const.c (fold_unary): Fix comment.
18177 2009-03-07 Jan Hubicka <jh@suse.cz>
18180 * tree-inline.c (setup_one_parameter): Do replacement of const
18181 argument by constant in SSA form.
18183 2009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18185 PR middle-end/38028
18186 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
18187 determine alignment passed to assign_stack_local.
18188 (assign_parms_unsplit_complex): Likewise.
18189 * except.c (sjlj_build_landing_pads): Likewise.
18191 2009-03-06 Jakub Jelinek <jakub@redhat.com>
18193 PR middle-end/39360
18194 * tree-flow.h (add_referenced_var): Return bool instead of void.
18195 * tree-dfa.c (add_referenced_var): Return result of
18196 referenced_var_check_and_insert call.
18197 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
18198 of referenced_var_check_and_insert.
18201 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
18202 (gen_variable_die): Emit DW_AT_location on abstract static variable's
18203 DIE, don't emit it if abstract origin already has it.
18204 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
18205 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
18207 2009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
18209 * genpreds.c (needs_variable): Fix parentheses at variable name
18211 (write_tm_constrs_h): Indent generated code.
18213 2009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18215 * doc/extend.texi (Function Attributes): Add documentation
18216 for isr attributes.
18218 2009-03-06 Jakub Jelinek <jakub@redhat.com>
18221 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
18222 take locus from its DECL_SOURCE_LOCATION instead of input_location.
18224 2009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
18226 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
18229 2009-03-05 Jakub Jelinek <jakub@redhat.com>
18232 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
18233 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
18235 2009-03-05 Uros Bizjak <ubizjak@gmail.com>
18237 * config/i386/i386.md (R8_REG, R9_REG): New constants.
18238 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
18239 constants instead of magic numbers.
18240 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
18242 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
18243 (x86_64_ms_abi_int_parameter_registers): Ditto.
18244 (x86_64_int_return_registers): Ditto.
18245 (ix86_maybe_switch_abi): Ditto.
18246 (ix86_expand_call): Ditto for clobbered_registers array.
18247 (ix86_hard_regno_mode_ok): Ditto.
18248 (x86_extended_QIreg_mentioned_p): Ditto.
18250 2009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
18252 PR tree-optimization/39349
18253 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
18255 * combine.c (gen_lowpart_for_combine): Use omode when generating
18258 2009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
18260 PR rtl-optimization/39235
18261 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
18263 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
18265 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
18267 2009-03-04 Richard Guenther <rguenther@suse.de>
18269 PR tree-optimization/39362
18270 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
18271 that occur in abnormal PHIs should be varying.
18273 2009-03-04 Zdenek Dvorak <ook@ucw.cz>
18275 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
18277 (simple_iv): Take loop as an argument instead of statement.
18278 * tree-scalar-evolution.h (simple_iv): Declaration changed.
18279 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
18281 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
18283 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
18284 * matrix-reorg.c (analyze_transpose): Ditto.
18285 * tree-data-ref.c (dr_analyze_innermost): Ditto.
18286 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
18287 * tree-predcom.c (ref_at_iteration): Ditto.
18288 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
18290 2009-03-04 Richard Guenther <rguenther@suse.de>
18292 PR tree-optimization/39358
18293 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
18294 escaped_id and callused_id.
18295 (solve_graph): Likewise.
18297 2009-03-04 Richard Guenther <rguenther@suse.de>
18299 PR tree-optimization/39339
18300 * tree-sra.c (try_instantiate_multiple_fields): Make it
18301 no longer ICE on the above.
18303 2009-03-03 Joseph Myers <joseph@codesourcery.com>
18305 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
18306 that fits within Pmode.
18308 2009-03-03 Steve Ellcey <sje@cup.hp.com>
18310 PR middle-end/10109
18311 * tm.texi (LIBCALL_VALUE): Update description.
18313 2009-03-03 Steve Ellcey <sje@cup.hp.com>
18315 PR middle-end/34443
18316 * doc/extend.texi (section): Update description.
18318 2009-03-03 H.J. Lu <hongjiu.lu@intel.com>
18320 PR middle-end/39345
18321 * tree-inline.c (remapped_type): New.
18322 (can_be_nonlocal): Call remapped_type instead of remap_type.
18324 2009-03-03 Jakub Jelinek <jakub@redhat.com>
18327 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
18328 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
18330 2009-03-03 Richard Guenther <rguenther@suse.de>
18332 PR middle-end/39272
18333 * tree.c (tree_nonartificial_location): New function.
18334 * tree.h (tree_nonartificial_location): Declare.
18335 * builtins.c (expand_builtin_memory_chk): Provide location
18336 of the call location for artificial function pieces.
18337 (maybe_emit_chk_warning): Likewise.
18338 (maybe_emit_sprintf_chk_warning): Likewise.
18339 (maybe_emit_free_warning): Likewise.
18340 * expr.c (expand_expr_real_1): Likewise.
18342 2009-03-03 Jakub Jelinek <jakub@redhat.com>
18344 PR tree-optimization/39343
18345 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
18346 COMPONENT_REF t has ARRAY_TYPE.
18348 2009-03-02 Sebastian Pop <sebastian.pop@amd.com>
18350 PR middle-end/39335
18351 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
18352 when the type precision of the induction variable should be
18353 larger than the type precision of nit.
18354 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
18355 * graphite.c (graphite_loop_normal_form): Same.
18356 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
18358 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
18360 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
18361 (*call_1_rex64_ms_sysv): Use named constants instead of magic
18362 numbers to describe clobbered registers.
18363 (*call_value_0_rex64_ms_sysv): Ditto.
18364 * config/i386/mmx.md (mmx_emms): Ditto.
18365 (mmx_femms): Ditto.
18367 2009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
18369 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
18372 2009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18374 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
18375 (spu_section_type_flags): New function.
18377 2009-03-02 Uros Bizjak <ubizjak@gmail.com>
18379 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
18380 reg_class_contents of FLOAT_REGS into a temporary.
18382 2009-03-02 Richard Guenther <rguenther@suse.de>
18383 Ira Rosen <irar@il.ibm.com>
18385 PR tree-optimization/39318
18386 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
18387 information to the vectorized statement.
18389 2009-03-01 Uros Bizjak <ubizjak@gmail.com>
18391 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
18392 variable. Use defined names instead of magic constants for REX SSE
18395 2009-03-01 Richard Guenther <rguenther@suse.de>
18397 PR tree-optimization/39331
18398 * omp-low.c (lower_send_shared_vars): Do not receive new
18399 values for the reference of DECL_BY_REFERENCE parms or results.
18401 2009-03-01 Jan Hubicka <jh@suse.cz>
18404 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
18405 BLOCK_NONLOCALIZED_VAR): New macros.
18406 (tree_block): Add nonlocalized_vars.
18407 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
18408 gen_decl_die): Add origin argument. Allow generation of die with
18409 origin at hand only.
18410 (gen_member_die, gen_type_die_with_usage, force_decl_die,
18411 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
18413 (gen_block_die): Fix checking for unused blocks.
18414 (process_scope_var): Break out from .... ; work with origins only.
18415 (decls_for_scope) ... here; process nonlocalized list.
18416 (dwarf2out_ignore_block): Look for nonlocalized vars.
18417 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
18419 (dump_scope_block): Dump them.
18420 * tree-inline.c (remap_decls): Handle nonlocalized vars.
18421 (remap_block): Likewise.
18422 (can_be_nonlocal): New predicate.
18423 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
18425 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18427 * configure: Regenerate.
18429 2009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
18431 * optc-gen.awk: No need to duplicate option flags twice.
18432 Reuse help texts for duplicate options which do not have any.
18434 * gcc.c (display_help): Document --version.
18436 * gcc.c (main): If print_help_list and verbose_flag, ensure
18437 driver output comes before subprocess output.
18439 * optc-gen.awk: Assign all remaining fields to help string,
18440 space-separated, for multi-line help in *.opt.
18442 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
18443 -Wno-pedantic-ms-format is for MinGW targets only.
18445 * doc/options.texi (Option file format): Fix bad indentation,
18446 restoring dropped sentence.
18448 2009-02-28 Jan Hubicka <jh@suse.cz>
18450 * tree-inline.c (tree_function_versioning): Output debug info.
18452 2009-02-28 Jan Hubicka <jh@suse.cz>
18455 * tree-inline.c (setup_one_parameter): Do not copy propagate
18456 arguments when not optimizing.
18458 2009-02-28 H.J. Lu <hongjiu.lu@intel.com>
18461 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
18462 (avx_addsubv4df3): Likewise.
18463 (*avx_addsubv4sf3): Likewise.
18464 (sse3_addsubv4sf3): Likewise.
18465 (*avx_addsubv2df3): Likewise.
18466 (sse3_addsubv2df3): Likewise.
18467 (avx_unpckhps256): Correct item selectors.
18468 (avx_unpcklps256): Likewise.
18469 (avx_unpckhpd256): Likewise.
18470 (avx_unpcklpd256): Likewise.
18472 2009-02-28 Jan Hubicka <jh@suse.cz>
18474 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
18476 (copy_arguments_for_versioning): If var is declared don't declare it.
18477 (tree_function_versioning): First setup substitutions and then copy
18480 2009-02-27 Jan Hubicka <jh@suse.cz>
18483 * cgraph.h (varpool_output_debug_info): Remove.
18484 * cgraphunit.c (varpool_output_debug_info): Remove.
18485 * dwarf2out.c (deferred_locations_struct): New struct
18486 (deferred_locations): New type.
18487 (deferred_locations_list): New static var.
18488 (deffer_location): New function.
18489 (gen_variable_die): Use it.
18490 (decls_for_scope): Output info on local static vars.
18491 (dwarf2out_finish): Process deferred locations.
18492 * varpool.c (varpool_output_debug_info): Remove.
18494 2009-02-27 Jan Hubicka <jh@suse.cz>
18497 * tree.h (TREE_PROTECTED): Fix comment.
18498 (BLOCK_HANDLER_BLOCK): Remove.
18499 (struct tree_block): Remove handler_block add body_block.
18500 (inlined_function_outer_scope_p): New.
18501 (is_body_block): Remove.
18502 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
18503 * dwarf2out.c (is_inlined_entry_point): Remove.
18504 (add_high_low_attributes): Use inlined_function_outer_scope_p.
18505 (gen_block_die): Use is_inlined_entry_point check. Remove body block
18507 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
18508 * gimplify.c (gimplify_expr): Gimplify body blocks.
18509 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
18510 block with multiple subblocks.
18511 (dump_scope_block): Prettier output; dump more flags and info.
18512 (dump_scope_blocks): New.
18513 (remove_unused_locals): Use dump_scope_blocks.
18514 * tree-flow.h (dump_scope_blocks): Declare.
18515 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
18516 * stmt.c (is_body_block): Remove.
18517 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
18518 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
18520 2009-02-27 Sebastian Pop <sebastian.pop@amd.com>
18522 PR middle-end/39308
18523 * graphite.c (graphite_loop_normal_form): Do not call
18524 number_of_iterations_exit from a gcc_assert.
18526 2009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18528 * config/s390/s390.c (s390_swap_cmp): Look for conditional
18529 jumps if COND is NULL.
18530 (find_cond_jump): New function.
18531 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
18532 * config/s390/s390.md: Remove z10_cobra attribute value.
18534 2009-02-26 Uros Bizjak <ubizjak@gmail.com>
18536 * config/alpha/alpha.h (alpha_expand_mov): Return false if
18537 force_const_mem returns NULL_RTX.
18539 2009-02-26 Jan Hubicka <jh@suse.cz>
18542 * cgraph.h (varpool_output_debug_info): Remove.
18543 * cgraphunit.c (varpool_output_debug_info): Remove.
18544 * dwarf2out.c (deferred_locations_struct): New struct
18545 (deferred_locations): New type.
18546 (deferred_locations_list): New static var.
18547 (deffer_location): New function.
18548 (gen_variable_die): Use it.
18549 (decls_for_scope): Output info on local static vars.
18550 (dwarf2out_finish): Process deferred locations.
18551 * varpool.c (varpool_output_debug_info): Remove.
18553 2009-02-25 H.J. Lu <hongjiu.lu@intel.com>
18555 PR rtl-optimization/39241
18556 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
18557 to subreg_offset_representable_p.
18559 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
18561 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
18562 execute function prototype. Get f and nregs from max_reg_num
18563 and get_insns. Remove the first backward pass as it's dead,
18564 guard the forward pass by flag_expensive_optimizations.
18565 (rest_of_handle_regmove): Delete.
18566 (pass_regmove): Replace it with regmove_optimize.
18568 2009-02-25 Martin Jambor <mjambor@suse.cz>
18570 PR tree-optimization/39259
18571 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
18572 calls_alloca function flags.
18573 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
18574 calls are detected.
18576 2009-02-25 Paolo Bonzini <bonzini@gnu.org>
18578 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
18579 flags_set_1_rtx, flags_set_1_set): Delete.
18580 (regmove_optimize): Do not call mark_flags_life_zones.
18582 2009-02-24 Julian Brown <julian@codesourcery.com>
18585 * config/arm/arm.c (require_pic_register): Only set
18586 cfun->machine->pic_reg once per function.
18588 2009-02-24 Sandra Loosemore <sandra@codesourcery.com>
18590 * doc/invoke.texi (Link Options): Document an easier way to pass
18591 options that take arguments to the GNU linker using -Xlinker and -Wl.
18593 2009-02-24 Steve Ellcey <sje@cup.hp.com>
18596 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
18598 2009-02-24 Richard Guenther <rguenther@suse.de>
18601 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
18603 2009-02-24 Richard Guenther <rguenther@suse.de>
18604 Zdenek Dvorak <ook@ucw.cz>
18606 PR tree-optimization/39233
18607 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
18608 from converting them to a generic type.
18610 2009-02-23 Sebastian Pop <sebastian.pop@amd.com>
18612 PR tree-optimization/39260
18613 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
18614 contains a condition with a real type.
18615 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
18617 2009-02-23 Jason Merrill <jason@redhat.com>
18620 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
18621 narrowing_initializer_constant_valid_p.
18622 (narrowing_initializer_constant_valid_p): Don't return
18623 null_pointer_node for adding a pointer to itself.
18625 2009-02-23 Jan Hubicka <jh@suse.cz>
18628 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
18631 2009-02-23 Jan Hubicka <jh@suse.cz>
18633 PR tree-optimization/37709
18634 * tree.c (block_ultimate_origin): Move here from dwarf2out.
18635 * tree.h (block_ultimate_origin): Declare.
18636 * dwarf2out.c (block_ultimate_origin): Move to tree.c
18637 * tree-ssa-live.c (remove_unused_scope_block_p):
18638 Eliminate blocks containig no instructions nor live variables nor
18640 (dump_scope_block): New function.
18641 (remove_unused_locals): Enable removal of dead blocks by default;
18642 enable dumping at TDF_DETAILS.
18644 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
18646 * config/i386/i386.c (classify_argument): Don't allow COImode
18648 (function_arg_advance_32): Don't allow OImode.
18649 (function_arg_32): Likewise.
18650 (function_value_32): Likewise.
18651 (return_in_memory_32): Likewise.
18652 (function_arg_64): Remove OImode comment.
18654 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
18657 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
18658 ix86_expand_vector_set for V4DImode in 64bit mode only.
18659 (ix86_expand_vector_init_one_var): Likewise.
18661 2009-02-21 Sebastian Pop <sebastian.pop@amd.com>
18663 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
18665 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
18668 * loop-iv.c: Revert last change.
18669 * emit-rtl.c: Likewise.
18671 2009-02-21 H.J. Lu <hongjiu.lu@intel.com>
18674 * config/i386/i386.c (type_natural_mode): Remove an extra
18675 space in the warning message.
18676 (function_value_32): Handle 32-byte vector modes.
18677 (return_in_memory_32): Likewise.
18679 2009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
18681 * loop-iv.c (truncate_value): New function.
18682 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
18684 (lowpart_subreg): Move to...
18685 * emit-rtl.c: ...here.
18687 2009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
18689 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
18690 accidental and undocumented change at revision 140860.
18692 2009-02-21 Joseph Myers <joseph@codesourcery.com>
18694 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
18695 take gimple_seq * arguments.
18696 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
18697 types_compatible_p langhook.
18699 2009-02-20 Mark Mitchell <mark@codesourcery.com>
18700 Joseph Myers <joseph@codesourcery.com>
18702 * config/arm/arm.c (arm_builtin_va_list): New function.
18703 (arm_expand_builtin_va_start): Likewise.
18704 (arm_gimplify_va_arg_expr): Likewise.
18705 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
18706 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
18707 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
18708 (va_list_type): New variable.
18709 (arm_mangle_type): Mangle va_list_type appropriately.
18711 2009-02-20 Jakub Jelinek <jakub@redhat.com>
18713 PR middle-end/39157
18714 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
18715 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
18716 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
18717 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
18718 parameter to 1000 for -O1 by default.
18719 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
18721 * loop-invariant.c: Include params.h.
18722 (move_loop_invariants): Don't call move_single_loop_invariants on
18725 2009-02-20 Jaka Mocnik <jaka@xlab.si>
18727 * calls.c (emit_library_call_value_1): Use slot_offset instead of
18728 offset when calculating bounds for indexing stack_usage_map. Fixes
18729 a buffer overflow with certain target setups.
18731 2009-02-20 Jakub Jelinek <jakub@redhat.com>
18734 * calls.c (expand_call): Clear try_tail_call if caller and callee
18735 disagree in promotion of function return value.
18737 2009-02-19 Jakub Jelinek <jakub@redhat.com>
18740 * c-common.c (c_determine_visibility): If visibility changed and
18741 DECL_RTL has been already set, call make_decl_rtl to update symbol
18744 2009-02-19 H.J. Lu <hongjiu.lu@intel.com>
18747 * varasm.c (assemble_variable): Don't check DECL_NAME when
18748 globalizing a variable.
18750 2009-02-19 Joseph Myers <joseph@codesourcery.com>
18753 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
18754 expression before any __builtin_trap call.
18755 * c-typeck.c (build_function_call): Convert and check function
18756 arguments before generating a call to a trap. Evaluate the
18757 function arguments before the trap.
18759 2009-02-19 Uros Bizjak <ubizjak@gmail.com>
18762 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
18763 (UNSPEC_FXAM_MEM): New unspec.
18764 (fxam<mode>2_i387_with_temp): New insn and split pattern.
18765 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
18766 memory using fxam<mode>2_i387_with_temp to remove excess precision.
18768 2009-02-19 Richard Guenther <rguenther@suse.de>
18770 PR tree-optimization/39207
18771 PR tree-optimization/39074
18772 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
18773 storedanything_tree): New.
18774 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
18775 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
18776 (build_succ_graph): Add edges from STOREDANYTHING to all
18778 (init_base_vars): Initialize STOREDANYTHING.
18779 (compute_points_to_sets): Free substitution info after
18780 building the succ graph.
18781 (ipa_pta_execute): Likewise.
18783 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
18785 (do_ds_constraint): Do not add to special var or non-pointer
18787 (type_could_have_pointers): Split out from ...
18788 (could_have_pointers): ... here. For arrays use the element type.
18789 (create_variable_info_for): Initialize may_have_pointers.
18790 (new_var_info): Likewise.
18791 (handle_lhs_call): Make the HEAP variable unknown-sized.
18792 (intra_create_variable_infos): Use a type with pointers for
18793 PARM_NOALIAS, make it unknown-sized.
18795 2009-02-18 H.J. Lu <hongjiu.lu@intel.com>
18798 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
18800 2009-02-18 Jason Merrill <jason@redhat.com>
18803 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
18804 value if DECL_EXTERNAL.
18805 * tree-sra.c (sra_walk_gimple_assign): Likewise.
18806 * target.h (gcc_target::binds_local_p): Clarify "module".
18807 * tree.h (TREE_PUBLIC): Clarify "module".
18809 2009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
18812 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
18813 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
18815 2009-02-17 H.J. Lu <hongjiu.lu@intel.com>
18818 * c.opt (Wabi): Support C and ObjC.
18821 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
18823 * config/i386/i386.c (classify_argument): Warn once about the ABI
18824 change when passing union with long double.
18826 * doc/invoke.texi: Update -Wabi for warning psABI changes.
18828 2009-02-18 Joseph Myers <joseph@codesourcery.com>
18831 * c-parser.c (c_parser_compound_statement): Always enter and leave
18834 2009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18837 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
18839 2009-02-18 Jakub Jelinek <jakub@redhat.com>
18841 PR tree-optimization/36922
18842 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
18843 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
18846 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
18848 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
18851 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
18853 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
18855 2009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
18857 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
18860 2009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
18861 Richard Sandiford <rdsandiford@googlemail.com>
18863 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
18864 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
18865 (loongson_biadd): ...this.
18867 2009-02-17 Richard Guenther <rguenther@suse.de>
18869 PR tree-optimization/39202
18870 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
18871 a var make sure to follow existing collapses.
18873 2009-02-17 Richard Guenther <rguenther@suse.de>
18875 PR middle-end/39214
18876 * langhooks.c (lhd_print_error_function): Check for NULL block.
18878 2009-02-17 Richard Guenther <rguenther@suse.de>
18880 PR tree-optimization/39204
18881 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
18884 2009-02-17 Uros Bizjak <ubizjak@gmail.com>
18886 * config/soft-fp/double.h: Update from glibc CVS.
18888 2009-02-17 Richard Guenther <rguenther@suse.de>
18890 PR tree-optimization/39207
18891 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
18892 strict-aliasing warnings for pointers pointing to NULL.
18894 2009-02-16 Joseph Myers <joseph@codesourcery.com>
18897 * c-parser.c (c_parser_braced_init): Call pop_init_level when
18898 skipping until next close brace.
18900 2009-02-16 H.J. Lu <hongjiu.lu@intel.com>
18903 * config/i386/i386.c (ix86_expand_push): Set memory alignment
18904 to function argument boundary.
18906 2009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
18908 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
18909 in the lea_add. Reload eventually constraints it properly.
18910 * config/picochip/constraints.md: Remove the target constraint
18911 "b", since it is not needed anymore.
18913 2009-02-16 Jakub Jelinek <jakub@redhat.com>
18915 * gthr-dce.h: Uglify function parameter and local variable names.
18916 * gthr-gnat.h: Likewise.
18917 * gthr-mipssde.h: Likewise.
18918 * gthr-nks.h: Likewise.
18919 * gthr-posix95.h: Likewise.
18920 * gthr-posix.h: Likewise.
18921 * gthr-rtems.h: Likewise.
18922 * gthr-single.h: Likewise.
18923 * gthr-solaris.h: Likewise.
18924 * gthr-tpf.h: Likewise.
18925 * gthr-vxworks.h: Likewise.
18926 * gthr-win32.h: Likewise.
18928 2009-02-15 H.J. Lu <hongjiu.lu@intel.com>
18931 * config/i386/i386.md: Restrict the new peephole2 to move
18932 between MMX/SSE registers.
18934 2009-02-15 Richard Guenther <rguenther@suse.de>
18937 2009-02-13 Richard Guenther <rguenther@suse.de>
18939 * configure.ac: Enable LFS.
18940 * configure: Re-generate.
18941 * config.in: Likewise.
18943 2009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
18945 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
18946 spu_srqwbyte, spu_srqwbytebc): Define.
18947 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
18948 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
18949 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
18950 "shrqby_<mode>"): New insn-and-split patterns.
18951 * config/spu/spu.c (expand_builtin_args): Determine and return
18952 number of operands using spu_builtin_description data.
18953 (spu_expand_builtin_1): Use it.
18955 2009-02-13 Steve Ellcey <sje@cup.hp.com>
18958 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
18961 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
18964 * config/i386/i386.c (override_options): Correct warning
18965 messages for -malign-loops, -malign-jumps and -malign-functions.
18967 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
18970 * config/i386/i386.md: Restrict the new peephole2 to move
18971 between the general purpose registers.
18973 2009-02-13 H.J. Lu <hongjiu.lu@intel.com>
18976 * config/i386/i386.c (type_natural_mode): Add a new argument.
18977 Return the original mode and warn ABI change if vector size is 32byte.
18978 (function_arg_advance): Updated.
18979 (function_arg): Likewise.
18980 (ix86_function_value): Likewise.
18981 (ix86_return_in_memory): Likewise.
18982 (ix86_sol10_return_in_memory): Likewise.
18983 (ix86_gimplify_va_arg): Likewise.
18984 (function_arg_32): Don't warn ABX ABI change here.
18985 (function_arg_64): Likewise.
18987 2009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
18989 * loop-iv.c (implies_p): In the final case, test that operands 0
18990 of the two comparisons match.
18992 * config/bfin/bfin.c (find_prev_insn_start): New function.
18993 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
18994 (find_next_insn_start): Move.
18996 2009-02-13 Richard Guenther <rguenther@suse.de>
18998 * configure.ac: Enable LFS.
18999 * configure: Re-generate.
19000 * config.in: Likewise.
19002 2009-02-13 Joseph Myers <joseph@codesourcery.com>
19005 * c-parser.c (c_parser_parms_list_declarator): Discard pending
19006 sizes on syntax error after some arguments have been parsed.
19008 2009-02-12 Jakub Jelinek <jakub@redhat.com>
19010 * doc/invoke.texi (-fira): Remove.
19012 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
19014 * caller-save.c: Replace regclass.c with reginfo.c in comments.
19015 * recog.c: Likewise.
19018 2009-02-12 Uros Bizjak <ubizjak@gmail.com>
19020 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
19021 (umul_ppmm): Likewise.
19022 (count_leading_zeros): Likewise.
19023 (count_trailing_zeros): Likewise.
19024 (UMUL_TIME): Likewise.
19026 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
19028 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
19029 soft-fp/t-softfp to tmake_file.
19031 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
19032 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
19033 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
19034 IA64_BUILTIN_INFQ]: New.
19035 (ia64_init_builtins): Initialize __builtin_infq,
19036 __builtin_fabsq and __builtin_copysignq if not HPUX.
19037 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
19038 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
19040 * config/ia64/lib1funcs.asm (__divtf3): Define only if
19042 (__fixtfti): Likewise.
19043 (__fixunstfti): Likewise.
19044 (__floattitf): Likewise.
19046 * config/ia64/libgcc-glibc.ver: New.
19047 * config/ia64/t-fprules-softfp: Likewise.
19048 * config/ia64/sfp-machine.h: Likewise.
19050 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
19051 (LIBGCC2_TF_CEXT): Likewise.
19052 (TF_SIZE): Likewise.
19053 (TARGET_INIT_LIBFUNCS): Likewise.
19055 * config/ia64/t-glibc (SHLINB_MAPFILES):
19056 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
19058 2009-02-12 H.J. Lu <hongjiu.lu@intel.com>
19060 * config/i386/i386.c (construct_container): Rewrite processing
19061 BLKmode with X86_64_SSE_CLASS.
19063 2009-02-12 Paolo Bonzini <bonzini@gnu.org>
19066 * config/i386/i386.md: Replace simplify_replace_rtx with
19067 replace_rtx in the new peephole2.
19069 2009-02-12 Nathan Sidwell <nathan@codesourcery.com>
19071 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
19072 loop unrolling do not happen at -O2.
19074 2009-02-12 Michael Matz <matz@suse.de>
19076 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
19078 2009-02-12 Jakub Jelinek <jakub@redhat.com>
19080 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
19083 2009-02-12 Ben Elliston <bje@au.ibm.com>
19085 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
19086 patterns when updating the back chain. Missed in the 2009-02-10
19089 2009-02-11 Janis Johnson <janis187@us.ibm.com>
19091 * doc/extend.texi (Decimal Floating Types): Update identifier of
19092 draft TR and list of missing support.
19094 2009-02-11 Jakub Jelinek <jakub@redhat.com>
19096 PR middle-end/39154
19097 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
19098 bit to variable length decl's flags, add it also to its
19099 pointer replacement variable.
19101 2009-02-11 Uros Bizjak <ubizjak@gmail.com>
19102 Jakub Jelinek <jakub@redhat.com>
19105 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
19106 (memory_blockage): New expander.
19107 (*memory_blockage): New insn pattern.
19108 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
19109 instead of general blockage at the end of function prologue when
19110 frame pointer is used to access red zone area. Do not emit blockage
19111 when profiling, it is emitted in generic code.
19112 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
19113 function epilogue when frame pointer is used to access red zone area.
19115 2009-02-11 Paolo Bonzini <bonzini@gnu.org>
19118 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
19119 by arithmetic with memory operands.
19120 * config/i386/predicates.md (commutative_operator): New.
19122 2009-02-10 Janis Johnson <janis187@us.ibm.com>
19124 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
19127 2009-02-10 Eric Botcazou <ebotcazou@adacore.com>
19129 * alias.h (record_alias_subset): Declare.
19130 * alias.c (record_alias_subset): Make global.
19132 2009-02-10 Nick Clifton <nickc@redhat.com>
19134 * tree-parloops.c: Change license to GPLv3.
19135 * ipa-struct-reorg.c: Change license to GPLv3.
19136 * ipa-struct-reorg.h: Change license to GPLv3.
19138 2009-02-10 Steve Ellcey <sje@cup.hp.com>
19141 * c-decl.c (start_struct): Return NULL on error.
19143 2009-02-10 Jakub Jelinek <jakub@redhat.com>
19145 PR middle-end/39124
19146 * cfgloopmanip.c (remove_path): Call remove_bbs after
19147 cancel_loop_tree, not before it.
19150 * function.h (struct function): Add has_local_explicit_reg_vars bit.
19151 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
19152 VAR_DECLs were seen.
19153 * tree-ssa-live.c (remove_unused_locals): Recompute
19154 cfun->has_local_explicit_reg_vars.
19155 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
19156 copies or clearings if cfun->has_local_explicit_reg_vars.
19158 2009-02-10 Uros Bizjak <ubizjak@gmail.com>
19161 * config/i386/i386.c (expand_prologue): Emit blockage at the end
19162 of function prologue when frame pointer is used to access
19165 2009-02-10 Richard Guenther <rguenther@suse.de>
19167 PR middle-end/39127
19168 * gimplify.c (gimple_regimplify_operands): Always look if
19169 we need to create a temporary.
19171 2009-02-10 Richard Guenther <rguenther@suse.de>
19173 PR tree-optimization/39132
19174 * tree-loop-distribution.c (todo): New global var.
19175 (generate_memset_zero): Trigger TODO_rebuild_alias.
19176 (tree_loop_distribution): Return todo.
19178 2009-02-10 H.J. Lu <hongjiu.lu@intel.com>
19181 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
19182 (x86_64_reg_class_name): Removed.
19183 (classify_argument): Return 0 if bytes > 32. Return 0 if the
19184 first one isn't X86_64_SSE_CLASS or any other ones aren't
19185 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
19186 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
19187 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
19188 and 3 X86_64_SSEUP_CLASS.
19189 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
19190 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
19192 2009-02-10 Ben Elliston <bje@au.ibm.com>
19194 * config/rs6000/rs6000.md (allocate_stack): Always use an update
19195 form instruction to update the stack back chain word, even if the
19196 user has disabled the generation of update instructions.
19197 (movdi_<mode>_update_stack): New.
19198 (movsi_update_stack): Likewise.
19199 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
19200 always use an update form instruction to update the stack back
19203 2009-02-09 Sebastian Pop <sebastian.pop@amd.com>
19205 PR middle-end/38953
19206 * graphite.c (if_region_set_false_region): After moving a region in
19207 the false branch of a condition, remove the empty dummy basic block.
19208 (gloog): Remove wrong fix for PR38953.
19210 2009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19212 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
19213 generation due to implicit sign extension.
19215 2009-02-09 Eric Botcazou <ebotcazou@adacore.com>
19217 PR middle-end/38981
19218 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
19219 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
19221 2009-02-09 Richard Guenther <rguenther@suse.de>
19223 PR middle-end/35202
19224 * convert.c (convert_to_real): Disable (float)fn((double)x)
19225 to fnf(x) conversion if errno differences may occur and
19226 -fmath-errno is set.
19228 2009-02-07 Anatoly Sokolov <aesok@post.ru>
19230 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
19231 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
19232 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
19234 2009-02-06 Joseph Myers <joseph@codesourcery.com>
19237 * c-common.c (handle_alias_attribute): Disallow attribute for
19238 anything not a FUNCTION_DECL or VAR_DECL.
19240 2009-02-06 Janis Johnson <janis187@us.ibm.com>
19243 * real.c (do_compare): Special-case compare of zero against
19244 decimal float value.
19246 2009-02-06 Joseph Myers <joseph@codesourcery.com>
19249 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
19250 as indicating flexible array members unless the field itself is
19251 being declarared as the incomplete array.
19253 2009-02-06 Jan Hubicka <jh@suse.cz>
19255 PR tree-optimization/38844
19256 * ipa-inline.c (try_inline): Stop inlining recursion when edge
19257 is already inlined.
19259 2009-02-06 Richard Guenther <rguenther@suse.de>
19261 PR middle-end/38977
19262 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
19263 fork because we may expand it as __gcov_fork.
19265 2009-02-06 Nick Clifton <nickc@redhat.com>
19267 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
19269 2009-02-06 Paolo Bonzini <bonzini@gnu.org>
19271 PR tree-optimization/35659
19272 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
19273 vn_phi_eq): Shortcut if hashcode does not match.
19274 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
19276 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
19277 and avoid iterative_hash_expr.
19278 (FOR_EACH_VALUE_ID_IN_SET): New.
19279 (value_id_compare): Remove.
19280 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
19281 sort expressions by value id.
19283 2009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
19286 * config/sh/predicates.md (general_movsrc_operand): Don't check
19287 the subreg of system registers here.
19289 2009-02-05 Jakub Jelinek <jakub@redhat.com>
19292 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
19293 on the copied decl.
19295 2009-02-05 Paolo Bonzini <bonzini@gnu.org>
19297 PR rtl-optimization/39110
19298 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
19299 addresses, not aligned ones.
19301 2009-02-05 Daniel Berlin <dberlin@dberlin.org>
19302 Richard Guenther <rguenther@suse.de>
19304 PR tree-optimization/39100
19305 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
19306 comment says and add edges.
19308 2009-02-05 Joseph Myers <joseph@codesourcery.com>
19311 * c-common.c (handle_tls_model_attribute): Ignore attribute for
19312 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
19314 2009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
19316 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
19317 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
19318 register_bb_in_sese, new_sese, free_sese): Moved.
19319 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
19320 outermost_loop_in_scop, build_scop_iteration_domain,
19321 expand_scalar_variables_ssa_name, get_vdef_before_scop,
19322 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
19323 Use loop_in_sese_p instead of loop_in_scop_p.
19324 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
19325 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
19326 (scopdet_basic_block_info): Fix bug in scop detection.
19327 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
19328 eq_loop_to_cloog_loop): Remove.
19329 (nb_loops_around_loop_in_scop, nb_loop
19330 ref_nb_loops): Moved here...
19331 * graphite.h (ref_nb_loops): ... from here.
19332 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
19333 (loop_domain_dim, loop_iteration_vector_dim): Remove.
19334 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
19335 * testsuite/gcc.dg/graphite/scop-19.c: New
19337 2009-02-04 Paolo Bonzini <bonzini@gnu.org>
19338 Hans-Peter Nilsson <hp@axis.com>
19340 PR rtl-optimization/37889
19341 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
19342 Move offset handling from PLUS to before the switch. Use new
19343 arguments when considering SYMBOL_REFs too.
19344 (rtx_addr_can_trap_p): Pass dummy offset and size.
19345 (enum may_trap_p_flags): Remove.
19346 (may_trap_p_1): Pass size from MEM_SIZE.
19348 PR rtl-optimization/38921
19349 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
19350 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
19351 * rtlanal.c (may_trap_after_code_motion_p): Delete.
19352 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
19354 2009-02-04 H.J. Lu <hongjiu.lu@intel.com>
19356 AVX Programming Reference (January, 2009)
19357 * config/i386/sse.md (*vpclmulqdq): New.
19359 2009-02-04 Jakub Jelinek <jakub@redhat.com>
19361 PR tree-optimization/38977
19362 PR gcov-profile/38292
19363 * calls.c (special_function_p): Disregard __builtin_ prefix.
19365 2009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
19367 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
19368 non-indexable addresses even before reload.
19370 2009-02-03 Joseph Myers <joseph@codesourcery.com>
19373 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
19374 as having variable size. Do not give an error for unnamed
19375 parameters with [*] declarators. Give a warning for type names
19376 with [*] declarators and mark them as variable size.
19377 * c-parser.c (c_parser_sizeof_expression): Do not give an error
19378 for sizeof applied to [*] type names.
19380 2009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
19383 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
19385 2009-02-03 Jakub Jelinek <jakub@redhat.com>
19387 * gcc.c (process_command): Update copyright notice dates.
19388 * gcov.c (print_version): Likewise.
19389 * gcov-dump.c (print_version): Likewise.
19390 * mips-tfile.c (main): Likewise.
19391 * mips-tdump.c (main): Likewise.
19393 2009-02-03 Joseph Myers <joseph@codesourcery.com>
19396 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
19397 for composite type involving a zero-length array type.
19399 2009-02-03 Jakub Jelinek <jakub@redhat.com>
19402 * function.c (match_asm_constraints_1): Skip over
19403 initial optional % in the constraint.
19405 PR inline-asm/39059
19406 * c-parser.c (c_parser_postfix_expression): If fixed point is not
19407 supported, don't accept FIXED_CSTs.
19408 * c-decl.c (finish_declspecs): Error if fixed point is not supported
19409 and _Sat is used without _Fract/_Accum. Set specs->type to
19410 integer_type_node for cts_fract/cts_accum if fixed point is not
19413 2009-02-02 Catherine Moore <clm@codesourcery.com>
19415 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
19417 2009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
19419 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
19420 (ABI_HAS_64BIT_SYMBOLS): Use it.
19421 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
19423 2009-02-02 Paul Brook <paul@codesourcery.com>
19425 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
19427 2009-02-02 Jakub Jelinek <jakub@redhat.com>
19429 PR inline-asm/39058
19430 * recog.h (asm_operand_ok): Add constraints argument.
19431 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
19432 recurse on matching constraint.
19433 (check_asm_operands): Pass constraints as 3rd argument to
19434 asm_operand_ok. Don't look up matching constraint here.
19435 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
19438 2009-02-02 Ben Elliston <bje@au.ibm.com>
19440 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
19441 TARGET_NARROW_VOLATILE_BITFIELD macro names.
19443 2009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19445 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
19446 information. Remove some obsolete information. Reorganize.
19448 * config/pa/fptr.c: Revert license to GPL 2.
19449 * config/pa/milli64.S: Likewise.
19451 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
19454 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
19455 LIBRARY name in, instead of hard-coding it.
19456 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
19457 extra target make frag to tmake_files according to EH model.
19458 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
19459 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
19460 frags that define makefile variable EH_MODEL appropriately.
19461 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
19462 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
19463 to "-sjlj" according to type of EH configured.
19464 (LIBGCC_SONAME): Concatenate it to shared library base name.
19465 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
19466 to "_sjlj" according to type of EH configured.
19467 (LIBGCC_SONAME): Concatenate it to shared library base name.
19468 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
19469 (SHLIB_LINK): Add missing semicolon to if-else construct.
19470 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
19471 string value of "pe_dll" command-line option.
19472 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
19473 (SHLIB_SONAME): Use it when overriding t-cygming default.
19474 (SHLIB_IMPLIB): Override t-cygming default.
19475 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
19476 string value of "pe_dll" command-line option.
19478 2009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
19481 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
19482 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
19484 2009-01-31 Richard Guenther <rguenther@suse.de>
19486 PR tree-optimization/38937
19487 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
19488 computing the transitive closure.
19490 2009-01-30 Richard Guenther <rguenther@suse.de>
19492 PR tree-optimization/39041
19493 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
19494 Propagate variable indices only if the types match for this stmt.
19496 2009-01-30 Jakub Jelinek <jakub@redhat.com>
19499 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
19500 inline but never defined.
19502 2009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
19504 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
19505 (*insv_h_di_reg_extimm): New insn.
19506 (*insv_l<mode>_reg_extimm): New insn.
19508 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
19510 * config/picochip/picochip.c (flag_conserve_stack): set
19511 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
19512 fconserve-stack. Reduce call-overhead used by inliner.
19514 2009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
19517 * common.opt (flag_conserve_stack): Initialised to zero.
19519 2009-01-30 Kai Tietz <kai.tietz@onevision.com>
19522 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
19523 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
19526 2009-01-29 H.J. Lu <hongjiu.lu@intel.com>
19528 * ira-color.c (allocno_reload_assign): Update comments.
19529 * regmove.c (regmove_optimize): Likewise.
19533 2009-01-29 Robert Millan <rmh@aybabtu.com>
19535 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
19536 * config/i386/kopensolaris-gnu.h: New file. Undefine
19537 `MD_UNWIND_SUPPORT'.
19538 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
19540 2009-01-29 Kazu Hirata <kazu@codesourcery.com>
19542 PR tree-optimization/39007
19543 * tree-loop-distribution.c (generate_builtin): Use
19544 recompute_dominator to compute the immediate dominator of the
19545 basic block just after the loop.
19547 2009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
19549 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
19550 (ASM_OUTPUT_DWARF_PCREL): Define.
19552 2009-01-29 Vladimir Makarov <vmakarov@redhat.com>
19554 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
19555 * doc/passes.texi: Remove entries about regclass, local-alloc, and
19556 global. Modify entries about regmove and IRA.
19558 * ra-conflict.c: Remove the file.
19560 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
19562 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
19563 (pass_regclass_init): Rename to pass_reginfo_init.
19565 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
19567 * toplev.h (flag_ira): Remove.
19569 * caller-save.c (setup_save_areas): Remove flag_ira.
19571 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
19573 * global.c: Remove the file.
19575 * opts.c (decode_options): Remove flag_ira.
19577 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
19579 * regmove.c: Modify file description.
19580 (find_use_as_address, try_auto_increment): Define them only if
19581 AUTO_INC_DEC is defined.
19582 (replacement_quality, replace_in_call_usage, fixup_match_1,
19583 stable_and_no_regs_but_for_p): Remove.
19584 (reg_set_in_bb): Make it static.
19585 (regmove_optimize): Remove flag_ira and code which worked for
19588 * local-alloc.c: Remove the file.
19590 * common.opt (fira): Remove.
19592 * ira.c: Include except.h.
19593 (eliminable_regset): Move from global.c.
19594 (mark_elimination): Ditto. Remove flag_ira.
19595 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
19596 equiv_mem_modified, validate_equiv_mem_from_store,
19597 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
19598 contains_replace_regs, memref_referenced_p, memref_used_between_p,
19599 no_equiv, recorded_label_ref): Move from local-alloc.c.
19600 (update_equiv_regs): Ditto. Make it static.
19601 (print_insn_chain, print_insn_chains): Move it from global.c.
19602 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
19603 (build_insn_chain): Ditto. Make it static.
19604 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
19605 Rename to init_live_subregs.
19606 (gate_ira): Remove flag_ira.
19608 * regclass.c: Rename reginfo.c. Change file description.
19609 (FORBIDDEN_INC_DEC_CLASSES): Remove.
19610 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
19611 (init_reg_sets_1): Remove code for evaluation of
19612 reg_class_superclasses and losing_caller_save_reg_set.
19613 (init_regs): Remove init_reg_autoinc.
19614 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
19615 ok_for_base_p_nonstrict): Remove.
19616 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
19617 (pass_regclass_init): Rename to pass_reginfo_init. Modify
19618 corresponding entries.
19619 (dump_regclass, record_operand_costs, scan_one_insn,
19620 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
19621 record_address_regs, auto_inc_dec_reg_p): Remove.
19622 (gt-regclass.h): Rename to gt-reginfo.h.
19624 * rtl.h (dump_global_regs, retry_global_alloc,
19625 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
19627 * Makefile.in (RA_H): Remove.
19628 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
19629 Rename regclass.o to reginfo.o.
19630 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
19632 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
19633 (GTFILES): Rename regclass.c to reginfo.c.
19635 * passes.c (init_optimization_passes): Remove pass_local_alloc and
19636 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
19638 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
19639 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
19641 (finish_spills): Ditto. Remove code for !flag_ira.
19643 2009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
19645 PR middle-end/35854
19646 * doc/invoke.texi (rtl debug options): Complete rewrite.
19647 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
19649 * mode-switching.c (pass_mode_switching): Rename pass from
19650 "mode-sw" to "mode_sw".
19651 * except.c (pass_convert_to_eh_ranges): Rename pass from
19652 "eh-ranges" to "eh_ranges".
19653 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
19657 2009-01-29 Andrey Belevantsev <abel@ispras.ru>
19658 Alexander Monakov <amonakov@ispras.ru>
19660 PR middle-end/38857
19661 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
19663 (move_exprs_to_boundary): Change return type and pass through
19664 should_move from move_op. Relax assert. Update usage ...
19665 (schedule_expr_on_boundary): ... here. Use should_move instead of
19667 (move_op_orig_expr_found): Indicate that insn was disconnected from
19669 (code_motion_process_successors): Do not call after_merge_succs
19670 callback if original expression was not found when traversing any of
19672 (code_motion_path_driver): Change return type. Update prototype.
19673 (move_op): Update comment. Add a new parameter (should_move). Update
19674 prototype. Set *should_move based on indication provided by
19675 move_op_orig_expr_found.
19677 2009-01-28 Pat Haugen <pthaugen@us.ibm.com>
19679 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
19680 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
19681 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
19682 * config/rs6000/rs6000.c (rs6000_override_options): Default
19683 avoid-indexed-addresses on for Power6, off for everything else.
19684 (avoiding_indexed_address_p): New function.
19685 (rs6000_legitimize_address): Use it.
19686 (rs6000_legitimate_address): Likewise.
19687 * config/rs6000/rs6000.md (movXX_updateX): Likewise
19689 2009-01-28 Kazu Hirata <kazu@codesourcery.com>
19691 PR tree-optimization/38997
19692 * tree-loop-distribution.c (generate_memset_zero): Use
19693 POINTER_PLUS_EXPR for a pointer addition.
19695 2009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
19697 * config/s390/s390.md (bswap<mode>2): New pattern added.
19699 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
19701 * config/s390/s390.md (*tls_load_31): Added type attribute.
19703 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
19705 * config/s390/s390.md: Fix a few comments.
19707 2009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
19709 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
19710 (*tm<mode>_full): Fixed z10prop attribute.
19711 (*tst<mode>_extimm): Fixed z10prop attribute.
19712 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
19713 (*tstqiCCT_cconly): Fixed z10prop attribute.
19714 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
19715 (*movsi_larl): Fixed z10prop attribute.
19716 (*movsi_zarch): Fixed z10prop attribute.
19717 (*movsi_eas): Fixed z10prop attribute.
19718 (*movhi): Fixed z10prop attribute.
19719 (*movqi): Fixed z10prop attribute.
19720 (*movstrictqi): Fixed z10prop attribute.
19721 (*mov<mode>): Fixed z10prop attribute.
19722 (*movcc): Fixed z10prop attribute.
19723 (*sethighpartdi_64): Fixed z10prop attribute.
19724 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
19725 (*negdi2_sign_cc): Fixed z10prop attribute.
19726 (*negdi2_sign): Fixed z10prop attribute.
19727 (*absdi2_sign_cc): Fixed z10prop attribute.
19728 (*absdi2_sign): Fixed z10prop attribute.
19729 (*negabsdi2_sign_cc): Fixed z10prop attribute.
19730 (*negabsdi2_sign): Fixed z10prop attribute.
19731 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
19732 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
19733 (doloop_si64): Fixed z10prop attribute.
19734 (doloop_si31): Fixed z10prop attribute.
19735 (doloop_long): Fixed z10prop attribute.
19736 (indirect_jump): Fixed z10prop attribute.
19737 (nop): Fixed z10prop attribute.
19738 (main_base_64): Fixed z10prop attribute.
19739 (reload_base_64): Fixed z10prop attribute.
19741 2009-01-28 Jakub Jelinek <jakub@redhat.com>
19743 PR rtl-optimization/38740
19744 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
19746 * config/mips/mips.c (mips_reorg): Likewise.
19748 2009-01-28 Richard Guenther <rguenther@suse.de>
19750 PR tree-optimization/38926
19751 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
19752 with the correct value id to a value.
19753 (do_regular_insertion): Use the value number of edoubleprime
19754 for the value number of the expr.
19757 2008-08-21 Richard Guenther <rguenther@suse.de>
19759 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
19760 a PHI ask VN if it is already available.
19761 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
19762 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
19764 2009-01-28 Jakub Jelinek <jakub@redhat.com>
19766 PR middle-end/38934
19767 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
19768 set to varying whenever max has TREE_OVERFLOW set, similarly
19769 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
19771 2009-01-28 Richard Guenther <rguenther@suse.de>
19773 PR middle-end/38908
19774 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
19775 uninitialized aggregate uses in call arguments.
19777 2009-01-28 Paolo Bonzini <bonzini@gnu.org>
19779 PR tree-optimization/38984
19780 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
19781 the nothing_id variable if -fno-delete-null-pointer-checks.
19783 2009-01-28 Uros Bizjak <ubizjak@gmail.com>
19786 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
19787 (set_got_offset_rex64): Ditto.
19789 2009-01-27 H.J. Lu <hongjiu.lu@intel.com>
19792 * doc/extend.texi: Improve local variable with asm reg.
19794 2009-01-27 Adam Nemet <anemet@caviumnetworks.com>
19796 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
19797 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
19798 was not supplied then set warn_packed_bitfield_compat to the
19799 default value of 1.
19800 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
19803 2009-01-27 Richard Guenther <rguenther@suse.de>
19805 PR tree-optimization/38503
19806 * cfgexpand.c (expand_gimple_basic_block): Ignore
19807 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
19808 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
19809 variables that cannot have TBAA applied.
19810 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
19813 2009-01-27 Uros Bizjak <ubizjak@gmail.com>
19815 PR middle-end/38969
19816 * calls.c (initialize_argument_information): Do not wrap complex
19817 arguments in SAVE_EXPR.
19819 2009-01-26 Andreas Tobler <a.tobler@schweiz.org>
19821 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
19822 (INSTALL_LIBGCC): Revert typo commit.
19824 2009-01-26 Richard Guenther <rguenther@suse.de>
19826 PR tree-optimization/38745
19827 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
19828 from special handling.
19830 2009-01-26 Richard Guenther <rguenther@suse.de>
19832 PR tree-optimization/38745
19833 * tree-ssa.c (execute_update_addresses_taken): Do not include
19834 variables that cannot possibly be a register in not_reg_needs.
19835 Do not clear TREE_ADDRESSABLE on vars that may not become
19837 * tree-ssa.c (update_alias_info_1): Include those in the set
19838 of addressable vars.
19840 2009-01-26 Richard Guenther <rguenther@suse.de>
19842 PR middle-end/38851
19843 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
19844 * tree-ssa-dse.c: Include langhooks.h
19845 (execute_simple_dse): Remove stores with zero size.
19847 2009-01-24 Jakub Jelinek <jakub@redhat.com>
19850 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
19853 2009-01-24 Julian Brown <julian@codesourcery.com>
19855 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
19856 config/arm/linux-atomic.c.
19857 * config/arm/linux-atomic.c: New.
19859 2009-01-24 Eric Botcazou <ebotcazou@adacore.com>
19861 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
19862 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
19863 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
19865 2009-01-24 H.J. Lu <hongjiu.lu@intel.com>
19868 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
19871 2009-01-24 Sebastian Pop <sebastian.pop@amd.com>
19873 PR tree-optimization/38953
19874 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
19875 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
19876 (gloog): Split the exit of the scop when the scop exit is a loop exit.
19877 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
19880 2009-01-24 Paul Brook <paul@codesourcery.com>
19882 * config/arm/neon.md (neon_type): Move to arm.md.
19883 (neon_mov<VSTRUCT>): Add neon_type attribute.
19884 * config/arm/arm.md (neon_type): Move to here.
19885 (conds): Add "unconditioal" and use as default for NEON insns.
19887 2009-01-24 Ben Elliston <bje@au.ibm.com>
19889 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
19890 void *' warning from -Wc++-compat.
19891 * Makefile.in (dominance.o-warn): Remove.
19893 2009-01-23 Paolo Bonzini <bonzini@gnu.org>
19895 PR tree-optimization/38932
19896 * fold-const.c (fold_unary_ignore_overflow): New.
19897 * tree.h (fold_unary_ignore_overflow): Declare.
19898 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
19899 * tree-ssa-sccvn.c (visit_reference_op_load,
19900 simplify_unary_expression): Likewise.
19902 2009-01-22 Adam Nemet <anemet@caviumnetworks.com>
19904 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
19905 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
19906 regardless of their type.
19907 * c-common.c (handle_packed_attribute): Don't ignore packed on
19909 * c.opt (Wpacked-bitfield-compat): New warning option.
19910 * stor-layout.c (place_field): Warn if offset of a field changed.
19911 * doc/extend.texi (packed): Mention the ABI change.
19912 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
19913 (Warning Options): Add it to the list.
19915 2009-01-22 H.J. Lu <hongjiu.lu@intel.com>
19917 * c-opts.c (c_common_post_options): Fix a typo in comments.
19919 2009-01-22 Steve Ellcey <sje@cup.hp.com>
19921 PR middle-end/38615
19922 * gimplify.c (gimplify_init_constructor): Fix promotion of const
19923 variables to static.
19924 * doc/invoke.texi (-fmerge-all-constants): Update description.
19926 2009-01-22 Uros Bizjak <ubizjak@gmail.com>
19929 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
19930 (*movdi_1_rex64): Use type "mmx" for alternative 5.
19932 2009-01-22 Richard Earnshaw <rearnsha@arm.com>
19934 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
19936 (LOCAL_ALIGNMENT): Similarly.
19938 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
19939 Joseph Myers <joseph@codesourcery.com>
19941 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
19942 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
19943 * config/arm/arm-tune.md: Regenerate.
19944 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
19947 2009-01-22 Mark Shinwell <shinwell@codesourcery.com>
19949 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
19950 version number to five.
19952 2009-01-22 Dodji Seketeli <dodji@redhat.com>
19955 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
19956 * c-common.c (set_underlying_type): Likewise.
19957 (is_typedef_decl ): Likewise
19959 (set_underlying_type): Likewise.
19960 (is_typedef_type): Likewise.
19962 2009-01-21 Vladimir Makarov <vmakarov@redhat.com>
19964 PR middle-end/38587
19965 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
19968 2009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
19971 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
19972 (LIBGCC_SPEC): Don't define.
19973 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
19975 2009-01-21 Uros Bizjak <ubizjak@gmail.com>
19977 PR rtl-optimization/38879
19978 * alias.c (base_alias_check): Unaligned access via AND address can
19979 alias all surrounding object types except those with sizes equal
19980 or wider than the size of unaligned access.
19982 2009-01-21 Dodji Seketeli <dodji@redhat.com>
19985 * c-decl.c (clone_underlying_type): Move this ...
19986 * c-common.c (set_underlying_type): ... here.
19987 Also, make sure the function properly sets TYPE_STUB_DECL() on
19988 the newly created typedef variant type.
19989 (is_typedef_decl ): New entry point.
19990 * tree.h: Added a new member member_types_needing_access_check to
19991 struct tree_decl_non_common.
19992 (set_underlying_type): New entry point.
19993 (is_typedef_type): Likewise.
19995 2009-01-21 Bingfeng Mei <bmei@broadcom.com>
19997 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
19998 Check whether two instructions have memory references that
19999 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
20000 are helper functions for traversing.
20001 * alias.h (insn_alias_sets_confilict_p): New prototypes.
20002 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
20003 not to draw dependency edge for instructions with non-conflicting
20006 2009-01-20 Joseph Myers <joseph@codesourcery.com>
20009 * longlong.h: Update copyright years. Use soft-fp license notice.
20010 Sync __clz_tab declaration with glibc.
20012 2009-01-20 Steve Ellcey <sje@cup.hp.com>
20015 * doc/extend.texi (syscall_linkage): New.
20016 (version_id): Modify.
20018 2009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
20019 Richard Guenther <rguenther@suse.de>
20021 PR tree-optimization/38747
20022 PR tree-optimization/38748
20023 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
20024 conversion if the base address is an indirect reference and the
20025 aliasing sets could cause issues.
20027 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
20029 * common.opt (fgraphite, fgraphite-identity): Add comment for
20030 explaining why these options are not documented.
20032 2009-01-20 Sebastian Pop <sebastian.pop@amd.com>
20034 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
20035 gimple_call_lhs is NULL.
20037 2009-01-20 Paolo Bonzini <bonzini@gnu.org>
20040 * emit-rtl.c (adjust_address_1): Make sure memref is never
20043 2009-01-20 Ben Elliston <bje@au.ibm.com>
20045 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
20046 const qualifier from arg parameter. Remove unnecessary cast to char *.
20047 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
20048 const qualifier from arg 2.
20050 2009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
20052 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
20054 2009-01-19 Vladimir Makarov <vmakarov@redhat.com>
20057 * rtl.h (reinit_regs): New prototype.
20058 * regclass.c: Include ira.h.
20059 (reinit_regs): New.
20060 * Makefile.in (regclass.o): Add ira.h.
20061 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
20063 2009-01-18 H.J. Lu <hongjiu.lu@intel.com>
20066 * c-common.c (handle_aligned_attribute): Use
20067 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
20068 default alignment value.
20070 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
20072 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
20073 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
20075 * doc/extend.texi: Update __attribute__ ((aligned)). Document
20076 __BIGGEST_ALIGNMENT__.
20078 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
20080 2009-01-18 Richard Guenther <rguenther@suse.de>
20082 PR tree-optimization/38819
20083 * tree-flow.h (operation_could_trap_helper_p): Declare.
20084 * tree-eh.c (operation_could_trap_helper_p): Export.
20085 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
20086 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
20087 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
20088 are about to insert a possibly trapping instruction and fail
20091 2009-01-18 Andreas Schwab <schwab@suse.de>
20093 * doc/install.texi (Configuration): Remove obsolete paragraph
20094 about use of --with-gnu-ld with --with-gnu-as.
20096 2009-01-18 Kazu Hirata <kazu@codesourcery.com>
20098 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
20099 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
20100 Follow spelling conventions.
20102 2009-01-18 Ben Elliston <bje@au.ibm.com>
20104 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
20105 C++ warning about implicit conversion from void * to struct
20107 (bitmap_obstack_free): Likewise for bitmap_element *.
20108 * Makefile.in (bitmap.o-warn): Remove.
20110 2009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
20112 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
20114 2009-01-17 Sebastian Pop <sebastian.pop@amd.com>
20115 Tobias Grosser <tobi.grosser@amd.com>
20117 * graphite.c (graphite_trans_scop_block): Do not block single
20120 2009-01-16 Alexandre Oliva <aoliva@redhat.com>
20122 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
20123 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
20124 test with assertion.
20126 2009-01-16 Richard Guenther <rguenther@suse.de>
20128 PR tree-optimization/38835
20129 PR middle-end/36227
20130 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
20131 and INT + PTR -> (INT)(PTR p+ INT) folding.
20132 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
20134 2009-01-16 Adam Nemet <anemet@caviumnetworks.com>
20137 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
20138 the subreg from a lowpart subreg if it is also casting the value.
20140 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
20141 Tobias Grosser <tobi.grosser@amd.com>
20143 * graphite.c (compare_prefix_loops): New.
20144 (build_scop_canonical_schedules): Rewritten.
20145 (graphite_transform_loops): Move build_scop_canonical_schedules
20146 after build_scop_iteration_domain.
20148 2009-01-16 Sebastian Pop <sebastian.pop@amd.com>
20149 Tobias Grosser <tobi.grosser@amd.com>
20151 * graphite.c (add_conditions_to_domain): Add the loops to
20152 the dimension of the iteration domain. Do copy the domain
20153 only when it exists.
20154 (build_scop_conditions_1): Do not call add_conditions_to_domain.
20155 (add_conditions_to_constraints): New.
20156 (can_generate_code_stmt, can_generate_code): Removed.
20157 (gloog): Do not call can_generate_code.
20158 (graphite_transform_loops): Call add_conditions_to_constraints
20159 after building the iteration domain.
20161 2009-01-16 Jakub Jelinek <jakub@redhat.com>
20163 PR tree-optimization/38789
20164 * tree-ssa-threadedge.c
20165 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
20166 __builtin_constant_p.
20168 2009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
20170 * dce.c (delete_unmarked_insns): Reversed the order that insns are
20171 examined before deleting them.
20173 2009-01-16 Richard Earnshaw <rearnsha@arm.com>
20175 * function.c (aggregate_value_p): Correctly extract the function
20176 type from CALL_EXPR_FN lookup.
20178 2009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
20180 * config/picochip/picochip.c (picochip_override_options): Revert
20181 CFI asm flag disable commited previously.
20183 2009-01-15 Sebastian Pop <sebastian.pop@amd.com>
20184 Tobias Grosser <tobi.grosser@amd.com>
20185 Jan Sjodin <jan.sjodin@amd.com>
20187 * graphite.c (scan_tree_for_params): On substractions negate
20188 all the coefficients of the term.
20189 (clast_to_gcc_expression_red): New. Handle reduction expressions
20190 of more than two operands.
20191 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
20192 (get_vdef_before_scop): Handle also the case of default definitions.
20194 2009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
20196 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
20197 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
20198 Also use them when walking CALL_INSN_FUNCTION_USAGE.
20200 2009-01-15 H.J. Lu <hongjiu.lu@intel.com>
20201 Joey Ye <joey.ye@intel.com>
20203 PR middle-end/37843
20204 * cfgexpand.c (expand_stack_alignment): Don't update stack
20205 boundary nor check incoming stack boundary here.
20206 (gimple_expand_cfg): Update stack boundary and check incoming
20207 stack boundary here.
20209 2009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
20211 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
20213 2009-01-14 Jakub Jelinek <jakub@redhat.com>
20215 PR rtl-optimization/38245
20216 * calls.c (expand_call): Add stack arguments to
20217 CALL_INSN_FUNCTION_USAGE even for pure calls (when
20218 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
20219 in regs and partially in memory or BLKmode arguments.
20220 (emit_library_call_value_1): Add stack arguments to
20221 CALL_INSN_FUNCTION_USAGE even for pure calls (when
20222 ACCUMULATE_OUTGOING_ARGS).
20223 * dce.c: Include tm_p.h.
20224 (find_call_stack_args): New function.
20225 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
20227 (mark_insn): Call find_call_stack_args for CALL_Ps.
20228 (prescan_insns_for_dce): Walk insns backwards in bb rather than
20229 forwards. Allocate and free arg_stores bitmap if needed, pass it
20230 down to deletable_insn_p, don't mark stores set in arg_stores
20231 bitmap, clear the bitmap at the beginning of each bb.
20232 * Makefile.in (dce.o): Depend on $(TM_P_H).
20234 2009-01-14 Michael Meissner <gnu@the-meissners.org>
20237 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
20238 to make sure the insn is a conditional test (bug 22599). Reformat a
20241 2009-01-14 Sebastian Pop <sebastian.pop@amd.com>
20243 PR middle-end/38431
20244 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
20245 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
20246 (gloog): Do not call cleanup_tree_cfg.
20247 (graphite_transform_loops): Call cleanup_tree_cfg after all
20248 scops have been code generated.
20250 2009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
20251 * doc/gty.texi (Invoking the garbage collector): Added new node
20252 and section documenting ggc_collect.
20254 2009-01-14 Richard Guenther <rguenther@suse.de>
20256 PR tree-optimization/38826
20257 PR middle-end/38477
20258 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
20259 initialization notes only if we actually emitted a warning.
20260 (intra_create_variable_infos): Add constraints for a result decl
20261 that is passed by hidden reference.
20262 (build_pred_graph): Mark all related variables non-direct on
20265 2009-01-14 Nick Clifton <nickc@redhat.com>
20267 * ira-conflicts.c: Include addresses.h for the definition of
20269 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
20270 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
20272 2009-01-13 Vladimir Makarov <vmakarov@redhat.com>
20275 * Makefile.in (ira-lives.o): Add except.h.
20277 * ira-lives.c: Include except.h.
20278 (process_bb_node_lives): Process can_throw_internal.
20280 2009-01-13 Jakub Jelinek <jakub@redhat.com>
20282 PR rtl-optimization/38774
20283 * combine.c (simplify_set): When undoing cc_use change, don't do
20284 PUT_CODE on the newly created comparison, but instead put back the
20287 2009-01-13 Joseph Myers <joseph@codesourcery.com>
20289 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
20290 values. Remove duplicate arm8 entry.
20292 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
20294 PR tree-optimization/38786
20295 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
20296 the SSA_NAME case of expand_scalar_variables_expr.
20297 Set the type of an expression to the type of its assign statement.
20298 (expand_scalar_variables_expr): Also gather the scalar computation
20299 used to index the memory access. Do not pass loop_p.
20300 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
20301 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
20302 the gimple_stmt_iterator where it inserts new code.
20303 Do not pass loop_p.
20304 (copy_bb_and_scalar_dependences): Do not pass loop_p.
20305 (translate_clast): Update call to copy_bb_and_scalar_dependences.
20307 2009-01-13 Sebastian Pop <sebastian.pop@amd.com>
20309 * graphite.h (debug_value): Removed.
20310 * graphite.c (debug_value): Removed.
20312 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
20314 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
20315 ldrd/strd with two 32-bit instructions.
20317 2009-01-13 Richard Earnshaw <rearnsha@arm.com>
20319 * config/arm/arm.c (struct processors): Pass for speed down into
20320 cost helper functions.
20321 (const_ok_for_op): Handle COMPARE and inequality nodes.
20322 (arm_rtx_costs_1): Rewrite.
20323 (arm_size_rtx_costs): Update prototype.
20324 (arm_rtx_costs): Pass speed down to helper functions.
20325 (arm_slowmul_rtx_costs): Rework cost calculations.
20326 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
20327 (arm_9e_rtx_costs): Likewise.
20329 2009-01-13 Uros Bizjak <ubizjak@gmail.com>
20331 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
20332 relocations of local symbols wider than UNITS_PER_WORD are not valid.
20333 (alpha_legitimize_address): Do not split local symbols wider than
20334 UNITS_PER_WORD into HIGH/LO_SUM parts.
20336 2009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
20339 * gcc.c (process_command): Replace call to execvp with calls
20340 to pex_one and exit.
20342 2009-01-03 Anatoly Sokolov <aesok@post.ru>
20345 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
20346 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
20347 variant for devices with 3-byte PC.
20348 (__tablejump_elpm__): New.
20350 2009-01-12 Jakub Jelinek <jakub@redhat.com>
20353 * c-parser.c (c_parser_postfix_expression): Allow `->' in
20354 offsetof member-designator, handle it as `[0].'.
20356 2009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20358 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
20359 function when not using named sections on targets with named sections
20360 if branch distance is less than 262132.
20362 2009-01-12 Richard Earnshaw <rearnsha@arm.com>
20364 * combine.c (combine_instructions): Recompute
20365 optimize_this_for_speed_p for each BB in the main combine loop.
20367 2009-01-12 Tomas Bily <tbily@suse.cz>
20370 * tree-loop-distribution.c (prop_phis): New function.
20371 (generate_builtin): Call prop_phis.
20372 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
20374 2009-01-12 Jakub Jelinek <jakub@redhat.com>
20376 PR tree-optimization/38807
20377 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
20378 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
20380 2009-01-11 Adam Nemet <anemet@caviumnetworks.com>
20382 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
20383 subreg of op0 to the original op0.
20385 2009-01-11 Laurent GUERBY <laurent@guerby.net>
20387 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
20389 2009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
20392 * mips-tfile.c (parse_def): Fix parsing of def strings
20393 starting with digits.
20395 2009-01-10 Jakub Jelinek <jakub@redhat.com>
20398 * config/arm/arm.c (arm_is_long_call_p): Don't call
20399 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
20401 2009-01-09 Steven Bosscher <steven@gcc.gnu.org>
20403 * regrename.c (regrename_optimize): Fix dumping.
20404 (find_oldest_value_reg): Preserve REG_POINTER.
20405 (copy_hardreg_forward_1): Likewise.
20407 2009-01-09 Diego Novillo <dnovillo@google.com>
20409 * gimple.h (struct gimple_statement_base) <uid>: Document
20410 the restrictions on its use.
20411 (gimple_uid): Tidy.
20412 (gimple_set_uid): Tidy.
20414 2009-01-09 Jakub Jelinek <jakub@redhat.com>
20416 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
20417 zero guard even if align_bytes != 0 and count is smaller than
20420 2009-01-09 Vladimir Makarov <vmakarov@redhat.com>
20422 PR rtl-optimization/38495
20423 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
20424 (add_range_and_copies_from_move_list): Print all added ranges.
20425 Add ranges to memory optimized destination.
20427 2009-01-09 Jakub Jelinek <jakub@redhat.com>
20431 * config/i386/i386.c (override_options): Reject
20432 -mstringop-strategy=rep_8byte with -m32.
20433 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
20434 to 1. Do count comparison against epilogue_size_needed at compile
20435 time even when count_exp was constant forced into register. For
20436 size_needed don't jump to epilogue, instead just avoid aligning
20437 and invoke the body algorithm. If need_zero_guard, add zero guard
20438 even if count is non-zero, but smaller than size_needed + number of
20439 bytes that could be stored for alignment.
20440 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
20441 to 1. If need_zero_guard, add zero guard even if count is non-zero,
20442 but smaller than size_needed + number of bytes that could be stored
20443 for alignment. Compare size_needed with epilogue_size_needed instead
20444 of desired_align - align, don't adjust size_needed, pass
20445 epilogue_size_needed to the epilogue expanders.
20448 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
20450 2009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20452 * pa.c (last_address): Change to unsigned.
20453 (update_total_code_bytes): Change argument to unsigned. Don't
20454 check if insn addresses are set.
20455 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
20456 addresses are not set.
20457 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
20459 2009-01-09 Nick Clifton <nickc@redhat.com>
20461 * config/sh/symbian.c: Replace uses of DECL_INLINE with
20462 DECL_DECLARED_INLINE_P.
20464 2009-01-09 Jakub Jelinek <jakub@redhat.com>
20466 PR middle-end/38347
20467 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
20468 GET_MODE (op0) in operand_subword_force calls.
20470 PR middle-end/38771
20471 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
20472 fold_convert arg0 operands to TREE_TYPE (op0) first.
20474 2009-01-08 Vladimir Makarov <vmakarov@redhat.com>
20476 * params.def (ira-max-conflict-table-size): Decrease default value
20479 2009-01-08 Jakub Jelinek <jakub@redhat.com>
20481 PR tree-optimization/37031
20482 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
20484 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
20485 allocate it using gc instead of heap, use VEC_quick_push instead of
20487 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
20488 instead of heap, use VEC_quick_push instead of VEC_safe_push.
20489 * tree-data-ref.h (struct access_matrix): Change matrix to gc
20490 allocated vector from heap allocated.
20491 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
20492 * tree-loop-linear.c (linear_transform_loops): Allocate nest
20493 vector only after perfect_loop_nest_depth call.
20495 2009-01-08 Sebastian Pop <sebastian.pop@amd.com>
20496 Jan Sjodin <jan.sjodin@amd.com>
20498 PR tree-optimization/38559
20499 * graphite.c (debug_value, copy_constraint,
20500 swap_constraint_variables, scale_constraint_variable, ): New.
20501 (get_lower_bound, get_upper_bound): Removed.
20502 (graphite_trans_bb_strip_mine): Clean up this code that works
20503 only for constant number of iterations. Fully copy upper and
20504 lower bound constraints, not only the constant part of them.
20505 * graphite.h (debug_value): Declared.
20507 2009-01-08 Ira Rosen <irar@il.ibm.com>
20509 PR tree-optimization/37194
20510 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
20511 Don't add the cost of cost model guard in prologue to scalar
20512 outside cost in case of known number of iterations.
20514 2009-01-07 Nathan Froyd <froydnj@codesourcery.com>
20515 Alan Modra <amodra@bigpond.net.au>
20517 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
20518 non-word-aligned REG+CONST addressing.
20520 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
20523 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
20524 free_after_compilation when outputting a thunk.
20525 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
20526 Do not call free_after_compilation here.
20528 2009-01-07 Uros Bizjak <ubizjak@gmail.com>
20530 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
20531 (ix86_valid_target_attribute_inner_p): Ditto.
20533 2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
20535 PR tree-optimization/38492
20536 PR tree-optimization/38498
20537 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
20538 * tree-chrec.h (scev_is_linear_expression): Declared.
20539 * graphite.c (graphite_cannot_represent_loop_niter): New.
20540 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
20541 (graphite_loop_normal_form): Use gcc_assert.
20542 (scan_tree_for_params): Use CASE_CONVERT.
20543 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
20544 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
20545 Use gcc_assert. Discard scops that contain unhandled cases.
20546 (build_scop_conditions): Return a boolean status for unhandled cases.
20547 (strip_mine_profitable_p): Print the loop number, not its depth.
20548 (is_interchange_valid): Pass the depth of the loop nest, don't
20549 recompute it wrongly.
20550 (graphite_trans_bb_block): Same.
20551 (graphite_trans_bb_block): Print tentative of loop blocking.
20552 (graphite_trans_scop_block): Do not print that the loop has been
20554 (graphite_transform_loops): Do not handle scops that contain condition
20557 2009-01-07 H.J. Lu <hongjiu.lu@intel.com>
20559 AVX Programming Reference (December, 2008)
20560 * config/i386/avxintrin.h (_mm256_stream_si256): New.
20561 (_mm256_stream_pd): Likewise.
20562 (_mm256_stream_ps): Likewise.
20564 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
20565 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
20566 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
20567 (bdesc_special_args): Add __builtin_ia32_movntdq256,
20568 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
20569 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
20570 (ix86_expand_special_args_builtin): Likewise.
20572 * config/i386/sse.md (AVXMODEDI): New.
20573 (avx_movnt<mode>): Likewise.
20574 (avx_movnt<mode>): Likewise.
20575 (<sse>_movnt<mode>): Remove AVX support.
20576 (sse2_movntv2di): Likewise.
20578 2009-01-07 Richard Guenther <rguenther@suse.de>
20580 PR middle-end/38751
20581 * fold-const.c (extract_muldiv): Remove obsolete comment.
20582 (fold_plusminus_mult_expr): Undo MINUS_EXPR
20583 to PLUS_EXPR canonicalization for the canonicalization.
20585 2009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
20587 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
20588 hosted cross-compilers generating less efficient code.
20590 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
20592 * function.h (rtl_data): Add a dbr_scheduled_p field.
20593 * reorg.c (dbr_schedule): Set it.
20594 (gate_handle_delay_slots): Check it.
20595 * config/mips/mips.c (mips_base_delayed_branch): Delete.
20596 (mips_reorg): Check flag_delayed_branch instead of
20597 mips_base_delayed_branch.
20598 (mips_override_options): Don't set mips_base_delayed_branch
20599 or flag_delayed_branch.
20601 2009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
20603 PR rtl-optimization/38426.
20604 * ira.c (ira): Set current_function_is_leaf earlier.
20606 2009-01-06 Jakub Jelinek <jakub@redhat.com>
20608 PR rtl-optimization/38722
20609 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
20610 too early, only set a flag and modify after last possible
20613 2009-01-06 Janis Johnson <janis187@us.ibm.com>
20616 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
20617 * real.c (decimal_single_format): Correct values of emin and emax.
20618 (decimal_double_format): Ditto.
20619 (decimal_quad_format): Ditto.
20620 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
20621 computation of DECnn_MIN and DECnn_MAX for corrected values of
20622 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
20623 __DECnn_MIN__, and adjust its computation for the corrected value
20626 2009-01-06 Jan Hubicka <jh@suse.cz>
20629 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
20631 2009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
20633 * doc/contrib.texi (Contributors): Slightly adjust the end note.
20634 Add Robert Clark to the list of testers.
20636 2009-01-06 Jan Hubicka <jh@suse.cz>
20637 Kai Tietz <kai.tietz@onevision.com>
20639 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
20640 * config/i386/i386.c (ix86_expand_call): Add clobbers.
20642 2009-01-06 Jan Hubicka <jh@suse.cz>
20643 Kai Tietz <kai.tietz@onevision.com>
20645 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
20647 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
20648 (ix86_nsaved_regs): Count only general purpose regs.
20649 (ix86_nsaved_sseregs): New.
20650 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
20651 to 16 for w64; compute padding and size of sse reg save area.
20652 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
20653 general purpose regs.
20654 (ix86_emit_save_sse_regs_using_mov): New.
20655 (ix86_expand_prologue): Save SSE regs if needed.
20656 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
20657 (ix86_emit_restore_sse_regs_using_mov): New.
20658 (ix86_expand_epilogue): Save SSE regs if needed.
20660 2009-01-06 Jan Hubicka <jh@suse.cz>
20661 Kai Tietz <kai.tietz@onevision.com>
20663 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
20664 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
20665 functions when accumulate outgoing args is off.
20667 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
20670 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
20671 before using pseudos_have_intersected_live_ranges_p.
20673 * ira-int.h (ira_assert): Always define.
20675 2009-01-06 H.J. Lu <hongjiu.lu@intel.com>
20677 AVX Programming Reference (December, 2008)
20678 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
20679 (_mm256_permute2_pd): Likewise.
20680 (_mm_permute2_ps): Likewise.
20681 (_mm256_permute2_ps): Likewise.
20682 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
20683 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
20685 * config/i386/i386.c (ix86_builtins): Remove
20686 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
20687 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
20688 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
20689 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
20690 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
20691 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
20692 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
20693 __builtin_ia32_vpermil2ps256.
20694 (ix86_init_mmx_sse_builtins): Updated.
20695 (ix86_expand_args_builtin): Likewise.
20697 2009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20699 * pa.c (output_call): Relocate non-jump insns in the delay slot of
20700 long absolute calls when generating PA 2.0 code.
20702 2009-01-05 Vladimir Makarov <vmakarov@redhat.com>
20704 PR rtl-optimization/38583
20705 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
20707 * params.def (ira-max-conflict-table-size): New.
20709 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
20711 * ira.h (ira_conflicts_p): New external definition.
20713 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
20714 table. Report this. Return result of building.
20715 (ira_build_conflicts): Use ira_conflicts_p. Check result of
20716 building conflict table.
20718 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
20719 (ira_color): Use ira_conflicts_p.
20721 * global.c: Include ira.h.
20722 (pseudo_for_reload_consideration_p, build_insn_chain): Use
20725 * Makefile.in (global.o): Add ira.h.
20727 * ira-build.c (mark_all_loops_for_removal,
20728 propagate_some_info_from_allocno): New.
20729 (remove_unnecessary_allocnos): Call
20730 propagate_some_info_from_allocno.
20731 (remove_low_level_allocnos): New.
20732 (remove_unnecessary_regions): Add parameter. Call
20733 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
20734 parameter to remove_unnecessary_regions.
20735 (ira_build): Remove all regions but root if the conflict table was
20736 not built. Update conflict hard regs for allocnos crossing calls.
20738 * ira.c (ira_conflicts_p): New global.
20739 (ira): Define and use ira_conflicts_p.
20741 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
20742 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
20743 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
20745 2009-01-06 Ben Elliston <bje@au.ibm.com>
20747 * gengtype-lex.l (YY_NO_INPUT): Define.
20749 2009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
20752 * c-common.c (handle_vector_size_attribute): Also reject
20753 BOOLEAN_TYPE types.
20755 2009-01-05 Sebastian Pop <sebastian.pop@amd.com>
20757 PR tree-optimization/38492
20758 * graphite.c (rename_map_elt, debug_rename_elt,
20759 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
20760 rename_map_elt_info, eq_rename_map_elts,
20761 get_new_name_from_old_name, bb_in_sese_p): Moved around.
20762 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
20763 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
20764 (sese_build_livein_liveouts): New.
20765 (new_sese, free_sese): New.
20766 (new_scop): Call new_sese.
20767 (free_scop): Call free_sese.
20768 (rename_variables_from_edge, rename_phis_end_scop): Removed.
20769 (register_old_new_names): Renamed register_old_and_new_names.
20770 (register_scop_liveout_renames, add_loop_exit_phis,
20771 insert_loop_close_phis, struct igp,
20772 default_liveout_before_guard, add_guard_exit_phis,
20773 insert_guard_phis, copy_renames): New.
20774 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
20775 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
20776 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
20777 (scop_adjust_phis_for_liveouts): New.
20778 (gloog): Call scop_adjust_phis_for_liveouts.
20780 * graphite.h (struct sese): Documented. Added fields liveout,
20781 num_ver and livein.
20782 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
20783 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
20784 (struct scop): Added field liveout_renames.
20785 (SCOP_LIVEOUT_RENAMES): New.
20787 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
20789 PR tree-optimization/38510
20790 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
20791 (translate_clast): Call recompute_all_dominators before
20793 (gloog): Call recompute_all_dominators before graphite_verify.
20795 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
20796 Jan Sjodin <jan.sjodin@amd.com>
20798 PR tree-optimization/38500
20799 * graphite.c (create_sese_edges): Call fix_loop_structure after
20802 2009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
20804 * config.gcc: Add m32r*-*-rtems*.
20805 * config/m32r/rtems.h: New file.
20807 2009-01-05 Ben Elliston <bje@au.ibm.com>
20809 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
20810 (.po.pox): Likewise.
20811 (po/gcc.pot): Likewise.
20813 2009-01-04 David S. Miller <davem@davemloft.net>
20815 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
20816 (STARTING_FRAME_OFFSET): Always set to zero.
20818 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
20820 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
20821 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
20822 fixed-point types, and vectors of the same.
20824 2009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
20826 * config/mips/sync.md (*mb_barrier): Rename to...
20827 (*memory_barrier): ...this.
20829 2009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
20831 * doc/extend.texi (Function Attributes): Move @cindex after @item
20832 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
20833 and put in alphabetical order. Fix 'target' name and put in order.
20834 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
20837 2009-01-04 Uros Bizjak <ubizjak@gmail.com>
20839 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
20840 (memory_barrier): Expand as unspec instead of unspec_volatile.
20841 Remove mem:BLK from insn operands. Use Pmode scratch register.
20842 (*memory_barrier): Define as unspec instead of unspec_volatile.
20843 Use (match_dup 0) as input operand.
20845 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
20846 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
20847 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
20848 scratch register. Remove operand 1.
20849 (*stbar): Define as unspec instead of unspec_volatile.
20850 Use (match_dup 0) as input operand, remove (const_int 8).
20851 (*membar): Define as unspec instead of unspec_volatile.
20852 Use (match_dup 0) as input operand, remove input operand 2.
20854 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
20855 (memory_barrier): Expand as unspec instead of unspec_volatile.
20856 Remove mem:BLK from insn operands. Use Pmode scratch register.
20857 (*memory_barrier): Define as unspec instead of unspec_volatile.
20858 Use (match_dup 0) as input operand.
20860 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
20861 Remove mem:BLK from insn operands. Use Pmode scratch register.
20862 Set volatile flag on operand 0.
20863 (*memory_barrier): New insn pattern.
20865 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
20867 (*memory_barrier): Use (match_dup 0) as input operand.
20869 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
20870 Remove mem:BLK from insn operands. Use Pmode scratch register.
20871 Set volatile flag on operand 0.
20872 (*mb_internal): New insn pattern.
20874 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
20876 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
20878 PR middle-end/38586
20879 * function.c (struct temp_slot): Move to the section of the file
20880 that deals with temp slots. Remove field 'address'.
20881 (temp_slot_address_table): New hash table of address -> temp slot.
20882 (struct temp_slot_address_entry): New struct, items for the table.
20883 (temp_slot_address_compute_hash, temp_slot_address_hash,
20884 temp_slot_address_eq, insert_temp_slot_address): Support functions
20886 (find_temp_slot_from_address): Rewrite to use the new hash table.
20887 (remove_unused_temp_slot_addresses): Remove addresses of temp
20888 slots that have been made available.
20889 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
20890 worker function for remove_unused_temp_slot_addresses.
20891 (assign_stack_temp_for_type): Don't clear the temp slot address list.
20892 Add the temp slot address to the address -> temp slot map.
20893 (update_temp_slot_address): Update via insert_temp_slot_address.
20894 (free_temp_slots): Call remove_unused_temp_slot_addresses.
20895 (pop_temp_slots): Likewise.
20896 (init_temp_slots): Allocate the address -> temp slot map, or empty
20897 the map if it is already allocated.
20898 (prepare_function_start): Initialize temp slot processing.
20900 2009-01-04 Steven Bosscher <steven@gcc.gnu.org>
20902 PR middle-end/38584
20903 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
20904 Calculate the size of all stack vars assuming no packing of stack
20905 vars will happen, replacing a quadratic algorithm with a linear one.
20907 2009-01-03 Jakub Jelinek <jakub@redhat.com>
20910 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
20913 2009-01-03 Diego Novillo <dnovillo@google.com>
20915 * doc/contrib.texi: Update contributions.
20917 2009-01-03 Jakub Jelinek <jakub@redhat.com>
20920 * builtins.c (fold_builtin_memory_op): Give up if either operand
20921 is volatile. Set srctype or desttype to non-qualified version
20925 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
20926 and FUNCTION_DECLs.
20928 2009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
20930 PR rtl-optimization/35805
20931 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
20932 problem if fast dce is able to remove any instructions.
20933 * dce.c (dce_process_block): Fix dump message.
20935 2009-01-02 Mark Mitchell <mark@codesourcery.com>
20938 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
20940 2009-01-02 Jakub Jelinek <jakub@redhat.com>
20942 PR middle-end/38690
20943 * tree-flow.h (op_code_prio, op_prio): New prototypes.
20944 * tree-pretty-print.c (op_code_prio): New function.
20945 (op_prio): No longer static. Use op_code_prio.
20946 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
20947 Use op_prio and op_code_prio to determine if () should be
20948 printed around operand(s) or not.
20950 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
20951 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
20952 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
20953 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
20954 pp_character instead of pp_string for single letter printing.
20956 2009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
20958 * doc/extend.texi: Fix '#pragma GCC option' typo.
20960 2009-01-02 Richard Guenther <rguenther@suse.de>
20962 * doc/install.texi (--enable-checking): Mention different
20963 default for stage1.
20964 (--enable-stage1-checking): Document.
20966 2009-01-01 Andrew Pinski <pinskia@gmail.com>
20968 PR middle-end/30142
20969 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
20970 case to be an error.
20972 2009-01-02 Ben Elliston <bje@au.ibm.com>
20974 * config/fp-bit.h (pack_d): Constify argument.
20975 * config/fp-bit.c (makenan): Constify return type. Remove casts.
20976 (isnan): Constify argument.
20978 (iszero): Likewise.
20979 (pack_d): Likewise.
20980 (_fpadd_parts): Constify return type.
20981 (_fpmul_parts): Likewise.
20982 (_fpdiv_parts): Likewise.
20984 2009-01-01 Jakub Jelinek <jakub@redhat.com>
20987 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
20988 warn about overwriting initializer with side-effects or
20989 -Woverride-init if !IMPLICIT.
20990 (output_init_element): Likewise. Pass IMPLICIT down to
20992 (process_init_element): Add IMPLICIT argument. Pass it down
20993 to output_init_element.
20994 (push_init_element, pop_init_level, set_designator): Adjust
20995 process_init_element callers.
20996 (set_nonincremental_init, set_nonincremental_init_from_string):
20997 Adjust add_pending_init callers.
20998 (output_pending_init_elements): Adjust output_init_element callers.
20999 * c-tree.h (process_init_element): Adjust prototype.
21000 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
21001 process_init_element callers.
21004 Copyright (C) 2009 Free Software Foundation, Inc.
21006 Copying and distribution of this file, with or without modification,
21007 are permitted in any medium without royalty provided the copyright
21008 notice and this notice are preserved.