OSDN Git Service

* config/alpha/alpha.c: Include libfuncs.h
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-08-09  Douglas B Rupp  <rupp@gnat.com>
2
3         * config/alpha/alpha.c: Include libfuncs.h
4         (avms_asm_output_extern): New function.
5         (alpha_init_libfuncs): Init some decc libfuncs.
6         * config/alpha/alpha-protos.h (avms_asm_output_external): Declare.
7         * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define.
8         (DO_CRTL_NAMES): Define.
9         (LIB_SPEC): Remove.
10         * config/alpha/vms64.h: (POINTERS_EXTEND_UNSIGNED): Remove undef.
11         (LONG_TYPE_SIZE): Define.
12         (TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1
13         (SUBTARGET_SWITCHES): Define malloc64 switch.
14         (TARGET_DEFAULT): Default MASK_MALLOC64 set.
15         (MASK_RETURN_ADDR): Define.
16         doc/invoke.texi (mmalloc64): Document switch.
17
18 2009-08-09  Olivier Hainque  <hainque@adacore.com>
19             Douglas B Rupp  <rupp@gnat.com>
20
21         * config/alpha/alpha.c (struct machine_function): New flag for VMS,
22         uses_condition_handler.
23         (alpha_expand_builtin_establish_vms_condition_handler): New expander.
24         (alpha_expand_builtin_revert_vms_condition_handler): New expander.
25         (enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER
26         and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values.
27         (code_for_builtin): New insn codes for the new alpha_builtins.
28         (alpha_init_builtins): Register the new functions as BUILT_IN_MD.
29         (alpha_sa_size): Account for uses_condition_handler.
30         (alpha_expand_prologue): Likewise.
31         (alpha_start_function): Likewise.
32         (alpha_expand_epilogue): Likewise.
33         * config/alpha/alpha-protos.h: Prototype the new alpha.c builtin
34         establish/revert expanders.
35         * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define.
36         * config/alpha/alpha.md (builtin_establish_vms_condition_handler):
37         New expander, resorting to the alpha.c associated function.
38         (builtin_revert_vms_condition_handler): Likewise.
39         * config/alpha/vms-gcc_shell_handler.c: New file. Implements
40         __gcc_shell_handler, the static VMS condition handler used as
41         an indirection wrapper to the current dynamically established
42         handler.
43         * config/alpha/vms-unwind.h: Complete rewrite.
44         * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c
45         * config/alpha/vms.h (MD_UNWIND_SUPPORT):
46         
47 2009-08-09  Eric Botcazou  <botcazou@adacore.com>
48             Douglas B Rupp  <rupp@gnat.com>
49
50         * config/alpha/alpha.c (alpha_links): Add 'target' field.
51         (alpha_need_linkage): Handle aliases.  Return function symbol.
52         (alpha_use_linkage): Rename 'linkage' argument to 'func'.
53         Use ultimate alias target for the linkage name.
54         * config/alpha/alpha.md (movmemdi): Use the symbol returned
55         by alpha_need_linkage for the function symbol.
56         (setmemdi): Likewise.
57
58 2009-08-09  Douglas B Rupp  <rupp@gnat.com>
59
60         * config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS.
61         * config/alpha/vms.h (OBJECT_FORMAT_ELF): Define.
62         (ASM_WEAKEN_LABEL): Define.
63         (CRT_CALL_STATIC_FUNCTION): Define.
64         (STARTFILE_SPEC): Add crtbegin.o crtbeginS.o.
65         (ENDFILE_SPEC): Define.
66         (INIT_SECTION_ASM_OP): Define.
67         * config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove.
68         * config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o
69         crtend.o crtendS.o.
70         (MULTILIB_OSDIRNAMES): Define.
71         (shlib_version): Define.
72         (SHLIB_EXT): Define.
73         (SHLIB_OBJS): Define.
74         (SHLIB_NAME): Define.
75         (SHLIB_MULTILIB): Define.
76         (SHLIB_INSTALL): Define.
77         (SHLIB_SYMVEC): Define.
78         (SHLIB_SYMVECX2): Define.
79         (SHLIB_LINK): Define.
80
81 2009-08-09  Douglas B Rupp  <rupp@gnat.com>
82
83         * config/alpha/alpha.c (alpha_initialize_trampoline):
84         Initialize VMS trampoline IAW ABI for bounded procedure calls.
85         (alpha_start_function): Emit transfer address on nested functions
86         for VMS trampoline call.
87         * config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm
88         since no longer used.
89         * config/alpha/vms-tramp.asm: Remove.
90         * config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined
91         since now only data initialized at runtime.
92
93 2009-08-09  Douglas B Rupp  <rupp@gnat.com>
94
95         * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define.
96         (LINK_GCC_C_SEQUENCE_SPEC): Define.
97         (MD_EXEC_PREFIX): Remove, no longer used.
98         (MD_STARTFILE_PREFIX): Likewise.
99         (INCLUDE_DEFAULTS): Likewise.
100         * config/alpha/t-vms:
101         (vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile.
102
103 2009-08-09  Richard Guenther  <rguenther@suse.de>
104
105         PR tree-optimization/41016
106         * tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification
107         bug.
108         (operand_precision): Remove.
109         (integral_operand_p): Likewise.
110         (recognize_single_bit_test): Adjust.
111
112 2009-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
113
114         * c-common.c (c_fully_fold_internal): Issue a warning if a binary
115         operation overflows.  Likewise non-cast unary arithmetic.
116         If one arm of a conditional expression is always taken,
117         inhibit evaluation warnings for the other arm.  Likewise inhibit
118         evaluation warnings for the second && or || operand if the first
119         operand is enough to determine the result.
120         * c-typeck.c (build_conditional_expr): Apply the same inhibition
121         rules here.
122         (build_binary_op): Prevent duplicate evaluation warnings.
123
124 2009-08-09  Richard Sandiford  <rdsandiford@googlemail.com>
125
126         * tree-out-of-ssa.c (insert_value_copy_on_edge): If the source
127         and destination have different modes, Use promote_mode to
128         determine the signedness of the conversion.  Assert that the
129         promoted source mode matches the destination mode.  Don't pass
130         the destination and destination mode to expand_expr if the source
131         mode is different.  Simplify conversion logic.
132
133 2009-08-09  Ira Rosen  <irar@il.ibm.com>
134
135         PR tree-optimization/41008
136         * tree-vect-loop.c (vect_is_simple_reduction): Get operands
137         from condition only in case it's a comparison. Adjust checks.   
138
139 2009-08-09  Bernd Schmidt  <bernd.schmidt@analog.com>
140
141         * tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function.
142         * tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it.
143         * tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer.
144         (enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE.
145         (dump_cand): Handle them.
146         (struct iv_cand): New members COST_STEP and AINC_USE.
147         (stmt_after_increment): Likewise.
148         (stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos.  All
149         callers changed.  Use gimple_uid comparison instead of scanning.
150         (add_candidate_1): When looking for identical candidates, take
151         AINC_USE into account.  Set it for new candidates.
152         (force_expr_to_var_cost): Cast target_spill_cost to int.
153         (get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC.
154         All callers changed.  Check for availability of autoinc addressing
155         modes, both in general for a given mode, and in the specific use
156         case.
157         (get_computation_cost_at): New argument CAN_AUTOINC.  All callers
158         changed.
159         (get_computation_cost): Likewise.
160         (autoinc_possible_for_pair, set_autoinc_for_original_candidates,
161         add_autoinc_candidates): New static functions.
162         (add_candidate): Call add_autoinc_candidates for candidates based on
163         a USE_ADDRESS use.
164         (find_iv_candidates): Call set_autoinc_for_original_candidates.
165         (determine_use_iv_cost_address): If we have an autoinc candidate at
166         the matching use, verify autoinc is possible and subtract the cost
167         of the candidate's step from the cost.
168         (determine_iv_cost): Record the cost of the increment in the COST_STEP
169         member of the candidate.
170         (tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and
171         determine_use_iv_costs.  Call renumber_gimple_stmt_uids_in_blocks.
172
173 2009-08-09  Douglas B Rupp  <rupp@gnat.com>
174
175         * config.build (ia64-hp-*vms*): New target.
176         (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
177         with ia64-hp-*vms*.
178         * config.gcc (ia64-hp-*vms*): New target.
179         (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
180         with ia64-hp-*vms*.
181         * config.host (ia64-hp-*vms*): New target.
182         (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
183         with ia64-hp-*vms*.
184
185 2009-08-08  Richard Guenther  <rguenther@suse.de>
186
187         PR tree-optimization/40991
188         * tree-ssa-pre.c (eliminate): Delay purging EH edges.
189
190 2009-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
191
192         * combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from
193         mode check.  Do truncations in an integer mode.
194         (force_to_mode): Handle subregs for all mode types.  Only do
195         arithmetic simplifications on integer modes.
196
197 2009-08-07  Richard Guenther  <rguenther@suse.de>
198
199         PR tree-optimization/40999
200         * tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs.
201         (maybe_fold_reference): Lookup constant initializers.
202         (fold_gimple_assign): Likewise.
203
204 2009-08-07  Richard Guenther  <rguenther@suse.de>
205
206         * tree-ssa.c (useless_type_conversion_p_1): Only for types
207         that require structural equality defer to the langhook.
208
209 2009-08-07  Martin Jambor  <mjambor@suse.cz>
210
211         * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed
212         comments.
213         (struct ipa_pass_through_data): New type.
214         (struct ipa_ancestor_jf_data): New type.
215         (union jump_func_value): Removed field formal_id, added fields
216         pass_through and ancestor.
217         (struct ipa_param_call_note): Changed type of formal_id to int from
218         unsigned.
219         * ipa-prop.c (ipa_print_node_jump_functions): Print pass through with
220         operations jump functions and ancestor jump functions.
221         (compute_complex_pass_through): New function.
222         (compute_scalar_jump_functions): Call compute_complex_pass_through,
223         reflect changes in the jump function strucutre.
224         (update_jump_functions_after_inlining): Ignore complex pass-through
225         and ancestor jump functions.
226         * ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and
227         polynomial pass-through with operation jump functions.
228
229 2009-08-07  Jakub Jelinek  <jakub@redhat.com>
230
231         * dwarf2out.c (output_fde): When doing hot/cold partitioning, use
232         fde->dw_fde_begin as begin label instead of hot/cold label.
233         Use LLSDAC label instead of LLSDA for second section lsda.
234         (dwarf2out_do_cfi_startproc): Add SECOND argument.  Use LLSDAC
235         label instead of LLSDA if it is true.
236         (dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust
237         callers.
238         * except.c (add_call_site, dw2_size_of_call_site_table): Add
239         SECTION argument.  Use it as index into crtl->eh.call_site_record
240         array.
241         (dw2_output_call_site_table): Likewise.  Add CS_FORMAT argument,
242         use it to determine how to print table entries instead of using
243         #ifdef HAVE_AS_LEB128.  For SECTION > 0 use hot resp. cold
244         label instead of normal begin label as base.
245         (sjlj_assign_call_site_values): Adjust add_call_site caller.
246         (convert_to_eh_region_ranges): When doing hot/cold partitioning,
247         ensure no EH range spans between sections and that landing pads
248         are always in the corresponding section.
249         (sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust
250         for crtl->eh.call_site_record being an array rather than scalar.
251         (output_one_function_exception_table): New function, copied
252         from output_function_exception_table.  Adjust
253         dw2_size_of_call_site_table, dw2_output_call_site_table
254         callers.  For SECOND section use *C suffixed labels.
255         (output_function_exception_table): Call
256         output_one_function_exception_table and, when doing hot/cold
257         partitioning, also another time for the second section.
258         * opts.c: Include except.h.
259         (decode_options): Allow -freorder-blocks-and-partition with
260         exceptions, unless SJLJ or TARGET_UNWIND_INFO.
261         * Makefile.in (opts.o): Depend on $(EXCEPT_H).
262         * function.h (struct rtl_eh): Change call_site_record from
263         scalar into array of 2 elements.
264
265 2009-08-07  Martin Jambor  <mjambor@suse.cz>
266
267         * ipa-prop.c (count_formal_params_1): New function.
268         (ipa_get_vector_of_formal_parms): New function.
269         (get_vector_of_formal_parm_types): New function.
270         (ipa_modify_formal_parameters): New function.
271         (ipa_modify_call_arguments): New function.
272         (index_in_adjustments_multiple_times_p): New function.
273         (ipa_combine_adjustments): New function.
274         (ipa_dump_param_adjustments): New function.
275         * ipa-prop.h (struct ipa_parm_adjustment): New type.
276         (ipa_get_vector_of_formal_parms): Declare.
277         (ipa_modify_formal_parameters): Declare.
278         (ipa_modify_call_arguments): Declare.
279         (ipa_combine_adjustments): Declare.
280         (ipa_dump_param_adjustments): Declare.
281         (build_ref_for_offset): Declare.
282         * Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies.
283         * tree-sra.c: Include ipa-prop.c.
284         (build_ref_for_offset): Make public. 
285
286 2009-08-06  Thomas Schwinge  <tschwinge@gnu.org>
287
288         * gcc/doc/extend.texi (__builtin_extract_return_address)
289         (__builtin_frob_return_address): Document.
290
291 2009-08-06  Paul Brook  <paul@codesourcery.com>
292
293         * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation.
294         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1
295         implementation on ARMv6-M.
296
297 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
298
299         * doc/extend.texi (pcs): Document new attribute for ARM.
300
301 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
302
303         * arm.c (pcs_attribute_args): Comment out unsupported attribute
304         variants.
305
306 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
307
308         * arm.c (arm_handle_pcs_attribute): Pass the entire name object to
309         warning ().
310
311 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
312
313         * arm.c (arm_handle_pcs_attribute): Use %qE in warning.
314
315 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
316
317         Merge ARM/hard_vfp_branch to trunk.
318
319         2009-08-04  Richard Earnshaw  <rearnsha@arm.com>
320
321         * arm.c (libcall_eq): New function.
322         (libcall_hash): New function.
323         (add_libcall): New function.
324         (arm_libcall_uses_aapcs_base): New function.
325         (arm_libcall_value): Use arm_libcall_uses_aapcs_base to check for
326         libcalls using the base PCS.
327         (arm_init_cumulative_args): Likewise.
328
329         2009-07-20  Joseph Myers  <joseph@codesourcery.com>
330
331         * config/arm/arm.c (arm_libcall_value, arm_init_cumulative_args):
332         Use base ABI for conversion libfuncs between HFmode and SFmode.
333
334         2009-05-12  Joseph Myers  <joseph@codesourcery.com>
335
336         * config/arm/arm.c (aapcs_vfp_sub_candidate): Use V2SImode and
337         V4SImode as representatives of all 64-bit and 128-bit vector
338         types.  Allow vector types without vector modes.
339         (aapcs_vfp_is_call_or_return_candidate): Handle vector types
340         without vector modes like BLKmode.
341         (aapcs_vfp_allocate): Handle TImode for non-TARGET_NEON like
342         BLKmode.  Avoid unsupported vector modes or TImode moves for
343         non-TARGET_NEON.
344         (aapcs_vfp_allocate_return_reg): Likewise.
345         (arm_vector_mode_supported_p): Only support V2SImode, V4HImode and
346         V8QImode if TARGET_NEON || TARGET_IWMMXT.
347
348         2009-05-12  Joseph Myers  <joseph@codesourcery.com>
349
350         * config/arm/arm.c (arm_handle_pcs_attribute): New.
351         (arm_get_pcs_model): Pass attribute arguments to
352         arm_pcs_from_attribute.
353         (arm_init_cumulative_args): Use base AAPCS for conversions from
354         floating-point types to DImode.
355         (arm_attribute_table): Add pcs attribute.
356         (arm_handle_pcs_attribute): New.
357         * config/arm/bpabi.h (DECLARE_LIBRARY_RENAMES): When renaming
358         conversions from floating-point types to DImode, also declare them
359         to use base AAPCS and declare functions they call to use base
360         AAPCS and their RTABI names.
361
362         2009-05-12  Joseph Myers  <joseph@codesourcery.com>
363
364         * doc/invoke.texi (-mfloat-abi=@var{name}): Remove statement about
365         -mfloat-abi=hard not being supported for VFP.
366
367         2009-05-11  Kazu Hirata  <kazu@codesourcery.com>
368
369         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Pass a libcall
370         SYMBOL_REF to hard_libcall_value.
371
372         2009-03-05  Joseph Myers  <joseph@codesourcery.com>
373             Richard Earnshaw  <rearnsha@arm.com>
374
375         * config/arm/arm.c (aapcs_layout_arg): Once a co-processor argument
376         has been put on the stack, all remaining co-processory arguments for
377         that co-processor also go on the stack.
378
379         2009-03-05  Joseph Myers  <joseph@codesourcery.com>
380
381         * config/arm/arm.c (arm_return_in_memory): Handle returning
382         vectors of suitable size in registers also for AAPCS case.
383
384         2009-01-13  Richard Earnshaw <rearnsha@arm.com>
385
386         * doc/tm.texi (TARGET_LIBCALL_VALUE): Add missing end statement.
387
388         2008-12-09  Richard Earnshaw <rearnsha@arm.com>
389
390         ARM Hard-VFP calling convention
391         * target-def.h (TARGET_LIBCALL_VALUE): New hook.
392         * target.h (gcc_target): Add libcall_value to table of call hooks.
393         * targhooks.h (default_libcall_value): Default implementation.
394         * targhooks.c (default_libcall_value): Likewise.
395         * doc/tm.texi (TARGET_LIBCALL_VALUE): Document it.
396         * optabs.c (expand_unop): Use it.
397         * expr.h (hard_libcall_value): Pass the function RTX through.
398         * calls.c (emit_library_call_value_1): Update call to 
399         hard_libcall_value.
400         * explow.c (hard_libcall_value): Use new target hook.
401         * testsuite/lib/target-supports.exp
402         (check_effective_target_arm_hard_vfp_ok): New hook.
403         (check_effective_target_arm_neon_ok): Improve test for neon
404         availability.
405         * testsuite/gcc.target/arm/eabi1.c: Only run test in base variant.
406         * config/arm/arm.c: Include cgraph.h
407         (TARGET_FUNCTION_VALUE): Override default hook.
408         (arm_pcs_default): New variable.
409         (arm_override_options): Don't fault hard calling convention with VFP.
410         Add support for AAPCS variants.
411         (arm_function_value): Make static.  Handle AAPCS variants.
412         (arm_libcall_value): New function.
413         (arm_apply_result_size): Handle VFP registers in results.
414         (arm_return_in_memory): Rework all AAPCS variants; handle hard-vfp
415         conventions.
416         (pcs_attribute_args): New variable.
417         (arm_pcs_from_attribute): New function.
418         (arm_get_pcs_model): New function.
419         (aapcs_vfp_cum_init): New function.
420         (aapcs_vfp_sub_candidate): New function.
421         (aapcs_vfp_is_return_candidate): New function.
422         (aapcs_vfp_is_call_candidate): New function.
423         (aapcs_vfp_allocate): New function.
424         (aapcs_vfp_allocate_return_reg): New function.
425         (aapcs_vfp_advance): New function.
426         (aapcs_cp_arg_layout): New variable.
427         (aapcs_select_call_coproc): New function.
428         (aapcs_select_return_coproc): New function.
429         (aapcs_allocate_return_reg): New function.
430         (aapcs_libcall_value): New function.
431         (aapcs_layout_arg): New function.
432         (arm_init_cumulative_args): Initialize AAPCS args data.
433         (arm_function_arg): Handle AAPCS variants using new interface.
434         (arm_arg_parital_bytes): Likewise.
435         (arm_function_arg_advance): New function.
436         (arm_function_ok_for_sibcall): Ensure that sibling calls agree on
437         calling conventions.
438         (arm_setup_incoming_varargs): Handle new AAPCS args data.
439         * arm.h (NUM_VFP_ARG_REGS): Define.
440         (LIBCALL_VALUE): Update.
441         (FUNCTION_VALUE): Delete.
442         (FUNCTION_VALUE_REGNO_P): Add VFP regs.
443         (arm_pcs): New enum.
444         (CUMULATIVE_ARGS): New data to support AAPCS argument marshalling.
445         (FUNCTION_ARG_ADVANCE): Call arm_function_arg_advance.
446         (FUNCTION_ARG_REGNO_P): Add VFP regs.
447         * arm-protos.h (arm_function_arg_advance): Add.
448         (aapcs_libcall_value): Add.
449         (arm_function_value): Delete.
450
451 2009-08-06  Uros Bizjak  <ubizjak@gmail.com>
452             H.J. Lu  <hongjiu.lu@intel.com>
453
454         PR target/40957
455         * config/i386/i386.c (standard_sse_mode_p): Remove.
456         (standard_sse_constant_p): Return 2 for integer mode
457         vector_all_ones_operand when SSE2 is enabled.
458         (standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd.
459         (ix86_expand_vector_move): Do not check for negative values from
460         standard_sse_constant_p.
461
462 2009-08-06  Richard Guenther  <rguenther@suse.de>
463
464         * tree-ssa.c (useless_type_conversion_p_1): Make function and
465         array type comparisons frontend independent.
466         * Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency.
467         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill
468         out array reference lower bound and element size operands.
469         (ao_ref_init_from_vn_reference): Properly compute the offset
470         for ARRAY_RANGE_REF.
471         (vn_reference_fold_indirect): Fill out array reference lower
472         bound and element size operands.
473         * tree-ssa-pre.c (phi_translate_1): Fail if we have to translate
474         a non gimple valued reference operand which can happen for
475         array reference lower bound or element size.
476         (create_component_ref_by_pieces_1): Properly generate the
477         element size operand for array references.
478
479 2009-08-06  Richard Guenther  <rguenther@suse.de>
480
481         PR tree-optimization/40964
482         * tree.c (iterative_hash_host_wide_int): Export.
483         * tree.h (iterative_hash_host_wide_int): Declare.
484         * tree-ssa-structalias.c (heapvar_map): New struct.
485         (heapvar_map_eq): New function.
486         (heapvar_map_hash): Likewise.
487         (heapvar_lookup): Adjust.
488         (heapvar_insert): Likewise.
489         (make_constraint_from_heapvar): Allow multiple heap variables
490         per decl at different offsets.
491         (init_alias_heapvars): Adjust.
492
493 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
494
495         * config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro.
496         * mips_output_sync_loop (mips_output_sync_loop): Only emit
497         trailing sync if TARGET_SYNC_AFTER_SC.
498
499 2009-08-05  David Daney  <ddaney@caviumnetworks.com>
500
501         * gcc/config/mips/sync.md (sync_compare_and_swap<mode>,
502         compare_and_swap_12, sync_add<mode>, sync_<optab>_12,
503         sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12,
504         sync_old_nand_12, sync_new_nand_12, sync_sub<mode>,
505         sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
506         sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
507         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
508         sync_new_nand<mode>, sync_lock_test_and_set<mode>,
509         test_and_set_12): Rewrite calls to mips_output_sync_loop.
510         * gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make
511         the prototype declaration match the definition.
512         * gcc/config/mips/mips.c (mips_output_sync_loop):  Emit sync
513         instructions explicitly.  Add barrier_before and operands
514         parameters.
515         * gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP,
516         MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12,
517         MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP,
518         MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
519         MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE,
520         MIPS_SYNC_EXCHANGE_12): Remove sync instructions.
521
522 2009-08-05  Andrew Pinski  <pinskia@gmail.com>
523
524         * tree-ssa-alias.c: Fix intervals to use [) syntax.
525
526 2009-08-05  Uros Bizjak  <ubizjak@gmail.com>
527             Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
528
529         PR target/40906
530         * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part
531         source operand.
532
533 2009-08-05  Jakub Jelinek  <jakub@redhat.com>
534
535         PR rtl-optimization/40924
536         * dse.c (canon_address): Before calling cselib_expand_value_rtx
537         make sure canon_rtx (mem_address) isn't simpler than
538         canon_rtx (expanded_mem_address).
539
540 2009-08-05  Li Feng  <nemokingdom@gmail.com>
541
542         * graphite-sese-to-poly.c (build_pbb_drs): Remove build alias set
543         for each poly_bb_p.
544         (build_scop_drs): Build alias set for each SCoP.
545
546 2009-08-04  Sandra Loosemore  <sandra@codesourcery.com>
547
548         * doc/invoke.texi (MIPS Options): Document new 1004K -march options.
549         * config/mips/mips.c (mips_cpu_info_table): Add 1004K cores.
550         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Add pattern for 1004K.
551         (MIPS_ARCH_FLOAT_SPEC): Likewise.
552         (BASE_DRIVER_SELF_SPECS): Likewise.
553
554 2009-08-04  Andrew Pinski  <pinskia@gmail.com>
555
556         * tree-ssa-alias.c: Fix some comment typos.
557
558 2009-08-04  Kaz Kojima  <kkojima@gcc.gnu.org>
559
560         * config/sh/linux-atomic.asm (ATOMIC_BOOL_COMPARE_AND_SWAP,
561         ATOMIC_OP_AND_FETCH, ATOMIC_COMBOP_AND_FETCH): Define.
562
563 2009-08-03  Janis Johnson  <janis187@us.ibm.com>
564
565         PR c/39902
566         * simplify-rtx.c (simplify_binary_operation_1): Disable
567         simplifications for decimal float operations.
568
569 2009-08-03  Jakub Jelinek  <jakub@redhat.com>
570
571         PR middle-end/40943
572         * tree-ssa.c (warn_uninitialized_var): Even on LHS warn for
573         operand of INDIRECT_REF.
574
575 2009-08-03  Uros Bizjak  <ubizjak@gmail.com>
576
577         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
578         constants referencing TLS symbols.
579
580 2009-08-03  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
581
582         * config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename
583         __sync_compare_and_swap_* to __sync_val_compare_and_swap_*.
584
585 2009-08-03  Richard Guenther  <rguenther@suse.de>
586
587         * tree.c (make_vector_type): Build a main variant first,
588         get the canonical one and then build the variant.
589         * tree-ssa.c (useless_type_conversion_p_1): Handle
590         fixed-point types.
591         (useless_type_conversion_p): Conversions to pointers to
592         incomplete record types are useless.
593
594 2009-08-03  Richard Guenther  <rguenther@suse.de>
595
596         * tree-cfg.c (pass_warn_unused_result): Mark name that no dump
597         file will be created.
598         * omp-low.c (pass_diagnose_omp_blocks): Likewise.
599         * toplev.c (compile_file): Adjust comment.
600
601 2009-08-03  Kaz Kojima  <kkojima@gcc.gnu.org>
602
603         * config/sh/sh-protos.h (sh_promote_function_mode): Remove.
604         * config/sh/sh.c (sh_promote_function_mode): Wrap long lines.
605         (TARGET_PROMOTE_FUNCTION_MODE): Define.
606         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
607         (sh_promote_function_mode): Fix typo.
608
609 2009-08-03  Andreas Krebbel  <krebbel1@de.ibm.com>
610
611         * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused.
612
613 2009-08-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
614
615         * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from
616         declaration arguments.
617
618 2009-08-02  Uros Bizjak  <ubizjak@gmail.com>
619
620         * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
621         of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01).
622         (ix86_split_ashl): Ditto.
623         (ix86_expand_vector_init_one_nonzero): Ditto.
624         (ix86_expand_vector_set): Ditto.
625         (ix86_expand_reduc_v4sf): Ditto.
626
627 2009-08-02  Paolo Bonzini  <bonzini@gnu.org>
628
629         * explow.c (promote_function_mode): Remove assert.
630         * config/sh/sh.c (sh_promote_function_mode): Declare.
631
632 2009-08-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
633
634         * config/pa/pa.c (pa_promote_function_mode): Declare.
635         Change to static.  Fix promote_mode call.
636
637         * gthr-dce.h (CONST_CAST2): Define if not defined.
638         (__gthread_setspecific): Use CONST_CAST2 to fix warning.
639
640         * config.gcc (hppa[12]*-*-hpux10*): Add stdint support.
641
642 2009-08-01  Paolo Bonzini  <bonzini@gnu.org>
643
644         * expr.c (store_constructor): Use promote_decl_mode.  Remove
645         now write-only variable unsignedp.
646         (expand_expr_real_1): Use promote_decl_mode.
647         * expr.h (promote_function_mode, promote_decl_mode): New.
648         (promote_mode): Remove last argument.
649         * function.c (assign_temp): Drop last argument of promote_mode.
650         (assign_parm_find_data_types): Use promote_function_mode.
651         (assign_parm_setup_reg): Likewise.
652         (expand_function_end): Use promote_function_mode.
653         * calls.c (initialize_argument_information): Use promote_function_mode.
654         (precompute_arguments): Use promote_mode instead of checking if
655         only PROMOTE_FUNCTION_MODE is defined.
656         (expand_call): When making sibcall decisions, use promote_function_mode.
657         Below, remove an if for targetm.calls.promote_function_return and
658         and use promote_function_mode.
659         (emit_library_call_value_1): Use promote_function_mode, fix bug
660         where promote_mode was passed FOR_CALL == 0 for a return value in an
661         assertion.
662         * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
663         * explow.c (promote_function_mode, promote_decl_mode): New.
664         (promote_mode): Keep only the FOR_CALL == 0 case.
665         * combine.c (setup_incoming_promotion): Remove test of
666         promote_function_args.  Use promote_function_mode.
667         * stmt.c (expand_value_return): Use promote_decl_mode.
668         (expand_decl): Use promote_decl_mode.
669
670         * expr.c (store_constructor): Use promote_decl_mode.  Remove
671         now write-only variable unsignedp.
672         (expand_expr_real_1): Use promote_decl_mode.
673         * expr.h (promote_function_mode, promote_decl_mode): New.
674         (promote_mode): Remove last argument.
675         * function.c (assign_temp): Drop last argument of promote_mode.
676         (assign_parm_find_data_types): Use promote_function_mode.
677         (assign_parm_setup_reg): Likewise.
678         (expand_function_end): Use promote_function_mode.
679         * calls.c (initialize_argument_information): Use promote_function_mode.
680         (precompute_arguments): Use promote_mode instead of checking if
681         only PROMOTE_FUNCTION_MODE is defined.
682         (expand_call): When making sibcall decisions, use promote_function_mode.
683         Below, remove an if for targetm.calls.promote_function_return and
684         and use promote_function_mode.
685         (emit_library_call_value_1): Use promote_function_mode, fix bug
686         where promote_mode was passed FOR_CALL == 0 for a return value in an
687         assertion.
688         * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
689         * explow.c (promote_function_mode, promote_decl_mode): New.
690         (promote_mode): Keep only the FOR_CALL == 0 case.
691         * combine.c (setup_incoming_promotion): Remove test of
692         promote_function_args.  Use promote_function_mode.
693         * stmt.c (expand_value_return): Use promote_decl_mode.
694         (expand_decl): Use promote_decl_mode.
695
696         * explow.c (promote_function_mode): Just call the target hook.
697         * targhooks.c (default_promote_function_mode,
698         default_promote_function_mode_always_promote): New.
699         * targhooks.h (default_promote_function_mode,
700         default_promote_function_mode_always_promote): Declare.
701         * target.h (promote_function_args, promote_function_return): Remove.
702         (promote_function_mode): New.
703         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
704         TARGET_PROMOTE_FUNCTION_RETURN): Remove.
705         (TARGET_PROMOTE_FUNCTION_MODE): New.
706         (TARGET_CALLS): Adjust.
707         * system.h (TARGET_PROMOTE_FUNCTION_ARGS,
708         TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.
709
710         * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
711         * config/s390/s390.c (s390_promote_function_mode): ... here,
712         with pointer handling.
713         (TARGET_PROMOTE_FUNCTION_MODE): Define.
714         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
715
716         * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
717         * config/sparc/sparc.c (sparc_promote_function_mode): ... here,
718         with pointer handling.
719         (TARGET_PROMOTE_FUNCTION_MODE): Define.
720         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
721         
722         * config/sh/sh-protos.h (sh_promote_function_mode): New.
723         * config/sh/sh.c (sh_promote_function_mode): New.
724         (TARGET_PROMOTE_FUNCTION_MODE): Define.
725         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
726
727         * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
728         * config/cris/cris.c (cris_promote_function_mode): ... here.
729         (TARGET_PROMOTE_FUNCTION_MODE): Define.
730         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
731
732         * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
733         * config/mmix/mmix.c (mmix_promote_function_mode): ... here.
734         (TARGET_PROMOTE_FUNCTION_MODE): Define.
735         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
736
737         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
738         * config/arm/arm.c (arm_promote_function_mode): ... here, without
739         complex type handling.
740         (TARGET_PROMOTE_FUNCTION_MODE): Define.
741         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
742
743         * config/pa/pa.c (pa_promote_function_mode): New.
744         (TARGET_PROMOTE_FUNCTION_MODE): Define.
745         (TARGET_PROMOTE_FUNCTION_RETURN): Remove.
746
747         * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
748         TARGET_PROMOTE_FUNCTION_RETURN): Remove.
749         (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
750         * config/xtensa/xtensa.c: Likewise.
751         * config/stormy16/stormy16.c: Likewise.
752         * config/iq2000/iq2000.c: Likewise.
753         * config/rs6000/rs6000.c: Likewise.
754         * config/picochip/picochip.c: Likewise.
755         * config/arc/arc.c: Likewise.
756         * config/mcore/mcore.c: Likewise.
757         * config/score/score.c: Likewise.
758         * config/mips/mips.c: Likewise.
759         * config/bfin/bfin.c: Likewise.
760         * config/ia64/ia64.c: Likewise (disabled though).
761
762         * config/frv/frv.h: Remove pointless remark.
763
764         * doc/tm.texi (PROMOTE_FUNCTION_MODE,
765         TARGET_PROMOTE_FUNCTION_ARGS,
766         TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
767         (TARGET_PROMOTE_FUNCTION_MODE): ... this.
768
769 2009-08-01  Sebastian Pop  <sebastian.pop@amd.com>
770
771         * doc/invoke.texi (-fgraphite-force-parallel): Renamed
772         -floop-parallelize-all.
773         * toplev.c (process_options): Rename flag_graphite_force_parallel to
774         flag_loop_parallelize_all.
775         * tree-ssa-loop.c (gate_graphite_transforms): Same.
776         * graphite.c (graphite_transform_loops): Same.
777         * common.opt: Same.
778         * graphite-poly.c (apply_poly_transforms): Same.
779
780 2009-07-31  Richard Earnshaw  <rearnsha@arm.com>
781
782         PR tree-optimization/40914
783         * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
784         if set, then check the delta field of the PMF record.
785         (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
786         (ipa_analyze_call_uses): Handle machines where the vbit for a PMF
787         call is stored in the delta.
788
789 2009-07-31  Adam Nemet  <anemet@caviumnetworks.com>
790
791         * config/mips/mips.md (*clear_upper32_dext): New pattern.
792
793 2009-07-31  Uros Bizjak  <ubizjak@gmail.com>
794
795         * config/i386/bsd.h (ASM_BYTE): New define.
796         * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
797         * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
798         .byte.  Use fputs or putc instead of fprintf where appropriate.
799         * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte.  Use
800         fputs or putc instead of fprintf where appropriate.
801         * config/i386/i386elf.h: Ditto.
802         * config/i386/sysv4.h: Ditto.
803         
804         * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
805         * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
806         (*tls_global_dynamic_64): Ditto.
807
808 2009-07-31  Christian Bruel  <christian.bruel@st.com>   
809
810         * gcc/config.gcc (sh*-*-elf): test with_libgloss.
811         
812 2009-07-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
813
814         * config/arm/arm.c (arm_arm_address_cost): Fix typo. 
815         Remove dead code for MINUS.
816
817 2009-07-31  Anthony Green  <green@moxielogic.com>
818
819         * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of
820         $r12 in prologue.
821         (moxie_expand_epilogue): Ditto for epilogue.
822         (moxie_setup_incoming_varargs): ABI change.  Use 5 registers for
823         incoming arguments.
824         (moxie_function_arg): Ditto.
825         (moxie_pass_by_reference): Ditto.
826         (moxie_arg_partial_bytes): Ditto.
827         * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto.
828         (FUNCTION_ARG_ADVANCE) Ditto.
829         (REG_PARM_STACK_SPACE) Ditto.
830         (FUNCTION_ARG_REGNO_P) Dito.
831
832         * config.gcc: Add moxie linux config support.
833         * gcc/config/moxie/uclinux.h: New file.
834
835 2009-07-31  DJ Delorie  <dj@redhat.com>
836
837         * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
838         (UNSPECV_SP_SWITCH_E): New.
839         (sp_switch_1): Change to an unspec.
840         (sp_switch_2): Change to an unspec.  Don't use post-inc when we
841         replace $r15.
842         * config/sh/sh.c (sh_expand_prologue): Use the constant pool to
843         reference the new stack's address
844
845 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
846
847         * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
848         graphite-clast-to-gimple.o, graphite-dependences.o,
849         graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
850         graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
851         (graphite-blocking.o,
852         graphite-clast-to-gimple.o, graphite-dependences.o,
853         graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
854         graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
855         * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
856         * cfgloop.h (struct loop): Add can_be_parallel field.
857         * common.opt (fgraphite-identity): Moved up.
858         (fgraphite-force-parallel): New flag.
859         * graphite.c: Rewrite.
860         * graphite.h: Rewrite.
861         * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
862         after Graphite.
863         * toplev.c (graphite_out_file): New file descriptor.
864         (graphite_in_file): New.
865         (process_options): flag_graphite_force_parallel cannot be used without
866         Graphite.
867         * tree-ssa-loop.c: Include toplev.h.
868         (gate_graphite_transforms): Enable flag_graphite for
869         flag_graphite_force_parallel.
870
871 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
872
873         * ChangeLog.graphite: New.
874         * graphite-blocking.c: New.
875         * graphite-clast-to-gimple.c: New.
876         * graphite-clast-to-gimple.h: New.
877         * graphite-dependences.c: New.
878         * graphite-dependences.h: New.
879         * graphite-interchange.c: New.
880         * graphite-poly.c: New.
881         * graphite-poly.h: New.
882         * graphite-ppl.c: New.
883         * graphite-ppl.h: New.
884         * graphite-scop-detection.c: New.
885         * graphite-scop-detection.h: New.
886         * graphite-sese-to-poly.c: New.
887         * graphite-sese-to-poly.h: New.
888         * sese.c: New.
889         * sese.h: New.
890
891 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
892
893         * tree-chrec.c (evolution_function_right_is_integer_cst): New.
894         * tree-chrec.h (evolution_function_right_is_integer_cst): Declared.
895
896 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
897
898         * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR.
899         (scev_is_linear_expression): Return false if the evolution is not
900         affine multivariate.
901
902 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
903
904         * tree-data-ref.c (graphite_find_data_references_in_stmt): New.
905         * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.
906
907 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
908
909         * tree-data-ref.c (debug_data_references): New.
910         (debug_data_reference): New.
911         * tree-data-ref.h (debug_data_references): Declared.
912         (debug_data_reference): Declared.
913
914 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
915
916         * tree-data-ref.c (stmt_simple_memref_p: Removed.
917         * tree-data-ref.h (scop_p): Removed.
918         (struct data_reference): Remove field scop.
919         (DR_SCOP): Removed.
920         (stmt_simple_memref_p): Removed.
921
922 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
923
924         * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument.
925         * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch
926         basic block empty.
927
928 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
929
930         * doc/invoke.texi (-fgraphite-force-parallel): Documented.
931
932 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
933
934         * doc/invoke.texi (-fgraphite-identity): Documented.
935
936 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
937
938         * tree-scalar-evolution.c: Fix comment.
939         (instantiate_scev_1): Return unknow from scev instantiation if the
940         result is not above instantiate_below.
941
942 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
943
944         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
945         static anymore.  Instantiate the symbols that may have been introduced
946         by chrec_apply.
947         * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
948         Declared.
949
950 2009-07-30  DJ Delorie  <dj@redhat.com>
951
952         * config/mep/mep.c (mep_asm_init_sections): Add section flags and
953         .vliw directive to VLIW sections.
954
955 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
956
957         * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
958         New variables.
959         ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
960         (AUTOHEADER): New variable.
961         ($(srcdir)/cstamp-h.in): Use it.
962
963 2009-07-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
964             Pat Haugen  <pthaugen@us.ibm.com>
965             Revital Eres <ERES@il.ibm.com>
966
967         * config/rs6000/vector.md (VEC_F): Add VSX support.
968         (VEC_A): Ditto.
969         (VEC_N): Ditto.
970         (mov<mode>): Ditto.
971         (vector_load_<mode>): Ditto.
972         (vector_store_<mode>): Ditto.
973         (vector GPR move split): Ditto.
974         (vec_reload_and_plus_<mptrsize>): Ditto.
975         (vec_reload_and_reg_<mptrsize>): Ditto.
976         (add<mode>3): Ditto.
977         (sub<mode>3): Ditto.
978         (mul<mode>3): Ditto.
979         (neg<mode>2): Ditto.
980         (abs<mode>2): Ditto.
981         (smin<mode>3): Ditto.
982         (smax<mode>3): Ditto.
983         (vector_eq<mode>): Ditto.
984         (vector_gt<mode>): Ditto.
985         (vector_ge<mode>): Ditto.
986         (vector_gtu<mode>): Ditto.
987         (vector_select_<mode>_uns): Ditto.
988         (vector_eq_<mode>_p): Ditto.
989         (vector_gt_<mode>_p): Ditto.
990         (vector_ge_<mode>_p): Ditto.
991         (vector_gtu_<mode>_p): Ditto.
992         (cr6_test_for_zero): Ditto.
993         (cr6_test_for_zero_reverse): Ditto.
994         (cr6_test_for_lt): Ditto.
995         (cr6_test_for_lt_reverse): Ditto.
996         (xor<mode>3): Ditto.
997         (ior<mode>3): Ditto.
998         (and<mode>3): Ditto.
999         (one_cmpl<mode>2): Ditto.
1000         (nor<mode>2): Ditto.
1001         (andc<mode>2): Ditto.
1002         (float<VEC_int<mode>2): Ditto.
1003         (unsigned_float<VEC_int><mode>2): Ditto.
1004         (fix_trunc<mode><VEC_int>2): Ditto.
1005         (fixuns_trunc<mode><VEC_int>2): Ditto.
1006         (vec_init<mode>):
1007         (vec_set<mode>): Ditto.
1008         (vec_extract<mode>): Ditto.
1009         (vec_interleave_highv4sf): Ditto.
1010         (vec_interleave_lowv4sf): Ditto.
1011         (vec_realign_load_<mode>): Ditto.
1012         (vec_shl_<mode>): Ditto.
1013         (vec_shr_<mode>): Ditto.
1014         (div<mode>3): New patterns for VSX.
1015         (vec_interleave_highv2df): Ditto.
1016         (vec_interleave_lowv2df): Ditto.
1017         (vec_pack_trunc_v2df): Ditto.
1018         (vec_pack_sfix_trunc_v2df): Ditto.
1019         (vec_pack_ufix_trunc_v2df): Ditto.
1020         (vec_unpacks_hi_v4sf): Ditto.
1021         (vec_unpacks_lo_v4sf): Ditto.
1022         (vec_unpacks_float_hi_v4si): Ditto.
1023         (vec_unpacku_float_lo_v4si): Ditto.
1024         (vec_unpacku_float_hi_v4si): Ditto.
1025         (vec_unpacks_float_lo_v4si): Ditto.
1026         (movmisalign<mode>): Ditto.
1027         (vector_ceil<mode>2): New patterns for vectorizing math library.
1028         (vector_floor<mode>2): Ditto.
1029         (vector_btrunc<mode>2): Ditto.
1030         (vector_copysign<mode>3): Ditto.
1031
1032         * config/rs6000/predicates.md (easy_vector_constant_msb): New
1033         predicate for setting the high bit in each word, used for copysign.
1034
1035         * config/rs6000/ppc-asm.h (f19): Whitespace.
1036         (f32-f63): Define if VSX.
1037         (v0-v31): Define if Altivec.
1038         (vs0-vs63): Define if VSX.
1039
1040         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md.
1041
1042         * config/rs6000/power7.md: New file, provide tuning parameters for
1043         -mcpu=power7.
1044
1045         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support.
1046         (rs6000_cpu_cpp_builtins): Ditto.
1047         (altivec_overloaded_builtins): Ditto.
1048         (altivec_resolve_overloaded_builtin): Ditto.
1049
1050         * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new
1051         debug switch to disable vectorizing simple math builtin
1052         functions.
1053
1054         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
1055         Vectorize simple math builtin functions.
1056         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
1057         hook to vectorize math builtins.
1058         (rs6000_override_options): Enable -mvsx on -mcpu=power7.
1059         (rs6000_builtin_conversion): Add VSX/power7 support.
1060         (rs6000_builtin_vec_perm): Ditto.
1061         (vsplits_constant): Add support for loading up a vector constant
1062         with just the high bit set in each part.
1063         (rs6000_expand_vector_init): Add VSX/power7 support.
1064         (rs6000_expand_vector_set): Ditto.
1065         (rs6000_expand_vector_extract): Ditto.
1066         (rs6000_emit_move): Ditto.
1067         (bdesc_3arg): Ditto.
1068         (bdesc_2arg): Ditto.
1069         (bdesc_1arg): Ditto.
1070         (rs6000_expand_ternop_builtin): Ditto.
1071         (altivec_expand_builtin): Ditto.
1072         (rs6000_expand_unop_builtin): Ditto.
1073         (rs6000_init_builtins): Ditto.
1074         (altivec_init_builtins): Ditto.
1075         (builtin_function_type): Ditto.
1076         (rs6000_common_init_builtins): Ditto.
1077         (rs6000_handle_altivec_attribute); Ditto.
1078         (rs6000_mangle_type): Ditto.
1079         (rs6000_vector_mode_supported_p): Ditto.
1080         (rs6000_mode_dependent_address): Altivec addresses with AND -16
1081         are mode dependent.
1082
1083         * config/rs6000/vsx.md: New file for VSX support.
1084
1085         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for
1086         identifing values with just the most significant bit set.
1087         (enum rs6000_builtins): Add builtins for VSX.  Add simple math
1088         vectorized builtins.
1089
1090         * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete.
1091         (UNSPEC_VRFIM): Delete.
1092         (splitter for loading up vector with most significant bit): New
1093         splitter for vectorizing copysign.
1094         (altivec_vrfiz): Rename from altivec_fturncv4sf2.  Add support for
1095         vectorizing simple math functions.
1096         (altivec_vrfip): Add support for vectorizing simple math functions.
1097         (altivec_vrfim): Ditto.
1098         (altivec_copysign_v4sf3): New insn for Altivec copysign support.
1099
1100         * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant.
1101         (power7.md, vsx.md): Include for power7 support.
1102         (copysigndf3): Use VSX instructions if -mvsx.
1103         (negdf2_fpr): Ditto.
1104         (absdf2_fpr): Ditto.
1105         (nabsdf2_fpr): Ditto.
1106         (adddf3_fpr): Ditto.
1107         (subdf3_fpr): Ditto.
1108         (muldf3_fpr): Ditto.
1109         (divdf3_fpr): Ditto.
1110         (fix_truncdfdi2_fpr): Ditto.
1111         (cmpdf_internal1): Ditto.
1112         (fred, fred_fpr): Convert into expander/insn to add VSX support.
1113         (btruncdf2, btruncdf2_fpr): Ditto.
1114         (ceildf2, ceildf2_fpr): Ditto.
1115         (floordf2, floordf2_fpr): Ditto.
1116         (floatdidf2, floatdidf2_fpr): Ditto.
1117         (fmadddf4_fpr): Name insn.  Use VSX instructions if -mvsx.
1118         (fmsubdf4_fpr): Ditto.
1119         (fnmadddf4_fpr_1): Ditto.
1120         (fnmadddf4_fpr_2): Ditto.
1121         (fnmsubdf4_fpr_1): Ditto.
1122         (fnmsubdf4_fpr_2): Ditto.
1123         (fixuns_truncdfdi2): Add expander for VSX support.
1124         (fix_truncdfdi2): Ditto.
1125         (fix_truncdfsi2): Ditto.
1126         (ftruncdf2): Ditto.
1127         (btruncsf2): Whitespace.
1128         (movdf_hardfloat32): Add support for VSX registers.
1129         (movdf_softfloat32): Ditto.
1130         (movdf_hardfloat64): Ditto.
1131         (movdf_hardfloat64_mfpgpr): Ditto.
1132         (movdf_softfloat64): Ditto.
1133         (movti splitters): Add check for vector registers supporting
1134         TImode in the future.
1135         (bpermd): Add power7 bpermd instruction.
1136
1137         * config/rs6000/altivec.h (vec_div): Define if VSX.
1138         (vec_mul): Ditto.
1139         (vec_msub): Ditto.
1140         (vec_nmadd): Ditto.
1141         (vec_nearbyint): Ditto.
1142         (vec_rint): Ditto.
1143         (vec_sqrt): Ditto.
1144         (all predicates): Use the generic builtin function, and not the V4SF
1145         specific function so that the predicates will work with VSX's V2DF.
1146         (vec_all_*): Ditto.
1147         (vec_any_*): Ditto.
1148
1149         * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
1150         Document new VSX functions and types.
1151
1152         * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx
1153         switches.
1154
1155         * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws",
1156         "wa", and "j" constraints.  Modify "v" to talk about Altivec
1157         instead of just vector.
1158
1159 2009-07-30  Andrew MacLeod  <amacleod@redhat.com>
1160
1161         PR debug/26475
1162         * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
1163         location for phi arguments.
1164         (rewrite_update_phi_arguments): Find locations for reaching defs.
1165         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
1166         Add location to add_phi_arg calls.
1167         * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
1168         * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
1169         split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
1170         * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
1171         create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
1172         * tree.h (struct phi_arg_d): Add location_t to PHI arguments.
1173         * tree-phinodes.c (make_phi_node): Initialize location.
1174         (resize_phi_node): Initialize location to UNKNOWN_LOCATION.
1175         (add_phi_arg): Add location parameter.
1176         (remove_phi_arg_num): Move location when moving phi argument.
1177         * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set 
1178         location.
1179         * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
1180         slpeel_update_phi_nodes_for_guard1,
1181         slpeel_update_phi_nodes_for_guard2,
1182         slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
1183         vect_loop_versioning): Set locations.
1184         * tree-parloops.c (create_phi_for_local_result,
1185         transform_to_exit_first_loop, create_parallel_loop): Add locations.
1186         * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
1187         * tree-vect-loop.c (get_initial_def_for_induction,
1188         vect_create_epilog_for_reduction, vect_finalize_reduction): Add
1189         locations.
1190         * tree-flow-inline.h (gimple_phi_arg_location): New.  Return locus.
1191         (gimple_phi_arg_location_from_edge): New.  Return locus from an edge.
1192         (gimple_phi_arg_set_location): New.  Set locus.
1193         (gimple_phi_arg_has_location): New.  Check for locus.
1194         (redirect_edge_var_map_location): New.  Return locus from var_map.
1195         * tree-vect-data-refs.c (vect_setup_realignment): Set location.
1196         * tree-ssa-phiopt.c (conditional_replacement): Set locus when
1197         combining PHI arguments.
1198         (cond_store_replacement): Set location.
1199         * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
1200         * grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
1201         scop_add_exit_phis_edge): Add locations.
1202         * tree-cfgcleanup.c (remove_forwarder_block,
1203         remove_forwarder_block_with_phi): Add locations.
1204         * tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
1205         * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
1206         locations.
1207         * tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
1208         * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
1209         flush_pending_stmts): Add source location.
1210         * lambda-code.c (perfect_nestify): Maintain location stack with argument
1211         stack to preserve locations.
1212         * tree-vect-stmts.c (vectorizable_load): Add location.
1213         * tree-inline.c (copy_phis_for_bb): Copy locus.
1214         (setup_one_parameter): Add call locus to inlined parameter stmts.
1215         (initialize_inlined_parameters): Pass in call location as parameter
1216         assignment locus.
1217         (tree_function_versioning): Pass location to setup_one_parameter.
1218         * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
1219         * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
1220         copy and edge lists.
1221         (insert_partition_copy_on_edge, insert_value_copy_on_edge,
1222         insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a 
1223         locus parameter and override the stmt default if provided.
1224         (new_elim_graph, clear_elim_graph, delete_elim_graph,
1225         elim_graph_add_edge, elim_graph_remove_succ_edge,
1226         FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
1227         elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
1228         eliminate_phi):  Add locus info in elimination graph for each edge and
1229         value copy.
1230         (insert_backedge_copies): Copy locus if present.
1231         * tree-flow.h (struct _edge_var_map): Add locus field.
1232         * tree-switch_conversions.c (fix_phi_nodes): Add locations.
1233         * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
1234         add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add 
1235         locations.
1236         * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.
1237         
1238 2009-07-30  Martin Jambor  <mjambor@suse.cz>
1239
1240         PR tree-optimization/40570
1241         * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
1242         use inlining loops.
1243
1244 2009-07-30  Razya Ladelsky <razya@il.ibm.com>
1245
1246         * ssa-loop-manip.c: Include langhooks.h.
1247         (rewrite_phi_with_iv): New.
1248         (rewrite_all_phi_nodes_with_iv): New.
1249         (canonicalize_loop_ivs): Move here from tree-parloops.c.
1250         Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv.
1251         * tree-parloops.c (loop_parallel_p): Move out all conditions
1252         except dependency check.
1253         (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c.
1254         (gen_parallel_loop): Call canonicalize_loop_ivs without
1255         reduction_list argument.
1256         (build_new_reduction): New.
1257         (gather_scalar_reductions): New.
1258         (try_get_loop_niter): New.
1259         (try_create_reduction_list): New.
1260         (parallleize_loops): Change the parallel conditions check.
1261         * tree-flow.h (canonicalize_loop_ivs): Remove one argument.
1262         * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency.
1263
1264 2009-07-30  Dave Korn  <dave.korn.cygwin@gmail.com>
1265
1266         * opt-functions.awk (opt_args): Allow argument to be enclosed in
1267         curly braces.
1268         * doc/options.texi (Option properties):  Mention new quoting syntax.
1269
1270 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
1271
1272         * config/alpha/alpha.c (alpha_start_function):
1273         Handle VMS_DEBUG_MAIN_POINTER
1274         * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro.
1275         * doc/invoke.texi: Document -mdebug-main switch.
1276
1277 2009-07-29  Richard Henderson  <rth@redhat.com>
1278
1279         * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
1280         (cgraph_create_edge_including_clones): Likewise.
1281         * tree-inline.c (copy_bb): Operate on the correct edges
1282         when updating the callgraph.
1283
1284 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
1285
1286         * config/alpha/vms-cc.c: Deleted.
1287         * config/alpha/vms-ld.c: Deleted.
1288         * config/alpha/t-vms64: Moved to config/vms
1289         * config/alpha/vms-crt0-64.c: Moved to config/vms
1290         * config/alpha/vms-crt0.c: Moved to config/vms
1291         * config/alpha/vms-psxcrt0-64.c: Moved to config/vms
1292         * config/alpha/vms-psxcrt0.c: Moved to config/vms
1293         * config/alpha/xm-vms.h: Moved to config/vms
1294         * config/alpha/x-vms: Moved to config/vms
1295         * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
1296         config/vms/t-vms.
1297         * config/vms/t-vms: Moved here from config/alpha. Alpha specific
1298         parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
1299         (version): Set.
1300         * config/vms/t-vms64: Moved here from config/alpha
1301         * config/vms/vms-crt0-64.c: Moved here from config/alpha.
1302         (argc,argv,envp): Enforce 32bit malloc'ing.
1303         * config/vms/vms-psxcrt0-64.c: Likewise.
1304         * config/vms/vms-crt0.c: Moved here from config/alpha.
1305         * config/vms/vms-psxcrt0.c: Likewise.
1306         * config/vms/vms-crtl-64.h: New file.
1307         * config/vms/vms-crtl.h: New file.
1308         * config/vms/vms.opt: New file.
1309         * config/vms/xm-vms64.h: New file.
1310         * config/vms/xm-vms.h: Moved here from config/alpha.
1311         (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
1312         Set.
1313         * config/vms/x-vms: Moved here from config/alpha.
1314         (version, VMS_EXTRA_PARTS): Moved to t-vms.
1315         (vms-ld.o, vms-cc.o): Removed.
1316         (LN, LN_S, USE_COLLECT2, POD2MAN): Set.
1317
1318 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
1319
1320         * dwarf2out.c (add_name_and_src_coords_attributes): Push on the
1321         correct stack (obvious VMS fix).
1322
1323 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
1324
1325         * dwarf2out.c (output_file_names): Output VMS style file name, size,
1326         date, version info if VMS_DEBUGGING_INFO defined.
1327         * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
1328         size, date calculating code moved here.
1329
1330 2009-07-29  Paul Brook  <paul@codesourcery.com>
1331
1332         * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and
1333         do_push/do_pop.
1334
1335 2009-07-29  Uros Bizjak  <ubizjak@gmail.com>
1336
1337         PR target/40577
1338         * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
1339         to DImode when generating insq_le insn.
1340
1341 2009-07-28  Douglas B Rupp  <rupp@gnat.com>
1342
1343         * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET):
1344         New macro set for VMS_DEBUGGGING_INFO.
1345         (AT_string_form): Use it.
1346
1347 2009-07-28  DJ Delorie  <dj@redhat.com>
1348
1349         * config/mep/mep.c (vtext_section): New.
1350         (vftext_section): New.
1351         (ftext_section): New.
1352         (mep_select_section): Add support for functions.
1353         (mep_unique_section): Likewise.
1354         (mep_asm_init_sections): Likewise.
1355         (mep_encode_section_info): Remove it from here.
1356
1357         * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
1358
1359 2009-07-28  Paolo Bonzini  <bonzinI@gnu.org>
1360
1361         * tree.h (TREE_DEPRECATED): Document it is used for types too.
1362         (TYPE_VECTOR_OPAQUE): Use default_def_flag
1363
1364 2009-07-28  Douglas B Rupp  <rupp@gnat.com>
1365
1366         * dwarf2out.c (output_file_names): Test new macro
1367         DWARF2_DIR_SHOULD_END_WITH_SEPARATOR.
1368         (add_comp_dir_attribute): Likewise.
1369
1370 2009-07-28  Kai Tietz  <kai.tietz@onevision.com>
1371
1372         * config/i386/mingw-w64.h (LINK_SPEC): Add
1373         separating space between commands.
1374
1375 2009-07-28  Jan Hubicka  <jh@suse.cz>
1376
1377         PR tree-optimization/40759
1378         * tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses
1379         for renaming.
1380
1381 2009-07-27  DJ Delorie  <dj@redhat.com>
1382
1383         * config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit
1384         types are dword-aligned.
1385         (mep_expand_va_start): Likewise.
1386
1387 2009-07-27  Olivier Hainque  <hainque@adacore.com>
1388             Douglas B Rupp  <rupp@gnat.com>
1389
1390         * convert.c (convert_to_pointer): Don't assume the target
1391         pointer type is POINTER_SIZE long. Fetch its precision instead.
1392
1393 2009-07-27  Douglas B Rupp  <rupp@gnat.com>
1394
1395         * system.h (fopen): Undefine if macro.
1396
1397 2009-07-27  Jakub Jelinek  <jakub@redhat.com>
1398
1399         * dwarf2out.c (output_cfi_p): Removed.
1400         (output_cfis): New function.
1401         (output_fde): New function, split from output_call_frame_info.
1402         (output_call_frame_info): Use it.
1403         (dwarf2out_switch_text_section): Use output_cfis.
1404
1405 2009-07-24  Kai Tietz  <kai.tietz@onevision.com>
1406
1407         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when
1408         TARGET_BI_ARCH is specified without enabling SJLJ.
1409         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT,
1410         if TARGET_64BIT and TARGET_BI_ARCH aren't defined.
1411
1412 2009-07-26  Mikael Pettersson <mikpe@it.uu.se>
1413
1414         * arm.md (negdi2): Use DImode if forcing a value into a register.
1415
1416 2009-07-26  Ira Rosen  <irar@il.ibm.com>
1417
1418         PR tree-optimization/40801
1419         * tree-vect-stmts.c (vectorizable_call): Get previous copy
1420         of vector operand from the previous copy of vector statement.
1421         Pass the correct definition type value to
1422         vect_get_vec_def_for_stmt_copy().
1423
1424 2009-07-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1425
1426         * collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to
1427         const char ** conversion.
1428
1429 2009-07-25 David Daney <ddaney@caviumnetworks.com>
1430
1431         * system.h (gcc_assert): Invoke __builtin_unreachable() instead of
1432         fancy_abort() if !ENABLE_ASSERT_CHECKING.
1433         (gcc_unreachable): Invoke __builtin_unreachable() if
1434         !ENABLE_ASSERT_CHECKING.
1435
1436 2009-07-25  David Daney  <ddaney@caviumnetworks.com>
1437
1438         PR rtl-optimization/40445
1439         * emit-rtl.c (next_nonnote_insn_bb): New function.
1440         * rtl.h (next_nonnote_insn_bb): Declare new function.
1441         * cfgcleanup.c (try_optimize_cfg): Don't remove an empty block
1442         with no successors that is the successor of the ENTRY_BLOCK.
1443         Continue from the top after removing an empty fallthrough block.
1444         * cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead
1445         of next_nonnote_insn.
1446
1447 2009-07-25  David Daney  <ddaney@caviumnetworks.com>
1448
1449         * cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks.
1450         
1451 2009-07-25  Martin Jambor  <mjambor@suse.cz>
1452
1453         * c-common.c (c_common_attribute_table): New element for noclone.
1454         (handle_noclone_attribute): New function. Forward-declare.
1455         * tree-inline.c (tree_versionable_function_p): Check for noclone
1456         attribute.
1457         * doc/extend.texi (Labels as Values): Document need for noclone.
1458         (Function Attributes): Document noclone attribute.
1459
1460 2009-07-25  Jakub Jelinek  <jakub@redhat.com>
1461
1462         PR rtl-optimization/34999
1463         * dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi
1464         and dw_fde_switched_cold_to_hot fields.
1465         (output_cfi_p): New function.
1466         (output_call_frame_info): If fde->dw_fde_switched_sections,
1467         output 2 FDEs instead of one with corrupted header.
1468         (dwarf2out_do_cfi_startproc): New function.
1469         (dwarf2out_begin_prologue): Use it.  Initialize fde->dw_fde_switch_cfi
1470         and fde->dw_fde_switched_cold_to_hot.
1471         (dwarf2out_switch_text_section): Compute
1472         fde->dw_fde_switched_cold_to_hot.  Switch to new text section here.
1473         If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call
1474         dwarf2out_do_cfi_startproc plus emit again currently active CFI insns.
1475         Otherwise, compute fde->dw_fde_switch_cfi.
1476
1477 2009-07-24  Cary Coutant  <ccoutant@google.com>
1478
1479         * tree-cfg.c (assign_discriminator): Add explicit parentheses.
1480
1481 2009-07-24  Cary Coutant  <ccoutant@google.com>
1482
1483         * cfghooks.c (split_block): Copy discriminator to new block.
1484         * tree-cfg.c (assign_discriminator): Check location of last
1485         instruction in block as well as first.
1486
1487 2009-07-24  Uros Bizjak  <ubizjak@gmail.com>
1488
1489         * config/i386/linux.c: Use fputs or putc instead of fprintf
1490         where appropriate.
1491         * config/i386/gas.h: Ditto.
1492         * config/i386/x86-64.h: Ditto.
1493         * config/i386/att.h: Ditto.
1494
1495 2009-07-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1496
1497         * expmed.c (emit_store_flag): Use a recursive call to optimize the
1498         xor case.
1499
1500 2009-07-24  Martin Jambor  <mjambor@suse.cz>
1501
1502         * ipa-prop.h (struct ipa_node_params): New flag node_enqued.
1503         (ipa_push_func_to_list_1): Declare.
1504         (ipa_push_func_to_list): New function.
1505
1506         * ipa-prop.c (ipa_push_func_to_list_1): New function.
1507         (ipa_init_func_list): Call ipa_push_func_to_list_1.
1508         (ipa_push_func_to_list): Removed.
1509         (ipa_pop_func_from_list): Clear node_enqueued flag.
1510
1511 2009-07-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1512         
1513         * config/s390/s390.c (override_options): Default
1514         max-unrolled-insns to 100 for z10 tuning.
1515
1516 2009-07-24  Tobias Grosser  <grosser@fim.uni-passau.de>
1517
1518         * Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o
1519         tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o,
1520         tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o,
1521         tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o,
1522         tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o
1523         tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o,
1524         lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H.
1525
1526 2009-07-24  Kai Tietz  <kai.tietz@onevision.com>
1527
1528         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and
1529         use default set in mingw32.h header.
1530         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and
1531         64-bit /mingw/include path.
1532         (STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib
1533         path.
1534
1535 2009-07-23  Neil Vachharajani  <nvachhar@google.com>
1536
1537         PR rtl-optimization/40209
1538         * loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem.
1539
1540 2009-07-23  Uros Bizjak  <ubizjak@gmail.com>
1541
1542         * config/i386/i386.c: Use ASM_LONG instead of .long.  Concatenate
1543         ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings
1544         with the rest of string where appropriate.  Use fputs or putc
1545         instead of fprintf where appropriate.
1546
1547 2009-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
1548             Pat Haugen  <pthaugen@us.ibm.com>
1549             Revital Eres <ERES@il.ibm.com>
1550
1551         * config/rs6000/vector.md: New file.  Move most of the vector
1552         expander support here from altivec.md to allow for the VSX vector
1553         unit in the future.  Add support for secondary_reload patterns.
1554         Rewrite the patterns for vector comparison, and vector comparison
1555         predicate instructions so that the RTL expresses the desired
1556         behavior, instead of using unspec.
1557
1558         * config/rs6000/constraints.md ("f" constraint): Use
1559         rs6000_constraints to hold the precalculated register class.
1560         ("d" constraint): Ditto.
1561         ("wd" constraint): New constraint for VSX.
1562         ("wf" constraint): Ditto.
1563         ("ws" constraint): Ditto.
1564         ("wa" constraint): Ditto.
1565         ("wZ" constraint): Ditto.
1566         ("j" constraint): Ditto.
1567
1568         * config/rs6000/predicates.md (vsx_register_operand): New
1569         predicate for VSX.
1570         (vfloat_operand): New predicate for vector.md.
1571         (vint_operand): Ditto.
1572         (vlogical_operand): Ditto.
1573         (easy_fp_constant): If VSX, 0.0 is an easy constant.
1574         (easy_vector_constant): Add VSX support.
1575         (altivec_indexed_or_indirect_operand): New predicate for
1576         recognizing Altivec style memory references with AND -16.
1577
1578         * config/rs6000/rs6000.c (rs6000_vector_reload): New static global
1579         for vector secondary reload support.
1580         (rs6000_vector_reg_class): Delete, replacing it with
1581         rs6000_constraints.
1582         (rs6000_vsx_reg_class): Ditto.
1583         (rs6000_constraints): New array to hold the register classes of
1584         each of the register constraints that can vary at runtime.
1585         (builtin_mode_to_type): New static array for builtin function type
1586         creation.
1587         (builtin_hash_table): New static hash table for builtin function
1588         type creation.
1589         (TARGET_SECONDARY_RELOAD): Define target hook.
1590         (TARGET_IRA_COVER_CLASSES): Ditto.
1591         (rs6000_hard_regno_nregs_internal): If -mvsx, floating point
1592         registers are 128 bits if VSX memory reference instructions are used.
1593         (rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory
1594         unit is being used.
1595         (rs6000_debug_vector_unit): Move into rs6000_debug_reg_global.
1596         (rs6000_debug_reg_global): Move -mdebug=reg statements here.
1597         Print several of the scheduling related parameters.
1598         (rs6000_init_hard_regno_mode_ok): Switch to putting constraints in
1599         rs6000_constraints instead of rs6000_vector_reg_class.  Move
1600         -mdebug=reg code to rs6000_debug_reg_global.  Add support for
1601         -mvsx-align-128 debug switch.  Drop testing float_p if VSX or
1602         Altivec.  Add VSX support.  Setup for secondary reload support on
1603         Altivec/VSX registers.
1604         (rs6000_override_options): Make power7 set the scheduling groups
1605         like the power5.  Add support for new debug switches to override
1606         the scheduling defaults.  Temporarily disable -mcpu=power7 from
1607         setting -mvsx.  Add support for debug switches -malways-hint,
1608         -msched-groups, and -malign-branch-targets.
1609         (rs6000_buitlin_conversion): Add support for returning unsigned
1610         vector conversion functions to fix regressions due to stricter
1611         type checking.
1612         (rs6000_builtin_mul_widen_even): Ditto.
1613         (rs6000_builtin_mul_widen_odd): Ditto.
1614         (rs6000_builtin_vec_perm): Ditto.
1615         (rs6000_vec_const_move): On VSX, use xxlxor to clear register.
1616         (rs6000_expand_vector_init): Initial VSX support for using xxlxor
1617         to zero a register.
1618         (rs6000_emit_move): Fixup invalid const symbol_ref+reg that is
1619         generated upstream.
1620         (bdesc_3arg): Add builtins for unsigned types.  Add builtins for
1621         VSX types for bit operations.  Changes to accomidate vector.md.
1622         (bdesc_2arg): Ditto.
1623         (bdesc_1arg): Ditto.
1624         (struct builtin_description_predicates): Rewrite predicate
1625         handling so that RTL describes the operation, instead of passing
1626         the instruction to be used as a string argument.
1627         (bdesc_altivec_preds): Ditto.
1628         (altivec_expand_predicate_builtin): Ditto.
1629         (altivec_expand_builtin): Ditto.
1630         (rs6000_expand_ternop_builtin): Use a switch instead of an if
1631         statement for vsldoi support.
1632         (altivec_expand_ld_builtin): Change to use new names from vector.md.
1633         (altivec_expand_st_builtin): Ditto.
1634         (paired_expand_builtin): Whitespace changes.
1635         (rs6000_init_builtins): Add V2DF/V2DI types.  Initialize the
1636         builtin_mode_to_type table for secondary reload.  Call
1637         builtin_function_type to build random builtin functions.
1638         (altivec_init_builtins): Change to use builtin_function_type to
1639         create builtin function types dynamically as we need them.
1640         (builtin_hash_function): New support for hashing the tree types
1641         for builtin function as we need it, rather than trying to build
1642         all of the trees that we need.  Add initial preliminary VSX support.
1643         (builtin_function_type): Ditto.
1644         (builtin_function_eq): Ditto.
1645         (builtin_hash_struct): Ditto.
1646         (rs6000_init_builtins): Ditto.
1647         (rs6000_common_init_builtins): Ditto.
1648         (altivec_init_builtins): Ditto.
1649         (rs6000_common_init_builtins): Ditto.
1650         (enum reload_reg_type): New enum for simplifing reg classes.
1651         (rs6000_reload_register_type): Simplify register classes into GPR,
1652         Vector, and other registers.  Altivec and VSX addresses in reload.
1653         (rs6000_secondary_reload_inner): Ditto.
1654         (rs6000_ira_cover_classes): New target hook, that returns the
1655         appropriate cover classes, based on -mvsx being used or not.
1656         (rs6000_secondary_reload_class): Add VSX support.
1657         (get_vec_cmp_insn): Delete, rewrite vector conditionals.
1658         (get_vsel_insn): Ditto.
1659         (rs6000_emit_vector_compare): Rewrite vector conditional support
1660         so that where we can, we use RTL operators, instead of blindly use
1661         UNSPEC.
1662         (rs6000_emit_vector_select): Ditto.
1663         (rs6000_emit_vector_cond_expr): Ditto.
1664         (rs6000_emit_minmax): Directly generate min/max under altivec, vsx.
1665         (create_TOC_reference): Add -mdebug=addr support.
1666         (emit_frame_save): VSX loads/stores need register indexed addressing.
1667
1668         * config/rs6000/rs6000.md: Include vector.md.
1669
1670         * config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md.
1671
1672         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1673         support for V2DI, V2DF in logical, permute, select operations.
1674
1675         * config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug
1676         switch for vsx/power7.
1677         (-mvsx-scalar-memory): Ditto.
1678         (-mvsx-align-128): Ditto.
1679         (-mallow-movmisalign): Ditto.
1680         (-mallow-df-permute): Ditto.
1681         (-msched-groups): Ditto.
1682         (-malways-hint): Ditto.
1683         (-malign-branch-targets): Ditto.
1684         
1685         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target
1686         hook instead.
1687         (IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx.
1688         (IRA_COVER_CLASSES_VSX): Cover classes if -mvsx.
1689         (rs6000_vector_reg_class): Delete.
1690         (rs6000_vsx_reg_class): Ditto.
1691         (enum rs6000_reg_class_enum): New enum for the constraints that
1692         vary based on target switches.
1693         (rs6000_constraints): New array to hold the register class for all
1694         of the register constraints that vary based on the switches used.
1695         (ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions.
1696         (enum rs6000_builtins): Add unsigned varients for the builtin
1697         declarations returned by target hooks for expanding multiplies,
1698         select, and permute operations.  Add VSX builtins.
1699         (enum rs6000_builtin_type_index): Add entries for VSX.
1700         (V2DI_type_node): Ditto.
1701         (V2DF_type_node): Ditto.
1702         (unsigned_V2DI_type_node): Ditto.
1703         (bool_long_type_node): Ditto.
1704         (intDI_type_internal_node): Ditto.
1705         (uintDI_type_internal_node): Ditto.
1706         (double_type_internal_node): Ditto.
1707
1708         * config/rs6000/altivec.md (whole file): Move all expanders to
1709         vector.md from altivec.md.  Rename insn matching functions to be
1710         altivec_foo.
1711         (UNSPEC_VCMP*): Delete, rewrite vector comparisons.
1712         (altivec_vcmp*): Ditto.
1713         (UNSPEC_VPERM_UNS): New, add for unsigned types using vperm.
1714         (VM): New iterator for moves that includes the VSX types.
1715         (altivec_vperm_<mode>): Add VSX types.  Add unsigned types.
1716         (altivec_vperm_<mode>_uns): New, for unsigned types.
1717         (altivec_vsel_*): Rewrite vector comparisons and predicate builtins.
1718         (altivec_eq<mode>): Ditto.
1719         (altivec_gt<mode>): Ditto.
1720         (altivec_gtu<mode>): Ditto.
1721         (altivec_eqv4sf): Ditto.
1722         (altivec_gev4sf): Ditto.
1723         (altivec_gtv4sf): Ditto.
1724         (altivec_vcmpbfp_p): Ditto.
1725
1726 2009-07-23  Richard Earnshaw  <rearnsha@arm.com>
1727
1728         * arm.md (split for ior/xor with shift and zero-extend): Cast op3 to 
1729         unsigned HWI.
1730
1731 2009-07-23  Uros Bizjak  <ubizjak@gmail.com>
1732
1733         PR target/40832
1734         * config/i386/i386.c (output_387_ffreep): Rewrite to use
1735         ASM_SHORT instead of .word.
1736         * config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
1737         instead of .word in asm template.
1738
1739 2009-07-22  Vladimir Makarov  <vmakarov@redhat.com>
1740
1741         PR target/37488
1742         * ira-lives.c (bb_has_abnormal_call_pred): New function.
1743         (process_bb_node_lives): Use it.
1744
1745         * ira.c (setup_cover_and_important_classes): Don't setup
1746         ira_important_class_nums.  Add cover classes to the end of
1747         important classes.
1748         (cover_class_order, comp_reg_classes_func, reorder_important_classes):
1749         New.
1750         (find_reg_class_closure): Use reorder_important_classes.
1751
1752         * config/i386/i386.h (IRA_COVER_CLASSES): Remove.
1753
1754         * config/i386/i386.c (i386_ira_cover_classes): New function.
1755         (TARGET_IRA_COVER_CLASSES): Redefine.
1756
1757         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about
1758         importance of order of cover classes in the array.
1759         
1760 2009-07-22  Diego Novillo  <dnovillo@google.com>
1761
1762         * tree-pass.h (TDF_EH): Define.
1763         * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS
1764         contains TDF_EH, print the EH region number holding GS.
1765         * tree-dump.c (dump_options): Add "eh".
1766         * doc/invoke.texi: Document it.
1767
1768 2009-07-22  Doug Kwan  <dougkwan@google.com>
1769
1770         * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.
1771
1772 2009-07-22  Michael Matz  <matz@suse.de>
1773
1774         PR tree-optimization/35229
1775         PR tree-optimization/39300
1776
1777         * tree-ssa-pre.c (includes): Include tree-scalar-evolution.h.
1778         (inhibit_phi_insertion): New function.
1779         (insert_into_preds_of_block): Call it for REFERENCEs.
1780         (init_pre): Initialize and finalize scalar evolutions.
1781         * Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h .
1782
1783 2009-07-22  Uros Bizjak  <ubizjak@gmail.com>
1784
1785         * config/i386/predicates.md (zero_extended_scalar_load_operand):
1786         Use CONST_VECTOR_NUNITS to determine number of elements.
1787
1788 2009-07-22  Andreas Krebbel  <krebbel1@de.ibm.com>
1789
1790         * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
1791         (U, W): Constraints are now deprecated and will be removed if we
1792         run out of letters.     
1793         * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
1794         the file.
1795         ("prefetch"): Add the stcmh instruction for prefetching.
1796         * config/s390/s390.c (s390_symref_operand_p): Function moved. No
1797         changes.
1798         (s390_short_displacement): Return always true if compiling for
1799         machines not providing the long displacement facility.
1800         (s390_mem_constraint): Support the new constraint letter Z.
1801         (s390_check_qrst_address): New function.
1802
1803 2009-07-21  DJ Delorie  <dj@redhat.com>
1804
1805         * config/mep/mep.c (mep_legitimize_arg): Leave control registers
1806         alone too.
1807
1808 2009-07-21  Jason Merrill  <jason@redhat.com>
1809
1810         * c-common.c (max_tinst_depth): Increase default to 1024.
1811
1812 2009-07-21  Uros Bizjak  <ubizjak@gmail.com>
1813
1814         * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
1815         (vec_unpacku_float_lo_v4si): Ditto.
1816
1817 2009-07-21  Uros Bizjak  <ubizjak@gmail.com>
1818
1819         PR target/40811
1820         * config/i386/sse.md (sse2_cvtudq2ps): New expander.
1821         (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
1822         (builtin_description): Add __builtin_ia32_cvtudq2ps.
1823         (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.
1824
1825 2009-07-21  Jakub Jelinek  <jakub@redhat.com>
1826
1827         PR tree-optimization/40813
1828         * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
1829         it.
1830
1831 2009-07-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1832
1833         * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
1834         with a NOP_EXPR if needed.
1835
1836 2009-07-21  Paul Brook <paul@codesourcery.com>
1837
1838         * tree-vectorizer.c (increase_alignment): Handle nested arrays.
1839         Terminate debug dump with newline.
1840
1841 2009-07-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1842
1843         * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
1844         Cast "1" to unsigned HOST_WIDE_INT.
1845         (compute_zdepdi_operands): Limit maximum length to 64 bits.  Limit
1846         deposit length to the maximum length - lsb.  Extend length if
1847         HOST_BITS_PER_WIDE_INT is 32.
1848
1849 2009-07-20  Olatunji Ruwase <tjruwase@google.com>
1850
1851         * cgraph.h (constant_pool_htab): New function.
1852         (constant_descriptor_tree): Move from varasm.c.
1853         * varasm.c (constant_pool_htab): New function.
1854         (constant_descriptor_tree): Move to cgraph.h.
1855
1856 2009-07-20  Olatunji Ruwase  <tjruwase@google.com>
1857
1858         * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().
1859
1860 2009-07-20  Shujing Zhao  <pearly.zhao@oracle.com>
1861
1862         * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
1863         $(VARRAY_H).
1864
1865 2009-07-20  Xinliang David Li  <davidxl@google.com>
1866
1867         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.
1868
1869 2009-07-20  Adam Nemet  <anemet@caviumnetworks.com>
1870
1871         * config/mips/mips.md (move_type): Add arith.
1872         (type): Handle arith.
1873         (zero_extendsidi2): Rename this into ...
1874         (*zero_extendsidi2): ... this.  Don't match if ISA_HAS_EXT_INS.
1875         (zero_extendsidi2): New expander.
1876         (*zero_extendsidi2_dext): New pattern.
1877
1878 2009-07-20  Nick Clifton  <nickc@redhat.com>
1879
1880         * config.gcc (mips64-*-*): Add definition of tm_defines in order
1881         to set MIPS_ABI_DEFAULT.
1882         * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
1883
1884 2009-07-20  Jakub Jelinek  <jakub@redhat.com>
1885
1886         * tree-object-size.c (addr_object_size): Handle unions with
1887         array in it as last field of structs in __bos (, 1) as __bos (, 0).
1888
1889         PR tree-optimization/40792
1890         * tree.c (build_function_type_skip_args): Remove bogus assert.
1891
1892 2009-07-20  Jan Hubicka  <jh@suse.cz>
1893             Martin Jambor  <mjambor@suse.cz>
1894
1895         * cgraph.h (combined_args_to_skip): New field.
1896         * cgraph.c (cgraph_create_virtual_clone): Properly handle
1897         combined_args_to_skip and args_to_skip.
1898         * tree-inline.c (update_clone_info): New function.
1899         (tree_function_versioning): Call update_clone_info.
1900         * cgraphunit.c: (cgraph_materialize_clone): Dump materialized
1901         functions.
1902         (cgraph_materialize_all_clones): More extensive dumping, working
1903         with combined_args_to_skip rather than args_to_skip.
1904
1905 2009-07-20  Ira Rosen  <irar@il.ibm.com>
1906
1907         * tree-vectorizer.h (vectorizable_condition): Add parameters.
1908         * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
1909         (get_initial_def_for_reduction): Likewise.
1910         (vectorizable_reduction): Skip the check of first operand in case
1911         of COND_EXPR. Add check that it is outer loop vectorization if
1912         nested cycle was detected. Call vectorizable_condition() for 
1913         COND_EXPR. If reduction epilogue cannot be created do not fail for
1914         nested cycles (if it is not double reduction). Assert that there
1915         is only one type in the loop in case of COND_EXPR. Call
1916         vectorizable_condition() to vectorize COND_EXPR.
1917         * tree-vect-stmts.c (vectorizable_condition): Update comment.
1918         Add parameters. Allow nested cycles if called from 
1919         vectorizable_reduction(). Use reduction vector variable if provided.
1920         (vect_analyze_stmt): Call vectorizable_reduction() before
1921         vectorizable_condition().
1922         (vect_transform_stmt): Update call to vectorizable_condition().
1923
1924 2009-07-20  Christian Bruel  <christian.bruel@st.com>
1925         
1926         * config/sh/sh.opt (-mfmovd): Resurrect and document.
1927         * doc/invoke.texi (-mfmovd): Likewise.
1928         * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
1929         
1930 2009-07-20  Jan Hubicka  <jh@suse.cz>
1931
1932         * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
1933         when handling SSA name.
1934
1935 2009-07-19  Jan Hubicka  <jh@suse.cz>
1936
1937         PR tree-optimization/40676
1938         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
1939         virtual PHIs in empty BBs.
1940
1941 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
1942
1943         * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
1944         re-expanded the compound use gen_lowpart instead to convert to the
1945         desired mode.
1946
1947 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
1948
1949         * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
1950         OUTER_CONST arguments.
1951         <LSHIFTRT>: Use them to allow widening if the bits shifted in from
1952         the new wider mode will be masked off.
1953         (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
1954
1955 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
1956
1957         * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
1958         high-order bits are zero.
1959
1960 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
1961
1962         * combine.c (simplify_shift_const_1): Split code to determine
1963         shift_mode into ...
1964         (try_widen_shift_mode): ... here.  Allow widening for ASHIFTRT if the
1965         new bits shifted in are identical to the old sign bit.
1966
1967 2009-07-18  Richard Guenther  <rguenther@suse.de>
1968
1969         PR c/40787
1970         * gimplify.c (gimplify_call_expr): Reject code using results from
1971         functions returning void.
1972
1973 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
1974
1975         * doc/md.texi: Document the new PowerPC "es" constraint.
1976         Document that "m" can include automodified addresses on this target,
1977         and explain how %U must be used.  Extend the "Q" and "Z" documentation
1978         to suggest "es" as well as "m".
1979         * config/rs6000/constraints.md (es): New memory constraint.
1980         (Q, Z): Update strings to match new documentation.
1981
1982 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
1983
1984         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
1985         offset from virtual_stack_vars_rtx and arg_pointer_rtx.
1986         * config/rs6000/predicates.md (volatile_mem_operand): Use
1987         offsettable_nonstrict_memref_p.
1988         * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
1989         (*floatunssidf2_internal): Likewise.
1990         (*fix_truncdfsi2_internal): Likewise.
1991         (*fix_trunctfsi2_internal): Likewise.
1992
1993 2009-07-17  Anatoly Sokolov  <aesok@post.ru>
1994
1995         * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
1996         atmega32u2 devices.
1997         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1998
1999 2009-07-17  Richard Guenther  <rguenther@suse.de>
2000
2001         PR c/40401
2002         * tree-pass.h (pass_diagnose_omp_blocks): Declare.
2003         (pass_warn_unused_result): Likewise.
2004         (TODO_set_props): Remove.
2005         * omp-low.c (diagnose_omp_structured_block_errors): Change to
2006         run as a pass.
2007         (pass_diagnose_omp_blocks): Define.
2008         * c-decl.c (pop_file_scope): Do not finalize the CU here.
2009         (c_gimple_diagnostics_recursively): Remove.
2010         (finish_function): Do not call it.
2011         (c_write_global_declarations): Continue after errors.
2012         Finalize the CU here.
2013         * c-gimplify.c (c_genericize): Do not gimplify here.
2014         * c-common.c (c_warn_unused_result): Move ...
2015         * tree-cfg.c (do_warn_unused_result): ... here.
2016         (run_warn_unused_result): New function.
2017         (gate_warn_unused_result): New function.
2018         (pass_warn_unused_result): New pass.
2019         * c-common.h (c_warn_unused_result): Remove.
2020         * flags.h (flag_warn_unused_result): Declare.
2021         * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
2022         * opts.c (flag_warn_unused_result): Initialize to false.
2023         * toplev.c (compile_file): Add comment.
2024         * omp-low.c (create_omp_child_function): Do not register
2025         the function with the frontend.
2026         (diagnose_omp_structured_block_errors): Prepare to be
2027         called as optimization pass.
2028         (gate_diagnose_omp_blocks): New function.
2029         (pass_diagnose_omp_blocks): New pass.
2030         * cgraph.h (cgraph_optimize): Remove.
2031         (cgraph_analyze_function): Likewise.
2032         * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
2033         * cgraphunit.c (cgraph_lower_function): Lower nested functions
2034         before their parents here.
2035         (cgraph_finalize_function): Not here.
2036         (cgraph_analyze_function): Gimplify functions here.
2037         (cgraph_finalize_compilation_unit): Continue after errors.
2038         Optimize the callgraph from here.
2039         (cgraph_optimize): Make static.
2040         * langhooks.c (write_global_declarations): Finalize the CU.
2041         * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
2042         (gimplify_function_tree): Assert we gimplify only once.
2043         Set PROP_gimple_any property.
2044         * tree-nested.c (gimplify_all_functions): New function.
2045         (lower_nested_functions): Gimplify all nested functions.
2046         * gimple.h (diagnose_omp_structured_block_errors): Remove.
2047         * passes.c (init_optimization_passes): Add pass_warn_unused_result
2048         and pass_diagnose_omp_blocks after gimplification.  Do not
2049         set TODO_set_props on all_lowering_passes.
2050         (execute_one_pass): Do not handle TODO_set_props.
2051         * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
2052         (gimplify.o): Add tree-pass.h dependency.
2053         * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
2054         (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
2055         (unsave_r): Likewise.
2056         * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
2057         temporary variable.
2058
2059 2009-07-17  Sandra Loosemore  <sandra@codesourcery.com>
2060
2061         * doc/service.texi (Service): Restore previously removed link,
2062         which isn't broken after all.
2063
2064 2009-07-17  Richard Guenther  <rguenther@suse.de>
2065
2066         PR tree-optimization/40321
2067         * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
2068         PHI nodes to the maximal set.
2069         (make_values_for_phi): Add PHI arguments to the maximal set.
2070         (execute_pre): Dump PHI_GEN and the maximal set.
2071
2072 2009-07-17  Jakub Jelinek  <jakub@redhat.com>
2073
2074         PR c++/40780
2075         * gimplify.c (gimplify_conversion): Don't change non-conversions into
2076         VIEW_CONVERT_EXPR.
2077
2078 2009-07-16  Sandra Loosemore  <sandra@codesourcery.com>
2079
2080         * doc/extend.texi (Nested Functions): Replace broken link with
2081         textual reference.
2082         * doc/service.texi (Service): Remove broken link.
2083
2084 2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>
2085
2086         PR bootstrap/40781
2087         * builtins.c (expand_builtin_memcmp): Use loc instead of
2088         EXPR_LOCATION (exp).
2089         (expand_builtin_strncmp): Likewise.
2090
2091 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
2092             Manuel López-Ibáñez  <manu@gcc.gnu.org>
2093
2094         PR 40435 
2095         * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
2096         builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
2097         tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
2098         c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
2099         calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
2100         tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
2101         tree-inline.c, c-common.c, c-common.h, gimple.c,
2102         tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
2103         convert.c: Add location argument to fold_{unary,binary,ternary},
2104         fold_build[123], build_call_expr, build_size_arg,
2105         build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
2106         fold_build1_initializer, fold_build2_initializer,
2107         fold_build3_initializer, fold_build_call_array,
2108         fold_build_call_array_initializer, fold_single_bit_test,
2109         omit_one_operand, omit_two_operands, invert_truthvalue,
2110         fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
2111         combine_comparisons, fold_builtin_*, fold_call_expr,
2112         build_range_check, maybe_fold_offset_to_address, round_up,
2113         round_down.
2114
2115 2009-07-16  Jason Merrill  <jason@redhat.com>
2116
2117         PR libstdc++/37907
2118         * c-common.c (c_common_reswords): Add __is_standard_layout
2119         and __is_trivial.
2120         * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
2121         * doc/implement-cxx.texi: New.
2122         * doc/gcc.texi: Include it.
2123
2124 2009-07-16  DJ Delorie  <dj@redhat.com>
2125
2126         * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
2127         compares that may be indirectly affected by previous instructions.
2128
2129 2009-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2130
2131         * builtins.c (do_mpc_arg2): New.
2132         (fold_builtin_2): Fold builtin cpow.
2133         * real.h (HAVE_mpc_pow): New.
2134
2135 2009-07-16  Bingfeng Mei  <bmei@broadcom.com>
2136
2137         * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
2138         comparison to skip unprofitable schedule
2139
2140 2009-07-16  Simon Baldwin  <simonb@google.com>
2141
2142         * gcc.c (option_map): New flag -no-canonical-prefixes.
2143         * (display_help): Print help text for new flag.
2144         * (process_command): Move options translation and language specifics
2145         and handle new flag early.  Use it to set a function pointer to a
2146         prefix builder.  Replace make_relative_prefix calls with calls to
2147         the function pointed to.  Ignore new flag in regular options handling.
2148         * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
2149
2150 2009-07-15  DJ Delorie  <dj@redhat.com>
2151
2152         * config/mep/mep.md (sibcall_internal): Change register to avoid
2153         argument registers.
2154         (sibcall_value_internal): Likewise.
2155
2156 2009-07-15  Eric Botcazou  <ebotcazou@adacore.com>
2157
2158         PR rtl-optimization/40710
2159         * resource.c (mark_target_live_regs): Reset DF problem to LR.
2160
2161 2009-07-15  Adam Nemet  <anemet@caviumnetworks.com>
2162
2163         * config/mips/mips.md (*extenddi_truncate<mode>,
2164         *extendsi_truncate<mode>): Change type attribute to move_type
2165         with shift_shift.  Split out code handling exts from here ...
2166         (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
2167         pattern.
2168         (*extendhi_truncateqi): Change type attribute to move_type with
2169         shift_shift.  Split out code handling exts from here ...
2170         (*extendhi_truncateqi_exts): ... to this new pattern.
2171
2172 2009-07-15  Uros Bizjak  <ubizjak@gmail.com>
2173
2174         * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
2175         instead of "and" with inverted sign bit mask value.  Use
2176         "nonimmediate_operand" for operand 1 and operand 2 predicate.
2177         Allocate registers only for operand 4 and operand 5.
2178
2179 2009-07-15  Jakub Jelinek  <jakub@redhat.com>
2180
2181         PR middle-end/40747
2182         * fold-const.c (fold_cond_expr_with_comparison): When folding
2183         < and <= to MIN, make sure the MIN uses the same type as the
2184         comparison's operands.
2185
2186 2009-07-15  Richard Earnshaw  <rearnsha@arm.com>
2187
2188         * arm.md (ior_xor): New code iterator.
2189         (split for ior/xor with shift and zero-extend): New split pattern.
2190         * arm/predicates.md (subreg_lowpart_operator): New special predicate.
2191
2192 2009-07-15  Richard Guenther  <rguenther@suse.de>
2193
2194         * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
2195         offset member.
2196
2197 2009-07-15  Richard Guenther  <rguenther@suse.de>
2198
2199         PR middle-end/40753
2200         * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
2201
2202 2009-07-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
2203
2204         * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
2205         handle 2.6.30 kernel.
2206
2207 2009-07-15  DJ Delorie  <dj@redhat.com>
2208
2209         * config/mep/mep.md (sibcall_internal): Change register to allow
2210         for 24-bit addresses.
2211         (sibcall_value_internal): Likewise.
2212
2213 2009-07-14  Ghassan Shobaki  <ghassan.shobaki@amd.com>
2214         
2215         * doc/invoke.texi: Added descriptions of the  scheduling heuristics
2216         that are enabled/disabled by the flags introduced by a previous patch.
2217         
2218 2009-07-14  DJ Delorie  <dj@redhat.com>
2219
2220         * config/mep/mep.md (sibcall_internal): Include non-toggling
2221         non-jmp case.
2222         (sibcall_value_internal): Likewise.
2223
2224 2009-07-14  Taras Glek  <tglek@mozilla.com>
2225             Rafael Espindola  <espindola@google.com>
2226
2227         * doc/sourcebuild.texi: Document install-plugin target.
2228         * configure.ac: Added install-plugin target to language makefiles.
2229         * configure: Regenerate.
2230         * Makefile.in: (install-plugin): Install more headers,
2231         depend on lang.install-plugin.
2232
2233 2009-07-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2234
2235         * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
2236         translation.
2237         
2238 2009-07-14  DJ Delorie  <dj@redhat.com>
2239
2240         * config/mep/mep.c (mep_vliw_jmp_match): New function.
2241         * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
2242         * config/mep/mep.md (sibcall_internal): Change test from
2243         mep_vliw_mode_match to mep_vliw_jmp_match.
2244         (sibcall_value_internal): Likewise.
2245
2246 2009-07-14  Uros Bizjak  <ubizjak@gmail.com>
2247
2248         * config/i386/sse.md (copysign<mode>3): New expander.
2249         * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
2250         * config/i386/i386.c (ix86_build_signbit_mask): Make public.
2251         Use ix86_build_const_vector.
2252         (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
2253         IX86_BUILTIN_CPYSGNPD.
2254         (builtin_description): Add __builtin_ia32_copysignps and
2255         __builtin_ia32_copysignpd.
2256         (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
2257         and BUILT_IN_COPYSIGNF.
2258
2259 2009-07-13  Jason Merrill  <jason@redhat.com>
2260
2261         * builtins.c (can_trust_pointer_alignment): New fn.
2262         (get_pointer_alignment): Factor it out from here.
2263         * tree.h: Declare it.
2264
2265 2009-07-14  David Edelsohn  <edelsohn@gnu.org>
2266
2267         * config/rs6000/predicates.md (offsettable_mem_operand): Test
2268         RTX_AUTOINC class.
2269
2270 2009-07-14  Dodji Seketeli  <dodji@redhat.com>
2271
2272         PR debug/40705
2273         PR c++/403057
2274         * dwarf2.out.c (gen_type_die_with_usage): Added comment.
2275
2276 2009-07-14  Richard Guenther  <rguenther@suse.de>
2277             Andrey Belevantsev <abel@ispras.ru>
2278
2279         PR middle-end/40745
2280         * cfgexpand.c (partition_stack_vars): Do not bother to update
2281         alias information when not optimizing.
2282
2283 2009-07-14  Richard Guenther  <rguenther@suse.de>
2284             Andrey Belevantsev <abel@ispras.ru>
2285
2286         * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
2287         (pt_solution_set): Likewise.
2288         * tree-ssa-alias.c (refs_may_alias_p_1): Export.
2289         * tree-ssa-structalias.c (pt_solution_set): New function.
2290         * final.c (rest_of_clean_state): Free SSA data structures.
2291         * print-rtl.c (print_decl_name): Remove.
2292         (print_mem_expr): Implement in terms of print_generic_expr.
2293         * alias.c (ao_ref_from_mem): New function.
2294         (rtx_refs_may_alias_p): Likewise.
2295         (true_dependence): Query alias-export info.
2296         (canon_true_dependence): Likewise.
2297         (write_dependence_p): Likewise.
2298         * tree-dfa.c (get_ref_base_and_extent): For void types leave
2299         size unknown.
2300         * emit-rtl.c (component_ref_for_mem_expr): Remove.
2301         (mem_expr_equal_p): Use operand_equal_p.
2302         (set_mem_attributes_minus_bitpos): Do not use
2303         component_ref_for_mem_expr.
2304         * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
2305         (update_alias_info_with_stack_vars): Likewise.
2306         (partition_stack_vars): Call update_alias_info_with_stack_vars.
2307         * tree-ssa.c (delete_tree_ssa): Do not release SSA names
2308         explicitly nor clear stmt operands.
2309         Free the decl-to-pointer map.
2310         * tree-optimize.c (execute_free_datastructures): Do not free
2311         SSA data structures here.
2312         * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
2313         * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
2314         (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
2315         dependencies.
2316         (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
2317
2318 2009-07-13  DJ Delorie  <dj@redhat.com>
2319
2320         * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
2321         unrolling at the right iteration count.
2322
2323         * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
2324         calculations.
2325
2326 2009-07-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>
2327         
2328         * haifa-sched.c (rank_for_schedule): Introduced flags to
2329         enable/disable individual scheduling heuristics.
2330         * common.opt: Introduced flags to enable/disable individual
2331         heuristics in the scheduler.    
2332         * doc/invoke.texi: Introduced flags to enable/disable individual
2333         heuristics in the scheduler.
2334         
2335 2009-07-13  Kai Tietz  <kai.tietz@onevision.com>
2336
2337         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
2338         config/i386/mingw-tls.c.
2339         * config/i386/mingw-tls.c: Removed.
2340
2341 2009-07-13  Ira Rosen  <irar@il.ibm.com>
2342
2343         * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the 
2344         checks access only relevant statements.
2345         (vectorizable_reduction): Likewise.
2346
2347 2009-07-12  Kai Tietz  <kai.tietz@onevision.com>
2348
2349         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
2350         just for 32-bit case.
2351
2352 2009-07-12  Jan Hubicka  <jh@suse.cz>
2353
2354         PR tree-optimization/40585
2355         * except.c (expand_resx_expr): When there already is resume
2356         instruction, produce linked list.
2357         (build_post_landing_pads): Assert that resume is empty.
2358         (connect_post_landing_pads): Handle resume lists.
2359         (dump_eh_tree): Dump resume list.
2360
2361 2009-07-12  Ira Rosen  <irar@il.ibm.com>
2362
2363         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
2364         with additional argument.
2365         * tree-vectorizer.h (enum vect_def_type): Add
2366         vect_double_reduction_def.
2367         (vect_is_simple_reduction): Add argument.
2368         * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
2369         indentation.
2370         (vect_analyze_scalar_cycles_1): Detect double reduction. Call
2371         vect_is_simple_reduction with additional argument.
2372         (vect_analyze_loop_operations): Handle exit phi nodes in case of
2373         double reduction.
2374         (reduction_code_for_scalar_code): Handle additional codes by
2375         returning ERROR_MARK for them. Fix comment and indentation.
2376         (vect_is_simple_reduction): Fix comment, add argument to specify
2377         double reduction. Detect double reduction.
2378         (get_initial_def_for_induction): Fix indentation.
2379         (get_initial_def_for_reduction): Fix comment and indentation.
2380         Handle double reduction. Create initial definitions that do not
2381         require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
2382         (vect_create_epilog_for_reduction): Fix comment, add argument to
2383         handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
2384         epilogue result extraction. Create double reduction phi node and
2385         replace relevant uses.
2386         (vectorizable_reduction): Call vect_is_simple_reduction with
2387         additional argument. Fix indentation. Update epilogue code treatment
2388         according to the changes in reduction_code_for_scalar_code. Check
2389         for double reduction. Call vect_create_epilog_for_reduction with
2390         additional argument.
2391         * tree-vect-stmts.c (process_use): Handle double reduction, update
2392         documentation.
2393         (vect_mark_stmts_to_be_vectorized): Handle double reduction.
2394         (vect_get_vec_def_for_operand): Likewise.
2395
2396 2009-07-12  Danny Smith  <dansmister@gmail.com>
2397
2398         * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
2399         dllexport if !TREE_PUBLIC.
2400         (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
2401
2402 2009-07-11  Anatoly Sokolov  <aesok@post.ru>
2403
2404         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
2405         (avr_extra_arch_macro) Remove declatation.
2406         * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
2407         (avr_extra_arch_macro) Declare as static.
2408         * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
2409
2410 2009-07-11  Jan Hubicka  <jh@suse.cz>
2411
2412         PR middle-end/48388
2413         * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
2414
2415 2009-07-11  Jakub Jelinek  <jakub@redhat.com>
2416
2417         PR debug/40713
2418         * dwarf2out.c (dw_fde_struct): Add in_std_section and
2419         cold_in_std_section bits.
2420         (dwarf2out_begin_prologue): Initialize them.
2421         (dwarf2out_finish): Don't emit FDE range into .debug_ranges
2422         if already covered by text_section or cold_text_section range.
2423
2424         PR rtl-optimization/40667
2425         * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
2426         * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
2427         * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
2428         * config/i386/i386.c (ix86_minimum_alignment): New function.
2429         * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
2430         * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
2431         * emit-rtl.c (gen_reg_rtx): Likewise.
2432         * function.c (assign_parms): Likewise.  If nominal_type needs
2433         bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
2434         rather than passed_type's alignment.
2435
2436         PR target/40668
2437         * function.c (assign_parm_setup_stack): Adjust
2438         MEM_OFFSET (data->stack_parm) if promoted_mode is different
2439         from nominal_mode on big endian.
2440
2441 2009-07-11  Paolo Bonzini  <bonzini@gnu.org>
2442
2443         * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
2444
2445 2009-07-10  DJ Delorie  <dj@redhat.com>
2446
2447         * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
2448
2449 2009-07-10  Mark Mitchell  <mark@codesourcery.com>
2450
2451         * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
2452         attribute.
2453         (thumb2_cbnz): Likewise.
2454
2455 2009-07-10  David Daney  <ddaney@caviumnetworks.com>
2456
2457         PR target/39079
2458         * config.gcc (supported_defaults): Add synci.
2459         (with_synci): Add validation.
2460         (all_defaults): Add synci.
2461         * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
2462         ISA_HAS_SYNCI.
2463         (synci): Same.
2464         * config/mips/mips.opt (msynci): New option.
2465         * config/mips/mips.c (mips_override_options): Warn on use of
2466         -msynci for targets that do now support it.
2467         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
2468         msynci.
2469         * gcc/doc/invoke.texi (-msynci): Document the new option.
2470         * doc/install.texi (--with-synci): Document the new option.
2471
2472 2009-07-10  Richard Guenther  <rguenther@suse.de>
2473
2474         PR tree-optimization/40496
2475         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
2476         the PHI result with a compatible type.
2477
2478 2009-07-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2479
2480         PR 25509
2481         PR 40614
2482         * c.opt (Wunused-result): New.
2483         * doc/invoke.texi: Document it.
2484         * c-common.c (c_warn_unused_result): Use it.
2485
2486 2009-07-09  DJ Delorie  <dj@redhat.com>
2487
2488         * targhooks.c (default_target_can_inline_p): Rename from
2489         default_target_option_can_inline_p.
2490         * targhooks.h (default_target_can_inline_p): Likewise.
2491         * target-def.h (TARGET_CAN_INLINE_P): Rename from
2492         TARGET_OPTION_CAN_INLINE_P.
2493         * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
2494         * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
2495         (mep_target_can_inline_p): Rename from
2496         mep_target_option_can_inline_p.
2497
2498         PR target/40626
2499         * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
2500         registers used to pass vectors.
2501
2502         * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
2503
2504 2009-07-09  Tom Tromey  <tromey@redhat.com>
2505
2506         * unwind-dw2-fde-darwin.c: Include dwarf2.h.
2507         * config/mmix/mmix.c: Include dwarf2.h.
2508         * config/rs6000/darwin-fallback.c: Include dwarf2.h.
2509         * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
2510         * config/sh/sh.c: Include dwarf2.h.
2511         * config/i386/i386.c: Include dwarf2.h.
2512         * Makefile.in (DWARF2_H): Remove 'elf'.
2513         * except.c: Include dwarf2.h.
2514         * unwind-dw2.c: Include dwarf2.h.
2515         * dwarf2out.c: Include dwarf2.h.
2516         * unwind-dw2-fde-glibc.c: Include dwarf2.h.
2517         * unwind-dw2-fde.c: Include dwarf2.h.
2518         * dwarf2asm.c: Include dwarf2.h.
2519
2520 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2521
2522         * haifa-sched.c (insn_finishes_cycle_p): New static function.
2523         (max_issue): Use it.
2524         * sched-int.h (struct sched_info: insn_finishes_block_p): New
2525         scheduler hook.
2526         * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
2527         (region_sched_info): Update.
2528         * sched-ebb.c (ebb_sched_info): Update.
2529         * modulo-sched.c (sms_sched_info): Update.
2530         * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
2531
2532 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2533
2534         * varasm.c (build_constant_desc): Don't share RTL in pool entries.
2535
2536 2009-07-09  Basile Starynkevitch  <basile@starynkevitch.net>
2537
2538         * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen. 
2539
2540 2009-07-09  Jakub Jelinek  <jakub@redhat.com>
2541
2542         PR middle-end/40692
2543         * fold-const.c (fold_cond_expr_with_comparison): Don't replace
2544         arg1 with arg01 if arg1 is already INTEGER_CST.
2545
2546 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
2547
2548         * simplify-rtx.c (simplify_binary_operation_1) <AND>:
2549         Transform (and (truncate)) into (truncate (and)).
2550
2551 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
2552
2553         * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
2554         creating LHS paradoxical subregs.  Fix surrounding returns to
2555         use NULL_RTX rather than 0.
2556
2557 2009-07-08  DJ Delorie  <dj@redhat.com>
2558
2559         * config/mep/mep.c: (mep_option_can_inline_p): New.
2560         (TARGET_OPTION_CAN_INLINE_P): Define.
2561
2562 2009-07-08  Mark Wielaard  <mjw@redhat.com>
2563
2564         PR debug/40659
2565         * dwarf2out.c (add_data_member_location_attribute): When we have
2566         only a constant offset don't emit a new location description using
2567         DW_OP_plus_uconst, but just add the constant with add_AT_int, when
2568         dwarf_version > 2.
2569
2570 2009-07-08  Richard Henderson  <rth@redhat.com>
2571
2572         PR target/38900
2573         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
2574         (enum reg_class): Add CLOBBERED_REGS.
2575         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
2576         * config/i386/i386.c (ix86_conditional_register_usage): Moved
2577         from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
2578         (ix86_function_ok_for_sibcall): Tidy.  Disallow MS->SYSV sibcalls.
2579         (ix86_expand_call): Use sibcall_insn_operand when needed.  Don't
2580         force 64-bit sibcalls into R11.
2581         * config/i386/constraints.md (U): New constraint.
2582         * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
2583         (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
2584         (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
2585
2586 2009-07-08  Shujing Zhao  <pearly.zhao@oracle.com>
2587
2588         * basic-block.h (dump_regset, debug_regset): Remove duplicate
2589         prototypes.
2590         * c-objc-common.h (c_initialize_diagnostics): Ditto.
2591         * ebitmap.h (dump_ebitmap): Ditto.
2592         * optabs.h (optab_libfunc): Ditto.
2593         * tree.h (tree_expr_nonzero_warnv_p): Ditto.
2594         * tree-flow.h (vect_can_force_dr_alignment_p,
2595         get_vectype_for_scalar_type): Ditto.
2596         (vectorize_loops): Move prototype to ...
2597         * tree-vectorizer.h: ... here. Also, adjust comment.
2598         (vect_set_verbosity_level): Remove duplicate prototype.
2599         * tree-ssa-loop.c: Include tree-vectorizer.h.
2600         * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
2601
2602 2009-07-08  Nick Clifton  <nickc@redhat.com>
2603
2604         * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
2605         forward slash.
2606
2607 2009-07-08  DJ Delorie  <dj@redhat.com>
2608
2609         * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
2610         cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
2611         cpmovtocc_P0S_P1): Mark volatile.  Note which registers are
2612         written to.
2613         * config/mep/intrinsics.md: Regenerated.
2614         * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
2615         registers when asm() or calls are detected.
2616
2617 2009-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2618
2619         PR c++/31246
2620         * gimplify.c (gimplify_expr): Propagate no_warning flag when
2621         gimplifying.
2622         * gimple (gimple_build_call_from_tree): Likewise.
2623         * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
2624         no_warning flag before warning.
2625
2626 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2627
2628         * tree.c (set_expr_locus): Remove.
2629         * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
2630         * c-typeck.c (c_finish_stmt_expr):  Replace EXPR_LOCUS by
2631         EXPR_LOCATION.
2632         * gimplify.c (internal_get_tmp_var): Likewise.
2633         (gimplify_call_expr): Likewise.
2634         (gimplify_one_sizepos): Likewise.
2635
2636 2009-07-07  Eric Botcazou  <ebotcazou@adacore.com>
2637
2638         PR debug/40666
2639         * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
2640         to variables for debugging purposes.
2641
2642 2009-06-23  Mark Loeser  <mark@halcy0n.com>
2643
2644         PR build/40010
2645         * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
2646
2647 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2648
2649         * pretty-print.c (pp_base_format): Remove %J.
2650         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
2651         gcc_cxxdiag_char_table): Likewise.
2652         (init_dynamic_diag_info): Likewise.
2653
2654 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2655
2656         * pretty-print.c (pp_base_format): Remove %H.
2657         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
2658         gcc_cxxdiag_char_table): Likewise.
2659         (init_dynamic_diag_info): Likewise.
2660         * config/mep/mep.c (mep_select_section): Likewise.
2661
2662 2009-07-07  Duncan Sands  <baldrick@free.fr>
2663
2664         * final.c (pass_clean_state): Give the pass a name.
2665         * passes.c (pass_rest_of_compilation): Likewise.
2666         * tree-optimize.c (pass_all_optimizations): Likewise.
2667
2668 2009-07-07  H.J. Lu  <hongjiu.lu@intel.com>
2669
2670         * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
2671         an extra 'decl' for error_at.
2672
2673 2009-07-07  Jakub Jelinek  <jakub@redhat.com>
2674
2675         PR middle-end/40669
2676         * tree-tailcall.c (adjust_return_value_with_ops,
2677         create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
2678         if it has complex or vector type.
2679
2680 2009-07-07  Olivier Hainque  <hainque@adacore.com>
2681
2682         * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
2683         pthread symbols.
2684
2685 2009-07-07  Basile Starynkevitch  <basile@starynkevitch.net>
2686
2687         * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
2688
2689 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2690
2691         * cgraphunit.c: Replace %J by an explicit location.  Update all calls.
2692         * c-decl.c: Likewise.
2693         * function.c: Likewise.
2694         * varasm.c: Likewise.
2695         * tree-ssa.c: Likewise.
2696         * c-common.c: Likewise.
2697         * tree-cfg.c: Likewise.
2698         * config/spu/spu.c: Likewise.
2699         * config/ia64/ia64.c: Likewise.
2700         * config/v850/v850.c: Likewise.
2701
2702 2009-07-06  DJ Delorie  <dj@redhat.com>
2703
2704         * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
2705         * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
2706         unspecified accesses to control registers.
2707         * config/mep/intrinsics.md: Regenerate.
2708         * config/mep/intrinsics.h: Regenerate.
2709         * config/mep/mep-intrin.h: Regenerate.
2710
2711 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2712
2713         * c-lex.c: Replace %H by an explicit location. Update all calls.
2714         * c-common.c: Likewise.
2715         * c-decl.c: Likewise.
2716         * c-typeck.c: Likewise.
2717         * fold-const.c: Likewise.
2718         * gimplify.c: Likewise.
2719         * stmt.c: Likewise.
2720         * tree-cfg.c: Likewise.
2721         * tree-ssa-loop-niter.c: Likewise.
2722         * tree-vrp.c: Likewise.
2723         * value-prof.c: Likewise.
2724
2725 2009-07-06  Diego Novillo  <dnovillo@google.com>
2726
2727         * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
2728         if it has one.  Handle cases where VAR does not have an
2729         annotation or cfun is NULL.
2730
2731 2009-07-06  Diego Novillo  <dnovillo@google.com>
2732
2733         * tree.c: Include debug.h.
2734         (initialize_tree_contains_struct): New.
2735         (init_ttree): Call it.
2736         (tree_node_structure_for_code): Factor out of ...
2737         (tree_node_structure): ... here.
2738         * treestruct.def (TS_PHI_NODE): Remove.
2739         (TS_GIMPLE_STATEMENT): Remove.
2740
2741 2009-07-06  Diego Novillo  <dnovillo@google.com>
2742
2743         * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
2744         (debug_tree_chain): Handle cycles.
2745
2746 2009-07-06  Nick Clifton  <nickc@redhat.com>
2747             DJ Delorie  <dj@redhat.com>
2748
2749         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
2750         __FMOVD_ENABLED__ is defined.
2751         * config/sh/sh.h
2752         (TARGET_FMOVD): Provide a default definition.
2753         (MASK_FMOVD): Likewise.
2754         (TARGET_CPU_CPP_BUILTINS): Define
2755         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
2756         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
2757         two fmov instructions depending upon whether TARGET_FMOVD is enabled.
2758         (split for DF load from memory into register): Also handle
2759         MEMs which consist of REG+DISP addressing.
2760         (split for DF store from register to memory): Likewise.
2761         (movsf_ie): Always use single fp_mode.
2762         * config/sh/sh.c (sh_override_options): Do not automatically
2763         enable TARGET_MOVD for the SH2A when supporting doubles - leave
2764         that to the -mfmovd command line switch.
2765         (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
2766         (fldi_ok): Always allow.
2767         * config/sh/sh.opt (mfmovd): Remove this switch.
2768         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
2769
2770 2009-07-06  J"orn Rennecke  <joern.rennecke@arc.com>
2771             Kaz Kojima  <kkojima@gcc.gnu.org>
2772
2773         PR rtl-optimization/30807
2774         * postreload.c (reload_combine): For every new use of REG_SUM,
2775         record the use of BASE.
2776
2777 2009-07-06  Jan Hubicka  <jh@suse.cz>
2778
2779         * params.def: Revert my accidental commit at 2009-06-30.
2780
2781 2009-07-04  Ian Lance Taylor  <iant@google.com>
2782
2783         PR target/40636
2784         * config/i386/msformat-c.c (mingw_format_attributes): Declare as
2785         EXPORTED_CONST.
2786         (mingw_format_attribute_overrides): Likewise.
2787
2788 2009-07-04  Jakub Jelinek  <jakub@redhat.com>
2789
2790         PR debug/40596
2791         * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
2792         don't check cfa.reg.  Instead of cfa.indirect use
2793         fde && fde->drap_reg != INVALID_REGNUM test.
2794
2795 2009-07-04  Eric Botcazou  <ebotcazou@adacore.com>
2796
2797         * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
2798
2799 2009-07-03  Vladimir Makarov  <vmakarov@redhat.com>
2800
2801         PR target/40587
2802         * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
2803
2804 2009-07-03  Richard Guenther  <rguenther@suse.de>
2805
2806         PR tree-optimization/40640
2807         * tree-switch-conversion.c (build_arrays): Perform arithmetic
2808         in original type.
2809
2810 2009-07-03  Jan Hubicka  <jh@suse.cz>
2811
2812         * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
2813         for size, reduce amount of inlining.
2814
2815 2009-07-03  Richard Guenther  <rguenther@suse.de>
2816
2817         PR middle-end/34163
2818         * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
2819         if t +- x is known to not overflow and the conversion widens the
2820         operation.
2821         * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
2822
2823 2009-07-03  Jan Hubicka  <jh@suse.cz>
2824
2825         * ipa-pure-const.c (analyze): Update loop optimizer init.
2826         * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
2827         try_remove_empty_loop, remove_empty_loops): Remove.
2828         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
2829         * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
2830         to mark regular loops as neccesary.
2831         (degenerate_phi_p): New function.
2832         (propagate_necessity, remove_dead_phis): Use it.
2833         (forward_edge_to_pdom): Likewise.
2834         (eliminate_unnecessary_stmts): Take care to remove uses of results of
2835         virtual PHI nodes that became unreachable.
2836         (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
2837         * tree-flow.h (remove_empty_loops): Remove.
2838         * passes.c (init_optimization_passes): Remove.
2839
2840 2009-07-03  Uros Bizjak  <ubizjak@gmail.com>
2841
2842         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
2843         can_create_pseudo_p.
2844         (*fix_trunc<mode>_i387_1): Ditto.
2845         (*floathi<mode>2_1): Ditto.
2846         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
2847         (*fistdi2_1): Ditto.
2848         (*fist<mode>2_1): Ditto.
2849         (frndintxf2_floor): Ditto.
2850         (*fist<mode>2_floor_1): Ditto.
2851         (frndintxf2_ceil): Ditto.
2852         (*fist<mode>2_ceil_1): Ditto.
2853         (frndintxf2_trunc): Ditto.
2854         (frndintxf2_mask_pm): Ditto.
2855         (fxam<mode>2_i387_with_temp): Ditto.
2856         * config/i386/sse.md (mulv16qi3): Ditto.
2857         (*sse2_mulv4si3): Ditto.
2858         (mulv2di3): Ditto.
2859         (sse4_2_pcmpestr): Ditto.
2860         (sse4_2_pcmpistr): Ditto.
2861
2862 2009-07-03  Jan Hubicka  <jh@suse.cz>
2863
2864         * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
2865         (mark_stmt_necessary): Set it.
2866         (mark_operand_necessary): Set it.
2867         (mark_control_dependent_edges_necessary): Set it.
2868         (mark_virtual_phi_result_for_renaming): New function.
2869         (get_live_post_dom): New function.
2870         (forward_edge_to_pdom): New function.
2871         (remove_dead_stmt): Fix handling of control dependences.
2872         (tree_dce_init): Init new bitmap.
2873         (tree_dce_done): Free it.
2874
2875 2009-07-02  Richard Guenther  <rguenther@suse.de>
2876
2877         PR bootstrap/40617
2878         * tree-ssa-structalias.c (new_var_info): Initialize
2879         is_restrict_var.
2880
2881 2009-07-02  Jan Hubicka  <jh@suse.cz>
2882
2883         * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
2884         local.
2885
2886 2009-07-02  Paolo Bonzini  <bonzini@gnu.org>
2887
2888         * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
2889         instead of recomputing it.  Adjust calls.
2890         (emit_store_flag): Adjust recursive calls.
2891
2892 2009-07-02  Richard Guenther  <rguenther@suse.de>
2893
2894         * tree-ssa-live.c (remove_unused_locals): Do not remove
2895         heap variables.
2896         * tree-ssa-structalias.c (handle_lhs_call): Delay setting
2897         of DECL_EXTERNAL for HEAP variables.
2898         (compute_points_to_sets): Set DECL_EXTERNAL for escaped
2899         HEAP variables.  Do not adjust RESTRICT vars.
2900         (find_what_var_points_to): Nobody cares if something
2901         points to READONLY.
2902
2903 2009-07-02  Ben Elliston  <bje@au.ibm.com>
2904
2905         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
2906         pc_low and pc_high declarations to the top of the function.
2907
2908 2009-07-01  DJ Delorie  <dj@redhat.com>
2909
2910         * config/mep/mep.c (mep_handle_option): Leave IVC2 control
2911         registers as fixed.
2912         (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
2913         * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
2914         unspecified accesses to control registers.
2915         * config/mep/intrinsics.md: Regenerate.
2916         * config/mep/intrinsics.h: Regenerate.
2917         * config/mep/mep-intrin.h: Regenerate.
2918
2919 2009-07-01  Anthony Green  <green@moxielogic.com>
2920
2921         * config/moxie/moxie.c (moxie_expand_prologue): Use dec
2922         instruction when possible.
2923         (moxie_expand_prologue): Ditto.  Also, save an instruction and
2924         some complexity by popping off of $r12 instead of $sp.
2925         * config/moxie/moxie.md (movsi_pop): Don't assume $sp.  Take two
2926         operands.
2927
2928 2009-07-01  Richard Henderson  <rth@redhat.com>
2929
2930         PR bootstrap/40347
2931         * function.c (reposition_prologue_and_epilogue_notes): If epilogue
2932         contained no insns, reposition note before last insn.
2933
2934 2009-07-01  Richard Henderson  <rth@redhat.com>
2935
2936         PR debug/40431
2937         * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
2938         DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
2939
2940 2009-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
2941
2942         PR bootstrap/40558
2943         * config/rs6000/rs6000.c (print_operand): Undo change that breaks
2944         darwin9 for printing reg addresses with %y.
2945
2946 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
2947
2948         * combine.c (force_to_mode): Handle TRUNCATE.  Factor out
2949         truncation from operands in binary operations.
2950
2951 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
2952
2953         Revert:
2954         2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
2955         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
2956         subreg of op0 to the original op0.
2957
2958         * expmed.c (store_bit_field_1): Use a temporary as the destination
2959         instead of a paradoxical subreg when we need to truncate the result.
2960
2961 2009-07-01  DJ Delorie  <dj@redhat.com>
2962
2963         * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
2964         names to VLIW variants.
2965         (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
2966         * config/mep/intrinsics.md: Regenerate.
2967         * config/mep/intrinsics.h: Regenerate.
2968         * config/mep/mep-intrin.h: Regenerate.
2969
2970 2009-07-01  Jakub Jelinek  <jakub@redhat.com>
2971
2972         PR debug/40462
2973         * jump.c (returnjump_p): Revert last patch.
2974         * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
2975
2976 2009-07-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2977
2978         PR target/40575
2979         * pa.md (casesi32p): Use jump table label to determine the offset
2980         of the jump table.
2981         (casesi64p): Likewise.
2982
2983         * pa.c (forward_branch_p): Return bool type.  Use instruction
2984         addresses when available.  Assert that INSN has a jump label.
2985         (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
2986         have a jump label.
2987
2988 2009-07-01  Richard Guenther  <rguenther@suse.de>
2989
2990         PR tree-optimization/19831
2991         * tree-ssa-dce.c (propagate_necessity): Calls to functions
2992         that only act as barriers do not make any previous stores necessary.
2993         * tree-ssa-structalias.c (handle_lhs_call): Delay making
2994         HEAP variables global, do not add a constraint from nonlocal.
2995         (find_func_aliases): Handle escapes through return statements.
2996         (compute_points_to_sets): Make escaped HEAP variables global.
2997
2998 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
2999
3000         PR bootstrap/40597
3001         * expmed.c (emit_store_flag): Perform a conversion if necessary,
3002         after reducing a DImode cstore to SImode.
3003
3004 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
3005
3006         * expr.c (expand_expr_real_1): Reinstate fallthrough to
3007         TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
3008
3009 2009-07-01  Maciej W. Rozycki  <macro@linux-mips.org>
3010
3011         * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro.  Set to 1.
3012         * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro.  Redefine the
3013         to 0.
3014         * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
3015         and umod_optab if TARGET_BSD_DIVMOD.
3016         * config/vax/lib1funcs.asm: New file.
3017         * config/vax/t-linux: New file.
3018         * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
3019
3020 2009-06-30  Jakub Jelinek  <jakub@redhat.com>
3021
3022         PR c++/40566
3023         * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
3024         to type arguments that have void type.
3025
3026         PR debug/40573
3027         * dwarf2out.c (gen_formal_parameter_die): Call
3028         equate_decl_number_to_die if node is different from origin.
3029
3030 2009-06-30  Anthony Green  <green@moxielogic.com>
3031
3032         Clean up moxie port for --enable-build-with-cxx.
3033         * config/moxie/moxie.c (moxie_function_value): First two
3034         parameters are const_tree, not tree.
3035         * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
3036         (REG_CLASS_NAMES): Ditto.
3037         (REGNO_REG_CLASS): Ditto.
3038         * config/moxie/moxie-protos.h (moxie_override_options): Declare.
3039         (moxie_function_value): Fix constyness of arguments.
3040
3041 2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>
3042
3043         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
3044         finalize_size_functions before further processing.
3045         * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
3046         (variable_size): Call self_referential_size on size expressions
3047         that contain a PLACEHOLDER_EXPR.
3048         (size_functions): New static variable.
3049         (copy_self_referential_tree_r): New static function.
3050         (self_referential_size): Likewise.
3051         (finalize_size_functions): New global function.
3052         * tree.c: Include tree-inline.h.
3053         (push_without_duplicates): New static function.
3054         (find_placeholder_in_expr): New global function.
3055         (substitute_in_expr) <tcc_declaration>: Return the replacement object
3056         on equality.
3057         <tcc_expression>: Likewise.
3058         <tcc_vl_exp>: If the replacement object is a constant, try to inline
3059         the call in the expression.
3060         * tree.h (finalize_size_functions): Declare.
3061         (find_placeholder_in_expr): Likewise.
3062         (FIND_PLACEHOLDER_IN_EXPR): New macro.
3063         (substitute_placeholder_in_expr): Update comment.
3064         * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
3065         is true.
3066         (copy_tree_body_r): Likewise.
3067         (copy_tree_body): New static function.
3068         (maybe_inline_call_in_expr): New global function.
3069         * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
3070         (maybe_inline_call_in_expr): Declare.
3071         * Makefile.in (tree.o): Depend on TREE_INLINE_H.
3072         (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
3073         GIMPLE_H.
3074
3075 2009-06-30  Richard Guenther  <rguenther@suse.de>
3076
3077         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
3078         continue walking.
3079         (propagate_necessity): Do not mark reaching defs of stores
3080         as necessary.
3081
3082 2009-06-30  Jan Hubicka  <jh@suse.cz>
3083
3084         * cfgloopanal.c (check_irred): Move into ...
3085         (mark_irreducible_loops): ... here; return true if ireducible
3086         loops was found.
3087         * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
3088         (analyze_function): Try to prove loop finiteness.
3089         * cfgloop.h (mark_irreducible_loops): Update prototype.
3090         * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
3091
3092 2009-06-30  Basile Starynkevitch  <basile@starynkevitch.net>
3093
3094         * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
3095
3096 2009-06-30  Ira Rosen  <irar@il.ibm.com>
3097
3098         PR tree-optimization/40542
3099         * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile 
3100         types.
3101
3102 2009-06-30  Martin Jambor  <mjambor@suse.cz>
3103
3104         PR tree-optimization/40582
3105         * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
3106         than useless_type_conversion_p.
3107         (generate_subtree_copies): Increment sra_stats.subtree_copies at a
3108         proper place.
3109
3110 2009-06-30  Martin Jambor  <mjambor@suse.cz>
3111
3112         PR middle-end/40554
3113         * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
3114
3115 2009-06-30  Richard Guenther  <rguenther@suse.de>
3116
3117         * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
3118         use ao_ref references.
3119         (walk_aliased_vdefs): Likewise.
3120         * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
3121         * tree-ssa-dce.c (struct ref_data): Remove.
3122         (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
3123         (mark_aliased_reaching_defs_necessary): Adjust.
3124         (mark_all_reaching_defs_necessary_1): Likewise.
3125
3126 2009-06-30  Paolo Bonzini  <bonzini@gnu.org>
3127
3128         PR boostrap/40597
3129         * expmed.c (emit_cstore): New name of emit_store_flag_1.
3130         (emit_store_flag_1): Extract from emit_store_flag, adjust
3131         calls to (what now is) emit_cstore.
3132         (emit_store_flag): Call emit_store_flag_1 and also use it
3133         for what used to be recursive calls.
3134
3135 2009-06-30  Wei Guozhi  <carrot@google.com>
3136
3137         PR/40416
3138         * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
3139         if the target bb post dominates from bb.
3140         * config/i386/i386.c (memory_address_length): Check existence of base
3141         register before using it.
3142
3143 2009-06-30  Nick Clifton  <nickc@redhat.com>
3144             DJ Delorie  <dj@redhat.com>
3145
3146         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
3147         __FMOVD_ENABLED__ is defined.
3148         * config/sh/sh.h
3149         (TARGET_FMOVD): Provide a default definition.
3150         (MASK_FMOVD): Likewise.
3151         (TARGET_CPU_CPP_BUILTINS): Define
3152         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
3153         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
3154         two fmov instructions depending upon whether TARGET_FMOVD is
3155         enabled.
3156         (split for DF load from memory into register): Also handle
3157         MEMs which consist of REG+DISP addressing.
3158         (split for DF store from register to memory): Likewise.
3159         * config/sh/sh.opt (mfmovd): Remove this switch.
3160         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
3161         * config/sh/sh.c (sh_override_options): Do not automatically
3162         enable TARGET_MOVD for the SH2A when supporting doubles - leave
3163         that to the -mfmovd command line switch.
3164
3165         * config/sh/sh.c (broken_move): Do not restrict fldi test to only
3166         the SH4 and SH4A.
3167         (fldi_ok): Always allow.
3168         * config/sh/sh.md (movsf_ie): Always use single fp_mode.
3169
3170 2009-06-29  DJ Delorie  <dj@redhat.com>
3171
3172         * doc/install.texi (mep-x-elf): Correct chip's full name.
3173
3174 2009-06-29  H.J. Lu  <hongjiu.lu@intel.com>
3175
3176         * doc/extend.texi: Fix typo.
3177
3178 2009-06-29  Tom Tromey  <tromey@redhat.com>
3179
3180         * dwarf2.h: Remove.
3181         * Makefile.in (DWARF2_H): New variable.
3182         (except.o): Use it.
3183         (dwarf2out.o): Likewise.
3184         (dwarf2asm.o): Likewise.
3185         * config/i386/t-i386: Use DWARF2_H.
3186         * except.c: Include elf/dwarf2.h.
3187         * unwind-dw2.c: Include elf/dwarf2.h.
3188         * dwarf2out.c: Include elf/dwarf2.h.
3189         (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
3190         <dtprel>: New field.
3191         (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
3192         (size_of_loc_descr): Likewise.
3193         (output_loc_operands_raw): Likewise.
3194         (output_loc_operands): Handle new dtprel field.
3195         (loc_checksum): Update.
3196         (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
3197         * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
3198         * unwind-dw2-fde.c: Include elf/dwarf2.h.
3199         * dwarf2asm.c: Include elf/dwarf2.h.
3200         * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
3201         * config/mmix/mmix.c: Include elf/dwarf2.h.
3202         * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
3203         * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
3204         * config/sh/sh.c: Include elf/dwarf2.h.
3205         * config/i386/i386.c: Include elf/dwarf2.h.
3206
3207 2009-06-29  DJ Delorie  <dj@redhat.com>
3208
3209         * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
3210
3211         * doc/extend.texi: Add MeP attributes and pragmas.
3212         * doc/invoke.text: Add MeP Options.
3213         * doc/contrib.texi: Add MeP contribution.
3214         * doc/md.texi: Add MeP constraints.
3215         * doc/install.texi: Add MeP target.
3216
3217 2009-06-30  Anatoly Sokolov  <aesok@post.ru>
3218
3219         * target.h (struct gcc_target): Add frame_pointer_required field.
3220         * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
3221         (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
3222         * ira.c (setup_eliminable_regset): Use frame_pointer_required target
3223         hook.
3224         * reload1.c (update_eliminables): (Ditto.).
3225         * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
3226         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
3227         (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
3228
3229         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
3230
3231         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
3232         * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3233         (arm_frame_pointer_required): New function.
3234
3235         * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
3236         * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3237         (avr_frame_pointer_required_p): Declare as static.
3238         * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
3239
3240         * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
3241         * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3242         (bfin_frame_pointer_required): Make as static, change return type
3243         to bool.
3244         * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
3245
3246         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
3247         * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3248         (cris_frame_pointer_required): New function.
3249         
3250         * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
3251
3252         * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
3253         * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3254         (fr30_frame_pointer_required): New function.
3255         
3256         * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
3257         * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3258         (frv_frame_pointer_required): Make as static, change return type
3259         to bool.
3260         * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
3261
3262         * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
3263         * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3264         (ix86_frame_pointer_required): Make as static, change return type to
3265         bool.
3266         * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
3267
3268         * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
3269         * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3270
3271         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
3272
3273         * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
3274         
3275         * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
3276
3277         * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
3278         * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3279         (mips_frame_pointer_required): Make as static.
3280         * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
3281         
3282         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
3283         * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3284         (mmix_frame_pointer_required): Mew function.
3285
3286         * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
3287         * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3288
3289         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
3290
3291         * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
3292
3293         * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
3294
3295         * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
3296         (CAN_ELIMINATE): Redefine.
3297         * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3298         (sparc_frame_pointer_required): New function.
3299         (sparc_can_eliminate): New function.
3300         * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
3301
3302         * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
3303         * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3304
3305         * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
3306         * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3307         (xtensa_frame_pointer_required): Make as static, change return type
3308         to bool.
3309         * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
3310         Remove.
3311
3312 2009-06-29  Olatunji Ruwase  <tjruwase@google.com>
3313
3314         * doc/plugins.texi: Document PLUGIN_START_UNIT.
3315         * toplev.c (compile_file): Call PLUGIN_START_UNIT.
3316         * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
3317         * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
3318         (register_callback): Handle PLUGIN_START_UNIT.
3319         (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
3320
3321 2009-06-29  Eric Botcazou  <ebotcazou@adacore.com>
3322
3323         * tree.c (process_call_operands): Propagate TREE_READONLY from the
3324         operands.
3325         (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
3326         (build3_stat): Propagate TREE_READONLY for COND_EXPR.
3327
3328 2009-06-29  Daniel Jacobowitz  <dan@codesourcery.com>
3329
3330         * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
3331         move cost.
3332
3333 2009-06-29  Uros Bizjak  <ubizjak@gmail.com>
3334
3335         * doc/extend.texi (Additional Floating Types): __float128 is also
3336         supported on i386 targets.
3337
3338 2009-06-29  Richard Guenther  <rguenther@suse.de>
3339
3340         PR middle-end/14187
3341         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
3342         flag.
3343         (pt_solutions_same_restrict_base): Declare.
3344         * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
3345         flag.
3346         (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
3347         (make_constraint_from, make_copy_constraint): Move earlier.
3348         (make_constraint_from_heapvar): New function.
3349         (make_constraint_from_restrict): Likewise.
3350         (handle_lhs_call): Use it.
3351         (find_func_aliases): Use it to track conversions to restrict
3352         qualified pointers.
3353         (struct fieldoff): Add only_restrict_pointers flag.
3354         (push_fields_onto_fieldstack): Initialize it.
3355         (create_variable_info_for): Track global restrict qualified pointers.
3356         (intra_create_variable_infos): Use make_constraint_from_heapvar.
3357         Track restrict qualified pointer arguments.
3358         (set_uids_in_ptset): Use varinfo is_global_var flag.
3359         (find_what_var_points_to): Set the vars_contains_restrict flag.
3360         Always create the points-to solution for sets including restrict tags.
3361         (pt_solutions_same_restrict_base): New function.
3362         * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
3363         qualified pointers use pt_solutions_same_restrict_base as
3364         additional source for disambiguation.
3365
3366 2009-06-29  Richard Guenther  <rguenther@suse.de>
3367
3368         PR middle-end/38212
3369         * alias.c (find_base_decl): Remove.
3370         (get_deref_alias_set_1): Remove restrict handling.
3371         * c-common.c (c_apply_type_quals_to_decl): Do not set
3372         DECL_POINTER_ALIAS_SET.
3373         * gimplify.c (find_single_pointer_decl_1): Remove.
3374         (find_single_pointer_decl): Likewise.
3375         (internal_get_tmp_var): Remove restrict handling.
3376         (gimple_regimplify_operands): Likewise.
3377         * omp-low.c (expand_omp_atomic_pipeline): Do not set
3378         DECL_POINTER_ALIAS_SET. Use ref-all pointers.
3379         * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
3380         * tree.c (restrict_base_for_decl): Remove.
3381         (init_ttree): Do not allocate it.
3382         (make_node_stat): Do not set DECL_POINTER_ALIAS_SET.  Set
3383         LABEL_DECL_UID for label decls.
3384         (copy_node_stat): Do not copy restrict information.
3385         (decl_restrict_base_lookup): Remove.
3386         (decl_restrict_base_insert): Likewise.
3387         (print_restrict_base_statistics): Likewise.
3388         (dump_tree_statistics): Do not call print_restrict_base_statistics.
3389         * tree.h (DECL_POINTER_ALIAS_SET): Remove.
3390         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
3391         (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
3392         (LABEL_DECL_UID): Adjust.
3393         (DECL_BASED_ON_RESTRICT_P): Remove.
3394         (DECL_GET_RESTRICT_BASE): Likewise.
3395         (SET_DECL_RESTRICT_BASE): Likewise.
3396         (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
3397
3398         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
3399         instead of DECL_POINTER_ALIAS_SET.
3400         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
3401         * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
3402         * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
3403
3404 2009-06-29  Richard Guenther  <rguenther@suse.de>
3405
3406         PR tree-optimization/40579
3407         * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
3408         the IL to simplify has constants that overflowed.
3409
3410 2009-06-28  Uros Bizjak  <ubizjak@gmail.com>
3411
3412         PR tree-optimization/40550
3413         * tree-vect-generic.c (expand_vector_operations_1): Compute in
3414         vector_compute_type only when the size of vector_compute_type is
3415         less than the size of type.
3416
3417 2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>
3418
3419         * fold-const.c (contains_label_1): Fix comments.
3420         (contains_label_p): Do not walk trees multiple time.