OSDN Git Service

be426c4c04b962cc0413322dbaffb494f9874126
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-08-09  Bernd Schmidt  <bernd.schmidt@analog.com>
2
3         * tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function.
4         * tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it.
5         * tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer.
6         (enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE.
7         (dump_cand): Handle them.
8         (struct iv_cand): New members COST_STEP and AINC_USE.
9         (stmt_after_increment): Likewise.
10         (stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos.  All
11         callers changed.  Use gimple_uid comparison instead of scanning.
12         (add_candidate_1): When looking for identical candidates, take
13         AINC_USE into account.  Set it for new candidates.
14         (force_expr_to_var_cost): Cast target_spill_cost to int.
15         (get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC.
16         All callers changed.  Check for availability of autoinc addressing
17         modes, both in general for a given mode, and in the specific use
18         case.
19         (get_computation_cost_at): New argument CAN_AUTOINC.  All callers
20         changed.
21         (get_computation_cost): Likewise.
22         (autoinc_possible_for_pair, set_autoinc_for_original_candidates,
23         add_autoinc_candidates): New static functions.
24         (add_candidate): Call add_autoinc_candidates for candidates based on
25         a USE_ADDRESS use.
26         (find_iv_candidates): Call set_autoinc_for_original_candidates.
27         (determine_use_iv_cost_address): If we have an autoinc candidate at
28         the matching use, verify autoinc is possible and subtract the cost
29         of the candidate's step from the cost.
30         (determine_iv_cost): Record the cost of the increment in the COST_STEP
31         member of the candidate.
32         (tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and
33         determine_use_iv_costs.  Call renumber_gimple_stmt_uids_in_blocks.
34
35 2009-08-09  Douglas B Rupp  <rupp@gnat.com>
36
37         * config.build (ia64-hp-*vms*): New target.
38         (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
39         with ia64-hp-*vms*.
40         * config.gcc (ia64-hp-*vms*): New target.
41         (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
42         with ia64-hp-*vms*.
43         * config.host (ia64-hp-*vms*): New target.
44         (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify
45         with ia64-hp-*vms*.
46
47 2009-08-08  Richard Guenther  <rguenther@suse.de>
48
49         PR tree-optimization/40991
50         * tree-ssa-pre.c (eliminate): Delay purging EH edges.
51
52 2009-08-08  Richard Sandiford  <rdsandiford@googlemail.com>
53
54         * combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from
55         mode check.  Do truncations in an integer mode.
56         (force_to_mode): Handle subregs for all mode types.  Only do
57         arithmetic simplifications on integer modes.
58
59 2009-08-07  Richard Guenther  <rguenther@suse.de>
60
61         PR tree-optimization/40999
62         * tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs.
63         (maybe_fold_reference): Lookup constant initializers.
64         (fold_gimple_assign): Likewise.
65
66 2009-08-07  Richard Guenther  <rguenther@suse.de>
67
68         * tree-ssa.c (useless_type_conversion_p_1): Only for types
69         that require structural equality defer to the langhook.
70
71 2009-08-07  Martin Jambor  <mjambor@suse.cz>
72
73         * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed
74         comments.
75         (struct ipa_pass_through_data): New type.
76         (struct ipa_ancestor_jf_data): New type.
77         (union jump_func_value): Removed field formal_id, added fields
78         pass_through and ancestor.
79         (struct ipa_param_call_note): Changed type of formal_id to int from
80         unsigned.
81         * ipa-prop.c (ipa_print_node_jump_functions): Print pass through with
82         operations jump functions and ancestor jump functions.
83         (compute_complex_pass_through): New function.
84         (compute_scalar_jump_functions): Call compute_complex_pass_through,
85         reflect changes in the jump function strucutre.
86         (update_jump_functions_after_inlining): Ignore complex pass-through
87         and ancestor jump functions.
88         * ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and
89         polynomial pass-through with operation jump functions.
90
91 2009-08-07  Jakub Jelinek  <jakub@redhat.com>
92
93         * dwarf2out.c (output_fde): When doing hot/cold partitioning, use
94         fde->dw_fde_begin as begin label instead of hot/cold label.
95         Use LLSDAC label instead of LLSDA for second section lsda.
96         (dwarf2out_do_cfi_startproc): Add SECOND argument.  Use LLSDAC
97         label instead of LLSDA if it is true.
98         (dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust
99         callers.
100         * except.c (add_call_site, dw2_size_of_call_site_table): Add
101         SECTION argument.  Use it as index into crtl->eh.call_site_record
102         array.
103         (dw2_output_call_site_table): Likewise.  Add CS_FORMAT argument,
104         use it to determine how to print table entries instead of using
105         #ifdef HAVE_AS_LEB128.  For SECTION > 0 use hot resp. cold
106         label instead of normal begin label as base.
107         (sjlj_assign_call_site_values): Adjust add_call_site caller.
108         (convert_to_eh_region_ranges): When doing hot/cold partitioning,
109         ensure no EH range spans between sections and that landing pads
110         are always in the corresponding section.
111         (sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust
112         for crtl->eh.call_site_record being an array rather than scalar.
113         (output_one_function_exception_table): New function, copied
114         from output_function_exception_table.  Adjust
115         dw2_size_of_call_site_table, dw2_output_call_site_table
116         callers.  For SECOND section use *C suffixed labels.
117         (output_function_exception_table): Call
118         output_one_function_exception_table and, when doing hot/cold
119         partitioning, also another time for the second section.
120         * opts.c: Include except.h.
121         (decode_options): Allow -freorder-blocks-and-partition with
122         exceptions, unless SJLJ or TARGET_UNWIND_INFO.
123         * Makefile.in (opts.o): Depend on $(EXCEPT_H).
124         * function.h (struct rtl_eh): Change call_site_record from
125         scalar into array of 2 elements.
126
127 2009-08-07  Martin Jambor  <mjambor@suse.cz>
128
129         * ipa-prop.c (count_formal_params_1): New function.
130         (ipa_get_vector_of_formal_parms): New function.
131         (get_vector_of_formal_parm_types): New function.
132         (ipa_modify_formal_parameters): New function.
133         (ipa_modify_call_arguments): New function.
134         (index_in_adjustments_multiple_times_p): New function.
135         (ipa_combine_adjustments): New function.
136         (ipa_dump_param_adjustments): New function.
137         * ipa-prop.h (struct ipa_parm_adjustment): New type.
138         (ipa_get_vector_of_formal_parms): Declare.
139         (ipa_modify_formal_parameters): Declare.
140         (ipa_modify_call_arguments): Declare.
141         (ipa_combine_adjustments): Declare.
142         (ipa_dump_param_adjustments): Declare.
143         (build_ref_for_offset): Declare.
144         * Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies.
145         * tree-sra.c: Include ipa-prop.c.
146         (build_ref_for_offset): Make public. 
147
148 2009-08-06  Thomas Schwinge  <tschwinge@gnu.org>
149
150         * gcc/doc/extend.texi (__builtin_extract_return_address)
151         (__builtin_frob_return_address): Document.
152
153 2009-08-06  Paul Brook  <paul@codesourcery.com>
154
155         * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation.
156         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1
157         implementation on ARMv6-M.
158
159 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
160
161         * doc/extend.texi (pcs): Document new attribute for ARM.
162
163 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
164
165         * arm.c (pcs_attribute_args): Comment out unsupported attribute
166         variants.
167
168 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
169
170         * arm.c (arm_handle_pcs_attribute): Pass the entire name object to
171         warning ().
172
173 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
174
175         * arm.c (arm_handle_pcs_attribute): Use %qE in warning.
176
177 2009-08-06  Richard Earnshaw  <rearnsha@arm.com>
178
179         Merge ARM/hard_vfp_branch to trunk.
180
181         2009-08-04  Richard Earnshaw  <rearnsha@arm.com>
182
183         * arm.c (libcall_eq): New function.
184         (libcall_hash): New function.
185         (add_libcall): New function.
186         (arm_libcall_uses_aapcs_base): New function.
187         (arm_libcall_value): Use arm_libcall_uses_aapcs_base to check for
188         libcalls using the base PCS.
189         (arm_init_cumulative_args): Likewise.
190
191         2009-07-20  Joseph Myers  <joseph@codesourcery.com>
192
193         * config/arm/arm.c (arm_libcall_value, arm_init_cumulative_args):
194         Use base ABI for conversion libfuncs between HFmode and SFmode.
195
196         2009-05-12  Joseph Myers  <joseph@codesourcery.com>
197
198         * config/arm/arm.c (aapcs_vfp_sub_candidate): Use V2SImode and
199         V4SImode as representatives of all 64-bit and 128-bit vector
200         types.  Allow vector types without vector modes.
201         (aapcs_vfp_is_call_or_return_candidate): Handle vector types
202         without vector modes like BLKmode.
203         (aapcs_vfp_allocate): Handle TImode for non-TARGET_NEON like
204         BLKmode.  Avoid unsupported vector modes or TImode moves for
205         non-TARGET_NEON.
206         (aapcs_vfp_allocate_return_reg): Likewise.
207         (arm_vector_mode_supported_p): Only support V2SImode, V4HImode and
208         V8QImode if TARGET_NEON || TARGET_IWMMXT.
209
210         2009-05-12  Joseph Myers  <joseph@codesourcery.com>
211
212         * config/arm/arm.c (arm_handle_pcs_attribute): New.
213         (arm_get_pcs_model): Pass attribute arguments to
214         arm_pcs_from_attribute.
215         (arm_init_cumulative_args): Use base AAPCS for conversions from
216         floating-point types to DImode.
217         (arm_attribute_table): Add pcs attribute.
218         (arm_handle_pcs_attribute): New.
219         * config/arm/bpabi.h (DECLARE_LIBRARY_RENAMES): When renaming
220         conversions from floating-point types to DImode, also declare them
221         to use base AAPCS and declare functions they call to use base
222         AAPCS and their RTABI names.
223
224         2009-05-12  Joseph Myers  <joseph@codesourcery.com>
225
226         * doc/invoke.texi (-mfloat-abi=@var{name}): Remove statement about
227         -mfloat-abi=hard not being supported for VFP.
228
229         2009-05-11  Kazu Hirata  <kazu@codesourcery.com>
230
231         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Pass a libcall
232         SYMBOL_REF to hard_libcall_value.
233
234         2009-03-05  Joseph Myers  <joseph@codesourcery.com>
235             Richard Earnshaw  <rearnsha@arm.com>
236
237         * config/arm/arm.c (aapcs_layout_arg): Once a co-processor argument
238         has been put on the stack, all remaining co-processory arguments for
239         that co-processor also go on the stack.
240
241         2009-03-05  Joseph Myers  <joseph@codesourcery.com>
242
243         * config/arm/arm.c (arm_return_in_memory): Handle returning
244         vectors of suitable size in registers also for AAPCS case.
245
246         2009-01-13  Richard Earnshaw <rearnsha@arm.com>
247
248         * doc/tm.texi (TARGET_LIBCALL_VALUE): Add missing end statement.
249
250         2008-12-09  Richard Earnshaw <rearnsha@arm.com>
251
252         ARM Hard-VFP calling convention
253         * target-def.h (TARGET_LIBCALL_VALUE): New hook.
254         * target.h (gcc_target): Add libcall_value to table of call hooks.
255         * targhooks.h (default_libcall_value): Default implementation.
256         * targhooks.c (default_libcall_value): Likewise.
257         * doc/tm.texi (TARGET_LIBCALL_VALUE): Document it.
258         * optabs.c (expand_unop): Use it.
259         * expr.h (hard_libcall_value): Pass the function RTX through.
260         * calls.c (emit_library_call_value_1): Update call to 
261         hard_libcall_value.
262         * explow.c (hard_libcall_value): Use new target hook.
263         * testsuite/lib/target-supports.exp
264         (check_effective_target_arm_hard_vfp_ok): New hook.
265         (check_effective_target_arm_neon_ok): Improve test for neon
266         availability.
267         * testsuite/gcc.target/arm/eabi1.c: Only run test in base variant.
268         * config/arm/arm.c: Include cgraph.h
269         (TARGET_FUNCTION_VALUE): Override default hook.
270         (arm_pcs_default): New variable.
271         (arm_override_options): Don't fault hard calling convention with VFP.
272         Add support for AAPCS variants.
273         (arm_function_value): Make static.  Handle AAPCS variants.
274         (arm_libcall_value): New function.
275         (arm_apply_result_size): Handle VFP registers in results.
276         (arm_return_in_memory): Rework all AAPCS variants; handle hard-vfp
277         conventions.
278         (pcs_attribute_args): New variable.
279         (arm_pcs_from_attribute): New function.
280         (arm_get_pcs_model): New function.
281         (aapcs_vfp_cum_init): New function.
282         (aapcs_vfp_sub_candidate): New function.
283         (aapcs_vfp_is_return_candidate): New function.
284         (aapcs_vfp_is_call_candidate): New function.
285         (aapcs_vfp_allocate): New function.
286         (aapcs_vfp_allocate_return_reg): New function.
287         (aapcs_vfp_advance): New function.
288         (aapcs_cp_arg_layout): New variable.
289         (aapcs_select_call_coproc): New function.
290         (aapcs_select_return_coproc): New function.
291         (aapcs_allocate_return_reg): New function.
292         (aapcs_libcall_value): New function.
293         (aapcs_layout_arg): New function.
294         (arm_init_cumulative_args): Initialize AAPCS args data.
295         (arm_function_arg): Handle AAPCS variants using new interface.
296         (arm_arg_parital_bytes): Likewise.
297         (arm_function_arg_advance): New function.
298         (arm_function_ok_for_sibcall): Ensure that sibling calls agree on
299         calling conventions.
300         (arm_setup_incoming_varargs): Handle new AAPCS args data.
301         * arm.h (NUM_VFP_ARG_REGS): Define.
302         (LIBCALL_VALUE): Update.
303         (FUNCTION_VALUE): Delete.
304         (FUNCTION_VALUE_REGNO_P): Add VFP regs.
305         (arm_pcs): New enum.
306         (CUMULATIVE_ARGS): New data to support AAPCS argument marshalling.
307         (FUNCTION_ARG_ADVANCE): Call arm_function_arg_advance.
308         (FUNCTION_ARG_REGNO_P): Add VFP regs.
309         * arm-protos.h (arm_function_arg_advance): Add.
310         (aapcs_libcall_value): Add.
311         (arm_function_value): Delete.
312
313 2009-08-06  Uros Bizjak  <ubizjak@gmail.com>
314             H.J. Lu  <hongjiu.lu@intel.com>
315
316         PR target/40957
317         * config/i386/i386.c (standard_sse_mode_p): Remove.
318         (standard_sse_constant_p): Return 2 for integer mode
319         vector_all_ones_operand when SSE2 is enabled.
320         (standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd.
321         (ix86_expand_vector_move): Do not check for negative values from
322         standard_sse_constant_p.
323
324 2009-08-06  Richard Guenther  <rguenther@suse.de>
325
326         * tree-ssa.c (useless_type_conversion_p_1): Make function and
327         array type comparisons frontend independent.
328         * Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency.
329         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill
330         out array reference lower bound and element size operands.
331         (ao_ref_init_from_vn_reference): Properly compute the offset
332         for ARRAY_RANGE_REF.
333         (vn_reference_fold_indirect): Fill out array reference lower
334         bound and element size operands.
335         * tree-ssa-pre.c (phi_translate_1): Fail if we have to translate
336         a non gimple valued reference operand which can happen for
337         array reference lower bound or element size.
338         (create_component_ref_by_pieces_1): Properly generate the
339         element size operand for array references.
340
341 2009-08-06  Richard Guenther  <rguenther@suse.de>
342
343         PR tree-optimization/40964
344         * tree.c (iterative_hash_host_wide_int): Export.
345         * tree.h (iterative_hash_host_wide_int): Declare.
346         * tree-ssa-structalias.c (heapvar_map): New struct.
347         (heapvar_map_eq): New function.
348         (heapvar_map_hash): Likewise.
349         (heapvar_lookup): Adjust.
350         (heapvar_insert): Likewise.
351         (make_constraint_from_heapvar): Allow multiple heap variables
352         per decl at different offsets.
353         (init_alias_heapvars): Adjust.
354
355 2009-08-04  David Daney  <ddaney@caviumnetworks.com>
356
357         * config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro.
358         * mips_output_sync_loop (mips_output_sync_loop): Only emit
359         trailing sync if TARGET_SYNC_AFTER_SC.
360
361 2009-08-05  David Daney  <ddaney@caviumnetworks.com>
362
363         * gcc/config/mips/sync.md (sync_compare_and_swap<mode>,
364         compare_and_swap_12, sync_add<mode>, sync_<optab>_12,
365         sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12,
366         sync_old_nand_12, sync_new_nand_12, sync_sub<mode>,
367         sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>,
368         sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>,
369         sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>,
370         sync_new_nand<mode>, sync_lock_test_and_set<mode>,
371         test_and_set_12): Rewrite calls to mips_output_sync_loop.
372         * gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make
373         the prototype declaration match the definition.
374         * gcc/config/mips/mips.c (mips_output_sync_loop):  Emit sync
375         instructions explicitly.  Add barrier_before and operands
376         parameters.
377         * gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP,
378         MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12,
379         MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP,
380         MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND,
381         MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE,
382         MIPS_SYNC_EXCHANGE_12): Remove sync instructions.
383
384 2009-08-05  Andrew Pinski  <pinskia@gmail.com>
385
386         * tree-ssa-alias.c: Fix intervals to use [) syntax.
387
388 2009-08-05  Uros Bizjak  <ubizjak@gmail.com>
389             Mikulas Patocka  <mikulas@artax.karlin.mff.cuni.cz>
390
391         PR target/40906
392         * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part
393         source operand.
394
395 2009-08-05  Jakub Jelinek  <jakub@redhat.com>
396
397         PR rtl-optimization/40924
398         * dse.c (canon_address): Before calling cselib_expand_value_rtx
399         make sure canon_rtx (mem_address) isn't simpler than
400         canon_rtx (expanded_mem_address).
401
402 2009-08-05  Li Feng  <nemokingdom@gmail.com>
403
404         * graphite-sese-to-poly.c (build_pbb_drs): Remove build alias set
405         for each poly_bb_p.
406         (build_scop_drs): Build alias set for each SCoP.
407
408 2009-08-04  Sandra Loosemore  <sandra@codesourcery.com>
409
410         * doc/invoke.texi (MIPS Options): Document new 1004K -march options.
411         * config/mips/mips.c (mips_cpu_info_table): Add 1004K cores.
412         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Add pattern for 1004K.
413         (MIPS_ARCH_FLOAT_SPEC): Likewise.
414         (BASE_DRIVER_SELF_SPECS): Likewise.
415
416 2009-08-04  Andrew Pinski  <pinskia@gmail.com>
417
418         * tree-ssa-alias.c: Fix some comment typos.
419
420 2009-08-04  Kaz Kojima  <kkojima@gcc.gnu.org>
421
422         * config/sh/linux-atomic.asm (ATOMIC_BOOL_COMPARE_AND_SWAP,
423         ATOMIC_OP_AND_FETCH, ATOMIC_COMBOP_AND_FETCH): Define.
424
425 2009-08-03  Janis Johnson  <janis187@us.ibm.com>
426
427         PR c/39902
428         * simplify-rtx.c (simplify_binary_operation_1): Disable
429         simplifications for decimal float operations.
430
431 2009-08-03  Jakub Jelinek  <jakub@redhat.com>
432
433         PR middle-end/40943
434         * tree-ssa.c (warn_uninitialized_var): Even on LHS warn for
435         operand of INDIRECT_REF.
436
437 2009-08-03  Uros Bizjak  <ubizjak@gmail.com>
438
439         * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST
440         constants referencing TLS symbols.
441
442 2009-08-03  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
443
444         * config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename
445         __sync_compare_and_swap_* to __sync_val_compare_and_swap_*.
446
447 2009-08-03  Richard Guenther  <rguenther@suse.de>
448
449         * tree.c (make_vector_type): Build a main variant first,
450         get the canonical one and then build the variant.
451         * tree-ssa.c (useless_type_conversion_p_1): Handle
452         fixed-point types.
453         (useless_type_conversion_p): Conversions to pointers to
454         incomplete record types are useless.
455
456 2009-08-03  Richard Guenther  <rguenther@suse.de>
457
458         * tree-cfg.c (pass_warn_unused_result): Mark name that no dump
459         file will be created.
460         * omp-low.c (pass_diagnose_omp_blocks): Likewise.
461         * toplev.c (compile_file): Adjust comment.
462
463 2009-08-03  Kaz Kojima  <kkojima@gcc.gnu.org>
464
465         * config/sh/sh-protos.h (sh_promote_function_mode): Remove.
466         * config/sh/sh.c (sh_promote_function_mode): Wrap long lines.
467         (TARGET_PROMOTE_FUNCTION_MODE): Define.
468         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
469         (sh_promote_function_mode): Fix typo.
470
471 2009-08-03  Andreas Krebbel  <krebbel1@de.ibm.com>
472
473         * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused.
474
475 2009-08-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
476
477         * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from
478         declaration arguments.
479
480 2009-08-02  Uros Bizjak  <ubizjak@gmail.com>
481
482         * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead
483         of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01).
484         (ix86_split_ashl): Ditto.
485         (ix86_expand_vector_init_one_nonzero): Ditto.
486         (ix86_expand_vector_set): Ditto.
487         (ix86_expand_reduc_v4sf): Ditto.
488
489 2009-08-02  Paolo Bonzini  <bonzini@gnu.org>
490
491         * explow.c (promote_function_mode): Remove assert.
492         * config/sh/sh.c (sh_promote_function_mode): Declare.
493
494 2009-08-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
495
496         * config/pa/pa.c (pa_promote_function_mode): Declare.
497         Change to static.  Fix promote_mode call.
498
499         * gthr-dce.h (CONST_CAST2): Define if not defined.
500         (__gthread_setspecific): Use CONST_CAST2 to fix warning.
501
502         * config.gcc (hppa[12]*-*-hpux10*): Add stdint support.
503
504 2009-08-01  Paolo Bonzini  <bonzini@gnu.org>
505
506         * expr.c (store_constructor): Use promote_decl_mode.  Remove
507         now write-only variable unsignedp.
508         (expand_expr_real_1): Use promote_decl_mode.
509         * expr.h (promote_function_mode, promote_decl_mode): New.
510         (promote_mode): Remove last argument.
511         * function.c (assign_temp): Drop last argument of promote_mode.
512         (assign_parm_find_data_types): Use promote_function_mode.
513         (assign_parm_setup_reg): Likewise.
514         (expand_function_end): Use promote_function_mode.
515         * calls.c (initialize_argument_information): Use promote_function_mode.
516         (precompute_arguments): Use promote_mode instead of checking if
517         only PROMOTE_FUNCTION_MODE is defined.
518         (expand_call): When making sibcall decisions, use promote_function_mode.
519         Below, remove an if for targetm.calls.promote_function_return and
520         and use promote_function_mode.
521         (emit_library_call_value_1): Use promote_function_mode, fix bug
522         where promote_mode was passed FOR_CALL == 0 for a return value in an
523         assertion.
524         * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
525         * explow.c (promote_function_mode, promote_decl_mode): New.
526         (promote_mode): Keep only the FOR_CALL == 0 case.
527         * combine.c (setup_incoming_promotion): Remove test of
528         promote_function_args.  Use promote_function_mode.
529         * stmt.c (expand_value_return): Use promote_decl_mode.
530         (expand_decl): Use promote_decl_mode.
531
532         * expr.c (store_constructor): Use promote_decl_mode.  Remove
533         now write-only variable unsignedp.
534         (expand_expr_real_1): Use promote_decl_mode.
535         * expr.h (promote_function_mode, promote_decl_mode): New.
536         (promote_mode): Remove last argument.
537         * function.c (assign_temp): Drop last argument of promote_mode.
538         (assign_parm_find_data_types): Use promote_function_mode.
539         (assign_parm_setup_reg): Likewise.
540         (expand_function_end): Use promote_function_mode.
541         * calls.c (initialize_argument_information): Use promote_function_mode.
542         (precompute_arguments): Use promote_mode instead of checking if
543         only PROMOTE_FUNCTION_MODE is defined.
544         (expand_call): When making sibcall decisions, use promote_function_mode.
545         Below, remove an if for targetm.calls.promote_function_return and
546         and use promote_function_mode.
547         (emit_library_call_value_1): Use promote_function_mode, fix bug
548         where promote_mode was passed FOR_CALL == 0 for a return value in an
549         assertion.
550         * cfgexpand.c (expand_one_register_var): Use promote_decl_mode.
551         * explow.c (promote_function_mode, promote_decl_mode): New.
552         (promote_mode): Keep only the FOR_CALL == 0 case.
553         * combine.c (setup_incoming_promotion): Remove test of
554         promote_function_args.  Use promote_function_mode.
555         * stmt.c (expand_value_return): Use promote_decl_mode.
556         (expand_decl): Use promote_decl_mode.
557
558         * explow.c (promote_function_mode): Just call the target hook.
559         * targhooks.c (default_promote_function_mode,
560         default_promote_function_mode_always_promote): New.
561         * targhooks.h (default_promote_function_mode,
562         default_promote_function_mode_always_promote): Declare.
563         * target.h (promote_function_args, promote_function_return): Remove.
564         (promote_function_mode): New.
565         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS,
566         TARGET_PROMOTE_FUNCTION_RETURN): Remove.
567         (TARGET_PROMOTE_FUNCTION_MODE): New.
568         (TARGET_CALLS): Adjust.
569         * system.h (TARGET_PROMOTE_FUNCTION_ARGS,
570         TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison.
571
572         * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move...
573         * config/s390/s390.c (s390_promote_function_mode): ... here,
574         with pointer handling.
575         (TARGET_PROMOTE_FUNCTION_MODE): Define.
576         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
577
578         * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move...
579         * config/sparc/sparc.c (sparc_promote_function_mode): ... here,
580         with pointer handling.
581         (TARGET_PROMOTE_FUNCTION_MODE): Define.
582         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
583         
584         * config/sh/sh-protos.h (sh_promote_function_mode): New.
585         * config/sh/sh.c (sh_promote_function_mode): New.
586         (TARGET_PROMOTE_FUNCTION_MODE): Define.
587         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
588
589         * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move...
590         * config/cris/cris.c (cris_promote_function_mode): ... here.
591         (TARGET_PROMOTE_FUNCTION_MODE): Define.
592         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
593
594         * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move...
595         * config/mmix/mmix.c (mmix_promote_function_mode): ... here.
596         (TARGET_PROMOTE_FUNCTION_MODE): Define.
597         (TARGET_PROMOTE_FUNCTION_ARGS): Remove.
598
599         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move...
600         * config/arm/arm.c (arm_promote_function_mode): ... here, without
601         complex type handling.
602         (TARGET_PROMOTE_FUNCTION_MODE): Define.
603         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove.
604
605         * config/pa/pa.c (pa_promote_function_mode): New.
606         (TARGET_PROMOTE_FUNCTION_MODE): Define.
607         (TARGET_PROMOTE_FUNCTION_RETURN): Remove.
608
609         * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS,
610         TARGET_PROMOTE_FUNCTION_RETURN): Remove.
611         (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently.
612         * config/xtensa/xtensa.c: Likewise.
613         * config/stormy16/stormy16.c: Likewise.
614         * config/iq2000/iq2000.c: Likewise.
615         * config/rs6000/rs6000.c: Likewise.
616         * config/picochip/picochip.c: Likewise.
617         * config/arc/arc.c: Likewise.
618         * config/mcore/mcore.c: Likewise.
619         * config/score/score.c: Likewise.
620         * config/mips/mips.c: Likewise.
621         * config/bfin/bfin.c: Likewise.
622         * config/ia64/ia64.c: Likewise (disabled though).
623
624         * config/frv/frv.h: Remove pointless remark.
625
626         * doc/tm.texi (PROMOTE_FUNCTION_MODE,
627         TARGET_PROMOTE_FUNCTION_ARGS,
628         TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into...
629         (TARGET_PROMOTE_FUNCTION_MODE): ... this.
630
631 2009-08-01  Sebastian Pop  <sebastian.pop@amd.com>
632
633         * doc/invoke.texi (-fgraphite-force-parallel): Renamed
634         -floop-parallelize-all.
635         * toplev.c (process_options): Rename flag_graphite_force_parallel to
636         flag_loop_parallelize_all.
637         * tree-ssa-loop.c (gate_graphite_transforms): Same.
638         * graphite.c (graphite_transform_loops): Same.
639         * common.opt: Same.
640         * graphite-poly.c (apply_poly_transforms): Same.
641
642 2009-07-31  Richard Earnshaw  <rearnsha@arm.com>
643
644         PR tree-optimization/40914
645         * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta,
646         if set, then check the delta field of the PMF record.
647         (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta.
648         (ipa_analyze_call_uses): Handle machines where the vbit for a PMF
649         call is stored in the delta.
650
651 2009-07-31  Adam Nemet  <anemet@caviumnetworks.com>
652
653         * config/mips/mips.md (*clear_upper32_dext): New pattern.
654
655 2009-07-31  Uros Bizjak  <ubizjak@gmail.com>
656
657         * config/i386/bsd.h (ASM_BYTE): New define.
658         * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP.
659         * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of
660         .byte.  Use fputs or putc instead of fprintf where appropriate.
661         * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte.  Use
662         fputs or putc instead of fprintf where appropriate.
663         * config/i386/i386elf.h: Ditto.
664         * config/i386/sysv4.h: Ditto.
665         
666         * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define.
667         * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte.
668         (*tls_global_dynamic_64): Ditto.
669
670 2009-07-31  Christian Bruel  <christian.bruel@st.com>   
671
672         * gcc/config.gcc (sh*-*-elf): test with_libgloss.
673         
674 2009-07-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
675
676         * config/arm/arm.c (arm_arm_address_cost): Fix typo. 
677         Remove dead code for MINUS.
678
679 2009-07-31  Anthony Green  <green@moxielogic.com>
680
681         * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of
682         $r12 in prologue.
683         (moxie_expand_epilogue): Ditto for epilogue.
684         (moxie_setup_incoming_varargs): ABI change.  Use 5 registers for
685         incoming arguments.
686         (moxie_function_arg): Ditto.
687         (moxie_pass_by_reference): Ditto.
688         (moxie_arg_partial_bytes): Ditto.
689         * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto.
690         (FUNCTION_ARG_ADVANCE) Ditto.
691         (REG_PARM_STACK_SPACE) Ditto.
692         (FUNCTION_ARG_REGNO_P) Dito.
693
694         * config.gcc: Add moxie linux config support.
695         * gcc/config/moxie/uclinux.h: New file.
696
697 2009-07-31  DJ Delorie  <dj@redhat.com>
698
699         * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
700         (UNSPECV_SP_SWITCH_E): New.
701         (sp_switch_1): Change to an unspec.
702         (sp_switch_2): Change to an unspec.  Don't use post-inc when we
703         replace $r15.
704         * config/sh/sh.c (sh_expand_prologue): Use the constant pool to
705         reference the new stack's address
706
707 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
708
709         * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o,
710         graphite-clast-to-gimple.o, graphite-dependences.o,
711         graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
712         graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o.
713         (graphite-blocking.o,
714         graphite-clast-to-gimple.o, graphite-dependences.o,
715         graphite-interchange.o, graphite-poly.o, graphite-ppl.o,
716         graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New.
717         * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false.
718         * cfgloop.h (struct loop): Add can_be_parallel field.
719         * common.opt (fgraphite-identity): Moved up.
720         (fgraphite-force-parallel): New flag.
721         * graphite.c: Rewrite.
722         * graphite.h: Rewrite.
723         * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM
724         after Graphite.
725         * toplev.c (graphite_out_file): New file descriptor.
726         (graphite_in_file): New.
727         (process_options): flag_graphite_force_parallel cannot be used without
728         Graphite.
729         * tree-ssa-loop.c: Include toplev.h.
730         (gate_graphite_transforms): Enable flag_graphite for
731         flag_graphite_force_parallel.
732
733 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
734
735         * ChangeLog.graphite: New.
736         * graphite-blocking.c: New.
737         * graphite-clast-to-gimple.c: New.
738         * graphite-clast-to-gimple.h: New.
739         * graphite-dependences.c: New.
740         * graphite-dependences.h: New.
741         * graphite-interchange.c: New.
742         * graphite-poly.c: New.
743         * graphite-poly.h: New.
744         * graphite-ppl.c: New.
745         * graphite-ppl.h: New.
746         * graphite-scop-detection.c: New.
747         * graphite-scop-detection.h: New.
748         * graphite-sese-to-poly.c: New.
749         * graphite-sese-to-poly.h: New.
750         * sese.c: New.
751         * sese.h: New.
752
753 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
754
755         * tree-chrec.c (evolution_function_right_is_integer_cst): New.
756         * tree-chrec.h (evolution_function_right_is_integer_cst): Declared.
757
758 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
759
760         * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR.
761         (scev_is_linear_expression): Return false if the evolution is not
762         affine multivariate.
763
764 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
765
766         * tree-data-ref.c (graphite_find_data_references_in_stmt): New.
767         * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared.
768
769 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
770
771         * tree-data-ref.c (debug_data_references): New.
772         (debug_data_reference): New.
773         * tree-data-ref.h (debug_data_references): Declared.
774         (debug_data_reference): Declared.
775
776 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
777
778         * tree-data-ref.c (stmt_simple_memref_p: Removed.
779         * tree-data-ref.h (scop_p): Removed.
780         (struct data_reference): Remove field scop.
781         (DR_SCOP): Removed.
782         (stmt_simple_memref_p): Removed.
783
784 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
785
786         * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument.
787         * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch
788         basic block empty.
789
790 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
791
792         * doc/invoke.texi (-fgraphite-force-parallel): Documented.
793
794 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
795
796         * doc/invoke.texi (-fgraphite-identity): Documented.
797
798 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
799
800         * tree-scalar-evolution.c: Fix comment.
801         (instantiate_scev_1): Return unknow from scev instantiation if the
802         result is not above instantiate_below.
803
804 2009-07-30  Sebastian Pop  <sebastian.pop@amd.com>
805
806         * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not
807         static anymore.  Instantiate the symbols that may have been introduced
808         by chrec_apply.
809         * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop):
810         Declared.
811
812 2009-07-30  DJ Delorie  <dj@redhat.com>
813
814         * config/mep/mep.c (mep_asm_init_sections): Add section flags and
815         .vliw directive to VLIW sections.
816
817 2009-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
818
819         * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps):
820         New variables.
821         ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules.
822         (AUTOHEADER): New variable.
823         ($(srcdir)/cstamp-h.in): Use it.
824
825 2009-07-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
826             Pat Haugen  <pthaugen@us.ibm.com>
827             Revital Eres <ERES@il.ibm.com>
828
829         * config/rs6000/vector.md (VEC_F): Add VSX support.
830         (VEC_A): Ditto.
831         (VEC_N): Ditto.
832         (mov<mode>): Ditto.
833         (vector_load_<mode>): Ditto.
834         (vector_store_<mode>): Ditto.
835         (vector GPR move split): Ditto.
836         (vec_reload_and_plus_<mptrsize>): Ditto.
837         (vec_reload_and_reg_<mptrsize>): Ditto.
838         (add<mode>3): Ditto.
839         (sub<mode>3): Ditto.
840         (mul<mode>3): Ditto.
841         (neg<mode>2): Ditto.
842         (abs<mode>2): Ditto.
843         (smin<mode>3): Ditto.
844         (smax<mode>3): Ditto.
845         (vector_eq<mode>): Ditto.
846         (vector_gt<mode>): Ditto.
847         (vector_ge<mode>): Ditto.
848         (vector_gtu<mode>): Ditto.
849         (vector_select_<mode>_uns): Ditto.
850         (vector_eq_<mode>_p): Ditto.
851         (vector_gt_<mode>_p): Ditto.
852         (vector_ge_<mode>_p): Ditto.
853         (vector_gtu_<mode>_p): Ditto.
854         (cr6_test_for_zero): Ditto.
855         (cr6_test_for_zero_reverse): Ditto.
856         (cr6_test_for_lt): Ditto.
857         (cr6_test_for_lt_reverse): Ditto.
858         (xor<mode>3): Ditto.
859         (ior<mode>3): Ditto.
860         (and<mode>3): Ditto.
861         (one_cmpl<mode>2): Ditto.
862         (nor<mode>2): Ditto.
863         (andc<mode>2): Ditto.
864         (float<VEC_int<mode>2): Ditto.
865         (unsigned_float<VEC_int><mode>2): Ditto.
866         (fix_trunc<mode><VEC_int>2): Ditto.
867         (fixuns_trunc<mode><VEC_int>2): Ditto.
868         (vec_init<mode>):
869         (vec_set<mode>): Ditto.
870         (vec_extract<mode>): Ditto.
871         (vec_interleave_highv4sf): Ditto.
872         (vec_interleave_lowv4sf): Ditto.
873         (vec_realign_load_<mode>): Ditto.
874         (vec_shl_<mode>): Ditto.
875         (vec_shr_<mode>): Ditto.
876         (div<mode>3): New patterns for VSX.
877         (vec_interleave_highv2df): Ditto.
878         (vec_interleave_lowv2df): Ditto.
879         (vec_pack_trunc_v2df): Ditto.
880         (vec_pack_sfix_trunc_v2df): Ditto.
881         (vec_pack_ufix_trunc_v2df): Ditto.
882         (vec_unpacks_hi_v4sf): Ditto.
883         (vec_unpacks_lo_v4sf): Ditto.
884         (vec_unpacks_float_hi_v4si): Ditto.
885         (vec_unpacku_float_lo_v4si): Ditto.
886         (vec_unpacku_float_hi_v4si): Ditto.
887         (vec_unpacks_float_lo_v4si): Ditto.
888         (movmisalign<mode>): Ditto.
889         (vector_ceil<mode>2): New patterns for vectorizing math library.
890         (vector_floor<mode>2): Ditto.
891         (vector_btrunc<mode>2): Ditto.
892         (vector_copysign<mode>3): Ditto.
893
894         * config/rs6000/predicates.md (easy_vector_constant_msb): New
895         predicate for setting the high bit in each word, used for copysign.
896
897         * config/rs6000/ppc-asm.h (f19): Whitespace.
898         (f32-f63): Define if VSX.
899         (v0-v31): Define if Altivec.
900         (vs0-vs63): Define if VSX.
901
902         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md.
903
904         * config/rs6000/power7.md: New file, provide tuning parameters for
905         -mcpu=power7.
906
907         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support.
908         (rs6000_cpu_cpp_builtins): Ditto.
909         (altivec_overloaded_builtins): Ditto.
910         (altivec_resolve_overloaded_builtin): Ditto.
911
912         * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new
913         debug switch to disable vectorizing simple math builtin
914         functions.
915
916         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
917         Vectorize simple math builtin functions.
918         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
919         hook to vectorize math builtins.
920         (rs6000_override_options): Enable -mvsx on -mcpu=power7.
921         (rs6000_builtin_conversion): Add VSX/power7 support.
922         (rs6000_builtin_vec_perm): Ditto.
923         (vsplits_constant): Add support for loading up a vector constant
924         with just the high bit set in each part.
925         (rs6000_expand_vector_init): Add VSX/power7 support.
926         (rs6000_expand_vector_set): Ditto.
927         (rs6000_expand_vector_extract): Ditto.
928         (rs6000_emit_move): Ditto.
929         (bdesc_3arg): Ditto.
930         (bdesc_2arg): Ditto.
931         (bdesc_1arg): Ditto.
932         (rs6000_expand_ternop_builtin): Ditto.
933         (altivec_expand_builtin): Ditto.
934         (rs6000_expand_unop_builtin): Ditto.
935         (rs6000_init_builtins): Ditto.
936         (altivec_init_builtins): Ditto.
937         (builtin_function_type): Ditto.
938         (rs6000_common_init_builtins): Ditto.
939         (rs6000_handle_altivec_attribute); Ditto.
940         (rs6000_mangle_type): Ditto.
941         (rs6000_vector_mode_supported_p): Ditto.
942         (rs6000_mode_dependent_address): Altivec addresses with AND -16
943         are mode dependent.
944
945         * config/rs6000/vsx.md: New file for VSX support.
946
947         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for
948         identifing values with just the most significant bit set.
949         (enum rs6000_builtins): Add builtins for VSX.  Add simple math
950         vectorized builtins.
951
952         * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete.
953         (UNSPEC_VRFIM): Delete.
954         (splitter for loading up vector with most significant bit): New
955         splitter for vectorizing copysign.
956         (altivec_vrfiz): Rename from altivec_fturncv4sf2.  Add support for
957         vectorizing simple math functions.
958         (altivec_vrfip): Add support for vectorizing simple math functions.
959         (altivec_vrfim): Ditto.
960         (altivec_copysign_v4sf3): New insn for Altivec copysign support.
961
962         * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant.
963         (power7.md, vsx.md): Include for power7 support.
964         (copysigndf3): Use VSX instructions if -mvsx.
965         (negdf2_fpr): Ditto.
966         (absdf2_fpr): Ditto.
967         (nabsdf2_fpr): Ditto.
968         (adddf3_fpr): Ditto.
969         (subdf3_fpr): Ditto.
970         (muldf3_fpr): Ditto.
971         (divdf3_fpr): Ditto.
972         (fix_truncdfdi2_fpr): Ditto.
973         (cmpdf_internal1): Ditto.
974         (fred, fred_fpr): Convert into expander/insn to add VSX support.
975         (btruncdf2, btruncdf2_fpr): Ditto.
976         (ceildf2, ceildf2_fpr): Ditto.
977         (floordf2, floordf2_fpr): Ditto.
978         (floatdidf2, floatdidf2_fpr): Ditto.
979         (fmadddf4_fpr): Name insn.  Use VSX instructions if -mvsx.
980         (fmsubdf4_fpr): Ditto.
981         (fnmadddf4_fpr_1): Ditto.
982         (fnmadddf4_fpr_2): Ditto.
983         (fnmsubdf4_fpr_1): Ditto.
984         (fnmsubdf4_fpr_2): Ditto.
985         (fixuns_truncdfdi2): Add expander for VSX support.
986         (fix_truncdfdi2): Ditto.
987         (fix_truncdfsi2): Ditto.
988         (ftruncdf2): Ditto.
989         (btruncsf2): Whitespace.
990         (movdf_hardfloat32): Add support for VSX registers.
991         (movdf_softfloat32): Ditto.
992         (movdf_hardfloat64): Ditto.
993         (movdf_hardfloat64_mfpgpr): Ditto.
994         (movdf_softfloat64): Ditto.
995         (movti splitters): Add check for vector registers supporting
996         TImode in the future.
997         (bpermd): Add power7 bpermd instruction.
998
999         * config/rs6000/altivec.h (vec_div): Define if VSX.
1000         (vec_mul): Ditto.
1001         (vec_msub): Ditto.
1002         (vec_nmadd): Ditto.
1003         (vec_nearbyint): Ditto.
1004         (vec_rint): Ditto.
1005         (vec_sqrt): Ditto.
1006         (all predicates): Use the generic builtin function, and not the V4SF
1007         specific function so that the predicates will work with VSX's V2DF.
1008         (vec_all_*): Ditto.
1009         (vec_any_*): Ditto.
1010
1011         * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
1012         Document new VSX functions and types.
1013
1014         * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx
1015         switches.
1016
1017         * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws",
1018         "wa", and "j" constraints.  Modify "v" to talk about Altivec
1019         instead of just vector.
1020
1021 2009-07-30  Andrew MacLeod  <amacleod@redhat.com>
1022
1023         PR debug/26475
1024         * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set
1025         location for phi arguments.
1026         (rewrite_update_phi_arguments): Find locations for reaching defs.
1027         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis):
1028         Add location to add_phi_arg calls.
1029         * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations.
1030         * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge,
1031         split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations.
1032         * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call,
1033         create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations.
1034         * tree.h (struct phi_arg_d): Add location_t to PHI arguments.
1035         * tree-phinodes.c (make_phi_node): Initialize location.
1036         (resize_phi_node): Initialize location to UNKNOWN_LOCATION.
1037         (add_phi_arg): Add location parameter.
1038         (remove_phi_arg_num): Move location when moving phi argument.
1039         * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set 
1040         location.
1041         * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop,
1042         slpeel_update_phi_nodes_for_guard1,
1043         slpeel_update_phi_nodes_for_guard2,
1044         slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations,
1045         vect_loop_versioning): Set locations.
1046         * tree-parloops.c (create_phi_for_local_result,
1047         transform_to_exit_first_loop, create_parallel_loop): Add locations.
1048         * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present.
1049         * tree-vect-loop.c (get_initial_def_for_induction,
1050         vect_create_epilog_for_reduction, vect_finalize_reduction): Add
1051         locations.
1052         * tree-flow-inline.h (gimple_phi_arg_location): New.  Return locus.
1053         (gimple_phi_arg_location_from_edge): New.  Return locus from an edge.
1054         (gimple_phi_arg_set_location): New.  Set locus.
1055         (gimple_phi_arg_has_location): New.  Check for locus.
1056         (redirect_edge_var_map_location): New.  Return locus from var_map.
1057         * tree-vect-data-refs.c (vect_setup_realignment): Set location.
1058         * tree-ssa-phiopt.c (conditional_replacement): Set locus when
1059         combining PHI arguments.
1060         (cond_store_replacement): Set location.
1061         * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible.
1062         * grpahite.c (add_loop_exit_phis, add_guard_exit_phis,
1063         scop_add_exit_phis_edge): Add locations.
1064         * tree-cfgcleanup.c (remove_forwarder_block,
1065         remove_forwarder_block_with_phi): Add locations.
1066         * tree-ssa-pre.c (insert_into_preds_of_block): Add locations.
1067         * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add
1068         locations.
1069         * tree-ssa-dce.c (forward_edge_to_pdom): Add locations.
1070         * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge,
1071         flush_pending_stmts): Add source location.
1072         * lambda-code.c (perfect_nestify): Maintain location stack with argument
1073         stack to preserve locations.
1074         * tree-vect-stmts.c (vectorizable_load): Add location.
1075         * tree-inline.c (copy_phis_for_bb): Copy locus.
1076         (setup_one_parameter): Add call locus to inlined parameter stmts.
1077         (initialize_inlined_parameters): Pass in call location as parameter
1078         assignment locus.
1079         (tree_function_versioning): Pass location to setup_one_parameter.
1080         * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations.
1081         * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for
1082         copy and edge lists.
1083         (insert_partition_copy_on_edge, insert_value_copy_on_edge,
1084         insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a 
1085         locus parameter and override the stmt default if provided.
1086         (new_elim_graph, clear_elim_graph, delete_elim_graph,
1087         elim_graph_add_edge, elim_graph_remove_succ_edge,
1088         FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build,
1089         elim_forward, elim_unvisited_predecessor, elim_backward, elim_create,
1090         eliminate_phi):  Add locus info in elimination graph for each edge and
1091         value copy.
1092         (insert_backedge_copies): Copy locus if present.
1093         * tree-flow.h (struct _edge_var_map): Add locus field.
1094         * tree-switch_conversions.c (fix_phi_nodes): Add locations.
1095         * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block,
1096         add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add 
1097         locations.
1098         * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations.
1099         
1100 2009-07-30  Martin Jambor  <mjambor@suse.cz>
1101
1102         PR tree-optimization/40570
1103         * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single
1104         use inlining loops.
1105
1106 2009-07-30  Razya Ladelsky <razya@il.ibm.com>
1107
1108         * ssa-loop-manip.c: Include langhooks.h.
1109         (rewrite_phi_with_iv): New.
1110         (rewrite_all_phi_nodes_with_iv): New.
1111         (canonicalize_loop_ivs): Move here from tree-parloops.c.
1112         Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv.
1113         * tree-parloops.c (loop_parallel_p): Move out all conditions
1114         except dependency check.
1115         (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c.
1116         (gen_parallel_loop): Call canonicalize_loop_ivs without
1117         reduction_list argument.
1118         (build_new_reduction): New.
1119         (gather_scalar_reductions): New.
1120         (try_get_loop_niter): New.
1121         (try_create_reduction_list): New.
1122         (parallleize_loops): Change the parallel conditions check.
1123         * tree-flow.h (canonicalize_loop_ivs): Remove one argument.
1124         * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency.
1125
1126 2009-07-30  Dave Korn  <dave.korn.cygwin@gmail.com>
1127
1128         * opt-functions.awk (opt_args): Allow argument to be enclosed in
1129         curly braces.
1130         * doc/options.texi (Option properties):  Mention new quoting syntax.
1131
1132 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
1133
1134         * config/alpha/alpha.c (alpha_start_function):
1135         Handle VMS_DEBUG_MAIN_POINTER
1136         * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro.
1137         * doc/invoke.texi: Document -mdebug-main switch.
1138
1139 2009-07-29  Richard Henderson  <rth@redhat.com>
1140
1141         * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy.
1142         (cgraph_create_edge_including_clones): Likewise.
1143         * tree-inline.c (copy_bb): Operate on the correct edges
1144         when updating the callgraph.
1145
1146 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
1147
1148         * config/alpha/vms-cc.c: Deleted.
1149         * config/alpha/vms-ld.c: Deleted.
1150         * config/alpha/t-vms64: Moved to config/vms
1151         * config/alpha/vms-crt0-64.c: Moved to config/vms
1152         * config/alpha/vms-crt0.c: Moved to config/vms
1153         * config/alpha/vms-psxcrt0-64.c: Moved to config/vms
1154         * config/alpha/vms-psxcrt0.c: Moved to config/vms
1155         * config/alpha/xm-vms.h: Moved to config/vms
1156         * config/alpha/x-vms: Moved to config/vms
1157         * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file
1158         config/vms/t-vms.
1159         * config/vms/t-vms: Moved here from config/alpha. Alpha specific
1160         parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set.
1161         (version): Set.
1162         * config/vms/t-vms64: Moved here from config/alpha
1163         * config/vms/vms-crt0-64.c: Moved here from config/alpha.
1164         (argc,argv,envp): Enforce 32bit malloc'ing.
1165         * config/vms/vms-psxcrt0-64.c: Likewise.
1166         * config/vms/vms-crt0.c: Moved here from config/alpha.
1167         * config/vms/vms-psxcrt0.c: Likewise.
1168         * config/vms/vms-crtl-64.h: New file.
1169         * config/vms/vms-crtl.h: New file.
1170         * config/vms/vms.opt: New file.
1171         * config/vms/xm-vms64.h: New file.
1172         * config/vms/xm-vms.h: Moved here from config/alpha.
1173         (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR):
1174         Set.
1175         * config/vms/x-vms: Moved here from config/alpha.
1176         (version, VMS_EXTRA_PARTS): Moved to t-vms.
1177         (vms-ld.o, vms-cc.o): Removed.
1178         (LN, LN_S, USE_COLLECT2, POD2MAN): Set.
1179
1180 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
1181
1182         * dwarf2out.c (add_name_and_src_coords_attributes): Push on the
1183         correct stack (obvious VMS fix).
1184
1185 2009-07-29  Douglas B Rupp  <rupp@gnat.com>
1186
1187         * dwarf2out.c (output_file_names): Output VMS style file name, size,
1188         date, version info if VMS_DEBUGGING_INFO defined.
1189         * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name,
1190         size, date calculating code moved here.
1191
1192 2009-07-29  Paul Brook  <paul@codesourcery.com>
1193
1194         * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and
1195         do_push/do_pop.
1196
1197 2009-07-29  Uros Bizjak  <ubizjak@gmail.com>
1198
1199         PR target/40577
1200         * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src
1201         to DImode when generating insq_le insn.
1202
1203 2009-07-28  Douglas B Rupp  <rupp@gnat.com>
1204
1205         * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET):
1206         New macro set for VMS_DEBUGGGING_INFO.
1207         (AT_string_form): Use it.
1208
1209 2009-07-28  DJ Delorie  <dj@redhat.com>
1210
1211         * config/mep/mep.c (vtext_section): New.
1212         (vftext_section): New.
1213         (ftext_section): New.
1214         (mep_select_section): Add support for functions.
1215         (mep_unique_section): Likewise.
1216         (mep_asm_init_sections): Likewise.
1217         (mep_encode_section_info): Remove it from here.
1218
1219         * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define.
1220
1221 2009-07-28  Paolo Bonzini  <bonzinI@gnu.org>
1222
1223         * tree.h (TREE_DEPRECATED): Document it is used for types too.
1224         (TYPE_VECTOR_OPAQUE): Use default_def_flag
1225
1226 2009-07-28  Douglas B Rupp  <rupp@gnat.com>
1227
1228         * dwarf2out.c (output_file_names): Test new macro
1229         DWARF2_DIR_SHOULD_END_WITH_SEPARATOR.
1230         (add_comp_dir_attribute): Likewise.
1231
1232 2009-07-28  Kai Tietz  <kai.tietz@onevision.com>
1233
1234         * config/i386/mingw-w64.h (LINK_SPEC): Add
1235         separating space between commands.
1236
1237 2009-07-28  Jan Hubicka  <jh@suse.cz>
1238
1239         PR tree-optimization/40759
1240         * tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses
1241         for renaming.
1242
1243 2009-07-27  DJ Delorie  <dj@redhat.com>
1244
1245         * config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit
1246         types are dword-aligned.
1247         (mep_expand_va_start): Likewise.
1248
1249 2009-07-27  Olivier Hainque  <hainque@adacore.com>
1250             Douglas B Rupp  <rupp@gnat.com>
1251
1252         * convert.c (convert_to_pointer): Don't assume the target
1253         pointer type is POINTER_SIZE long. Fetch its precision instead.
1254
1255 2009-07-27  Douglas B Rupp  <rupp@gnat.com>
1256
1257         * system.h (fopen): Undefine if macro.
1258
1259 2009-07-27  Jakub Jelinek  <jakub@redhat.com>
1260
1261         * dwarf2out.c (output_cfi_p): Removed.
1262         (output_cfis): New function.
1263         (output_fde): New function, split from output_call_frame_info.
1264         (output_call_frame_info): Use it.
1265         (dwarf2out_switch_text_section): Use output_cfis.
1266
1267 2009-07-24  Kai Tietz  <kai.tietz@onevision.com>
1268
1269         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when
1270         TARGET_BI_ARCH is specified without enabling SJLJ.
1271         * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT,
1272         if TARGET_64BIT and TARGET_BI_ARCH aren't defined.
1273
1274 2009-07-26  Mikael Pettersson <mikpe@it.uu.se>
1275
1276         * arm.md (negdi2): Use DImode if forcing a value into a register.
1277
1278 2009-07-26  Ira Rosen  <irar@il.ibm.com>
1279
1280         PR tree-optimization/40801
1281         * tree-vect-stmts.c (vectorizable_call): Get previous copy
1282         of vector operand from the previous copy of vector statement.
1283         Pass the correct definition type value to
1284         vect_get_vec_def_for_stmt_copy().
1285
1286 2009-07-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1287
1288         * collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to
1289         const char ** conversion.
1290
1291 2009-07-25 David Daney <ddaney@caviumnetworks.com>
1292
1293         * system.h (gcc_assert): Invoke __builtin_unreachable() instead of
1294         fancy_abort() if !ENABLE_ASSERT_CHECKING.
1295         (gcc_unreachable): Invoke __builtin_unreachable() if
1296         !ENABLE_ASSERT_CHECKING.
1297
1298 2009-07-25  David Daney  <ddaney@caviumnetworks.com>
1299
1300         PR rtl-optimization/40445
1301         * emit-rtl.c (next_nonnote_insn_bb): New function.
1302         * rtl.h (next_nonnote_insn_bb): Declare new function.
1303         * cfgcleanup.c (try_optimize_cfg): Don't remove an empty block
1304         with no successors that is the successor of the ENTRY_BLOCK.
1305         Continue from the top after removing an empty fallthrough block.
1306         * cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead
1307         of next_nonnote_insn.
1308
1309 2009-07-25  David Daney  <ddaney@caviumnetworks.com>
1310
1311         * cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks.
1312         
1313 2009-07-25  Martin Jambor  <mjambor@suse.cz>
1314
1315         * c-common.c (c_common_attribute_table): New element for noclone.
1316         (handle_noclone_attribute): New function. Forward-declare.
1317         * tree-inline.c (tree_versionable_function_p): Check for noclone
1318         attribute.
1319         * doc/extend.texi (Labels as Values): Document need for noclone.
1320         (Function Attributes): Document noclone attribute.
1321
1322 2009-07-25  Jakub Jelinek  <jakub@redhat.com>
1323
1324         PR rtl-optimization/34999
1325         * dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi
1326         and dw_fde_switched_cold_to_hot fields.
1327         (output_cfi_p): New function.
1328         (output_call_frame_info): If fde->dw_fde_switched_sections,
1329         output 2 FDEs instead of one with corrupted header.
1330         (dwarf2out_do_cfi_startproc): New function.
1331         (dwarf2out_begin_prologue): Use it.  Initialize fde->dw_fde_switch_cfi
1332         and fde->dw_fde_switched_cold_to_hot.
1333         (dwarf2out_switch_text_section): Compute
1334         fde->dw_fde_switched_cold_to_hot.  Switch to new text section here.
1335         If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call
1336         dwarf2out_do_cfi_startproc plus emit again currently active CFI insns.
1337         Otherwise, compute fde->dw_fde_switch_cfi.
1338
1339 2009-07-24  Cary Coutant  <ccoutant@google.com>
1340
1341         * tree-cfg.c (assign_discriminator): Add explicit parentheses.
1342
1343 2009-07-24  Cary Coutant  <ccoutant@google.com>
1344
1345         * cfghooks.c (split_block): Copy discriminator to new block.
1346         * tree-cfg.c (assign_discriminator): Check location of last
1347         instruction in block as well as first.
1348
1349 2009-07-24  Uros Bizjak  <ubizjak@gmail.com>
1350
1351         * config/i386/linux.c: Use fputs or putc instead of fprintf
1352         where appropriate.
1353         * config/i386/gas.h: Ditto.
1354         * config/i386/x86-64.h: Ditto.
1355         * config/i386/att.h: Ditto.
1356
1357 2009-07-24  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1358
1359         * expmed.c (emit_store_flag): Use a recursive call to optimize the
1360         xor case.
1361
1362 2009-07-24  Martin Jambor  <mjambor@suse.cz>
1363
1364         * ipa-prop.h (struct ipa_node_params): New flag node_enqued.
1365         (ipa_push_func_to_list_1): Declare.
1366         (ipa_push_func_to_list): New function.
1367
1368         * ipa-prop.c (ipa_push_func_to_list_1): New function.
1369         (ipa_init_func_list): Call ipa_push_func_to_list_1.
1370         (ipa_push_func_to_list): Removed.
1371         (ipa_pop_func_from_list): Clear node_enqueued flag.
1372
1373 2009-07-24  Andreas Krebbel  <krebbel1@de.ibm.com>
1374         
1375         * config/s390/s390.c (override_options): Default
1376         max-unrolled-insns to 100 for z10 tuning.
1377
1378 2009-07-24  Tobias Grosser  <grosser@fim.uni-passau.de>
1379
1380         * Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o
1381         tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o,
1382         tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o,
1383         tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o,
1384         tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o
1385         tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o,
1386         lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H.
1387
1388 2009-07-24  Kai Tietz  <kai.tietz@onevision.com>
1389
1390         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and
1391         use default set in mingw32.h header.
1392         * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and
1393         64-bit /mingw/include path.
1394         (STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib
1395         path.
1396
1397 2009-07-23  Neil Vachharajani  <nvachhar@google.com>
1398
1399         PR rtl-optimization/40209
1400         * loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem.
1401
1402 2009-07-23  Uros Bizjak  <ubizjak@gmail.com>
1403
1404         * config/i386/i386.c: Use ASM_LONG instead of .long.  Concatenate
1405         ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings
1406         with the rest of string where appropriate.  Use fputs or putc
1407         instead of fprintf where appropriate.
1408
1409 2009-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
1410             Pat Haugen  <pthaugen@us.ibm.com>
1411             Revital Eres <ERES@il.ibm.com>
1412
1413         * config/rs6000/vector.md: New file.  Move most of the vector
1414         expander support here from altivec.md to allow for the VSX vector
1415         unit in the future.  Add support for secondary_reload patterns.
1416         Rewrite the patterns for vector comparison, and vector comparison
1417         predicate instructions so that the RTL expresses the desired
1418         behavior, instead of using unspec.
1419
1420         * config/rs6000/constraints.md ("f" constraint): Use
1421         rs6000_constraints to hold the precalculated register class.
1422         ("d" constraint): Ditto.
1423         ("wd" constraint): New constraint for VSX.
1424         ("wf" constraint): Ditto.
1425         ("ws" constraint): Ditto.
1426         ("wa" constraint): Ditto.
1427         ("wZ" constraint): Ditto.
1428         ("j" constraint): Ditto.
1429
1430         * config/rs6000/predicates.md (vsx_register_operand): New
1431         predicate for VSX.
1432         (vfloat_operand): New predicate for vector.md.
1433         (vint_operand): Ditto.
1434         (vlogical_operand): Ditto.
1435         (easy_fp_constant): If VSX, 0.0 is an easy constant.
1436         (easy_vector_constant): Add VSX support.
1437         (altivec_indexed_or_indirect_operand): New predicate for
1438         recognizing Altivec style memory references with AND -16.
1439
1440         * config/rs6000/rs6000.c (rs6000_vector_reload): New static global
1441         for vector secondary reload support.
1442         (rs6000_vector_reg_class): Delete, replacing it with
1443         rs6000_constraints.
1444         (rs6000_vsx_reg_class): Ditto.
1445         (rs6000_constraints): New array to hold the register classes of
1446         each of the register constraints that can vary at runtime.
1447         (builtin_mode_to_type): New static array for builtin function type
1448         creation.
1449         (builtin_hash_table): New static hash table for builtin function
1450         type creation.
1451         (TARGET_SECONDARY_RELOAD): Define target hook.
1452         (TARGET_IRA_COVER_CLASSES): Ditto.
1453         (rs6000_hard_regno_nregs_internal): If -mvsx, floating point
1454         registers are 128 bits if VSX memory reference instructions are used.
1455         (rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory
1456         unit is being used.
1457         (rs6000_debug_vector_unit): Move into rs6000_debug_reg_global.
1458         (rs6000_debug_reg_global): Move -mdebug=reg statements here.
1459         Print several of the scheduling related parameters.
1460         (rs6000_init_hard_regno_mode_ok): Switch to putting constraints in
1461         rs6000_constraints instead of rs6000_vector_reg_class.  Move
1462         -mdebug=reg code to rs6000_debug_reg_global.  Add support for
1463         -mvsx-align-128 debug switch.  Drop testing float_p if VSX or
1464         Altivec.  Add VSX support.  Setup for secondary reload support on
1465         Altivec/VSX registers.
1466         (rs6000_override_options): Make power7 set the scheduling groups
1467         like the power5.  Add support for new debug switches to override
1468         the scheduling defaults.  Temporarily disable -mcpu=power7 from
1469         setting -mvsx.  Add support for debug switches -malways-hint,
1470         -msched-groups, and -malign-branch-targets.
1471         (rs6000_buitlin_conversion): Add support for returning unsigned
1472         vector conversion functions to fix regressions due to stricter
1473         type checking.
1474         (rs6000_builtin_mul_widen_even): Ditto.
1475         (rs6000_builtin_mul_widen_odd): Ditto.
1476         (rs6000_builtin_vec_perm): Ditto.
1477         (rs6000_vec_const_move): On VSX, use xxlxor to clear register.
1478         (rs6000_expand_vector_init): Initial VSX support for using xxlxor
1479         to zero a register.
1480         (rs6000_emit_move): Fixup invalid const symbol_ref+reg that is
1481         generated upstream.
1482         (bdesc_3arg): Add builtins for unsigned types.  Add builtins for
1483         VSX types for bit operations.  Changes to accomidate vector.md.
1484         (bdesc_2arg): Ditto.
1485         (bdesc_1arg): Ditto.
1486         (struct builtin_description_predicates): Rewrite predicate
1487         handling so that RTL describes the operation, instead of passing
1488         the instruction to be used as a string argument.
1489         (bdesc_altivec_preds): Ditto.
1490         (altivec_expand_predicate_builtin): Ditto.
1491         (altivec_expand_builtin): Ditto.
1492         (rs6000_expand_ternop_builtin): Use a switch instead of an if
1493         statement for vsldoi support.
1494         (altivec_expand_ld_builtin): Change to use new names from vector.md.
1495         (altivec_expand_st_builtin): Ditto.
1496         (paired_expand_builtin): Whitespace changes.
1497         (rs6000_init_builtins): Add V2DF/V2DI types.  Initialize the
1498         builtin_mode_to_type table for secondary reload.  Call
1499         builtin_function_type to build random builtin functions.
1500         (altivec_init_builtins): Change to use builtin_function_type to
1501         create builtin function types dynamically as we need them.
1502         (builtin_hash_function): New support for hashing the tree types
1503         for builtin function as we need it, rather than trying to build
1504         all of the trees that we need.  Add initial preliminary VSX support.
1505         (builtin_function_type): Ditto.
1506         (builtin_function_eq): Ditto.
1507         (builtin_hash_struct): Ditto.
1508         (rs6000_init_builtins): Ditto.
1509         (rs6000_common_init_builtins): Ditto.
1510         (altivec_init_builtins): Ditto.
1511         (rs6000_common_init_builtins): Ditto.
1512         (enum reload_reg_type): New enum for simplifing reg classes.
1513         (rs6000_reload_register_type): Simplify register classes into GPR,
1514         Vector, and other registers.  Altivec and VSX addresses in reload.
1515         (rs6000_secondary_reload_inner): Ditto.
1516         (rs6000_ira_cover_classes): New target hook, that returns the
1517         appropriate cover classes, based on -mvsx being used or not.
1518         (rs6000_secondary_reload_class): Add VSX support.
1519         (get_vec_cmp_insn): Delete, rewrite vector conditionals.
1520         (get_vsel_insn): Ditto.
1521         (rs6000_emit_vector_compare): Rewrite vector conditional support
1522         so that where we can, we use RTL operators, instead of blindly use
1523         UNSPEC.
1524         (rs6000_emit_vector_select): Ditto.
1525         (rs6000_emit_vector_cond_expr): Ditto.
1526         (rs6000_emit_minmax): Directly generate min/max under altivec, vsx.
1527         (create_TOC_reference): Add -mdebug=addr support.
1528         (emit_frame_save): VSX loads/stores need register indexed addressing.
1529
1530         * config/rs6000/rs6000.md: Include vector.md.
1531
1532         * config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md.
1533
1534         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1535         support for V2DI, V2DF in logical, permute, select operations.
1536
1537         * config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug
1538         switch for vsx/power7.
1539         (-mvsx-scalar-memory): Ditto.
1540         (-mvsx-align-128): Ditto.
1541         (-mallow-movmisalign): Ditto.
1542         (-mallow-df-permute): Ditto.
1543         (-msched-groups): Ditto.
1544         (-malways-hint): Ditto.
1545         (-malign-branch-targets): Ditto.
1546         
1547         * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target
1548         hook instead.
1549         (IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx.
1550         (IRA_COVER_CLASSES_VSX): Cover classes if -mvsx.
1551         (rs6000_vector_reg_class): Delete.
1552         (rs6000_vsx_reg_class): Ditto.
1553         (enum rs6000_reg_class_enum): New enum for the constraints that
1554         vary based on target switches.
1555         (rs6000_constraints): New array to hold the register class for all
1556         of the register constraints that vary based on the switches used.
1557         (ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions.
1558         (enum rs6000_builtins): Add unsigned varients for the builtin
1559         declarations returned by target hooks for expanding multiplies,
1560         select, and permute operations.  Add VSX builtins.
1561         (enum rs6000_builtin_type_index): Add entries for VSX.
1562         (V2DI_type_node): Ditto.
1563         (V2DF_type_node): Ditto.
1564         (unsigned_V2DI_type_node): Ditto.
1565         (bool_long_type_node): Ditto.
1566         (intDI_type_internal_node): Ditto.
1567         (uintDI_type_internal_node): Ditto.
1568         (double_type_internal_node): Ditto.
1569
1570         * config/rs6000/altivec.md (whole file): Move all expanders to
1571         vector.md from altivec.md.  Rename insn matching functions to be
1572         altivec_foo.
1573         (UNSPEC_VCMP*): Delete, rewrite vector comparisons.
1574         (altivec_vcmp*): Ditto.
1575         (UNSPEC_VPERM_UNS): New, add for unsigned types using vperm.
1576         (VM): New iterator for moves that includes the VSX types.
1577         (altivec_vperm_<mode>): Add VSX types.  Add unsigned types.
1578         (altivec_vperm_<mode>_uns): New, for unsigned types.
1579         (altivec_vsel_*): Rewrite vector comparisons and predicate builtins.
1580         (altivec_eq<mode>): Ditto.
1581         (altivec_gt<mode>): Ditto.
1582         (altivec_gtu<mode>): Ditto.
1583         (altivec_eqv4sf): Ditto.
1584         (altivec_gev4sf): Ditto.
1585         (altivec_gtv4sf): Ditto.
1586         (altivec_vcmpbfp_p): Ditto.
1587
1588 2009-07-23  Richard Earnshaw  <rearnsha@arm.com>
1589
1590         * arm.md (split for ior/xor with shift and zero-extend): Cast op3 to 
1591         unsigned HWI.
1592
1593 2009-07-23  Uros Bizjak  <ubizjak@gmail.com>
1594
1595         PR target/40832
1596         * config/i386/i386.c (output_387_ffreep): Rewrite to use
1597         ASM_SHORT instead of .word.
1598         * config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT
1599         instead of .word in asm template.
1600
1601 2009-07-22  Vladimir Makarov  <vmakarov@redhat.com>
1602
1603         PR target/37488
1604         * ira-lives.c (bb_has_abnormal_call_pred): New function.
1605         (process_bb_node_lives): Use it.
1606
1607         * ira.c (setup_cover_and_important_classes): Don't setup
1608         ira_important_class_nums.  Add cover classes to the end of
1609         important classes.
1610         (cover_class_order, comp_reg_classes_func, reorder_important_classes):
1611         New.
1612         (find_reg_class_closure): Use reorder_important_classes.
1613
1614         * config/i386/i386.h (IRA_COVER_CLASSES): Remove.
1615
1616         * config/i386/i386.c (i386_ira_cover_classes): New function.
1617         (TARGET_IRA_COVER_CLASSES): Redefine.
1618
1619         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about
1620         importance of order of cover classes in the array.
1621         
1622 2009-07-22  Diego Novillo  <dnovillo@google.com>
1623
1624         * tree-pass.h (TDF_EH): Define.
1625         * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS
1626         contains TDF_EH, print the EH region number holding GS.
1627         * tree-dump.c (dump_options): Add "eh".
1628         * doc/invoke.texi: Document it.
1629
1630 2009-07-22  Doug Kwan  <dougkwan@google.com>
1631
1632         * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers.
1633
1634 2009-07-22  Michael Matz  <matz@suse.de>
1635
1636         PR tree-optimization/35229
1637         PR tree-optimization/39300
1638
1639         * tree-ssa-pre.c (includes): Include tree-scalar-evolution.h.
1640         (inhibit_phi_insertion): New function.
1641         (insert_into_preds_of_block): Call it for REFERENCEs.
1642         (init_pre): Initialize and finalize scalar evolutions.
1643         * Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h .
1644
1645 2009-07-22  Uros Bizjak  <ubizjak@gmail.com>
1646
1647         * config/i386/predicates.md (zero_extended_scalar_load_operand):
1648         Use CONST_VECTOR_NUNITS to determine number of elements.
1649
1650 2009-07-22  Andreas Krebbel  <krebbel1@de.ibm.com>
1651
1652         * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints.
1653         (U, W): Constraints are now deprecated and will be removed if we
1654         run out of letters.     
1655         * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout
1656         the file.
1657         ("prefetch"): Add the stcmh instruction for prefetching.
1658         * config/s390/s390.c (s390_symref_operand_p): Function moved. No
1659         changes.
1660         (s390_short_displacement): Return always true if compiling for
1661         machines not providing the long displacement facility.
1662         (s390_mem_constraint): Support the new constraint letter Z.
1663         (s390_check_qrst_address): New function.
1664
1665 2009-07-21  DJ Delorie  <dj@redhat.com>
1666
1667         * config/mep/mep.c (mep_legitimize_arg): Leave control registers
1668         alone too.
1669
1670 2009-07-21  Jason Merrill  <jason@redhat.com>
1671
1672         * c-common.c (max_tinst_depth): Increase default to 1024.
1673
1674 2009-07-21  Uros Bizjak  <ubizjak@gmail.com>
1675
1676         * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander.
1677         (vec_unpacku_float_lo_v4si): Ditto.
1678
1679 2009-07-21  Uros Bizjak  <ubizjak@gmail.com>
1680
1681         PR target/40811
1682         * config/i386/sse.md (sse2_cvtudq2ps): New expander.
1683         (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS.
1684         (builtin_description): Add __builtin_ia32_cvtudq2ps.
1685         (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS.
1686
1687 2009-07-21  Jakub Jelinek  <jakub@redhat.com>
1688
1689         PR tree-optimization/40813
1690         * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before
1691         it.
1692
1693 2009-07-21  Kaz Kojima  <kkojima@gcc.gnu.org>
1694
1695         * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result
1696         with a NOP_EXPR if needed.
1697
1698 2009-07-21  Paul Brook <paul@codesourcery.com>
1699
1700         * tree-vectorizer.c (increase_alignment): Handle nested arrays.
1701         Terminate debug dump with newline.
1702
1703 2009-07-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1704
1705         * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb.
1706         Cast "1" to unsigned HOST_WIDE_INT.
1707         (compute_zdepdi_operands): Limit maximum length to 64 bits.  Limit
1708         deposit length to the maximum length - lsb.  Extend length if
1709         HOST_BITS_PER_WIDE_INT is 32.
1710
1711 2009-07-20  Olatunji Ruwase <tjruwase@google.com>
1712
1713         * cgraph.h (constant_pool_htab): New function.
1714         (constant_descriptor_tree): Move from varasm.c.
1715         * varasm.c (constant_pool_htab): New function.
1716         (constant_descriptor_tree): Move to cgraph.h.
1717
1718 2009-07-20  Olatunji Ruwase  <tjruwase@google.com>
1719
1720         * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize().
1721
1722 2009-07-20  Shujing Zhao  <pearly.zhao@oracle.com>
1723
1724         * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove
1725         $(VARRAY_H).
1726
1727 2009-07-20  Xinliang David Li  <davidxl@google.com>
1728
1729         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check.
1730
1731 2009-07-20  Adam Nemet  <anemet@caviumnetworks.com>
1732
1733         * config/mips/mips.md (move_type): Add arith.
1734         (type): Handle arith.
1735         (zero_extendsidi2): Rename this into ...
1736         (*zero_extendsidi2): ... this.  Don't match if ISA_HAS_EXT_INS.
1737         (zero_extendsidi2): New expander.
1738         (*zero_extendsidi2_dext): New pattern.
1739
1740 2009-07-20  Nick Clifton  <nickc@redhat.com>
1741
1742         * config.gcc (mips64-*-*): Add definition of tm_defines in order
1743         to set MIPS_ABI_DEFAULT.
1744         * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition.
1745
1746 2009-07-20  Jakub Jelinek  <jakub@redhat.com>
1747
1748         * tree-object-size.c (addr_object_size): Handle unions with
1749         array in it as last field of structs in __bos (, 1) as __bos (, 0).
1750
1751         PR tree-optimization/40792
1752         * tree.c (build_function_type_skip_args): Remove bogus assert.
1753
1754 2009-07-20  Jan Hubicka  <jh@suse.cz>
1755             Martin Jambor  <mjambor@suse.cz>
1756
1757         * cgraph.h (combined_args_to_skip): New field.
1758         * cgraph.c (cgraph_create_virtual_clone): Properly handle
1759         combined_args_to_skip and args_to_skip.
1760         * tree-inline.c (update_clone_info): New function.
1761         (tree_function_versioning): Call update_clone_info.
1762         * cgraphunit.c: (cgraph_materialize_clone): Dump materialized
1763         functions.
1764         (cgraph_materialize_all_clones): More extensive dumping, working
1765         with combined_args_to_skip rather than args_to_skip.
1766
1767 2009-07-20  Ira Rosen  <irar@il.ibm.com>
1768
1769         * tree-vectorizer.h (vectorizable_condition): Add parameters.
1770         * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR.
1771         (get_initial_def_for_reduction): Likewise.
1772         (vectorizable_reduction): Skip the check of first operand in case
1773         of COND_EXPR. Add check that it is outer loop vectorization if
1774         nested cycle was detected. Call vectorizable_condition() for 
1775         COND_EXPR. If reduction epilogue cannot be created do not fail for
1776         nested cycles (if it is not double reduction). Assert that there
1777         is only one type in the loop in case of COND_EXPR. Call
1778         vectorizable_condition() to vectorize COND_EXPR.
1779         * tree-vect-stmts.c (vectorizable_condition): Update comment.
1780         Add parameters. Allow nested cycles if called from 
1781         vectorizable_reduction(). Use reduction vector variable if provided.
1782         (vect_analyze_stmt): Call vectorizable_reduction() before
1783         vectorizable_condition().
1784         (vect_transform_stmt): Update call to vectorizable_condition().
1785
1786 2009-07-20  Christian Bruel  <christian.bruel@st.com>
1787         
1788         * config/sh/sh.opt (-mfmovd): Resurrect and document.
1789         * doc/invoke.texi (-mfmovd): Likewise.
1790         * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting.
1791         
1792 2009-07-20  Jan Hubicka  <jh@suse.cz>
1793
1794         * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs
1795         when handling SSA name.
1796
1797 2009-07-19  Jan Hubicka  <jh@suse.cz>
1798
1799         PR tree-optimization/40676
1800         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all
1801         virtual PHIs in empty BBs.
1802
1803 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
1804
1805         * combine.c (make_compound_operation) <SUBREG>: If force_to_mode
1806         re-expanded the compound use gen_lowpart instead to convert to the
1807         desired mode.
1808
1809 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
1810
1811         * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and
1812         OUTER_CONST arguments.
1813         <LSHIFTRT>: Use them to allow widening if the bits shifted in from
1814         the new wider mode will be masked off.
1815         (simplify_shift_const_1): Adjust calls to try_widen_shift_mode.
1816
1817 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
1818
1819         * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the
1820         high-order bits are zero.
1821
1822 2009-07-18  Adam Nemet  <anemet@caviumnetworks.com>
1823
1824         * combine.c (simplify_shift_const_1): Split code to determine
1825         shift_mode into ...
1826         (try_widen_shift_mode): ... here.  Allow widening for ASHIFTRT if the
1827         new bits shifted in are identical to the old sign bit.
1828
1829 2009-07-18  Richard Guenther  <rguenther@suse.de>
1830
1831         PR c/40787
1832         * gimplify.c (gimplify_call_expr): Reject code using results from
1833         functions returning void.
1834
1835 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
1836
1837         * doc/md.texi: Document the new PowerPC "es" constraint.
1838         Document that "m" can include automodified addresses on this target,
1839         and explain how %U must be used.  Extend the "Q" and "Z" documentation
1840         to suggest "es" as well as "m".
1841         * config/rs6000/constraints.md (es): New memory constraint.
1842         (Q, Z): Update strings to match new documentation.
1843
1844 2009-07-18  Richard Sandiford  <r.sandiford@uk.ibm.com>
1845
1846         * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any
1847         offset from virtual_stack_vars_rtx and arg_pointer_rtx.
1848         * config/rs6000/predicates.md (volatile_mem_operand): Use
1849         offsettable_nonstrict_memref_p.
1850         * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check.
1851         (*floatunssidf2_internal): Likewise.
1852         (*fix_truncdfsi2_internal): Likewise.
1853         (*fix_trunctfsi2_internal): Likewise.
1854
1855 2009-07-17  Anatoly Sokolov  <aesok@post.ru>
1856
1857         * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and
1858         atmega32u2 devices.
1859         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
1860
1861 2009-07-17  Richard Guenther  <rguenther@suse.de>
1862
1863         PR c/40401
1864         * tree-pass.h (pass_diagnose_omp_blocks): Declare.
1865         (pass_warn_unused_result): Likewise.
1866         (TODO_set_props): Remove.
1867         * omp-low.c (diagnose_omp_structured_block_errors): Change to
1868         run as a pass.
1869         (pass_diagnose_omp_blocks): Define.
1870         * c-decl.c (pop_file_scope): Do not finalize the CU here.
1871         (c_gimple_diagnostics_recursively): Remove.
1872         (finish_function): Do not call it.
1873         (c_write_global_declarations): Continue after errors.
1874         Finalize the CU here.
1875         * c-gimplify.c (c_genericize): Do not gimplify here.
1876         * c-common.c (c_warn_unused_result): Move ...
1877         * tree-cfg.c (do_warn_unused_result): ... here.
1878         (run_warn_unused_result): New function.
1879         (gate_warn_unused_result): New function.
1880         (pass_warn_unused_result): New pass.
1881         * c-common.h (c_warn_unused_result): Remove.
1882         * flags.h (flag_warn_unused_result): Declare.
1883         * c-opts.c (c_common_init_options): Enable flag_warn_unused_result.
1884         * opts.c (flag_warn_unused_result): Initialize to false.
1885         * toplev.c (compile_file): Add comment.
1886         * omp-low.c (create_omp_child_function): Do not register
1887         the function with the frontend.
1888         (diagnose_omp_structured_block_errors): Prepare to be
1889         called as optimization pass.
1890         (gate_diagnose_omp_blocks): New function.
1891         (pass_diagnose_omp_blocks): New pass.
1892         * cgraph.h (cgraph_optimize): Remove.
1893         (cgraph_analyze_function): Likewise.
1894         * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks.
1895         * cgraphunit.c (cgraph_lower_function): Lower nested functions
1896         before their parents here.
1897         (cgraph_finalize_function): Not here.
1898         (cgraph_analyze_function): Gimplify functions here.
1899         (cgraph_finalize_compilation_unit): Continue after errors.
1900         Optimize the callgraph from here.
1901         (cgraph_optimize): Make static.
1902         * langhooks.c (write_global_declarations): Finalize the CU.
1903         * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors.
1904         (gimplify_function_tree): Assert we gimplify only once.
1905         Set PROP_gimple_any property.
1906         * tree-nested.c (gimplify_all_functions): New function.
1907         (lower_nested_functions): Gimplify all nested functions.
1908         * gimple.h (diagnose_omp_structured_block_errors): Remove.
1909         * passes.c (init_optimization_passes): Add pass_warn_unused_result
1910         and pass_diagnose_omp_blocks after gimplification.  Do not
1911         set TODO_set_props on all_lowering_passes.
1912         (execute_one_pass): Do not handle TODO_set_props.
1913         * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency.
1914         (gimplify.o): Add tree-pass.h dependency.
1915         * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST.
1916         (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR.
1917         (unsave_r): Likewise.
1918         * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the
1919         temporary variable.
1920
1921 2009-07-17  Sandra Loosemore  <sandra@codesourcery.com>
1922
1923         * doc/service.texi (Service): Restore previously removed link,
1924         which isn't broken after all.
1925
1926 2009-07-17  Richard Guenther  <rguenther@suse.de>
1927
1928         PR tree-optimization/40321
1929         * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by
1930         PHI nodes to the maximal set.
1931         (make_values_for_phi): Add PHI arguments to the maximal set.
1932         (execute_pre): Dump PHI_GEN and the maximal set.
1933
1934 2009-07-17  Jakub Jelinek  <jakub@redhat.com>
1935
1936         PR c++/40780
1937         * gimplify.c (gimplify_conversion): Don't change non-conversions into
1938         VIEW_CONVERT_EXPR.
1939
1940 2009-07-16  Sandra Loosemore  <sandra@codesourcery.com>
1941
1942         * doc/extend.texi (Nested Functions): Replace broken link with
1943         textual reference.
1944         * doc/service.texi (Service): Remove broken link.
1945
1946 2009-07-16  H.J. Lu  <hongjiu.lu@intel.com>
1947
1948         PR bootstrap/40781
1949         * builtins.c (expand_builtin_memcmp): Use loc instead of
1950         EXPR_LOCATION (exp).
1951         (expand_builtin_strncmp): Likewise.
1952
1953 2009-07-17  Aldy Hernandez  <aldyh@redhat.com>
1954             Manuel López-Ibáñez  <manu@gcc.gnu.org>
1955
1956         PR 40435 
1957         * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h,
1958         builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c,
1959         tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c,
1960         c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c,
1961         calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
1962         tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c,
1963         tree-inline.c, c-common.c, c-common.h, gimple.c,
1964         tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c,
1965         convert.c: Add location argument to fold_{unary,binary,ternary},
1966         fold_build[123], build_call_expr, build_size_arg,
1967         build_fold_addr_expr, build_call_array, non_lvalue, size_diffop,
1968         fold_build1_initializer, fold_build2_initializer,
1969         fold_build3_initializer, fold_build_call_array,
1970         fold_build_call_array_initializer, fold_single_bit_test,
1971         omit_one_operand, omit_two_operands, invert_truthvalue,
1972         fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref,
1973         combine_comparisons, fold_builtin_*, fold_call_expr,
1974         build_range_check, maybe_fold_offset_to_address, round_up,
1975         round_down.
1976
1977 2009-07-16  Jason Merrill  <jason@redhat.com>
1978
1979         PR libstdc++/37907
1980         * c-common.c (c_common_reswords): Add __is_standard_layout
1981         and __is_trivial.
1982         * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL.
1983         * doc/implement-cxx.texi: New.
1984         * doc/gcc.texi: Include it.
1985
1986 2009-07-16  DJ Delorie  <dj@redhat.com>
1987
1988         * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing
1989         compares that may be indirectly affected by previous instructions.
1990
1991 2009-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1992
1993         * builtins.c (do_mpc_arg2): New.
1994         (fold_builtin_2): Fold builtin cpow.
1995         * real.h (HAVE_mpc_pow): New.
1996
1997 2009-07-16  Bingfeng Mei  <bmei@broadcom.com>
1998
1999         * modulo-sched.c (sms_schedule): stage_count <= 1 as correct
2000         comparison to skip unprofitable schedule
2001
2002 2009-07-16  Simon Baldwin  <simonb@google.com>
2003
2004         * gcc.c (option_map): New flag -no-canonical-prefixes.
2005         * (display_help): Print help text for new flag.
2006         * (process_command): Move options translation and language specifics
2007         and handle new flag early.  Use it to set a function pointer to a
2008         prefix builder.  Replace make_relative_prefix calls with calls to
2009         the function pointed to.  Ignore new flag in regular options handling.
2010         * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes.
2011
2012 2009-07-15  DJ Delorie  <dj@redhat.com>
2013
2014         * config/mep/mep.md (sibcall_internal): Change register to avoid
2015         argument registers.
2016         (sibcall_value_internal): Likewise.
2017
2018 2009-07-15  Eric Botcazou  <ebotcazou@adacore.com>
2019
2020         PR rtl-optimization/40710
2021         * resource.c (mark_target_live_regs): Reset DF problem to LR.
2022
2023 2009-07-15  Adam Nemet  <anemet@caviumnetworks.com>
2024
2025         * config/mips/mips.md (*extenddi_truncate<mode>,
2026         *extendsi_truncate<mode>): Change type attribute to move_type
2027         with shift_shift.  Split out code handling exts from here ...
2028         (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new
2029         pattern.
2030         (*extendhi_truncateqi): Change type attribute to move_type with
2031         shift_shift.  Split out code handling exts from here ...
2032         (*extendhi_truncateqi_exts): ... to this new pattern.
2033
2034 2009-07-15  Uros Bizjak  <ubizjak@gmail.com>
2035
2036         * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction
2037         instead of "and" with inverted sign bit mask value.  Use
2038         "nonimmediate_operand" for operand 1 and operand 2 predicate.
2039         Allocate registers only for operand 4 and operand 5.
2040
2041 2009-07-15  Jakub Jelinek  <jakub@redhat.com>
2042
2043         PR middle-end/40747
2044         * fold-const.c (fold_cond_expr_with_comparison): When folding
2045         < and <= to MIN, make sure the MIN uses the same type as the
2046         comparison's operands.
2047
2048 2009-07-15  Richard Earnshaw  <rearnsha@arm.com>
2049
2050         * arm.md (ior_xor): New code iterator.
2051         (split for ior/xor with shift and zero-extend): New split pattern.
2052         * arm/predicates.md (subreg_lowpart_operator): New special predicate.
2053
2054 2009-07-15  Richard Guenther  <rguenther@suse.de>
2055
2056         * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize
2057         offset member.
2058
2059 2009-07-15  Richard Guenther  <rguenther@suse.de>
2060
2061         PR middle-end/40753
2062         * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases.
2063
2064 2009-07-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
2065
2066         * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to
2067         handle 2.6.30 kernel.
2068
2069 2009-07-15  DJ Delorie  <dj@redhat.com>
2070
2071         * config/mep/mep.md (sibcall_internal): Change register to allow
2072         for 24-bit addresses.
2073         (sibcall_value_internal): Likewise.
2074
2075 2009-07-14  Ghassan Shobaki  <ghassan.shobaki@amd.com>
2076         
2077         * doc/invoke.texi: Added descriptions of the  scheduling heuristics
2078         that are enabled/disabled by the flags introduced by a previous patch.
2079         
2080 2009-07-14  DJ Delorie  <dj@redhat.com>
2081
2082         * config/mep/mep.md (sibcall_internal): Include non-toggling
2083         non-jmp case.
2084         (sibcall_value_internal): Likewise.
2085
2086 2009-07-14  Taras Glek  <tglek@mozilla.com>
2087             Rafael Espindola  <espindola@google.com>
2088
2089         * doc/sourcebuild.texi: Document install-plugin target.
2090         * configure.ac: Added install-plugin target to language makefiles.
2091         * configure: Regenerate.
2092         * Makefile.in: (install-plugin): Install more headers,
2093         depend on lang.install-plugin.
2094
2095 2009-07-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2096
2097         * tree-vrp.c (vrp_evaluate_conditional): Mark strings for
2098         translation.
2099         
2100 2009-07-14  DJ Delorie  <dj@redhat.com>
2101
2102         * config/mep/mep.c (mep_vliw_jmp_match): New function.
2103         * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it.
2104         * config/mep/mep.md (sibcall_internal): Change test from
2105         mep_vliw_mode_match to mep_vliw_jmp_match.
2106         (sibcall_value_internal): Likewise.
2107
2108 2009-07-14  Uros Bizjak  <ubizjak@gmail.com>
2109
2110         * config/i386/sse.md (copysign<mode>3): New expander.
2111         * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype.
2112         * config/i386/i386.c (ix86_build_signbit_mask): Make public.
2113         Use ix86_build_const_vector.
2114         (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and
2115         IX86_BUILTIN_CPYSGNPD.
2116         (builtin_description): Add __builtin_ia32_copysignps and
2117         __builtin_ia32_copysignpd.
2118         (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN
2119         and BUILT_IN_COPYSIGNF.
2120
2121 2009-07-13  Jason Merrill  <jason@redhat.com>
2122
2123         * builtins.c (can_trust_pointer_alignment): New fn.
2124         (get_pointer_alignment): Factor it out from here.
2125         * tree.h: Declare it.
2126
2127 2009-07-14  David Edelsohn  <edelsohn@gnu.org>
2128
2129         * config/rs6000/predicates.md (offsettable_mem_operand): Test
2130         RTX_AUTOINC class.
2131
2132 2009-07-14  Dodji Seketeli  <dodji@redhat.com>
2133
2134         PR debug/40705
2135         PR c++/403057
2136         * dwarf2.out.c (gen_type_die_with_usage): Added comment.
2137
2138 2009-07-14  Richard Guenther  <rguenther@suse.de>
2139             Andrey Belevantsev <abel@ispras.ru>
2140
2141         PR middle-end/40745
2142         * cfgexpand.c (partition_stack_vars): Do not bother to update
2143         alias information when not optimizing.
2144
2145 2009-07-14  Richard Guenther  <rguenther@suse.de>
2146             Andrey Belevantsev <abel@ispras.ru>
2147
2148         * tree-ssa-alias.h (refs_may_alias_p_1): Declare.
2149         (pt_solution_set): Likewise.
2150         * tree-ssa-alias.c (refs_may_alias_p_1): Export.
2151         * tree-ssa-structalias.c (pt_solution_set): New function.
2152         * final.c (rest_of_clean_state): Free SSA data structures.
2153         * print-rtl.c (print_decl_name): Remove.
2154         (print_mem_expr): Implement in terms of print_generic_expr.
2155         * alias.c (ao_ref_from_mem): New function.
2156         (rtx_refs_may_alias_p): Likewise.
2157         (true_dependence): Query alias-export info.
2158         (canon_true_dependence): Likewise.
2159         (write_dependence_p): Likewise.
2160         * tree-dfa.c (get_ref_base_and_extent): For void types leave
2161         size unknown.
2162         * emit-rtl.c (component_ref_for_mem_expr): Remove.
2163         (mem_expr_equal_p): Use operand_equal_p.
2164         (set_mem_attributes_minus_bitpos): Do not use
2165         component_ref_for_mem_expr.
2166         * cfgexpand.c (add_partitioned_vars_to_ptset): New function.
2167         (update_alias_info_with_stack_vars): Likewise.
2168         (partition_stack_vars): Call update_alias_info_with_stack_vars.
2169         * tree-ssa.c (delete_tree_ssa): Do not release SSA names
2170         explicitly nor clear stmt operands.
2171         Free the decl-to-pointer map.
2172         * tree-optimize.c (execute_free_datastructures): Do not free
2173         SSA data structures here.
2174         * tree-flow.h (struct gimple_df): Add decls_to_pointers member.
2175         * Makefile.in (emit-rtl.o): Add pointer-set.h dependency.
2176         (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H)
2177         dependencies.
2178         (print-rtl.o): Add $(DIAGNOSTIC_H) dependency.
2179
2180 2009-07-13  DJ Delorie  <dj@redhat.com>
2181
2182         * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger
2183         unrolling at the right iteration count.
2184
2185         * config/mep/mep.c (mep_expand_prologue): Fix frame pointer
2186         calculations.
2187
2188 2009-07-13  Ghassan Shobaki  <ghassan.shobaki@amd.com>
2189         
2190         * haifa-sched.c (rank_for_schedule): Introduced flags to
2191         enable/disable individual scheduling heuristics.
2192         * common.opt: Introduced flags to enable/disable individual
2193         heuristics in the scheduler.    
2194         * doc/invoke.texi: Introduced flags to enable/disable individual
2195         heuristics in the scheduler.
2196         
2197 2009-07-13  Kai Tietz  <kai.tietz@onevision.com>
2198
2199         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file
2200         config/i386/mingw-tls.c.
2201         * config/i386/mingw-tls.c: Removed.
2202
2203 2009-07-13  Ira Rosen  <irar@il.ibm.com>
2204
2205         * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the 
2206         checks access only relevant statements.
2207         (vectorizable_reduction): Likewise.
2208
2209 2009-07-12  Kai Tietz  <kai.tietz@onevision.com>
2210
2211         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_
2212         just for 32-bit case.
2213
2214 2009-07-12  Jan Hubicka  <jh@suse.cz>
2215
2216         PR tree-optimization/40585
2217         * except.c (expand_resx_expr): When there already is resume
2218         instruction, produce linked list.
2219         (build_post_landing_pads): Assert that resume is empty.
2220         (connect_post_landing_pads): Handle resume lists.
2221         (dump_eh_tree): Dump resume list.
2222
2223 2009-07-12  Ira Rosen  <irar@il.ibm.com>
2224
2225         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
2226         with additional argument.
2227         * tree-vectorizer.h (enum vect_def_type): Add
2228         vect_double_reduction_def.
2229         (vect_is_simple_reduction): Add argument.
2230         * tree-vect-loop.c (vect_determine_vectorization_factor): Fix
2231         indentation.
2232         (vect_analyze_scalar_cycles_1): Detect double reduction. Call
2233         vect_is_simple_reduction with additional argument.
2234         (vect_analyze_loop_operations): Handle exit phi nodes in case of
2235         double reduction.
2236         (reduction_code_for_scalar_code): Handle additional codes by
2237         returning ERROR_MARK for them. Fix comment and indentation.
2238         (vect_is_simple_reduction): Fix comment, add argument to specify
2239         double reduction. Detect double reduction.
2240         (get_initial_def_for_induction): Fix indentation.
2241         (get_initial_def_for_reduction): Fix comment and indentation.
2242         Handle double reduction. Create initial definitions that do not
2243         require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases.
2244         (vect_create_epilog_for_reduction): Fix comment, add argument to
2245         handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in
2246         epilogue result extraction. Create double reduction phi node and
2247         replace relevant uses.
2248         (vectorizable_reduction): Call vect_is_simple_reduction with
2249         additional argument. Fix indentation. Update epilogue code treatment
2250         according to the changes in reduction_code_for_scalar_code. Check
2251         for double reduction. Call vect_create_epilog_for_reduction with
2252         additional argument.
2253         * tree-vect-stmts.c (process_use): Handle double reduction, update
2254         documentation.
2255         (vect_mark_stmts_to_be_vectorized): Handle double reduction.
2256         (vect_get_vec_def_for_operand): Likewise.
2257
2258 2009-07-12  Danny Smith  <dansmister@gmail.com>
2259
2260         * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't
2261         dllexport if !TREE_PUBLIC.
2262         (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC.
2263
2264 2009-07-11  Anatoly Sokolov  <aesok@post.ru>
2265
2266         * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine.
2267         (avr_extra_arch_macro) Remove declatation.
2268         * config/avr/avr.c (avr_cpu_cpp_builtins): New function.
2269         (avr_extra_arch_macro) Declare as static.
2270         * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare.
2271
2272 2009-07-11  Jan Hubicka  <jh@suse.cz>
2273
2274         PR middle-end/48388
2275         * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap.
2276
2277 2009-07-11  Jakub Jelinek  <jakub@redhat.com>
2278
2279         PR debug/40713
2280         * dwarf2out.c (dw_fde_struct): Add in_std_section and
2281         cold_in_std_section bits.
2282         (dwarf2out_begin_prologue): Initialize them.
2283         (dwarf2out_finish): Don't emit FDE range into .debug_ranges
2284         if already covered by text_section or cold_text_section range.
2285
2286         PR rtl-optimization/40667
2287         * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
2288         * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
2289         * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
2290         * config/i386/i386.c (ix86_minimum_alignment): New function.
2291         * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
2292         * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
2293         * emit-rtl.c (gen_reg_rtx): Likewise.
2294         * function.c (assign_parms): Likewise.  If nominal_type needs
2295         bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
2296         rather than passed_type's alignment.
2297
2298         PR target/40668
2299         * function.c (assign_parm_setup_stack): Adjust
2300         MEM_OFFSET (data->stack_parm) if promoted_mode is different
2301         from nominal_mode on big endian.
2302
2303 2009-07-11  Paolo Bonzini  <bonzini@gnu.org>
2304
2305         * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension.
2306
2307 2009-07-10  DJ Delorie  <dj@redhat.com>
2308
2309         * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify.
2310
2311 2009-07-10  Mark Mitchell  <mark@codesourcery.com>
2312
2313         * config/arm/thumb2.md (thumb2_cbz): Correct computation of length
2314         attribute.
2315         (thumb2_cbnz): Likewise.
2316
2317 2009-07-10  David Daney  <ddaney@caviumnetworks.com>
2318
2319         PR target/39079
2320         * config.gcc (supported_defaults): Add synci.
2321         (with_synci): Add validation.
2322         (all_defaults): Add synci.
2323         * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of
2324         ISA_HAS_SYNCI.
2325         (synci): Same.
2326         * config/mips/mips.opt (msynci): New option.
2327         * config/mips/mips.c (mips_override_options): Warn on use of
2328         -msynci for targets that do now support it.
2329         * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
2330         msynci.
2331         * gcc/doc/invoke.texi (-msynci): Document the new option.
2332         * doc/install.texi (--with-synci): Document the new option.
2333
2334 2009-07-10  Richard Guenther  <rguenther@suse.de>
2335
2336         PR tree-optimization/40496
2337         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create
2338         the PHI result with a compatible type.
2339
2340 2009-07-10  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2341
2342         PR 25509
2343         PR 40614
2344         * c.opt (Wunused-result): New.
2345         * doc/invoke.texi: Document it.
2346         * c-common.c (c_warn_unused_result): Use it.
2347
2348 2009-07-09  DJ Delorie  <dj@redhat.com>
2349
2350         * targhooks.c (default_target_can_inline_p): Rename from
2351         default_target_option_can_inline_p.
2352         * targhooks.h (default_target_can_inline_p): Likewise.
2353         * target-def.h (TARGET_CAN_INLINE_P): Rename from
2354         TARGET_OPTION_CAN_INLINE_P.
2355         * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise.
2356         * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise.
2357         (mep_target_can_inline_p): Rename from
2358         mep_target_option_can_inline_p.
2359
2360         PR target/40626
2361         * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor
2362         registers used to pass vectors.
2363
2364         * config/mep/mep.c (mep_option_can_inline_p): Remove error call.
2365
2366 2009-07-09  Tom Tromey  <tromey@redhat.com>
2367
2368         * unwind-dw2-fde-darwin.c: Include dwarf2.h.
2369         * config/mmix/mmix.c: Include dwarf2.h.
2370         * config/rs6000/darwin-fallback.c: Include dwarf2.h.
2371         * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h.
2372         * config/sh/sh.c: Include dwarf2.h.
2373         * config/i386/i386.c: Include dwarf2.h.
2374         * Makefile.in (DWARF2_H): Remove 'elf'.
2375         * except.c: Include dwarf2.h.
2376         * unwind-dw2.c: Include dwarf2.h.
2377         * dwarf2out.c: Include dwarf2.h.
2378         * unwind-dw2-fde-glibc.c: Include dwarf2.h.
2379         * unwind-dw2-fde.c: Include dwarf2.h.
2380         * dwarf2asm.c: Include dwarf2.h.
2381
2382 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2383
2384         * haifa-sched.c (insn_finishes_cycle_p): New static function.
2385         (max_issue): Use it.
2386         * sched-int.h (struct sched_info: insn_finishes_block_p): New
2387         scheduler hook.
2388         * sched-rgn.c (rgn_insn_finishes_block_p): Implement it.
2389         (region_sched_info): Update.
2390         * sched-ebb.c (ebb_sched_info): Update.
2391         * modulo-sched.c (sms_sched_info): Update.
2392         * sel-sched-ir.c (sched_sel_haifa_sched_info): Update.
2393
2394 2009-07-09  Maxim Kuvyrkov  <maxim@codesourcery.com>
2395
2396         * varasm.c (build_constant_desc): Don't share RTL in pool entries.
2397
2398 2009-07-09  Basile Starynkevitch  <basile@starynkevitch.net>
2399
2400         * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen. 
2401
2402 2009-07-09  Jakub Jelinek  <jakub@redhat.com>
2403
2404         PR middle-end/40692
2405         * fold-const.c (fold_cond_expr_with_comparison): Don't replace
2406         arg1 with arg01 if arg1 is already INTEGER_CST.
2407
2408 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
2409
2410         * simplify-rtx.c (simplify_binary_operation_1) <AND>:
2411         Transform (and (truncate)) into (truncate (and)).
2412
2413 2009-07-08  Adam Nemet  <anemet@caviumnetworks.com>
2414
2415         * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before
2416         creating LHS paradoxical subregs.  Fix surrounding returns to
2417         use NULL_RTX rather than 0.
2418
2419 2009-07-08  DJ Delorie  <dj@redhat.com>
2420
2421         * config/mep/mep.c: (mep_option_can_inline_p): New.
2422         (TARGET_OPTION_CAN_INLINE_P): Define.
2423
2424 2009-07-08  Mark Wielaard  <mjw@redhat.com>
2425
2426         PR debug/40659
2427         * dwarf2out.c (add_data_member_location_attribute): When we have
2428         only a constant offset don't emit a new location description using
2429         DW_OP_plus_uconst, but just add the constant with add_AT_int, when
2430         dwarf_version > 2.
2431
2432 2009-07-08  Richard Henderson  <rth@redhat.com>
2433
2434         PR target/38900
2435         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
2436         (enum reg_class): Add CLOBBERED_REGS.
2437         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
2438         * config/i386/i386.c (ix86_conditional_register_usage): Moved
2439         from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
2440         (ix86_function_ok_for_sibcall): Tidy.  Disallow MS->SYSV sibcalls.
2441         (ix86_expand_call): Use sibcall_insn_operand when needed.  Don't
2442         force 64-bit sibcalls into R11.
2443         * config/i386/constraints.md (U): New constraint.
2444         * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
2445         (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
2446         (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
2447
2448 2009-07-08  Shujing Zhao  <pearly.zhao@oracle.com>
2449
2450         * basic-block.h (dump_regset, debug_regset): Remove duplicate
2451         prototypes.
2452         * c-objc-common.h (c_initialize_diagnostics): Ditto.
2453         * ebitmap.h (dump_ebitmap): Ditto.
2454         * optabs.h (optab_libfunc): Ditto.
2455         * tree.h (tree_expr_nonzero_warnv_p): Ditto.
2456         * tree-flow.h (vect_can_force_dr_alignment_p,
2457         get_vectype_for_scalar_type): Ditto.
2458         (vectorize_loops): Move prototype to ...
2459         * tree-vectorizer.h: ... here. Also, adjust comment.
2460         (vect_set_verbosity_level): Remove duplicate prototype.
2461         * tree-ssa-loop.c: Include tree-vectorizer.h.
2462         * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h.
2463
2464 2009-07-08  Nick Clifton  <nickc@redhat.com>
2465
2466         * config/i386/unix.h (ASM_COMMENT_START): Add a space after the
2467         forward slash.
2468
2469 2009-07-08  DJ Delorie  <dj@redhat.com>
2470
2471         * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3,
2472         cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1,
2473         cpmovtocc_P0S_P1): Mark volatile.  Note which registers are
2474         written to.
2475         * config/mep/intrinsics.md: Regenerated.
2476         * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control
2477         registers when asm() or calls are detected.
2478
2479 2009-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2480
2481         PR c++/31246
2482         * gimplify.c (gimplify_expr): Propagate no_warning flag when
2483         gimplifying.
2484         * gimple (gimple_build_call_from_tree): Likewise.
2485         * tree-cfg.c (remove_useless_stmts_warn_notreached): Check
2486         no_warning flag before warning.
2487
2488 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2489
2490         * tree.c (set_expr_locus): Remove.
2491         * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove.
2492         * c-typeck.c (c_finish_stmt_expr):  Replace EXPR_LOCUS by
2493         EXPR_LOCATION.
2494         * gimplify.c (internal_get_tmp_var): Likewise.
2495         (gimplify_call_expr): Likewise.
2496         (gimplify_one_sizepos): Likewise.
2497
2498 2009-07-07  Eric Botcazou  <ebotcazou@adacore.com>
2499
2500         PR debug/40666
2501         * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
2502         to variables for debugging purposes.
2503
2504 2009-06-23  Mark Loeser  <mark@halcy0n.com>
2505
2506         PR build/40010
2507         * Makefile.in (gcc.pod): Depend on gcc-vers.texi.
2508
2509 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2510
2511         * pretty-print.c (pp_base_format): Remove %J.
2512         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
2513         gcc_cxxdiag_char_table): Likewise.
2514         (init_dynamic_diag_info): Likewise.
2515
2516 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2517
2518         * pretty-print.c (pp_base_format): Remove %H.
2519         * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table,
2520         gcc_cxxdiag_char_table): Likewise.
2521         (init_dynamic_diag_info): Likewise.
2522         * config/mep/mep.c (mep_select_section): Likewise.
2523
2524 2009-07-07  Duncan Sands  <baldrick@free.fr>
2525
2526         * final.c (pass_clean_state): Give the pass a name.
2527         * passes.c (pass_rest_of_compilation): Likewise.
2528         * tree-optimize.c (pass_all_optimizations): Likewise.
2529
2530 2009-07-07  H.J. Lu  <hongjiu.lu@intel.com>
2531
2532         * config/ia64/ia64.c (ia64_handle_model_attribute): Remove
2533         an extra 'decl' for error_at.
2534
2535 2009-07-07  Jakub Jelinek  <jakub@redhat.com>
2536
2537         PR middle-end/40669
2538         * tree-tailcall.c (adjust_return_value_with_ops,
2539         create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
2540         if it has complex or vector type.
2541
2542 2009-07-07  Olivier Hainque  <hainque@adacore.com>
2543
2544         * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak
2545         pthread symbols.
2546
2547 2009-07-07  Basile Starynkevitch  <basile@starynkevitch.net>
2548
2549         * Makefile.in: added more lists of includes to PLUGIN_HEADERS.
2550
2551 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2552
2553         * cgraphunit.c: Replace %J by an explicit location.  Update all calls.
2554         * c-decl.c: Likewise.
2555         * function.c: Likewise.
2556         * varasm.c: Likewise.
2557         * tree-ssa.c: Likewise.
2558         * c-common.c: Likewise.
2559         * tree-cfg.c: Likewise.
2560         * config/spu/spu.c: Likewise.
2561         * config/ia64/ia64.c: Likewise.
2562         * config/v850/v850.c: Likewise.
2563
2564 2009-07-06  DJ Delorie  <dj@redhat.com>
2565
2566         * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE.
2567         * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make
2568         unspecified accesses to control registers.
2569         * config/mep/intrinsics.md: Regenerate.
2570         * config/mep/intrinsics.h: Regenerate.
2571         * config/mep/mep-intrin.h: Regenerate.
2572
2573 2009-07-07  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2574
2575         * c-lex.c: Replace %H by an explicit location. Update all calls.
2576         * c-common.c: Likewise.
2577         * c-decl.c: Likewise.
2578         * c-typeck.c: Likewise.
2579         * fold-const.c: Likewise.
2580         * gimplify.c: Likewise.
2581         * stmt.c: Likewise.
2582         * tree-cfg.c: Likewise.
2583         * tree-ssa-loop-niter.c: Likewise.
2584         * tree-vrp.c: Likewise.
2585         * value-prof.c: Likewise.
2586
2587 2009-07-06  Diego Novillo  <dnovillo@google.com>
2588
2589         * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR
2590         if it has one.  Handle cases where VAR does not have an
2591         annotation or cfun is NULL.
2592
2593 2009-07-06  Diego Novillo  <dnovillo@google.com>
2594
2595         * tree.c: Include debug.h.
2596         (initialize_tree_contains_struct): New.
2597         (init_ttree): Call it.
2598         (tree_node_structure_for_code): Factor out of ...
2599         (tree_node_structure): ... here.
2600         * treestruct.def (TS_PHI_NODE): Remove.
2601         (TS_GIMPLE_STATEMENT): Remove.
2602
2603 2009-07-06  Diego Novillo  <dnovillo@google.com>
2604
2605         * tree-pretty-print.c (dump_generic_node): Protect against NULL op0.
2606         (debug_tree_chain): Handle cycles.
2607
2608 2009-07-06  Nick Clifton  <nickc@redhat.com>
2609             DJ Delorie  <dj@redhat.com>
2610
2611         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
2612         __FMOVD_ENABLED__ is defined.
2613         * config/sh/sh.h
2614         (TARGET_FMOVD): Provide a default definition.
2615         (MASK_FMOVD): Likewise.
2616         (TARGET_CPU_CPP_BUILTINS): Define
2617         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
2618         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
2619         two fmov instructions depending upon whether TARGET_FMOVD is enabled.
2620         (split for DF load from memory into register): Also handle
2621         MEMs which consist of REG+DISP addressing.
2622         (split for DF store from register to memory): Likewise.
2623         (movsf_ie): Always use single fp_mode.
2624         * config/sh/sh.c (sh_override_options): Do not automatically
2625         enable TARGET_MOVD for the SH2A when supporting doubles - leave
2626         that to the -mfmovd command line switch.
2627         (broken_move): Do not restrict fldi test to only the SH4 and SH4A.
2628         (fldi_ok): Always allow.
2629         * config/sh/sh.opt (mfmovd): Remove this switch.
2630         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
2631
2632 2009-07-06  J"orn Rennecke  <joern.rennecke@arc.com>
2633             Kaz Kojima  <kkojima@gcc.gnu.org>
2634
2635         PR rtl-optimization/30807
2636         * postreload.c (reload_combine): For every new use of REG_SUM,
2637         record the use of BASE.
2638
2639 2009-07-06  Jan Hubicka  <jh@suse.cz>
2640
2641         * params.def: Revert my accidental commit at 2009-06-30.
2642
2643 2009-07-04  Ian Lance Taylor  <iant@google.com>
2644
2645         PR target/40636
2646         * config/i386/msformat-c.c (mingw_format_attributes): Declare as
2647         EXPORTED_CONST.
2648         (mingw_format_attribute_overrides): Likewise.
2649
2650 2009-07-04  Jakub Jelinek  <jakub@redhat.com>
2651
2652         PR debug/40596
2653         * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
2654         don't check cfa.reg.  Instead of cfa.indirect use
2655         fde && fde->drap_reg != INVALID_REGNUM test.
2656
2657 2009-07-04  Eric Botcazou  <ebotcazou@adacore.com>
2658
2659         * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.
2660
2661 2009-07-03  Vladimir Makarov  <vmakarov@redhat.com>
2662
2663         PR target/40587
2664         * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out.
2665
2666 2009-07-03  Richard Guenther  <rguenther@suse.de>
2667
2668         PR tree-optimization/40640
2669         * tree-switch-conversion.c (build_arrays): Perform arithmetic
2670         in original type.
2671
2672 2009-07-03  Jan Hubicka  <jh@suse.cz>
2673
2674         * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing
2675         for size, reduce amount of inlining.
2676
2677 2009-07-03  Richard Guenther  <rguenther@suse.de>
2678
2679         PR middle-end/34163
2680         * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x
2681         if t +- x is known to not overflow and the conversion widens the
2682         operation.
2683         * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency.
2684
2685 2009-07-03  Jan Hubicka  <jh@suse.cz>
2686
2687         * ipa-pure-const.c (analyze): Update loop optimizer init.
2688         * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop,
2689         try_remove_empty_loop, remove_empty_loops): Remove.
2690         * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove.
2691         * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info
2692         to mark regular loops as neccesary.
2693         (degenerate_phi_p): New function.
2694         (propagate_necessity, remove_dead_phis): Use it.
2695         (forward_edge_to_pdom): Likewise.
2696         (eliminate_unnecessary_stmts): Take care to remove uses of results of
2697         virtual PHI nodes that became unreachable.
2698         (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer.
2699         * tree-flow.h (remove_empty_loops): Remove.
2700         * passes.c (init_optimization_passes): Remove.
2701
2702 2009-07-03  Uros Bizjak  <ubizjak@gmail.com>
2703
2704         * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use
2705         can_create_pseudo_p.
2706         (*fix_trunc<mode>_i387_1): Ditto.
2707         (*floathi<mode>2_1): Ditto.
2708         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto.
2709         (*fistdi2_1): Ditto.
2710         (*fist<mode>2_1): Ditto.
2711         (frndintxf2_floor): Ditto.
2712         (*fist<mode>2_floor_1): Ditto.
2713         (frndintxf2_ceil): Ditto.
2714         (*fist<mode>2_ceil_1): Ditto.
2715         (frndintxf2_trunc): Ditto.
2716         (frndintxf2_mask_pm): Ditto.
2717         (fxam<mode>2_i387_with_temp): Ditto.
2718         * config/i386/sse.md (mulv16qi3): Ditto.
2719         (*sse2_mulv4si3): Ditto.
2720         (mulv2di3): Ditto.
2721         (sse4_2_pcmpestr): Ditto.
2722         (sse4_2_pcmpistr): Ditto.
2723
2724 2009-07-03  Jan Hubicka  <jh@suse.cz>
2725
2726         * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap.
2727         (mark_stmt_necessary): Set it.
2728         (mark_operand_necessary): Set it.
2729         (mark_control_dependent_edges_necessary): Set it.
2730         (mark_virtual_phi_result_for_renaming): New function.
2731         (get_live_post_dom): New function.
2732         (forward_edge_to_pdom): New function.
2733         (remove_dead_stmt): Fix handling of control dependences.
2734         (tree_dce_init): Init new bitmap.
2735         (tree_dce_done): Free it.
2736
2737 2009-07-02  Richard Guenther  <rguenther@suse.de>
2738
2739         PR bootstrap/40617
2740         * tree-ssa-structalias.c (new_var_info): Initialize
2741         is_restrict_var.
2742
2743 2009-07-02  Jan Hubicka  <jh@suse.cz>
2744
2745         * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is
2746         local.
2747
2748 2009-07-02  Paolo Bonzini  <bonzini@gnu.org>
2749
2750         * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode
2751         instead of recomputing it.  Adjust calls.
2752         (emit_store_flag): Adjust recursive calls.
2753
2754 2009-07-02  Richard Guenther  <rguenther@suse.de>
2755
2756         * tree-ssa-live.c (remove_unused_locals): Do not remove
2757         heap variables.
2758         * tree-ssa-structalias.c (handle_lhs_call): Delay setting
2759         of DECL_EXTERNAL for HEAP variables.
2760         (compute_points_to_sets): Set DECL_EXTERNAL for escaped
2761         HEAP variables.  Do not adjust RESTRICT vars.
2762         (find_what_var_points_to): Nobody cares if something
2763         points to READONLY.
2764
2765 2009-07-02  Ben Elliston  <bje@au.ibm.com>
2766
2767         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move
2768         pc_low and pc_high declarations to the top of the function.
2769
2770 2009-07-01  DJ Delorie  <dj@redhat.com>
2771
2772         * config/mep/mep.c (mep_handle_option): Leave IVC2 control
2773         registers as fixed.
2774         (mep_interrupt_saved_reg): Save appropriate IVC2 control registers.
2775         * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make
2776         unspecified accesses to control registers.
2777         * config/mep/intrinsics.md: Regenerate.
2778         * config/mep/intrinsics.h: Regenerate.
2779         * config/mep/mep-intrin.h: Regenerate.
2780
2781 2009-07-01  Anthony Green  <green@moxielogic.com>
2782
2783         * config/moxie/moxie.c (moxie_expand_prologue): Use dec
2784         instruction when possible.
2785         (moxie_expand_prologue): Ditto.  Also, save an instruction and
2786         some complexity by popping off of $r12 instead of $sp.
2787         * config/moxie/moxie.md (movsi_pop): Don't assume $sp.  Take two
2788         operands.
2789
2790 2009-07-01  Richard Henderson  <rth@redhat.com>
2791
2792         PR bootstrap/40347
2793         * function.c (reposition_prologue_and_epilogue_notes): If epilogue
2794         contained no insns, reposition note before last insn.
2795
2796 2009-07-01  Richard Henderson  <rth@redhat.com>
2797
2798         PR debug/40431
2799         * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for
2800         DW_CFA_def_cfa_offset and DW_CFA_def_cfa.
2801
2802 2009-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
2803
2804         PR bootstrap/40558
2805         * config/rs6000/rs6000.c (print_operand): Undo change that breaks
2806         darwin9 for printing reg addresses with %y.
2807
2808 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
2809
2810         * combine.c (force_to_mode): Handle TRUNCATE.  Factor out
2811         truncation from operands in binary operations.
2812
2813 2009-07-01  Adam Nemet  <anemet@caviumnetworks.com>
2814
2815         Revert:
2816         2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
2817         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
2818         subreg of op0 to the original op0.
2819
2820         * expmed.c (store_bit_field_1): Use a temporary as the destination
2821         instead of a paradoxical subreg when we need to truncate the result.
2822
2823 2009-07-01  DJ Delorie  <dj@redhat.com>
2824
2825         * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic
2826         names to VLIW variants.
2827         (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants.
2828         * config/mep/intrinsics.md: Regenerate.
2829         * config/mep/intrinsics.h: Regenerate.
2830         * config/mep/mep-intrin.h: Regenerate.
2831
2832 2009-07-01  Jakub Jelinek  <jakub@redhat.com>
2833
2834         PR debug/40462
2835         * jump.c (returnjump_p): Revert last patch.
2836         * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs.
2837
2838 2009-07-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2839
2840         PR target/40575
2841         * pa.md (casesi32p): Use jump table label to determine the offset
2842         of the jump table.
2843         (casesi64p): Likewise.
2844
2845         * pa.c (forward_branch_p): Return bool type.  Use instruction
2846         addresses when available.  Assert that INSN has a jump label.
2847         (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't
2848         have a jump label.
2849
2850 2009-07-01  Richard Guenther  <rguenther@suse.de>
2851
2852         PR tree-optimization/19831
2853         * tree-ssa-dce.c (propagate_necessity): Calls to functions
2854         that only act as barriers do not make any previous stores necessary.
2855         * tree-ssa-structalias.c (handle_lhs_call): Delay making
2856         HEAP variables global, do not add a constraint from nonlocal.
2857         (find_func_aliases): Handle escapes through return statements.
2858         (compute_points_to_sets): Make escaped HEAP variables global.
2859
2860 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
2861
2862         PR bootstrap/40597
2863         * expmed.c (emit_store_flag): Perform a conversion if necessary,
2864         after reducing a DImode cstore to SImode.
2865
2866 2009-07-01  Paolo Bonzini  <bonzini@gnu.org>
2867
2868         * expr.c (expand_expr_real_1): Reinstate fallthrough to
2869         TRUTH_ANDIF_EXPR if do_store_flag returns NULL.
2870
2871 2009-07-01  Maciej W. Rozycki  <macro@linux-mips.org>
2872
2873         * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro.  Set to 1.
2874         * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro.  Redefine the
2875         to 0.
2876         * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab
2877         and umod_optab if TARGET_BSD_DIVMOD.
2878         * config/vax/lib1funcs.asm: New file.
2879         * config/vax/t-linux: New file.
2880         * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux.
2881
2882 2009-06-30  Jakub Jelinek  <jakub@redhat.com>
2883
2884         PR c++/40566
2885         * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert
2886         to type arguments that have void type.
2887
2888         PR debug/40573
2889         * dwarf2out.c (gen_formal_parameter_die): Call
2890         equate_decl_number_to_die if node is different from origin.
2891
2892 2009-06-30  Anthony Green  <green@moxielogic.com>
2893
2894         Clean up moxie port for --enable-build-with-cxx.
2895         * config/moxie/moxie.c (moxie_function_value): First two
2896         parameters are const_tree, not tree.
2897         * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS.
2898         (REG_CLASS_NAMES): Ditto.
2899         (REGNO_REG_CLASS): Ditto.
2900         * config/moxie/moxie-protos.h (moxie_override_options): Declare.
2901         (moxie_function_value): Fix constyness of arguments.
2902
2903 2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>
2904
2905         * cgraphunit.c (cgraph_finalize_compilation_unit): Call
2906         finalize_size_functions before further processing.
2907         * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h.
2908         (variable_size): Call self_referential_size on size expressions
2909         that contain a PLACEHOLDER_EXPR.
2910         (size_functions): New static variable.
2911         (copy_self_referential_tree_r): New static function.
2912         (self_referential_size): Likewise.
2913         (finalize_size_functions): New global function.
2914         * tree.c: Include tree-inline.h.
2915         (push_without_duplicates): New static function.
2916         (find_placeholder_in_expr): New global function.
2917         (substitute_in_expr) <tcc_declaration>: Return the replacement object
2918         on equality.
2919         <tcc_expression>: Likewise.
2920         <tcc_vl_exp>: If the replacement object is a constant, try to inline
2921         the call in the expression.
2922         * tree.h (finalize_size_functions): Declare.
2923         (find_placeholder_in_expr): Likewise.
2924         (FIND_PLACEHOLDER_IN_EXPR): New macro.
2925         (substitute_placeholder_in_expr): Update comment.
2926         * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare
2927         is true.
2928         (copy_tree_body_r): Likewise.
2929         (copy_tree_body): New static function.
2930         (maybe_inline_call_in_expr): New global function.
2931         * tree-inline.h (struct copy_body_data): Add do_not_unshare field.
2932         (maybe_inline_call_in_expr): Declare.
2933         * Makefile.in (tree.o): Depend on TREE_INLINE_H.
2934         (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and
2935         GIMPLE_H.
2936
2937 2009-06-30  Richard Guenther  <rguenther@suse.de>
2938
2939         * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always
2940         continue walking.
2941         (propagate_necessity): Do not mark reaching defs of stores
2942         as necessary.
2943
2944 2009-06-30  Jan Hubicka  <jh@suse.cz>
2945
2946         * cfgloopanal.c (check_irred): Move into ...
2947         (mark_irreducible_loops): ... here; return true if ireducible
2948         loops was found.
2949         * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h
2950         (analyze_function): Try to prove loop finiteness.
2951         * cfgloop.h (mark_irreducible_loops): Update prototype.
2952         * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP.
2953
2954 2009-06-30  Basile Starynkevitch  <basile@starynkevitch.net>
2955
2956         * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print.
2957
2958 2009-06-30  Ira Rosen  <irar@il.ibm.com>
2959
2960         PR tree-optimization/40542
2961         * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile 
2962         types.
2963
2964 2009-06-30  Martin Jambor  <mjambor@suse.cz>
2965
2966         PR tree-optimization/40582
2967         * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather
2968         than useless_type_conversion_p.
2969         (generate_subtree_copies): Increment sra_stats.subtree_copies at a
2970         proper place.
2971
2972 2009-06-30  Martin Jambor  <mjambor@suse.cz>
2973
2974         PR middle-end/40554
2975         * tree-sra.c (sra_modify_expr): Add access->offset to start_offset.
2976
2977 2009-06-30  Richard Guenther  <rguenther@suse.de>
2978
2979         * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to
2980         use ao_ref references.
2981         (walk_aliased_vdefs): Likewise.
2982         * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype.
2983         * tree-ssa-dce.c (struct ref_data): Remove.
2984         (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument.
2985         (mark_aliased_reaching_defs_necessary): Adjust.
2986         (mark_all_reaching_defs_necessary_1): Likewise.
2987
2988 2009-06-30  Paolo Bonzini  <bonzini@gnu.org>
2989
2990         PR boostrap/40597
2991         * expmed.c (emit_cstore): New name of emit_store_flag_1.
2992         (emit_store_flag_1): Extract from emit_store_flag, adjust
2993         calls to (what now is) emit_cstore.
2994         (emit_store_flag): Call emit_store_flag_1 and also use it
2995         for what used to be recursive calls.
2996
2997 2009-06-30  Wei Guozhi  <carrot@google.com>
2998
2999         PR/40416
3000         * tree-ssa-sink.c (statement_sink_location): Stop sinking expression
3001         if the target bb post dominates from bb.
3002         * config/i386/i386.c (memory_address_length): Check existence of base
3003         register before using it.
3004
3005 2009-06-30  Nick Clifton  <nickc@redhat.com>
3006             DJ Delorie  <dj@redhat.com>
3007
3008         * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if
3009         __FMOVD_ENABLED__ is defined.
3010         * config/sh/sh.h
3011         (TARGET_FMOVD): Provide a default definition.
3012         (MASK_FMOVD): Likewise.
3013         (TARGET_CPU_CPP_BUILTINS): Define
3014         __FMOVD_ENABLED__ if TARGET_FMOVD is true.
3015         * config/sh/sh.md (movdf_i4): For alternative 0 use either one or
3016         two fmov instructions depending upon whether TARGET_FMOVD is
3017         enabled.
3018         (split for DF load from memory into register): Also handle
3019         MEMs which consist of REG+DISP addressing.
3020         (split for DF store from register to memory): Likewise.
3021         * config/sh/sh.opt (mfmovd): Remove this switch.
3022         * doc/invoke.texi (-mfmovd): Remove documentation of this switch.
3023         * config/sh/sh.c (sh_override_options): Do not automatically
3024         enable TARGET_MOVD for the SH2A when supporting doubles - leave
3025         that to the -mfmovd command line switch.
3026
3027         * config/sh/sh.c (broken_move): Do not restrict fldi test to only
3028         the SH4 and SH4A.
3029         (fldi_ok): Always allow.
3030         * config/sh/sh.md (movsf_ie): Always use single fp_mode.
3031
3032 2009-06-29  DJ Delorie  <dj@redhat.com>
3033
3034         * doc/install.texi (mep-x-elf): Correct chip's full name.
3035
3036 2009-06-29  H.J. Lu  <hongjiu.lu@intel.com>
3037
3038         * doc/extend.texi: Fix typo.
3039
3040 2009-06-29  Tom Tromey  <tromey@redhat.com>
3041
3042         * dwarf2.h: Remove.
3043         * Makefile.in (DWARF2_H): New variable.
3044         (except.o): Use it.
3045         (dwarf2out.o): Likewise.
3046         (dwarf2asm.o): Likewise.
3047         * config/i386/t-i386: Use DWARF2_H.
3048         * except.c: Include elf/dwarf2.h.
3049         * unwind-dw2.c: Include elf/dwarf2.h.
3050         * dwarf2out.c: Include elf/dwarf2.h.
3051         (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield.
3052         <dtprel>: New field.
3053         (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr.
3054         (size_of_loc_descr): Likewise.
3055         (output_loc_operands_raw): Likewise.
3056         (output_loc_operands): Handle new dtprel field.
3057         (loc_checksum): Update.
3058         (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field.
3059         * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h.
3060         * unwind-dw2-fde.c: Include elf/dwarf2.h.
3061         * dwarf2asm.c: Include elf/dwarf2.h.
3062         * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h.
3063         * config/mmix/mmix.c: Include elf/dwarf2.h.
3064         * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h.
3065         * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h.
3066         * config/sh/sh.c: Include elf/dwarf2.h.
3067         * config/i386/i386.c: Include elf/dwarf2.h.
3068
3069 2009-06-29  DJ Delorie  <dj@redhat.com>
3070
3071         * config/mep/mep.h (CPP_SPEC): Remove __cop macro.
3072
3073         * doc/extend.texi: Add MeP attributes and pragmas.
3074         * doc/invoke.text: Add MeP Options.
3075         * doc/contrib.texi: Add MeP contribution.
3076         * doc/md.texi: Add MeP constraints.
3077         * doc/install.texi: Add MeP target.
3078
3079 2009-06-30  Anatoly Sokolov  <aesok@post.ru>
3080
3081         * target.h (struct gcc_target): Add frame_pointer_required field.
3082         * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New.
3083         (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED.
3084         * ira.c (setup_eliminable_regset): Use frame_pointer_required target
3085         hook.
3086         * reload1.c (update_eliminables): (Ditto.).
3087         * gcc/system.h (FRAME_POINTER_REQUIRED): Poison.
3088         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
3089         (INITIAL_FRAME_POINTER_OFFSET): (Ditto.).
3090
3091         * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro.
3092
3093         * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro.
3094         * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3095         (arm_frame_pointer_required): New function.
3096
3097         * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro.
3098         * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3099         (avr_frame_pointer_required_p): Declare as static.
3100         * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove.
3101
3102         * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro.
3103         * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3104         (bfin_frame_pointer_required): Make as static, change return type
3105         to bool.
3106         * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove.
3107
3108         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro.
3109         * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3110         (cris_frame_pointer_required): New function.
3111         
3112         * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro.
3113
3114         * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro.
3115         * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3116         (fr30_frame_pointer_required): New function.
3117         
3118         * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro.
3119         * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3120         (frv_frame_pointer_required): Make as static, change return type
3121         to bool.
3122         * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove.
3123
3124         * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro.
3125         * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3126         (ix86_frame_pointer_required): Make as static, change return type to
3127         bool.
3128         * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove.
3129
3130         * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro.
3131         * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3132
3133         * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro.
3134
3135         * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro.
3136         
3137         * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro.
3138
3139         * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro.
3140         * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3141         (mips_frame_pointer_required): Make as static.
3142         * config/mips/mips-protos.h (mips_frame_pointer_required): Remove.
3143         
3144         * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro.
3145         * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3146         (mmix_frame_pointer_required): Mew function.
3147
3148         * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro.
3149         * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3150
3151         * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro.
3152
3153         * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro.
3154
3155         * config/sh/sh.h (CAN_ELIMINATE): Remove macro.
3156
3157         * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro.
3158         (CAN_ELIMINATE): Redefine.
3159         * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro.
3160         (sparc_frame_pointer_required): New function.
3161         (sparc_can_eliminate): New function.
3162         * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare.
3163
3164         * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro.
3165         * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3166
3167         * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro.
3168         * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define.
3169         (xtensa_frame_pointer_required): Make as static, change return type
3170         to bool.
3171         * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required):
3172         Remove.
3173
3174 2009-06-29  Olatunji Ruwase  <tjruwase@google.com>
3175
3176         * doc/plugins.texi: Document PLUGIN_START_UNIT.
3177         * toplev.c (compile_file): Call PLUGIN_START_UNIT.
3178         * gcc-plugin.h (PLUGIN_START_UNIT): Added new event.
3179         * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT.
3180         (register_callback): Handle PLUGIN_START_UNIT.
3181         (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT.
3182
3183 2009-06-29  Eric Botcazou  <ebotcazou@adacore.com>
3184
3185         * tree.c (process_call_operands): Propagate TREE_READONLY from the
3186         operands.
3187         (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P.
3188         (build3_stat): Propagate TREE_READONLY for COND_EXPR.
3189
3190 2009-06-29  Daniel Jacobowitz  <dan@codesourcery.com>
3191
3192         * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register
3193         move cost.
3194
3195 2009-06-29  Uros Bizjak  <ubizjak@gmail.com>
3196
3197         * doc/extend.texi (Additional Floating Types): __float128 is also
3198         supported on i386 targets.
3199
3200 2009-06-29  Richard Guenther  <rguenther@suse.de>
3201
3202         PR middle-end/14187
3203         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
3204         flag.
3205         (pt_solutions_same_restrict_base): Declare.
3206         * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var
3207         flag.
3208         (new_var_info): Initialize is_global_var properly for SSA_NAMEs.
3209         (make_constraint_from, make_copy_constraint): Move earlier.
3210         (make_constraint_from_heapvar): New function.
3211         (make_constraint_from_restrict): Likewise.
3212         (handle_lhs_call): Use it.
3213         (find_func_aliases): Use it to track conversions to restrict
3214         qualified pointers.
3215         (struct fieldoff): Add only_restrict_pointers flag.
3216         (push_fields_onto_fieldstack): Initialize it.
3217         (create_variable_info_for): Track global restrict qualified pointers.
3218         (intra_create_variable_infos): Use make_constraint_from_heapvar.
3219         Track restrict qualified pointer arguments.
3220         (set_uids_in_ptset): Use varinfo is_global_var flag.
3221         (find_what_var_points_to): Set the vars_contains_restrict flag.
3222         Always create the points-to solution for sets including restrict tags.
3223         (pt_solutions_same_restrict_base): New function.
3224         * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict
3225         qualified pointers use pt_solutions_same_restrict_base as
3226         additional source for disambiguation.
3227
3228 2009-06-29  Richard Guenther  <rguenther@suse.de>
3229
3230         PR middle-end/38212
3231         * alias.c (find_base_decl): Remove.
3232         (get_deref_alias_set_1): Remove restrict handling.
3233         * c-common.c (c_apply_type_quals_to_decl): Do not set
3234         DECL_POINTER_ALIAS_SET.
3235         * gimplify.c (find_single_pointer_decl_1): Remove.
3236         (find_single_pointer_decl): Likewise.
3237         (internal_get_tmp_var): Remove restrict handling.
3238         (gimple_regimplify_operands): Likewise.
3239         * omp-low.c (expand_omp_atomic_pipeline): Do not set
3240         DECL_POINTER_ALIAS_SET. Use ref-all pointers.
3241         * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET.
3242         * tree.c (restrict_base_for_decl): Remove.
3243         (init_ttree): Do not allocate it.
3244         (make_node_stat): Do not set DECL_POINTER_ALIAS_SET.  Set
3245         LABEL_DECL_UID for label decls.
3246         (copy_node_stat): Do not copy restrict information.
3247         (decl_restrict_base_lookup): Remove.
3248         (decl_restrict_base_insert): Likewise.
3249         (print_restrict_base_statistics): Likewise.
3250         (dump_tree_statistics): Do not call print_restrict_base_statistics.
3251         * tree.h (DECL_POINTER_ALIAS_SET): Remove.
3252         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
3253         (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid.
3254         (LABEL_DECL_UID): Adjust.
3255         (DECL_BASED_ON_RESTRICT_P): Remove.
3256         (DECL_GET_RESTRICT_BASE): Likewise.
3257         (SET_DECL_RESTRICT_BASE): Likewise.
3258         (struct tree_decl_with_vis): Remove based_on_restrict_p flag.
3259
3260         * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers
3261         instead of DECL_POINTER_ALIAS_SET.
3262         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise.
3263         * config/s390/s390.c (s390_gimplify_va_arg): Likewise.
3264         * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
3265
3266 2009-06-29  Richard Guenther  <rguenther@suse.de>
3267
3268         PR tree-optimization/40579
3269         * tree-vrp.c (vrp_evaluate_conditional): Bail out early if
3270         the IL to simplify has constants that overflowed.
3271
3272 2009-06-28  Uros Bizjak  <ubizjak@gmail.com>
3273
3274         PR tree-optimization/40550
3275         * tree-vect-generic.c (expand_vector_operations_1): Compute in
3276         vector_compute_type only when the size of vector_compute_type is
3277         less than the size of type.
3278
3279 2009-06-28  Eric Botcazou  <ebotcazou@adacore.com>
3280
3281         * fold-const.c (contains_label_1): Fix comments.
3282         (contains_label_p): Do not walk trees multiple time.
3283
3284 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
3285
3286         * config/i386/i386.h (enum ix86_fpcmp_strategy): New.
3287         * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4,
3288         cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to
3289         ix86_fp_comparison_operator.
3290         (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed,
3291         *fp_jcc_2_sse, *fp_jcc_2_387): Delete
3292         (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387,
3293         *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to
3294         !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call
3295         to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator.
3296         (related splits): Change predicate to ix86_fp_comparison_operator.
3297         * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator
3298         instead of ix86_fp_comparison_codes.
3299         (ix86_trivial_fp_comparison_operator,
3300         ix86_fp_comparison_operator): New.
3301         * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New.
3302         (ix86_expand_compare): Eliminate last two parameters.
3303         (ix86_fp_jump_nontrivial_p): Kill.
3304         * config/i386/i386.c (put_condition_code): Eliminate call to
3305         ix86_fp_comparison_codes and subsequent assertion.
3306         (ix86_fp_comparison_codes): Eliminate.
3307         (ix86_fp_swap_condition): New.
3308         (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost,
3309         ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate
3310         into ix86_fp_comparison_cost and ix86_fp_comparison_strategy.
3311         (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy
3312         and ix86_fp_swap_condition.
3313         (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump.
3314         Use ix86_fp_comparison_strategy.
3315         (ix86_expand_compare): Likewise.  Eliminate last two arguments.
3316         (ix86_fp_jump_nontrivial_p): Eliminate.
3317         (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple.  Adjust
3318         call to ix86_expand_compare.
3319         (ix86_split_fp_branch, ix86_expand_setcc,
3320         ix86_expand_carry_flag_compare, ix86_expand_int_movcc,
3321         ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump.
3322
3323 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
3324
3325         * config/arm/arm.c (arm_final_prescan_ins): Eliminate code
3326         related to jump_clobbers.
3327         * config/arm/arm.md (conds): Remove jump_clob case.
3328         (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two
3329         splits): Change comparison_operator to arm_comparison_operator.
3330         (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed):
3331         Eliminate.
3332
3333 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
3334
3335         * dojump.c (do_compare_rtx_and_jump): Try swapping the
3336         condition for floating point modes.
3337         * expmed.c (emit_store_flag_1): Move here a bigger part
3338         of emit_store_flag.
3339         (emit_store_flag): Try swapping the condition for floating point
3340         modes.
3341         * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better.
3342
3343 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
3344
3345         * expr.c (expand_expr_real_1): Just use do_store_flag.
3346         (do_store_flag): Drop support for TRUTH_NOT_EXPR.  Use
3347         emit_store_flag_force.
3348         * expmed.c (emit_store_flag_force): Copy here trick
3349         previously in expand_expr_real_1.  Try reversing the comparison.
3350         (emit_store_flag_1): Work if target is NULL.
3351         (emit_store_flag): Work if target is NULL, using the result mode
3352         from the comparison.  Use split_comparison, restructure final part
3353         to simplify conditionals.
3354
3355 2009-06-28  Paolo Bonzini  <bonzini@gnu.org>
3356
3357         * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump.
3358         * dojump.c (do_jump): Change handling of floating-point
3359         ops to use just do_compare_and_jump.
3360         (split_comparison): New.
3361         (do_compare_rtx_and_jump): Add here logic coming previously
3362         in do_jump, using split_comparison.
3363
3364 2009-06-27  H.J. Lu  <hongjiu.lu@intel.com>
3365
3366         PR target/40489
3367         * config/ia64/ia64.c (ia64_reorg): Check NULL insn.
3368
3369 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
3370
3371         * tree-ssa-alias.c: Fix unintentional commit.
3372
3373 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
3374
3375         * passes.c (execute_one_pass): Fix unintentional commit.
3376
3377 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
3378
3379         * df-problems.c (df_set_seen, df_unset_seen): Delete.
3380         (df_rd_local_compute, df_md_local_compute): Inline them.
3381
3382         (df_md_scratch): New.
3383         (df_md_alloc, df_md_free): Allocate/free it.
3384         (df_md_local_compute): Only include live registers in init.
3385         (df_md_transfer_function): Prune the in-set computed by
3386         the confluence function, and the gen-set too.
3387
3388 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
3389
3390         PR rtl-optimization/26854
3391         * timevar.def: Remove TV_DF_RU, add TV_DF_MD.
3392         * df-problems.c (df_rd_add_problem): Fix comment.
3393         (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc,
3394         df_md_simulate_artificial_defs_at_top,
3395         df_md_simulate_one_insn, df_md_bb_local_compute_process_def,
3396         df_md_bb_local_compute, df_md_local_compute, df_md_reset,
3397         df_md_transfer_function, df_md_init, df_md_confluence_0,
3398         df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump,
3399         problem_MD, df_md_add_problem): New.
3400         * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md,
3401         df_md_get_bb_info): New.
3402         (DF_LAST_PROBLEM_PLUS1): Adjust.
3403
3404         * Makefile.in (fwprop.o): Include domwalk.h.
3405         * fwprop.c: Include domwalk.h.
3406         (reg_defs, reg_defs_stack): New.
3407         (bitmap_only_bit_between): Remove.
3408         (process_defs): New.
3409         (process_uses): Use reg_defs and local_md instead of
3410         bitmap_only_bit_between and local_rd.
3411         (single_def_use_enter_block): New, from build_single_def_use_links.
3412         (single_def_use_leave_block): New.
3413         (build_single_def_use_links): Remove code moved to
3414         single_def_use_enter_block, invoke domwalk.
3415         (use_killed_between): Adjust comment.
3416
3417 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
3418
3419         * bitmap.h (bitmap_ior_and_into): New.
3420         * bitmap.c (bitmap_ior_and_into): New.
3421
3422 2009-06-27  Paolo Bonzini  <bonzini@gnu.org>
3423
3424         * domwalk.h (struct dom_walk_data): Remove all callbacks except
3425         before_dom_children_before_stmts and after_dom_children_after_stmts.
3426         Rename the two remaining callbacks to just before_dom_children and 
3427         after_dom_children. Remove other GIMPLE statement walking bits.
3428         * domwalk.c (walk_dominator_tree): Remove now unsupported features.
3429         * graphite.c: Do not include domwalk.h.
3430         * tree-into-ssa.c (interesting_blocks): New global.
3431         (struct mark_def_sites_global_data): Remove it and names_to_rename.
3432         (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments,
3433         rewrite_update_stmt, rewrite_update_phi_arguments): Simplify
3434         now that they're not domwalk callbacks.
3435         (rewrite_initialize_block): Rename to...
3436         (rewrite_enter_block): ... this, place after called functions.  Test
3437         interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments.
3438         (rewrite_finalize_block): Rename to...
3439         (rewrite_leave_block): ... this, place after called functions.
3440         (rewrite_update_init_block): Rename to...
3441         (rewrite_update_enter_block): ... this, place after called functions.
3442         Test interesting_blocks, call rewrite_update_stmt and 
3443         rewrite_update_phi_arguments.
3444         (rewrite_update_fini_block): Rename to...
3445         (rewrite_leave_block): ... this, place after called functions.
3446         (rewrite_blocks): Remove last argument, simplify initialization of
3447         walk_data.
3448         (mark_def_sites_initialize_block): Rename to...
3449         (mark_def_sites_block): ... this, call mark_def_sites.
3450         (mark_def_sites_blocks): Remove argument, simplify initialization of
3451         walk_data.
3452         (rewrite_into_ssa): Adjust for interesting_blocks_being a global.
3453         (update_ssa): Likewise.
3454         * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk
3455         callback.
3456         (tree_ssa_dominator_optimize): Simplify initialization of walk_data.
3457         (dom_opt_initialize_block): Rename to...
3458         (dom_opt_enter_block): ... this, place after called functions.  Walk
3459         statements here, inline propagate_to_outgoing_edges.
3460         (dom_opt_finalize_block): Rename to...
3461         (dom_opt_leave_block): ... this, place after called functions.
3462         * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a
3463         domwalk callback.
3464         (dse_enter_block, dse_record_phi): New.
3465         (dse_record_phis): Delete.
3466         (dse_finalize_block): Rename to...
3467         (dse_leave_block): ... this.
3468         (tree_ssa_dse): Simplify initialization of walk_data.
3469         * tree-ssa-loop-im.c (determine_invariantness, move_computations):
3470         Adjust initialization of walk_data.
3471         * tree-ssa-loop-unswitch.c: Do not include domwalk.h.
3472         * tree-ssa-loop-phiopt.c (get_non_trapping):
3473         Adjust initialization of walk_data.
3474         * tree-ssa-loop-threadedge.c: Do not include domwalk.h.
3475         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that
3476         it's not a domwalk callback.
3477         (uncprop_initialize_block): Rename to...
3478         (dse_enter_block): ... this, call uncprop_into_successor_phis.
3479         (dse_finalize_block): Rename to...
3480         (dse_leave_block): ... this.
3481         (tree_ssa_uncprop): Simplify initialization of walk_data.
3482         * Makefile.in: Adjust dependencies.
3483
3484 2009-06-27  Richard Earnshaw  <rearnsha@arm.com>
3485
3486         * arm.md (casesi): Fix test for Thumb1.
3487         (thumb1_casesi_internal_pic): Likewise.
3488         (thumb1_casesi_dispatch): Likewise.
3489
3490 2009-06-26  Daniel Gutson  <dgutson@codesourcery.com>
3491
3492         * config/arm/arm-cores.def: Added core cortex-m0.
3493         * config/arm/arm-tune.md: Regenerated.
3494         * doc/invoke.texi: Added entry for cpu ARM Cortex-M0.
3495
3496 2009-06-26  DJ Delorie  <dj@redhat.com>
3497
3498         * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything.
3499
3500         * config/mep/mep.c (mep_bundle_insns): Account for the fact that
3501         the scheduler doesn't tag jump insns.
3502
3503 2009-06-26  H.J. Lu  <hongjiu.lu@intel.com>
3504
3505         * c-decl.c (merge_decls): Re-indent.
3506
3507 2009-06-26  Janis Johnson  <janis187@us.ibm.com>
3508
3509         PR c/39902
3510         * tree.c (real_zerop, real_onep, real_twop, real_minus_onep):
3511         Special-case decimal float constants.
3512
3513 2009-06-26  Richard Henderson  <rth@redhat.com>
3514
3515         * function.h (struct function): Add cannot_be_copied_reason,
3516         and cannot_be_copied_set.
3517         * tree-inline.c (has_label_address_in_static_1): Rename from
3518         inline_forbidden_p_2; don't set inline_forbidden_reason here.
3519         (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise
3520         don't set inline_forbidden_reason.
3521         (copy_forbidden): New function, split out of inline_forbidden_p.
3522         (inline_forbidden_p_stmt): Don't check for nonlocal labels here.
3523         (inline_forbidden_p): Use copy_forbidden.
3524         (tree_versionable_function_p): Likewise.
3525         (inlinable_function_p): Merge into tree_inlinable_function_p.
3526         (tree_function_versioning): Remap cfun->nonlocal_goto_save_area.
3527         * ipa-cp.c (ipcp_versionable_function_p): New function.
3528         (ipcp_cloning_candidate_p): Use it.
3529         (ipcp_node_modifiable_p): Likewise.
3530
3531 2009-06-26  Olatunji Ruwase  <tjruwase@google.com>
3532
3533         * builtins.c (expand_builtin_alloca): Handle builtin alloca
3534         that is marked not to be inlined. Remove flag_mudflap use.
3535         * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements.
3536         (mf_xform_statements): Mark builtin alloca calls as un-inlineable.
3537
3538 2009-06-26  Steve Ellcey  <sje@cup.hp.com>
3539
3540         PR bootstrap/40338
3541         * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed.
3542         * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto.
3543
3544 2009-06-26  Kai Tietz  <kai.tietz@onevision.com>
3545
3546         * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none
3547         shared libgcc.
3548         (__mingwthr_remove_key_dtor): Likewise.
3549
3550 2009-06-26  Richard Guenther  <rguenther@suse.de>
3551
3552         * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling.
3553
3554 2009-06-26  Steven Bosscher  <steven@gcc.gnu.org>
3555
3556         PR middle-end/40525
3557         * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails,
3558         try the non-cond_exec path also.
3559
3560 2009-06-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3561
3562         PR target/40468
3563         * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions.
3564         (output_cbranch): Use new functions.
3565         (output_lbranch, output_bb, output_bvb, output_dbra, output_movb):
3566         Likewise.
3567
3568 2009-06-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
3569             Pat Haugen  <pthaugen@us.ibm.com>
3570             Revital Eres <ERES@il.ibm.com>
3571
3572         * config/rs6000/rs6000.c (print_operand): Correct lossage message
3573         for %c error.  Add %x support to print VSX registers as a unified
3574         register set, instead of separate float and altivec registers.
3575         Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for
3576         %y case, and add support for VSX pre-modify addresses.
3577         (output_toc): Add assert for CONST containing an integer constant
3578         in the PLUS case.
3579         (rs6000_adjust_cost): Add POWER7 support.
3580         (insn_must_be_first_in_group): Ditto.
3581         (insn_must_be_last_in_group): Ditto.
3582         (rs6000_emit_popcount): Ditto.
3583         (rs6000_vector_mode_supported_p): Ditto.
3584
3585         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class):
3586         Change some of the functions called by macros to being called
3587         through a pointer, so debug functions can be inserted if
3588         -mdebug=addr or -mdebug=cost. 
3589         (rs6000_preferred_reload_class_ptr): Ditto.
3590         (rs6000_secondary_reload_class_ptr): Ditto.
3591         (rs6000_secondary_memory_needed_ptr): Ditto.
3592         (rs6000_cannot_change_mode_class_ptr): Ditto.
3593         (rs6000_secondary_reload_inner): Ditto.
3594         (rs6000_legitimize_reload_address): Ditto.
3595         (rs6000_legitimize_reload_address_ptr): Ditto.
3596         (rs6000_mode_dependent_address): Ditto.
3597         (rs6000_mode_dependent_address_ptr): Ditto.
3598
3599         * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New
3600         function to return true if the mode allows reg + integer
3601         addresses.
3602         (virtual_stack_registers_memory_p): New function to return true if
3603         the address refers to a virtual stack register.
3604         (rs6000_legitimate_offset_address_p): Move code to say whether a
3605         mode supports reg+int addressing to reg_offset_addressing_ok_p and
3606         call it.
3607         (rs6000_legitimate_address_p): Add checks for modes that only can
3608         do reg+reg addressing.  Start adding VSX support.
3609         (rs6000_legitimize_reload_address): Ditto.
3610         (rs6000_legitimize_address): Ditto.
3611         (rs6000_debug_legitimate_address_p): New debug functions for
3612         -mdebug=addr and -mdebug=cost.
3613         (rs6000_debug_rtx_costs): Ditto.
3614         (rs6000_debug_address_costs): Ditto.
3615         (rs6000_debug_adjust_cost): Ditto.
3616         (rs6000_debug_legitimize_address): Ditto.
3617         (rs6000_legitimize_reload_address_ptr): Point to call normal
3618         function or debug function.  Make functions called via pointer
3619         static.
3620         (rs6000_mode_dependent_address_ptr): Ditto.
3621         (rs6000_secondary_reload_class_ptr): Ditto.
3622         (rs6000_hard_regno_mode_ok): Add preliminary VSX support.
3623         (rs6000_emit_move): Add -mdebug=addr support.  Change an abort
3624         into a friendlier error.
3625         (rs6000_init_builtins): Add initial VSX support.
3626         (rs6000_adjust_cost): Fix some spacing issues.
3627
3628         * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS.
3629         (REG_CLASS_NAMES): Ditto.
3630         (REG_CLASS_CONTENTS): Ditto.
3631         (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a
3632         pointer, to add -mdebug=addr support.
3633         (CANNOT_CHANGE_MODE_CLASS): Ditto.
3634         (SECONDARY_RELOAD_CLASS): Call through a pointer to add
3635         -mdebug=addr support.
3636         (LEGITIMIZE_RELOAD_ADDRESS): Ditto.
3637         (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto.
3638         (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI.
3639
3640         * config/rs6000/rs6000.md (bswaphi*): Add support for swapping
3641         16-bit values.
3642         (bswapsi*): Set attribute types for load/store.  Add combiner
3643         patterns to eliminate zero extend on 64-bit.
3644         (bswapdi*): Add support for swapping 64-bit values.  Use ldbrx and
3645         stdbrx if the hardware supports those instructions.
3646
3647 2009-06-25  Ian Lance Taylor  <iant@google.com>
3648
3649         * doc/invoke.texi (Option Summary): Mention -static-libstdc++.
3650         (Link Options): Document -static-libstdc++.
3651
3652 2009-06-25  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3653
3654         PR target/38731
3655         * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use
3656         DATA_ALIGNMENT instead.
3657
3658 2009-06-25  Richard Guenther  <rguenther@suse.de>
3659
3660         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate
3661         indirect references against the callused/escaped solutions.
3662         (call_may_clobber_ref_p_1): Likewise.
3663
3664 2009-06-25  Martin Jambor  <mjambor@suse.cz>
3665
3666         PR tree-optimization/40493
3667         * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers.
3668         (enum unscalarized_data_handling): New type.
3669         (handle_unscalarized_data_in_subtree): Return what has been done.
3670         (load_assign_lhs_subreplacements): Handle left flushes differently.
3671         (sra_modify_assign): Use unscalarized_data_handling, simplified
3672         condition determining whether to remove the statement.
3673
3674 2009-06-25  Basile Starynkevitch  <basile@starynkevitch.net>
3675
3676         * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile
3677         excerpt - @ should be doubled for texinfo.
3678
3679 2009-06-24  Ian Lance Taylor  <iant@google.com>
3680
3681         * config/arc/arc.c: Include "df.h".
3682         (arc_attribute_table): Make static.  Move higher in file.
3683         (arc_address_cost): Call SMALL_INT on INTVAL, not rtx.
3684         (output_shift): Initialize n later to avoid warning.
3685         * config/arm/arm.c (arm_attribute_table): Make static.  Move
3686         higher in file.
3687         * config/avr/avr.c (avr_attribute_table): Make static.  Move
3688         higher in file.
3689         (reg_class_tab): Change array type from int to enum reg_class.
3690         (avr_jump_mode): Change GET_MODE to GET_CODE when checking for
3691         LABEL_REF.
3692         (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and".
3693         (lshrhi3_out): Likewise.
3694         (class_likely_spilled_p): Change return type to bool.
3695         (avr_rtx_costs): Use local code variable with enum type.
3696         * config/avr/avr.md (movmemhi): Use add_reg_note.
3697         (andhi3, andsi3): Don't use AS2 with "and".
3698         (iorhi3, iorsi3): Don't use AS2 with "or".
3699         * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration.
3700         * config/crx/crx.c: Include "df.h".
3701         (crx_attribute_table): Make static.
3702         * config/m32r/m32r.c: Include "df.h".
3703         (m32r_attribute_table): Make static.  Move higher in file.
3704         (pop): Use add_reg_note.
3705         (block_move_call): Change 0 to LCT_NORMAL in function call.
3706         * config/m32r/m32r.md (movsi_insn): Remove unused local value.
3707         * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise.
3708         * config/m32r/m32r-protos.h (m32r_compute_function_type): Always
3709         declare, not just when TREE_CODE is defined.
3710         * config/m68hc11/m68hc11.c: Include "expr.h".
3711         (m68hc11_attribute_table): Make static.  Move higher in file.
3712         (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in
3713         function call.
3714         (m68hc11_register_indirect_p): Likewise.
3715         (m68hc11_function_arg_padding): Change return type to enum
3716         direction.
3717         (emit_move_after_reload): Use add_reg_note.
3718         (m68hc11_emit_logical): Change code parameter to enum rtx_code.
3719         (m68hc11_split_logical): Likewise.
3720         (m68hc11_rtx_costs): Add local code_and outer_code variables with
3721         enum type.
3722         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0
3723         to VOIDmode in function call.
3724         * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if
3725         tree is defined.
3726         (m68hc11_split_logical): Update declaration.
3727         (m68hc11_function_arg_padding): Update declaration.
3728         * config/mcore/mcore.c (regno_reg_class): Change form array of int
3729         to array of enum reg_class.
3730         (mcore_attribute_table): Make static.  Move higher in file.
3731         (mcore_rtx_costs): Add cast to enum type.
3732         * config/mcore/mcore.h (regno_reg_class): Update declaration.
3733         (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning.
3734         * config/sh/sh.c (sh_attribute_table): Make static.  Move higher
3735         in file.
3736         * config/sh/predicates.md (trapping_target_operand): Rename and to
3737         and_expr.
3738         * config/sparc/sparc.c (sparc_attribute_table): Make static.  Move
3739         higher in file.
3740         * config/spu/spu.c (spu_attribute_table): Make static.  Move
3741         higher in file.
3742         * config/v850/v850.c (v850_attribute_table): Make static.  Move
3743         higher in file.
3744         (v850_rtx_costs): Use local code with enum type.
3745         (expand_epilogue): Add cast.
3746         * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat.
3747
3748 2009-06-23  Takashi YOSHII  <yoshii.takashi@renesas.com>
3749
3750         PR target/40515
3751         * doc/invoke.texi (SH Options): Document -m2a, -m2a-single,
3752         -m2a-single-only and -m2a-nofpu.
3753         * config/sh/sh.opt: Document m2a generates FPU code.  
3754
3755 2009-06-24  Anatoly Sokolov  <aesok@post.ru>
3756
3757         * defaults.h (CAN_ELIMINATE): Provide default.
3758         * doc/tm.texi (CAN_ELIMINATE): Revise documentation.
3759         * config/alpha/alpha.h (CAN_ELIMINATE): Delete.
3760         * config/m32c/m32c.h (CAN_ELIMINATE): Delete.
3761         * config/spu/spu.h (CAN_ELIMINATE): Delete.
3762         * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete.
3763         * config/moxie/moxie.h (CAN_ELIMINATE): Delete.
3764         * config/cris/cris.h (CAN_ELIMINATE): Delete.
3765         * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete.
3766         * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete.
3767         * config/mmix/mmix.h (CAN_ELIMINATE): Delete.
3768
3769 2009-06-24  DJ Delorie  <dj@redhat.com>
3770
3771         * mep-ext-cop.cpu: Fix copyright notice.
3772         * mep-default: Fix copyright notice.
3773         * mep-core: Fix copyright notice.
3774         * mep: Fix copyright notice.
3775         * mep-ivc2: Fix copyright notice.
3776         * mep-c5: Fix copyright notice.
3777
3778 2009-06-24  Denis Chertykov  <chertykov@gmail.com>
3779
3780         * doc/contrib.texi (Contributors): 
3781
3782 2009-06-24  Andreas Krebbel  <krebbel1@de.ibm.com>
3783         
3784         PR middle-end/40501
3785         * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap
3786         src and dst operands if necessary.
3787
3788 2009-06-23  DJ Delorie  <dj@redhat.com>
3789
3790         Add MeP port.
3791         * config.gcc: Add mep support.
3792         * recog.c: Resurrect validate_replace_rtx_subexp().
3793         * recog.h: Likewise.
3794         * config/mep/: Add new port:
3795         * config/mep/constraints.md: New file.
3796         * config/mep/default.h: New file.
3797         * config/mep/intrinsics.h: New file.
3798         * config/mep/intrinsics.md: New file.
3799         * config/mep/ivc2-template.h: New file.
3800         * config/mep/mep-c5.cpu: New file.
3801         * config/mep/mep-core.cpu: New file.
3802         * config/mep/mep-default.cpu: New file.
3803         * config/mep/mep-ext-cop.cpu: New file.
3804         * config/mep/mep-intrin.h: New file.
3805         * config/mep/mep-ivc2.cpu: New file.
3806         * config/mep/mep-lib1.asm: New file.
3807         * config/mep/mep-lib2.c: New file.
3808         * config/mep/mep-pragma.c: New file.
3809         * config/mep/mep-protos.h: New file.
3810         * config/mep/mep-tramp.c: New file.
3811         * config/mep/mep.c: New file.
3812         * config/mep/mep.cpu: New file.
3813         * config/mep/mep.h: New file.
3814         * config/mep/mep.md: New file.
3815         * config/mep/mep.opt: New file.
3816         * config/mep/predicates.md: New file.
3817         * config/mep/t-mep: New file.
3818
3819 2009-06-23  Ian Lance Taylor  <iant@google.com>
3820
3821         * configure.ac: Invoke AC_PROG_CXX.  Separate C specific warnings
3822         from loose_warn into c_loose_warn and from strict_warn into
3823         c_strict_warn.  Set and substitute warn_cxxflags.  Check for
3824         --enable-build-with-cxx.  Set and substitute
3825         ENABLE_BUILD_WITH_CXX.  Set and substitute HOST_LIBS.
3826         * Makefile.in (CXXFLAGS): New variable.
3827         (C_LOOSE_WARN, C_STRICT_WARN): New variables.
3828         (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN).  Add $(C_STRICT_WARN) if
3829         the default is the same as $(STRICT_WARN).
3830         (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
3831         (CXX): New variable.
3832         (COMPILER): New value if ENABLE_BUILD_WITH_CXX.
3833         (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
3834         (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
3835         (HOST_LIBS): New variable.
3836         (GCC_CFLAGS): Add $(C_LOOSE_WARN).
3837         (ALL_CXXFLAGS): New variable.
3838         (LIBS, BACKENDLIBS): Add $(HOST_LIBS).
3839         * doc/install.texi (Configuration): Document
3840         --enable-build-with-cxx, --with-stage1-ldflags,
3841         --with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
3842         * configure: Rebuild.
3843
3844 2009-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3845
3846         * config/arm/arm.c (arm_override_options): Fix braces and formatting
3847         from previous commit.
3848
3849 2009-06-23  Ian Lance Taylor  <iant@google.com>
3850
3851         * Makefile.in ($(out_object_file)): Depend upon $(DF_H).
3852
3853 2009-06-23  Ian Lance Taylor  <iant@google.com>
3854
3855         * reload.c (alternative_allows_const_pool_ref): Mark mem parameter
3856         with ATTRIBUTE_UNUSED.
3857
3858 2009-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3859             Pat Haugen  <pthaugen@us.ibm.com>
3860             Revital Eres  <eres@il.ibm.com>
3861
3862         * config.in (HAVE_AS_POPCNTD): Add default definition.
3863         (HAVE_AS_LWSYNC): Ditto.
3864
3865         * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils
3866         release number.
3867         (gcc_cv_as_powerpc_cmpb): Ditto.
3868         (gcc_cv_as_powerpc_dfp): Ditto.
3869         (gcc_cv_as_powerpc_vsx): Ditto.
3870         (gcc_cv_as_powerpc_popcntd): Add feature test for assembler
3871         supporting the popcntd/lwsync instructions.
3872         (gcc_cv_as_powerpc_lwsync): Ditto.
3873         * configure: Regenerate.
3874
3875         * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for
3876         -mcpu=native and -mcpu=power7.
3877         * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto.
3878
3879         * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be
3880         a variable instead of a mask to reduce the number of mask bits.
3881         * config/rs6000/sysv4.opt (-mbit-align): Ditto.
3882         (-mbit-word): Ditto.
3883         (-mregnames): Ditto.
3884         * config/rs6000/rs6000.opt (-mupdate): Ditto.
3885         (-mfused-madd): Ditto.
3886
3887         * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA
3888         2.06 instructions.
3889         (-mvsx): New switch for VSX instructions.
3890         (-misel): Move from a variable to a mask to allow it to be set by
3891         -mcpu=.
3892
3893         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change
3894         function declaration to an array declaration.
3895         (rs6000_hard_regno_nregs): New external array declaration.
3896
3897         * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md
3898         files included by rs6000.md.
3899
3900         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
3901         SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch.
3902
3903         * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be
3904         a target mask.
3905         (rs6000_debug_reg): New -mdebug= variables.
3906         (rs6000_debug_addr): Ditto.
3907         (rs6000_debug_cost): Ditto.
3908         (rs6000_pmode): New variable to hold Pmode.
3909         (rs6000_pointer_size): New variable to hold POINTER_SIZE.
3910         (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS
3911         calculated at compiler start.
3912         (rs6000_hard_regno_nregs): Change function to an array which holds
3913         HARD_REGNO_NREGS calculated at compiler start.
3914         (rs6000_explicit_options): Delete isel field.
3915         (rs6000_vector_unit): New array to hold which vector unit
3916         supports arithmetic options for a given type.
3917         (rs6000_vector_mem): New array to hold which vector unit supports
3918         memory reference operations for a given type.
3919         (rs6000_vector_align): New array to given the alignment of each
3920         vector type.
3921         (power7_cost): New basic costs for power7.
3922         (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel.
3923         (rs6000_hard_regno_nregs_internal): New function, moved from
3924         HARD_REGNO_NREGS, to calculate the number of registers each hard
3925         register takes for each type.
3926         (rs6000_debug_reg_print): New function for -mdebug=reg support.
3927         (rs6000_debug_vector_unit): New array, map rs6000_vector to string.
3928         (+rs6000_init_hard_regno_mode_ok): New function, move calculation
3929         of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector
3930         unit information here so it is calculated once at compiler startup
3931         time.
3932         (rs6000_override_options): Make -misel a target mask.  Add more
3933         power7 target masks.  Setup Pmode and POINTER_SIZE.  Add initial
3934         VSX support.  Add support for -mdebug=reg, -mdebug=addr, and
3935         -mdebug=cost.
3936         (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL.
3937         (rs6000_handle_option): Move -misel from variable to target mask.
3938         (rs6000_builtin_mask_for_load): Add VSX support.
3939         (rs6000_conditional_register_usage): Ditto.
3940         (USE_ALTIVEC_FOR_ARG_P): Ditto.
3941         (function_arg_boundary): Ditto.
3942         (rs6000_expand_builtin): Ditto.
3943         (def_builtin): Make abort message a little friendlier.
3944         (rs6000_emit_int_cmove): Add support for 64-bit isel.
3945
3946         * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the
3947         assembler support the popcntd instruction instead of a vsx
3948         instruction to enable power7 support.
3949         (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7.
3950         (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right
3951         option to the assembler if -mcpu=native.
3952         (ASM_CPU_NATIVE_SPEC): Ditto.
3953         (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off
3954         ISA 2.06 features.
3955         (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue
3956         the lwsync instruction.
3957         (enum processor_type): Add PROCESSOR_POWER7.
3958         (rs6000_debug_reg): New -mdebug= options.
3959         (rs6000_debug_addr): Ditto.
3960         (rs6000_debug_cost): Ditto.
3961         (rs6000_isel): Delete.
3962         (enum rs6000_vector): New enum to say what vector unit we have.
3963         (VECTOR_UNIT_*): New macros to say which vector unit has
3964         arithmetic operations for a given type.
3965         (VECTOR_MEM_*): New macros to say which vector unit has memory
3966         operations for a given type.
3967         (TARGET_LDBRX): Whether the machine supports the ldbrx
3968         instruction.
3969         (TARGET_ISEL): Delete, -misel moved to be a mask.
3970         (TARGET_ISEL64): New macro for 64-bit isel support.
3971         (UNITS_PER_VSX_WORD): New macro.
3972         (POINTER_SIZE): Move to be an external variable, rather than
3973         calculating whether we are generating 32 ot 64-bit code.
3974         (Pmode): Ditto.
3975         (STACK_BOUNDARY): Add VSX support.
3976         (LOCAL_ALIGNMENT): Ditto.
3977         (SLOW_UNALIGNED_ACCESS): Ditto.
3978         (VSX_REGNO_P): New macro for VSX support.
3979         (VFLOAT_REGNO_P): Ditto.
3980         (VINT_REGNO_P): Ditto.
3981         (VLOGICAL_REGNO_P): Ditto.
3982         (VSX_VECTOR_MODE): Ditto.
3983         (VSX_SCALAR_MODE): Ditto.
3984         (VSX_MODE): Ditto.
3985         (VSX_MOVE_MODE): Ditto.
3986         (VSX_REG_CLASS_P): Ditto.
3987         (HARD_REGNO_NREGS): Instead of calling a function, use an array
3988         lookup.
3989         (UNITS_PER_SIMD_WORD): Add VSX support.
3990         (MODES_TIEABLE_P): Ditto.
3991         (STARTING_FRAME_OFFSET): Ditto.
3992         (STACK_DYNAMIC_OFFSET): Ditto.
3993         (EPILOGUE_USES): Ditto.
3994         (REGNO_REG_CLASS): Move to array lookup.
3995         (CLASS_MAX_NREGS): Ditto.
3996         (rs6000_vector_reg_class): Add declaration.
3997         (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that
3998         overlap with the floating point and Altivec registers.
3999
4000         * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx.
4001
4002         * config/rs6000/driver-rs6000.c (asm_names): New static array to
4003         give the appropriate asm switches if -mcpu=native.
4004         (host_detect_local_cpu): Add support for "asm".
4005         (host_detect_local_cpu): Follow GNU code guidelines for name.
4006
4007         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move
4008         -mbit-word to a variable instead of being a target mask.
4009
4010         * config/rs6000/sync.md (lwsync): If the assembler supports it,
4011         emit the lwsync instruction instead of emitting the instruction as
4012         an integer constant.
4013
4014         * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from
4015         fixuns_trundfsi2, move expander into rs6000.md.
4016
4017         * config/rs6000/rs6000.md (cpu): Add power7.
4018         (sel, *ptrsize): New mode attributes for 32/64-bit isel.
4019         (logical predicate patterns): Change the single instruction
4020         primitives that set CR0 to be fast_compare instead of compare.
4021         (norsi*): Ditto.
4022         (popcntwsi2): Add support for ISA 2.06 popcount instructions.
4023         (popcntddi2): Ditto.
4024         (popcount<mode>): Ditto.
4025         (floating multiply/add insns): Name the floating point
4026         multiply/add insns.
4027         (isel_signed_<mode>): Add support for -misel on 64-bit systems.
4028         (isel_unsigned_<mode>): Ditto.
4029         (fixuns_trundfsi2): Move expander here from spe.md.
4030         (smindi3): Define if we have -misel on 64-bit systems.
4031         (smaxdi3): Ditto.
4032         (umindi3): Ditto.
4033         (umaxdi3): Ditto.
4034
4035 2009-06-23  Anatoly Sokolov  <aesok@post.ru>
4036
4037         * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and
4038         extra_objs.
4039         * config/avr/avr.c (avr_current_device): New variable.
4040         (avr_arch_types, avr_mcu_types): Move to avr-deveces.c.
4041         (avr_arch, mcu_type_s): Move to avr.h.
4042         * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and
4043         default_data_section_start fields.
4044         (avr_arch): Moved from avr.c.
4045         (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and
4046         library_name fields.
4047         (avr_current_device, avr_mcu_types, avr_arch_types,
4048         avr_device_to_arch, avr_device_to_data_start,
4049         avr_device_to_startfiles, avr_device_to_devicelib): Declare.
4050         (EXTRA_SPEC_FUNCTIONS): Define.
4051         (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker
4052         options mapping. Use device_to_arch and device_to_data_start insted.
4053         (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils.
4054         (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove.
4055         * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules.
4056         * config/avr/driver-avr.c: New file.
4057         * config/avr/avr-devices.c: New file.
4058
4059 2009-06-23  Jakub Jelinek  <jakub@redhat.com>
4060
4061         * var-tracking.c (unshare_variable): Force initialized to
4062         be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
4063         (set_variable_part): Likewise.
4064         (struct variable_union_info): Remove pos_src field.
4065         (vui_vec, vui_allocated): New variables.
4066         (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
4067         unconditionally.  Avoid XCVECNEW/free for every sorting, for dst_l
4068         == 1 use a simpler sorting algorithm.  Compute pos field right
4069         away, don't fill in pos_src.  For dst_l == 2 avoid qsort.
4070         Avoid quadratic comparison if !flag_var_tracking_uninit.
4071         (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
4072         unshare_variable unconditionally.   
4073         (dataflow_set_different_2): Removed.
4074         (dataflow_set_different): Don't traverse second hash table.
4075         (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
4076         unconditionally to var_reg_set or var_mem_set.
4077         (emit_notes_in_bb): Likewise.
4078         (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
4079         unshare_variable.
4080         (emit_note_insn_var_location): Don't set initialized to
4081         VAR_INIT_STATUS_INITIALIZED early.
4082         (vt_finalize): Free vui_vec if needed, clear vui_vec and
4083         vui_allocated.
4084         * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.
4085
4086         * tree-object-size.c (addr_object_size): Instead of checking
4087         for non-NULL TREE_CHAIN of the FIELD_DECL check that there
4088         are no FIELD_DECLs following it.
4089
4090 2009-06-23  Andreas Krebbel  <krebbel1@de.ibm.com>
4091
4092         * tree-ssa-math-opts.c (find_bswap): Increase the search depth in
4093         order to match bswaps with signed source operands.
4094
4095 2009-06-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4096
4097         * sdbout.c (sdbout_one_type): Fix braces in switch.
4098
4099 2009-06-23  Richard Guenther  <rguenther@suse.de>
4100
4101         * tree-ssa-structalias.c (struct variable_info): Add is_global_var
4102         member.
4103         (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly,
4104         readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree,
4105         var_callused, callused_tree, var_storedanything, storedanything_tree,
4106         var_integer, integer_tree): Remove global variables.
4107         (new_var_info): Do not pass new id, append the new var to the
4108         global variable vector.
4109         (do_ds_constraint): Use is_global_var member of the variable-info.
4110         (new_scalar_tmp_constraint_exp): Adjust.
4111         (create_function_info_for): Likewise.
4112         (create_variable_info_for): Likewise.
4113         (find_what_var_points_to): Remove dead code.
4114         (init_base_vars): Simplify.
4115         (compute_points_to_sets): Adjust.
4116
4117 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
4118
4119         * combine.c (try_combine): Dump information about the insns we're
4120         combining.
4121
4122 2009-06-22  Adam Nemet  <anemet@caviumnetworks.com>
4123
4124         * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION
4125         check when calling force_to_mode on TRUNCATE's operand.
4126
4127 2009-06-22  Ian Lance Taylor  <iant@google.com>
4128
4129         * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog.
4130
4131 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
4132
4133         * config/arm/arm.md (prologue_use): Set length of fake insn to 0.
4134
4135 2009-06-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4136
4137         * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib
4138         override library linkage flags such as -static-libgcc or
4139         -shared-libgcc.
4140
4141 2009-06-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
4142
4143         * config/m68k/m68k-devices.def: Add line for MCF5221x.
4144
4145 2009-06-22  Ian Lance Taylor  <iant@google.com>
4146
4147         * config/linux.opt: Put mglibc ahead of muclibc.
4148
4149         * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning
4150         for duplicate decls.
4151
4152 2009-06-22  Matthias Klose  <doko@ubuntu.com>
4153
4154         * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR).
4155
4156 2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
4157
4158         PR objc/28050
4159         * c-parser.c (c_parser_objc_message_args): Return error_mark_node
4160         instead of NULL if a parser error occurs.
4161
4162 2009-06-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4163
4164         * dwarf2out.c (dwarf2_debug_hooks): Initialize
4165         non-DWARF2_DEBUGGING_INFO version.
4166
4167 2009-06-22  Kai Tietz  <kai.tietz@onevision.com>
4168
4169         * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add
4170         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
4171
4172         * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define.
4173         (LIBGCC2_TF_CEXT): Define.
4174         (TF_SIZE): Define.
4175
4176 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4177
4178         PR target/40463
4179         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
4180
4181 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4182
4183         * config/arm/arm.c (arm_override_options): Disable
4184         -mcaller-super-interworking and -mcallee-super-interworking.
4185         * doc/invoke.texi (ARM Options): Document this.
4186
4187 2009-06-22  Nathan Sidwell  <nathan@codesourcery.com>
4188
4189         * config/arm/arm.c (arm_print_operand): Deal with HIGH.
4190         * config/arm/constraints.md (j): New constraint for movw operands.
4191         (N): Remove thumb2 meaning.
4192         * config/arm/arm.md (*arm_movw): Delete.
4193         (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
4194         * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
4195         * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
4196
4197 2009-06-22  Martin Jambor  <mjambor@suse.cz>
4198
4199         PR tree-optimization/40492
4200         * tree-sra.c (sra_modify_assign): Pass zero offsets to
4201         build_ref_for_offset.
4202
4203 2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>
4204
4205         * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
4206         JUMP_TABLE_DATA_P predicates where applicable.
4207         * auto-inc-dec.c: Ditto.
4208         * builtins.c: Ditto.
4209         * caller-save.c: Ditto.
4210         * calls.c: Ditto.
4211         * cfgcleanup.c: Ditto.
4212         * cfglayout.c: Ditto.
4213         * cfgrtl.c: Ditto.
4214         * combine.c: Ditto.
4215         * combine-stack-adj.c: Ditto.
4216         * cse.c: Ditto.
4217         * cselib.c: Ditto.
4218         * dbxout.c: Ditto.
4219         * df-scan.c: Ditto.
4220         * dse.c: Ditto.
4221         * dwarf2asm.c: Ditto.
4222         * dwarf2out.c: Ditto.
4223         * emit-rtl.c: Ditto.
4224         * except.c: Ditto.
4225         * explow.c: Ditto.
4226         * expmed.c: Ditto.
4227         * expr.c: Ditto.
4228         * final.c: Ditto.
4229         * function.c: Ditto.
4230         * fwprop.c: Ditto.
4231         * gcse.c: Ditto.
4232         * genpreds.c: Ditto.
4233         * genrecog.c: Ditto.
4234         * ifcvt.c: Ditto.
4235         * ira-costs.c: Ditto.
4236         * ira-lives.c: Ditto.
4237         * jump.c: Ditto.
4238         * loop-iv.c: Ditto.
4239         * lower-subreg.c: Ditto.
4240         * modulo-sched.c: Ditto.
4241         * optabs.c: Ditto.
4242         * postreload.c: Ditto.
4243         * print-rtl.c: Ditto.
4244         * recog.c: Ditto.
4245         * reginfo.c: Ditto.
4246         * regmove.c: Ditto.
4247         * reload1.c: Ditto.
4248         * reload.c: Ditto.
4249         * reorg.c: Ditto.
4250         * rtlanal.c: Ditto.
4251         * rtl.c: Ditto.
4252         * sched-vis.c: Ditto.
4253         * sdbout.c: Ditto.
4254         * sel-sched-ir.c: Ditto.
4255         * simplify-rtx.c: Ditto.
4256         * targhooks.c: Ditto.
4257         * var-tracking.c: Ditto.
4258         * vmsdbgout.c: Ditto.
4259
4260 2009-06-22  Matthias Klose  <doko@ubuntu.com>
4261
4262         * Makefile.in (install-plugin): Always use DESTDIR.
4263
4264 2009-06-22  Olivier Hainque  <hainque@adacore.com>
4265         
4266         * config/pa/pa.c (output_call): Don't optimize post call jumps
4267         into return address adjustments if the call may throw.
4268
4269 2009-06-21  Richard Earnshaw  <rearnsha@arm.com>
4270
4271         * arm.c (thumb1_output_casesi): New function.
4272         * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
4273         optimizing for size or PIC.
4274         (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
4275         * arm.md (UNSPEC_THUMB1_CASESI): New constant.
4276         (casesi): Handle Thumb-1 when optimizing for size or PIC.
4277         (thumb1_casesi_internal_pic): New expand rule.
4278         (thumb1_casesi_dispatch): New pattern.
4279         * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
4280         thumb-1 mode.
4281         * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
4282         in the text seciton when PIC or optimizing for size.
4283         * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
4284         * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
4285         preservation properties of code.
4286         (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
4287         (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
4288         (__gnu_thumb1_case_si): New function.
4289         * t-arm (LIB1ASMSRC): Define here.
4290         (LIB1ASMFUNCS): Add some common functions.
4291         * t-arm-elf (LIB1ASMSRC): Delete.
4292         (LIB1ASMFUNCS): Append to existing set.
4293         * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
4294         * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
4295         * t-symbian (LIB1ASMFUNCS): Likewise.
4296         * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
4297         * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
4298
4299 2009-06-21  Richard Guenther  <rguenther@suse.de>
4300
4301         PR tree-optimization/38729
4302         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
4303         to loops with a single exit if -fno-expensive-optimizations.
4304
4305 2009-06-21  Jakub Jelinek  <jakub@redhat.com>
4306
4307         * var-tracking.c (struct shared_hash_def, shared_hash): New types.
4308         (dataflow_set): Change vars type from htab_t to shared_hash.
4309         (shared_hash_pool, empty_shared_hash): New variables.
4310         (vars_clear): Removed.
4311         (shared_hash_shared, shared_hash_htab, shared_hash_copy,
4312         shared_hash_find_slot_unshare, shared_hash_find_slot,
4313         shared_hash_find_slot_noinsert, shared_hash_find): New
4314         static inlines.
4315         (shared_hash_unshare, shared_hash_destroy): New functions.
4316         (unshare_variable): Unshare set->vars if shared, use
4317         shared_hash_htab.
4318         (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
4319         (get_init_value, find_src_set_src, dump_dataflow_set,
4320         clobber_variable_part, emit_notes_for_differences): Use
4321         shared_hash_htab.
4322         (dataflow_set_init): Remove second argument, set vars to
4323         empty_shared_hash instead of creating a new htab.
4324         (dataflow_set_clear): Call shared_hash_destroy and set vars
4325         to empty_shared_hash instead of calling vars_clear.
4326         (dataflow_set_copy): Don't call vars_copy, instead just share
4327         the src htab with dst.
4328         (variable_union): Use shared_hash_*, use initially NO_INSERT
4329         lookup if set->vars is shared.  Don't keep slot cleared before
4330         calling unshare_variable.  Unshare set->vars if needed.
4331         Even ->refcount == 1 vars must be unshared if set->vars is shared
4332         and var needs to be modified.
4333         (variable_canonicalize): New function.
4334         (dataflow_set_union): If dst->vars is empty, just share src->vars
4335         with dst->vars and traverse with variable_canonicalize to canonicalize
4336         and unshare what is needed.
4337         (dataflow_set_different): If old_set and new_set use the same shared
4338         htab, they aren't different.  If number of htab elements is different,
4339         htabs are different.  Use shared_hash_*.
4340         (dataflow_set_destroy): Call shared_hash_destroy instead of
4341         htab_delete.
4342         (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
4343         second argument to dataflow_set_init.
4344         (vt_initialize): Likewise.  Initialize shared_hash_pool and
4345         empty_shared_hash, move bb in/out initialization afterwards.
4346         Use variable_htab_free instead of NULL as changed_variables del hook.
4347         (variable_was_changed): Change type of second argument to pointer to
4348         dataflow_set.  When inserting var into changed_variables, bump
4349         refcount.  Unshare set->vars if set is shared htab and slot needs to
4350         be cleared.
4351         (set_variable_part): Use shared_hash_*, use initially NO_INSERT
4352         lookup if set->vars is shared.  Unshare set->vars if needed.
4353         Even ->refcount == 1 vars must be unshared if set->vars is shared
4354         and var needs to be modified.  Adjust variable_was_changed caller.
4355         (delete_variable_part): Use shared_hash_*.  Even ->refcount == 1
4356         vars must be unshared if set->vars is shared and var needs to be
4357         modified.  Adjust variable_was_changed caller.
4358         (emit_note_insn_var_location): Don't pool_free var.
4359         (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
4360         instead of 1.
4361         (vt_finalize): Call htab_delete on empty_shared_hash->htab and
4362         free_alloc_pool on shared_hash_pool.
4363
4364 2009-06-20  Anthony Green  <green@moxielogic.com>
4365
4366         * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
4367         * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
4368
4369 2009-06-20  Richard Guenther  <rguenther@suse.de>
4370
4371         * tree-ssa-structalias.c (find_func_aliases): For memset use
4372         a constraint from NULL if we memset to zero.
4373         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
4374         we explicitly handle that do not read from memory.
4375         (call_may_clobber_ref_p_1): Properly handle builtins that may
4376         set errno.
4377
4378 2009-06-20  Richard Guenther  <rguenther@suse.de>
4379
4380         PR tree-optimization/40495
4381         * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
4382         (new_scalar_tmp_constraint_exp): New function.
4383         (process_constraint): Do not create temporary decls.
4384         (process_all_all_constraints): Likewise.
4385         (handle_const_call): Likewise.
4386         (create_function_info_for): Do not set decl.
4387
4388 2009-06-19  Ian Lance Taylor  <iant@google.com>
4389
4390         * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
4391         (rs6000_attribute_table): Make static; move before use.
4392
4393 2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>
4394
4395         * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
4396         <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
4397         Propagate the TREE_READONLY flag without overwriting it.
4398         (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
4399         Propagate the TREE_READONLY flag onto the result.
4400         (process_call_operands): Move around.  Use correct constant value.
4401
4402 2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4403
4404         PR target/40482
4405         * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits.
4406         * config/arm/arm.md: Likewise.
4407
4408 2009-06-19  Ian Lance Taylor  <iant@google.com>
4409
4410         * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
4411         to GIMPLE_ERROR_MARK.
4412
4413         * c-typeck.c (build_conditional_expr): Add op1_original_type and
4414         op2_original_type parameters.  Warn about using different enum types.
4415         * c-parser.c (c_parser_conditional_expression): Pass original
4416         types to build_conditional_expr.
4417         * c-tree.h (build_conditional_expr): Update declaration.
4418
4419 2009-06-19  Ian Lance Taylor  <iant@google.com>
4420
4421         * config/i386/i386.c (ix86_function_specific_save): Test that
4422         fields match values, rather than testing the values are in a
4423         certain range.
4424
4425 2009-06-19  Richard Guenther  <rguenther@suse.de>
4426
4427         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
4428         ADDR_EXPR pointers.
4429         (ptr_derefs_may_alias_p): Likewise.
4430         (ptr_deref_may_alias_ref_p_1): New function.
4431         (ptr_deref_may_alias_ref_p): Likewise.
4432         (ref_maybe_used_by_call_p_1): Handle builtins that are not
4433         covered by looking at the ESCAPED solution.
4434         (call_may_clobber_ref_p_1): Likewise.
4435         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
4436         Handle NULL_TREE offset.  Do not produce redundant constraints.
4437         (process_all_all_constraints): New helper function.
4438         (do_structure_copy): Use it.
4439         (handle_lhs_call): Likewise.
4440         (find_func_aliases): Handle some builtins with pointer arguments
4441         and/or return values explicitly.
4442
4443 2009-06-19  Ian Lance Taylor  <iant@google.com>
4444
4445         * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
4446
4447 2009-06-19  Ian Lance Taylor  <iant@google.com>
4448
4449         * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
4450
4451 2009-06-19  Ian Lance Taylor  <iant@google.com>
4452
4453         * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
4454         * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
4455         version.
4456
4457         * c-decl.c (finish_decl): If -Wc++-compat, warn about
4458         uninitialized const.
4459
4460 2009-06-19  Ian Lance Taylor  <iant@google.com>
4461
4462         * dse.c (struct store_info): Rename bitmap field to bmap.  Change
4463         all uses.
4464
4465         * c-decl.c (in_struct, struct_types): Remove.
4466         (struct c_binding): Add in_struct field.
4467         (c_binding_ptr): Define type, along with VEC.
4468         (struct c_struct_parse_info): Define.
4469         (struct_parse_info): New static variable.
4470         (bind): Initialize in_struct field.
4471         (start_struct): Remove enclosing_in_struct and
4472         enclosing_struct_types parameters.  Add
4473         enclosing_struct_parse_info parameter.  Change all callers.  Set
4474         struct_parse_info rather than in_struct and struct_types.
4475         (grokfield): If -Wc++-compat and there is a symbol binding for the
4476         field name, set the in_struct flag and push it on the
4477         struct_parse_info->fields vector.
4478         (warn_cxx_compat_finish_struct): New static function.
4479         (finish_struct): Remove enclosing_in_struct and
4480         enclosing_struct_types parameters.  Add
4481         enclosing_struct_parse_info parameter.  Change all callers.  Don't
4482         set C_TYPE_DEFINED_IN_STRUCT here.  Call
4483         warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
4484         parameter.  Only push on struct_types if warn_cxx_compat.
4485         (finish_enum): Only push on struct_types if warn_cxx_compat.
4486         (declspecs_add_type): Add loc parameter.  Change all callers.
4487         Change all error calls to error_at.  Pass loc, not input_location,
4488         to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
4489         defined in a struct.  If -Wc++-compat and parsing a struct, record
4490         that a typedef name was used.
4491         * c-parser.c (c_parser_declspecs): Get location to pass to
4492         declspecs_add_type.
4493         (c_parser_struct_or_union_specifier): Update calls to start_struct
4494         and finish_struct.
4495         * c-tree.h (struct c_struct_parse_info): Declare.
4496         (finish_struct, start_struct): Update declarations.
4497         (declspecs_add_type): Update declaration.
4498
4499 2009-06-19  Ian Lance Taylor  <iant@google.com>
4500
4501         * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
4502         variable with an anonymous type.
4503
4504 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
4505
4506         * see.c: Remove for real.
4507
4508 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
4509
4510         * optabs.h (enum optab_index): Add new OTI_significand.
4511         (significand_optab): Define corresponding macro.
4512         * optabs.c (init_optabs): Initialize significand_optab.
4513         * genopinit.c (optabs): Implement significand_optab using
4514         significand?f2 patterns.
4515         * builtins.c (expand_builtin_mathfn): Handle
4516         BUILT_IN_SIGNIFICAND{,F,L}.
4517         (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
4518         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4519
4520         * config/i386/i386.md (significandxf2, significand<mode>2): New
4521         expanders to implement significandf, significand and significandl
4522         built-ins as inline x87 intrinsics.
4523
4524 2009-06-18  Anatoly Sokolov  <aesok@post.ru>
4525
4526         * config/avr/avr.c (avr_override_options): Remove setting value of
4527         PARAM_INLINE_CALL_COST.
4528
4529 2009-06-18  Richard Henderson  <rth@redhat.com>
4530
4531         PR 40488
4532         * tree-pass.h (TDF_ASMNAME): New.
4533         * tree-dump.c (dump_options): Add asmname.
4534         * doc/invoke.texi: Document it.
4535
4536         * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
4537         (dump_decl_name): ...here.
4538         (dump_function_name): New flags arg; mind TDF_ASMNAME.
4539         (dump_generic_node): Update dump_function_name calls.
4540         (print_call_name): New flags arg; update all dump calls.
4541         * diagnostic.h (print_call_name): Update.
4542         * gimple-pretty-print.c (dump_gimple_call): Update.
4543
4544 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
4545
4546         PR target/40470
4547         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
4548
4549 2009-06-18  Diego Novillo  <dnovillo@google.com>
4550
4551         * doc/plugins.texi: Document plugin_is_GPL_compatible.
4552         * plugin.c (str_license): Declare.
4553         (try_init_one_plugin): Assert that the symbol
4554         'plugin_is_GPL_compatible' exists.
4555
4556 2009-06-18  Sergei Dyshel  <sergeid@il.ibm.com>
4557
4558         * see.c: Remove.
4559         * Makefile.in (OBJS-common): Remove see.o.
4560         (see.o): Remove.
4561         * common.opt (fsee): Mark as preserved for backward compatibility.
4562         * opts.c (common_handle_option): Add OPT_fsee to the backward 
4563         compatibility section.
4564         * passes.c (init_optimization_passes, pass_see): Remove pass.
4565         * timevar.def (TV_SEE): Remove.
4566         * tree-pass.h (pass_see): Remove declaration.
4567         * doc/invoke.texi (-fsee): Remove documentation.
4568         
4569 2009-06-18  Martin Jambor  <mjambor@suse.cz>
4570
4571         * tree-sra.c: Include statistics.h
4572         (sra_stats): New variable.
4573         (sra_initialize): Clear sra_stats.
4574         (create_access_replacement): Increment sra_stats.replacements.
4575         (get_access_replacement): Do not return twice.
4576         (analyze_all_variable_accesses): Increment statistics counter by the
4577         number of scalarized aggregates.
4578         (generate_subtree_copies): Increment sra_stats.subtree_copies.
4579         (sra_modify_expr): Increment sra_stats.exprs.
4580         (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
4581         (sra_modify_assign): Increment sra_stats.exprs,
4582         sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
4583         (perform_intra_sra): Update statistics counters.
4584         * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
4585
4586 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
4587
4588         * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
4589         (arm_scalar_mode_supported_p): New function.
4590
4591 2009-06-18  Paul Brook  <paul@codesourcery.com>
4592             Sandra Loosemore  <sandra@codesourcery.com>
4593
4594         * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
4595         (__extendhfsf2, __truncsfhf2): Define.
4596         * config/arm/fp16.c: New file.
4597         * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
4598         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA):  Add fp16.c.
4599
4600 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
4601
4602         * doc/extend.texi (Half-Precision): New section.
4603         * doc/invoke.texi (Option Summary): List -mfp16-format.
4604         (ARM Options): List neon-fp16 as -mfpu value.  Document -mfp16-format.
4605         * config/arm/arm.opt (mfp16-format=): New.
4606         * config/arm/arm.c: Include intl.h.
4607         (TARGET_INVALID_PARAMETER_TYPE): Redefine.
4608         (TARGET_INVALID_RETURN_TYPE): Redefine.
4609         (TARGET_PROMOTED_TYPE): Redefine.
4610         (TARGET_CONVERT_TO_TYPE): Redefine.
4611         (arm_fp16_format): Define.
4612         (all_fpus): Add entry for neon-fp16.
4613         (fp_model_for_fpu): Likewise.
4614         (struct fp16_format): Declare.
4615         (all_fp16_formats): Define.
4616         (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
4617         functions.
4618         (arm_override_options): Set arm_fp16_format. Call sorry for fp16
4619         and no ldrh.
4620         (arm_legitimate_index_p): Treat HFmode like HImode.
4621         (thumb1_legitimate_address_p): Make it recognize HFmode constants.
4622         (coproc_secondary_reload_class): Special-case HFmode.
4623         (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
4624         (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
4625         (arm_init_fp16_builtins): New.
4626         (arm_init_builtins): Call it.
4627         (arm_invalid_parameter_type): New.
4628         (arm_invalid_return_type): New.
4629         (arm_promoted_type): New.
4630         (arm_convert_to_type).
4631         (arm_file_start): Deal with neon-fp16 as fpu_name.  Emit tag for fp16
4632         format.
4633         (arm_emit_fp16_const): New function.
4634         (arm_mangle_type): Mangle __fp16 as "Dh".
4635         * config/arm/arm.h (TARGET_VFPD32): Make it know about
4636         FPUTYPE_NEON_FP16.
4637         (TARGET_NEON_FP16): New.
4638         (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
4639         (enum fputype): Add FPUTYPE_NEON_FP16.
4640         (enum arm_fp16_format_type): Declare.
4641         (arm_fp16_format): Declare.
4642         (LARGEST_EXPONENT_IS_NORMAL): Define.
4643         * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
4644         * config/arm/arm-modes.def (HFmode): Define.
4645         * config/arm/vfp.md: (*movhf_vfp): New.
4646         (extendhfsf2): New.
4647         (truncsfhf2): New.
4648         * config/arm/arm.md: (fpu): Add neon_fp16.
4649         (floatsihf2, floatdihf2): New.
4650         (fix_trunchfsi2, fix_trunchfdi2): New.
4651         (truncdfhf2): New.
4652         (extendhfdf2): New.
4653         (movhf): New.
4654         (*arm32_movhf): New.
4655         (*thumb1_movhf): New.
4656         (consttable_2): Add check for HFmode constants.
4657         (consttable_4): Handle HFmode constants.
4658
4659 2009-06-18  Uros Bizjak  <ubizjak@gmail.com>
4660
4661         * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
4662
4663 2009-06-17  Olivier Hainque  <hainque@adacore.com>
4664
4665         * collect2.c (main): Use CONST_CAST2 to perform char ** to
4666         const char ** conversion in AIX specific section.
4667         
4668 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
4669
4670         * config/i386/i386.c (ix86_special_builtin_type): Remove
4671         UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
4672         (bdesc_special_args): Updated.
4673         (ix86_init_mmx_sse_builtins): Likewise.
4674         (ix86_expand_special_args_builtin): Likewise.
4675
4676 2009-06-17  Richard Henderson  <rth@redhat.com>
4677
4678         * tree-pretty-print.c (maybe_dump_asm_name): New.
4679         (dump_decl_name): Use it.
4680         (PRINT_FUNCTION_NAME): Merge into...
4681         (dump_function_name): ... here.  Use maybe_dump_asm_name.
4682
4683 2009-06-17  Cary Coutant  <ccoutant@google.com>
4684
4685         * dbxout.c (dbxout_source_line): Add is_stmt parameter.
4686         Change caller.
4687         * debug.c (struct gcc_debug_hooks): Change placeholder for
4688         source_line hook.
4689         (debug_nothing_int_charstar_int): Replaced by...
4690         (debug_nothing_int_charstar_int_bool): ...this.
4691         * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
4692         source_line prototype.
4693         (debug_nothing_int_charstar_int): Replaced by...
4694         (debug_nothing_int_charstar_int_bool): ...this.
4695         * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
4696         * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
4697         Output is_stmt operand when necessary.
4698         * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
4699         (notice_source_line): Add is_stmt parameter.
4700         * sdbout.c (sdbout_source_line): Add is_stmt parameter.
4701         * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
4702         Change callers.
4703         * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
4704         * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
4705
4706 2009-06-17  Ian Lance Taylor  <iant@google.com>
4707
4708         * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
4709         Change all uses.
4710         (struct store_by_pieces_d): Rename from store_by_pieces.  Change
4711         call uses.
4712
4713 2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>
4714
4715         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
4716         STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
4717         tree_strip_sign_nop_conversions and
4718         tree_ssa_strip_useless_type_conversions rather than stripping
4719         the operations here.
4720         (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
4721         Declare them.
4722         * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
4723         * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
4724         * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
4725         tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
4726         functions.
4727
4728 2009-06-17  Michael Eager  <eager@eagercon.com>
4729
4730         * config/rs6000/constraints.md (register_constraint "d"): New.
4731         * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
4732         truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
4733         *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
4734         *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
4735         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
4736         divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
4737         fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
4738         * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
4739         __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
4740         __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
4741         __fctiwz): Same.
4742         * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
4743         *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
4744         *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
4745         *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
4746         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
4747         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
4748         stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
4749         *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
4750         *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
4751         trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
4752         *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
4753         *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
4754         *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
4755         * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
4756
4757 2009-06-16  Ian Lance Taylor  <iant@google.com>
4758
4759         * profile.c (total_num_never_executed): Don't define.
4760         (compute_branch_probabilities): Don't count or print
4761         num_never_executed.
4762         (init_branch_prob): Don't set total_num_never_executed.
4763         (end_branch_prob): Don't print total_num_never_executed.
4764
4765 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
4766
4767         * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
4768
4769 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
4770
4771         * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
4772         (nabstd2_fpr): Same.
4773
4774 2009-06-17  Steve Ellcey  <sje@cup.hp.com>
4775
4776         * expr.c (expand_assignment): Change complex type check.
4777
4778 2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>
4779
4780         * doc/plugins.texi (Building GCC plugins): Added new section. 
4781
4782 2009-06-17  Ian Lance Taylor  <iant@google.com>
4783
4784         * c-pch.c (get_ident): Don't set size of templ array.
4785         (pch_init): Don't set size of partial_pch array.
4786
4787         * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
4788         string constant to intialize an array whose size is the length of
4789         the string.
4790
4791 2009-06-17  Richard Guenther  <rguenther@suse.de>
4792
4793         PR tree-optimization/40389
4794         * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
4795         to addressable types.
4796         * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
4797
4798 2009-06-17  Richard Guenther  <rguenther@suse.de>
4799
4800         PR middle-end/40460
4801         * tree-chrec.h (build_polynomial_chrec): If we cannot determine
4802         if there is no evolution of left in the loop bail out.
4803         * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
4804         chrec_fold_multiply.
4805
4806 2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
4807             Janis Johnson  <janis187@us.ibm.com>
4808
4809         PR target/39254
4810         * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
4811         for the symbol ref of a constant that is the source of a move
4812         - nor for any other not-obvious-label-ref constants.
4813
4814 2009-06-16  Olatunji Ruwase  <tjruwase@google.com>
4815
4816         * plugin.c (position_pass): Skip newly inserted pass during list
4817         traversal to avoid repeated insertion.
4818
4819 2009-06-16  Ian Lance Taylor  <iant@google.com>
4820
4821         * vec.h (VEC_stack_alloc): Define different version if
4822         GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
4823         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
4824         (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
4825         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
4826
4827 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
4828
4829         * config.gcc (extra_headers): Add ia32intrin.h for x86.
4830
4831         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
4832         IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
4833         IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
4834         IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
4835         (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
4836         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
4837         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
4838         (bdesc_special_args): Add __builtin_ia32_rdtsc and
4839         __builtin_ia32_rdtscp.
4840         (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
4841         __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
4842         and __builtin_ia32_rorhi.
4843         (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
4844         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
4845         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
4846         (ix86_expand_args_builtin): Likewise.
4847         (ix86_expand_special_args_builtin): Likewise.
4848
4849         * config/i386/i386.md (UNSPECV_RDTSCP): New.
4850         (UNSPECV_RDTSC): Likewise.
4851         (UNSPECV_RDPMC): Likewise.
4852         (*bsr): Renamed to ...
4853         (bsr): This
4854         (*bsr_rex64): Renamed to ...
4855         (bsr_rex64): This.
4856         (rdpmc): New.
4857         (*rdpmc): Likewise.
4858         (*rdpmc_rex64): Likewise.
4859         (rdtsc): Likewise.
4860         (*rdtsc): Likewise.
4861         (*rdtsc_rex64): Likewise.
4862         (rdtscp): Likewise.
4863         (*rdtscp): Likewise.
4864         (*rdtscp_rex64): Likewise.
4865
4866         * config/i386/ia32intrin.h: New.
4867
4868         * config/i386/x86intrin.h: Include <ia32intrin.h>.
4869
4870 2009-06-16  Ian Lance Taylor  <iant@google.com>
4871
4872         * ira-build.c (copy_info_to_removed_store_destinations):
4873         Initialize parent_a.
4874
4875 2009-06-16  Ian Lance Taylor  <iant@google.com>
4876
4877         * c-decl.c (grokdeclarator): Change size_varies to bool.
4878
4879 2009-06-16  Ian Lance Taylor  <iant@google.com>
4880
4881         * sel-sched.c: Make forward declarations of move_op_hooks and
4882         fur_hooks explicitly extern.
4883
4884 2009-06-16  Ian Lance Taylor  <iant@google.com>
4885
4886         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
4887         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
4888
4889 2009-06-16  Ian Lance Taylor  <iant@google.com>
4890
4891         * resource.c (mark_referenced_resources): Change
4892         include_delayed_effects parameter to bool.  Change all callers.
4893         (mark_end_of_function_resources): Likewise.
4894         * reorg.c (insn_references_resource_p): Likewise.
4895         (insn_sets_resource_p): Likewise.
4896         * resource.h (mark_referenced_resources): Update declaration.
4897         (mark_end_of_function_resources): Update declaration.
4898
4899 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
4900
4901         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
4902
4903 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
4904
4905         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
4906         GCC can bootstrap on AIX with GNU Binutils 2.20.
4907
4908 2009-06-16  Ian Lance Taylor  <iant@google.com>
4909
4910         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
4911
4912 2009-06-16  Ian Lance Taylor  <iant@google.com>
4913
4914         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
4915         inline, not extern inline.
4916         (exact_log2): Likewise.
4917         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
4918         test CLZ_HWI.
4919         (exact_log2): Likewise, but don't test CTZ_HWI.
4920
4921 2009-06-16  Ian Lance Taylor  <iant@google.com>
4922
4923         * bitmap.c (bitmap_clear): Don't declare as inline.
4924         * gimple.c (gimplify_assign): Likewise.
4925         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
4926         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
4927         (sched_scan_info): Remove duplicate definition.
4928
4929 2009-06-16  Ian Lance Taylor  <iant@google.com>
4930
4931         * c-common.c (skip_evaluation): Don't define.
4932         (c_inhibit_evaluation_warnings): Define global variable.
4933         (overflow_warning): Check c_inhibit_evaluation_warnings rather
4934         than skip_evaluation.
4935         (convert_and_check, warn_for_div_by_zero): Likewise.
4936         * c-common.h (skip_evaluation): Don't declare.
4937         (c_inhibit_evaluation_warnings): Declare.
4938         * c-parser.c (c_parser_typeof_specifier): Set
4939         c_inhibit_evaluation_warnings rather than skip_evaluation.
4940         (c_parser_conditional_expression): Likewise.
4941         (c_parser_binary_expression): Likewise.
4942         (c_parser_sizeof_expression): Likewise.
4943         (c_parser_alignof_expression): Likewise.
4944         * c-typeck.c (build_indirect_ref): Check
4945         c_inhibit_evaluation_warnings rather than skip_evaluation.
4946         (build_conditional_expr, build_binary_op): Likewise.
4947
4948 2009-06-16  Richard Guenther  <rguenther@suse.de>
4949
4950         * tree-ssa-alias.c (is_escape_site): Remove.
4951         * tree-ssa-alias.h (enum escape_type): Remove.
4952         (is_escape_site): Likewise.
4953         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
4954         via casts and asms without deferring to is_escape_site.
4955
4956 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
4957
4958         PR middle-end/40446
4959         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
4960         use gen_lowpart if op0 has complex mode.
4961
4962 2009-06-16  Richard Guenther  <rguenther@suse.de>
4963
4964         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
4965         variables add them to ESCAPED.
4966         (find_func_aliases): Do not make all indirectly stored values escaped.
4967
4968 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
4969
4970         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
4971         make_decl_one_only.
4972
4973 2009-06-16  Martin Jambor  <mjambor@suse.cz>
4974
4975         PR tree-optimization/40432
4976         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
4977         check whether we need to force gimple register operand.
4978
4979 2009-06-16  Martin Jambor  <mjambor@suse.cz>
4980
4981         PR tree-optimization/40413
4982         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
4983         build_ref_for_offset.
4984         (propagate_subacesses_accross_link): Fix a typo in a comment.
4985
4986 2009-06-16  Ira Rosen  <irar@il.ibm.com>
4987
4988         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
4989         with additional parameter.
4990         * tree-vectorizer.h (enum vect_def_type): Add new value
4991         vect_nested_cycle.
4992         (enum vect_relevant): Add comments.
4993         (vect_is_simple_reduction): Add new argument.
4994         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
4995         Detect nested cycles.
4996         (vect_is_simple_reduction): Update documentation, add an argument to
4997         distinguish inner-loop reduction from nested cycle, detect nested
4998         cycles, fix printings and indentation, don't swap operands in case
4999         of nested cycle.
5000         (get_initial_def_for_reduction): Handle subtraction.
5001         (vect_create_epilog_for_reduction): Add new argument to specify
5002         reduction variable.
5003         (vect_finalize_reduction): Handle subtraction, fix comments.
5004         (vectorizable_reduction): Handle nested cycles. In case of nested
5005         cycle keep track of the reduction variable position. Call 
5006         vect_is_simple_reduction with additional parameter. Use original
5007         statement code in reduction epilogue for nested cycle. Call
5008         vect_create_epilog_for_reduction with additional parameter.
5009         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
5010         inner-loop vectorization.
5011         (vect_recog_widen_sum_pattern): Likewise.
5012         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
5013         and reductions.
5014         (vect_mark_stmts_to_be_vectorized): Likewise.
5015         (vect_get_vec_def_for_operand): Handle nested cycles.
5016
5017 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5018
5019         * doc/invoke.texi (Debugging Options): Fix option index entries
5020         for -fdump-statistics, -frandom-seed add entries for
5021         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
5022         (FRV Options): Fix entries for -mTLS, -mtls.
5023         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
5024         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
5025         (M68hc1x Options): Fix @itemx for -mnominmax.
5026         (MCore Options): Fix entry for -mno-lsim.
5027         (MMIX Options): Fix entry for -mabi=mmixware.
5028         (PDP-11 Options): Fix entry for -mbcopy-builtin.
5029
5030 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
5031
5032         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
5033         Mention the plugin mode of gengtype.
5034         * doc/gty.texi (Source Files Containing Type Information): Likewise.
5035         * gengtype.c: Updated copyright.
5036         (plugin_files, nb_plugin_files) Added new static variables.
5037         (measure_input_list) Care about plugin_files.
5038         (write_rtx_next): Added early return in plugin mode.
5039         (create_file): Updated copyright year in generated file. Added
5040         asserts.
5041         (oprintf): Added early return if NULL outf.
5042         (get_output_file_with_visibility): Care of plugin_files.
5043         (get_output_file_name): May return null.
5044         (write_local): Added early return.
5045         (put_mangled_filename): Ditto.
5046         (finish_root_table): Added check for base_files.
5047         (write_roots): Care about null when plugins.
5048         (main): Added plugin mode.
5049
5050 2009-06-15  Ian Lance Taylor  <iant@google.com>
5051
5052         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
5053         * gcov.c (read_count_file): Add braces around variables declared
5054         before label.
5055
5056         * c.opt (Wjump-misses-init): New warning.
5057         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
5058         -Wall and -Wc++-compat if not already set.
5059         (c_common_post_options): Clear warn_jump_misses_init if it was not
5060         set.
5061         * c-decl.c (struct c_binding): Change type field to a union with
5062         new label field.  Make it the first field in the struct.  Update
5063         references to type to use u.type instead.
5064         (struct c_spot_bindings): Define.
5065         (struct c_goto_bindings): Define.
5066         (c_goto_bindings_p): Define, along with VECs.
5067         (struct c_label_vars): Define.
5068         (struct c_scope): Add has_label_bindings field.
5069         (bind_label, set_spot_bindings): New static functions.
5070         (decl_jump_unsafe, update_spot_bindings): New static functions.
5071         (update_label_decls): New static function.
5072         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
5073         Update binding u.label field to shadowed field.
5074         (c_binding_start_stmt_expr): New function.
5075         (c_binding_end_stmt_expr): New function.
5076         (pushdecl): Don't call c_begin_vm_scope.
5077         (make_label): Add defining and p_label_vars parameters.  Change
5078         all callers.
5079         (lookup_label): Correct test for whether a label has not yet been
5080         defined.  Call bind_label rather than bind.
5081         (warn_about_goto): New static function.
5082         (lookup_label_for_goto): New function.
5083         (declare_label): Call bind_label rather than bind.
5084         (check_earlier_gotos): New static function.
5085         (define_label): Don't give errors about jumping into statement
5086         expressions or scopes of variably modified types.  Call
5087         set_spot_bindings and check_earlier_gotos.  Call bind_label
5088         instead of bind.  Don't set label_context_stack_se or
5089         label_context_stack_vm.
5090         (c_get_switch_bindings): New function.
5091         (c_release_switch_bindings): New function.
5092         (c_check_switch_jump_warnings): New function.
5093         (start_function): Don't set label_context_stack_se or
5094         label_context_stack_vm.
5095         (finish_function): Likewise.
5096         * c-typeck.c (label_context_stack_se): Don't define.
5097         (label_context_stack_vm): Don't define.
5098         (c_finish_goto_label): Call lookup_label_for_goto rather than
5099         lookup_label.  Don't give errors about jumping into a statement
5100         expression or the scope of a variably modified type.  Don't set
5101         label_context_stack_se or label_context_stack_vm.
5102         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
5103         fields.  Add bindings field.
5104         (c_start_case): Don't set deleted fields.  Set bindings field.
5105         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
5106         or blocked_vm.  Call c_check_switch_jump_warnings.
5107         (c_finish_case): Don't test blocked_stmt_expr field.  Call
5108         c_release_switch_bindings.
5109         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
5110         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
5111         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
5112         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
5113         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
5114         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
5115         (c_begin_vm_scope, c_end_vm_scope): Don't define.
5116         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
5117         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
5118         (C_DECL_UNJUMPABLE_VM): Don't define.
5119         (C_DECL_UNDEFINABLE_VM): Don't define.
5120         (struct c_label_list): Don't define.
5121         (struct c_label_context_se): Don't define.
5122         (struct c_label_context_vm): Don't define.
5123         (struct c_spot_bindings): Declare.
5124         (c_bindings_start_stmt_expr): Declare.
5125         (c_bindings_end_stmt_expr): Declare.
5126         (lookup_label_for_goto): Declare.
5127         (c_get_switch_bindings, c_release_switch_bindings): Declare.
5128         (c_check_switch_jump_warnings): Declare.
5129         (label_context_stack_se, label_context_stack_vm): Don't declare.
5130         (c_finish_goto_label): Update declaration.
5131         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
5132         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
5133         (Warning Options): Document -Wjump-misses-init.
5134
5135 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
5136
5137         * tree-object-size.c (addr_object_size): Fix a pasto in the last
5138         change.
5139
5140 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
5141
5142         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
5143
5144 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
5145
5146         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
5147
5148 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
5149
5150         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
5151
5152 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
5153
5154         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
5155         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
5156         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
5157         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
5158         * dwarf2asm.c (dw2_force_const_mem): Update call to
5159         make_decl_one_only.
5160         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
5161         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
5162         * langhooks.c (lhd_comdat_group): Remove.
5163         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
5164         * tree.h (DECL_COMDAT_GROUP): New.
5165         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
5166         (tree_decl_with_vis): Add comdat_group. Remove one_only.
5167         (make_decl_one_only): Change signature.
5168         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
5169         make_decl_one_only.
5170         (make_decl_one_only): Change signature.
5171         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
5172
5173 2009-06-15  Richard Guenther  <rguenther@suse.de>
5174
5175         PR middle-end/40439
5176         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
5177
5178 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5179
5180         * tree-ssa-math-opts.c: Remove extra divide.
5181
5182 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5183
5184         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
5185
5186 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5187
5188         * passes.c: Add bswap pass.
5189         * tree-pass.h: Add pass_optimize_bswap declaration.
5190         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
5191         Include rtl.h, expr.h and optabs.h for optab_handler check.
5192         (struct symbolic_number, pass_optimize_bswap): New definition.
5193         (do_shift_rotate, verify_symbolic_number_p): New functions.
5194         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
5195         (gate_optimize_bswap): New function.
5196         * tree.c (widest_int_cst_value): New function.
5197         * tree.h (widest_int_cst_value): Prototype added.
5198
5199 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
5200
5201         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
5202         REG_EQUAL/REG_EQUIV notes.
5203
5204 2009-06-14  Richard Guenther  <rguenther@suse.de>
5205
5206         PR middle-end/40389
5207         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
5208         has its address taken if NRV was applied and it is addressable.
5209         * tree-ssa-structalias.c (get_constraint_for_address_of): New
5210         function split out from ...
5211         (get_constraint_for_1): ... here.
5212         (handle_rhs_call): Use it to mark the return slot escaped if
5213         it is addressable and NRV was applied.
5214
5215 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
5216
5217         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
5218         Change first argument type to location_t.
5219         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
5220         Do not set input_location.
5221         Use loc instead of input_location throughout.
5222
5223 2009-06-13  Richard Guenther  <rguenther@suse.de>
5224
5225         PR tree-optimization/40421
5226         * tree-predcom.c (should_unroll_loop_p): Remove.
5227         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
5228
5229 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
5230
5231         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5232         Add location argument.
5233
5234 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
5235
5236         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
5237         build_decl.
5238         * config/s390/s390.c (s390_build_builtin_va_list): Same.
5239         (s390_gimplify_va_arg): Pass location to create_artificial_label.
5240         * config/spu/spu-protos.h: Add location to
5241         spu_resolve_overloaded_builtin.
5242         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
5243         spu_build_builtin_va_list.
5244         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
5245         argument.  Pass location to build_function_call_vec.
5246         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
5247         build_decl.
5248         (emit_fpu_switch): Same.
5249         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
5250         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
5251         to build_decl and create_artificial_label.
5252         (xtensa_gimplify_va_arg_expr): Same.
5253         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
5254         (xstormy16_gimplify_va_arg_expr): Same.
5255         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
5256         * config/arm/arm.c (arm_build_builtin_va_list): Same.
5257         * config/mips/mips.c (mips_build_builtin_va_list): Same.
5258         (mips16_build_function_stub): Same.
5259         (mips16_build_call_stub): Same.
5260
5261 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
5262
5263         PR target/40327
5264         * arm/constraints.md (Pa, Pb): New constraints.
5265         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
5266         split pattern to deal with them.
5267
5268 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
5269
5270         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
5271         fix index entry for -Xpreprocessor.
5272
5273 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
5274
5275         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5276         Add location argument to build_decl call.
5277         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
5278         (rs6000_init_builtins): Same.
5279         (spe_init_builtins): Same.
5280         (rs6000_gimplify_va_arg): Add location argument to
5281         create_artificial_label call.
5282
5283 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
5284
5285         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
5286         * combine-stack-adj.c (pass_stack_adjustments): Use it.
5287         * Makefile.in: Fix GGC dependency for gcse.o.
5288
5289 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
5290
5291         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
5292         * gimple-pretty-print.c (dump_gimple_stmt): Same.
5293         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
5294         created.
5295         * c-parser.c (c_parser_binary_expression): Use current column while
5296         building binary operations.
5297         * common.opt (fshow-column): Enable by default.
5298         * tree-vrp.c (check_array_ref): Use warning_at.
5299         (check_array_bounds): Use location from call back if expr has no
5300         location.
5301         * tree.h: Add location argument to maybe_fold_*.
5302         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
5303         (maybe_fold_offset_to_array_ref): Add location argument and use it.
5304         (maybe_fold_offset_to_component_ref): Same.
5305         (maybe_fold_offset_to_reference): Same.
5306         (maybe_fold_offset_to_address): Same.
5307         (maybe_fold_stmt_indirect): Same.
5308         (maybe_fold_stmt_addition): Same.
5309         (fold_stmt_r): Pass location to maybe_fold_*.
5310         (fold_gimple_assign): Same.
5311         * c-tree.h: Add location argument to finish_decl,
5312         default_function_array_conversion, store_init_value.
5313         * c-decl.c (define_label): Use error_at.
5314         (c_make_fname_decl): Pass location to finish_decl.
5315         (finish_decl): New location argument.
5316         (build_compound_literal): Pass location to store_init_value.
5317         (grokdeclarator): Pass location to finish_decl.
5318         (grokfield): Same.
5319         * c-typeck.c (array_to_pointer_conversion): New location argument.
5320         (function_to_pointer_conversion): Same.
5321         (default_function_array_conversion): Same.
5322         (parser_build_unary_op): Pass location to overflow_warning.
5323         (parser_build_binary_op): Same.  Use warning_at.
5324         (build_unary_op): Pass location to array_to_pointer_conversion.
5325         (build_c_cast): Pass location to digest_init.
5326         (build_modify_expr): New location argument.
5327         (convert_for_assignment): Same.
5328         (store_init_value): Same.
5329         (digest_init): Same.
5330         (output_init_element): Pass location to digest_init and
5331         array_to_pointer_conversion.
5332         (c_finish_return): Pass location to convert_for_assignment.
5333         * gimplify.c (gimplify_conversion): Pass location to
5334         maybe_fold_offset_to_address.
5335         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
5336         to maybe_fold_stmt_addition.
5337         * c-omp.c (c_finish_omp_atomic): Pass new location to
5338         build_modify_expr.
5339         (c_finish_omp_for): Same.
5340         * c-common.c (overflow_warning): New argument.
5341         * c-common.h: New argument to build_modify_expr, overflow_warning.
5342         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
5343         finish_decl.
5344         (c_parser_initializer): Pass location to
5345         default_function_array_conversion.
5346         (c_parser_initelt): Same.
5347         (c_parser_initval): Same.
5348         (c_parser_asm_operands): Same.
5349         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
5350         (c_parser_conditional_expression): Same.
5351         (c_parser_binary_expression): Add location info to stack.  Use it.
5352         (c_parser_unary_expression): Pass location to
5353         default_function_array_conversion, parser_build_unary_op,
5354         build_indirect_ref, c_parser_postfix_expression_after_primary.
5355         (c_parser_postfix_expression_after_primary): New location argument.
5356         Use it.
5357         (c_parser_expression_conv): Pass location to
5358         default_function_array_conversion.
5359         (c_parser_expr_list): Same.
5360         (c_parser_omp_atomic): Same.
5361         (c_parser_omp_for_loop): Same.
5362         * c-tree.h: (struct c_declarator): Add comment to id_loc.
5363         (build_array_declarator): New argument.
5364         * c-decl.c (build_array_declarator): Add location argument.
5365         (grokdeclarator): Set id_loc for cdk_array.
5366         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
5367         build_array_declarator.
5368         * tree.c (build_omp_clause): Add location argument.
5369         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
5370         (OMP_CLAUSE_LOCATION): New macro.
5371         (struct tree_omp_clause): Add location field.
5372         (build_omp_clause): Add argument.
5373         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
5374         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
5375         build_omp_clause.
5376         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
5377         (cp_parser_omp_clause_collapse): Same.
5378         (cp_parser_omp_clause_default): Same.
5379         (cp_parser_omp_clause_if): Same.
5380         (cp_parser_omp_clause_nowait): Same.
5381         (cp_parser_omp_clause_num_threads): Same.
5382         (cp_parser_omp_clause_ordered): Same.
5383         (cp_parser_omp_clause_schedule): Same.
5384         (cp_parser_omp_clause_untied): Same.
5385         (cp_parser_omp_for_loop): Same.
5386         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
5387         * c-tree.h (c_start_case): Add location argument.
5388         (c_process_expr_stmt): Same.
5389         (c_finish_goto_*): Same.
5390         * tree-parloops.c (initialize_reductions): Pass location to
5391         build_omp_clause.
5392         (create_parallel_loop): Same.
5393         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
5394         (gfc_trans_omp_reduction_list): Same.
5395         (gfc_trans_omp_clauses): Same.
5396         (gfc_trans_omp_do): Same.
5397         * c-typeck.c (c_finish_goto_label): Same.
5398         (c_finish_goto_ptr): New location argument.
5399         (c_start_case): Same.
5400         (emit_side_effect_warnings): Same.
5401         (c_process_expr_stmt): Same.
5402         (c_finish_stmt_expr): Same.
5403         (c_finish_omp_clauses): Use error_at instead of error.
5404         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
5405         build_omp_clause.
5406         * c-omp.c (c_split_parallel_clauses): New location argument.
5407         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
5408         to build_omp_clause.
5409         (convert_local_reference_stmt): Same.
5410         (convert_gimple_call): Same.
5411         * c-common.h (c_split_parallel_clauses): New argument.
5412         * c-parser.c (c_parser_statement_after_labels): Pass location to
5413         c_finish_goto_label.
5414         (c_parser_switch_statement): Pass location to c_start_case.
5415         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
5416         and c_process_expr_stmt.
5417         (c_parser_omp_variable_list): Add location argument.
5418         (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
5419         (c_parser_omp_clause_default): Same.
5420         (c_parser_omp_clause_if): Same.
5421         (c_parser_omp_clause_num_threads): Same.
5422         (-c_parser_omp_clause_ordered): Same.
5423         (c_parser_omp_clause_reduction): Pass location to
5424         c_parser_omp_variable_list.
5425         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
5426         (c_parser_omp_clause_untied): Same.
5427         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
5428         (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
5429
5430         * c-tree.h (check_for_loop_decls, undeclared_variable,
5431         build_component_ref, build_array_ref, build_external_ref,
5432         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
5433         build_conditional_expr, build_compound_expr, c_cast_expr,
5434         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
5435         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
5436         argument.
5437         * c-semantics.c (build_stmt): Same.
5438         (build_case_label): Same.
5439         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
5440         (undeclared_variable): New argument.
5441         (make_label): Same.
5442         (lookup_label): Pass location on down.
5443         (define_label): Same.
5444         (finish_decl): Same.
5445         (build_compound_literal): Same.
5446         (finish_struct): Same.
5447         (finish_function): Do not set location here.
5448         (check_for_loop_decls): New argument.
5449         * tree.c (save_expr): Set location.
5450         (build_empty_stmt): New argument.
5451         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
5452         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
5453         * builtins.c (gimplify_va_arg_expr): Use locations.
5454         (expand_builtin_sync_operation): Same.
5455         * c-typeck.c (build_component_ref): New argument.
5456         (build_array_ref): Same.
5457         (build_external_ref): Same.
5458         (c_expr_sizeof_expr): Same.
5459         (c_expr_sizeof_type): Same.
5460         (parser_build_unary_op): Same.
5461         (build_conditional_expr): Same.
5462         (build_compound_expr): Pass location on down.
5463         (build_compound_expr): New argument.
5464         (build_c_cast): Same.
5465         (c_cast_expr): Same.
5466         (build_asm_expr): Same.
5467         (c_finish_return): Same.
5468         (c_process_expr_stmt): Pass location on down.
5469         (c_finish_stmt_expr): New argument.
5470         (push_clenaup): Same.
5471         (c_finish_omp_parallel): Same.
5472         (c_finish_omp_task): Same.
5473         * gimplify.c (gimplify_call_expr): Pass location on down.
5474         * c-omp.c (c_finish_omp_master): New argument.
5475         (c_finish_omp_critical): Same.
5476         (c_finish_omp_ordered): Same.
5477         (c_finish_omp_barrier): Same.
5478         (-c_finish_omp_taskwait): Same.
5479         (c_finish_omp_atomic): Same.
5480         (c_finish_omp_flush): Same.
5481         * tree-inline.c (copy_tree_body_r): Pass location on down.
5482         (inline_forbidden_p): Remove use of input_location.
5483         * c-gimplify.c (c_build_bind_expr): New argument.
5484         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
5485         (c_sizeof_or_alignof_type): New argument.
5486         (c_alignof_expr): Same.
5487         (build_va_arg): Same.
5488         (c_add_case_label): Same.
5489         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
5490         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
5491         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
5492         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
5493         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
5494         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
5495         New argument.
5496         * stub-objc.c (objc_build_selector_expr): Same.
5497         (objc_build_throw_stmt): Same.
5498         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
5499         (c_parser_initelt): Same.
5500         (c_parser_compound_statement): Same.
5501         (c_parser_compound_statement_nostart): Same.
5502         (c_parser_label): Same.
5503         (c_parser_statement_after_labels): Same.
5504         (c_parser_if_body): Same.
5505         (c_parser_else_body): Same.
5506         (c_parser_if_statement): Same.
5507         (c_parser_switch_statement): Same.
5508         (c_parser_while_statement): Same.
5509         (c_parser_do_statement): Same.
5510         (c_parser_for_statement): Same.
5511         (c_parser_asm_statement): Same.
5512         (c_parser_conditional_expression): Same.
5513         (c_parser_binary_expression): Same.
5514         (c_parser_cast_expression): Same.
5515         (c_parser_unary_expression): Same.
5516         (c_parser_sizeof_expression): Same.
5517         (c_parser_alignof_expression): Same.
5518         (c_parser_postfix_expression): Same.
5519         (c_parser_expression): Same.
5520         (c_parser_objc_receiver): Same.
5521         (c_parser_omp_variable_list): Same.
5522         (c_parser_omp_structured_block): Same.
5523         (c_parser_omp_atomic): New argument.
5524         (c_parser_omp_barrier): Same.
5525         (c_parser_omp_critical): Same.
5526         (c_parser_omp_flush): Pass location on down.
5527         (c_parser_omp_for_loop): New argument.
5528         (c_parser_omp_for): Same.
5529         (c_parser_omp_master): Same.
5530         (c_parser_omp_ordered): Same.
5531         (c_parser_omp_sections_scope): Same.
5532         (c_parser_omp_sections): Same.
5533         (c_parser_omp_parallel): Same.
5534         (c_parser_omp_single): Same.
5535         (c_parser_omp_task): Same.
5536         (c_parser_omp_taskwait): Pass location on down.
5537         (c_parser_omp_construct): Same.
5538         (c_parser_omp_threadprivate): Same.
5539         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
5540         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
5541         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
5542         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
5543         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
5544         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
5545         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
5546         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
5547         config/i386/i386.c, stmt.c:
5548         Add location argument to the following function definitions and/or
5549         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
5550         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
5551         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
5552         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
5553         do_case, c_finish_bc_stmt, build_compound_literal,
5554         build_function_call.
5555         * c-decl.c (build_compound_literal): Add location argument.
5556         Make all diagnostic calls use location.
5557         (start_struct): Same.
5558         (finish_struct): Same.
5559         (start_enum): Same.
5560         (build_enumerator): Same.
5561         (start_function): Same.
5562         (grokdeclarator): Make all diagnostic calls use location.
5563         (store_parm_decls_oldstyle): Same.
5564         * c-typeck.c (build_function_call): Add location argument.
5565         Make all diagnostic calls use location.
5566         (do_case): Same.
5567         (c_finish_bc_stmt): Same.
5568         * tree-nested.c (get_trampoline_type): Add argument.
5569         Pass location to build_decl.
5570         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
5571         * rtl.h (RTL_LOCATION): New.
5572         * c-common.c (c_add_case_label): Add location argument.
5573         Make all diagnostic calls use location.
5574         * c-common.h: Add location argument to make_fname_decl, do_case,
5575         c_add_case_label, build_function_call, resolve_overloaded_builtin.
5576         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
5577         Set it appropriately for every case.  Pass enum_loc to start_enum
5578         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
5579         parser_xref_tag.
5580         (c_parser_struct_or_union_specifier): Save location.  Use it for
5581         start_struct, finish_struct, and parser_xref_tag.
5582
5583 2009-06-12  Ian Lance Taylor  <iant@google.com>
5584
5585         * fold-const.c (fold_unary): Rename local variable and to and_expr.
5586
5587         * c-opts.c (c_common_handle_option): For -Wc++-compat set
5588         cpp_opts->warn_cxx_operator_names.
5589
5590 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5591
5592         PR tree-opt/38865
5593         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
5594         is returns NULL and OP is a VCE, look through the VCE.
5595
5596 2009-06-12  Ian Lance Taylor  <iant@google.com>
5597
5598         PR bootstrap/40430
5599         * collect2.c (main): Use CONST_CAST2 in code inside #if
5600         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
5601
5602 2009-06-12  Joey Ye  <joey.ye@intel.com>
5603
5604         PR middle-end/39146
5605         * cfgexpand.c (get_decl_align_unit): Update
5606         max_used_stack_slot_alignment with align instead of
5607         stack_alignment_needed.
5608
5609         * function.c (assign_stack_local_1): Update
5610         max_used_stack_slot_alignment with alignment_in_bits instead
5611         of stack_alignment_needed.
5612         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
5613         here.
5614
5615 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
5616
5617         * dwarf2out.c (last_var_location_insn): New variable.
5618         (dwarf2out_end_epilogue): Clear last_var_location_insn.
5619         (dwarf2out_var_location): Don't record anything after last real
5620         insn.  Only change labels if there were any real instructions
5621         in between last note and this one, or if changed sections.
5622
5623 2009-06-11  Richard Henderson  <rth@redhat.com>
5624
5625         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
5626         note when storing the frame pointer in a register.
5627         (FRP): Don't redefine to nothing for epilogue.
5628         (alpha_expand_epilogue): Mark register and sp restores.
5629         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
5630
5631         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
5632         when gen_lowpart is needed.
5633
5634 2009-06-11  Richard Henderson  <rth@redhat.com>
5635
5636         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
5637
5638         * dwarf2out.c (need_data_align_sf_opcode): New.
5639         (div_data_align): Move earlier.
5640         (def_cfa_1, reg_save): Use it.
5641
5642 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
5643
5644         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
5645         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
5646         (ix86_handle_option): Handle OPT_mcrc32.
5647         (ix86_target_string): Add -mcrc32.
5648         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
5649
5650         * config/i386/i386.h (TARGET_CRC32): New.
5651
5652         * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
5653         (sse4_2_crc32di): Likewise.
5654
5655         * config/i386/i386.opt (mcrc32): New.
5656
5657         * doc/invoke.texi: Document -mcrc32.
5658
5659 2009-06-11  Richard Henderson  <rth@redhat.com>
5660
5661         * common.opt (gdwarf-): Accept a version number.
5662         * doc/invoke.texi (gdwarf-): Update docs.
5663         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
5664         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
5665         version level, and record it.
5666
5667         * dwarf2.h (DW_CIE_VERSION): Remove.
5668         * dwarf2out.c (DWARF_VERSION): Remove.
5669         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
5670         (output_call_frame_info): Use CIE version 3 for dwarf3,
5671         or if the return register column is out of range for version 1.
5672         (dwarf_stack_op_name): Add all dwarf3 values.
5673         (DEBUG_PUBTYPES_SECTION): New.
5674         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
5675         encoding change for dwarf3.
5676         (output_die) [dw_val_class_die_ref]: Likewise.
5677         (output_compilation_unit_header): Emit correct version for dwarf3.
5678         (output_line_info): Likewise.
5679         (output_pubnames): Update for DWARF_VERSION removal.
5680         (output_aranges): Likewise.
5681         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
5682         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
5683         (dwarf2out_finish): Likewise.
5684
5685 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
5686
5687         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
5688         in r148403.
5689
5690 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
5691
5692         PR c/39252
5693         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
5694         * builtins.c (expand_builtin_unreachable): New function.
5695         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
5696         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
5697         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
5698         successors.
5699         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
5700         searching for missing barriers.
5701
5702 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5703
5704         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
5705         when -fprofile-generate* was passed.
5706         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
5707
5708 2009-06-11  Anthony Green  <green@moxielogic.com>
5709
5710         * config/moxie/moxie.md: Define length attribute for all instructions.
5711         (rCC): Define.
5712         (*b<cond:code>): Support limited branch ranges for new PC-relative
5713         branch instructions.
5714         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
5715
5716 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
5717
5718         * config/i386/i386.c (min_insn_size): Use get_attr_length
5719         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
5720         For __asm return 0.
5721
5722         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
5723         instead of emit_insn_before.
5724
5725 2009-06-10  Ian Lance Taylor  <iant@google.com>
5726
5727         PR bootstrap/40408
5728         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
5729         GIMPLE_SWITCH.
5730
5731 2009-06-10  Revital Eres  <eres@il.ibm.com>
5732
5733         * passes.c (init_optimization_passes): Reschedule
5734         predictive-commoning pass before complete unroll pass.
5735
5736 2009-06-10  Martin Jambor  <mjambor@suse.cz>
5737
5738         * cgraph.c (cgraph_node_can_be_local_p): New function.
5739         (cgraph_make_node_local): New function.
5740         * cgraph.h (cgraph_node_can_be_local_p): Declare.
5741         (cgraph_make_node_local): Declare.
5742
5743 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
5744
5745         * tree.h (tree_base): Add packed_flag and user_align fields.
5746         Decrease size of spare field.
5747         (TYPE_USER_ALIGN): Use user_align from tree_base.
5748         (DECL_USER_ALIGN): Likewise.
5749         (TYPE_PACKED): Use packed_flag from tree_base.
5750         (DECL_PACKED): Likewise.
5751         (tree_type): Delete packed_flag and user_align fields.  Widen
5752         precision field.  Widen mode field and shuffle fields to align
5753         mode on an 8-bit boundary.
5754         (tree_decl_common): Delete decl_flag_1 and user_align fields.
5755         Renumber decl_flag_* fields.  Fix comments.  Widen
5756         decl_common_unused field.
5757         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
5758         (DECL_EXTERNAL): Likewise.
5759         (DECL_BIT_FIELD): Likewise.
5760         (DECL_NONADDRESSABLE_P): Likewise.
5761         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
5762         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
5763
5764 2009-06-10  Ian Lance Taylor  <iant@google.com>
5765
5766         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
5767         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
5768         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
5769         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
5770         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
5771         DEF_VEC_ALLOC_FUNC_P.
5772         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
5773         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
5774         DEF_VEC_ALLOC_FUNC_O.
5775         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
5776         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
5777         DEF_VEC_ALLOC_FUNC_I.
5778         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
5779         (vec_stack_p_reserve_exact_1): Declare.
5780         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
5781         (vec_stack_free): Declare.
5782         (VEC_stack_alloc): Define.
5783         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
5784         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
5785         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
5786         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
5787         for void_p.
5788         (stack_vecs): New static variable.
5789         (vec_stack_p_reserve_exact_1): New function.
5790         (vec_stack_o_reserve_1): New static function.
5791         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
5792         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
5793         (vec_stack_free): New function.
5794         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
5795         (VEC_df_ref_stack_alloc): Define.
5796         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
5797         DEF_VEC_ALLOC_P_STACK.
5798         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
5799         (struct df_collection_rec): Change _vec fields to VEC.  Remove
5800         _use fields.
5801         (df_free_collection_rec): Adjust for new fields.
5802         (df_insn_rescan): Use new df_collection_rec fields.
5803         (df_notes_rescan, df_canonize_collection_rec): Likewise.
5804         (df_ref_create_structure, df_ref_record): Likewise.
5805         (df_get_conditional_uses, df_get_call_refs): Likewise.
5806         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
5807         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
5808         (df_record_exit_block_uses, df_bb_verify): Likewise.
5809         (df_swap_refs): Change ref_vec parameter to VEC.  Change all callers.
5810         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
5811         Remove count parameter.  Change return type to void.  Change all
5812         callers.
5813         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
5814         Remove count parameter.  Change return type to void.  Change all
5815         callers.
5816         (df_install_refs): Change old_vec parameter to VEC.  Remove count
5817         parameter.  Change all callers.
5818         (df_install_mws): Change old_vec parameter to VEC.  Remove count
5819         parameter.  Change all callers.
5820         (df_refs_verify): Change new_rec parameter to VEC.  Change call
5821         callers.
5822         (df_mws_verify): Likewise.
5823
5824 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
5825
5826         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
5827
5828 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
5829
5830         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
5831
5832 2009-06-10  Anthony Green  <green@moxielogic.com>
5833
5834         * config/moxie/crti.asm: New file.
5835         * config/moxie/crtn.asm: New file.
5836         * config/moxie/moxie.c: New file.
5837         * config/moxie/moxie.h: New file.
5838         * config/moxie/sfp-machine.h: New file.
5839         * config/moxie/moxie-protos.h: New file.
5840         * config/moxie/t-moxie: Created.
5841         * config/moxie/t-moxie-softfp: Created.
5842         * config/moxie/moxie.md: Created.
5843         * config/moxie/constraints.md: Created.
5844         * config.gcc: Add moxie support.
5845         * doc/md.texi (Machine Constraints): Add moxie constraints.
5846         * doc/contrib.texi (Contributors): Mention moxie port.
5847         * doc/install.texi (Specific): Mention the moxie port.
5848
5849 2009-06-09  Ian Lance Taylor  <iant@google.com>
5850
5851         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
5852         compiling with C++.
5853         * optabs.c (optab_table): Only use designated initializers if
5854         HAVE_DESIGNATED_INITIALIZERS is defined.
5855         (convert_optab_table): Likewise.
5856         (init_optabs): Always call init_insn_codes if
5857         HAVE_DESIGNATED_INITIALIZERS is not defined.
5858
5859 2009-06-09  Ian Lance Taylor  <iant@google.com>
5860
5861         * targhooks.c (default_builtin_vectorized_function): Change fn
5862         parameter to unsigned int.
5863         (default_builtin_vectorized_conversion): Change code parameter to
5864         unsigned int.
5865         (default_builtin_reciprocal): Change fn parameter to unsigned int.
5866         * targhooks.h: Update declarations.
5867         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
5868         parameter to unsigned int.
5869
5870         * c-typeck.c (comptypes_check_enum_int): New static function.
5871         (comptypes_internal): Add enum_and_int_p parameter.  Change all
5872         callers.
5873         (comp_target_types): Add location parameter.  Change all callers.
5874         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
5875         Change all callers.
5876         (function_types_compatible_p, type_lists_compatible_p): Likewise.
5877         (build_conditional_expr): Add colon_loc parameter.  Change all
5878         callers.
5879         (convert_for_assignment): Add location parameter.  Change all callers.
5880         * c-parser.c (c_parser_conditional_expression): Pass location of
5881         colon to build_conditional_expr.
5882         * c-tree.h (build_conditional_expr): Update declaration.
5883
5884 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
5885
5886         * graphite.c: Revert previous patch.
5887
5888 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
5889
5890         PR bootstrap/40103
5891         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
5892
5893 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
5894
5895         * tree-ssa-loop-prefetch.c
5896         (loop_prefetch_arrays): Fixed a portability problem in printf format
5897         string.
5898
5899 2009-06-09  Martin Jambor  <mjambor@suse.cz>
5900
5901         PR tree-optimization/40351
5902         * tree-sra.c (propagate_subacesses_accross_link): Check that a
5903         refrence to a potential artifical subaccess can be constructed.
5904
5905 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
5906
5907         * config/sh/sh-protos.h (sh_optimization_options): Declare.
5908         (sh_override_options): Likewise.
5909         * config/sh/sh.c: Include params.h.
5910         (sh_optimization_options): New.
5911         (sh_override_options): Likewise.
5912         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
5913         (OVERRIDE_OPTIONS): Use sh_override_options.
5914
5915 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
5916
5917         * dwarf2out.c (emit_cfa_remember): New variable.
5918         (add_fde_cfi): If emit_cfa_remember, recurse to add
5919         DW_CFA_remember_state first.
5920         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
5921         instead just set emit_cfa_remember.
5922
5923 2009-06-08  Jan Hubicka  <jh@suse.cz>
5924
5925         PR debug/40126
5926         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
5927
5928 2009-06-08  Jan Hubicka  <jh@suse.cz>
5929
5930         PR middle-end/39834
5931         * cgraphunit.c (save_inline_function_body): Do not copy transform
5932         hooks for saved inline bodies.
5933         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
5934         for given function.
5935
5936 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
5937
5938         * jump.c (returnjump_p): Handle delayed branches.  Add missing
5939         function comment.
5940
5941 2009-06-08  Jan Hubicka  <jh@suse.cz>
5942
5943         PR middle-end/40102
5944         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
5945         original node might've been modified.
5946         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
5947
5948 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
5949
5950         * tree-object-size.c (addr_object_size): Add OSI argument.
5951         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
5952         (compute_builtin_object_size, expr_object_size): Adjust callers.
5953         (plus_stmt_object_size): Call addr_object_size instead of
5954         compute_builtin_object_size.
5955
5956 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
5957             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
5958         
5959         * tree-ssa-loop-prefetch.c 
5960         (gather_memory_references): Introduced a counter for the number of 
5961         memory references.
5962         (anything_to_prefetch_p): Introduced a counter for the number of 
5963         prefetches.
5964         (is_loop_prefetching_profitable): New function with a cost model 
5965         for prefetching.
5966         (loop_prefetch_arrays): Use the new cost model to determine if 
5967         prefetching is profitable.
5968         * params.def (MIN_INSN_TO_PREFETCH_RATIO, 
5969         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
5970         * params.h (MIN_INSN_TO_PREFETCH_RATIO, 
5971         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
5972         * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO, 
5973         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
5974         
5975 2009-06-08  Michael Matz  <matz@suse.de>
5976
5977         PR debug/40012
5978         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
5979         partitions use the same.
5980         (expand_one_var): Deal with DECL_RTL sometimes begin set also
5981         for basevars of SSA_NAMEs.
5982         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
5983         to not expand them twice.
5984         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
5985         multiple places.
5986
5987 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
5988
5989         * common.opt (fcompare-debug=, fcompare-debug-second): New.
5990         (fdump-final-insns=, gtoggle): New.
5991         * doc/invoke.texi: Document them.
5992         * final.c (rest_of_clean_state): Dump final insn stream.
5993         * gcc.c (invoke_as): Hook in -fcompare-debug.
5994         (static_spec_functions): Add compare-debug-dump-opt,
5995         compare-debug-self-opt and compare-debug-auxbase-opt.
5996         (compare_debug, compare_debug_second, compare_debug_opt): New.
5997         (switches_debug_check, n_switches_debug_check): New.
5998         (debug_auxbase_opt, debug_check_temp_file): New.
5999         (process_command): Handle -fno-compare-debug, -fcompare-debug and
6000         -fcompare-debug=*.
6001         (do_self_spec): Handle arguments after switches.
6002         (do_spec_1): Add .gk extension to temp file basenames for compare.
6003         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
6004         (cc1_options): Use it instead of normal auxbase computation for
6005         the second compare-debug compilation.
6006         (compare_files): New.
6007         (main): Set up and implement compare debug mode.
6008         (compare_debug_dump_opt_spec_function): New.
6009         (compare_debug_self_opt_spec_function): New.
6010         (compare_debug_auxbase_opt_spec_function): New.
6011         * toplev.c (process_options): Handle flag_gtoggle,
6012         flag_dump_final_insns.
6013         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
6014         during -fcompare-debug-second compilation.
6015
6016 2009-06-07  Ian Lance Taylor  <iant@google.com>
6017
6018         * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
6019         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
6020
6021         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
6022         with no default node.  Change warning with %H to warning_at.
6023         Don't clear warn_switch around case checking.
6024         * doc/invoke.texi (Warning Options): Clarify distinction between
6025         -Wswitch and -Wswitch-enum.
6026
6027 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
6028
6029         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
6030
6031 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
6032
6033         * gbl-ctors.h: Add header guard.
6034
6035 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
6036
6037         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
6038         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
6039         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
6040         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
6041         prototypes for removed functions.
6042         (expressions_equal_p): Move to ...
6043         * tree-ssa-sccvn.h: ... here and ...
6044         * matrix-reorg.c: ... adjust includes.
6045
6046 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
6047
6048         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
6049
6050 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
6051
6052         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
6053         (finish_function): Remove erroneous whitespace.
6054
6055 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
6056
6057         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
6058         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
6059
6060 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
6061
6062         * errors.c (internal_error): Commentary typo fix.
6063         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
6064         * tree-ssa-pre.c: Ditto.
6065
6066 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
6067
6068         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
6069         them is supposed to hold actual statements.
6070
6071 2009-06-06  Ian Lance Taylor  <iant@google.com>
6072
6073         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
6074         empty statements can now have attributes.
6075
6076 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
6077
6078         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
6079         * config/mips/mips.md: Ditto.
6080
6081 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
6082
6083         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
6084         _RELOCATABLE.
6085         (__eabi_uconvert): Likewise.
6086
6087 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
6088
6089         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
6090         CFI_* definitions with IN_GCC.
6091
6092 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
6093
6094         * xcoffout.h (xcoffout_source_line): Update prototype.
6095
6096 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6097
6098         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
6099         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
6100
6101 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
6102
6103         PR middle-end/40340
6104         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
6105         inlined_function_outer_scope_p blocks for artificial inlines
6106         even at -g0/-g1.
6107         * tree.c (tree_nonartificial_location): Rewrite using
6108         block_nonartificial_location.
6109
6110 2009-06-05  Revital Eres  <eres@il.ibm.com>
6111             Leehod Baruch  <leehod@il.ibm.com>
6112
6113         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
6114         (expand_expr_real_1): Remove comment.
6115         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
6116         Vectorize misaligned access when the target supports it.
6117         (vect_supportable_dr_alignment): Check for unaligned access support.
6118         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
6119         and remove asset.
6120
6121 2009-06-05  Julian Brown  <julian@codesourcery.com>
6122
6123         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
6124         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
6125
6126 2009-06-05  Richard Guenther  <rguenther@suse.de>
6127
6128         PR bootstrap/40350
6129         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
6130         as possibly unused.
6131
6132 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
6133
6134         * config/s390/s390.c (global_not_special_regno_p): New static inline.
6135         (save_gprs): Don't tell unwinder when a global register is saved.
6136         (s390_emit_epilogue): Emit needed epilogue unwind info.
6137
6138 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
6139
6140         * dwarf2out.c (deferred_asm_name): New.
6141         (add_name_and_src_coords_attributes): Defer creation of
6142         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
6143         computed yet.
6144         (move_linkage_attr): New.
6145         (dwarf2out_finish): Revisit deferrals and emit attributes at the
6146         right place.
6147
6148 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
6149
6150         * tree-nested.c (finalize_nesting_tree_1): Declare the
6151         frame_decl in the binding tree.
6152
6153 2009-06-04  Cary Coutant  <ccoutant@google.com>
6154
6155         * basic-block.h (struct basic_block_def): Add discriminator field.
6156         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
6157         callers.
6158         * debug.c (do_nothing_debug_hooks): Add additional entry.
6159         (debug_nothing_int_charstar_int): New function.
6160         * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
6161         (debug_nothing_int_charstar_int): New declaration.
6162         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
6163         discriminator value in .loc directive.
6164         * final.c (last_discriminator): New variable.
6165         (discriminator): New variable.
6166         (final_start_function): Initialize above variables, pass current
6167         discriminator to debug hook.
6168         (notice_source_line): Check for discriminator change.
6169         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
6170         * sdbout.c (sdbout_source_line): New parameter.
6171         * tree-cfg.c (struct locus_discrim_map): New structure type.
6172         (discriminator_per_locus): New hash table.
6173         (build_gimple_cfg): Allocate and free discriminator hash table.
6174         (make_edges): Call assign_discriminator.
6175         (locus_map_hash): New function.
6176         (locus_map_eq): New function.
6177         (next_discriminator_for_locus): New function.
6178         (same_line_p): New function.
6179         (assign_discriminator): New function.
6180         (make_cond_expr_edges): Call assign_discriminator.
6181         (make_gimple_switch_edges): Likewise.
6182         (first_non_label_stmt): New function.
6183         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
6184         all callers.
6185         * xcoffout.c (xcoffout_source_line): Add new parameter.
6186
6187         * configure.ac (gcc_cv_as_discriminator): New configury check for
6188         gas support for discriminator.
6189         * configure: Regenerate.
6190         * config.in: Regenerate.
6191
6192 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6193
6194         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
6195         val after checking for integers.
6196
6197 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
6198
6199         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
6200         X64_REGPARM_MAX.
6201         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
6202         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
6203         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
6204         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
6205         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
6206         X64_SSE_REGPARM_MAX.
6207         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
6208         X64_SSE_REGPARM_MAX.
6209
6210 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
6211
6212         * gcc.c (report_times_to_file): New.
6213         (execute): Implement it.
6214         (process_command): Support -time=.
6215         * doc/invoke.texi: Document it.
6216
6217 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
6218
6219         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
6220         that have value exprs.
6221
6222 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
6223
6224         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
6225         declarations for constants until...
6226         (dw2_output_indirect_constant_1): ... this point.
6227
6228 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
6229
6230         PR target/10242
6231         * arm.md (arm_addsi3): Don't try to split an add with an
6232         eliminable register until after reload has completed.
6233
6234 2009-06-03  Ian Lance Taylor  <iant@google.com>
6235
6236         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
6237         * genattrtab.c (write_length_unit_log): Likewise.
6238         * genchecksum.c (dosum): Likewise.
6239         * gengtype.c (write_rtx_next): Likewise.
6240         (finish_root_table, write_roots): Likewise.
6241         * gimple.c (gimple_ops_offset_): Likewise.
6242         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
6243         * config/arc/arc.c (arc_attribute_table): Likewise.
6244         * config/arm/arm.c (arm_attribute_table): Likewise.
6245         * config/avr/avr.c (avr_attribute_table): Likewise.
6246         * config/crx/crx.c (crx_attribute_table): Likewise.
6247         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
6248         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
6249         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
6250         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
6251         * config/sh/sh.c (sh_attribute_table): Likewise.
6252         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
6253         * config/spu/spu.c (spu_attribute_table): Likewise.
6254         * config/v850/v850.c (v850_attribute_table): Likewise.
6255
6256         * config/alpha/alpha.c (vms_attribute_table): Make static.
6257         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
6258         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
6259         * config/mips/mips.c (mips_attribute_table): Likewise.
6260
6261         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
6262         $(SYSTEM_H).
6263         (cc1-checksum.o): Likewise.
6264
6265 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
6266
6267         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
6268
6269 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
6270
6271         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
6272         insn if it is changing sp.  Use gen_add3_insn instead of
6273         conditionally gen_addsi3 and gen_adddi3.
6274         (offset_below_red_zone_p): New static inline function.
6275         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
6276         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
6277         * config/rs6000/ppc-asm.h: Include auto-host.h.
6278         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
6279         CFI_RESTORE): Define.
6280         * config/rs6000/crtresxgpr.asm: Add unwind info.
6281         * config/rs6000/crtresxfpr.asm: Likewise.
6282         * config/rs6000/crtresgpr.asm: Likewise.
6283         * config/rs6000/crtresfpr.asm: Likewise.
6284         * config/rs6000/crtsavgpr.asm: Likewise.
6285         * config/rs6000/crtsavfpr.asm: Likewise.
6286
6287         * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
6288         argument of DWARF2_FRAME_REG_OUT macros.
6289
6290 2009-06-03  Julian Brown  <julian@codesourcery.com>
6291
6292         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
6293         words or less (including TImode) in core registers.
6294
6295 2009-06-03  Richard Guenther  <rguenther@suse.de>
6296
6297         PR middle-end/40328
6298         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
6299
6300 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
6301
6302         * statistics.c (statistics_counter_event): Do not record event 
6303         in pass dump if its number == -1.
6304         (curr_statistics_hash): Add assert that we never get passes 
6305         with static number == -1.
6306
6307 2009-06-03  Richard Guenther  <rguenther@suse.de>
6308             Andrey Belevantsev  <abel@ispras.ru>
6309
6310         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
6311         non-BLKmode arrays addressable.
6312
6313 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
6314
6315         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
6316         * config/m68k/m68k.h: ... here.
6317         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
6318         m68k and fido.
6319
6320 2009-06-03  Martin Jambor  <mjambor@suse.cz>
6321
6322         PR tree-optimization/40323
6323         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
6324         assignment.
6325
6326 2009-06-03  Richard Guenther  <rguenther@suse.de>
6327
6328         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
6329         consistently.
6330
6331 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
6332
6333         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
6334         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
6335         JUMP_TABLE_DATA_P where applicable.
6336         * config/sh/sh.c: Ditto.
6337         * config/sh/sh.h: Ditto.
6338         * config/sh/sh.md: Ditto.
6339         * config/sh/symbian.c: Ditto.
6340
6341 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
6342
6343         * config/i386/driver-i386.c (describe_cache): Optimize
6344         concatenation of strings.  Use snprintf instead of sprintf.
6345         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
6346         target when not compiling with GCC.
6347
6348 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
6349
6350         * config/sh/sh.c: Revert last change.
6351         (sh_expand_epilogue): Emit a blockage insn before the frame
6352         pointer adjustment unconditionally.
6353
6354 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
6355
6356         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
6357         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
6358         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
6359         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
6360         to COLLECT_GCC_OPTIONS.
6361
6362 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
6363
6364         * collect2.c (target_system_root): New variable.
6365         (main): Handle --sysroot=.
6366         (ignore_library): Strip the sysroot from the library path.
6367
6368 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
6369
6370         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
6371         (collect2.o): Depend on collect2-aix.h.
6372         (collect2-aix.o): New rule.
6373         * collect2-aix.h: New file.
6374         * collect2-aix.c: Likewise.
6375         * collect2.c: Include collect2-aix.h.  Don't undefine
6376         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
6377         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
6378         Use TARGET_AIX_VERSION instead of _AIX51.
6379         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
6380         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
6381         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
6382         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
6383         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
6384
6385 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
6386
6387         * collect2.c (ignore_library): Avoid premature post-increment
6388         and null deference.
6389
6390 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
6391
6392         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
6393         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
6394         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
6395         CROSS_DIRECTORY_STRUCTURE too.
6396         (LINK_LIBG_SPEC): Likewise.
6397         (LIB_SPEC): Add %R to sysroot paths.
6398         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
6399         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
6400         * config/rs6000/aix51.h: As for aix43.h.
6401         * config/rs6000/aix52.h: Likewise.
6402         * config/rs6000/aix53.h: Likewise.
6403         * config/rs6000/aix61.h: Likewise.
6404         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
6405         to the beginning of sysroot paths.
6406
6407 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
6408
6409         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
6410         INSN_LISTs that are out of the REG_NOTE range.
6411
6412 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
6413
6414         * loop-unroll.c (struct iv_to_split): Add pointer to next.
6415         (struct var_to_expand): Likewise.
6416         (struct opt_info): Add head and tail for linked lists of the above.
6417         (analyze_insn_to_expand_var): Initialize next.
6418         (analyze_iv_to_split_insn): Likewise.
6419         (analyze_insns_in_loop): Create linked lists.
6420         (allocate_basic_variable): Simplify for use without hash table.
6421         (insert_var_expansion_initialization): Likewise, make it type-safer.
6422         (combine_var_copies_in_loop_exit): Likewise.
6423         (apply_opt_in_copies): Walk lists rather than hash tables.
6424         (release_var_copies): Simplified and inlined by hand into...
6425         (free_opt_info): ... this function.
6426
6427 2009-06-02  Richard Guenther  <rguenther@suse.de>
6428
6429         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
6430         for field decls.
6431
6432 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
6433
6434         * cfgexpand.c (gimple_expand_cfg): Discard the source location
6435         only for builtins that are not overridden.
6436
6437 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
6438
6439         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
6440         label string.
6441
6442 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
6443
6444         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
6445
6446 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
6447
6448         * combine.c (move_deaths): Compare LUIDs within the same BB only.
6449
6450 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
6451
6452         * common.opt (fdump-unnumbered-links): New.
6453         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
6454         * print-rtl.c (flag_dump_unnumbered_links): New.
6455         (print_rtx): Test it.
6456
6457 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
6458
6459         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
6460         push/pop multiple to 8-byte alignment.
6461
6462 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
6463
6464         * config/i386/i386.c (queued_cfa_restores): New static variable.
6465         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
6466         functions.
6467         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
6468         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
6469         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
6470         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
6471         note unconditionally.
6472         (ix86_emit_restore_regs_using_mov): Likewise.
6473         (ix86_emit_restore_sse_regs_using_mov): Likewise.
6474         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
6475         it through to ix86_emit_restore_reg_using_pop.
6476         (ix86_emit_leave): Add RED_OFFSET argument.  Call
6477         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
6478         instead of adding REG_CFA_OFFSET note unconditionally.
6479         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
6480         the above functions.  Call ix86_add_queued_cfa_restore_notes when
6481         needed.
6482
6483         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
6484         force output of the label even for dwarf2out_do_cfi_asm.
6485         (add_fde_cfi): If -g2 and above and cfi might change CFA,
6486         force creation of CFI label and chain DW_CFA_set_loc jumping to it
6487         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
6488         caller.
6489         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
6490         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
6491         dwarf2out_cfi_label callers.
6492         * tree.h (dwarf2out_cfi_label): Adjust prototype.
6493         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
6494         Adjust dwarf2out_cfi_label callers.
6495         * config/vax/vax.c (vax_output_function_prologue): Likewise.
6496
6497         * config/i386/i386.h (struct machine_cfa_state,
6498         struct machine_function): Guard with ifndef USED_FOR_TARGET
6499         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
6500
6501         PR other/40024
6502         * emutls.c (__emutls_get_address): Change arr->size to mean number
6503         of allocated arr->data entries instead of # of slots + 1.
6504
6505         PR middle-end/40316
6506         * recog.c (peep2_reinit_state): New function.
6507         (peephole2_init_state): Use it at the end of a basic block and also
6508         when seeing a RTX_FRAME_RELATED_P insn.
6509
6510 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
6511
6512         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
6513         fixuns_truncrfdi2): New.
6514         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
6515         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
6516         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
6517         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
6518         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
6519         *recip_approx): Remove.
6520         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
6521         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
6522         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
6523         move to div.md.
6524         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
6525         setf_exp_rf): New.
6526
6527 2009-06-01  Ian Lance Taylor  <iant@google.com>
6528
6529         * attribs.c (register_attribute): Use CONST_CAST.
6530         * collect2.c (main): Use CONST_CAST2.
6531         (scan_prog_file): Likewise.
6532         * gcc.c (process_command, main): Likewise.
6533         * toplev.c (toplev_main): Likewise.
6534
6535         * c-typeck.c (handle_warn_cast_qual): New static function,
6536         partially broken out of build_c_cast.
6537         (build_c_cast): Call handle_warn_cast_qual.
6538         * doc/invoke.texi (Warning Options): Document new effect of
6539         -Wcast-qual.
6540
6541 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
6542
6543         * diagnostic.c (diagnostic_build_prefix): Always print columns.
6544         (diagnostic_report_current_module): Print columns.
6545         * common.opt (flag_show_column): Enable by default.
6546
6547 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
6548
6549         * alias.c (find_base_term): Check for NULL term before returning.
6550
6551 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
6552
6553         Revert due to PR40320:
6554         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
6555         * calls.c (emit_library_call_value_1): Don't force_operand for move
6556         and push insns.
6557
6558 2009-06-01  Olivier Hainque  <hainque@adacore.com>
6559             Eric Botcazou  <ebotcazou@adacore.com>
6560
6561         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
6562         to be processed as a bitfield for constructor output purposes.
6563         * output.h (initializer_constant_valid_for_bitfield_p): Declare
6564         new function.
6565         * varasm.c (oc_local_state): New type, output_constructor
6566         local state to support communication with helpers.
6567         (oc_outer_state): New type, output_constructor outer state of
6568         relevance in recursive calls.
6569         (output_constructor_array_range): New output_constructor helper,
6570         extracted code for an array range element.
6571         (output_constructor_regular_field): New output_constructor helper,
6572         extracted code for an element that is not a bitfield.
6573         (output_constructor_bitfield): New output_constructor helper,
6574         extracted code for a bitfield element.  Accept an OUTER state
6575         argument for recursive processing.  Recurse on record or array
6576         CONSTRUCTOR values, possibly past noop conversions.
6577         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
6578         VALUE is a valid constant-valued expression for use in a static
6579         bit-field initializer.
6580         (output_constructor): Rework to use helpers.  Accept and honor an
6581         OUTER state argument for recursive calls.  Return total size.  Be
6582         prepared for nested constructors initializing bitfields.
6583         (output_constant): Feed OUTER in calls to output_constructor.
6584
6585 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
6586
6587         * calls.c (emit_library_call_value_1): Don't force_operand for move
6588         and push insns.
6589
6590 2009-06-01  Nick Clifton  <nickc@redhat.com>
6591
6592         * doc/invoke.texi (IA-64 Options): Fix typo.
6593
6594 2009-06-01  Ira Rosen  <irar@il.ibm.com>
6595
6596         PR tree-optimization/39129
6597         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the
6598         printed message.
6599         (vect_do_peeling_for_loop_bound): Use
6600         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
6601         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
6602         (vect_loop_versioning): Likewise.
6603         (vect_create_cond_for_alias_checks): Fix indentation.
6604         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the
6605         macros.
6606         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
6607         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
6608         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to
6609         "control flow in loop".
6610         (vect_estimate_min_profitable_iters): Use
6611         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
6612         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
6613         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
6614         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
6615         * tree-vect-stmts.c (vectorizable_store): Replace the check that the
6616         statement belongs to a group of strided accesses with the exact code
6617         check.
6618         (vectorizable_load): Likewise.
6619         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
6620         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
6621
6622 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
6623
6624         * config/freebsd-stdint.h: New file.
6625         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
6626         Add freebsd-stdint.h to tm_file.
6627
6628 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
6629
6630         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
6631         (thumb2_extendhidi2): Likewise.
6632
6633 2009-05-31  Ian Lance Taylor  <iant@google.com>
6634
6635         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
6636
6637 2009-05-31  Ian Lance Taylor  <iant@google.com>
6638
6639         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
6640         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
6641         (ipa-reference.o): Depend upon gt-ipa-reference.h.
6642
6643 2009-05-31  Jason Merrill  <jason@redhat.com>
6644
6645         * tree-pretty-print.c (print_call_name): Take the callee, not the
6646         call itself.  Make non-static.  Use dump_function_name for functions.
6647         (dump_generic_node): Adjust.
6648         * diagnostic.h: Declare print_call_name.
6649         * gimple-pretty-print.c (dump_gimple_call): Use it.
6650
6651 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
6652
6653         * config/sh/sh.md (ashldi3_std): New define_expand.
6654         (ashldi3): Use it.
6655
6656 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
6657
6658         PR target/40313
6659         * config/sh/sh.c: Include debug.h.
6660         (sh_expand_epilogue): Emit a blockage insn before the frame
6661         pointer adjustment also when dwarf2out_do_frame returns true.
6662
6663 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
6664
6665         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
6666         (thumb2_extendqidi2): New pattern.
6667
6668 2009-05-31  Ira Rosen  <irar@il.ibm.com>
6669
6670         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
6671         mark phis for renaming.
6672         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
6673         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
6674         Call mark_sym_for_renaming.
6675         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
6676         * tree-vect-loop.c (vect_transform_loop): Remove
6677         vect_memsyms_to_rename initialization and a call to
6678         mark_set_for_renaming.
6679
6680 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
6681
6682         PR middle-end/40304
6683         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
6684         frame related even if !set_cfa && style < 0.
6685
6686 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
6687
6688         * config/i386/mingw-tls.c: New file.
6689         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
6690         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
6691         defining _WIN32 but not __CYGWIN__.
6692
6693 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6694
6695         * configure.ac: Add MPC support.
6696         
6697         * config.in, configure: Regenerate.     
6698
6699 2009-05-29  Richard Henderson  <rth@redhat.com>
6700
6701         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
6702         NOTE_INSN_BASIC_BLOCK.
6703         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
6704         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
6705         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
6706         to be deleted.
6707         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
6708         add in_use field.
6709         (add_cfi): Disable check redefining cfa away from drap.
6710         (lookup_cfa_1): Add remember argument; handle remember/restore.
6711         (lookup_cfa): Pass remember argument.
6712         (cfa_remember): New.
6713         (compute_barrier_args_size_1): Remove sibcall check.
6714         (dwarf2out_frame_debug_def_cfa): New.
6715         (dwarf2out_frame_debug_adjust_cfa): New.
6716         (dwarf2out_frame_debug_cfa_offset): New.
6717         (dwarf2out_frame_debug_cfa_register): New.
6718         (dwarf2out_frame_debug_cfa_restore): New.
6719         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
6720         (dwarf2out_begin_epilogue): New.
6721         (dwarf2out_frame_debug_restore_state): New.
6722         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
6723         DW_CFA_restore_state.
6724         (output_cfi_directive): Likewise.
6725         (convert_cfa_to_fb_loc_list): Likewise.
6726         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
6727         * dwarf2out.h: Update.
6728         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
6729         (copy_insn_1): Early out for null.
6730         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
6731         and dwarf2out_frame_debug_restore_state.
6732         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
6733         (prologue_insn_hash, epilogue_insn_hash): New.
6734         (free_after_compilation): Adjust freeing accordingly.
6735         (record_insns): Create hash table if needed; push insns into
6736         hash instead of array.
6737         (maybe_copy_epilogue_insn): New.
6738         (contains): Search hash table instead of array.
6739         (sibcall_epilogue_contains): Remove.
6740         (thread_prologue_and_epilogue_insns): Split eh_return insns
6741         and mark them as epilogues.
6742         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
6743         scanning in terms of basic blocks.
6744         * insn-notes.def (CFA_RESTORE_STATE): New.
6745         * jump.c (returnjump_p_1): Accept EH_RETURN.
6746         (eh_returnjump_p_1, eh_returnjump_p): New.
6747         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
6748         CFA_REGISTER, CFA_RESTORE): New.
6749         * rtl.def (EH_RETURN): New.
6750         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
6751
6752         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
6753         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
6754
6755         * config/i386/i386.c (gen_push): Update cfa state.
6756         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
6757         add a CFA_ADJUST_CFA note.
6758         (ix86_dwarf_handle_frame_unspec): Remove.
6759         (ix86_expand_prologue): Update cfa state.
6760         (ix86_emit_restore_reg_using_pop): New.
6761         (ix86_emit_restore_regs_using_pop): New.
6762         (ix86_emit_leave): New.
6763         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
6764         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
6765         * config/i386/i386.h (struct machine_cfa_state): New.
6766         (ix86_cfa_state): New.
6767         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
6768         (eh_return_internal): Merge from eh_return_<mode>,
6769         use eh_return rtx, split w/ epilogue.
6770
6771 2009-05-29  Ian Lance Taylor  <iant@google.com>
6772
6773         * builtins.c (validate_gimple_arglist): Don't use va_arg with
6774         enum type.
6775         * calls.c (emit_library_call_value_1): Likewise.
6776
6777         * c-typeck.c (c_build_va_arg): New function.
6778         * c-tree.h (c_build_va_arg): Declare.
6779         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
6780         instead of build_va_arg.
6781
6782 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
6783
6784         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
6785         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
6786         (ptr_difference_cost): Use affine combinations to compute it.
6787         (difference_cost): Likewise.
6788         (get_computation_cost_at): Compute more accurate cost for addresses
6789         if the ratio is a multiplier allowed in addresses.
6790         For non-addresses, consider that an additional offset or symbol is
6791         added only once.
6792
6793 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
6794
6795         * config/i386/i386.c (ix86_decompose_address): Avoid useless
6796         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
6797
6798         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
6799         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
6800         (prefix_rex): For UNIT_MMX don't imply the prefix by default
6801         if MODE_DI.
6802         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
6803         to 1 for TYPE_SSE{IADD1,CVT1}.
6804         (prefix_vex_imm8): Removed.
6805         (length_vex): Only pass 1 as second argument to
6806         ix86_attr_length_vex_default if prefix_extra is 0.
6807         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
6808         (length): For prefix vex computation use length_immediate
6809         attribute instead of prefix_vex_imm8.
6810         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
6811         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
6812         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
6813         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
6814         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
6815         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
6816         a space in between the operands.
6817         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
6818         if one operand is 0xff and the other one si, di, bp or sp.
6819         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
6820         other one si, di, bp or sp.
6821         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
6822         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
6823         type and mode attributes.
6824         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
6825         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
6826         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
6827         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
6828         prefix_data16 attribute iff MODE_DF.
6829         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
6830         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
6831         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
6832         constm128_operand in length_immediate computation.
6833         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
6834         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
6835         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
6836         length_immediate attribute to 1.
6837         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
6838         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
6839         for certain alternatives.
6840         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
6841         prefix_data16 attribute if MODE_V1DF.
6842         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
6843         length_immediate to 1.
6844         (set_got_rex64, set_rip_rex64): Remove length attribute, set
6845         length_address to 4, set mode attribute to MODE_DI.
6846         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
6847         (fxam<mode>2_i387): Set length attribute to 4.
6848         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
6849         *prefetch_3dnow_rex): Override length_address attribute.
6850         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
6851         attributes.
6852         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
6853         (constm128_operand): Removed.
6854         * config/i386/i386.c (memory_address_length): For
6855         disp && !index && !base in 64-bit mode account for SIB byte if
6856         print_operand_address can't optimize disp32 into disp32(%rip)
6857         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
6858         for fs: or gs: segment.
6859         (ix86_attr_length_immediate_default): When checking if shortform
6860         is possible, truncate immediate to the length of the non-shortened
6861         immediate.
6862         (ix86_attr_length_address_default): Ignore MEM_P operands
6863         with X constraint.
6864         (ix86_attr_length_vex_default): Only check for DImode on
6865         GENERAL_REG_P operands.
6866         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
6867         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
6868         (sse_cvttps2pi): Clear prefix_rep attribute.
6869         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
6870         attribute.
6871         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
6872         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
6873         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
6874         iff operand 2 is const_int_operand.
6875         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
6876         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
6877         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
6878         instead of vex.
6879         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
6880         prefix_data16.
6881         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
6882         prefix_data16 attribute for movlpd and movhpd instructions.
6883         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
6884         length_immediate for shufpd instruction.
6885         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
6886         (avx_cmpp<avxmodesuffixf2c><mode>3,
6887         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
6888         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
6889         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
6890         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
6891         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
6892         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
6893         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
6894         prefix_data16 attribute for the first alternative to 1.
6895         (*avx_loadlps): Override length_immediate for the first alternative.
6896         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
6897         attributes for second alternative.
6898         (*vec_concatv2sf_sse4_1): Override length_immediate and
6899         prefix_data16 attributes for second alternative.
6900         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
6901         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
6902         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
6903         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
6904         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
6905         prefix_data16 and length_immediate to 1.
6906         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
6907         to 1.
6908         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
6909         prefix_extra attribute for variants that don't have 0f prefix alone.
6910         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
6911         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
6912         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
6913         *sse4_1_pextrd): Set length_immediate to 1.
6914         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
6915         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
6916         to 1.
6917         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
6918         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
6919         length_immediate to 1 for second alternative.
6920         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
6921         prefix_extra and length_immediate attributes for the first
6922         alternative.
6923         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
6924         first alternative.
6925         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
6926         to 1 for the first and third alternative.
6927         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
6928         alternative.
6929         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
6930         attribute.
6931         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
6932         attribute to 0.
6933         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
6934         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
6935         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
6936         *avx_psign<mode>3): Set prefix_extra attribute to 1.
6937         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
6938         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
6939         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
6940         ssse3_psign<mode>3): Override prefix_rex attribute.
6941         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
6942         (ssse3_palignrti): Override length_immediate to 1.
6943         (ssse3_palignrdi): Override length_immediate to 1, override
6944         prefix_rex attribute.
6945         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
6946         (sse4a_extrqi): Override length_immediate to 2.
6947         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
6948         (sse4a_insertq): Override prefix_data16 to 0.
6949         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
6950         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
6951         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
6952         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
6953         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
6954         and length_immediate to 1.
6955         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
6956         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
6957         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
6958         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
6959         and length_immediate to 1.
6960         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
6961         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
6962         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
6963         avx_ptest256): Override prefix_extra to 1.
6964         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
6965         Override prefix_data16 and length_immediate to 1.
6966         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
6967         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
6968         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
6969         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
6970         prefix_data16 to 0 and prefix_extra to 2.
6971         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
6972         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
6973         attribute.
6974         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
6975         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
6976         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
6977         and prefix_extra to 2.
6978         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
6979         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
6980         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
6981         avx_vpermilvar<mode>3,
6982         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
6983         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
6984         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
6985         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
6986         Override prefix_extra to 1.
6987         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
6988         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
6989         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
6990         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
6991         prefix_extra and length_immediate to 1.
6992         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
6993         modrm to 0.
6994         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
6995         to 1 for the first alternative.
6996         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
6997         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
6998         cases.
6999         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
7000         *movv2sf_internal_avx, *movv2sf_internal): Override
7001         prefix_rep attribute for certain alternatives.
7002         (*mov<mode>_internal): Override prefix_rep or prefix_data16
7003         attributes for certain alternatives.
7004         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
7005         attributes for certain alternatives.
7006         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
7007         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
7008         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
7009         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
7010         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
7011         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
7012         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
7013         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
7014         length_immediate to 1 if operand 2 is const_int_operand.
7015         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
7016         *vec_extractv2si_1): Set length_immediate attribute to 1.
7017         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
7018         using old 3DNOW insn rather than SSE/3DNOW_A.
7019         (mmx_emms, mmx_femms): Clear modrm attribute.
7020
7021 2009-05-29  Martin Jambor  <mjambor@suse.cz>
7022
7023         * tree-sra.c:  New implementation of SRA.
7024
7025         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
7026         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
7027         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
7028         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
7029         (SRA_MAX_STRUCTURE_COUNT): Removed.
7030         (SRA_FIELD_STRUCTURE_RATIO): Removed.
7031         * doc/invoke.texi (sra-max-structure-size): Removed.
7032         (sra-field-structure-ratio): Removed.
7033
7034 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
7035
7036         PR middle-end/40291
7037         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
7038         before expansion.
7039
7040 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
7041
7042         PR rtl-optimization/40101
7043         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
7044         seqno.  Adjust comment.
7045         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
7046         inserting bookkeeping before a jump, the jump is not scheduled.
7047         When no positive seqno found, provide a value.  Add comment.
7048
7049 2009-05-29  Richard Guenther  <rguenther@suse.de>
7050
7051         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
7052         short-cutting on the first component.
7053
7054 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
7055
7056         PR middle-end/39958
7057         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
7058         for trees other than decls/types.
7059
7060 2009-05-29  Richard Guenther  <rguenther@suse.de>
7061
7062         * tree-ssa-operands.c (get_expr_operands): Do not handle
7063         INDIRECT_REFs in the handled-component case.  Remove
7064         unused get_ref_base_and_extent case.
7065         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
7066         tree_low_cst and host_integerp where possible.
7067         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
7068         codes for equivalence.
7069         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
7070
7071 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
7072
7073         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
7074         to tmake_file for i[34567]86-*-cygwin*. 
7075
7076 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
7077
7078         PR target/40017
7079         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
7080         (altivec_categorize_keyword, init_vector_keywords,
7081         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
7082         similar to bool.
7083
7084 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
7085
7086         * tree.c (handle_dll_attribute): Check if node is
7087         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
7088
7089 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
7090
7091         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
7092         component.
7093         (thumb2_zero_extendqidi2): Likewise.
7094
7095 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
7096
7097         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
7098         instead of gen_movrt.
7099         * config/sh/sh.md (movrt): Remove.
7100
7101 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
7102
7103         * doc/invoke.texi (IA-64 Options):
7104         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
7105         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
7106         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
7107         -msched-prefer-non-control-spec-insns,
7108         -msched-stop-bits-after-every-cycle,
7109         -msched-count-spec-in-critical-path,
7110         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
7111         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
7112         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
7113         and -msched-spec-verbose.
7114
7115 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
7116
7117         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
7118         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
7119         error if used.
7120         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
7121
7122 2009-05-28  Richard Guenther  <rguenther@suse.de>
7123
7124         * tree-ssa-alias.c (ao_ref_init): New function.
7125         (ao_ref_base): Likewise.
7126         (ao_ref_base_alias_set): Likewise.
7127         (ao_ref_alias_set): Likewise.
7128         (refs_may_alias_p_1): Change signature.
7129         (refs_may_alias_p): Adjust.
7130         (refs_anti_dependent_p): Likewise.
7131         (refs_output_dependent_p): Likewise.
7132         (call_may_clobber_ref_p_1): Change signature.
7133         (call_may_clobber_ref_p): Adjust.
7134         (stmt_may_clobber_ref_p_1): New function split out from ...
7135         (stmt_may_clobber_ref_p): ... here.
7136         (maybe_skip_until): Adjust signature.
7137         (get_continuation_for_phi): Likewise.
7138         (walk_non_aliased_vuses): Likewise.
7139         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
7140         (ao_ref_init): Declare.
7141         (ao_ref_base): Likewise.
7142         (ao_ref_alias_set): Likewise.
7143         (stmt_may_clobber_ref_p_1): Likewise.
7144         (walk_non_aliased_vuses): Adjust.
7145         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
7146         (get_ref_from_reference_ops): remove.
7147         (vn_reference_lookup_2): Adjust signature.
7148         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
7149         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
7150         (vn_reference_lookup): Adjust.
7151         (vn_reference_insert): Likewise.
7152         (vn_reference_insert_pieces): Adjust signature.
7153         (visit_reference_op_call): Adjust.
7154         * tree-ssa-pre.c (get_expr_type): Simplify.
7155         (phi_translate_1): Adjust.
7156         (compute_avail): Likewise.
7157         (translate_vuse_through_block): Do not re-build trees.
7158         (value_dies_in_block_x): Likewise.
7159         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
7160         fields.
7161         (vn_reference_lookup_pieces): Adjust declaration.
7162         (vn_reference_insert_pieces): Likewise.
7163
7164 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
7165
7166         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
7167         with checking disabled.
7168
7169 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
7170
7171         PR target/37216
7172
7173         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
7174         macro definition for support of three-operand format aligned
7175         .comm directive in assembler on cygwin/pe/mingw target OS.
7176         * configure:  Regenerate.
7177         * config.h:  Regenerate.
7178
7179         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
7180         aligned form of .comm directive if -mpe-aligned-commons is in effect.
7181         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
7182
7183         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
7184         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
7185
7186 2009-05-28  Ira Rosen  <irar@il.ibm.com>
7187
7188         PR tree-optimization/40254
7189         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
7190         in analysis of basic blocks.
7191
7192 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
7193
7194         PR middle-end/33699
7195         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
7196         * target-def.h (TARGET_CONST_ANCHOR): New macro.
7197         (TARGET_INITIALIZER): Use it.
7198         * cse.c (CHEAPER): Move it up to the other macros.
7199         (insert): Rename this ...
7200         (insert_with_costs): ... to this.  Add cost parameters.  Update
7201         function comment.
7202         (insert): New function.  Call insert_with_costs.
7203         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
7204         find_reg_offset_for_const, try_const_anchors): New functions.
7205         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
7206         when using a const-anchor.  Call insert_const_anchors.
7207         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
7208         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
7209
7210 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
7211
7212         * tree-inline.c (remap_decls): Enable nonlocalized variables
7213         when not optimizing.
7214
7215 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
7216
7217         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
7218         Simplify other tests involving optimize.
7219
7220 2009-05-27  Tom Tromey  <tromey@redhat.com>
7221
7222         * unwind-dw2.c (_Unwind_DebugHook): New function.
7223         (uw_install_context): Call _Unwind_DebugHook.
7224
7225 2009-05-27  Tom Tromey  <tromey@redhat.com>
7226
7227         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
7228
7229 2009-05-27  Ian Lance Taylor  <iant@google.com>
7230
7231         * Makefile.in (LINKER, LINKER_FLAGS): Define.
7232         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
7233         (ALL_LINKERFLAGS): Define.
7234         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
7235         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
7236         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
7237         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
7238         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
7239         $(LINKER_FOR_BUILD).
7240         (build/gcov-iov$(build_exeext)): Likewise.
7241
7242 2009-05-27  Julian Brown  <julian@codesourcery.com>
7243
7244         * gcse.c (target.h): Include.
7245         (can_assign_to_reg_without_clobbers_p): Check that the target allows
7246         copy of argument to a pseudo register.
7247
7248 2009-05-27  Diego Novillo  <dnovillo@google.com>
7249
7250         * tree-ssa-live.c (dump_scope_block): Document arguments.
7251         (dump_scope_blocks): Document.
7252         (debug_scope_blocks): New.
7253         * tree-flow.h (debug_scope_blocks): Declare.
7254
7255 2009-05-21  Denis Chertykov  <denisc@overta.ru>
7256
7257         * doc/contrib.texi (Contributors): Add myself to the list.
7258
7259 2009-05-27  Olivier Hainque  <hainque@adacore.com>
7260
7261         * expr.c (target_align): New function.  Alignment the TARGET of an
7262         assignment may be assume to have.
7263         (highest_pow2_factor_for_target): Use it instead of relying on
7264         immediate tree attributes of TARGET, not necessarily honored when
7265         intermediate bitfields are involved.
7266         
7267 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
7268
7269         PR target/40266
7270         * config/i386/driver-i386.c (host_detect_local_cpu): Support
7271         AVX, SSE4, AES, PCLMUL and POPCNT.
7272
7273 2009-05-27  Diego Novillo  <dnovillo@google.com>
7274
7275         * tree-pretty-print.c (dump_location): New.
7276         (dump_generic_node): Call it.
7277         Factor code to handle BLOCK nodes ...
7278         (dump_block_node): ... here.
7279
7280 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
7281
7282         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
7283         with it.
7284         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
7285         included.
7286         * gcc-plugin.h: Include config.h and system.h.
7287         (IN_GCC): Define if not defined.
7288
7289 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
7290
7291         PR middle-end/40249
7292         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
7293         with -fno-inline.
7294
7295 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
7296
7297         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
7298         applicable.
7299         * config/m32r/m32r.h: Ditto.
7300         * config/m32r/m32r.md: Ditto.
7301         * config/m32r/predicates.md: Ditto.
7302
7303 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
7304
7305         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
7306
7307 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
7308
7309         * doc/plugins.texi
7310         (Loading plugins): typo.
7311         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
7312         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
7313         (Interacting with the GCC Garbage Collector): Added new section.
7314         (Giving information about a plugin): Added new section for
7315         PLUGIN_INFO.
7316         * ggc.h (ggc_register_root_tab): Added declaration.
7317         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
7318         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
7319         (register_callback): Improved comment in declaration.
7320         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
7321         (extra_root_vec) Added static variable for dynamic roots registration.
7322         (ggc_register_root_tab) Added new routine.
7323         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
7324         PLUGIN_GGC_MARKING event.
7325         * ggc-zone.c: Include plugin.h.
7326         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
7327         * ggc-page.c: Include plugin.h.
7328         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
7329         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
7330         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
7331         (register_callback): check lack of callbacks for
7332         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
7333         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
7334         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
7335         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
7336         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
7337         dependency on plugin.h.
7338         (plugin.o): Added dependency on ggc.h...
7339
7340 2009-05-26  Richard Guenther  <rguenther@suse.de>
7341
7342         PR middle-end/40248
7343         Revert
7344         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
7345         with mismatched comparison modes.
7346
7347         * expr.c (expand_expr_real_1): Expand the operand of a
7348         VIEW_CONVERT_EXPR in its natural mode.
7349
7350 2009-05-26  Ian Lance Taylor  <iant@google.com>
7351
7352         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
7353         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
7354         (ALL_COMPILERFLAGS): Define.
7355         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
7356         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
7357         (collect2$(exeext), collect2.o): Likewise.
7358         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
7359         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
7360         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
7361         (libbackend.o, intl.o, cppdefault.o): Likewise.
7362         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
7363         (build/%.o): Use $(COMPILER_FOR_BUILD).
7364         (build/gen%$(build_exeext)): Likewise.
7365         (build/gcov-iov$(build_exeext)): LIkewise.
7366         * config/t-darwin (darwin.o): Use $(COMPILER).
7367         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
7368         * config/t-sol2 (sol2-c.o): Likewise.
7369         (sol2.o): Likewise.
7370         * config/t-vxworks (vxworks.o): Likewise.
7371         * config/x-darwin (host-darwin.o): Likewise.
7372         * config/x-hpux (host-hpux.o): Likewise.
7373         * config/x-linux (host-linux.o): Likewise.
7374         * config/x-solaris (host-solaris.o): Likewise.
7375         * config/alpha/x-alpha (driver-alpha.o): Likewise.
7376         * config/arm/t-arm (arm-c.o): Likewise.
7377         * config/arm/t-pe (pe.o): Likewise.
7378         * config/arm/t-wince-pe (pe.o): Likewise.
7379         * config/i386/t-cygming (winnt.o): Likewise.
7380         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
7381         * config/i386/t-cygwin (cygwin1.o): Likewise.
7382         (cygwin2.o): Likewise.
7383         * config/i386/t-i386 (i386-c.o): Likewise.
7384         * config/i386/t-interix (winnt.o): Likewise.
7385         * config/i386/t-netware (netware.o): Likewise.
7386         * config/i386/t-nwld (nwld.o): Likewise.
7387         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
7388         * config/i386/x-i386 (driver-i386.o): Likewise.
7389         * config/i386/x-cygwin (host-cygwin.o): Likewise.
7390         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
7391         * config/ia64/t-ia64 (ia64-c.o): Likewise.
7392         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
7393         * config/mips/x-native (driver-native.o): Likewise.
7394         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
7395         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
7396         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
7397         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
7398         * config/score/t-score-elf (score7.o): Likewise.
7399         (score3.o): Likewise.
7400         * config/sh/t-sh (sh-c.o): Likewise.
7401         * config/sh/t-symbian (sh-c.o): Likewise.
7402         (symbian.o): Likewise.
7403         * config/spu/t-spu-elf (spu-c.o): Likewise.
7404         * config/v850/t-v850 (v850-c.o): Likewise.
7405         * config/v850/t-v850e (v850-c.o): Likewise.
7406
7407 2009-05-26  Richard Guenther  <rguenther@suse.de>
7408
7409         PR tree-optimization/40122
7410         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
7411         VECTOR_CSTs if possible.
7412         (fold_gimple_assign): Likewise.
7413
7414 2009-05-26  Richard Guenther  <rguenther@suse.de>
7415
7416         PR middle-end/40252
7417         * fold-const.c (fold_binary): Use the correct types for building
7418         rotates.
7419
7420 2009-05-26  Richard Guenther  <rguenther@suse.de>
7421
7422         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
7423         redundant calls to merge_alias_info.
7424         (bump_vector_ptr): Likewise.
7425         * tree-ssa-copy.c (merge_alias_info): Remove.
7426         (replace_exp_1): Remove call to merge_alias_info.
7427         (propagate_tree_value): Likewise.
7428         (fini_copy_prop): Propagate points-to info.
7429         * tree-flow.h (merge_alias_info): Remove.
7430
7431 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
7432
7433         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
7434
7435 2009-05-25  Jan Hubicka  <jh@suse.cz>
7436
7437         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
7438         * cgraph.h (struct inline_summary): New filed self_wize,
7439         size_inlining_benefit, self_time and time_inlining_benefit.
7440         (struct cgraph_global_info): Replace insns by time ans size fields.
7441         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
7442         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
7443         (ipcp_update_callgraph): Do not touch function bodies.
7444         * ipa-inline.c: Include except.h
7445         (MAX_TIME): New constant.
7446         (overall_insns): Remove.
7447         (leaf_node_p): New.
7448         (overall_size, max_benefit): New static variables.
7449         (cgraph_estimate_time_after_inlining): New function.
7450         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
7451         (cgraph_clone_inlined_nodes): Update size.
7452         (cgraph_mark_inline_edge): Update size.
7453         (cgraph_estimate_growth): Use size info.
7454         (cgraph_check_inline_limits): Check size.
7455         (cgraph_default_inline_p): Likewise.
7456         (cgraph_edge_badness): Compute badness based on benefit and size cost.
7457         (cgraph_decide_recursive_inlining): Check size.
7458         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
7459         and times.
7460         (cgraph_decide_inlining): Likewise.
7461         (cgraph_decide_inlining_incrementally): Likewise; honor
7462         PARAM_EARLY_INLINING_INSNS.
7463         (likely_eliminated_by_inlining_p): New predicate.
7464         (estimate_function_body_sizes): New function.
7465         (compute_inline_parameters): Use it.
7466         * except.c (must_not_throw_labels): New function.
7467         * except.h (must_not_throw_labels): Declare.
7468         * tree-inline.c (init_inline_once): Kill inlining_weigths
7469         * tree-ssa-structalias.c: Avoid uninitialized warning.
7470         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
7471         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
7472         (PARAM_INLINE_CALL_COST): Remove.
7473         (PARAM_EARLY_INLINING_INSNS): New.
7474
7475 2009-05-25  Richard Guenther  <rguenther@suse.de>
7476
7477         PR tree-optimization/36327
7478         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
7479         callback for reference translation or lookup at the point of may-defs.
7480         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
7481         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
7482         for union COMPONENT_REFs.
7483         (vn_reference_lookup_3): New callback.  Lookup from memset
7484         and CONSTRUCTOR assignment, translate through struct copies.
7485         (vn_reference_lookup_pieces): Make sure to not free the
7486         passed operands array.  Adjust walk_non_aliased_vuses call.
7487         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
7488         make sure we do not leak memory.
7489
7490 2009-05-25  Richard Guenther  <rguenther@suse.de>
7491
7492         * tree-ssa-alias.h (dump_points_to_solution): Declare.
7493         * tree-inline.c (expand_call_inline): Reset the escaped and
7494         callused solutions.
7495         * tree-ssa-structalias.c (pass_build_ealias): New.
7496         * tree-pass.h (pass_build_ealias): Declare.
7497         * passes.c (init_optimization_passes): Add PTA during 
7498         early optimizations.
7499         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
7500         and CALLUSED solutions.
7501         (dump_points_to_solution): New function, split out from ...
7502         (dump_points_to_info_for): ... here.
7503         * tree-parloops.c (parallelize_loops): Reset the escaped and
7504         callused solutions.
7505
7506 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7507
7508         PR bootstrap/40027
7509         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
7510         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
7511
7512 2009-05-25  Ira Rosen  <irar@il.ibm.com>
7513
7514         PR tree-optimization/40238
7515         * tree-vect-stmts.c (vect_init_vector): Insert initialization
7516         statements after basic block's labels.
7517         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
7518         to free the allocated memory.
7519
7520 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
7521
7522         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
7523         return address with a USE.
7524
7525 2009-05-24  Richard Guenther  <rguenther@suse.de>
7526
7527         PR middle-end/40233
7528         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
7529         array type from the main variant of the inner type.
7530
7531 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
7532
7533         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
7534         definition to bool (from int) to un-break build.
7535         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
7536
7537 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
7538
7539         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
7540         discard_stmt_changes): Delete.
7541         * tree-ssa-operands.c (scb_stack): Delete.
7542         (init_ssa_operands): Do not initialize it.
7543         (fini_ssa_operands): Do not free it.
7544         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
7545
7546         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
7547         update_stmt, remove the others.  Fix comments.
7548         * tree-dfa.c (optimize_stack_restore): Likewise.
7549         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
7550         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
7551         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
7552         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
7553         Likewise.
7554         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
7555         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
7556         (dom_opt_finalize_block): Likewise, adjusting access to
7557         stmts_to_rescan.
7558         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
7559         (stmts_to_rescan): Change item type to gimple.
7560         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
7561
7562 2009-05-24  Ira Rosen  <irar@il.ibm.com>
7563
7564         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
7565         * tree-pass.h (pass_slp_vectorize): New pass.
7566         * params.h (SLP_MAX_INSNS_IN_BB): Define.
7567         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
7568         * tree-vectorizer.c (timevar.h): Include.
7569         (user_vect_verbosity_level): Declare.
7570         (vect_location): Fix comment.
7571         (vect_set_verbosity_level): Update user_vect_verbosity_level
7572         instead of vect_verbosity_level.
7573         (vect_set_dump_settings): Add an argument. Ignore user defined
7574         verbosity if dump flags require higher level of verbosity. Print to
7575         stderr only for loop vectorization.
7576         (vectorize_loops): Update call to vect_set_dump_settings.
7577         (execute_vect_slp): New function.
7578         (gate_vect_slp): Likewise.
7579         (struct gimple_opt_pass pass_slp_vectorize): New.
7580         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
7581         access its members.
7582         (vec_info_for_bb): New function.
7583         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
7584         (VECTORIZATION_ENABLED): New macro.
7585         (SLP_ENABLED, SLP_DISABLED): Likewise.
7586         (vect_is_simple_use): Add bb_vec_info argument.
7587         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
7588         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
7589         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
7590         vect_schedule_slp, vect_analyze_slp): Likewise.
7591         (vect_analyze_stmt): Add slp_tree argument.
7592         (find_bb_location): Declare.
7593         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
7594         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
7595         (vect_analyze_loop_operations, vect_analyze_loop,
7596         get_initial_def_for_induction, vect_create_epilog_for_reduction,
7597         vect_finalize_reduction, vectorizable_reduction,
7598         vectorizable_live_operation, vect_transform_loop): Likewise.
7599         * tree-data-ref.c (dr_analyze_innermost): Update comment,
7600         skip evolution analysis if analyzing a basic block.
7601         (dr_analyze_indices): Likewise.
7602         (initialize_data_dependence_relation): Skip the test whether the
7603         object is invariant for basic blocks.
7604         (compute_all_dependences): Skip dependence analysis for data
7605         references in basic blocks.
7606         (find_data_references_in_stmt): Don't fail in case of invariant
7607         access in basic block.
7608         (find_data_references_in_bb): New function.
7609         (find_data_references_in_loop): Move code to
7610         find_data_references_in_bb and add a call to it.
7611         (compute_data_dependences_for_bb): New function.
7612         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
7613         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
7614         that STEP is 0.
7615         (vect_analyze_data_ref_dependence): Check for interleaving in case of
7616         unknown dependence in basic block and fail in case of dependence in
7617         basic block.
7618         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
7619         dependence instances from either loop or basic block vectorization
7620         info.
7621         (vect_compute_data_ref_alignment): Check if it is loop vectorization
7622         before calling nested_in_vect_loop_p.
7623         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
7624         dependence instances from either loop or basic block vectorization
7625         info.
7626         (vect_verify_datarefs_alignment): Likewise.
7627         (vect_enhance_data_refs_alignment): Adjust function calls.
7628         (vect_analyze_data_refs_alignment): Likewise.
7629         (vect_analyze_group_access): Fix printing. Skip different checks if
7630         DR_STEP is 0. Keep strided stores either in loop or basic block
7631         vectorization data structure. Fix indentation.
7632         (vect_analyze_data_ref_access): Fix comments, allow zero step in
7633         basic blocks.
7634         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
7635         dependence instances from either loop or basic block vectorization
7636         info.
7637         (vect_analyze_data_refs): Update comment. Call
7638         compute_data_dependences_for_bb to analyze basic blocks.
7639         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
7640         case of loop vectorization. In case of basic block vectorization use
7641         data-ref itself as a base.
7642         (vect_create_data_ref_ptr): In case of basic block vectorization:
7643         don't advance the pointer, add new statements before the current
7644         statement.  Adjust function calls.
7645         (vect_supportable_dr_alignment): Support only aligned accesses in
7646         basic block vectorization.
7647         * common.opt (ftree-slp-vectorize): New flag.
7648         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
7649         (vect_pattern_recog_1): Likewise.
7650         * tree-vect-stmts.c (process_use): Likewise.
7651         (vect_init_vector): Add new statements in the beginning of the basic
7652         block in case of basic block SLP.
7653         (vect_get_vec_def_for_operand): Adjust function calls.
7654         (vect_finish_stmt_generation): Likewise.
7655         (vectorizable_call): Add assert that it is loop vectorization, adjust
7656         function calls.
7657         (vectorizable_conversion, vectorizable_assignment): Likewise.
7658         (vectorizable_operation): In case of basic block SLP, take
7659         vectorization factor from statement's type and skip the relevance
7660         check. Adjust function calls.
7661         (vectorizable_type_demotion): Add assert that it is loop
7662         vectorization, adjust function calls.
7663         (vectorizable_type_promotion): Likewise.
7664         (vectorizable_store): Check for outer loop only in case of loop
7665         vectorization. Adjust function calls. For basic blocks, skip the
7666         relevance check and don't advance pointers.
7667         (vectorizable_load): Likewise.
7668         (vectorizable_condition): Add assert that it is loop vectorization,
7669         adjust function calls.
7670         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
7671         that it is not reduction, get vector type, call only supported
7672         functions, skip loop specific parts.
7673         (vect_transform_stmt): Check for outer loop only in case of loop
7674         vectorization.
7675         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
7676         (vect_is_simple_use): Fix comment, add new argument, fix conditions
7677         for external definition.
7678         * passes.c (pass_slp_vectorize): New pass.
7679         * tree-vect-slp.c (find_bb_location): New function.
7680         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
7681         check for patterns only in loops.
7682         (vect_build_slp_tree): Add argument, adjust function calls, fail in
7683         case of multiple types in basic block SLP.
7684         (vect_mark_slp_stmts_relevant): New function.
7685         (vect_supported_load_permutation_p): Fix comment.
7686         (vect_analyze_slp_instance): Add argument. In case of basic block
7687         SLP, take vectorization factor from statement's type, check that
7688         unrolling factor is 1. Adjust function call. Save SLP instance in
7689         either loop or basic block vectorization structure. Return FALSE,
7690         if SLP failed.
7691         (vect_analyze_slp): Add argument. Get strided stores groups from
7692         either loop or basic block vectorization structure. Return FALSE
7693         if basic block SLP failed.
7694         (new_bb_vec_info): New function.
7695         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
7696         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
7697         (vect_schedule_slp): Add argument. Get SLP instances from either
7698         loop or basic block vectorization structure. Set vectorization factor
7699         to be 1 for basic block SLP.
7700         (vect_slp_transform_bb): New function.
7701         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
7702
7703 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
7704
7705         * final.c (shorten_branches): Do not align labels for jump tables.
7706         (final_scan_insn): Use JUMP_TABLE_DATA_P.
7707
7708 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
7709
7710         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
7711         Remove outdated reference to flow.c and fix nits.
7712         * doc/gccint.texi: Tweak RTL description.
7713         * doc/rtl.texi: Likewise.
7714
7715 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
7716
7717         * config/avr/avr.c: Change my email address.
7718         * config/avr/avr.h: Likewise.
7719         * config/avr/avr.md: Likewise.
7720         * config/avr/avr-protos.h: Likewise.
7721         * config/avr/libgcc.S: Likewise.
7722
7723 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
7724
7725         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
7726         (spu_split_load, spu_split_store): Change return type to int.
7727         (spu_split_convert): Declare.
7728         * config/spu/predicates.md (spu_mem_operand): Remove.
7729         (spu_mov_operand): Update.
7730         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
7731         * config/spu/spu.c (regno_aligned_for_load): Remove.
7732         (reg_aligned_for_addr, spu_expand_load): Define.
7733         (spu_expand_extv): Reimplement and handle MEM.
7734         (spu_expand_insv): Handle MEM.
7735         (spu_sched_reorder): Handle insn's with length 0.
7736         (spu_legitimate_address_p): Reimplement.
7737         (store_with_one_insn_p): Return TRUE for any mode with size
7738         larger than 16 bytes.
7739         (address_needs_split): Define.
7740         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
7741         operands.
7742         (spu_convert_move): Define.
7743         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
7744         (spu_split_store): Change all MEM's to TImode.
7745         (spu_init_expanders): Preallocate registers that correspond to
7746         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
7747         mark_reg_pointer.
7748         (spu_split_convert): Define.
7749         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
7750         (_move<mode>, _movdi, _movti): Update predicate and condition.
7751         (load, store): Change to define_split.
7752         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
7753         extend<mode>ti2.
7754         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
7755         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
7756         define_insn_and_split of lshr<mode>3.
7757         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
7758         (<v>ashr<mode>3_imm): Define.
7759         (extv, extzv, insv): Allow MEM operands.
7760         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
7761         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
7762         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
7763         (_spu_convert2): Change to define_insn_and_split and remove the
7764         corresponding define_peephole2.
7765         (stack_protect_set, stack_protect_test, stack_protect_test_si):
7766         Change predicates to memory_operand.
7767
7768 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
7769
7770         * config/arm/thumb2.md: Add 16-bit multiply instructions.
7771
7772 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
7773
7774         PR tree-optimization/40219
7775         * tree.c (iterative_hash_expr): Make sure the builtin function is
7776         a normal builtin function and not a front end or back end builtin
7777         before indexing into the built_in_decls array.
7778
7779 2009-05-22  Richard Guenther  <rguenther@suse.de>
7780
7781         PR middle-end/38964
7782         * alias.c (write_dependence_p): Do not use TBAA for answering
7783         anti-dependence or output-dependence.
7784         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
7785         (emit_pointer_definition): Remove.
7786         (emit_alias_warning): Likewise.
7787         (find_what_var_points_to): Remove TBAA pruning code.
7788         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
7789         violations.
7790         (compute_points_to_sets): Remove code computing the set of
7791         dereferenced pointers.
7792         * tree-data-ref.c (dr_may_alias_p): Properly use the split
7793         oracle for querying anti and output dependencies.
7794         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
7795         if TBAA may be applied.
7796         (refs_anti_dependent_p): New function.
7797         (refs_output_dependent_p): Likewise.
7798         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
7799         (refs_output_dependent_p): Likewise.
7800         * doc/tree-ssa.texi (Memory model): New section.
7801         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
7802         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
7803         * cfgexpand.c (expand_gimple_basic_block): Do not handle
7804         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
7805         * expr.c (expand_expr_real_1): Likewise.
7806         * gimple-low.c (lower_stmt): Likewise.
7807         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
7808         (dump_gimple_cdt): Remove.
7809         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
7810         (gimple_size): Likewise.
7811         (walk_gimple_op): Likewise.
7812         (is_gimple_stmt): Likewise.
7813         (walk_stmt_load_store_addr_ops): Likewise.
7814         (gimple_build_cdt): Remove.
7815         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
7816         * gimple.h (gimple_cdt_new_type): Remove.
7817         (gimple_cdt_new_type_ptr): Likewise.
7818         (gimple_cdt_set_new_type): Likewise.
7819         (gimple_cdt_location): Likewise.
7820         (gimple_cdt_location_ptr): Likewise.
7821         (gimple_cdt_set_location): Likewise.
7822         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
7823         * tree-cfg.c (remove_useless_stmts_1): Do not handle
7824         GIMPLE_CHANGE_DYNAMIC_TYPE.
7825         (verify_types_in_gimple_stmt): Likewise.
7826         * tree-inline.c (estimate_num_insns): Likewise.
7827         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
7828         (copy_decl_to_var): Likewise.
7829         (copy_result_decl_to_var): Likewise.
7830         * tree-pretty-print.c (dump_generic_node): Do not handle
7831         CHANGE_DYNAMIC_TYPE_EXPR.
7832         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
7833         * tree-ssa-operands.c (get_expr_operands): Likewise.
7834         * tree-ssa-structalias.c (struct variable_info): Remove
7835         no_tbaa_pruning member.
7836         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
7837         (unify_nodes): Do not copy it.
7838         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
7839         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
7840         (set_uids_in_ptset): Do not check it.
7841         (find_what_var_points_to): Likewise.
7842         (compute_tbaa_pruning): Remove.
7843         (compute_points_to_sets): Do not call it.
7844         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
7845         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
7846         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
7847         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
7848         (DECL_NO_TBAA_P): Likewise.
7849         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
7850         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
7851         (expand_omp_atomic_pipeline): Do not set it.
7852         * print-tree.c (print_node): Do not dump it.
7853         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
7854         redundant check.
7855
7856 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
7857
7858         PR target/39856
7859         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
7860         for clobber.
7861
7862 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
7863
7864         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
7865         non-external.
7866
7867 2009-05-22  Ben Elliston  <bje@au.ibm.com>
7868
7869         * Makefile.in (bversion.h, s-bversion): New targets.
7870         (TOPLEV_H): Add bversion.h.
7871         * toplev.h: Include "bversion.h".
7872         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
7873         the __format__ attribute only if compiling with the same version
7874         of GCC as the sources (the "build version").
7875
7876 2009-05-22  Ben Elliston  <bje@au.ibm.com>
7877
7878         * c-format.c (handle_format_attribute): Fix comment typo.
7879
7880 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
7881
7882         PR target/37846
7883         * config/ia64/ia64.opt (mfused-madd): New.
7884         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
7885         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
7886         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
7887         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
7888         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
7889         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
7890         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
7891         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
7892         instruction if !TARGET_FUSED_MADD.
7893         (fpma, fpms): Remove colon from name.
7894
7895 2009-05-22  Richard Guenther  <rguenther@suse.de>
7896
7897         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
7898         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
7899         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
7900         TARGET_MEM_REF.
7901         (create_expression_by_pieces): Only convert if necessary.
7902         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
7903         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
7904
7905 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
7906
7907         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
7908         regular pattern from a template and rename it ...
7909         (*extzv_truncsi_exts): ... to this.
7910
7911 2009-05-21  Richard Guenther  <rguenther@suse.de>
7912
7913         * cgraph.h (struct cgraph_node): Remove inline_decl member.
7914         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
7915         (cgraph_default_inline_p): Likewise.
7916         (cgraph_decide_inlining_incrementally): Likewise.
7917
7918 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
7919             Uros Bizjak  <ubizjak@gmail.com>
7920
7921         * config/i386/cpuid.h (bit_MOVBE): New.
7922
7923         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
7924
7925         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
7926         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
7927         (ix86_handle_option): Handle OPT_mmovbe.
7928         (ix86_target_string): Add -mmovbe.
7929         (pta_flags): Add PTA_MOVBE.
7930         (processor_alias_table): Add PTA_MOVBE to "atom".
7931         (override_options): Handle PTA_MOVBE.
7932
7933         * config/i386/i386.h (TARGET_MOVBE): New.
7934
7935         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
7936         (*bswapsi_movbe): New.
7937         (*bswapdi_movbe): Likewise.
7938         (bswapdi2): Renamed to ...
7939         (*bswapdi_1): This.
7940         (bswapdi2): New expander.
7941
7942         * config/i386/i386.opt (mmovbe): New.
7943
7944         * doc/invoke.texi: Document -mmovbe.
7945
7946 2009-05-21  Taras Glek  <tglek@mozilla.com>
7947
7948         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
7949         * gcc-plugin.h (plugin_init): Updated signature.
7950         * gcc-plugin.h (plugin_name_args): Moved to this header.
7951         * doc/plugins.texi (plugin_init): Updated documention to reflect
7952         API change.
7953         * doc/plugins.texi (plugin_name_args): Added to documention.
7954
7955 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
7956
7957         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
7958         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
7959
7960 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
7961
7962         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
7963         JUMP_TABLE_DATA_P predicates where applicable.
7964         * config/i386/predicates.md: Ditto.
7965         * config/i386/sse.md: Ditto.
7966
7967 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
7968
7969         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
7970         operand2 -128 override length_immediate attribute to 1.
7971         * config/i386/predicates.md (constm128_operand): New predicate.
7972
7973         * config/i386/i386.c (memory_address_length): Handle %r12
7974         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
7975         also check REGNO.
7976         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
7977         mode look through optional ZERO_EXTEND and SUBREG.
7978         * config/i386/i386.md (R12_REG): New define_constant.
7979         (prefix_data16): For sse unit set also for MODE_TI insns.
7980         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
7981         insns set if operand 1 is ext_QIreg_operand.
7982         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
7983         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
7984         immediate.
7985         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
7986         mode from MODE_DI to MODE_SI.
7987         (movdi_1_rex64): Override modrm and length_immediate attributes
7988         only for movabs (TYPE_IMOV, alternative 2).
7989         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
7990         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
7991         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
7992         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
7993         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
7994         prefix_rex attribute if DImode.
7995         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
7996         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
7997         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
7998         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
7999         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
8000         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
8001         Likewise.  For TYPE_IMOV clear length_immediate attribute.
8002         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
8003         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
8004         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
8005         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
8006         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
8007         or one operand TYPE_ISHIFT.
8008         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
8009         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
8010         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
8011         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
8012         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
8013         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
8014         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
8015         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
8016         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
8017         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
8018         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
8019         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
8020         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
8021         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
8022         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
8023         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
8024         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
8025         set mode attribute, don't override length attribute.
8026         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
8027         to 1.
8028         (return_internal_long): Set length attribute to 2 instead of 1.
8029         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
8030         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
8031         prefix_rex attribute.
8032         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
8033         New predicates.
8034         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
8035
8036 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8037
8038         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
8039
8040 2009-05-20  Ian Lance Taylor  <iant@google.com>
8041
8042         * tree.c (build_tree_list_vec_stat): New function.
8043         (ctor_to_vec): New function.
8044         (build_nt_call_vec): New function.
8045         (build_call_array): Change args to be a const pointer.
8046         (build_call_vec): New function.
8047         * tree.h (build_nt_call_vec): Declare.
8048         (build_tree_list_vec_stat): Declare.
8049         (build_tree_list_vec): Define.
8050         (build_call_array): Update declaration.
8051         (build_call_vec): Declare.
8052         (ctor_to_vec): Declare.
8053         * c-common.c (tree_vector_cache): New static variable.
8054         (make_tree_vector): New function.
8055         (release_tree_vector): New function.
8056         (make_tree_vector_single): New function.
8057         (make_tree_vector_copy): New function.
8058         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
8059         (make_tree_vector_single, make_tree_vector_copy): Declare.
8060         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
8061         (c_parser_expr_list): Don't manage cache here, instead call
8062         make_tree_vector.
8063         (c_parser_release_expr_list): Remove static function.
8064         (c_parser_vec_to_tree_list): Remove static function.
8065         (c_parser_attributes): Call build_tree_list_vec instead of
8066         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
8067         c_parser_release_expr_list.
8068         (c_parser_postfix_expression_after_primary): Likewise.
8069         (c_parser_objc_keywordexpr): Likewise.
8070
8071 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
8072
8073         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
8074         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
8075         TARGET_CONVERT_TO_TYPE.
8076         * hooks.c (hook_tree_const_tree_null): Define.
8077         * hooks.h (hook_tree_const_tree_null): Declare.
8078         * target.h (struct gcc_target):  Add invalid_parameter_type,
8079         invalid_return_type, promoted_type, and convert_to_type fields.
8080         * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
8081         (TARGET_INVALID_RETURN_TYPE): Define.
8082         (TARGET_PROMOTED_TYPE): Define.
8083         (TARGET_CONVERT_TO_TYPE): Define.
8084         (TARGET_INITIALIZER): Update for new fields.
8085         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
8086         (grokparms): Check targetm.invalid_parameter_type.
8087         * c-typeck.c (default_conversion): Check targetm.promoted_type.
8088         * c-convert.c (convert): Check targetm.convert_to_type.
8089
8090 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
8091
8092         * config/mips/mips.md (*extenddi_truncate<mode>,
8093         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
8094         defintions.
8095         (*extendhi_truncateqi): New define_insn_and_sptit.
8096
8097 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
8098
8099         PR middle-end/40204
8100         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
8101         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
8102
8103 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
8104
8105         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
8106         the operand of VIEW_CONVERT_EXPR.
8107
8108 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
8109
8110         * config/i386/driver-i386.c (host_detect_local_cpu): Check
8111         extended family and model for Intel processors.  Support Intel Atom.
8112
8113 2009-05-20  Olivier Hainque  <hainque@adacore.com>
8114
8115         * gstab.h (stab_code_type): Define, to be used instead of the
8116         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
8117         notice.
8118         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
8119         occurrences by stab_code_type.
8120         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
8121
8122 2009-05-20  Martin Jambor  <mjambor@suse.cz>
8123
8124         * tree-flow.h (insert_edge_copies_seq): Undeclare.
8125         (sra_insert_before): Likewise.
8126         (sra_insert_after): Likewise.
8127         (sra_init_cache): Likewise.
8128         (sra_type_can_be_decomposed_p): Likewise.
8129         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
8130         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
8131         (sra_insert_before): Likewise.
8132         (sra_insert_after): Likewise.
8133         (sra_init_cache): Likewise.
8134         (insert_edge_copies_seq): Made static and moved upwards.
8135
8136         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
8137         case.
8138
8139         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
8140
8141         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
8142         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
8143         simple copies.
8144
8145 2009-05-20  Richard Guenther  <rguenther@suse.de>
8146
8147         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
8148         with mismatched comparison modes.
8149
8150 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8151
8152         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
8153         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
8154         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
8155         with shifts for Thumb2.
8156         (orsi_notsi): New for orn.
8157         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
8158         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
8159         * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2.
8160         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments.
8161         Don't invert remainder for IOR.
8162         
8163 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
8164
8165         PR tree-optimization/40087
8166         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
8167         number_of_iterations_ne): Rename never_infinite argument.
8168         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
8169         number_of_iterations_le): Handle pointer-type ivs when
8170         exit_must_be_taken is false.
8171         (number_of_iterations_cond):  Do not always assume that
8172         exit_must_be_taken if the control variable is a pointer.
8173
8174 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
8175
8176         * c-typeck.c (build_binary_op): Allow % on integal vectors.
8177         * doc/extend.texi (Vector Extension): Document that % is allowed too.
8178
8179 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
8180
8181         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
8182         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
8183
8184 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8185
8186         PR c/40172
8187         * c.opt (Wlogical-op): Disabled by default.
8188         * c-opt (c_common_post_options): Do not enable Wlogical-op with
8189         Wextra.
8190         * doc/invoke.texi (Wlogical-op): Likewise.
8191         
8192 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
8193
8194         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
8195         into CASE_CONVERT.
8196         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
8197         Propagate the type of the first operand.
8198         <ASSERT_EXPR>: Simplify.
8199         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
8200         Rewrite using the RHS code as discriminant.
8201         <NOP_EXPR>: Turn into CASE_CONVERT.
8202         <PLUS_EXPR>: Propagate the type of the first operand.
8203
8204 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
8205
8206         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
8207         (ia64_dconst_0_375): New.
8208         * config/ia64/ia64.c (ia64_override_options): Remove
8209         -minline-sqrt-min-latency warning.
8210         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
8211         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
8212         * config/ia64/ia64.md (*sqrt_approx): Remove.
8213         (sqrtsf2): Remove #if 0.
8214         (sqrtsf2_internal_thr): Rewrite and move to div.md.
8215         (sqrtdf): Remove assert.
8216         (sqrtdf2_internal_thr): Rewrite and move to div.md.
8217         (sqrtxf2): Remove #if 0.
8218         (sqrtxf2_internal_thr): Rewrite and move to div.md.
8219         * div.md (sqrt_approx_rf): New.
8220         (sqrtsf2_internal_thr): New implementation.
8221         (sqrtsf2_internal_lat): New.
8222         (sqrtdf2_internal_thr: New implementation.
8223         (sqrtxf2_internal): New implementation.
8224
8225 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
8226             Hans-Peter Nilsson  <hp@axis.com>
8227
8228         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
8229         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
8230         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
8231         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
8232         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
8233         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
8234         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
8235         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
8236         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
8237         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
8238         * c-common.c: ...from here.
8239
8240 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8241
8242         * c-common.c (warn_logical_operator): Remove unnecessary conditionals.
8243
8244 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8245
8246         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
8247
8248 2009-05-19  Ben Elliston  <bje@au.ibm.com>
8249
8250         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
8251         assignments with memcpy calls.
8252         (add_fdes): Likewise.
8253         (binary_search_unencoded_fdes): Likewise.
8254         (linear_search_fdes): Eliminate type puns.
8255         
8256 2009-05-19  Richard Guenther  <rguenther@suse.de>
8257
8258         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
8259         not falsely claim to have propagated into all uses.
8260
8261 2009-05-19  Ben Elliston  <bje@au.ibm.com>
8262
8263         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
8264         version to v3.0.
8265
8266 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
8267
8268         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
8269         * config/sh/sh.c (sh_legitimate_address_p): Make static.
8270         (TARGET_LEGITIMATE_ADDRESS_P): New.
8271         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8272         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
8273         
8274 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
8275
8276         PR debug/40109
8277         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
8278         child of the containing namespace's DIE.
8279
8280 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
8281
8282         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
8283         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
8284         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
8285         extend patterns.
8286
8287 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
8288
8289         PR target/39942
8290         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
8291         gen_align with gen_pad.
8292         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
8293         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
8294
8295         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
8296         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
8297
8298         * config/i386/i386.md (align): Renamed to ...
8299         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
8300         ASM_OUTPUT_MAX_SKIP_PAD.
8301
8302 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
8303
8304         * config.gcc: Fix variable syntax.
8305
8306         PR target/39531
8307         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
8308         before calling exact_log2.
8309         (output_iorsi3): Likewise.
8310         (output_xorsi3): Likewise.
8311
8312 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
8313
8314         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
8315         for the none zero constant operand except for EQ and NE
8316         comprisons even when the first operand is R0.
8317
8318 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
8319
8320         * config/s390/2064.md: Remove trailing whitespaces.
8321         * config/s390/2084.md: Likewise.
8322         * config/s390/constraints.md: Likewise.
8323         * config/s390/fixdfdi.h: Likewise.
8324         * config/s390/libgcc-glibc.ver: Likewise.
8325         * config/s390/s390-modes.def: Likewise.
8326         * config/s390/s390-protos.h: Likewise.
8327         * config/s390/s390.c: Likewise.
8328         * config/s390/s390.h: Likewise.
8329         * config/s390/s390.md: Likewise.
8330         * config/s390/tpf-unwind.h: Likewise.
8331
8332 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
8333
8334         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
8335
8336 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
8337
8338         M68K TLS support.
8339         * configure.ac (m68k-*-*): Check if binutils support TLS.
8340         * configure: Regenerate.
8341         * config/m68k/predicates.md (symbolic_operand): Extend comment.
8342         * config/m68k/constraints.md (Cu): New constraint.
8343         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
8344         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
8345         (movsi): Handle TLS symbols.
8346         (addsi3_5200): Handle XTLS symbols, indent.
8347         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
8348         (m68k_tls_reference_p): Declare.
8349         (m68k_legitimize_address): Declare.
8350         (m68k_unwrap_symbol): Declare.
8351         * config/m68k/m68k.opt (mxtls): New option.
8352         * config/m68k/m68k.c (ggc.h): Include.
8353         (m68k_output_dwarf_dtprel): Implement hook.
8354         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
8355         (m68k_expand_prologue): Load GOT pointer when function needs it.
8356         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
8357         (m68k_legitimate_constant_address_p): Same.
8358         (m68k_decompose_address): Handle TLS references.
8359         (m68k_get_gp): New static function.
8360         (enum m68k_reloc): New contants.
8361         (TLS_RELOC_P): New macro.
8362         (m68k_wrap_symbol): New static function.
8363         (m68k_unwrap_symbol): New function.
8364         (m68k_final_prescan_insn_1): New static function.
8365         (m68k_final_prescan_insn): New function.
8366         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
8367         functions.
8368         (legitimize_pic_address): Handle TLS references..
8369         (m68k_tls_get_addr, m68k_get_tls_get_addr)
8370         (m68k_libcall_value_in_a0_p)
8371         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
8372         (m68k_call_m68k_read_tp): Helper variables and functions for ...
8373         (m68k_legitimize_tls_address): Handle TLS references.
8374         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
8375         New functions.
8376         (m68k_legitimize_address): Handle TLS symbols.
8377         (m68k_get_reloc_decoration): New static function.
8378         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
8379         UNSPEC_RELOC32.
8380         (m68k_output_dwarf_dtprel): Implement hook.
8381         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
8382         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
8383         m68k_call_* routines.
8384         (sched_attr_op_type): Handle TLS symbols.
8385         (gt-m68k.h): Include.
8386         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
8387         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
8388
8389 2009-05-18  Martin Jambor  <mjambor@suse.cz>
8390
8391         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
8392         (visit_store_addr_for_mod_analysis): New function.
8393         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
8394         (determine_cst_member_ptr): Use gimple_assign_single_p.
8395         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
8396         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
8397         operands.  Don't check number of operands of a NOP_EXPR.
8398
8399 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
8400
8401         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
8402
8403 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8404
8405         PR c/40172
8406         * c-common.c (warn_logical_operator): Don't warn if one of
8407         expression isn't always true or false.
8408
8409 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
8410
8411         * config/i386/biarch32.h: New file.
8412         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
8413
8414 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
8415
8416         * config/mips/mips.md (*zero_extend<mode>_trunchi,
8417         *zero_extend<mode>_truncqi): Merge these into ...
8418         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
8419         Name the pattern following this as *zero_extendhi_truncqi.
8420
8421 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
8422
8423         PR middle-end/39301
8424         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
8425         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
8426         (output_info): Make field HOST_WIDEST_INT.
8427         (print_statistics): Use HOST_WIDEST_INT_PRINT.
8428         (dump_bitmat_statistics): Same.
8429
8430 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
8431
8432         * config.gcc (use_gcc_stdint):  Set to wrap.
8433         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
8434         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
8435         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
8436         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
8437         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
8438         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
8439         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
8440         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
8441
8442 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
8443
8444         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
8445         tune_64.
8446         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
8447         Move definitions earlier.
8448         (OPT_ARCH64, OPT_ARCH32): Define.
8449         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
8450         and tune_64.
8451
8452 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
8453
8454         PR target/40153
8455         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
8456         implies.
8457
8458 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
8459
8460         * arm.md (movdi2): Copy non-reg values to DImode registers.
8461
8462 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
8463
8464         PR target/39942
8465         * final.c (label_to_max_skip): New function.
8466         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
8467         CODE_LABEL_NUMBER <= max_labelno.
8468         * output.h (label_to_max_skip): New prototype.
8469         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
8470         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
8471         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
8472         Handle CODE_LABELs with >= 16 byte alignment or with
8473         max_skip == (1 << align) - 1.
8474         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
8475         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
8476
8477         PR target/39942
8478         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
8479         .p2align 3 if MAX_SKIP is smaller than 7.
8480         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
8481
8482 2009-05-15  Ian Lance Taylor  <iant@google.com>
8483
8484         * alias.c (struct alias_set_entry_d): Rename from struct
8485         alias_set_entry.  Change all uses.
8486         * except.c (struct call_site_record_d): Rename from struct
8487         call_site_record.  Change all uses.
8488         * except.h (struct eh_region_d): Rename from struct eh_region.
8489         Change all uses.
8490         * gcse.c (struct hash_table_d): Rename from struct hash_table.
8491         Change all uses.
8492         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
8493         ivtype_map_elt.  Change all uses.
8494         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
8495         Change all uses.
8496         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
8497         * graphite.h (struct name_tree_d): Rename from struct name_tree.
8498         Change all uses.
8499         (struct sese_d): Rename from struct sese.  Change all uses.
8500         * omega.h (struct eqn_d): Rename from struct eqn.  Change all uses.
8501         (struct omega_pb_d): Rename from struct omega_pb.  Change all uses.
8502         * optabs.h (struct optab_d): Rename from struct optab.  Change all
8503         uses.
8504         (struct convert_optab_d): Rename from struct convert_optab.
8505         Change all uses.
8506         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
8507         ipa_opt_pass.  Change all uses.
8508         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
8509         all uses.
8510
8511         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
8512         defined as a typedef.
8513         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
8514         defined as a tag.
8515
8516 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8517
8518         PR 16302
8519         * fold-const.c (make_range,build_range_check,merge_ranges): Move
8520         declaration to...
8521         (merge_ranges): Returns bool. 
8522         * tree.h (make_range): .. to here.
8523         (build_range_check): Likewise.
8524         (merge_ranges): Likewise. Renamed from merge_ranges.
8525         * c-typeck.c (parser_build_binary_op): Update calls to
8526         warn_logical_operator.
8527         * c-common.c (warn_logical_operator): Add new warning.
8528         * c-common.h (warn_logical_operator): Update declaration.
8529         
8530 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8531
8532         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional.
8533         
8534 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8535
8536         * doc/install.texi: Document MPC requirements, flags etc.
8537
8538         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
8539         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
8540         Evaluate constant arguments.
8541         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
8542         (fold_builtin_1): Likewise, also evaluate constant arguments.
8543         Remove superfluous break.
8544         (do_mpc_ckconv): New.
8545         * real.h: Include mpc.h.
8546         * toplev.c (print_version): Output MPC version info if available.
8547
8548 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
8549
8550         * fold-const.c (fold_convert_const_real_from_real): Check for overflow.
8551
8552 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
8553
8554         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
8555         only once.
8556
8557 2009-05-15  Jan Hubicka  <jh@suse.cz>
8558
8559         * doc/invoke.texi (max-early-inliner-iterations): New flag.
8560         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
8561         (try_inline): Fix return value.
8562         (cgraph_decide_inlining_incrementally): Honor new value.
8563         (cgraph_early_inlining): Handle indirect inlining.
8564         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
8565
8566 2009-05-15  Jan Hubicka  <jh@suse.cz>
8567
8568         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
8569         * cgraphunit.c (cgraph_finalize_function): Set it.
8570         (cgraph_expand_function): Use it.
8571
8572 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
8573
8574         * real.c (encode_ieee_half): Define.
8575         (decode_ieee_half): Define.
8576         (ieee_half_format): Define.
8577         (arm_half_format): Define.
8578         * real.h (ieee_half_format): Declare.
8579         (arm_half_format): Declare.
8580
8581 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
8582
8583         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
8584         swapped, and reversed optabs exist before trying to use them.
8585
8586 2009-05-15  Paul Brook  <paul@codesourcery.com>
8587             Sandra Loosemore  <sandra@codesourcery.com>
8588
8589         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
8590         loads.  Allow PRE_DEC.
8591         (output_move_neon): Handle PRE_DEC.
8592         (arm_print_operand): Add 'A' for neon structure loads.
8593         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
8594         * config/arm/neon.md (neon_mov): Update comment.
8595         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
8596         calls.
8597         (Um): New constraint.
8598
8599 2009-05-15  Jan Hubicka  <jh@suse.cz>
8600
8601         Revert the following patch until testsuite fallout is fixed:
8602         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
8603         * cgraph.h (struct inline_summary): New filed self_wize,
8604         size_inlining_benefit, self_time and time_inlining_benefit.
8605         (struct cgraph_global_info): Replace insns by time ans size fields.
8606         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
8607         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
8608         (ipcp_update_callgraph): Do not touch function bodies.
8609         * ipa-inline.c: Include except.h
8610         (MAX_TIME): New constant.
8611         (overall_insns): Remove
8612         (overall_size, max_benefit): New static variables.
8613         (cgraph_estimate_time_after_inlining): New function.
8614         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
8615         (cgraph_clone_inlined_nodes): Update size.
8616         (cgraph_mark_inline_edge): Update size.
8617         (cgraph_estimate_growth): Use size info.
8618         (cgraph_check_inline_limits): Check size.
8619         (cgraph_default_inline_p): Likewise.
8620         (cgraph_edge_badness): Compute badness based on benefit and size cost.
8621         (cgraph_decide_recursive_inlining): Check size.
8622         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
8623         and times.
8624         (cgraph_decide_inlining): Likewise.
8625         (cgraph_decide_inlining_incrementally): Likewise; honor
8626         PARAM_EARLY_INLINING_INSNS.
8627         (likely_eliminated_by_inlining_p): New predicate.
8628         (estimate_function_body_sizes): New function.
8629         (compute_inline_parameters): Use it.
8630         * except.c (must_not_throw_labels): New function.
8631         * except.h (must_not_throw_labels): Declare.
8632         * tree-inline.c (init_inline_once): Kill inlining_weigths
8633         * tree-ssa-structalias.c: Avoid uninitialized warning.
8634         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
8635         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
8636         (PARAM_INLINE_CALL_COST): Remove.
8637         (PARAM_EARLY_INLINING_INSNS): New.
8638
8639 2009-05-15  Richard Guenther  <rguenther@suse.de>
8640
8641         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
8642         not TODO_update_ssa.
8643
8644 2009-05-15  Richard Guenther  <rguenther@suse.de>
8645
8646         PR tree-optimization/39999
8647         * gimple.h (gimple_expr_type): Use the expression type looking
8648         through useless conversions.
8649         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
8650         (vn_nary_op_insert_stmt): Likewise.
8651         (simplify_binary_expression): Likewise.
8652
8653 2009-05-15  Richard Guenther  <rguenther@suse.de>
8654
8655         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
8656         New options, enabled by default.
8657         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
8658         Document.
8659         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
8660         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
8661         * tree-ssa-structalias.c (gate_tree_pta): New function.
8662         (pass_build_alias): Use it.
8663
8664 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
8665
8666         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
8667         recurse on an invariant address if a conversion from a pointer
8668         type to a wider integer type is involved.
8669
8670 2009-05-15  Jan Hubicka  <jh@suse.cz>
8671
8672         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
8673         * cgraph.h (struct inline_summary): New filed self_wize,
8674         size_inlining_benefit, self_time and time_inlining_benefit.
8675         (struct cgraph_global_info): Replace insns by time ans size fields.
8676         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
8677         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
8678         (ipcp_update_callgraph): Do not touch function bodies.
8679         * ipa-inline.c: Include except.h
8680         (MAX_TIME): New constant.
8681         (overall_insns): Remove
8682         (overall_size, max_benefit): New static variables.
8683         (cgraph_estimate_time_after_inlining): New function.
8684         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
8685         (cgraph_clone_inlined_nodes): Update size.
8686         (cgraph_mark_inline_edge): Update size.
8687         (cgraph_estimate_growth): Use size info.
8688         (cgraph_check_inline_limits): Check size.
8689         (cgraph_default_inline_p): Likewise.
8690         (cgraph_edge_badness): Compute badness based on benefit and size cost.
8691         (cgraph_decide_recursive_inlining): Check size.
8692         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
8693         and times.
8694         (cgraph_decide_inlining): Likewise.
8695         (cgraph_decide_inlining_incrementally): Likewise; honor
8696         PARAM_EARLY_INLINING_INSNS.
8697         (likely_eliminated_by_inlining_p): New predicate.
8698         (estimate_function_body_sizes): New function.
8699         (compute_inline_parameters): Use it.
8700         * except.c (must_not_throw_labels): New function.
8701         * except.h (must_not_throw_labels): Declare.
8702         * tree-inline.c (init_inline_once): Kill inlining_weigths
8703         * tree-ssa-structalias.c: Avoid uninitialized warning.
8704         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
8705         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
8706         (PARAM_INLINE_CALL_COST): Remove.
8707         (PARAM_EARLY_INLINING_INSNS): New.
8708         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
8709         (inline-call-cost): Remove.
8710         (early-inlining-insns): New.
8711
8712 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
8713
8714         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
8715         for bounds.
8716         (print_int_cst_bounds_in_octal_p): Likewise.
8717         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
8718         with subtypes.
8719         * dwarf2out.c (base_type_die): Likewise.
8720         (is_subrange_type): Delete.
8721         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
8722         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
8723         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it
8724         if the destination type is boolean.
8725         (build_range_check): Do not special-case subtypes.
8726         (fold_sign_changed_comparison): Likewise.
8727         (fold_unary): Likewise.
8728         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
8729         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
8730         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
8731         * tree.c (subrange_type_for_debug_p): New predicate based on the
8732         former is_subrange_type.
8733         * tree.h (subrange_type_for_debug_p): Declare.
8734         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
8735         (convert_affine_scev): Remove call to above function.
8736         (chrec_convert_aggressive): Likewise.
8737         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
8738         false for conversions involving subtypes.
8739         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
8740         (vrp_val_min): Likewise.
8741         (needs_overflow_infinity): Likewise.
8742         (extract_range_from_unary_expr): Likewise.
8743
8744 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
8745
8746         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
8747         * config/frv/frv.c: Likewise.
8748         * config/s390/s390.c: Likewise.
8749         * config/sparc/sparc.h: Likewise.
8750         * config/i386/i386.h: Likewise.
8751         * config/i386/i386.c: Likewise.
8752         * config/crx/crx.c: Likewise.
8753         * config/m68hc11/m68hc11.h: Likewise.
8754         * config/iq2000/iq2000.c: Likewise.
8755         * config/mn10300/mn10300.h: Likewise.
8756         * config/mn10300/mn10300.c: Likewise.
8757         * config/m68k/m68k.c: Likewise.
8758         * config/rs6000/rs6000.c: Likewise.
8759         * config/rs6000/xcoff.h: Likewise.
8760         * config/rs6000/linux64.h: Likewise.
8761         * config/rs6000/sysv4.h: Likewise.
8762         * config/score/score3.c: Likewise.
8763         * config/score/score7.c: Likewise.
8764         * config/score/score.c: Likewise.
8765         * config/arm/arm.md: Likewise.
8766         * config/mips/mips.c: Likewise.
8767         * config/mips/mips.md: Likewise.
8768         * config/bfin/bfin.h: Likewise.
8769         * config/pa/pa.c: Likewise.
8770         * config/pa/constraints.md: Likewise.
8771
8772         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
8773         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
8774         * config/pdp11/pdp11.h: Use memory_address_p instead.
8775
8776 2009-05-14  Ian Lance Taylor  <iant@google.com>
8777
8778         * passes.c (finish_optimization_passes): Change i to int.
8779         * plugin.c (plugins_active_p): Change event to int.
8780         (dump_active_plugins): Likewise.
8781         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
8782         Add cast.
8783         * tree.c (tree_range_check_failed): Change c to unsigned int.
8784         (omp_clause_range_check_failed): Likewise.
8785         (build_common_builtin_nodes): Change mode to int.  Add cast.
8786         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
8787         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
8788
8789         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
8790         ++ or -- with a variable of enum type.
8791
8792 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
8793
8794         PR driver/40144
8795         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
8796
8797 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
8798
8799         * store-motion.c: Do not include params.h
8800         * Makefile.in: Fix dependencies for various files.
8801
8802 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
8803
8804         * auto-inc-dec.c: Fix pass description, remove apparent
8805         accidental duplication.
8806
8807 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
8808
8809         PR middle-end/40147
8810         * ipa-utils.h (memory_identifier_string): Moved to ...
8811         * tree.h (memory_identifier_string): Here.  Add GTY(()).
8812
8813 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
8814
8815         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
8816         in the former documentation of...
8817         (GO_IF_LEGITIMATE_ADDRESS): ... this.
8818         * ira-conflicts.c (get_dup_num): Use address_operand.
8819         * targhooks.c (default_legitimate_address_p): New.
8820         * targhooks.h (default_legitimate_address_p): New.
8821         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
8822         Call hook.
8823         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
8824         * target.h (struct target): Add legitimate_address_p.
8825         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
8826         (TARGET_INITIALIZER): Include it.
8827
8828         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8829         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
8830         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
8831         (TARGET_LEGITIMATE_ADDRESS_P): New.
8832
8833         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8834         (REG_OK_STRICT_P): Delete.
8835         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
8836         (frv_legitimate_address_p_1): ... this.
8837         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
8838         (frv_legitimate_address_p_1): ... the renamed old
8839         frv_legitimate_address_p.
8840         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
8841         (TARGET_LEGITIMATE_ADDRESS_P): New.
8842
8843         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8844         * config/s390/s390-protos.h (legitimate_address_p): Remove.
8845         * config/s390/s390.c (legitimate_address_p): Rename to...
8846         (s390_legitimate_address_p): ... this, make static.
8847         (legitimize_address): Adjust call.
8848         (TARGET_LEGITIMATE_ADDRESS_P): New.
8849         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
8850
8851         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8852         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
8853         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
8854         (TARGET_LEGITIMATE_ADDRESS_P): New.
8855
8856         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8857         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
8858         * config/spu/spu.c (spu_legitimate_address): Rename to...
8859         (spu_legitimate_address_p): ... this, make static.
8860         (TARGET_LEGITIMATE_ADDRESS_P): New.
8861
8862         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8863         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
8864         * config/sparc/sparc.c (legitimate_address_p): Rename to...
8865         (sparc_legitimate_address_p): ... this, make static and return bool.
8866         (legitimize_address): Adjust call.
8867         (TARGET_LEGITIMATE_ADDRESS_P): New.
8868
8869         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8870         * config/i386/i386-protos.h (legitimate_address_p): Remove.
8871         * config/i386/i386.c (legitimate_address_p): Rename to...
8872         (ix86_legitimate_address_p): ... this, make static.
8873         (constant_address_p): Move after it, adjust call.
8874         (TARGET_LEGITIMATE_ADDRESS_P): New.
8875
8876         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8877         * config/avr/avr-protos.h (legitimate_address_p): Remove.
8878         * config/avr/avr.c (legitimate_address_p): Rename to...
8879         (avr_legitimate_address_p): ... this, make static.
8880         (legitimize_address): Adjust call.
8881         (TARGET_LEGITIMATE_ADDRESS_P): New.
8882
8883         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8884         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
8885         * config/crx/crx.c (crx_legitimate_address_p): Make static.
8886         (TARGET_LEGITIMATE_ADDRESS_P): New.
8887
8888         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8889         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
8890         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
8891         (TARGET_LEGITIMATE_ADDRESS_P): New.
8892
8893         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8894         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
8895         Remove.
8896         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
8897         Make static.
8898         (TARGET_LEGITIMATE_ADDRESS_P): New.
8899
8900         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8901         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
8902         Remove.
8903         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
8904         Rename to...
8905         (m68hc11_legitimate_address_p): ... this, make static.
8906         (go_if_legitimate_address_internal): Rename to...
8907         (m68hc11_legitimate_address_p_1): ... this.
8908         (legitimize_address): Adjust call.
8909         (TARGET_LEGITIMATE_ADDRESS_P): New.
8910
8911         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8912         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove.
8913         * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static.
8914         (TARGET_LEGITIMATE_ADDRESS_P): New.
8915
8916         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8917         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
8918         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
8919         (mn10300_legitimate_address_p): ... this, make static.
8920         (TARGET_LEGITIMATE_ADDRESS_P): New.
8921
8922         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8923         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
8924         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
8925         (TARGET_LEGITIMATE_ADDRESS_P): New.
8926
8927         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8928         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
8929         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
8930         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8931         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
8932         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
8933         (rs6000_legitimate_address_p): ... this, make static.
8934         (TARGET_LEGITIMATE_ADDRESS_P): New.
8935         (REG_MODE_OK_FOR_BASE_P): Delete.
8936         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
8937
8938         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8939         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
8940         Delete.
8941         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
8942         static, adjust types.
8943         (TARGET_LEGITIMATE_ADDRESS_P): New.
8944
8945         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8946         * config/score/score.c (score_address_p): Rename to...
8947         (score_legitimate_address_p): ... this.
8948         (TARGET_LEGITIMATE_ADDRESS_P): New.
8949         * config/score/score3.c (score3_address_p): Rename to...
8950         (score3_legitimate_address_p): ... this.
8951         * config/score/score7.c (score7_address_p): Rename to...
8952         (score7_legitimate_address_p): ... this.
8953
8954         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
8955         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
8956         GO_IF_LEGITIMATE_ADDRESS): Delete.
8957         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
8958         thumb2_legitimate_address_p): Delete.
8959         (arm_legitimate_address_p): Rename to...
8960         (arm_legitimate_address_outer_p): ... this.
8961         * config/arm/constraints.md ("Uq"): Adjust call.
8962         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
8963         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one
8964         to...
8965         (arm_legitimate_address_outer_p): ... this.
8966         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make
8967         static.
8968         (TARGET_LEGITIMATE_ADDRESS_P): New.
8969
8970         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8971         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
8972         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
8973         (TARGET_LEGITIMATE_ADDRESS_P): New.
8974
8975         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8976         * config/vax/vax-protos.h (legitimate_address_p): Remove.
8977         * config/vax/vax.c (legitimate_address_p): Rename to...
8978         (vax_legitimate_address_p): ... this, make static.
8979         (TARGET_LEGITIMATE_ADDRESS_P): New.
8980
8981         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8982         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
8983         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
8984         (TARGET_LEGITIMATE_ADDRESS_P): New.
8985
8986         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8987         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
8988         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
8989         (mmix_legitimate_address_p): ... this, make static.
8990         (TARGET_LEGITIMATE_ADDRESS_P): New.
8991
8992         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
8993         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
8994         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
8995         (TARGET_LEGITIMATE_ADDRESS_P): New.
8996
8997 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
8998
8999         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
9000         of MODE_COMPLEX_INT.
9001
9002 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9003
9004         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
9005         LCT_NORMAL in function call.
9006         * mips-tdump.c (print_file_desc): Add cast to enum type.
9007         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
9008         (mark_stabs): Add casts to enum types.
9009         (parse_stabs_common): Add casts to enum types.
9010
9011 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
9012
9013         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
9014         Check for invalid values of LETTER.
9015
9016 2009-05-13  Taras Glek  <tglek@mozilla.com>
9017
9018         * attribs.c (register_attribute): moved out attribute registration
9019         into register_attribute.
9020         * doc/plugins.texi: Documented register_attribute and
9021         PLUGIN_ATTRIBUTES.
9022         * gcc-plugin.h: Added forward decl for register_attribute.
9023         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
9024         * plugin.c (register_callback, invoke_plugin_callbacks): Added
9025         PLUGIN_ATTRIBUTES boilerplate.
9026
9027 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
9028
9029         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
9030         values even in sentinel and empty entries.
9031         (ms_printf_flag_specs):  Likewise.
9032         (ms_scanf_flag_specs):  Likewise.
9033         (ms_strftime_flag_specs):  Likewise.
9034         (ms_print_char_table):  Likewise.
9035         (ms_scan_char_table):  Likewise.
9036         (ms_time_char_table):  Likewise.
9037
9038 2009-05-13  Doug Kwan  <dougkwan@google.com>
9039
9040         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
9041
9042 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
9043
9044         * config/mips/mips.md (store): Add attributes for QI and HI.
9045         Update comment.
9046         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
9047         (truncdi<mode>2): ... this new pattern.
9048
9049 2009-05-13  Brad Hards  <bradh@kde.org>
9050
9051         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
9052
9053 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
9054             Ben Elliston <bje@au.ibm.com>
9055
9056         PR middle-end/40035
9057         * dse.c (check_mem_read_rtx): Guard against width == -1.
9058
9059 2009-05-13  Michael Matz  <matz@suse.de>
9060
9061         PR middle-end/39976
9062         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
9063         (trivially_conflicts_p): New function.
9064         (insert_backedge_copies): Use it.
9065
9066 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
9067
9068         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
9069         (handle_stdc_pragma): Use new enum constant names.
9070         (handle_pragma_float_const_decimal64): Ditto.
9071
9072 2009-05-13  Ian Lance Taylor  <iant@google.com>
9073
9074         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
9075         tree.def.
9076
9077 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
9078
9079         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
9080         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
9081         multilibs.
9082         * config/m68k/m68k.h (FL_UCLINUX): Define.
9083
9084 2009-05-13  Jan Hubicka  <jh@suse.cz>
9085
9086         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
9087
9088 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
9089
9090         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
9091         unless -fschedule-insns is specified.
9092
9093 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
9094
9095         PR target/39561
9096         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
9097         TARGET_EXPAND_CBRANCHDI4.
9098         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
9099         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
9100         (cmpeqdi): Fix comment.
9101
9102 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
9103
9104         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
9105         (sh_legitimate_address_p): Likewise.
9106         * config/sh/sh.c (sh_legitimate_index_p): New.
9107         (sh_legitimate_address_p): Likewise.
9108         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
9109         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
9110         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
9111         (MAYBE_BASE_REGISTER_RTX_P): New macro.
9112         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
9113         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
9114         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
9115         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
9116         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
9117
9118 2009-05-12  Jan Hubicka  <jh@suse.cz>
9119
9120         * tree-inline.c (estimate_operator_cost): Add operands;
9121         when division happens by constant, it is cheap.
9122         (estimate_num_insns): Loads and stores are not having cost of 0;
9123         EH magic stuff is cheap; when computing runtime cost of switch,
9124         use log2 base of amount of its cases; builtin_expect has cost of 0;
9125         compute cost for moving return value of call.
9126         (init_inline_once): Initialize time_based flags.
9127         * tree-inline.h (eni_weights_d): Add time_based flag.
9128
9129 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
9130
9131         * df-core.c: Update head documentation.
9132
9133 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
9134
9135         PR bootstrap/40118
9136         * rs6000.c (rs6000_generate_compare): Use op1b instead of
9137         shadowing exisiting variable op1.
9138
9139 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
9140
9141         PR target/37179
9142         * config/i386/driver-i386.c (processor_signatures): New enum.
9143         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
9144         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
9145         processor signature to detect geode processor.
9146
9147 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
9148
9149         Revert:
9150
9151         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
9152
9153         * optabs.c (prepare_cmp_insn): Temporarily disable test that
9154         causes spurious differences between trunk and cond-optab branch.
9155
9156 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
9157
9158         * dojump.c (compare_from_rtx): Delete.
9159         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
9160         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
9161         if the comparison does not satisfy the predicate; test predicates for
9162         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
9163         further if one existing pattern fails.
9164         * expr.h (compare_from_rtx): Delete.
9165         (prepare_operand): Declare it.
9166         * optabs.c: Change "lib call" to "libcall" throughout.
9167         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
9168         HAVE_conditional_trap, emit_cmp_insn): Delete.
9169         (can_compare_p): Delete cmp_optab case.
9170         (prepare_float_lib_cmp): Return an rtx and a machine mode.
9171         Accept other parameters by value.
9172         (prepare_operand): Make non-static.
9173         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
9174         other parameters by value.  Try to widen operands here based on
9175         an optab_methods argument and looking at cbranch_optab.
9176         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
9177         loop.  Use cbranch_optab directly.
9178         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
9179         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
9180         assertion.
9181         (emit_conditional_move, emit_conditional_add): Inline what's needed
9182         of compare_from_rtx, using new prepare_cmp_insn for the rest.
9183         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
9184         with COMPARE.  Move cmov_optab and cstore_optab above
9185         with cbranch_optab, move cmp_optab down with ucmp_optab,
9186         remove tst_otpab.  Do not initialize trap_rtx.
9187         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
9188         for trap code.  Do not check HAVE_conditional_trap.  Use
9189         prepare_cmp_insn.  Accept no predicate for operand 3.
9190         * optabs.h (OTI_cmp): Mark as used only for libcalls.
9191         (OTI_ctrap, ctrap_optab): New.
9192         (tst_optab): Delete.
9193         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
9194         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
9195         with lookup of ctrap_optab.
9196         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code):
9197         Delete.
9198         (ctrap_optab): New.
9199
9200         * combine.c (combine_simplify_rtx, simplify_set): Do not
9201         special case comparing against zero for cc0 machines.
9202         * simplify-rtx.c (simplify_binary_operation_1): Never remove
9203         COMPARE on cc0 machines.
9204         (simplify_relational_operation): Return a new expression when
9205         a COMPARE could be removed.
9206         * final.c (final_scan_insn): Compare cc_status values
9207         against LHS of a (compare FOO (const_int 0)) cc0 source.
9208         Also check if cc_status.value is the full compare.
9209
9210         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
9211         (cstoreMM4): Document.
9212         (conditional_trap): Document ctrapMM4 instead.
9213         (sync_compare_and_swapMM): Refer to cbranchcc4.
9214         (Dependent Patterns): Eliminate obsolete information referring to
9215         the old jump optimization phase.
9216         (Canonicalization): Include cbranchcc4 case, omit canonicalization
9217         of compares with 0 on cc0 machines.
9218         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
9219         avoiding references to cc0.  Remove text about storing operands
9220         in cmpMM.
9221         * doc/tm.texi (Condition Codes): Include blurb on different
9222         condition code representations, separate into subsections for
9223         CC0, MODE_CC and conditional execution.
9224
9225         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
9226         alpha_emit_setcc): Accept operands and a machine mode.
9227         * config/alpha/alpha.c (alpha_emit_conditional_branch):
9228         Get code/op0/op1 from operands, use machine mode argument
9229         instead of alpha_compare.fp_p.  Emit the branch here.
9230         (alpha_emit_setcc): Likewise, and return boolean.
9231         (alpha_emit_conditional_move): Likewise.  Assert that
9232         cmp_op_mode == cmp_mode, and simplify accordingly.
9233         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
9234         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
9235         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
9236         Delete.
9237         (stack probe test): Use cbranchdi4.
9238         * config/alpha/predicates.md (alpha_cbranch_operator): New.
9239
9240         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
9241         * config/arc/arc.h (movsicc, movsfcc): Use it.
9242         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
9243         (cbranchsi4, cstoresi4): New.
9244         (cmpsi, bCC and sCC expanders): Remove. 
9245
9246         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
9247         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
9248         * config/arm/predicates.md (arm_comparison_operator): Only include
9249         floating-point operators if there is a hardware floating-point unit.
9250         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
9251         deferring to cbranch_cc and cstore_cc respectively.
9252         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
9253         cbranch_cc, cstore_cc): New.
9254         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
9255         arm_compare_op1.
9256         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
9257
9258         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
9259         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
9260         as an argument.
9261         (adjust_insn_length): Adjust calls.
9262         (avr_reorg): Handle (compare (foo) (const_int 0)).
9263         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
9264         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
9265         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
9266         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
9267         (bCC): Remove.
9268         (cbranchqi4, cbranchhi4, cbranchsi4): New.
9269         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
9270
9271         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
9272         (cbranchsi4, cstorebi4, cstoresi4): New.
9273         (movbisi): This insn is duplicate, split it to zero_extend.
9274         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
9275         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
9276         (bfin_optimize_loop): Use cbranch expander.
9277         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
9278         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
9279         (bfin_bimode_comparison_operator): ... this.
9280         (bfin_direct_comparison_operator): New.
9281  
9282         * config/cris/cris.c (cris_normal_notice_update_cc): Look
9283         inside (compare FOO (const_int 0)).
9284         (cris_rtx_costs): Handle ZERO_EXTRACT.
9285         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
9286         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
9287         (*tstdi_v32): Delete.
9288         (*cmpdi_non_v32): Add M alternative for operand 1.
9289         (cmpsi, cmp<mode>): Make private.
9290         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
9291         with COMPARE.
9292         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
9293
9294         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
9295         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
9296         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
9297         (cc_reg_operand): New.
9298         (any_cond): Delete.
9299         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
9300         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
9301         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
9302         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
9303         crx_expand_scond): Delete.
9304
9305         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
9306         (cbranchsi4): New.
9307         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
9308         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
9309
9310         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
9311         cstoresi4, cstoresf4, cstoredf4): New.
9312         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
9313         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
9314         Receive the entire operands array.
9315         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
9316         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
9317         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
9318         Get test/op0/op1 from the operands array.
9319         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
9320
9321         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
9322         (h8300_expand_store): New.
9323         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
9324         (const_int 0)).
9325         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
9326         (h8300_expand_store): New.
9327         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
9328         or do not try to produce (set (cc0) REG).
9329         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
9330         change a compare into a move to a scratch register.  Disable some
9331         peepholes when comparing with zero.
9332         (tstsi, tsthi, tstsi, cmpqi): Make private.
9333         (cmphi): Delete.
9334         (bCC, sCC): Delete.
9335         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
9336         cstoresi4): New.
9337
9338         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
9339         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
9340         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
9341         (ix86_emit_i387_log1p): Use cbranchxf2.
9342         (ix86_expand_setcc): Return void.
9343         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
9344         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
9345         cmp<MODEF>, cmpcc): Remove.
9346         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
9347         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
9348         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
9349         (sCC and bCC expanders): Remove.
9350         (stack_protect_test): Use cbranchcc4.
9351
9352         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
9353         Delete.
9354         (ia64_expand_compare): Accept three rtx by reference and return void.
9355         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
9356         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
9357         from *expr.  Update *expr with the BImode comparison to do.
9358         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
9359         cmptf, bCC, sCC, conditional_trap): Delete.
9360         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
9361         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
9362         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
9363         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
9364         * config/ia64/predicates.md (ia64_cbranch_operator): New.
9365
9366         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
9367         type of last argument.
9368         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
9369         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
9370         use machine mode argument instead of branch_type.  Remove dead
9371         code for floating-point comparisons.
9372         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
9373         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
9374         Remove.
9375         (cbranchsi4, cstoresi4): New.
9376         * config/iq2000/predicates.md (reg_or_const_operand): New.
9377
9378         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
9379         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
9380         (b<code>_op): Rewrite to...
9381         (bcc_op): ... this, using match_operator.
9382         (s<code>_op): Rewrite to...
9383         (scc_op): ... this, using match_operator.
9384         (s<code>_24_op): Rewrite to...
9385         (scc_op_24): ... this, using match_operator.
9386         (s<code>_<mode>): Rewrite to...
9387         (cstore<mode>4): ... this, using match_operator.
9388         (s<code>_<mode>_24): Rewrite to...
9389         (cstore<mode>4_24): ... this, using match_operator.
9390         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
9391         m32c_unpend_compare, m32c_expand_scc): Delete.
9392         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
9393         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
9394         (m32c_expand_movcc): Change NE to EQ if necessary.
9395         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
9396
9397         * config/m32r/m32r-protos.h (gen_cond_store): New.
9398         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
9399         (gen_cond_store): New, from sCC patterns.
9400         (m32r_expand_block_move): Use cbranchsi4.
9401         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
9402         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
9403         (cbranchsi4, cstoresi4): New.
9404         
9405         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
9406         Delete.
9407         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
9408         (m68hc11_notice_update_cc): Look into a compare with 0.
9409         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
9410         Delete.
9411         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
9412         cmphi, cmpqi, bCC): Delete.
9413         (cbranchsi4, cbranchhi4, cbranchqi4): New.
9414         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
9415         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
9416         sets with COMPARE.
9417
9418         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
9419         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
9420         * config/m68k/constraints.md (H): New.
9421         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
9422         the define_insn below.
9423         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
9424         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
9425         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
9426         patterns): Wrap RHS with COMPARE.
9427         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
9428         (*cmpdi_internal): Name this pattern.
9429         (cmpdi): Change to define_insn.
9430         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
9431         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
9432         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
9433         predicate.
9434         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
9435         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
9436         (conditional_trap): Change to...
9437         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
9438         (*conditional_trap): Use the ordered_comparison_operator and
9439         const1_operand predicates.
9440         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
9441         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
9442         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
9443         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
9444
9445         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
9446         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
9447         (mcore_gen_compare): New. 
9448         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
9449         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
9450         (mcore_gen_compare): ... this.
9451         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
9452         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
9453         (stack probe pattern): Use cbranchsi4.
9454
9455         * config/mips/predicates.md (mips_cstore_operator): New.
9456         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
9457         * config/mips/mips.md (any_cond): Delete.
9458         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
9459         always succeed.
9460         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
9461         fixuns_truncsfdi2): Use cbranch patterns.
9462         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
9463         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
9464         Adjust call to mips_expand_conditional_branch.
9465         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
9466         cstore<GPR:mode>4.
9467         * config/mips/mips-protos.h (mips_expand_conditional_branch,
9468         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
9469         * config/mips/mips.c (cmp_operands): Delete.
9470         (mips_emit_compare): Get comparison operands from *op0/*op1.
9471         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
9472         that it succeeds.  Use op0/op1 instead of cmp_operands.
9473         (mips_expand_conditional_branch, mips_expand_conditional_move,
9474         mips_expand_conditional_trap): Likewise.
9475         (mips_block_move_loop): Use cbranch patterns. 
9476         * config/mips/mips.h (cmp_operands): Delete.
9477
9478         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
9479         (mmix_gen_compare_reg): Just return a register in the right CC mode.
9480         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
9481         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
9482         (*cmpcc_folded): Rename to...
9483         (*cmpdi_folded): this.
9484         (*cmpcc): Rename to...
9485         (*cmps): ... this.
9486         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
9487         (bCC): Remove.
9488         (cbranchdi4): New.
9489         (cbranchdf4): New.  Handle invalid comparisons here.
9490         * config/mmix/predicates.md (float_comparison_operator): New.
9491
9492         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
9493         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
9494         * config/mn10300/mn10300.md (tst): Delete.
9495         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
9496         Name these patterns and wrap RHS in a compare.
9497         (*cmpsi): Make this pattern private.  Include tst.
9498         (*cmpsf): Make this pattern private.
9499         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
9500         (compare with zero peepholes): Likewise.
9501         (bCC): Remove.
9502         (cbranchsi4, cbranchsf4): New.
9503         (casesi): Use cbranchsi4.
9504
9505         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
9506         hppa_branch_type): Delete.
9507         (return_addr_rtx): Use cbranchsi4.
9508         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
9509         Emit CCFPmode comparison here.
9510         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
9511         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
9512         hppa_branch_type): Delete.
9513         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
9514         (movsicc, movdicc): Remove references to hppa_compare_op0,
9515         hppa_compare_op1 and compare_from_rtx.
9516         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
9517         (casesi): Use cbranchsi4.
9518
9519         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
9520         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
9521         * config/pdp11/pdp11.md (register_or_const0_operand): New.
9522         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
9523         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
9524         (bCC): Delete.
9525         (cbranchdf4, cbranchhi4, cbranchqi4): New.
9526         (*branch, *branch_inverted): New.
9527
9528         * config/picochip/picochip.md (cbranchhi4): Use
9529         ordered_comparison_operator.
9530         (cmphi, bCC): Remove.
9531
9532         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
9533         (trap_comparison_operator): Delete.
9534         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
9535         rs6000_emit_cbranch): Accept mode and operands.
9536         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
9537         rs6000_compare_fp_p): Delete.   
9538         (rs6000_generate_compare): Accept mode and comparison.  Extract code
9539         and op0/op1 from there.  Replace references to rs6000_compare_op0
9540         and rs6000_compare_op1.
9541         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
9542         extract result from passed operands.
9543         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
9544         extract loc from passed operands.
9545         (rs6000_emit_cmove): Likewise.
9546         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
9547         rs6000_compare_fp_p): Delete.
9548         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
9549         (cbranch<GPR>4, cbranch<FP>4): New.
9550         (cstore<mode>4): New.  Consolidate here all choices about when to use
9551         portable or specialized sCC sequences.
9552         (stack_protect_test): Use cbranchsi4.
9553         (conditional_trap): Replace with ctrap<GPR>4.
9554         (conditional trap insn): Replace trap_comparison_operator with
9555         ordered_comparison_operator. 
9556
9557         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
9558         (s390_emit_prologue): Use ctrap.
9559         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
9560         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
9561         New predicates replacing...
9562         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
9563         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
9564         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
9565         (add<mode>cc): Do not use s390_compare_op0/op1.
9566         (s<code>): Change to...
9567         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
9568         (seq): Change to...
9569         (cstorecc4): ... this.  Handle EQ or NE equally.
9570         (*sne): Un-privatize for use in cstorecc4.
9571         (b<code>): Change to...
9572         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
9573         (conditional_trap): Replace with...
9574         (ctrap<GPR>4, ctrap<FP>4): ... these.
9575         (stack_protect): Use cbranchcc4.
9576
9577         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
9578         * config/score/score-protos.h (score_gen_cmp): Delete.
9579         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
9580         (score_block_move-loop): Use cbranchsi4.
9581         * config/score/score.md (cbranchsi4): New.
9582         (cmpsi, bCC): Delete.
9583         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
9584         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
9585         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
9586         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
9587         * config/score/score3.h (score3_gen_cmp): Delete.
9588         * config/score/score7.h (score7_gen_cmp): Delete.
9589
9590         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
9591         (sh_emit_scc_to_t): ... this.  Return void.
9592         (from_compare): Rename to...
9593         (sh_emit_compare_and_branch): ... this.
9594         (sh_emit_compare_and_set): New.
9595         (sh_expand_t_scc): Accept operands.
9596         * config/sh/predicates.md (sh_float_comparison_operator): New.
9597         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
9598         (prepare_scc_operands): Rename to...
9599         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
9600         arguments.
9601         (sh_emit_cheap_store_flag): New.
9602         (sh_emit_set_t_insn): New.
9603         (from_compare): Rename to...
9604         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
9605         handling of TARGET_SH2E floating point to avoid recursive call.
9606         Generate branch here.
9607         (sh_emit_compare_and_set): New.
9608         (sh_expand_t_scc): Get op0/op1 from arguments.
9609         (sh_emit_cheap_store_flag): New.
9610         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
9611         cases.
9612         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
9613         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
9614         (movsicc, movdicc): Do nothing when it recreated operands from
9615         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
9616         prepare_scc_operands (now sh_emit_scc_to_t).
9617         (udivdi3): Use cstoresi4.
9618         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
9619         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
9620         (cbranchint4_media, cbranchfp4_media): New.
9621         (casesi): Use cbranchdi4.
9622         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
9623         Delete.
9624         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
9625         (movnegt): Remove second operand.
9626         (cbranchsf4, cbranchdf4): New.
9627         (stack_protect): Use cbranchdi4/cbranchsi4.
9628
9629         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
9630         (gen_compare_reg): Accept comparison, extract part of it to...
9631         (gen_compare_reg_1): ... this. 
9632         (gen_compare_operator): Delete.
9633         (gen_v9_scc): Accept separate destination, comparison code and arms.
9634         Do not use sparc_compare_op0/sparc_compare_op1.
9635         (emit_scc_insn, emit_conditional_branch_insn): New.
9636         (emit_v9_brxx): Make static.  Remove useless assertion.
9637         (sparc_emit_float_lib_cmp): Return RTL instead of calling
9638         emit_cmp_insn.
9639         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
9640         * config/sparc/sparc-protos.h (gen_compare_reg,
9641         sparc_emit_float_lib_cmp): Adjust prototype.
9642         (emit_scc_insn, emit_conditional_branch_insn): New.
9643         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
9644         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
9645         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
9646         iterators to the top.
9647         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
9648         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
9649         snedi_special_trunc): Delete.
9650         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
9651         and snedi_special_trunc.
9652         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
9653         cbranchdi4, cbranch<F:mode>4): New.
9654         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
9655         here.  Use gen_compare_reg instead of gen_compare_operator.
9656         (conditional_trap): Replace with...
9657         (ctrapsi4, ctrapdi4): ... this.
9658         (stack_protect_test): Use cbranchcc4.
9659
9660         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
9661         argument to rtx.
9662         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
9663         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
9664         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
9665         from operands[0] or operands[3] depending on is_set.
9666         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
9667         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
9668         cmpdf, bCC), sCC: Remove.
9669         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
9670         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
9671         cstoredf4): New.
9672         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
9673         spu_emit_branch_or_set.
9674
9675         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
9676         Add two arguments.
9677         * config/stormy16/stormy16.h (xstormy16_compare_op0,
9678         xstormy16_compare_op1): Delete.
9679         * config/stormy16/stormy16.c (xstormy16_compare_op0,
9680         xstormy16_compare_op1): Delete. 
9681         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
9682         Adjust calls.
9683         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
9684         (cmphi, cmpsi, bCC): Remove.
9685
9686         * config/v850/v850.md (tstsi, cmpsi): Fold into...
9687         (*cmpsi): ... this one.
9688         (cbranchsi4, cstoresi4): New.
9689         (bCC expanders): Delete.
9690         (sCC insns): Fold into...
9691         (*setcc): ... this one.
9692         (casesi): Do not use gen_cmpsi and gen_bgtu. 
9693         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
9694         (movsicc): Simplify.
9695         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
9696
9697         * config/vax/vax-protos.h (cond_name): New.
9698         (vax_output_conditional_branch): Remove.
9699         * config/vax/vax.c (cond_name): New.
9700         (vax_output_conditional_branch): Remove.
9701         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
9702         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
9703         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
9704         (bit<VAXint>): Wrap source with (compare).
9705         (b<code> and following unnamed pattern): Rename to *branch and
9706         *branch_reversed.  Change macroization to match_operator.
9707         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
9708
9709         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
9710         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
9711         Change last argument to machine_mode.
9712         (xtensa_expand_scc): Add machine_mode argument.
9713         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
9714         (gen_conditional_move, xtensa_expand_conditional_branch,
9715         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
9716         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
9717         Adjust operand numbers.
9718         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
9719         Delete.
9720         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
9721         (cmpsi, cmpsf, b<code>, s<code>): Delete.
9722         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
9723
9724 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
9725
9726         * optabs.c (prepare_cmp_insn): Temporarily disable test that
9727         causes spurious differences between trunk and cond-optab branch.
9728
9729 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
9730
9731         PR target/37137
9732         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
9733
9734 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
9735
9736         * tree.c (iterative_hash_pointer): Delete.
9737         (iterative_hash_expr): Short-circuit handling of NULL pointer.
9738         Hash UIDs and versions of SSA names.  Don't special-case built-in
9739         function declarations.
9740
9741 2009-05-11  Ian Lance Taylor  <iant@google.com>
9742
9743         PR bootstrap/40103
9744         * graphite.c: Force -Wc++-compat to only be a warning before
9745         #including "cloog/cloog.h".
9746
9747 2009-05-11  Martin Jambor  <mjambor@suse.cz>
9748
9749         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
9750         
9751 2009-05-11  Jan Hubicka  <jh@suse.cz>
9752
9753         * tree-ssa-loop-ivcanon.c: Include target.h
9754         (struct loop_size): new structure.
9755         (constant_after_peeling): New predicate.
9756         (tree_estimate_loop_size): New function.
9757         (estimated_unrolled_size): Rewrite for new estimates.
9758         (try_unroll_loop_completely): Use new estimates.
9759         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
9760
9761 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9762
9763         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
9764         libcpp interface change.
9765         (spu_macro_to_expand): Likewise.
9766
9767 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
9768
9769         PR tree-optimization/40026
9770         * gimplify.c (gimplify_init_constructor): Change initial conditional
9771         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
9772         optimize_compound_literals_in_ctor.
9773
9774 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
9775
9776         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
9777         New devices.
9778         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
9779
9780 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
9781
9782         * tree-vect-data-refs.c (vect_analyze_group_access): Use
9783         HOST_WIDE_INT for gap.
9784
9785 2009-05-11  Ira Rosen  <irar@il.ibm.com>
9786
9787         PR tree-optimization/40074
9788         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
9789         account in group size and step comparison.
9790
9791 2009-05-11  Richard Guenther  <rguenther@suse.de>
9792
9793         * passes.c (init_optimization_passes): Strip now incorrect comment.
9794         (execute_function_todo): Do not set PROP_alias.
9795         * tree-pass.h (PROP_alias): Remove.
9796         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
9797         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
9798         * tree-nrv.c (pass_return_slot): Likewise.
9799         * tree-object-size.c (pass_object_sizes): Likewise.
9800         * tree-ssa-dom.c (pass_dominator): Likewise.
9801         (pass_phi_only_cprop): Likewise.
9802         * tree-ssa-dse.c (pass_dse): Likewise.
9803         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
9804         (pass_cselim): Likewise.
9805         * tree-ssa-pre.c (pass_pre): Likewise.
9806         (pass_fre): Likewise.
9807         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
9808         * tree-ssa-sink.c (pass_sink_code): Likewise.
9809         * tree-stdarg.c (pass_stdarg): Likewise.
9810         * tree-tailcall.c (pass_tail_calls): Likewise.
9811         * tree-vrp.c (pass_vrp): Likewise.
9812
9813 2009-05-10  Ian Lance Taylor  <iant@google.com>
9814
9815         * basic-block.h (enum profile_status): Break out of struct
9816         control_flow_graph.
9817         * cgraph.h (struct inline_summary): Break out of struct
9818         cgraph_local_info.
9819         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
9820         of struct cgraph_order_sort.
9821         * combine.c (enum undo_kind): New enum, broken out of struct undo.
9822         * cse.c (struct branch_path): Break out of struct
9823         cse_basic_block_data.
9824         * except.h (enum eh_region_type): Break out of struct eh_region.
9825         * gcc.c (enum add_del): Break out of struct modify_target.
9826         * genrecog.c (enum decision_type): Break out of struct decision_test.
9827         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
9828         ggc_pch_data.
9829         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
9830         * regmove.c (enum match_use): New enum, broken out of struct match.
9831         * sched-int.h (enum post_call_group): New enum, broken out of
9832         struct deps.
9833         (struct deps_reg): Break out of struct deps.
9834         * target.h (struct asm_int_op): Break out of struct gcc_target.
9835         * tree-eh.c (struct goto_queue_node): Break out of struct
9836         leh_tf_state.
9837         * tree-inline.h (enum copy_body_cge_which): Break out of
9838         copy_body_data.
9839         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
9840
9841         * c-decl.c (in_struct, struct_types): New static variables.
9842         (pushtag): Add loc parameter.  Change all callers.
9843         (lookup_tag): Add ploc parameter.  Change all callers.
9844         (check_compound_literal_type): New function.
9845         (parser_xref_tag): Add loc parameter.  Change all callers.  If
9846         -Wc++-compat, warn about struct/union/enum types defined within a
9847         struct or union.
9848         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
9849         and loc parameters.  Change all callers.  Change error calls to
9850         error_at, using loc.  For a redefinition, if the location of the
9851         original definition is known, report it.  Set in_struct and
9852         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
9853         (finish_struct): Add new parameters enclosing_in_struct and
9854         enclosing_struct_types.  Change all callers.  Set
9855         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
9856         in the struct.  If in a struct, add this struct to struct_types.
9857         (start_enum): Add loc parameter.  Change all callers.  Use
9858         error_at for errors, using loc.  For a redefinition, if the
9859         location of the original definition is known, report it.  If in a
9860         struct, add this enum type to struct_types.  If -Wc++-compat warn
9861         if in sizeof, typeof, or alignof.
9862         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
9863         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
9864         (c_parser_enum_specifier): Get enum location for start_enum.
9865         (c_parser_struct_or_union_specifier): Get struct location for
9866         start_struct.  Save in_struct and struct_types status between
9867         start_struct and finish_struct.
9868         (c_parser_cast_expression): Get location of cast.
9869         (c_parser_alignof_expression): Get location of type.
9870         (c_parser_postfix_expression): Likewise.
9871         (c_parser_postfix_expression_after_paren_type): Add type_loc
9872         parameter.  Change all callers.  Call check_compound_literal_type.
9873         Use type_loc for error about variable size type.
9874         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
9875         of an enum constant from an enum type defined in a struct or union.
9876         (c_cast_expr): Add loc parameter.  Change all callers.  If
9877         -Wc++-compat, warn about defining a type in a cast.
9878         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
9879         (start_enum, start_struct, finish_struct): Update declarations.
9880         (parser_xref_tag, c_cast_expr): Update declarations.
9881         (check_compound_literal_type): Declare.
9882
9883 2009-05-11  Ben Elliston  <bje@au.ibm.com>
9884
9885         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
9886         for recent libcpp interface change.
9887         (rs6000_macro_to_expand): Likewise.
9888
9889 2009-05-10  Michael Matz  <matz@suse.de>
9890
9891         PR target/40031
9892         * config/arm/arm.c (require_pic_register): Emit on entry edge,
9893         not at entry of function.
9894
9895 2009-05-10  Richard Guenther  <rguenther@suse.de>
9896
9897         PR tree-optimization/40081
9898         Revert
9899         * tree-sra.c (instantiate_element): Instantiate scalar replacements
9900         using the main variant of the element type.  Do not fiddle with
9901         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
9902
9903         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
9904         structs with volatile fields.
9905
9906 2009-05-10  Jan Hubicka  <jh@suse.cz>
9907
9908         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
9909         (estimate_move_cost): Assert that it does not get called for
9910         VOID_TYPE_P.
9911         (estimate_num_insns): Skip VOID types in argument handling.
9912         (optimize_inline_calls): Delete unreachable blocks and verify that
9913         callgraph is valid.
9914
9915 2009-05-10  Jan Hubicka  <jh@suse.cz>
9916
9917         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
9918         * cgraph.c (cgraph_mark_address_taken_node): New function.
9919         (dump_cgraph_node): Dump new flag.
9920         * cgraph.h (struct cgraph_node): Add address_taken.
9921         (cgraph_mark_address_taken_node): New function.
9922         * ipa.c (cgraph_postorder): Prioritize functions with address taken
9923         since new direct calls can be born.
9924
9925 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
9926
9927         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
9928         tok->val.node.node.
9929
9930 2009-05-10  Jan Hubicka  <jh@suse.cz>
9931
9932         PR middle-end/40084
9933         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
9934         argument; rewrite.
9935         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
9936         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
9937         * tree-inline.c (copy_bb): Set frequency correctly.
9938         (fold_marked_statements): Update call to
9939         cgraph_update_edges_for_call_stmt.
9940
9941 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
9942
9943         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
9944         identifiers in diagnostics.
9945         * config/arm/arm.c (arm_handle_fndecl_attribute,
9946         arm_handle_isr_attribute): Likewise.
9947         * config/avr/avr.c (avr_handle_progmem_attribute,
9948         avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise.
9949         * config/bfin/bfin.c (handle_int_attribute,
9950         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
9951         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
9952         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
9953         Likewise.
9954         * config/darwin.c (darwin_handle_kext_attribute,
9955         darwin_handle_weak_import_attribute): Likewise.
9956         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
9957         h8300_handle_eightbit_data_attribute,
9958         h8300_handle_tiny_data_attribute): Likewise.
9959         * config/i386/i386.c (ix86_handle_cconv_attribute,
9960         ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise.
9961         * config/i386/winnt.c (ix86_handle_shared_attribute,
9962         ix86_handle_selectany_attribute): Likewise.
9963         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
9964         * config/m32c/m32c.c (function_vector_handler): Likewise.
9965         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
9966         m68hc11_handle_fntype_attribute): Likewise.
9967         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
9968         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
9969         * config/mips/mips.c (mips_insert_attributes,
9970         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
9971         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
9972         rs6000_handle_struct_attribute): Likewise.
9973         * config/sh/sh.c (sh_insert_attributes,
9974         sh_handle_resbank_handler_attribute,
9975         sh_handle_interrupt_handler_attribute,
9976         sh2a_handle_function_vector_handler_attribute,
9977         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
9978         Likewise.
9979         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
9980         * config/spu/spu.c (spu_handle_fndecl_attribute,
9981         spu_handle_vector_attribute): Likewise.
9982         * config/stormy16/stormy16.c
9983         (xstormy16_handle_interrupt_attribute): Likewise.
9984         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
9985         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
9986
9987 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
9988
9989         * pretty-print.h (struct pretty_print_info): Add translate_identifiers.
9990         (pp_translate_identifiers): New.
9991         (pp_identifier): Only conditionally translate identifier to locale
9992         character set.
9993         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
9994         (pp_base_tree_identifier): Only conditionally translate identifier
9995         to locale character set.
9996         * c-pretty-print.c (M_): Define.
9997         (pp_c_type_specifier, pp_c_primary_expression): Mark English
9998         fragments for conditional translation with M_.
9999         * tree-pretty-print.c (maybe_init_pretty_print): Disable
10000         identifier translation.
10001
10002 2009-05-10  Richard Guenther  <rguenther@suse.de>
10003
10004         PR tree-optimization/40081
10005         * tree-sra.c (instantiate_element): Instantiate scalar replacements
10006         using the main variant of the element type.  Do not fiddle with
10007         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
10008
10009 2009-05-09  Jan Hubicka  <jh@suse.cz>
10010
10011         PR middle-end/40080
10012         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
10013         indirect calls; verify cgraph afterwards.
10014
10015 2009-05-09  Jan Hubicka  <jh@suse.cz>
10016
10017         PR bootstrap/40082
10018         * ipa.c (update_inlined_to_pointer): New function.
10019         (cgraph_remove_unreachable_nodes): Use it.
10020
10021 2009-05-09  Jan Hubicka  <jh@suse.cz>
10022
10023         * tree-eh.c (struct leh_state): Remove prev_try.
10024         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
10025         not track prev_try.
10026         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
10027         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
10028         remove_eh_handler_and_replace, foreach_reachable_handler,
10029         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
10030         * except.h (struct eh_region): Remove eh_region_u_cleanup.
10031         (gen_eh_region_cleanup): Update prototype.
10032
10033 2009-05-09  Jan Hubicka  <jh@suse.cz>
10034
10035         PR middle-end/40043
10036         * except.c (copy_eh_region): Always set prev_try.
10037         (redirect_eh_edge_to_label): Find outer try.
10038         (foreach_reachable_handler): When looking for prev try
10039         handle case where previous try is not going to be taken.
10040
10041 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
10042
10043         PR tree-optimization/40049
10044         * tree-vect-stmts.c (vectorizable_operation): If the machine has
10045         only vector/vector shifts, convert the type of the constant to the
10046         appropriate type to avoid building incorrect trees, which
10047         eventually have problems with garbage collection.
10048
10049 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
10050
10051         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
10052         -1 for complex floating-point types if honoring signed zeros.
10053
10054 2009-05-08  Jan Hubicka  <jh@suse.cz>
10055
10056         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
10057         argument; handle correctly when profile is absent.
10058         (build_cgraph_edges): Update.
10059         (rebuild_cgraph_edges): Update.
10060         * cgraph.c: Do not include varray.h.
10061         (cgraph_set_call_stmt_including_clones): New function.
10062         (cgraph_create_edge_including_clones): Likewise
10063         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
10064         (cgraph_update_edges_for_call_stmt): Handle clones.
10065         (cgraph_remove_node): Handle clone tree.
10066         (cgraph_remove_node_and_inline_clones): New function.
10067         (dump_cgraph_node): Dump clone tree.
10068         (cgraph_clone_node): Handle clone tree.
10069         (clone_function_name): Bring here from tree-inline.c.
10070         (cgraph_create_virtual_clone): New function.
10071         * cgraph.h (ipa_replace_map): Move here from ipa.h.
10072         (cgraph_clone_info): New function.
10073         (strut cgraph_node): Add clone_info and new clone tree pointers.
10074         (cgraph_remove_node_and_inline_clones,
10075         cgraph_set_call_stmt_including_clones,
10076         cgraph_create_edge_including_clones,
10077         cgraph_create_virtual_clone): Declare.
10078         (cgraph_function_versioning): Use VEC argument.
10079         (compute_call_stmt_bb_frequency): Update prototype.
10080         (cgraph_materialize_all_clones): New function.
10081         * ipa-cp.c (ipcp_update_cloned_node): Remove.
10082         (ipcp_create_replace_map): Update to VECtors.
10083         (ipcp_update_callgraph): Use virtual clones.
10084         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
10085         (ipcp_update_profiling): Do not update local profiling.
10086         (ipcp_insert_stage): Use VECtors and virtual clones.
10087         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
10088         (clone_of_p): New function.
10089         (cgraph_preserve_function_body_p): Use clone tree.
10090         (cgraph_optimize): Materialize clones.
10091         (cgraph_function_versioning): Update for VECtors.
10092         (save_inline_function_body): Use clone tree.
10093         (cgraph_materialize_clone): New function.
10094         (cgraph_materialize_all_clones): Likewise.
10095         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
10096         * ipa.c: Include gimple.h.
10097         (cgraph_remove_unreachable_nodes): Use clone tree.
10098         * ipa-prop.c (ipa_note_param_call): Update call to
10099         compute_call_stmt_bb_frequencycall.
10100         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
10101         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
10102         (copy_bb): Handle updating of clone tree; add new edge when new call
10103         appears.
10104         (expand_call_inline): Be strict about every call having edge.
10105         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
10106         (delete_unreachable_blocks_update_callgraph): New function.
10107         (tree_function_versioning): Use VECtors; always remove unreachable
10108         blocks and fold conditionals.
10109         * tree-inline.h: Do not include varray.h.
10110         (tree_function_versioning): Remove.
10111         * Makefile.in (GTFILES): Remove tree-inline.c
10112         * passes.c (do_per_function): Do only functions having body.
10113         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
10114         tree.
10115
10116 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
10117             Andrew Morrow  <acm@google.com>
10118
10119         PR c/36892
10120         * c-common.c (c_common_attribute_table): Permit deprecated
10121         attribute to take an optional argument.
10122         (handle_deprecated_attribute): If the optional argument to
10123         __attribute__((deprecated)) is not a string ignore the attribute
10124         and emit a warning.
10125
10126         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
10127         * c-typeck.c (build_component_ref): Likewise.
10128         (build_external_ref): Likewise.
10129
10130         * toplev.c (warn_deprecated_use): Add an attribute argument.
10131         Emit the message associated with __attribute__((deprecated)).
10132
10133         * toplev.h (warn_deprecated_use): Updated.
10134
10135         * doc/extend.texi: Document new optional parameter to
10136         __attribute__((deprecated))
10137
10138 2009-05-08  Michael Eager <eager@eagercon.com>
10139
10140         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
10141         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
10142
10143 2009-05-08  Richard Guenther  <rguenther@suse.de>
10144
10145         PR tree-optimization/40062
10146         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
10147         Avoid exponential behavior.
10148
10149 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
10150
10151         PR rtl-optimization/33928
10152         PR 26854
10153         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
10154         process_uses, build_single_def_use_links): New.
10155         (update_df): Update use_def_ref.
10156         (forward_propagate_into): Use get_def_for_use instead of use-def
10157         chains.
10158         (fwprop_init): Call build_single_def_use_links and let it initialize
10159         dataflow.
10160         (fwprop_done): Free use_def_ref.
10161         (fwprop_addr): Eliminate duplicate call to df_set_flags.
10162         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
10163         df_rd_simulate_one_insn): New.
10164         (df_rd_bb_local_compute_process_def): Update head comment.
10165         (df_chain_create_bb): Use the new RD simulation functions.
10166         * df.h (df_rd_simulate_artificial_defs_at_top, 
10167         df_rd_simulate_one_insn): New.
10168         * opts.c (decode_options): Enable fwprop at -O1.
10169         * doc/invoke.texi (-fforward-propagate): Document this.
10170
10171 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
10172
10173         PR c/24581
10174         * c-typeck.c (build_binary_op): Handle arithmetic between one real
10175         and one complex operand specially.
10176         * tree-complex.c (some_nonzerop): Do not identify a real value as
10177         zero if flag_signed_zeros.
10178
10179 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
10180
10181         PR rtl-optimization/33928
10182         * loop-invariant.c (record_use): Fix && vs. || mishap.
10183
10184 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
10185
10186         PR rtl-optimization/33928
10187         * loop-invariant.c (struct use): Add addr_use_p.
10188         (struct def): Add n_addr_uses.
10189         (struct invariant): Add cheap_address.
10190         (create_new_invariant): Set cheap_address.
10191         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
10192         (record_uses): Pass df_ref to record_use.
10193         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
10194         used only as such.
10195
10196 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
10197
10198         * config/sh/sh.c: Do not include c-pragma.h.
10199
10200 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10201
10202         * config/spu/spu.c: Remove include of c-common.h.
10203
10204 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
10205
10206         PR c/39037
10207         * c-common.h (mark_valid_location_for_stdc_pragma,
10208         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
10209         clear_float_const_decimal64, float_const_decimal64_p): New.
10210         * c.opt (Wunsuffixed-float-constants): New.
10211         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
10212         unsuffixed float constant, handle new warning.
10213         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
10214         * c-decl.c (c_scope): New flag float_const_decimal64.
10215         (set_float_const_decimal64, clear_float_const_decimal64,
10216         float_const_decimal64_p): New.
10217         (push_scope): Set new flag.
10218         * c-parser.c (c_parser_translation_unit): Mark when it's valid
10219         to use STDC pragmas.
10220         (c_parser_external_declaration): Ditto.
10221         (c_parser_compound_statement_nostart): Ditto.
10222         * c-pragma.c (valid_location_for_stdc_pragma,
10223         mark_valid_location_for_stdc_pragma,
10224         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
10225         handle_pragma_float_const_decimal64): New.
10226         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
10227         * cp/semantics.c (valid_location_for_stdc_pragma_p,
10228         set_float_const_decimal64, clear_float_const_decimal64,
10229         float_const_decimal64_p): New dummy functions.
10230         * doc/extend.texi (Decimal Float): Remove statement that the
10231         pragma, and suffix for double constants, are not supported.
10232         * doc/invoke.texi (Warning Options): List new option.
10233         (-Wunsuffixed-float-constants): New.
10234
10235 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
10236
10237         * config/i386/i386.c: Do not include c-common.h.
10238
10239 2009-05-07  Mark Heffernan  <meheff@google.com>
10240
10241         * doc/invoke.texi (Debugging Options): Document change of debugging
10242         dump location.
10243         * opts.c (decode_options): Make dump_base_name relative to
10244         aux_base_name directory.
10245
10246 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
10247
10248         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
10249         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
10250
10251 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
10252
10253         * Makefile.in (install-plugin): Simplify a bit.
10254
10255 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
10256
10257         * Makefile.in (OBJS-common): Add regcprop.o.
10258         (regcprop.o): New.
10259         * timevar.def (TV_CPROP_REGISTERS): New.
10260         * regrename.c (regrename_optimize): Return 0.
10261         (rest_of_handle_regrename): Delete.
10262         (pass_rename_registers): Point to regrename_optimize.
10263         (struct value_data_entry, struct value_data, 
10264         kill_value_one_regno, kill_value_regno, kill_value,
10265         set_value_regno, init_value_data, kill_clobbered_value,
10266         kill_set_value, kill_autoinc_value, copy_value,
10267         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
10268         replace_oldest_value_reg, replace_oldest_value_addr,
10269         replace_oldest_value_mem, copyprop_hardreg_forward_1,
10270         debug_value_data, validate_value_data): Move...
10271         * regcprop.c: ... here.
10272         (rest_of_handle_cprop): Delete.
10273         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
10274
10275 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
10276
10277         PR middle-end/40057
10278         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
10279         GEN_INT for 1 << bitnum.
10280         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
10281         build_int_cst_type.
10282
10283 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
10284
10285         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
10286         Remove wrong description of "nand" operation.
10287
10288 2009-05-06  Richard Guenther  <rguenther@suse.de>
10289             Adam Nemet  <anemet@caviumnetworks.com>
10290
10291         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
10292         comment.  Add that if LHS is not a gimple register, then RHS1 has
10293         to be a single object (GIMPLE_SINGLE_RHS).
10294
10295 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
10296
10297         * expr.c (get_def_for_expr): Move it up in the file.
10298         (store_field): When expanding a bit-field store, look at the
10299         defining gimple stmt for the masking conversion.
10300
10301 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
10302
10303         PR middle-end/39986
10304         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
10305         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
10306         32-bit memcpy into long.
10307
10308 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
10309
10310         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
10311         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
10312         new_reg_loc_descr.
10313         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
10314         instead of appending DW_OP_deref*.
10315
10316 2009-05-06  Michael Matz  <matz@suse.de>
10317
10318         PR middle-end/40021
10319         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
10320         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
10321
10322 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
10323
10324         * Makefile.in (install-plugin): Fix srcdir handling.
10325
10326 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
10327
10328         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
10329         when processing for not_regs_needed bitmap.
10330         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
10331         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
10332         handling it for rhs. 
10333
10334 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
10335
10336         * config/i386/i386.md (unnamed inc/dec peephole): Use
10337         optimize_insn_for_size_p instead of optimize_size.
10338         * config/i386/predicates.md (incdec_operand): Likewise.
10339         (aligned_operand): Likewise.
10340         * config/i386/sse.md (divv8sf3): Likewise.
10341         (sqrtv8sf2): Likewise.
10342
10343 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
10344
10345         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
10346
10347         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
10348
10349 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
10350
10351         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
10352         ssemodesuffixf2c with avxmodesuffixf2c.
10353
10354 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
10355
10356         PR c/40032
10357         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
10358
10359 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
10360
10361         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
10362         (struct tree_base): Adjust spacing for 8 bit boundaries.
10363         (struct tree_decl_common): Add decl_by_reference_flag bit.
10364         (DECL_BY_REFERENCE): Adjust.
10365         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
10366         print DECL_BY_REFERENCE bit.
10367         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
10368         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
10369         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
10370         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
10371         unconditionally.
10372
10373         PR middle-end/39666
10374         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
10375         range of the type, but default label is missing, add it with one
10376         of the existing labels instead of adding a new label for it.
10377
10378 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
10379
10380         * dwarf.h: Remove.
10381
10382 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
10383
10384         * Makefile.in (enable_plugin, plugin_includedir): New.
10385         (install): Depend on install-plugin.
10386         (PLUGIN_HEADERS): New.
10387         (install-plugin): New.
10388         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
10389
10390 2009-05-05  Richard Guenther  <rguenther@suse.de>
10391
10392         PR tree-optimization/40022
10393         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
10394         the only vuse.
10395         (phivn_valid_p): Fix tuplification error, simplify.
10396         (phiprop_insert_phi): Add dumps.
10397         (propagate_with_phi): Simplify.
10398
10399 2009-05-05  Richard Guenther  <rguenther@suse.de>
10400
10401         PR middle-end/40023
10402         * builtins.c (gimplify_va_arg_expr): Properly build the address.
10403
10404 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
10405
10406         * tree.h (strip_float_extensions): Remove duplicate declaration.
10407         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
10408         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
10409         block_ultimate_origin): Rearrange the declarations line to match the
10410         comment that indicates the .c file which the functions are defined.
10411         (dwarf2out_*, set_decl_rtl): Add comment.
10412         (get_base_address): Adjust comment.
10413         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
10414         declarations line and add comment.
10415         (is_builtin_name): Add blank after function name, for clarity.
10416
10417 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
10418
10419         * attribs.c (decl_attributes): Use %qE for identifiers in
10420         diagnostics.
10421         * cgraphunit.c (verify_cgraph_node): Translate function names to
10422         locale character set in diagnostics.
10423         * coverage.c (get_coverage_counts): Use %qE for identifiers in
10424         diagnostics.
10425         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
10426         Document that functions are named in UTF-8.
10427         * expr.c (expand_expr_real_1): Translate function names to locale
10428         character set in diagnostics.
10429         * gimplify.c (omp_notice_variable, omp_is_private,
10430         gimplify_scan_omp_clauses): Use %qE for identifiers in
10431         diagnostics.
10432         * langhooks.c (lhd_print_error_function): Translate function names
10433         to locale character set.
10434         * langhooks.h (decl_printable_name): Document that return value is
10435         in internal character set.
10436         * stmt.c: Include pretty-print.h
10437         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
10438         diagnostics.
10439         (resolve_operand_name_1): Translate named operand name to locale
10440         character set.
10441         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
10442         diagnostics.
10443         * toplev.c (announce_function): Translate function names to locale
10444         character set.
10445         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
10446         (default_tree_printer): Use pp_identifier or translate identifiers
10447         to locale character set.  Mark "<anonymous>" for translation.
10448         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
10449         for identifiers in diagnostics.
10450         * tree.c (handle_dll_attribute): Use %qE for identifiers in
10451         diagnostics.
10452         * varasm.c (output_constructor): Use %qE for identifiers in
10453         diagnostics.
10454
10455 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
10456
10457         * configure.ac: use ` ` instead of $()
10458         * configure: Regenerate.
10459
10460 2009-05-05  Ben Elliston  <bje@au.ibm.com>
10461
10462         * config/pa/linux-atomic.c: Eliminate conditional include of
10463         errno.h on non-LP64 systems to simplify build requirements.
10464
10465 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
10466
10467         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
10468         diagnostics.
10469         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
10470         and pass value to identifier_to_locale.
10471         (warn_variable_length_array): Make name a tree.
10472         (grokdeclarator): Separate diagnostic texts for named and unnamed
10473         declarators.  Use %qE for named declarators.
10474         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
10475         diagnostics.
10476         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
10477         identifiers in diagnostics.
10478         * c-typeck.c (push_member_name, start_init): Pass identifiers to
10479         identifier_to_locale.  Mark "anonymous" strings for translation.
10480
10481 2009-05-04  Michael Eager <eager@eagercon.com>
10482
10483         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
10484         address for DImode/DFmode only if double-precision FP regs.
10485
10486 2009-05-04  Michael Eager <eager@eagercon.com>
10487
10488         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
10489         TARGET_SINGLE_FLOAT check.
10490
10491 2009-05-04  Michael Eager <eager@eagercon.com>
10492
10493         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
10494
10495 2009-05-04  Michael Eager <eager@eagercon.com>
10496
10497         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
10498         * config/rs6000/t-xilinx: New
10499
10500 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
10501
10502         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
10503         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
10504         * gcc/explow.c (memory_address): Use target hook.
10505         * gcc/targhooks.c (default_legitimize_address): New.
10506         * gcc/targhooks.h (default_legitimize_address): New.
10507         * gcc/target.h (legitimize_address): New.
10508         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
10509         (TARGET_INITIALIZER): Include it.
10510         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
10511
10512         * config/bfin/bfin-protos.h (legitimize_address): Remove.
10513         * config/bfin/bfin.c (legitimize_address): Remove.
10514         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
10515         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
10516         Remove.
10517         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
10518         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
10519
10520         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
10521         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
10522         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
10523         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
10524         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
10525         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
10526         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
10527         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
10528         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
10529         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
10530         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
10531         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
10532         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
10533         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
10534         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
10535         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
10536         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
10537         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
10538         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
10539         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
10540         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
10541         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
10542         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
10543
10544         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
10545         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
10546         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
10547         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
10548         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
10549         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
10550         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
10551         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
10552         (thumb_legitimize_address): Delete.
10553         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
10554         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
10555         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
10556         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
10557         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
10558         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
10559         Delete.
10560         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
10561         Delete.
10562
10563         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
10564         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
10565         * config/m32r/m32r.c (m32r_legitimize_address): New.
10566         * config/m68k/m68k.c (m68k_legitimize_address): New.
10567         * config/score/score.c (score_legitimize_address): Standardize.
10568         * config/score/score3.c (score3_legitimize_address): Standardize.
10569         * config/score/score3.h (score3_legitimize_address): Adjust.
10570         * config/score/score7.c (score7_legitimize_address): Standardize.
10571         * config/score/score7.h (score7_legitimize_address): Adjust.
10572         * config/sh/sh.c (sh_legitimize_address): New.
10573         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
10574
10575         * gcc/config/s390/s390.c (legitimize_address): Rename to...
10576         (s390_legitimize_address): ... this.
10577         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
10578         (sparc_legitimize_address): ... this.
10579         * gcc/config/i386/i386.c (legitimize_address): Rename to...
10580         (ix86_legitimize_address): ... this.
10581         * gcc/config/avr/avr.c (legitimize_address): Rename to...
10582         (avr_legitimize_address): ... this.
10583         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
10584         (mn10300_legitimize_address): ... this.
10585         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
10586         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
10587         (alpha_expand_mov): Adjust call.
10588
10589         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
10590         * config/spu/spu.c (spu_legitimize_address): Likewise.
10591         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
10592         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
10593
10594 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
10595
10596         * intl.c (locale_encoding, locale_utf8): New.
10597         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
10598         * intl.h (locale_encoding, locale_utf8): Declare.
10599         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
10600         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
10601         New.
10602         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
10603         argument.
10604         (pp_tree_identifier): Define to call pp_base_tree_identifier.
10605         (pp_base_tree_identifier): Declare as function.
10606         (identifier_to_locale): Declare.
10607         * Makefile.in (pretty-print.o): Update dependencies.
10608         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
10609
10610 2009-05-04  Richard Guenther  <rguenther@suse.de>
10611
10612         PR middle-end/40015
10613         * builtins.c (fold_builtin_memory_op): Do not decay to element
10614         type if the size matches the whole array.
10615
10616 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
10617
10618         * expmed.c (synth_mult): When trying out a shift, pass the result
10619         of a signed shift.
10620
10621 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
10622
10623         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
10624         (shiftsub1_cost): New.
10625         (init_expmed): Compute shiftsub1_cost.
10626         (synth_mult): Optimize multiplications by constants of the form
10627         -(2^^m-1) for some constant positive integer m.
10628
10629 2009-05-03  Richard Guenther  <rguenther@suse.de>
10630
10631         PR c/39983
10632         * c-typeck.c (array_to_pointer_conversion): Do not built
10633         ADDR_EXPRs of arrays of pointer-to-element type.
10634         * c-gimplify.c (c_gimplify_expr): Revert change fixing
10635         up wrong ADDR_EXPRs after-the-fact.
10636         * c-common.c (strict_aliasing_warning): Strip pointer
10637         conversions for obtaining the original type.
10638         * builtins.c (fold_builtin_memset): Handle array types.
10639         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
10640         and array types
10641
10642 2009-05-03  Richard Guenther  <rguenther@suse.de>
10643
10644         PR middle-end/23329
10645         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
10646         Do not lose casts from array types with unknown extent to array
10647         types with known extent.
10648         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
10649         alias set compatibility.
10650
10651 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10652
10653         * flags.h (extra_warnings): Delete.
10654         * toplev.c (process_options): Handle Wuninitialized here.
10655         * opts.c (extra_warnings): Delete.
10656         (set_Wextra): Delete.
10657         (common_handle_option): -Wextra can be handled automatically.
10658         * c-opts.c (c_common_handle_option): Delete obsolete code.
10659         (c_common_post_options): Simplify comment.
10660         * common.opt (W): Add Var.
10661         (Wextra): Add Var.
10662         (Wuninitialized): Initialize to -1.
10663
10664 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
10665             Richard Guenther  <rguenther@suse.de>
10666
10667         * expr.c (get_def_for_expr): New function.
10668         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
10669         SSA rather than trees.
10670         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
10671         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
10672         
10673 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
10674
10675         * c-common.c (reswords): Add _Imaginary.
10676         * c-common.c (enum rid): Add RID_IMAGINARY.
10677
10678 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
10679
10680         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
10681         Patch by Richard Guenther.
10682
10683 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
10684
10685         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
10686         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
10687         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
10688         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
10689         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
10690         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
10691         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
10692         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
10693         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
10694         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
10695         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
10696         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
10697         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
10698         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
10699         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
10700         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
10701         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
10702         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
10703
10704 2009-05-02  Richard Guenther  <rguenther@suse.de>
10705
10706         PR tree-optimization/39940
10707         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
10708         doing so.
10709
10710 2009-05-02  Richard Guenther  <rguenther@suse.de>
10711
10712         PR middle-end/40001
10713         * tree-ssa.c (execute_update_addresses_taken): Properly check
10714         if we can mark a variable DECL_GIMPLE_REG_P.
10715         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
10716         back to the end of the function.
10717         (is_gimple_reg_type): Remove complex type special casing.
10718         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
10719         if not optimizing.
10720
10721 2009-05-02  Ben Elliston  <bje@au.ibm.com>
10722
10723         * doc/collect2.texi (Collect2): Document search path behaviour
10724         when configured with --with-ld.
10725
10726 2009-05-02  Jan Hubicka  <jh@suse.cz>
10727
10728         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
10729         parameter; update callers.
10730         (coalesce_cost_edge): EH edges are costier because they needs
10731         splitting even if not critical and even more costier when there are
10732         multiple EH predecestors.
10733
10734 2009-05-02  Jan Hubicka  <jh@suse.cz>
10735
10736         * except.c (remove_eh_handler_and_replace): Handle updating after
10737         removing TRY blocks.
10738
10739 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
10740
10741         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
10742
10743 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
10744
10745         * varasm.c: Do not include c-pragma.h.
10746         * attribs.c: Do not incude c-common.h.
10747
10748 2009-05-01  Michael Matz  <matz@suse.de>
10749
10750         * calls.c (initialize_argument_information): Handle SSA names like
10751         decls with a non MEM_P DECL_RTL.
10752
10753 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
10754
10755         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
10756         * ipa-utils.c: Likewise.
10757         * ipa-type-escape.c: Likewise.
10758         * cgraphunit.c Do not include c-common.h.
10759         * ipa-pure-const.c: Likewise.
10760         * tree-if-conv.c: Likewise.
10761         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
10762         * ipa-struct-reorg.c: Likewise.
10763         * tree-nomudflap.c: Likewise.
10764         * tree-ssa-structalias.c: Likewise.
10765
10766 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
10767
10768         * store-motion.c: Many cleanups to make this pass a first-class
10769         citizen instead of an appendix to gcse load motion.  Add TODO list
10770         to make this pass faster/cleaner/better.
10771
10772         (struct ls_expr): Post gcse.c-split cleanups.
10773         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
10774         "stores" field to "avail_stores".
10775         (pre_ldst_mems): Rename to store_motion_mems.
10776         (pre_ldst_table): Rename to store_motion_mems_table.
10777         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
10778         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
10779         (ldst_entry): Rename to st_expr_entry, update users.
10780         (free_ldst_entry): Rename to free_st_expr_entry, update users.
10781         (free_ldst_mems): Rename to free_store_motion_mems, update users.
10782         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
10783         update caller.
10784         (first_ls_expr): Rename to first_st_expr, update users.
10785         (next_ls_expr): Rename to next_st_expr, update users.
10786         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
10787         fields properly for store motion instead of names inherited from load
10788         motion in gcse.c.
10789         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
10790         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
10791         are done with it.
10792
10793         (ae_kill): Rename to st_kill, update users.
10794         (ae_gen): Rename to st_avloc, update users.
10795         (transp): Rename to st_transp, update users.
10796         (pre_insert_map): Rename to st_insert_map, update users.
10797         (pre_delete_map): Rename to st_delete_map, update users.
10798         (insert_store, build_store_vectors, free_store_memory,
10799         one_store_motion_pass): Update for abovementioned changes.
10800
10801         (gcse_subst_count, gcse_create_count): Remove.
10802         (one_store_motion_pass): New statistics counters "n_stores_deleted"
10803         and "n_stores_created", local variables.
10804
10805         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
10806         use for_each_rtx.
10807
10808         (regvec, compute_store_table_current_insn): Remove.
10809         (reg_set_info, reg_clear_last_set): Remove.
10810         (compute_store_table): Use DF caches instead of local dataflow
10811         solvers.
10812
10813 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
10814
10815         * c-objc-common.c (c_tree_printer): Print identifiers with
10816         pp_identifier, not pp_string.  Mark "({anonymous})" for
10817         translation.
10818         * c-pretty-print.c (pp_c_ws_string): New.
10819         (pp_c_cv_qualifier, pp_c_type_specifier,
10820         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
10821         pp_c_storage_class_specifier, pp_c_function_specifier,
10822         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
10823         pp_c_primary_expression, pp_c_postfix_expression,
10824         pp_c_unary_expression, pp_c_shift_expression,
10825         pp_c_relational_expression, pp_c_equality_expression,
10826         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
10827         use pp_string and pp_c_ws_string in place of pp_identifier and
10828         pp_c_identifier for non-identifiers.  Mark English strings for
10829         translation.
10830         * c-pretty-print.h (pp_c_ws_string): Declare.
10831
10832 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
10833             Roland McGrath <roland@redhat.com>
10834
10835         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
10836         (ENABLE_LD_BUILDID): New configuration option.
10837         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
10838         (LINK_BUILDID_SPEC): New macro.
10839         (init_spec): If defined, prepend it between LINK_EH_SPEC and
10840         link_spec.
10841         * doc/install.texi: Document --enable-linker-build-id option.
10842         * configure: Rebuild.
10843         * config.in: Rebuild.
10844
10845 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
10846
10847         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
10848         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
10849         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
10850         MIPS_GP_SAVE_AREA_SIZE.
10851         * config/mips/mips.c (struct mips_frame_info): Update comment
10852         before arg_pointer_offset and hard_frame_pointer_offset.
10853         (mips_compute_frame_info): Update diagram before function: to
10854         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
10855         indicate the position of frame_pointer_rtx with -fstack-protector and
10856         to show args_size.  Don't allocate cprestore area for leaf functions
10857         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
10858         cprestore_size.
10859         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
10860
10861 2009-04-30  Michael Matz  <matz@suse.de>
10862
10863         PR tree-optimization/39955
10864         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
10865
10866 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
10867
10868         * ira.c (setup_cover_and_important_classes):  Use safe macro
10869         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
10870         directly.
10871         * genpreds.c (write_tm_preds_h):  Output suitable definition of
10872         REG_CLASS_FOR_CONSTRAINT.
10873
10874 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
10875
10876         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
10877         instead of an int.
10878         * bitmap.c (bitmap_descriptor): Likewise.
10879         * ggc-common.c (loc_descriptor): Likewise.
10880         * varray.c (varray_descriptor): Likewise.
10881         * vec.c (vec_descriptor): Likewise.
10882
10883 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
10884
10885         * Makefile.in (dce.o): Add $(EXCEPT_H).
10886         * dce.c: Include except.h and delete redundant vector definitions.
10887         (deletable_insn_p): Return false for non-call insns that can throw
10888         if DF is running.
10889
10890 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
10891
10892         * gcse.c (ae_gen): Remove.
10893         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
10894         and make non-static function to make it available in store-motion.c.
10895         Update call sites with search-and-replace.
10896         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
10897         extract_mentioned_regs, extract_mentioned_regs_helper,
10898         find_moveable_store, compute_store_table, load_kills_store, find_loads,
10899         store_killed_in_insn, store_killed_after, store_killed_before,
10900         build_store_vectors, insert_insn_start_basic_block, insert-store,
10901         remove_reachable_equiv_notes, replace_store_insn, delete_store,
10902         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
10903         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
10904         * store-motion.c: ...new file.  Also copy data structures from gcse.c
10905         and clean up to remove parts not used by store motion.
10906         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
10907         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
10908
10909 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10910
10911         PR target/38571
10912         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
10913         when optimizing for size.
10914
10915 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
10916
10917         * gcse.c (gcse_constant_p): Fix typo in last change.
10918
10919 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
10920
10921         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
10922
10923 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
10924
10925         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
10926
10927 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
10928
10929         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
10930         CONST_HIGH_PART result.
10931
10932 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
10933
10934         * config/avr/avr.c (initial_elimination_offset): Rename to
10935         avr_initial_elimination_offset.
10936         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
10937         change return type to bool.
10938         (avr_can_eliminate): New function.
10939         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
10940         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
10941         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
10942         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
10943         avr_initial_elimination_offset.
10944         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
10945         (avr_initial_elimination_offset): Define.
10946
10947 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
10948             Steven Bosscher  <steven@gcc.gnu.org>
10949
10950         PR rtl-optimization/39938
10951         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
10952         * cfgrtl.c: Include insn-attr.h.
10953         (rest_of_pass_free_cfg): New function.
10954         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
10955         * resource.c (init_resource_info): Remove call to df_analyze.
10956
10957 2009-04-29  Richard Guenther  <rguenther@suse.de>
10958
10959         PR target/39943
10960         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
10961         allow conversion to signed integers.
10962
10963 2009-04-29  Richard Guenther  <rguenther@suse.de>
10964
10965         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
10966         shifts of floating point vectors if the shift amount is
10967         a constant multiple of the element size.
10968
10969 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
10970             Michael Matz  <matz@suse.de>
10971
10972         PR middle-end/39927
10973         PR bootstrap/39929
10974         * tree-outof-ssa.c (emit_partition_copy): New function.
10975         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
10976         insert_part_to_rtx_on_edge): Perform the partition base var
10977         copy using emit_partition_copy.
10978         (insert_value_copy_on_edge): Convert constants to the right mode.
10979         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
10980         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
10981
10982 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
10983
10984         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
10985         scan backwards to try to find a constant to initialize it.
10986
10987         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
10988         insn before the loop_end instruction, don't look past labels.
10989
10990 2009-04-29  Richard Guenther  <rguenther@suse.de>
10991
10992         PR middle-end/39937
10993         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
10994         loose type conversions.
10995         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
10996         stmts only if there are no uses of its definition.
10997
10998 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
10999
11000         * config/bfin/bfin.h (splitting_loops): Declare.
11001         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
11002         Reorder bit definitions to be ascending.
11003         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
11004         * config/bfin/bfin.c (splitting_loops): New variable.
11005         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
11006         (struct loop_info): Remove members INIT and LOOP_INIT.
11007         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
11008         the LSETUP sequence.  Allow LC to be loaded from any register, but
11009         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
11010         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
11011         set to 1.
11012         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
11013         of reload_completed.
11014
11015         From Jie Zhang:
11016         * config/bfin/bfin.md (movsi_insn): Refine constraints.
11017
11018 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
11019
11020         * Makefile.in (PLUGIN_VERSION_H): New.
11021         (OBJS-common): Remove plugin-version.o.
11022         (plugin.o): Depend on (PLUGIN_VERSION_H).
11023         (plugin-version.o): Remove.
11024         * configure: Regenerate
11025         * configure.ac: Create plugin-version.h.
11026         * gcc-plugin.h (plugin_gcc_version): Remove.
11027         (plugin_default_version_check): Change signature.
11028         * plugin-version.c: Remove.
11029         * plugin.c: Include plugin-version.h.
11030         (str_plugin_gcc_version_name): Remove.
11031         (try_init_one_plugin): Pass gcc version to plugin_init.
11032         (plugin_default_version_check): Both gcc and plugin versions are now
11033         arguments.
11034
11035 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
11036         
11037         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
11038         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
11039         Remove special case testing for last insn of inner loops. Don't fail
11040         if the loop ends with a jump, emit an extra nop instead.
11041
11042         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
11043         DREGS rather than comparing directly.  Remove code that tries to
11044         account for latencies.
11045
11046 2009-04-29  Richard Guenther  <rguenther@suse.de>
11047
11048         PR tree-optimization/39941
11049         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
11050         eliminating an indirect call.
11051
11052 2009-04-29  Richard Guenther  <rguenther@suse.de>
11053
11054         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
11055         parameter.  Allow invariants as base if !require_lvalue.
11056         (verify_gimple_assign_single): Adjust.
11057
11058 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
11059
11060         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
11061         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
11062         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
11063         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
11064         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
11065         a VEC_SELECT.
11066         * config/bfin/bfin.c (bfin_expand_builtin,
11067         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
11068
11069 2009-04-28  Richard Guenther  <rguenther@suse.de>
11070
11071         * tree-vect-loop.c (get_initial_def_for_induction): Use
11072         correct types for pointer increment.
11073
11074 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11075
11076         * toplev.c (print_version): Update GMP version string calculation.
11077
11078 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
11079
11080         PR rtl-optimization/39938
11081         * resource.c (init_resource_info): Add call to df_analyze.
11082
11083 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
11084
11085         * config/alpha/alpha.md (usegp): Cast the result of
11086         alpha_find_lo_sum_using_gp to enum attr_usegp.
11087         * config/alpha/alpha.c (override_options): Remove end-of-structure
11088         marker element from cpu_table.  Use array size of cpu_table to handle
11089         -mcpu and -mtune options.
11090         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
11091
11092 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
11093
11094         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
11095         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
11096         tune_32 and tune_64.
11097         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
11098         support on PowerPC.
11099         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
11100         * config/rs6000/option-defaults.h: ... here.  New file.
11101         (OPT_64, OPT_32): Define.
11102         (MASK_64BIT): Define to 0 if not already defined.
11103         (OPT_ARCH64, OPT_ARCH32): Define.
11104         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
11105         and tune_64.
11106
11107 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11108
11109         * config/arm/arm.c (arm_override_options): Emit error on using
11110         fpa with AAPCS.
11111
11112 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
11113
11114         PR rtl-optimization/39914
11115         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
11116         registers for allocnos created from user-defined variables only
11117         when not optimizing.
11118
11119 2009-04-28  Richard Guenther  <rguenther@suse.de>
11120
11121         PR middle-end/39937
11122         * fold-const.c (fold_binary): Use distribute_real_division only
11123         on float types.
11124
11125 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
11126
11127         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
11128         add hpux-stdint.h to tm_file.
11129         (hppa[12]*-*-hpux11*): Ditto.
11130         (ia64*-*-hpux*): Ditto.
11131         * config/hpux-stdint.h: New.
11132         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
11133         __STDC_EXT__ for all compiles.
11134         * config/pa/pa-hpux.h: Ditto.
11135         * config/pa/pa-hpux10.h: Ditto.
11136         * config/pa/pa-hpux11.h: Ditto.
11137
11138 2009-04-28  Catherine Moore  <clm@codesourcery.com>
11139
11140         * debug.h (set_name): Add comment.
11141
11142 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
11143
11144         PR target/39929
11145         * config/darwin.c (machopic_gen_offset): Check
11146         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
11147         * config/arm/arm.c (require_pic_register): Likewise.
11148
11149 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
11150
11151         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
11152         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
11153         m32c_promote_prototypes): Delete.
11154
11155 2009-04-28  Michael Matz  <matz@suse.de>
11156
11157         PR middle-end/39922
11158         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
11159         constants.
11160
11161 2009-04-28  Richard Guenther  <rguenther@suse.de>
11162
11163         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
11164
11165 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11166
11167         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
11168         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
11169         * config/arm/arm-tune.md: Regenerate.
11170
11171 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
11172
11173         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
11174         block if there are complex incoming edges.
11175         (sel_merge_blocks): Remove useless assert.
11176         (sel_redirect_edge_and_branch): Check that edge was redirected.
11177         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
11178         (sel_find_rgns): Delete declaration.
11179         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
11180         the region when it is not a preheader.
11181
11182 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
11183
11184         PR c/39323
11185         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
11186
11187 2009-04-28  Richard Guenther  <rguenther@suse.de>
11188
11189         * tree.h (SSA_NAME_VALUE): Remove.
11190         (struct tree_ssa_name): Remove value_handle member.
11191         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
11192         array for jump threading.
11193         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
11194         SSA_NAME_VALUEs.
11195         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
11196         * tree-flow.h (threadedge_initialize_values): Declare.
11197         (threadedge_finalize_values): Likewise.
11198         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
11199         (SSA_NAME_VALUE): Define.
11200         (threadedge_initialize_values): New function.
11201         (threadedge_finalize_values): Likewise.
11202         * tree-ssa-dom.c (ssa_name_values): New global variable.
11203         (SSA_NAME_VALUE): Define.
11204         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
11205
11206 2009-04-28  Ira Rosen  <irar@il.ibm.com>
11207
11208         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
11209         Use REPORT_VECTORIZED_LOCATIONS instead 
11210         REPORT_VECTORIZED_LOOPS.
11211         * tree-vectorizer.c (vect_verbosity_level): Make static.
11212         (vect_loop_location): Rename to vect_location.
11213         (vect_set_verbosity_level): Update comment.
11214         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
11215         and vect_location.
11216         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
11217         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
11218         instead REPORT_UNVECTORIZED_LOOPS.
11219         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
11220         and vect_loop_def to vect_external_def and vect_internal_def.
11221         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
11222         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
11223         REPORT_UNVECTORIZED_LOCATIONS.
11224         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
11225         and vect_used_in_loop and to vect_unused_in_scope and 
11226         vect_used_in_scope.
11227         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
11228         (vect_verbosity_level): Remove declaration.
11229         (vect_analyze_operations): Likewise.
11230         (vect_analyze_stmt): Declare.
11231         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
11232         REPORT_UNVECTORIZED_LOCATIONS.
11233         (vect_get_loop_niters): Fix indentation.
11234         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
11235         (vect_analyze_loop_operations): New function.
11236         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
11237         vect_analyze_operations.
11238         (vect_is_simple_reduction): Use new names.
11239         (vectorizable_live_operation, vect_transform_loop): Likewise.
11240         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
11241         to specify whether the data references can be a part of interleaving
11242         chain.
11243         (vect_analyze_data_ref_dependence): Use new names.
11244         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
11245         (vect_create_addr_base_for_vector_ref): Remove redundant code.
11246         * tree-vect-patterns.c (widened_name_p): Use new names.
11247         (vect_recog_dot_prod_pattern): Likewise.
11248         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
11249         (process_use, vect_mark_stmts_to_be_vectorized, 
11250         vect_model_simple_cost, vect_model_store_cost,
11251         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
11252         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
11253         vectorizable_operation, vectorizable_type_demotion,
11254         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
11255         vectorizable_condition): Likewise.
11256         (vect_analyze_operations): Split into vect_analyze_loop_operations
11257         and ...
11258         (vect_analyze_stmt): ... new function.
11259         (new_stmt_vec_info): Use new names.
11260         (vect_is_simple_use): Use new names and fix comment.
11261         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
11262         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
11263
11264 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
11265
11266         PR target/39911
11267         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
11268         and integer modes for x87 operands.  Do not ICE for unsupported size,
11269         generate error instead.  Generate error for unsupported operand types.
11270         ['z']: Do not handle HImode memory operands specially.  Warning
11271         for floating-point operands.  Fallthru to 'Z' for unsupported operand
11272         types.  Do not ICE for unsupported size, generate error instead.
11273         (output_387_binary_op): Use %Z to output operands.
11274         (output_fp_compare): Ditto.
11275         (output_387_reg_move): Ditto.
11276
11277 2009-04-28  Ben Elliston  <bje@au.ibm.com>
11278
11279         PR c++/35652
11280         Revert:
11281
11282         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11283
11284         * builtins.c (c_strlen): Do not warn here.
11285         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
11286         * c-common.c (pointer_int_sum): Take an explicit location.
11287         Warn about offsets out of bounds.
11288         * c-common.h (pointer_int_sum): Adjust declaration.
11289
11290 2009-04-27  Ian Lance Taylor  <iant@google.com>
11291
11292         * collect2.c (is_ctor_dtor): Change type of ret field in struct
11293         names to symkind.
11294         * dce.c (run_fast_df_dce): Change type of old_flags to int.
11295         * df-core.c (df_set_flags): Change return type to int.  Change
11296         type of old_flags to int.
11297         (df_clear_flags): Likewise.
11298         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
11299         (df_get_conditional_uses): Likewise.
11300         * df.h (df_set_flags, df_clear_flags): Update declarations.
11301         * dwarf2out.c (struct indirect_string_node): Change type of form
11302         field to enum dwarf_form.
11303         (AT_string_form): Change return type to enum dwarf_form.
11304         * fixed-value.c (fixed_compare): Add cast to enum type.
11305         * fwprop.c (update_df): Change 0 to VOIDmode.
11306         * gensupport.c: Change 0 to UNKNOWN.
11307         * gimple.h (gimple_cond_code): Add cast to enum type.
11308         * haifa-sched.c (reemit_notes): Add cast to enum type.
11309         * hooks.c (hook_int_void_no_regs): Remove function.
11310         * hooks.h (hook_int_void_no_regs): Remove declaration.
11311         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
11312         * predict.c (combine_predictions_for_insn): Add casts to enum type.
11313         * real.c (real_arithmetic): Add cast to enum type.
11314         (real_compare): Likewise.
11315         * target.h (struct gcc_target): Change return type of
11316         branch_target_register_class to enum reg_class.
11317         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
11318         default_branch_target_register_class.
11319         * targhooks.c (default_branch_target_register_class): New function.
11320         * targhooks.h (default_branch_target_register_class): Declare.
11321         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
11322         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
11323         cast to int.
11324         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
11325         ERROR_MARK.
11326         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
11327         vect_uninitialized_def.  Change 0 to ERROR_MARK.
11328         * tree-vect-stmts.c (supportable_widening_operation): Don't
11329         initialize icode1 and icode2.
11330         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
11331         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
11332         and to STD_C89.
11333         (cmn_err_flag_specs): Change 0 to STD_C89.
11334         (cmn_err_char_table): Likewise.
11335         * config/arm/arm.c (get_arm_condition_code): Change type of code
11336         to enum arm_cond_code.
11337         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
11338         (IWMMXT_BUILTIN2): Likewise.
11339         (neon_builtin_type_bits): Don't define typedef.
11340         (neon_builtin_datum): Change type of bits field to int.
11341         (arm_expand_neon_args): Add cast to enum type.
11342         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
11343         TLS_MODEL_NONE.
11344         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
11345         casts to enum type.
11346         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
11347         MIPS_FP_COND_f.
11348         * config/mips/mips.md (jal_macro): Return enum constant.
11349         (single_insn): Likewise.
11350         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
11351         CODE_FOR_nothing.
11352         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11353         casts to enum type.
11354         * config/s390/s390.c (s390_tune_flags): Change type to int.
11355         (s390_arch_flags): Likewise.
11356         (s390_handle_arch_option): Change flags field of struct pta to int.
11357         * config/s390/s390.h (s390_tune_flags): Update declaration.
11358         (s390_arch_flags): Likewise.
11359         * config/sh/sh.c (prepare_move_operands): Compare
11360         tls_symbolic_operand result with enum constant.
11361         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
11362         (sh_expand_prologue): Add cast to enum type.
11363         (sh_expand_epilogue): Likewise.
11364         (tls_symbolic_operand): Change return type to enum tls_model.
11365         (fpscr_set_from_mem): Add cast to enum type.
11366         (legitimize_pic_address): Compare tls_symbolic_operand result with
11367         enum constant.
11368         (sh_target_reg_class): Change return type to enum reg_class.
11369         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
11370         PROCESSOR_xxx.
11371         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
11372         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
11373         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
11374         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
11375         (delayed_branch, tls_call_delay): Likewise.
11376         (eligible_for_sibcall_delay): Likewise.
11377         (eligible_for_return_delay): Likewise. 
11378         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
11379         (spu_expand_builtin_1): Likewise.
11380
11381         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
11382         for all types of conversions.
11383         (output_init_element): Issue -Wc++-compat warning if needed when
11384         initializing a bitfield with enum type.
11385         * c-parser.c (c_parser_expression): Set original_type to
11386         original_type of right hand operand of comman operator.
11387
11388 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11389
11390         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
11391         grammar nits.
11392         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
11393         * doc/cpp.texi (Standard Predefined Macros)
11394         (Implementation-defined behavior): Likewise.
11395         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
11396         * doc/gimple.texi (GIMPLE Exception Handling)
11397         (@code{GIMPLE_ASSIGN}): Likewise.
11398         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
11399         * doc/invoke.texi (Warning Options, Optimize Options)
11400         (AVR Options, Darwin Options): Likewise.
11401         (Optimize Options): Reformulate -fwhole-program description.
11402         * doc/loop.texi (Lambda): Likewise.
11403         * doc/md.texi (Output Template, Define Constraints)
11404         (Standard Names, Insn Splitting): Likewise.
11405         * doc/options.texi (Option properties): Likewise.
11406         * doc/passes.texi (Tree-SSA passes): Likewise.
11407         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
11408         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
11409         (File Names and DBX): Likewise.
11410         * doc/trouble.texi (Incompatibilities): Likewise.
11411
11412 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
11413
11414         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
11415         instruction is correct.
11416
11417 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
11418
11419         Allow non-constant arguments to conversion intrinsics.
11420         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
11421         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
11422         * spu.c (print_operand): Handle 'v' and 'w'.
11423         (exp2_immediate_p, spu_gen_exp2): Define.
11424         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
11425         spu_convtf_1): Update parameter descriptions.
11426         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
11427         * constraints.md ('v', 'w'): New.
11428         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
11429         Remove.
11430         (i2f, I2F): New define_mode_attr.
11431         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
11432         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
11433         fixuns_truncv4sfv4si2):  Update to use mode attribute.
11434         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
11435         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
11436         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
11437         patterns for combine.
11438
11439 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
11440
11441         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
11442         (cprop, hoist, pre, store_motion): New debug counters.
11443         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
11444         is not an RTL pass anymore.
11445         (pass_profiling): Remove extern decl for pass removed in 2005.
11446         (pass_gcse, pass_jump_bypass): Remove.
11447         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
11448         to 0 for clean state.
11449         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
11450         * cse.c (gate_handle_cse_after_global_opts,
11451         rest_of_handle_cse_after_global_opts): New functions.
11452         (pass_cse_after_global_opts): New pass, does local CSE.
11453         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
11454         (TV_CPROP): New timevar.
11455         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
11456         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
11457         (gcse_main, recompute_all_luids): Remove.
11458         (compute_hash_table_work): Call max_reg_num instead of reading
11459         max_gcse_regno.
11460         (cprop_jump): Don't set run_jump_opt_after_gcse.
11461         (constprop_register): Always allow to alter jumps.
11462         (cprop_insn): Likewise.
11463         (do_local_cprop): Likewise.
11464         (local_cprop_pass): Likewise.  Return non-zero if something changed.
11465         (cprop): Remove function, fold interesting bits into one_cprop_pass.
11466         (find_implicit_sets): Add note about missed optimization opportunity.
11467         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
11468         pass_rtl_cprop execute function.
11469         Don't bother tracking the pass number, each pass gets its own dumpfile
11470         now anyway.
11471         Always allow to alter jumpsand bypass jumps.
11472         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
11473         will just find no suitable set.
11474         (pre_edge_insert): Fix dumping, this function is for PRE only.
11475         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
11476         pass_rtl_pre execute function.
11477         (hoist_code): Return non-zero if something changed.  Keep track of
11478         substitutions and insertions for statistics gathering similar to PRE.
11479         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
11480         called from the pass_rtl_hoist execute function.  Show pass statistics.
11481         (compute_store_table): Use max_reg_num directly instead of using the
11482         formerly global max_gcse_regno.
11483         (build_store_vectors): Likewise.
11484         (replace_store_insn): Fix dumping.
11485         (store_motion): Rename to ...
11486         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
11487         pass, called from the pass_rtl_store_motion execute function.  Keep
11488         track of substitutions and insertions for statistics gathering similar
11489         to PRE.
11490         (bypass_jumps): Remove, fold interesting bits into ...
11491         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
11492         from the pass_rtl_cprop execute function.
11493         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
11494         pass_jump_bypass): Remove.
11495         (gate_handle_gcse, rest_of_handle_gcse): Remove.
11496         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
11497         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
11498         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
11499         (gate_rtl_store_motion, execute_rtl_store_motion,
11500         pass_rtl_store_motion): New.
11501         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
11502         make it clear that -fcse-skip-blocks is a no-op for backward compat.
11503         * passes.c (init_optimization_passes): Remove pass_gcse and
11504         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
11505         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
11506         instead of pass_jump_bypass.
11507
11508 2009-04-27  Richard Guenther  <rguenther@suse.de>
11509
11510         PR middle-end/39928
11511         * gimplify.c (gimplify_expr): If we are required to create
11512         a temporary make sure it ends up as register.
11513
11514 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
11515
11516         PR target/39903
11517         * config/i386/i386.c (construct_container): Don't call
11518         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
11519         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
11520
11521 2009-04-27  Michael Matz  <matz@suse.de>
11522
11523         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
11524         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
11525         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
11526         (dump_replaceable_exprs): Take a bitmap.
11527         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
11528         array.
11529         (expand_gimple_basic_block): Likewise.
11530         * tree-ssa-ter.c (struct temp_expr_table_d): Make
11531         replaceable_expressions member a bitmap.
11532         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
11533         (mark_replaceable): Likewise.
11534         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
11535         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
11536
11537 2009-04-27  Richard Guenther  <rguenther@suse.de>
11538
11539         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
11540         (verify_stmts): Dispatch to gimple/type verification code.
11541         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
11542         issue with call argument types.
11543
11544 2009-04-27  Michael Matz  <matz@suse.de>
11545
11546         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
11547         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
11548         to above.
11549
11550 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
11551             Eric Botcazou  <ebotcazou@adacore.com>
11552
11553         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
11554         a label's basic block.
11555         (mark_target_live_regs): Tidy and rework obsolete comments.
11556         Change back DF problem to LIVE.  If a label starts a basic block,
11557         assume that all registers that used to be live then still are.
11558         (init_resource_info): If a label starts a basic block, set its
11559         BLOCK_FOR_INSN accordingly.
11560         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
11561
11562 2009-04-27  Richard Guenther  <rguenther@suse.de>
11563
11564         * tree-flow-inline.h (function_ann): Remove.
11565         (get_function_ann): Likewise.
11566         * tree-dfa.c (create_function_ann): Remove.
11567         * tree-flow.h (struct static_var_ann_d): Remove.
11568         (struct function_ann_d): Likewise.
11569         (union tree_ann_d): Remove fdecl member.
11570         (function_ann_t): Remove.
11571         (function_ann, get_function_ann, create_function_ann): Remove
11572         declarations.
11573
11574 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
11575
11576         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
11577
11578 2009-04-27  Jan Hubicka  <jh@suse.cz>
11579
11580         * ipa-pure-const.c (struct funct_state_d): New fields
11581         state_previously_known, looping_previously_known; remove
11582         state_set_in_source.
11583         (analyze_function): Use new fields.
11584         (propagate): Avoid assumption that state_set_in_source imply
11585         nonlooping.
11586
11587         * tree-ssa-loop-niter.c (finite_loop_p): New function.
11588         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
11589         * cfgloop.h (finite_loop_p): Declare.
11590
11591 2009-04-26  Michael Matz  <matz@suse.de>
11592
11593         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
11594
11595 2009-04-26  Michael Matz  <matz@suse.de>
11596
11597         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
11598         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
11599         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
11600         pass_mark_used_blocks): Remove.
11601         * tree-optimize.c (pass_free_datastructures,
11602         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
11603         * passes.c (init_optimization_passes): Don't call
11604         pass_mark_used_blocks, remove dead code.
11605
11606 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
11607
11608         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
11609         * tree-ssa-live.h (register_ssa_partition): Likewise.
11610
11611 2009-04-26  Michael Matz  <matz@suse.de>
11612
11613         Expand from SSA.
11614         * builtins.c (fold_builtin_next_arg): Handle SSA names.
11615         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
11616         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
11617         SSA names. 
11618         (compare_pairs): Swap cost comparison.
11619         (coalesce_ssa_name): Don't use change_partition_var.
11620         * tree-nrv.c (struct nrv_data): Add modified member.
11621         (finalize_nrv_r): Set it.
11622         (tree_nrv): Use it to update statements.
11623         (pass_nrv): Require PROP_ssa.
11624         * tree-mudflap.c (mf_decl_cache_locals,
11625         mf_build_check_statement_for): Use make_rename_temp.
11626         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
11627         * alias.c (find_base_decl): Handle SSA names.
11628         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
11629         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
11630         * rtl.h (set_reg_attrs_for_parm): Declare.
11631         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
11632         to "optimized", remove unused locals at finish.
11633         (execute_free_datastructures): Make global, call
11634         delete_tree_cfg_annotations.
11635         (execute_free_cfg_annotations): Don't call
11636         delete_tree_cfg_annotations.
11637
11638         * ssaexpand.h: New file.
11639         * expr.c (toplevel): Include ssaexpand.h.
11640         (expand_assignment): Handle SSA names the same as register variables.
11641         (expand_expr_real_1): Expand SSA names.
11642         * cfgexpand.c (toplevel): Include ssaexpand.h.
11643         (SA): New global variable.
11644         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
11645         (SSAVAR): New macro.
11646         (set_rtl): New helper function.
11647         (add_stack_var): Deal with SSA names, use set_rtl.
11648         (expand_one_stack_var_at): Likewise.
11649         (expand_one_stack_var): Deal with SSA names.
11650         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
11651         before unique numbers.
11652         (expand_stack_vars): Use set_rtl.
11653         (expand_one_var): Accept SSA names, add asserts for them, feed them
11654         to above subroutines.
11655         (expand_used_vars): Expand all partitions (without default defs),
11656         then only the local decls (ignoring those expanded already).
11657         (expand_gimple_cond): Remove edges when jumpif() expands an
11658         unconditional jump.
11659         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
11660         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
11661         SSA name.
11662         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
11663         members of SA; deal with PARM_DECL partitions here; expand
11664         all PHI nodes, free tree datastructures and SA.  Commit instructions
11665         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
11666         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
11667         info and statements at start, collect garbage at finish.
11668         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
11669         (VAR_ANN_PARTITION) Remove.
11670         (change_partition_var): Don't declare.
11671         (partition_to_var): Always return SSA names.
11672         (var_to_partition): Only accept SSA names.
11673         (register_ssa_partition): Only check argument.
11674         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
11675         member.
11676         (delete_var_map): Don't free it.
11677         (var_union): Only accept SSA names, simplify.
11678         (partition_view_init): Mark only useful SSA names as used.
11679         (partition_view_fini): Only deal with SSA names.
11680         (change_partition_var): Remove.
11681         (dump_var_map): Use ssa_name instead of partition_to_var member.
11682         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
11683         basic blocks.
11684         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
11685         (struct _elim_graph): New member const_dests; nodes member vector of
11686         ints.
11687         (set_location_for_edge): New static helper.
11688         (create_temp): Remove.
11689         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
11690         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
11691         (new_elim_graph): Allocate const_dests member.
11692         (clean_elim_graph): Truncate const_dests member.
11693         (delete_elim_graph): Free const_dests member.
11694         (elim_graph_size): Adapt to new type of nodes member.
11695         (elim_graph_add_node): Likewise.
11696         (eliminate_name): Likewise.
11697         (eliminate_build): Don't take basic block argument, deal only with
11698         partition numbers, not variables.
11699         (get_temp_reg): New static helper.
11700         (elim_create): Use it, deal with RTL temporaries instead of trees.
11701         (eliminate_phi): Adjust all calls to new signature.
11702         (assign_vars, replace_use_variable, replace_def_variable): Remove.
11703         (rewrite_trees): Only do checking.
11704         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
11705         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
11706         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
11707         contains_tree_r, MAX_STMTS_IN_LATCH,
11708         process_single_block_loop_latch, analyze_edges_for_bb,
11709         perform_edge_inserts): Remove.
11710         (expand_phi_nodes): New global function.
11711         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
11712         functions, initialize new parameter, remember partitions having a
11713         default def.
11714         (finish_out_of_ssa): New global function.
11715         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
11716         don't reset in_ssa_p here, don't disable TER when mudflap.
11717         (pass_del_ssa): Remove.
11718         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
11719         partition members.
11720         (execute_free_datastructures): Declare.
11721         * Makefile.in (SSAEXPAND_H): New variable.
11722         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
11723         * basic-block.h (commit_one_edge_insertion): Declare.
11724         * passes.c (init_optimization_passes): Move pass_nrv and
11725         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
11726         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
11727         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
11728         (redirect_branch_edge): Deal with super block when expanding, split
11729         out jump patching itself into ...
11730         (patch_jump_insn): ... here, new static helper.
11731
11732 2009-04-26  Michael Matz  <matz@suse.de>
11733
11734         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
11735         beyond num_ssa_names.
11736         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
11737         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
11738
11739 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
11740
11741         PR inline-asm/39543
11742         * fwprop.c (forward_propagate_asm): New function.
11743         (forward_propagate_and_simplify): Propagate also into __asm, if it
11744         doesn't increase the number of referenced registers.
11745
11746         PR c/39889
11747         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
11748
11749 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
11750
11751         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
11752         note_nonlocal_vla_type for nonlocal VLAs.
11753         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
11754         contains_remapped_vars, remap_vla_decls): New functions.
11755         (convert_nonlocal_reference_stmt): If not optimizing, call
11756         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
11757         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
11758         if it wasn't found in var_map.
11759         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
11760         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
11761         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
11762         declare_vars.
11763         * gimplify.c (nonlocal_vlas): New variable.
11764         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
11765         referenced VLAs.
11766         (gimplify_body): Create and destroy nonlocal_vlas.
11767
11768         * dwarf2out.c (loc_descr_plus_const): New function.
11769         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
11770         mem_loc_descriptor, loc_descriptor_from_tree_1,
11771         descr_info_loc, gen_variable_die): Use it.
11772
11773         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
11774         !TREE_STATIC VAR_DECLs.
11775         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
11776         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
11777         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
11778         DECL_BY_REFERENCE is valid.
11779         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
11780         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
11781         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
11782         Copy DECL_BY_REFERENCE.
11783         (struct nesting_copy_body_data): New type.
11784         (nesting_copy_decl): New function.
11785         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
11786         if they have variable length.
11787
11788 2009-04-26  Michael Matz  <matz@suse.de>
11789
11790         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
11791         mark new temporaries for renaming.
11792
11793 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
11794
11795         PR c/39581
11796         * c-decl.c (global_bindings_p): Return negative value.
11797         (c_variable_size): New.  Based on variable_size from
11798         stor-layout.c.
11799         (grokdeclarator): Call c_variable_size not variable_size.
11800
11801 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
11802
11803         * config/i386/i386.c (print_operand) ['z']: Fix typo.
11804
11805 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
11806
11807         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
11808         Redefine it to just use mingw/include.
11809         (ASM_SPEC): Rules for -m32 and -m64.
11810         (LINK_SPEC): Use Likewise.
11811         (SPEC_32): New define.
11812         (SPEC_64): Likewise.
11813         (SUB_LINK_SPEC): Likewise.
11814         (MULTILIB_DEFAULTS): New define.
11815         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
11816         Add multilib options.
11817         (MULTILIB_DIRNAMES): Likewise.
11818         (MULTILIB_OSDIRNAMES): Likewise.
11819         (LIBGCC): Likewise.
11820         (INSTALL_LIBGCC): Likewise.
11821
11822 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
11823
11824         PR c/39556
11825         * c-tree.h (enum c_inline_static_type): New.
11826         (record_inline_static): Declare.
11827         * c-decl.c (struct c_inline_static, c_inline_statics,
11828         record_inline_static, check_inline_statics): New.
11829         (pop_file_scope): Call check_inline_statics.
11830         (start_decl): Call record_inline_static instead of pedwarning
11831         directly for static in inline function.
11832         * c-typeck.c (build_external_ref): Call record_inline_static
11833         instead of pedwarning directly for static referenced in inline
11834         function.
11835
11836 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
11837
11838         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
11839         not new but only being rescanned.
11840         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
11841         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
11842         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
11843         record_set_info, compute_set, grealloc): Remove.
11844         (recompute_all_luids): New function.
11845         (gcse_main): Don't compute sets, and don't do related memory
11846         allocations/free-ing.  If something changed before the end of the
11847         pass, update LUIDs using recompute_all_luids.
11848         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
11849         (free_gcse_mem): Don't free it either.
11850         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
11851         Use the df insn LUIDs.
11852         (load_killed_in_block): Likewise.
11853         (compute_hash_table_work): Don't compute reg_set_in_block.
11854         (compute_transp): Use DF_REG_DEF_CHAINs.
11855         (local_cprop_pass): Don't use compute_sets and related functions.
11856         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
11857         Use get_max_uid() instead of max_cuid.
11858         (insert_insn_end_basic_block, pre_insert_copy_insn,
11859         update_ld_motion_stores): Don't try to
11860         keep reg_set tables up to date.
11861         (pre_insert_copies): Use df insn LUIDs.
11862         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
11863         (reg_set_info): Don't use extra bitmap argument.
11864         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
11865         information to compute regs_set_in_block.
11866         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
11867         (bypass_jumps): Don't use compute_sets and friends.
11868
11869 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11870
11871         PR testsuite/39710
11872         * opts.c (undocumented_msg): Do not leave blank even with
11873         ENABLE_CHECKING.
11874
11875 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
11876
11877         * c-decl.c (build_enumerator): Allow values folding to integer
11878         constants but not integer constant expressions with a pedwarn if
11879         pedantic.
11880
11881 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
11882
11883         PR c/39582
11884         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
11885         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
11886         type is an integer constant.
11887
11888 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
11889
11890         PR target/39897
11891         * config/i386/i386.c (print_operand) ['z']: Revert handling of
11892         HImode operands.
11893
11894 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
11895
11896         PR c/39564
11897         * c-decl.c (grokdeclarator): Diagnose declarations of functions
11898         with variably modified return type and no storage class
11899         specifiers, except for the case of nested functions.  Distinguish
11900         extern declarations of functions with variably modified return
11901         types from those of objects with variably modified types.
11902
11903 2009-04-25  Jan Hubicka  <jh@suse.cz>
11904
11905         * tree.c (list_equal_p): New function.
11906         * tree.h (list_equal_p): Declare.
11907         * coretypes.h (edge_def, edge, const_edge, basic_block_def
11908         basic_block_def, basic_block, const_basic_block): New.
11909         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
11910         (redirect_eh_edge): New function.
11911         (make_eh_edge_update_phi): EH edges are not abnormal.
11912         * except.c: Include tree-flow.h.
11913         (list_match): New function.
11914         (eh_region_replaceable_by_p): New function.
11915         (replace_region): New function.
11916         (hash_type_list): New function.
11917         (hash_eh_region): New function.
11918         (eh_regions_equal_p): New function.
11919         (merge_peers): New function.
11920         (remove_unreachable_regions): Verify EH tree when checking;
11921         merge peers.
11922         (copy_eh_region_1): New function.
11923         (copy_eh_region): New function.
11924         (push_reachable_handler): New function.
11925         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
11926         regions without label but with live RESX.
11927         * except.h (redirect_eh_edge_to_label): New.
11928         * tree-flow.h (redirect_eh_edge): New.
11929         * coretypes.h (edge_def, edge, const_edge, basic_block_def
11930         basic_block_def, basic_block, const_basic_block): Remove.
11931         * Makefile.in (except.o): Add dependency on tree-flow.h
11932         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
11933         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
11934         Remove.
11935
11936 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
11937
11938         PR bootstrap/39645
11939         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
11940         on the destination of memcpy.
11941
11942 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
11943
11944         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
11945         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
11946         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
11947
11948 2009-04-25  Jan Hubicka  <jh@suse.cz>
11949
11950         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
11951         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
11952         to be reached by different label than left.
11953         (update_eh_edges): Update comment; remove edge_to_remove if possible
11954         and return true if suceeded.
11955         (cleanup_empty_eh): Accept sharing map; handle shared regions.
11956         (cleanup_eh): Compute sharing map.
11957         * except.c (remove_eh_handler_and_replace): Add argument if we should
11958         update regions.
11959         (remove_unreachable_regions): Update for label sharing.
11960         (label_to_region_map): Likewise.
11961         (get_next_region_sharing_label): New function.
11962         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
11963         prev_try pointers.
11964         (remove_eh_handler): Update.
11965         (remove_eh_region_and_replace_by_outer_of): New function.
11966         * except.h (struct eh_region): Add next_region_sharing_label.
11967         (remove_eh_region_and_replace_by_outer_of,
11968         get_next_region_sharing_label): Declare.
11969         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
11970
11971 2009-04-25  Jan Hubicka  <jh@suse.cz>
11972
11973         * tree-cfg.c (split_critical_edges): Split also edges where we can't
11974         insert code even if they are not critical.
11975
11976 2009-04-25  Jan Hubicka  <jh@suse.cz>
11977
11978         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
11979         (gimple_can_remove_branch_p): EH edges won't remove branch by
11980         redirection.
11981         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
11982         updating of non-abnormal EH edges.
11983         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
11984         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
11985         (split_critical_edges): Split also edges where emitting code on them
11986         will lead to splitting later.
11987
11988 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
11989             H.J. Lu  <hongjiu.lu@intel.com>
11990
11991         PR target/39590
11992         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
11993         the configured assembler supports fildq and fistpq mnemonics.
11994         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
11995         * configure: Regenerated.
11996         * config.in: Ditto.
11997
11998         * config/i386/i386.c (print_operand): Handle 'Z'.
11999         ['z']: Remove handling of special fild/fist suffixes.
12000         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
12001         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
12002         suffix of fild insn.
12003         (*floatsi<mode>2_vector_mixed): Ditto.
12004         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
12005         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
12006         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
12007         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
12008         * config/i386/gas.h (GAS_MNEMONICS): Remove.
12009
12010 2009-04-25  Ben Elliston  <bje@au.ibm.com>
12011  
12012         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
12013         the source of a set operation.
12014
12015 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
12016
12017         * target.h (struct gcc_target): Add case_values_threshold field.
12018         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
12019         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
12020         * targhooks.c (default_case_values_threshold): New function.
12021         * targhooks.h (default_case_values_threshold): Declare function.
12022         * stmt.c (expand_case): Use case_values_threshold target hook.
12023         * expr.h (case_values_threshold): Remove declartation.
12024         * expr.c (case_values_threshold): Remove function.
12025         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
12026
12027         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
12028         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
12029         (avr_case_values_threshold): Declare as static.
12030         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
12031
12032         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
12033         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
12034         (mn10300_case_values_threshold): New function.
12035
12036 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
12037
12038         * ira.c (setup_cover_and_important_classes): Add enum cast.
12039
12040 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
12041
12042         * genpreds.c (write_enum_constraint_num): Output definition of
12043         CONSTRAINT_NUM_DEFINED_P macro.
12044         * ira.c (setup_cover_and_important_classes): Use
12045         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
12046         
12047 2009-04-24  DJ Delorie  <dj@redhat.com>
12048
12049         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
12050         __SH2A_SINGLE_ONLY__ also.
12051
12052 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
12053
12054         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
12055         (movdf_internal): Ditto.
12056         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
12057         SFmode and DFmode constants.
12058         (ia64_print_operand): Add 'G' format for printing
12059         floating point constants.
12060
12061 2009-04-24  Richard Guenther  <rguenther@suse.de>
12062
12063         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
12064         from unsigned additions.
12065
12066 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
12067
12068         * c-typeck.c (set_init_index): Allow array designators that are
12069         not integer constant expressions with a pedwarn if pedantic.
12070
12071 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
12072
12073         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
12074         zero if no overlap in nonzero bits between the operands.
12075
12076 2009-04-24  Ian Lance Taylor  <iant@google.com>
12077
12078         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
12079         (record_dead_and_set_regs): Likewise.
12080         * df.h (struct df_mw_hardreg): Change flags field to int.
12081         (struct df_base_ref): Likewise.
12082         (struct df): Change changeable_flags field to int.
12083         * df-scan.c (df_defs_record): Change clobber_flags to int.
12084         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
12085         constants rather than #define macros.
12086         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
12087         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
12088         (enum dwarf_calling_convention): Likewise.
12089         (enum dwarf_line_number_x_ops): Likewise.
12090         (enum dwarf_call_frame_info): Likewise.
12091         (enum dwarf_source_language): Likewise.
12092         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
12093         (add_calling_convention_attribute): Likewise.
12094         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
12095         (combine_comparisons): Change compcode to int.  Add cast to enum type.
12096         * genrecog.c (maybe_both_true_2): Change c to int.
12097         (write_switch): Likewise.  Add cast to enum type.
12098         * gimplify.c (gimplify_omp_for): Handle return values from
12099         gimplify_expr using MIN rather than bitwise or.
12100         (gimplify_expr): Add cast to enum type.
12101         * ipa-prop.c (update_jump_functions_after_inlining): Change
12102         IPA_BOTTOM to IPA_JF_UNKNOWN.
12103         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
12104         Add casts to enum type.
12105         (setup_cover_and_important_classes): Change cl to int.  Add casts
12106         to enum type.
12107         (setup_class_translate): Change cl and mode to int.
12108         (ira_init_once): Change mode to int.
12109         (free_register_move_costs): Likewise.
12110         (setup_prohibited_mode_move_regs): Add casts to enum type.
12111         * langhooks.c (add_builtin_function_common): Rework assertion that
12112         value fits bitfield.
12113         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
12114         * omega.c (omega_do_elimination): Avoid math on enum types.
12115         * optabs.c (expand_vec_shift_expr): Remove casts to int.
12116         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
12117         int local to handle integral_argment value.
12118         * regmove.c (try_auto_increment): Change PUT_MODE to
12119         PUT_REG_NOTE_KIND.
12120         * reload.c (push_secondary_reload): Add casts to enum type.
12121         (secondary_reload_class, find_valid_class): Likewise.
12122         * reload1.c (emit_input_reload_insns): Likewise.
12123         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
12124         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
12125         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
12126         constant.
12127         * tree.c (build_common_builtin_nodes): Add casts to enum type.
12128         * tree-complex.c (complex_lattice_t): Typedef to int rather than
12129         enum type.
12130         (expand_complex_libcall): Add casts to enum type.
12131         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
12132         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
12133         with ERROR_MARK, not NUM_TREE_CODES.
12134         (vect_create_epilog_for_reduction): Likewise.
12135         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
12136         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
12137         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
12138         enum machine_mode.
12139         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
12140         vect_unused_in_loop.  Change 0 to loop_vect.
12141         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
12142         * var-tracking.c (get_init_value): Change return type to enum
12143         var_init_status.
12144         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
12145         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
12146         arm_fp_model.
12147         (arm_override_options): Add casts to enum type.
12148         (arm_emit_tls_decoration): Likewise.
12149         * config/i386/i386.c (ix86_function_specific_restore): Add casts
12150         to enum type.
12151         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
12152         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
12153         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
12154         enum type.
12155         * config/s390/s390.c (code_for_builtin_64): Change to array of
12156         enum insn_code.
12157         (code_for_builtin_31): Likewise.
12158         (s390_expand_builtin): Change code_for_builtin to enum insn_code
12159         const *.
12160         * config/sparc/sparc.c (sparc_override_options): Change value
12161         field in struct code_model to enum cmodel.  In initializer change
12162         0 to NULL and add cast to enum type.
12163
12164         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
12165         Change all callers.  Issue a -Wc++-compat warning using
12166         lhs_origtype if necessary.
12167         (convert_for_assignment): Issue -Wc++-compat warnings about
12168         invalid conversions to enum type on assignment.
12169         * c-common.h (build_modify_expr): Update declaration.
12170
12171 2009-04-24  Nick Clifton  <nickc@redhat.com>
12172
12173         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
12174         (function_arg_advance): Likewise.
12175         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
12176         5th alternative.
12177
12178 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
12179
12180         * config/s390/constraints.md ('I', 'J'): Fix condition.
12181
12182 2009-04-24  Diego Novillo  <dnovillo@google.com>
12183
12184         * gengtype-parse.c (parse_error): Add newline after message.
12185
12186 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
12187
12188         * config/i386/sse.md (avxmodesuffixs): Removed.
12189         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
12190         (*avx_pinsr<ssevecsize>): This.
12191
12192 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
12193
12194         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
12195         follow chains of regs with a single definition, and allow expressions
12196         that are function_invariant_p.
12197         (simple_rhs_p): Allow expressions that are function_invariant_p.
12198
12199 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
12200
12201         PR middle-end/39867
12202         * fold-const.c (fold_cond_expr_with_comparison): When folding
12203         > and >= to MAX, make sure the MAX uses the same type as the
12204         comparison's operands.
12205
12206 2009-04-24  Nick Clifton  <nickc@redhat.com>
12207
12208         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
12209         addressing for DImode accesses.
12210         (frv_print_operand_address): Handle PLUS case.
12211         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
12212
12213 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
12214
12215         PR rtl-optimization/39794
12216         * alias.c (canon_true_dependence): Add x_addr argument.
12217         * rtl.h (canon_true_dependence): Adjust prototype.
12218         * cse.c (check_dependence): Adjust canon_true_dependence callers.
12219         * cselib.c (cselib_invalidate_mem): Likewise.
12220         * gcse.c (compute_transp): Likewise.
12221         * dse.c (scan_reads_nospill): Likewise.
12222         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
12223         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
12224         canon_base_addr of the group, plus optional offset.
12225         (struct group_info): Rename canon_base_mem to
12226         canon_base_addr.
12227         (get_group_info): Set canon_base_addr to canon_rtx of base, not
12228         canon_rtx of base_mem.
12229
12230 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
12231
12232         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
12233         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
12234
12235 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12236
12237         * config/spu/spu-builtins.h: Delete file.
12238
12239         * config/spu/spu.h (enum spu_builtin_type): Move here from
12240         spu-builtins.h.
12241         (struct spu_builtin_description): Likewise.  Add GTY marker.
12242         Do not use enum spu_function_code or enum insn_code.
12243         (spu_builtins): Add extern declaration.
12244
12245         * config/spu/spu.c: Do not include "spu-builtins.h".
12246         (enum spu_function_code, enum spu_builtin_type_index,
12247         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
12248         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
12249         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
12250         unsigned_V2DI_type_node): Move here from spu-builtins.h.
12251         (spu_builtin_types): Make static.  Add GTY marker.
12252         (spu_builtins): Add extern declaration with GTY marker.
12253         Include "gt-spu.h".
12254
12255         * config/spu/spu-c.c: Do not include "spu-builtins.h".
12256         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
12257         Check programmatically whether all parameters are scalar.
12258
12259         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
12260
12261 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
12262
12263         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
12264         assignment from the constructor either if the target is volatile.
12265
12266 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
12267
12268         * config/arm/arm.md (insv): Do not share operands[0].
12269
12270 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
12271
12272         * config/vxlib-tls.c (active_tls_threads): Delete.
12273         (delete_hook_installed): New.
12274         (tls_delete_hook): Don't delete the delete hook.
12275         (tls_destructor): Delete it here.
12276         (__gthread_set_specific): Adjust installing the delete hook.
12277         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
12278         __gthread_leave_tsd_dtor_context.
12279
12280 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
12281
12282         * c-format.c (gcc_tdiag_char_table): Add support for %E.
12283
12284 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
12285
12286         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
12287         enum type.
12288         (alpha_rtx_costs): Ditto.
12289         (emit_unlikely_jump): Use add_reg_note.
12290         (emit_frame_store_1): Ditto.
12291         (alpha_expand_prologue): Ditto.
12292         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
12293         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
12294
12295 2009-04-23  Nick Clifton  <nickc@redhat.com>
12296
12297         * config/v850/v850.md (epilogue): Remove suppressed code.
12298         (return): Rename to return_simple and remove test of frame size.
12299         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
12300         to gen_return_simple.
12301
12302 2009-04-22  Jing Yu  <jingyu@google.com>
12303
12304         PR testsuite/39781
12305         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
12306
12307 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12308
12309         PR C/31499
12310         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
12311         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
12312         value is a VECTOR_CST, the element type is the element type of the
12313         vector.
12314
12315 2009-04-22  DJ Delorie  <dj@redhat.com>
12316
12317         * config/m32c/m32c.h: Update GTY annotations to new syntax.
12318
12319 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
12320
12321         * alias.c (find_base_term): Move around LO_SUM case, so that
12322         CONST falls through into PLUS/MINUS handling.
12323
12324         PR c/39855
12325         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
12326         into 0, use omit_one_operand.
12327
12328 2009-04-23  Ben Elliston  <bje@au.ibm.com>
12329
12330         * config/rs6000/linux-unwind.h (get_regs): Remove type
12331         puns. Change the type of `pc' to an array of unsigned ints and
12332         update all users.  Constify frame24.
12333
12334 2009-04-22  DJ Delorie  <dj@redhat.com>
12335
12336         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
12337         declarations before code.
12338         (current_function_special_page_vector): Likewise.
12339         (m32c_expand_insv): Silence a warning.
12340
12341 2009-04-21  Taras Glek  <tglek@mozilla.com>
12342
12343         * alias.c: Update GTY annotations to new syntax.
12344         * basic-block.h: Likewise.
12345         * bitmap.h: Likewise.
12346         * c-common.h: Likewise.
12347         * c-decl.c: Likewise.
12348         * c-parser.c: Likewise.
12349         * c-pragma.c: Likewise.
12350         * c-tree.h: Likewise.
12351         * cfgloop.h: Likewise.
12352         * cgraph.h: Likewise.
12353         * config/alpha/alpha.c: Likewise.
12354         * config/arm/arm.h: Likewise.
12355         * config/avr/avr.h: Likewise.
12356         * config/bfin/bfin.c: Likewise.
12357         * config/cris/cris.c: Likewise.
12358         * config/darwin.c: Likewise.
12359         * config/frv/frv.c: Likewise.
12360         * config/i386/i386.c: Likewise.
12361         * config/i386/i386.h: Likewise.
12362         * config/i386/winnt.c: Likewise.
12363         * config/ia64/ia64.h: Likewise.
12364         * config/iq2000/iq2000.c: Likewise.
12365         * config/mips/mips.c: Likewise.
12366         * config/mmix/mmix.h: Likewise.
12367         * config/pa/pa.c: Likewise.
12368         * config/pa/pa.h: Likewise.
12369         * config/rs6000/rs6000.c: Likewise.
12370         * config/s390/s390.c: Likewise.
12371         * config/sparc/sparc.c: Likewise.
12372         * config/xtensa/xtensa.c: Likewise.
12373         * cselib.h: Likewise.
12374         * dbxout.c: Likewise.
12375         * dwarf2out.c: Likewise.
12376         * except.c: Likewise.
12377         * except.h: Likewise.
12378         * fixed-value.h: Likewise.
12379         * function.c: Likewise.
12380         * function.h: Likewise.
12381         * gimple.h: Likewise.
12382         * integrate.c: Likewise.
12383         * optabs.c: Likewise.
12384         * output.h: Likewise.
12385         * real.h: Likewise.
12386         * rtl.h: Likewise.
12387         * stringpool.c: Likewise.
12388         * tree-data-ref.c: Likewise.
12389         * tree-flow.h: Likewise.
12390         * tree-scalar-evolution.c: Likewise.
12391         * tree-ssa-address.c: Likewise.
12392         * tree-ssa-alias.h: Likewise.
12393         * tree-ssa-operands.h: Likewise.
12394         * tree.c: Likewise.
12395         * tree.h: Likewise.
12396         * varasm.c: Likewise.
12397         * varray.h: Likewise.
12398         * vec.h: Likewise.
12399         * coretypes.h: Do not define GTY macro if it is already defined.
12400         * doc/gty.texi: Update GTY documentation to new syntax.
12401         * gengtype-lex.l: Enforce attribute-like syntax for GTY
12402         annotations on structs.
12403         * gengtype-parse.c: Likewise.
12404
12405 2009-04-22  Mark Heffernan  <meheff@google.com>
12406
12407         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
12408
12409 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
12410
12411         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
12412         where appropriate.
12413
12414 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
12415
12416         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
12417         the same as a PLUS without a shift.  Increase the cost of a
12418         CONST_INT in MULT.
12419
12420 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12421
12422         * Makefile.in: Update dependencies.
12423         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
12424         * errors.h: Remove bogus comment about compatibility.
12425         (warning): Update declaration.
12426         * genautomata.c: Update all calls to warning.
12427         * gimple.c: Do not include errors.h. Include toplev.h.
12428         * tree-ssa-structalias.c: Do not include errors.h.
12429         * omega.c: Likewise.
12430         * tree-ssa-reassoc.c: Likewise.
12431         * config/spu/spu-c.c: Likewise.
12432         * config/spu/t-spu-elf: Update dependencies.
12433
12434 2009-04-22  Richard Guenther  <rguenther@suse.de>
12435
12436         PR tree-optimization/39824
12437         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
12438         make sure the types are compatible.
12439
12440 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12441
12442         PR c++/14875
12443         * c-common.c (c_parse_error): Take a token_flags parameter.
12444         Use token_type for the token type instead.
12445         Pass token_flags to cpp_type2name.
12446         * c-common.h (c_parse_error): Update declaration.
12447         * c-parser.c (c_parser_error): Pass 0 as token flags.
12448
12449 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
12450
12451         PR rtl-optimization/39580
12452         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
12453         
12454 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12455
12456         * function.c (expand_function_end): Do not emit a jump to the "naked"
12457         return label for fall-through returns.
12458         * except.c (sjlj_emit_function_exit): Always place the call to the
12459         unregister function at the location installed by expand_function_end.
12460
12461 2009-04-22  Richard Guenther  <rguenther@suse.de>
12462
12463         PR tree-optimization/39845
12464         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
12465         (gen_inbound_check): Likewise.
12466
12467 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
12468
12469         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
12470         padding for PPC.
12471         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
12472         * config/vxlib.c (__gthread_once): Add race guard for PPC.
12473
12474 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
12475
12476         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
12477         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
12478         shift counts to avoid out-of-bounds array accesses.
12479
12480 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
12481
12482         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
12483         (Pmode): Move above.
12484
12485 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
12486
12487         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
12488         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
12489         GET_CODE macro.  Use IN_RANGE macro where appropriate.
12490         * config/alpha/alpha.h: Ditto.
12491         * config/alpha/alpha.md: Ditto.
12492         * config/alpha/constraints.md: Ditto.
12493         * config/alpha/predicates.md: Ditto.
12494         
12495 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
12496
12497         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
12498         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12499         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12500         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12501         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12502         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12503         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12504         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12505         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12506         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12507         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12508         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12509         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12510         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12511         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12512         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12513         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12514         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12515         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12516         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12517         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12518         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12519         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12520         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12521         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12522         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12523         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
12524
12525 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
12526
12527         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
12528         references from comments.
12529         * cfgbuild.c: (count_basic_blocks): Delete.
12530         (find_basic_blocks_1): Delete.
12531         (find_basic_blocks): Delete.
12532         * except.c (finish_eh_generation): Make static.  Move comment from
12533         except.h here.  Remove find_basic_blocks references from comments.
12534         * except.h (finish_eh_generation): Delete.
12535         * basic-block.h (find_basic_blocks): Delete.
12536         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
12537
12538 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
12539
12540         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
12541         (sdbout_parms):  Likewise.
12542
12543 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
12544
12545         * config/sh/sh.c (prepare_cbranch_operands): Use
12546         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
12547         (expand_cbranchdi4): Likewise.
12548         (from_compare): Add cast to enum type.
12549         (expand_cbranchsi4): Use add_reg_note.
12550         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
12551         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
12552         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
12553         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
12554         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
12555         instead of CODE_FOR_nothing.
12556         (cbranchdi4): Likewise.  Fix the order of arguments for
12557         gen_rtx_fmt_ee.
12558         (push_fpscr): Use add_reg_note.
12559         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
12560         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
12561         
12562 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
12563
12564         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
12565         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
12566         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
12567         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
12568         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
12569         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
12570         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
12571         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
12572         config/alpha/x-vms, config/arc/t-arc,
12573         config/arm/README-interworking, config/arm/arm-c.c,
12574         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
12575         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
12576         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
12577         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
12578         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
12579         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
12580         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
12581         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
12582         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
12583         config/cris/t-elfmulti, config/crx/t-crx,
12584         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
12585         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
12586         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
12587         config/h8300/t-h8300, config/i386/athlon.md,
12588         config/i386/darwin-libgcc.10.4.ver,
12589         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
12590         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
12591         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
12592         config/i386/t-linux64, config/i386/t-nwld,
12593         config/i386/t-rtems-i386, config/i386/t-sol2-10,
12594         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
12595         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
12596         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
12597         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
12598         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
12599         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
12600         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
12601         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
12602         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
12603         config/m68k/t-uclinux, config/mcore/t-mcore,
12604         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
12605         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
12606         config/mips/crtn.asm, config/mips/irix-crti.asm,
12607         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
12608         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
12609         config/mips/mips-fixed.md, config/mips/sb1.md,
12610         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
12611         config/mips/t-iris6, config/mips/t-isa3264,
12612         config/mips/t-libgcc-mips16, config/mips/t-linux64,
12613         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
12614         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
12615         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
12616         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
12617         config/mn10300/t-linux, config/mn10300/t-mn10300,
12618         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
12619         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
12620         config/picochip/libgccExtras/clzsi2.asm,
12621         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
12622         config/rs6000/darwin-libgcc.10.4.ver,
12623         config/rs6000/darwin-libgcc.10.5.ver,
12624         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
12625         config/rs6000/t-aix43, config/rs6000/t-aix52,
12626         config/rs6000/t-darwin, config/rs6000/t-fprules,
12627         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
12628         config/rs6000/t-lynx, config/rs6000/t-netbsd,
12629         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
12630         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
12631         config/rs6000/t-rtems, config/rs6000/t-spe,
12632         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
12633         config/score/t-score-elf, config/sh/divcost-analysis,
12634         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
12635         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
12636         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
12637         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
12638         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
12639         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
12640         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
12641         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
12642         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
12643         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
12644         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
12645         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
12646         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
12647         limitx.h, version.c, xcoff.h: Add copyright and license notices.
12648         * config/h8300/genmova.sh: Include copyright and license notices
12649         in generated output.
12650         * config/h8300/mova.md: Regenerate.
12651         * doc/install.texi2html: Include word "Copyright" in copyright
12652         notice and use name "Free Software Foundation, Inc.".
12653         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
12654         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
12655         ChangeLog-2007, ChangeLog-2008: Correct dates.
12656
12657 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
12658
12659         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
12660         NE_EXPR operations as well.
12661         * c-parser.c (c_parser_condition): Do not set location information on
12662         the condition.
12663         (c_parser_conditional_expression): Likewise.
12664         (c_parser_binary_expression): Set location information on operators.
12665         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
12666         TRUTH_NOT_EXPR has been folded.
12667         * fold-const.c (fold_truth_not_expr): Copy location information from
12668         the incoming expression to the outgoing one.
12669         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
12670         recursive calls on the LHS of the operator but pass that of the
12671         operator to recursive calls on the RHS of the operator.  Set it
12672         on the COND_EXPR.
12673         (shortcut_cond_expr): Set the locus of the operator on the second
12674         COND_EXPR and that of the expression on the first in degenerate cases.
12675         Pass the locus of the expression to calls to shortcut_cond_r.
12676         Set the locus of the 'then' block on the associated jump, if any.
12677         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
12678         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
12679         expression to call to gimplify_boolean_expr.
12680
12681 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
12682
12683         * config.gcc: Add additional configuration for
12684         i686-w64-mingw* and x86_64-w64-mingw* triplet.
12685         * config/i386/mingw-w64.h: New mingw-w64 specific header.
12686         (CPP_SPEC): Redefine for allowing -municode option.
12687         (STARTFILE_SPEC): Likewise.
12688         * config/i386/t-mingw-w64: New.
12689         * config/i386/mingw-w64.opt: New.
12690         (municode): Add new target option.
12691         * doc/invoke.texi (municode): Add documentation for new option.
12692
12693 2009-04-21  Ian Lance Taylor  <iant@google.com>
12694
12695         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12696         Correct test for number of arguments.
12697         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
12698
12699 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
12700
12701         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
12702         argument of emit_library_call.
12703
12704 2009-04-21  Richard Guenther  <rguenther@suse.de>
12705
12706         PR middle-end/39829
12707         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
12708         inside VIEW_CONVERT_EXPRs.
12709
12710 2009-04-21  Martin Jambor  <mjambor@suse.cz>
12711
12712         * tree-switch-conversion.c (build_constructors): Split a long line.
12713         (constructor_contains_same_values_p): New function.
12714         (build_one_array): Create assigns of constants if possible, do not
12715         call mark_sym_for_renaming, call update_stmt.
12716         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
12717         make_rename_temp.  Do not call mark_symbols_for_renaming, call
12718         update_stmt.
12719         (gen_def_assigns): Do not call mark_symbols_for_renaming or
12720         find_new_referenced_vars, call update_stmt.
12721         (gen_inbound_check): Use create_tmp_var and create ssa names manually
12722         instead of calling make_rename_temp.  Do not call
12723         find_new_referenced_vars or mark_symbols_for_renaming, call
12724         update_stmt.
12725
12726 2009-04-21  Richard Guenther  <rguenther@suse.de>
12727
12728         PR tree-optimization/39827
12729         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
12730         (tree_ssa_phiprop): Pass the correct array size.
12731
12732 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
12733
12734         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
12735
12736 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12737
12738         PR 16202
12739         * c-typeck.c (lvalue_p): Move declaration ...
12740         * c-common.h (lvalue_p): ... to here.
12741         * c-common.c (candidate_equal_p): New.
12742         (add_tlist): Use it.
12743         (merge_tlist): Use it.
12744         (warn_for_collisions_1): Likewise.
12745         (warning_candidate_p): Accept more candidates.
12746         (verify_tree): A warning candidate can be an expression. Use
12747         candidate_equal_p.
12748
12749 2009-04-21  Ben Elliston  <bje@au.ibm.com>
12750
12751         PR target/5267
12752         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
12753         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
12754         options.  Remove -mcall-solaris documentation.
12755
12756 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
12757
12758         PR c++/13358
12759         * doc/invoke.texi (-Wlong-long): Update description.
12760         * c-lex (interpret_integer): Only warn if there was no previous
12761         overflow and -Wlong-long is enabled.
12762         * c-decl.c (declspecs_add_type): Drop redundant flags.
12763         * c.opt (Wlong-long): Init to -1.
12764         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
12765         and front-end warn_long_long. Wlong-long only depends on other
12766         flags if it is uninitialized.
12767         * c-parser.c (disable_extension_diagnostics): warn_long_long is
12768         the same for CPP and FE.
12769         (restore_extension_diagnostics): Likewise.
12770
12771 2009-04-20  Ian Lance Taylor  <iant@google.com>
12772
12773         Fix enum conversions which are invalid in C++:
12774         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
12775         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
12776         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
12777         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
12778         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
12779         (dbxout_parms): Likewise.
12780         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
12781         (df_clear_flags): Likewise.
12782         * df-problems.c (df_rd_bb_local_compute_process_def): Change
12783         top_flag parameter to int.
12784         (df_chain_create_bb_process_use): Likewise.
12785         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
12786         Remove cast.
12787         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
12788         (df_ref_create_structure, df_def_record_1): Likewise.
12789         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
12790         (df_notes_rescan): Change 0 to VOIDmode in function call.
12791         (df_get_call_refs, df_insn_refs_collect): Likewise.
12792         (df_bb_regs_collect): Likewise.
12793         (df_entry_block_defs_collect): Likewise.
12794         (df_exit_block_uses_collect): Likewise.
12795         * df.h: Update declarations.
12796         * double-int.c (double_int_divmod): Add cast to enum type.
12797         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
12798         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
12799         (based_loc_descr): Likewise.
12800         (loc_descriptor_from_tree_1): Change first_op and second_op to
12801         enum dwarf_location_atom.  Add cast to enum type.
12802         * expmed.c (init_expmed): Change 0 to SET in function call.
12803         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
12804         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
12805         (do_store_flag): Likewise.
12806         * fixed-value.h (struct fixed_value): Change mode to enum
12807         machine_mode.
12808         * function.c (assign_parms): Change 0 to VOIDmode in function call.
12809         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
12810         function call.
12811         (insert_insn_decl, insert_decl, insert_state): Likewise.
12812         (automata_list_finish): Likewise.
12813         * genrecog.c (process_define_predicate): Add cast to enum type.
12814         * gensupport.c (init_predicate_table): Add cast to enum type.
12815         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
12816         function call.
12817         (gimple_build_call_1, gimple_build_label): Likewise.
12818         (gimple_build_goto, gimple_build_asm_1): Likewise.
12819         (gimple_build_switch_1, gimple_build_cdt): Likewise.
12820         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
12821         (enum fallback): Rename from enum fallback_t.
12822         (fallback_t): Typedef as int.
12823         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
12824         GSI_SAME_STMT in function call.
12825         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
12826         enum type.
12827         (setup_reg_class_relations): Likewise.
12828         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
12829         (setup_prohibited_class_mode_regs): Add cast to enum type.
12830         (setup_prohibited_mode_move_regs): Likewise.
12831         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
12832         (record_address_regs): Change i to enum reg_class.
12833         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
12834         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
12835         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
12836         (GET_MODE_2XWIDER_MODE): Likewise.
12837         (GET_CLASS_NARROWEST_MODE): Likewise.
12838         * omp-low.c (expand_omp_for): Add cast to enum type.
12839         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
12840         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
12841         * postreload.c (reload_cse_simplify_operands): Change rclass local
12842         to enum reg_class.
12843         * predict.c (combine_predictions_for_insn): Change best_predictor
12844         and predictor to enum br_predictor.
12845         (combine_predictions_for_bb): Likewise.
12846         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
12847         use SET_PREDICT_EXPR_OUTCOME.
12848         * real.c (real_arithmetic): Change icode to code in function call.
12849         * reginfo.c (init_move_cost): Add casts to enum type.
12850         (init_reg_sets_1, init_fake_stack_mems): Likewise.
12851         * regmove.c (regclass_compatible_p): Change class0 and class1 to
12852         enum reg_class.
12853         * reload.c (find_valid_class): Add casts to enum type.
12854         (push_reload): Change 0 to NO_REGS in function call.
12855         (find_reloads): Change this_alternative to array of enum
12856         reg_class.  Remove some now-unnecessary casts.
12857         (make_memloc): Change 0 to VOIDmode in function call.
12858         * reload1.c (reload): Change 0 to VOIDmode in function call.
12859         (eliminate_regs_1, elimination_effects): Likewise.
12860         (eliminate_regs_in_insn): Likewise.
12861         (emit_input_reload_insns): Add cast to enum type.
12862         (delete_output_reload): Change 0 to VOIDmode in function call.
12863         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
12864         to enum type in function call.
12865         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
12866         (SET_PREDICT_EXPR_OUTCOME): Define.
12867         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
12868         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
12869         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
12870         (dump_function): Likewise.
12871         * tree-dump.h: Update declarations.
12872         * tree-pass.h: Update declarations.
12873         * varasm.c (assemble_integer): Change mclass to enum mode_class.
12874         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
12875         enum type.
12876         (arm_rtx_costs_1): Correct parenthesization.
12877         (arm_rtx_costs): Add casts to enum type.
12878         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
12879         (vfp_emit_fstmd): Use add_rg_note.
12880         (emit_multi_reg_push, emit_sfm): Likewise.
12881         (thumb_set_frame_pointer): Likewise.
12882         (arm_expand_prologue): Likewise.
12883         (arm_regno_class): Change return type to enum reg_class.
12884         (thumb1_expand_prologue): Use add_reg_note.
12885         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
12886         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
12887         in function call.
12888         * config/arm/gentune.sh: Add cast to enum type.
12889         * config/arm/arm-tune.md: Rebuild.
12890         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
12891         (ix86_split_fp_branch, predict_jump): Likewise.
12892         (ix86_expand_multi_arg_builtin): Change sub_code from enum
12893         insn_code to enum rtx_code.
12894         (ix86_builtin_vectorized_function): Add cast to enum type.
12895         * config/i386/i386.md (truncdfsf2): Change slot to enum
12896         ix86_stack_slot.
12897         (truncxf<mode>2, isinf<mode>2): Likewise.
12898         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
12899         enum type.
12900         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
12901         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
12902         (insert_bundle_state): Change 1 to INSERT in function call.
12903         (ia64_add_bundle_selector_before): Likewise.
12904         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
12905         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
12906         (restore_stack_nonlocal): Likewise.
12907         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
12908         function call.
12909         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
12910         function call.
12911         (mips_rtx_costs): Likewise.
12912         (mips_override_options): Add casts to enum type.
12913         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
12914         in function call.
12915         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
12916         (store_reg, set_reg_plus_d): Likewise.
12917         (hppa_expand_prologue, hppa_profile_hook): Likewise.
12918         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
12919         cast to enum type.
12920         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
12921         function call.
12922         (emit_unlikely_jump): Use add_reg_note.
12923         (rs6000_emit_allocate_stack): Likewise.
12924         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
12925         (output_toc): Change 1 to INSERT in function call.
12926         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
12927         (rs6000_initialize_trampoline): Likewise.
12928         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
12929         function call.
12930         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
12931         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
12932         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
12933         (save_gprs): Use add_reg_note.
12934         (s390_emit_prologue): Likewise.
12935         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
12936         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
12937         (sparc_fold_builtin): Add cast to enum type.
12938         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
12939         enum insn_code.
12940         (spu_expand_prologue): Use add_reg_note.
12941         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
12942
12943 2009-04-20  Ian Lance Taylor  <iant@google.com>
12944
12945         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
12946         (c_parser_postfix_expression_after_primary): Get VEC for list of
12947         arguments.  Get original types of arguments.  Call
12948         build_function_call_vec.
12949         (cached_expr_list_1, cached_expr_list_2): New static variables.
12950         (c_parser_expr_list): Change return type to VEC *.  Add
12951         p_orig_types parameter.  Change all callers.
12952         (c_parser_release_expr): New static function.
12953         (c_parser_vec_to_tree_list): New static function.
12954         * c-typeck.c (build_function_call): Rewrite to build a VEC and
12955         call build_function_call_vec.
12956         (build_function_call_vec): New function, based on old
12957         build_function_call.
12958         (convert_arguments): Remove nargs and argarray parameters.  Change
12959         values to a VEC.  Add origtypes parameter.
12960         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
12961         (convert_for_assignment): Add origtype parameter.  Change all
12962         callers.  If warn_cxx_compat, check for conversion to an enum
12963         type when calling a function.
12964         (store_init_value): Add origtype parameter.  Change all callers.
12965         (digest_init): Likewise.
12966         (struct init_node): Add origtype field.
12967         (add_pending_init): Add origtype parameter.  Change all callers.
12968         (output_init_element): Likewise.
12969         (output_pending_init_elements): Pass origtype from init_node to
12970         output_init_element.
12971         (process_init_element): Pass origtype from c_expr to
12972         output_init_element.
12973         (c_finish_return): Add origtype parameter.  Change all callers.
12974         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
12975         caller.
12976         (sync_resolve_params): Likewise.
12977         (sync_resolve_return): Change params to first_param.  Change caller.
12978         (resolve_overloaded_builtins): Change params to VEC *.  Change
12979         callers.  Save first parameter around call to build_function_call_vec.
12980         * c-decl.c (finish_decl): Add origtype parameter.  Change all
12981         callers.  Call build_function_call_vec rather than
12982         build_function_call for cleanup.
12983         * c-tree.h: Update declarations.
12984         * c-common.h: Update declarations.
12985         * stub-objc.c (objc_rewrite_function_call): Change parameter from
12986         params to first_param.
12987         * target.h (struct gcc_target): Change resolve_overloaded_builtin
12988         params parameter from tree to void *.
12989         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
12990         Change arglist parameter to have type void *, and to be a pointer
12991         to a VEC.
12992         * config/rs6000/rs6000-protos.h
12993         (altivec_resolve_overloaded_builtin): Update declaration.
12994         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
12995         fnargs parameter to have type void *, and to be a pointer to a
12996         VEC.  Call build_function_call_vec instead of
12997         build_function_call.
12998         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
12999
13000 2009-04-20  Joey Ye  <joey.ye@intel.com>
13001             Xuepeng Guo  <xuepeng.guo@intel.com>
13002             H.J. Lu  <hongjiu.lu@intel.com>
13003
13004         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
13005
13006         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
13007         (IX86_LEA_PRIORITY): Likewise.
13008         (distance_non_agu_define): New function.
13009         (distance_agu_use): Likewise.
13010         (ix86_lea_for_add_ok): Likewise.
13011         (ix86_dep_by_shift_count): Likewise.
13012
13013         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
13014         should split for LEA.
13015
13016         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
13017         function.
13018         (ix86_dep_by_shift_count): Likewise.
13019
13020 2009-04-20  Richard Guenther  <rguenther@suse.de>
13021
13022         * expr.c (handled_component_p): Move ...
13023         * tree.h (handled_component_p): ... here.
13024         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
13025         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
13026         and REALPART_EXPR to be in one group.
13027
13028 2009-04-20  Richard Guenther  <rguenther@suse.de>
13029
13030         * basic-block.h (get_all_dominated_blocks): Declare.
13031         * dominance.c (get_all_dominated_blocks): New function.
13032         * tree-cfg.c (get_all_dominated_blocks): Remove.
13033         (remove_edge_and_dominated_blocks): Adjust.
13034         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
13035         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
13036         instead of recursing.
13037
13038 2009-04-20  Doug Kwan  <dougkwan@google.com>
13039
13040         * cgraph.h (cgraph_node_ptr): New type for vector functions.
13041         (struct cgraph_node_set_def): New type.
13042         (cgraph_node_set) New type. Also declare vector functions.
13043         (struct cgraph_node_set_element_def): New type.
13044         (cgraph_node_set_element): Ditto.
13045         (cgraph_node_set_iterator): New iterator type.
13046         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
13047         cgraph_node_set_remove, dump_cgraph_node_set,
13048         debug_cgraph_node_set): New prototypes.
13049         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
13050         cgraph_node_set_size): New inlines.
13051         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
13052         including cgraph.h.
13053         (struct ipa_opt_pass): Add struct cgraph_node_set_def
13054         argument to function 'write_summary'.
13055         * ipa.c: Include ggc.h.
13056         (hash_cgraph_node_set_element,
13057         eq_cgraph_node_set_element, cgraph_node_set_new,
13058         cgraph_node_set_add, cgraph_node_set_remove,
13059         cgraph_node_set_find, dump_cgraph_node_set,
13060         debug_cgraph_node_set): New functions.
13061         * Makefile.in (ipa.o): Add dependency on GGC_H.
13062
13063 2009-04-20  Ira Rosen  <irar@il.ibm.com>
13064
13065         PR tree-optimization/39675
13066         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
13067         check of the return code of vect_schedule_slp. Check that
13068         stmt_vec_info still exists for the statement, before checking its
13069         vectorization type.
13070
13071 2009-04-20  Michael Matz  <matz@suse.de>
13072
13073         * Makefile.in (generated_files): Take out $(simple_generated_c).
13074
13075 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
13076
13077         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
13078         (UINTPTR_TYPE):  Likewise.
13079
13080 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
13081
13082         PR c/37481
13083         * c-typeck.c (digest_init): Check for initializing an array with a
13084         string literal.
13085
13086 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
13087
13088         PR c/19771
13089         * c-semantics.c (pop_stmt_list): Propagate
13090         STATEMENT_LIST_HAS_LABEL to parent statement list.
13091
13092 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
13093
13094         * config/mips/mips.h (mips_tune_attr): New macro.
13095         * config/mips/mips.md (cpu): Use it.
13096
13097 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
13098
13099         PR c/38243
13100         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
13101         declaring a tag.
13102
13103 2009-04-19  Diego Novillo  <dnovillo@google.com>
13104
13105         * toplev.c (compile_file): Move call to coverage_finish ...
13106         * cgraphunit.c (ipa_passes): ... here.
13107         Call cgraph_process_new_functions.
13108         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
13109         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
13110
13111 2009-04-19  Jan Hubicka  <jh@suse.cz>
13112
13113         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
13114         cfun.
13115         (dump_cgraph_node): Dump can throw external flag.
13116         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
13117
13118 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13119
13120         PR c/32061
13121         PR c++/36954
13122         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
13123         * common.opt (Wlogical-op): Move from here...
13124         * c.opt (Wlogical-op): ... to here.
13125         * c-typeck.c (parser_build_binary_op): Update call to
13126         warn_logical_operator.
13127         * c-opts.c (c_common_post_options): Enable warn_logical_op with
13128         extra_warnings.
13129         * c-common.c (warn_logical_op): Update.
13130         * c-common.h (warn_logical_op): Update declaration.
13131
13132 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
13133
13134         * tree.c (protected_set_expr_location): Fix formatting.
13135
13136 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
13137
13138         PR c/27676
13139         * c-typeck.c (readonly_warning): new.
13140         (build_unary_op, build_modify_expr): Use readonly_warning for
13141         storing into something readonly but not const-qualified.
13142
13143 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
13144
13145         PR c/22367
13146         * c-typeck.c (build_unary_op): Check for taking address of
13147         expression of type void.
13148
13149 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
13150
13151         PR c/35210
13152         * c-typeck.c (build_function_call): Check for calling a function
13153         with qualified void return types.  Call require_complete_type when
13154         generating a trap.
13155
13156 2009-04-18  Jan Hubicka  <jh@suse.cz>
13157
13158         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
13159         Set nothrow flag.
13160         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
13161         can_throw_external flag.
13162         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
13163         * ipa-pure-const.c (ignore_edge): New function.
13164         (propagate): Compute order for NOTHROW computation; set NOTHROWs
13165         only over can_throw_external edges.
13166         (local_pure_const): Add nothrow flag.
13167         * ipa-utils.c (searchc): Add ignore_edge callback.
13168         (ipa_utils_reduced_inorder): Add ignore_edge callback.
13169         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
13170         (set_nothrow_function_flags): Update cgraph.
13171         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
13172
13173 2009-04-18  Richard Guenther  <rguenther@suse.de>
13174
13175         PR middle-end/39804
13176         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
13177         (fold_stmt): ... this and ...
13178         (fold_stmt_inplace): ... this.
13179         (fold_stmt_1): Fold references in calls and asms.
13180         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
13181
13182 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
13183
13184         * tree-vrp.c (ssa_name_nonzero_p): Remove.
13185         * tree.h: Remove the prototype for ssa_name_nonzero_p.
13186
13187 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
13188
13189         * tree.c (function_args_count): Remove.
13190         * tree.h: Remove the prototype for function_args_count.
13191
13192 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
13193
13194         * tree-iterator.c (expr_only): Remove.
13195         * tree.h: Remove the prototype for expr_only.
13196
13197 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
13198
13199         * reginfo.c (cannot_change_mode_set_regs): Remove.
13200         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
13201
13202 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
13203
13204         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
13205         whether operands 0 and 1 overlaps.
13206
13207 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13208
13209         PR middle-end/36902
13210         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
13211         pointer. Use warning_at instead of warning.
13212         (search_for_addr_array): Likewise.
13213         (check_array_bounds): Likewise.
13214         (check_all_array_refs): Check that the incoming edge is not in the
13215         list of edges to be removed.
13216         (check_all_array_refs): Avoid the temporal pointer.
13217         (vrp_visit_cond_stmt): Fix typo.
13218         (simplify_switch_using_ranges): Handle the case where the switch
13219         index is an integer constant.
13220
13221 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
13222
13223         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
13224
13225 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
13226
13227         * doc/extend.texi, doc/invoke.texi: Fix typos.
13228
13229 2009-04-17  Cary Coutant  <ccoutant@google.com>
13230
13231         * tree-flow-inline.h (get_lineno): Fix inverted test.
13232
13233 2009-04-17  Diego Novillo  <dnovillo@google.com>
13234
13235         * tree-ssa-pre.c (create_expression_by_pieces): Remove
13236         assertion for AVAIL_OUT.
13237
13238 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
13239
13240         PR target/38627
13241         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
13242         * config/sh/linux-atomic.asm: Likewise.
13243
13244 2009-04-17  Diego Novillo  <dnovillo@google.com>
13245
13246         * except.c (debug_eh_tree): New.
13247         (struct eh_region, struct eh_status): Move ...
13248         * except.h: ... here.
13249         (add_type_for_runtime): Declare extern.
13250         (lookup_type_for_runtime): Likewise.
13251         (debug_eh_tree): Declare.
13252         * Makefile.in (GTFILES): List except.h before except.c
13253
13254 2009-04-17  Diego Novillo  <dnovillo@google.com>
13255
13256         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
13257         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
13258         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
13259         (find_vars_r): ... here.
13260         * tree-flow.h (find_referenced_vars_in): Declare.
13261         * tree-ssa-pre.c (create_expression_by_pieces): Assert
13262         that AVAIL_OUT exists for BLOCK.
13263         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
13264         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
13265         (tree-parloops.o): Likewise.
13266
13267 2009-04-17  Simon Baldwin  <simonb@google.com>
13268
13269         * toplev.c (default_tree_printer): Add handling for %E format.
13270
13271 2009-04-17  Diego Novillo  <dnovillo@google.com>
13272
13273         * tree-pretty-print.c (dump_generic_node): Add break after
13274         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
13275         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
13276         FUNCTION_TYPE together.  Call print_struct_decl when printing
13277         structures and TDF_SLIM is not given.
13278         (print_struct_decl): Fix logic for detecting recursion.
13279
13280 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
13281
13282         PR 31567
13283         * gcc.c (create_at_file): New.
13284         (compile_input_file_p): New.
13285         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
13286         * main.c (main): Update call to toplev_main.
13287         * toplev.c (toplev_main): Change signature. Call expandargv.
13288         * toplev.h (toplev_main): Change signature.
13289
13290 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
13291
13292         * dwarf2out.c (field_byte_offset): Use the type size as the field size
13293         if the latter is not constant.
13294
13295 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
13296
13297         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
13298
13299 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
13300
13301         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
13302         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
13303
13304 2009-04-17  Richard Guenther  <rguenther@suse.de>
13305
13306         * tree-ssa-structalias.c (get_constraint_for_component_ref):
13307         Handle component references view-converting an invariant address.
13308
13309 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
13310
13311         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
13312         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
13313         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
13314         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
13315         Use @deftypevr rather than @deftypevar.
13316
13317 2009-04-17  Richard Guenther  <rguenther@suse.de>
13318
13319         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
13320         (get_prop_source_stmt): Likewise.
13321         (can_propagate_from): Likewise.
13322
13323 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
13324
13325         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
13326         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
13327         (--with-multilib-list): Add default value.
13328         * configure: Regenerate.
13329         * Makefile.in (TM_ENDIAN_CONFIG): Define.
13330         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
13331         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
13332         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
13333         Don't add default cpu to multilib list unnecessarily, but do enable
13334         the relevant compiler option..
13335         Add support for --with-multilib-list=<blank> and
13336         --with-multilib-list=!<somelib> to supress unwanted multilibs.
13337         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
13338         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
13339         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
13340         TM_MULTILIB_CONFIG.
13341         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
13342         (MULTILIB_OSDIRNAMES): New variable.
13343         * config/sh/t-1e: Delete file.
13344         * config/sh/t-mlib-sh1: Delete file.
13345         * config/sh/t-mlib-sh2: Delete file.
13346         * config/sh/t-mlib-sh2a: Delete file.
13347         * config/sh/t-mlib-sh2a-nofpu: Delete file.
13348         * config/sh/t-mlib-sh2a-single: Delete file.
13349         * config/sh/t-mlib-sh2a-single-only: Delete file.
13350         * config/sh/t-mlib-sh2e: Delete file.
13351         * config/sh/t-mlib-sh3e: Delete file.
13352         * config/sh/t-mlib-sh4: Delete file.
13353         * config/sh/t-mlib-sh4-nofpu: Delete file.
13354         * config/sh/t-mlib-sh4-single: Delete file.
13355         * config/sh/t-mlib-sh4-single-only: Delete file.
13356         * config/sh/t-mlib-sh4a: Delete file.
13357         * config/sh/t-mlib-sh4a-nofpu: Delete file.
13358         * config/sh/t-mlib-sh4a-single: Delete file.
13359         * config/sh/t-mlib-sh4a-single-only: Delete file.
13360         * config/sh/t-mlib-sh4al: Delete file.
13361         * config/sh/t-mlib-sh5-32media: Delete file.
13362         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
13363         * config/sh/t-mlib-sh5-64media: Delete file.
13364         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
13365         * config/sh/t-mlib-sh5-compact: Delete file.
13366         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
13367         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
13368         * doc/install.texi (Options specification): Add
13369         --with-multilib-list and --with-endian.
13370
13371 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
13372
13373         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
13374         REVISION_c.
13375         (OBJS-common): Add plugin-version.o.
13376         (plugin-version.o): New.
13377         * gcc-plugin.h (plugin_gcc_version): New.
13378         (plugin_default_version_check): New.
13379         (plugin_init_func, plugin_init): Add version argument.
13380         * plugin-version.c: New.
13381         * plugin.c (str_plugin_gcc_version_name): New.
13382         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
13383         pass it to the init function.
13384         (plugin_default_version_check): New.
13385
13386 2009-04-17  Richard Guenther  <rguenther@suse.de>
13387
13388         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
13389         for decl-vs-decl disambiguation.
13390
13391 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
13392
13393         * config/s390/s390.h (s390_tune_attr): New macro definition.
13394         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
13395
13396 2009-04-17  Richard Guenther  <rguenther@suse.de>
13397
13398         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
13399         (fold_stmt_r): Likewise.
13400         (maybe_fold_reference): New function.
13401         (fold_gimple_assign): Handle cases fold_stmt_r did.
13402         (fold_stmt): Do not use fold_stmt_r.
13403         (fold_stmt_inplace): Likewise.
13404
13405 2009-04-17  Richard Guenther  <rguenther@suse.de>
13406
13407         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
13408         (record_equivalences_from_stmt): Remove useless checks and
13409         simplifications.
13410         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
13411         the type is already suitable.
13412
13413 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
13414
13415         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
13416
13417 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
13418
13419         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
13420         (CMPtype): Define as __gcc_CMPtype.
13421
13422 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
13423
13424         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
13425         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
13426
13427 2009-04-17  Richard Guenther  <rguenther@suse.de>
13428
13429         PR tree-optimization/39746
13430         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
13431         special-casing for builtins and static variable use/def.
13432         (call_may_clobber_ref_p_1): Likewise.
13433
13434 2009-04-16  Ian Lance Taylor  <iant@google.com>
13435
13436         * df.h: Include "timevar.h".
13437         (struct df_problem): Change tv_id field to timevar_id_t.
13438         * tree-pass.h: Include "timevar.h".
13439         (struct opt_pass): Change tv_id field to timevar_id_t.
13440         * timevar.h (timevar_id_t): Define TV_NONE.
13441         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
13442         TV_NONE rather than tv_id != 0.
13443         (execute_one_pass): Likewise.
13444         * Makefile.in (DF_H): Add $(TIMEVAR_H).
13445         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
13446         dependencies to $(TREE_PASS_H).
13447         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
13448         to TV_NONE.
13449         (pass_branch_target_load_optimize2): Likewise.
13450         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
13451         (pass_outof_cfg_layout_mode): Likewise.
13452         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
13453         (pass_rebuild_cgraph_edges): Likewise.
13454         (pass_remove_cgraph_callee_edges): Likewise.
13455         * df-core.c (pass_df_initialize_opt): Likewise.
13456         (pass_df_initialize_no_opt): Likewise.
13457         (pass_df_finish): Likewise.
13458         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
13459         * except.c (pass_set_nothrow_function_flags): Likewise.
13460         (pass_convert_to_eh_region_ranges): Likewise.
13461         * final.c (pass_compute_alignments): Likewise.
13462         * function.c (pass_instantiate_virtual_regs): Likewise.
13463         (pass_init_function): Likewise.
13464         (pass_leaf_regs): Likewise.
13465         (pass_match_asm_constraints): Likewise.
13466         * gimple-low.c (pass_lower_cf): Likewise.
13467         (pass_mark_used_blocks): Likewise.
13468         * init-regs.c (pass_initialize_regs): Likewise.
13469         * integrate.c (pass_initial_value_sets): Likewise.
13470         * ira.c (pass_ira): Likewise.
13471         * jump.c (pass_cleanup_barriers): Likewise.
13472         * omp-low.c (pass_expand_omp): Likewise.
13473         (pass_lower_omp): Likewise.
13474         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
13475         * recog.c (pass_split_all_insns): Likewise.
13476         (pass_split_after_reload): Likewise.
13477         (pass_split_before_regstack): Likewise.
13478         (pass_split_before_sched2): Likewise.
13479         (pass_split_for_shorten_branches): Likewise.
13480         * reginfo.c (pass_reginfo_init): Likewise.
13481         (pass_subregs_of_mode_init): Likewise.
13482         (pass_subregs_of_mode_finish): Likewise.
13483         * passes.c (pass_postreload): Likewise.
13484         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
13485         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
13486         (pass_warn_function_return): Likewise.
13487         (pass_warn_function_noreturn): Likewise.
13488         * tree-complex.c (pass_lower_complex): Likewise.
13489         (pass_lower_complex_O0): Likewise.
13490         * tree-if-conv.c (pass_if_conversion): Likewise.
13491         * tree-into-ssa.c (pass_build_ssa): Likewise.
13492         * tree-mudflap.c (pass_mudflap_1): Likewise.
13493         (pass_mudflap_2): Likewise.
13494         * tree-nomudflap.c (pass_mudflap_1): Likewise.
13495         (pass_mudflap_2): Likewise.
13496         * tree-nrv.c (pass_return_slot): Likewise.
13497         * tree-object-size.c (pass_object_sizes): Likewise.
13498         * tree-optimize.c (pass_all_optimizations): Likewise.
13499         (pass_early_local_passes): Likewise.
13500         (pass_all_early_optimizations): Likewise.
13501         (pass_cleanup_cfg): Likewise.
13502         (pass_cleanup_cfg_post_optimizing): Likewise.
13503         (pass_free_datastructures): Likewise.
13504         (pass_free_cfg_annotations): Likewise.
13505         (pass_fixup_cfg): Likewise.
13506         (pass_init_datastructures): Likewise.
13507         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
13508         (pass_late_warn_uninitialized): Likewise.
13509         (pass_update_address_taken): Likewise.
13510         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
13511         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
13512         (pass_cse_sincos): Likewise.
13513         (pass_convert_to_rsqrt): Likewise.
13514         * tree-ssa-structalias.c (pass_build_alias): Likewise.
13515         * tree-stdarg.c (pass_stdarg): Likewise.
13516         * tree-tailcall.c (pass_tail_recursion): Likewise.
13517         (pass_tail_calls): Likewise.
13518         * tree-vect-generic.c (pass_lower_vector): Likewise.
13519         (pass_lower_vector_ssa): Likewise.
13520         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
13521
13522 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
13523
13524         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
13525         XLR entry.
13526         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
13527         Handle -march=xlr.
13528         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
13529         logical and signext.
13530
13531 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
13532
13533         PR target/39767
13534         * config/sh/predicates.md (arith_operand): Check if the operand
13535         of TRUNCATE is a REG.
13536
13537 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
13538
13539         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
13540         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
13541
13542 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
13543
13544         * tree-iterator.c (tsi_split_statement_list_after,
13545         tsi_split_statement_list_before): Remove.
13546         * tree-iterator.h: Remove the prototypes for
13547         tsi_split_statement_list_after and tsi_split_statement_list_before.
13548
13549 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
13550
13551         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
13552         * tree-ssa-propagate.h: Remove the prototype for
13553         stmt_makes_single_load.
13554
13555 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
13556
13557         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
13558         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
13559
13560 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
13561
13562         * tree-iterator.c (EXPR_LAST_BODY): Remove.
13563
13564 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
13565
13566         * except.c (eh_region_outer_p): Remove.
13567         * except.h: Remove the prototype for eh_region_outer_p.
13568
13569 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
13570
13571         * function.c (current_function_assembler_name): Remove.
13572         * function.h: Remove the prototype for
13573         current_function_assembler_name.
13574
13575 2009-04-16  Ian Lance Taylor  <iant@google.com>
13576
13577         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
13578         (add_reg_note): Call alloc_reg_note.
13579         * rtl.h (alloc_reg_note): Declare.
13580         * combine.c (try_combine): Use alloc_reg_note.
13581         (recog_for_combine, move_deaths): Likewise.
13582         (distribute_notes): Use alloc_reg_note and add_reg_note.
13583         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
13584         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
13585         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
13586
13587 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
13588
13589         PR rtl-optimization/39762
13590         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
13591         ira_may_move_out_cost): Add comments about way of their usage.
13592         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
13593
13594         * ira-conflicts.c (process_regs_for_copy): Use function
13595         ira_get_register_move_cost instead of global
13596         ira_register_move_cost.
13597
13598         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
13599         color_pass, move_spill_restore, update_curr_costs): Ditto.
13600
13601         * ira-lives.c (process_single_reg_class_operands): Ditto.
13602
13603         * ira-emit.c (emit_move_list): Ditto.
13604
13605         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
13606         (record_reg_classes): Ditto.  Use functions
13607         ira_get_register_move_cost and ira_get_may_move_cost instead of
13608         global vars ira_register_move_cost, ira_may_move_out_cost and
13609         ira_may_move_in_cost.
13610         (record_address_regs): Don't call ira_init_register_move_cost.
13611         Use function ira_get_may_move_cost instead of global
13612         ira_may_move_in_cost.
13613         (process_bb_node_for_hard_reg_moves): Use function
13614         ira_get_register_move_cost instead of global ira_register_move_cost.
13615         (ira_costs): Don't call ira_init_register_move_cost.
13616
13617 2009-04-16  Richard Guenther  <rguenther@suse.de>
13618
13619         * tree-cfg.c (verify_gimple_assign_binary):
13620         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
13621         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
13622         (create_general_new_stmt): Note that this function is broken.
13623
13624 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
13625
13626         * common.opt (fhelp): Add Var(help_flag).
13627         * gcc-plugin.h (plugin_info): Add help.
13628         * plugin.c (plugin_name_args): Add help.
13629         (register_plugin_info): Set plugin->help.
13630         (print_help_one_plugin): New.
13631         (print_plugins_help): New.
13632         * plugin.h (print_plugins_help): New.
13633         * toplev.c (toplev_main): Call print_plugins_help if needed.
13634
13635 2009-04-16  Richard Guenther  <rguenther@suse.de>
13636
13637         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
13638         (gimple_ior_addresses_taken_1): New function.
13639         (gimple_ior_addresses_taken): Likewise.
13640         * gimple.h (struct gimple_statement_with_ops_base): Remove
13641         addresses_taken member.
13642         (gimple_ior_addresses_taken): Declare.
13643         (gimple_addresses_taken, gimple_addresses_taken_ptr,
13644         gimple_set_addresses_taken): Remove.
13645         * ipa-reference.c (mark_address): New function.
13646         (scan_stmt_for_static_refs): Use it for marking addresses taken.
13647         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
13648         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
13649         (gimple_add_to_addresses_taken): Remove.
13650         (get_tmr_operands): Call mark_address_taken.
13651         (get_asm_expr_operands): Likewise.
13652         (get_expr_operands): Likewise.
13653         (build_ssa_operands): Do not clear the addresses_taken bitmap.
13654         (free_stmt_operands): Do not free it.
13655         * tree-ssa.c (delete_tree_ssa): Likewise.
13656         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
13657
13658 2009-04-16  Richard Guenther  <rguenther@suse.de>
13659
13660         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
13661         (walk_stmt_load_store_ops): Likewise.
13662         * gimple.c (get_base_loadstore): New function.
13663         (walk_stmt_load_store_addr_ops): Likewise.
13664         (walk_stmt_load_store_ops): Likewise.
13665         * ipa-pure-const.c (check_op): Simplify.
13666         (check_load, check_store): New functions.
13667         (check_stmt): Use walk_stmt_load_store_ops.
13668         * ipa-reference.c (mark_load): Adjust signature.
13669         (mark_store): Likewise.
13670         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
13671
13672 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
13673
13674         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
13675         (plugin_info): New.
13676         * opts.c (common_handle_option): Don't call print_version.
13677         * plugin.c (plugin_name_args): Add version.
13678         (register_plugin_info): New.
13679         (register_callback): Handle PLUGIN_INFO.
13680         (try_init_one_plugin): New.
13681         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
13682         if failed to init.
13683         (finalize_one_plugin): New.
13684         (finalize_plugins): New.
13685         (print_one_plugin): New.
13686         (print_plugins_versions): New.
13687         * plugin.h (print_plugins_versions): New.
13688         (finalize_plugins): New.
13689         * toplev.c (compile_file): Don't call initialize_plugins.
13690         (print_version): Call print_plugins_versions.
13691         (toplev_main): Call initialize_plugins. Print version if needed.
13692         Call finalize_plugins.
13693
13694 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
13695
13696         * common.opt (fversion): New.
13697         * gcc.c (print_version): New.
13698         (process_command): Don't print the version. Just set print_version.
13699         (main): Print version. Call subprocesses if print_version and
13700         verbose_flag are set.
13701         * opts.c (common_handle_option): Handle OPT_fversion.
13702
13703 2009-04-16  Richard Guenther  <rguenther@suse.de>
13704             Ira Rosen  <irar@il.ibm.com>
13705
13706         PR tree-optimization/39698
13707         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
13708         type of the reduction variable.  Only generate the def if
13709         it is needed.
13710
13711         * omp-low.c (expand_omp_for_generic): When converting to a pointer
13712         make sure to first convert to an integer of the same precision.
13713         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
13714         the type of the evolution correctly in computing the new
13715         induction variable base.
13716
13717 2009-04-16  Richard Guenther  <rguenther@suse.de>
13718
13719         PR middle-end/39625
13720         * tree-cfg.c (make_blocks): Split statements with to-be
13721         abnormal SSA names on the lhs.
13722
13723 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
13724
13725         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
13726         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
13727         * c-typeck.c (really_start_incremental_init): Likewise.
13728         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
13729         (TARGET_INITIALIZER): Remove it.
13730         * target.h (struct target): Remove vector_opaque_p.
13731         * tree.c (build_opaque_vector_type): New.
13732         * tree.h (TYPE_VECTOR_OPAQUE): New.
13733         (build_opaque_vector_type): Declare.
13734         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
13735         * config/rs6000/rs6000.c (build_opaque_vector_type,
13736         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
13737         (rs6000_init_builtins): Use build_opaque_vector_type for
13738         opaque_V4SI_type_node.
13739
13740 2009-04-15  Catherine Moore  <clm@codesourcery.com>
13741
13742         * debug.h (set_name):  Declare.
13743         * dwarf2out.c (dwarf2out_set_name): Declare.
13744         (dwarf2_debug_hooks): Add set_name.
13745         (find_AT_string): New.
13746         (add_AT_string): Call find_AT_string.
13747         (dwarf2out_set_name): New.
13748         * cp/decl.c (grokdeclarator): Call set_name.
13749         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
13750         * debug.c (do_nothing_debug_hooks):  Likewise.
13751         * dbxout.c (dbx_debug_hooks): Likewise.
13752         * sdbout.c (sdb_debug_hooks): Likewise.
13753
13754 2009-04-15  Michael Eager  <eager@eagercon.com>
13755
13756         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
13757         reg for single-precision FPU.
13758         * config/rs6000/rs6000.md (movsi_internal1): Only for
13759         !TARGET_SINGLE_FPU.
13760         (movsi_internal1_single): New. Add pattern to move SI values to/from
13761         single-precision FP regs.
13762
13763 2009-04-15  Richard Guenther  <rguenther@suse.de>
13764
13765         * omp-low.c (lower_rec_input_clauses): Build correct address
13766         expressions.
13767         (expand_omp_for_generic): Fix multiplication type.
13768         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
13769         (generate_memset_zero): Fix types.
13770         * tree-profile.c (prepare_instrumented_value): Correctly
13771         widen a pointer.
13772
13773 2009-04-15  Ian Lance Taylor  <iant@google.com>
13774
13775         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
13776         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
13777         for -Wall and for -Wc++-compat.
13778         (c_common_post_options): For C++, set warn_enum_compare if not
13779         already set.
13780         * c-tree.h (struct c_expr): Add field original_type.
13781         (build_external_ref): Update declaration.
13782         * c-parser.c (c_parser_braced_init): Set original_type.
13783         (c_parser_initelt): Likewise.
13784         (c_parser_expr_no_commas): Likewise.
13785         (c_parser_conditional_expression): Likewise.
13786         (c_parser_cast_expression): Likewise.
13787         (c_parser_unary_expression): Likewise.  Pull setting of
13788         original_code to top of function.
13789         (c_parser_sizeof_expression): Set original_type.
13790         (c_parser_alignof_expression): Likewise.
13791         (c_parser_postfix_expression): Likewise.  Pull setting of
13792         original_code to top of function.
13793         (c_parser_postfix_expression_after_paren_type): Set original_type.
13794         (c_parser_postfix_expression_after_primary): Likewise.
13795         (c_parser_expression): Likewise.
13796         * c-typeck.c (build_external_ref): Add type parameter.  Change all
13797         callers.
13798         (c_expr_sizeof_expr): Set original_type field.
13799         (parser_build_unary_op): Likewise.
13800         (parser_build_binary_op): Likewise.  Optionally warn about
13801         comparisons of enums of different types.
13802         (digest_init): Set original_type field.
13803         (really_start_incremental_init): Likewise.
13804         (push_init_level, pop_init_level): Likewise.
13805         * doc/invoke.texi (Warning Options): -Wenum-compare now
13806         supported in C.
13807
13808 2009-04-15  Richard Guenther  <rguenther@suse.de>
13809
13810         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
13811         out a necessary conversion.
13812         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
13813         names we didn't value number.
13814         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
13815
13816 2009-04-15  Richard Guenther  <rguenther@suse.de>
13817
13818         PR tree-optimization/39764
13819         * tree-ssa-ccp.c (get_value): Canonicalize value with
13820         canonicalize_float_value.
13821
13822 2009-04-15  Jan Hubicka  <jh@suse.cz>
13823
13824         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
13825         Wrong version of patch.
13826
13827 2009-04-15  Jan Hubicka  <jh@suse.cz>
13828
13829         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
13830
13831 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
13832
13833         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
13834         our distinct integral and vector types.
13835
13836 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
13837
13838         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
13839         * init.c (build_vtbl_address): Remove call to assemble_external.
13840
13841 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
13842
13843         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
13844         output for other floating point modes.
13845
13846 2009-04-14  Diego Novillo  <dnovillo@google.com>
13847
13848         * diagnostic.c (diagnostic_report_diagnostic): Do not
13849         warn about loaded plugins for DK_ERROR and DK_WARNING.
13850         * c-decl.c (declspecs_add_type): Move call to
13851         invoke_plugin_callbacks ...
13852         * c-parser.c (c_parser_declspecs): ... here.
13853         * plugin.c (dump_active_plugins): Tidy output.
13854
13855 2009-04-14  Diego Novillo  <dnovillo@google.com>
13856             Le-Chun Wu  <lcwu@google.com>
13857
13858         * configure.ac: Add --enable-plugin support.
13859         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
13860         * Makefile.in (PLUGIN_H): Define.
13861         Export ENABLE_PLUGIN and GMPINC to site.exp.
13862         Add PLUGINLIBS to link command.
13863         Add/modify dependencies for plugin.o and files including plugin.h.
13864         (plugin.o): New.
13865         * config.in: Regenerate.
13866
13867         * opts.c (common_handle_option): Handle OPT_fplugin_ and
13868         OPT_fplugin_arg_.
13869
13870 2009-04-14  Le-Chun Wu  <lcwu@google.com>
13871
13872         * tree-pass.h (register_one_dump_file): Add a prototype for
13873         register_one_dump_file.
13874         * toplev.c (compile_file): Call initialize_plugins.
13875         (do_compile): Call invoke_plugin_callbacks.
13876         (toplev_main): Call invoke_plugin_callbacks.
13877         * common.opt: Add -fplugin= and -fplugin-arg-.
13878         * gcc-plugin.h: New public header file for plugins to include.
13879         * plugin.c: New source file.
13880         * plugin.h: New internal header file.
13881         * passes.c (register_one_dump_file): Make it external.
13882
13883         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
13884
13885 2009-04-14  Diego Novillo  <dnovillo@google.com>
13886
13887         * doc/plugins.texi: New.
13888         * doc/gccint.texi: Add reference to Plugins chapter.
13889         * doc/invoke.texi: Document -fplugin and -fplugin-arg
13890         * diagnostic.c (diagnostic_report_diagnostic): Warn about
13891         loaded plugins, if any.
13892         * timevar.def (TV_PLUGIN_INIT): Define.
13893         (TV_PLUGIN_RUN): Define.
13894         * plugin.c: Include timevar.h
13895         (plugins_active_p): New.
13896         (dump_active_plugins): New.
13897         (debug_active_plugins): New.
13898
13899 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
13900
13901         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
13902         library paths.
13903         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
13904
13905 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
13906
13907         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
13908         the same as a minus without a shift.
13909
13910 2009-04-14  Nick Clifton  <nickc@redhat.com>
13911
13912         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
13913         comparisons with small integers will always produce a short
13914         branch.
13915
13916 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
13917
13918         Merge:
13919         2008-12-19  Diego Novillo  <dnovillo@google.com>
13920
13921         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
13922
13923 2009-04-14  Richard Guenther  <rguenther@suse.de>
13924
13925         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
13926         verification.
13927         (verify_gimple_assign_binary): Likewise.  Handle shifts and
13928         rotates correctly.
13929         (verify_gimple_phi): Print the mismatched argument position.
13930         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
13931         Fix types.
13932         (vect_update_init_of_dr): Likewise.
13933         * matrix-reorg.c (transform_access_sites): Do what the
13934         comment suggests.
13935         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
13936
13937 2009-04-13  Michael Eager  <eager@eagercon.com>
13938
13939         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
13940         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
13941         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
13942         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
13943         remove duplicate config
13944
13945 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
13946
13947         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
13948         file_name:line_number type locator of the call site.
13949
13950 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
13951
13952         * genautomata.c: Put blank after comma.
13953         (automaton_decls): New.
13954         (struct unit_usage): Add comments to member next.
13955         (store_alt_unit_usage): Keep the list ordered.
13956         (unit_present_on_list_p, equal_alternatives_p): New.
13957         (check_regexp_units_distribution): Check units distribution
13958         correctness correctly.
13959         (main): Don't write automata if error is found.  Return correct
13960         exit code.
13961
13962         * config/m68k/cf.md (cfv4_ds): Remove.
13963         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
13964         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
13965
13966         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
13967         power4-load-ext, power4-store, power4-store-update,
13968         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
13969         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
13970         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
13971         power4-sqrt, power4-isync): Modify reservation to make correct
13972         unit distribution to automata.
13973
13974         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
13975         power5-store-update, power5-two, power5-three, power5-lmul,
13976         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
13977
13978 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
13979
13980         * except.c (pass_set_nothrow_function_flags): Set name and add
13981         TODO_dump_func.
13982         (set_nothrow_function_flags): Mention in the dump file when
13983         changing a function to nothrow.
13984
13985 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
13986
13987         PR/39066
13988         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
13989         instead of unsigned long.
13990
13991 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13992
13993         * config/arm/arm.c (return_used_this_function): Remove.
13994         (arm_output_function_prologue): Remove use of
13995         return_used_this_function.
13996         (output_return_instruction): Replace use of
13997         return_used_this_function
13998         by cfun->machine->return_used_this_function.
13999         (arm_output_epilogue): Likewise.
14000         (arm_output_function_epilogue): Likewise.
14001         (thumb_unexpanded_epilogue): Likewise.
14002         * config/arm/arm.h (struct machine_function):
14003         New member return_used_this_function.
14004
14005 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
14006
14007         * doc/install.texi: Correct description of default directory for
14008         --with-gxx-include-dir.
14009
14010 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
14011
14012         * fold-const.c (build_range_check): Properly deal with enumeral and
14013         boolean base types.
14014
14015 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
14016
14017         * doc/invoke.texi (max_gcse_passes): Remove documentation.
14018         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
14019         * params.h (MAX_GCSE_PASSES): Remove.
14020         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
14021         in sequence.  Remove ability to run multiple passes.
14022         (bypass_jumps): Report run as third CPROP pass.
14023
14024 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
14025
14026         PR middle-end/39651
14027         * except.c (can_throw_external): Look at each insn in a SEQUENCE
14028         when deciding whether the whole SEQUENCE can throw.
14029
14030 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
14031
14032         PR target/39740
14033         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
14034         offseted label references.
14035
14036 2009-04-11  Jan Hubicka  <jh@suse.cz>
14037
14038         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
14039
14040 2009-04-11  Richard Guenther  <rguenther@suse.de>
14041
14042         PR middle-end/39732
14043         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
14044         return variables as TREE_ADDRESSABLE.
14045
14046 2009-04-11  Richard Guenther  <rguenther@suse.de>
14047
14048         PR tree-optimization/39713
14049         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
14050         reference trees have SSA_NAME operands.
14051
14052 2009-04-11  Richard Guenther  <rguenther@suse.de>
14053
14054         PR c/39712
14055         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
14056         address expressions.
14057
14058 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
14059
14060         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
14061         match changes in Cygwin 1.7
14062         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
14063         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
14064
14065 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
14066
14067         PR tree-optimization/39701
14068         * doc/invoke.texi (Optimization Options): Document change in
14069         meaning and initialization of -fdelete-null-pointer-checks.
14070
14071 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
14072
14073         PR middle-end/39701
14074         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
14075
14076         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
14077         here.
14078
14079         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
14080
14081 2009-04-10  Chao-ying Fu  <fu@mips.com>
14082
14083         * doc/tm.texi (Instruction Output): Document
14084         TARGET_ASM_FINAL_POSTSCAN_INSN.
14085         * target.h (final_postscan_insn): New field in asm_out.
14086         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
14087         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
14088         * final.c (final_scan_insn): Call
14089         targetm.asm_out.final_postscan_insn after outputting
14090         an asm macro and a normal instruction.
14091
14092         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
14093         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
14094         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
14095         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
14096         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
14097
14098 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
14099
14100         PR middle-end/39701
14101         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
14102         variables as non-NULL even with -fdelete-null-pointer-checks.
14103
14104 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
14105
14106         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
14107
14108 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
14109
14110         PR target/39678
14111         * config/i386/i386.c (classify_argument): Handle SCmode with
14112         (bit_offset % 64) != 0.
14113
14114 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
14115
14116         * doc/invoke.texi (Optimize Options): Add cross-reference to
14117         -Q --help=optimizers examples.
14118
14119 2009-04-10  Ben Elliston  <bje@au.ibm.com>
14120
14121         PR target/36800
14122         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
14123         regalign for the reg == fpr and TDmode case.
14124
14125 2009-04-09  David Ayers  <ayers@fsfe.org>
14126
14127         PR objc/29200
14128         * objc/objc-act.c (warn_with_method): Remove helper function.
14129         (check_duplicates): Call warning and inform directly.
14130         (really_start_method): Likewise.
14131
14132 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
14133
14134         * expmed.c (expand_divmod): Always use a comparison for a division
14135         by a large unsigned integer.
14136
14137         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
14138         for things others than variables or functions as nonzero.
14139
14140 2009-04-09  Nick Clifton  <nickc@redhat.com>
14141
14142         * unwind-compat.c: Change copyright header to refer to version
14143         3 of the GNU General Public License with version 3.1 of the
14144         GCC Runtime Library Exception and to point readers at the
14145         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
14146         * config/alpha/crtfastmath.c: Likewise.
14147         * config/alpha/linux-unwind.h: Likewise.
14148         * config/alpha/qrnnd.asm: Likewise.
14149         * config/alpha/vms-crt0-64.c: Likewise.
14150         * config/alpha/vms-crt0.c: Likewise.
14151         * config/alpha/vms-dwarf2.asm: Likewise.
14152         * config/alpha/vms-dwarf2eh.asm: Likewise.
14153         * config/alpha/vms-psxcrt0-64.c: Likewise.
14154         * config/alpha/vms-psxcrt0.c: Likewise.
14155         * config/alpha/vms_tramp.asm: Likewise.
14156         * config/arc/initfini.c: Likewise.
14157         * config/arc/lib1funcs.asm: Likewise.
14158         * config/arm/bpabi-v6m.S: Likewise.
14159         * config/arm/bpabi.S: Likewise.
14160         * config/arm/bpabi.c: Likewise.
14161         * config/arm/crti.asm: Likewise.
14162         * config/arm/crtn.asm: Likewise.
14163         * config/arm/ieee754-df.S: Likewise.
14164         * config/arm/ieee754-sf.S: Likewise.
14165         * config/arm/lib1funcs.asm: Likewise.
14166         * config/arm/libunwind.S: Likewise.
14167         * config/arm/linux-atomic.c: Likewise.
14168         * config/arm/mmintrin.h: Likewise.
14169         * config/arm/pr-support.c: Likewise.
14170         * config/arm/unaligned-funcs.c: Likewise.
14171         * config/arm/unwind-arm.c: Likewise.
14172         * config/arm/unwind-arm.h: Likewise.
14173         * config/avr/libgcc.S: Likewise.
14174         * config/bfin/crti.s: Likewise.
14175         * config/bfin/crtlibid.s: Likewise.
14176         * config/bfin/crtn.s: Likewise.
14177         * config/bfin/lib1funcs.asm: Likewise.
14178         * config/bfin/linux-unwind.h: Likewise.
14179         * config/cris/arit.c: Likewise.
14180         * config/cris/cris_abi_symbol.c: Likewise.
14181         * config/darwin-64.c: Likewise.
14182         * config/darwin-crt2.c: Likewise.
14183         * config/darwin-crt3.c: Likewise.
14184         * config/darwin.h: Likewise.
14185         * config/dbxelf.h: Likewise.
14186         * config/dfp-bit.c: Likewise.
14187         * config/dfp-bit.h: Likewise.
14188         * config/elfos.h: Likewise.
14189         * config/fixed-bit.c: Likewise.
14190         * config/fixed-bit.h: Likewise.
14191         * config/fp-bit.c: Likewise.
14192         * config/fp-bit.h: Likewise.
14193         * config/fr30/crti.asm: Likewise.
14194         * config/fr30/crtn.asm: Likewise.
14195         * config/fr30/lib1funcs.asm: Likewise.
14196         * config/freebsd-spec.h: Likewise.
14197         * config/frv/cmovd.c: Likewise.
14198         * config/frv/cmovh.c: Likewise.
14199         * config/frv/cmovw.c: Likewise.
14200         * config/frv/frvbegin.c: Likewise.
14201         * config/frv/frvend.c: Likewise.
14202         * config/frv/lib1funcs.asm: Likewise.
14203         * config/glibc-stdint.h: Likewise.
14204         * config/h8300/clzhi2.c: Likewise.
14205         * config/h8300/crti.asm: Likewise.
14206         * config/h8300/crtn.asm: Likewise.
14207         * config/h8300/ctzhi2.c: Likewise.
14208         * config/h8300/fixunssfsi.c: Likewise.
14209         * config/h8300/lib1funcs.asm: Likewise.
14210         * config/h8300/parityhi2.c: Likewise.
14211         * config/h8300/popcounthi2.c: Likewise.
14212         * config/i386/ammintrin.h: Likewise.
14213         * config/i386/att.h: Likewise.
14214         * config/i386/avxintrin.h: Likewise.
14215         * config/i386/biarch64.h: Likewise.
14216         * config/i386/bmmintrin.h: Likewise.
14217         * config/i386/cpuid.h: Likewise.
14218         * config/i386/cross-stdarg.h: Likewise.
14219         * config/i386/crtfastmath.c: Likewise.
14220         * config/i386/crtprec.c: Likewise.
14221         * config/i386/cygming-crtbegin.c: Likewise.
14222         * config/i386/cygming-crtend.c: Likewise.
14223         * config/i386/cygwin.asm: Likewise.
14224         * config/i386/emmintrin.h: Likewise.
14225         * config/i386/gmm_malloc.h: Likewise.
14226         * config/i386/gthr-win32.c: Likewise.
14227         * config/i386/i386.h: Likewise.
14228         * config/i386/immintrin.h: Likewise.
14229         * config/i386/linux-unwind.h: Likewise.
14230         * config/i386/linux64.h: Likewise.
14231         * config/i386/mm3dnow.h: Likewise.
14232         * config/i386/mmintrin-common.h: Likewise.
14233         * config/i386/mmintrin.h: Likewise.
14234         * config/i386/nmmintrin.h: Likewise.
14235         * config/i386/pmm_malloc.h: Likewise.
14236         * config/i386/pmmintrin.h: Likewise.
14237         * config/i386/smmintrin.h: Likewise.
14238         * config/i386/sol2-c1.asm: Likewise.
14239         * config/i386/sol2-ci.asm: Likewise.
14240         * config/i386/sol2-cn.asm: Likewise.
14241         * config/i386/sol2-gc1.asm: Likewise.
14242         * config/i386/tmmintrin.h: Likewise.
14243         * config/i386/unix.h: Likewise.
14244         * config/i386/w32-unwind.h: Likewise.
14245         * config/i386/wmmintrin.h: Likewise.
14246         * config/i386/x86-64.h: Likewise.
14247         * config/i386/x86intrin.h: Likewise.
14248         * config/i386/xmmintrin.h: Likewise.
14249         * config/ia64/crtbegin.asm: Likewise.
14250         * config/ia64/crtend.asm: Likewise.
14251         * config/ia64/crtfastmath.c: Likewise.
14252         * config/ia64/crti.asm: Likewise.
14253         * config/ia64/crtn.asm: Likewise.
14254         * config/ia64/fde-glibc.c: Likewise.
14255         * config/ia64/lib1funcs.asm: Likewise.
14256         * config/ia64/linux-unwind.h: Likewise.
14257         * config/ia64/quadlib.c: Likewise.
14258         * config/ia64/unwind-ia64.c: Likewise.
14259         * config/linux.h: Likewise.
14260         * config/m32c/m32c-lib1.S: Likewise.
14261         * config/m32c/m32c-lib2-trapv.c: Likewise.
14262         * config/m32c/m32c-lib2.c: Likewise.
14263         * config/m32r/initfini.c: Likewise.
14264         * config/m68hc11/larith.asm: Likewise.
14265         * config/m68hc11/m68hc11-crt0.S: Likewise.
14266         * config/m68k/cf.md: Likewise.
14267         * config/m68k/crti.s: Likewise.
14268         * config/m68k/crtn.s: Likewise.
14269         * config/m68k/lb1sf68.asm: Likewise.
14270         * config/m68k/linux-unwind.h: Likewise.
14271         * config/mcore/crti.asm: Likewise.
14272         * config/mcore/crtn.asm: Likewise.
14273         * config/mcore/lib1.asm: Likewise.
14274         * config/mips/linux-unwind.h: Likewise.
14275         * config/mips/loongson.h: Likewise.
14276         * config/mips/mips16.S: Likewise.
14277         * config/mmix/crti.asm: Likewise.
14278         * config/mmix/crtn.asm: Likewise.
14279         * config/pa/fptr.c: Likewise.
14280         * config/pa/hpux-unwind.h: Likewise.
14281         * config/pa/lib2funcs.asm: Likewise.
14282         * config/pa/linux-atomic.c: Likewise.
14283         * config/pa/linux-unwind.h: Likewise.
14284         * config/pa/milli64.S: Likewise.
14285         * config/pa/quadlib.c: Likewise.
14286         * config/pa/stublib.c: Likewise.
14287         * config/picochip/libgccExtras/adddi3.asm: Likewise.
14288         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
14289         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
14290         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
14291         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
14292         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
14293         * config/picochip/libgccExtras/divmod15.asm: Likewise.
14294         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
14295         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
14296         * config/picochip/libgccExtras/longjmp.asm: Likewise.
14297         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
14298         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
14299         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
14300         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
14301         * config/picochip/libgccExtras/setjmp.asm: Likewise.
14302         * config/picochip/libgccExtras/subdi3.asm: Likewise.
14303         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
14304         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
14305         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
14306         * config/rs6000/750cl.h: Likewise.
14307         * config/rs6000/altivec.h: Likewise.
14308         * config/rs6000/biarch64.h: Likewise.
14309         * config/rs6000/crtresfpr.asm: Likewise.
14310         * config/rs6000/crtresgpr.asm: Likewise.
14311         * config/rs6000/crtresxfpr.asm: Likewise.
14312         * config/rs6000/crtresxgpr.asm: Likewise.
14313         * config/rs6000/crtsavfpr.asm: Likewise.
14314         * config/rs6000/crtsavgpr.asm: Likewise.
14315         * config/rs6000/darwin-asm.h: Likewise.
14316         * config/rs6000/darwin-fallback.c: Likewise.
14317         * config/rs6000/darwin-fpsave.asm: Likewise.
14318         * config/rs6000/darwin-ldouble.c: Likewise.
14319         * config/rs6000/darwin-tramp.asm: Likewise.
14320         * config/rs6000/darwin-unwind.h: Likewise.
14321         * config/rs6000/darwin-vecsave.asm: Likewise.
14322         * config/rs6000/darwin-world.asm: Likewise.
14323         * config/rs6000/e500crtres32gpr.asm: Likewise.
14324         * config/rs6000/e500crtres64gpr.asm: Likewise.
14325         * config/rs6000/e500crtres64gprctr.asm: Likewise.
14326         * config/rs6000/e500crtrest32gpr.asm: Likewise.
14327         * config/rs6000/e500crtrest64gpr.asm: Likewise.
14328         * config/rs6000/e500crtresx32gpr.asm: Likewise.
14329         * config/rs6000/e500crtresx64gpr.asm: Likewise.
14330         * config/rs6000/e500crtsav32gpr.asm: Likewise.
14331         * config/rs6000/e500crtsav64gpr.asm: Likewise.
14332         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
14333         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
14334         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
14335         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
14336         * config/rs6000/eabi-ci.asm: Likewise.
14337         * config/rs6000/eabi-cn.asm: Likewise.
14338         * config/rs6000/eabi.asm: Likewise.
14339         * config/rs6000/linux-unwind.h: Likewise.
14340         * config/rs6000/linux64.h: Likewise.
14341         * config/rs6000/paired.h: Likewise.
14342         * config/rs6000/paired.md: Likewise.
14343         * config/rs6000/ppc64-fp.c: Likewise.
14344         * config/rs6000/ppu_intrinsics.h: Likewise.
14345         * config/rs6000/rs6000.h: Likewise.
14346         * config/rs6000/si2vmx.h: Likewise.
14347         * config/rs6000/sol-ci.asm: Likewise.
14348         * config/rs6000/sol-cn.asm: Likewise.
14349         * config/rs6000/spe.h: Likewise.
14350         * config/rs6000/spu2vmx.h: Likewise.
14351         * config/rs6000/sysv4.h: Likewise.
14352         * config/rs6000/tramp.asm: Likewise.
14353         * config/rs6000/vec_types.h: Likewise.
14354         * config/s390/linux-unwind.h: Likewise.
14355         * config/s390/tpf-unwind.h: Likewise.
14356         * config/score/crti.asm: Likewise.
14357         * config/score/crtn.asm: Likewise.
14358         * config/sh/crt1.asm: Likewise.
14359         * config/sh/crti.asm: Likewise.
14360         * config/sh/crtn.asm: Likewise.
14361         * config/sh/divtab-sh4-300.c: Likewise.
14362         * config/sh/divtab-sh4.c: Likewise.
14363         * config/sh/divtab.c: Likewise.
14364         * config/sh/lib1funcs-4-300.asm: Likewise.
14365         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
14366         * config/sh/lib1funcs.asm: Likewise.
14367         * config/sh/lib1funcs.h: Likewise.
14368         * config/sh/linux-atomic.asm: Likewise.
14369         * config/sh/linux-unwind.h: Likewise.
14370         * config/sh/shmedia.h: Likewise.
14371         * config/sh/sshmedia.h: Likewise.
14372         * config/sh/ushmedia.h: Likewise.
14373         * config/sparc/crtfastmath.c: Likewise.
14374         * config/sparc/linux-unwind.h: Likewise.
14375         * config/sparc/sol2-c1.asm: Likewise.
14376         * config/sparc/sol2-ci.asm: Likewise.
14377         * config/sparc/sol2-cn.asm: Likewise.
14378         * config/spu/divmodti4.c: Likewise.
14379         * config/spu/divv2df3.c: Likewise.
14380         * config/spu/float_disf.c: Likewise.
14381         * config/spu/float_unsdidf.c: Likewise.
14382         * config/spu/float_unsdisf.c: Likewise.
14383         * config/spu/float_unssidf.c: Likewise.
14384         * config/spu/mfc_multi_tag_release.c: Likewise.
14385         * config/spu/mfc_multi_tag_reserve.c: Likewise.
14386         * config/spu/mfc_tag_release.c: Likewise.
14387         * config/spu/mfc_tag_reserve.c: Likewise.
14388         * config/spu/mfc_tag_table.c: Likewise.
14389         * config/spu/multi3.c: Likewise.
14390         * config/spu/spu_internals.h: Likewise.
14391         * config/spu/spu_intrinsics.h: Likewise.
14392         * config/spu/spu_mfcio.h: Likewise.
14393         * config/spu/vec_types.h: Likewise.
14394         * config/spu/vmx2spu.h: Likewise.
14395         * config/stormy16/stormy16-lib2.c: Likewise.
14396         * config/svr4.h: Likewise.
14397         * config/sync.c: Likewise.
14398         * config/v850/lib1funcs.asm: Likewise.
14399         * config/vxlib-tls.c: Likewise.
14400         * config/vxlib.c: Likewise.
14401         * config/vxworks-dummy.h: Likewise.
14402         * config/xtensa/crti.asm: Likewise.
14403         * config/xtensa/crtn.asm: Likewise.
14404         * config/xtensa/ieee754-df.S: Likewise.
14405         * config/xtensa/ieee754-sf.S: Likewise.
14406         * config/xtensa/lib1funcs.asm: Likewise.
14407         * config/xtensa/lib2funcs.S: Likewise.
14408         * config/xtensa/linux-unwind.h: Likewise.
14409         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
14410         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
14411         * coretypes.h: Likewise.
14412         * crtstuff.c: Likewise.
14413         * defaults.h: Likewise.
14414         * dwarf2.h: Likewise.
14415         * emutls.c: Likewise.
14416         * gbl-ctors.h: Likewise.
14417         * gcov-io.h: Likewise.
14418         * ginclude/float.h: Likewise.
14419         * ginclude/iso646.h: Likewise.
14420         * ginclude/stdarg.h: Likewise.
14421         * ginclude/stdbool.h: Likewise.
14422         * ginclude/stddef.h: Likewise.
14423         * ginclude/stdfix.h: Likewise.
14424         * ginclude/stdint-gcc.h: Likewise.
14425         * ginclude/tgmath.h: Likewise.
14426         * gthr-aix.h: Likewise.
14427         * gthr-dce.h: Likewise.
14428         * gthr-gnat.c: Likewise.
14429         * gthr-gnat.h: Likewise.
14430         * gthr-lynx.h: Likewise.
14431         * gthr-mipssde.h: Likewise.
14432         * gthr-nks.h: Likewise.
14433         * gthr-posix.c: Likewise.
14434         * gthr-posix.h: Likewise.
14435         * gthr-posix95.h: Likewise.
14436         * gthr-rtems.h: Likewise.
14437         * gthr-single.h: Likewise.
14438         * gthr-solaris.h: Likewise.
14439         * gthr-tpf.h: Likewise.
14440         * gthr-vxworks.h: Likewise.
14441         * gthr-win32.h: Likewise.
14442         * gthr.h: Likewise.
14443         * libgcc2.c: Likewise.
14444         * libgcc2.h: Likewise.
14445         * libgcov.c: Likewise.
14446         * tsystem.h: Likewise.
14447         * typeclass.h: Likewise.
14448         * unwind-c.c: Likewise.
14449         * unwind-compat.h: Likewise.
14450         * unwind-dw2-fde-compat.c: Likewise.
14451         * unwind-dw2-fde-darwin.c: Likewise.
14452         * unwind-dw2-fde-glibc.c: Likewise.
14453         * unwind-dw2-fde.c: Likewise.
14454         * unwind-dw2-fde.h: Likewise.
14455         * unwind-dw2.c: Likewise.
14456         * unwind-dw2.h: Likewise.
14457         * unwind-generic.h: Likewise.
14458         * unwind-pe.h: Likewise.
14459         * unwind-sjlj.c: Likewise.
14460         * unwind.inc: Likewise.
14461         * config/arm/neon-gen.ml: Change generated copyright header to
14462         refer to version 3 of the GNU General Public License with
14463         version 3.1 of the GCC Runtime Library Exception and to point
14464         readers at the COPYING3 and COPYING3.RUNTIME files and the
14465         FSF's license web page.
14466         * config/arm/arm_neon.h: Regenerate.
14467
14468 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
14469
14470         * config/cris/cris.md: Change copyright header to refer to version
14471         3 of the GNU General Public License.
14472         * doc/install.texi2html: Change copyright header to refer to version
14473         3 of the GNU General Public License and to point readers at the
14474         COPYING3 file and the FSF's license web page.
14475         * config/vax/linux.h: Likewise.
14476
14477 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
14478
14479         * config/i386/i386.md (cmpcc): New.
14480         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
14481         (sync_compare_and_swap_cc*): Delete.
14482
14483         * config/s390/s390.c (s390_compare_emitted): Remove.
14484         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
14485         s390_compare_emitted used to be handled.  Assert that modes match.
14486         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
14487         refer to sync_compare_and_swap_ccsi.
14488         * config/s390/s390.h (s390_compare_emitted): Remove.
14489         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
14490         instead of s390_compare_emitted.
14491         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
14492         instead of s390_compare_emitted.
14493         * config/s390/s390.md (cmpcc): New.
14494         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
14495         CC_REGNUM, do not pretend it's set.
14496         (sync_compare_and_swap_cc*): Delete.
14497         * config/s390/predicates.md (cc_reg_operand): New.
14498
14499         * expr.c (sync_compare_and_swap_cc): Delete.
14500         * optabs.h (sync_compare_and_swap_cc): Delete.
14501         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
14502         is being used with can_compare_p.
14503         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
14504         (find_cc_set): New.
14505         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
14506         look for a MODE_CC set instead.  Use emit_store_flag.
14507         (expand_compare_and_swap_loop): Likewise, with some additional
14508         complication to avoid a force_reg when useless.  Use
14509         emit_cmp_and_jump_insns.
14510         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
14511         * doc/md.texi (sync_compare_and_swap_cc): Merge with
14512         sync_compare_and_swap documentation.
14513
14514 2009-04-09  Jan Hubicka  <jh@suse.cz>
14515
14516         * except.c (find_prev_try): Break out from ....
14517         (duplicate_eh_regions): ... here; properly update prev_try pointers
14518         when duplication part of tree.
14519         (dump_eh_tree): Improve dumping.
14520         (verify_eh_region): New.
14521         (verify_eh_tree): Use it.
14522
14523 2009-04-06  Richard Guenther  <rguenther@suse.de>
14524
14525         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
14526         &ARRAY addresses by adjusting their types and prepending
14527         a conversion.
14528         * tree-cfg.c (verify_gimple_assign_single): Verify that
14529         addresses are correct.
14530
14531 2009-04-09  Richard Guenther  <rguenther@suse.de>
14532
14533         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
14534         indices into an array reference if possible.
14535         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
14536         Fold POINTER_PLUS_EXPR statements with invariant address.
14537
14538 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
14539
14540         PR target/39634
14541         * config.gcc (powerpc64-*-linux*): Always build biarch.
14542
14543 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
14544
14545         PR c/39613
14546         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
14547         it and pedwarn if this results in an INTEGER_CST.
14548
14549 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14550
14551         * doc/install.texi: Update minimum GMP version.  Remove obsolete
14552         text in MPFR section.
14553
14554 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
14555
14556         * dwarf2out.c (class_scope_p): New static inline.
14557         (class_or_namespace_scope_p): Use it.
14558         (gen_variable_die): Use DW_TAG_member tag for static data member
14559         declarations instead of DW_TAG_variable.
14560
14561         PR middle-end/39573
14562         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
14563         variables.
14564
14565 2009-04-08  Richard Guenther  <rguenther@suse.de>
14566
14567         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
14568         valueize random data.
14569
14570 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
14571
14572         * config.gcc (aix tm_file):  Add aix-stdint.h.
14573         (aix tm clause use_gcc_stdint):  Set to wrap.
14574         * config/rs6000/aix-stdint.h:  New file.
14575
14576 2009-04-08  Richard Guenther  <rguenther@suse.de>
14577
14578         PR middle-end/36291
14579         * tree-dfa.c (add_referenced_var): Do not recurse into
14580         global initializers.
14581         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
14582         exposed variables.
14583         (fold_const_aggregate_ref): Likewise.
14584
14585 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
14586
14587         * recog.c (ordered_comparison_operator): New.
14588         * gensupport.c (std_preds): Add it.
14589         * doc/md.texi (Machine-Independent Predicates): Document it.
14590
14591 2009-04-08  Jan Hubicka  <jh@suse.cz>
14592
14593         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
14594         * function.h (rtl_eh): Remove exception_handler_label_map.
14595         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
14596         remove_exception_handler_label, for_each_eh_label_1): Remove.
14597         (rtl_remove_unreachable_regions): Remove.
14598         (convert_from_eh_region_ranges): Do not remove unreachable regions.
14599         (find_exception_handler_labels): Don't build the hashtable.
14600         (maybe_remove_eh_handler): Remove.
14601         (for_each_eh_label): Rewrite to walk the tree.
14602         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
14603         * except.h (maybe_remove_eh_handler): Remove.
14604         * passes.c (init_optimization_passes): Schedule second EH cleanup
14605         before out-of-ssa.
14606         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
14607         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
14608
14609 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
14610
14611         * genoutput.c (validate_optab_operands): New.
14612         (gen_insn, gen_expand): Call it.
14613
14614         * genflags.c (gen_insn): Detect misused iterators.
14615         (main): Pass line_no to gen_insn, exit with status 1 on error.
14616
14617         * genextract.c (line_no): Make global.
14618         (VEC_safe_set_locstr): Change assertion to error message.
14619         (main): Exit with status 1 on error.
14620
14621 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
14622
14623         PR c/39614
14624         PR c/39673
14625         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
14626         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
14627         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
14628         * c-convert.c (convert): Do not call fold on results of conversion
14629         functions when the result is a C_MAYBE_CONST_EXPR.
14630         * c-parser.c (c_parser_postfix_expression): Do not fold condition
14631         of __builtin_choose_expr.
14632         * c-typeck.c (remove_c_maybe_const_expr): New.
14633         (build_unary_op, build_conditional_expr, build_compound_expr,
14634         build_binary_op, c_objc_common_truthvalue_conversion): Call
14635         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
14636         integer operands.
14637
14638 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
14639
14640         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
14641         CODE to produce a new one. Add a prototype to use fold_convert_const
14642
14643 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
14644
14645         PR bootstrap/39660
14646         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
14647         mix declarations and code.
14648
14649 2009-04-08  Ben Elliston  <bje@au.ibm.com>
14650
14651         * gcc.c: Replace `CC' with `GCC' throughout.
14652
14653 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
14654
14655         * doc/invoke.texi: Document Atom support.
14656
14657 2009-04-07  Jason Merrill  <jason@redhat.com>
14658
14659         PR c++/25185
14660         * c-common.h, c-common.c: Add flag_pretty_templates.
14661         * c-opts.c (c_common_handle_option): Set it.
14662         * c.opt: Add -fno-pretty-templates.
14663         * doc/invoke.texi (C++ Dialect Options): Likewise.
14664
14665 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
14666
14667         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
14668         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
14669         (ia64_expand_builtin): Likewise.
14670
14671 2009-04-07  Martin Jambor  <mjambor@suse.cz>
14672
14673         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
14674         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
14675         ADDR_EXPRS are include too.
14676
14677 2009-04-07  Richard Guenther  <rguenther@suse.de>
14678
14679         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
14680         decls are only used if passes as parameters or if they are
14681         local statics and the call is not to a builtin.
14682         (call_may_clobber_ref_p_1): Likewise.
14683
14684 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
14685
14686         * expr.c (do_store_flag): Remove last argument.  Simplify code
14687         to avoid duplication of tests already done by can_compare_p.
14688         (expand_expr_real_1): Adjust caller.
14689
14690 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
14691
14692         * optabs.c (can_compare_p): Test the predicate of a
14693         cbranch and cstore pattern.
14694
14695 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
14696
14697         * expr.c (convert_move): Use emit_store_flag instead of
14698         "emulating" it.
14699
14700 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
14701
14702         * config/i386/i386.c (ix86_compare_emitted): Remove.
14703         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
14704         ix86_compare_op0 like ix86_compare_emitted used to be handled.
14705         * config/i386/i386.h (ix86_compare_emitted): Remove.
14706         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
14707         instead of ix86_compare_emitted.
14708         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
14709
14710 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
14711
14712         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
14713         Add t-sysroot-suffix to tmake_file.
14714         * config/print-sysroot-suffix.sh: New file.
14715         * config/t-sysroot-suffix: New file.
14716
14717 2009-04-07  Ben Elliston  <bje@au.ibm.com>
14718
14719         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
14720         as the latter produces a warning when the target does not support
14721         infinity.
14722
14723 2009-04-07  Ben Elliston  <bje@au.ibm.com>
14724
14725         * dfp.c: Replace type punning assignments with memcpy throughout.
14726         * Makefile.in (dfp.o-warn): Remove.
14727
14728 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
14729
14730         PR target/39634
14731         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
14732         Include soft-fp/t-softfp after rs6000/t-linux64.
14733
14734 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
14735
14736         * stor-layout.c (set_sizetype): Use the full precision of their
14737         machine mode for bitsize types.
14738
14739 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
14740
14741         * config/i386/i386.md: Revert 2 accidental checkins.
14742
14743 2009-04-06  Joey Ye  <joey.ye@intel.com>
14744             Xuepeng Guo  <xuepeng.guo@intel.com>
14745             H.J. Lu  <hongjiu.lu@intel.com>
14746
14747         Atom pipeline model, tuning and insn selection.
14748         * config.gcc (atom): Add atom config options and target.
14749
14750         * config/i386/atom.md: New.
14751
14752         * config/i386/i386.c (atom_cost): New cost.
14753         (m_ATOM): New macro flag.
14754         (initial_ix86_tune_features): Set m_ATOM.
14755         (x86_accumulate_outgoing_args): Likewise.
14756         (x86_arch_always_fancy_math_387): Likewise.
14757         (processor_target): Add Atom cost.
14758         (cpu_names): Add Atom cpu name.
14759         (override_options): Set Atom ISA.
14760         (ix86_issue_rate): New case PROCESSOR_ATOM.
14761         (ix86_adjust_cost): Likewise.
14762
14763         * config/i386/i386.h (TARGET_ATOM): New target macro.
14764         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
14765         (TARGET_OPT_AGU): New target option.
14766         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
14767         (processor_type): Add PROCESSOR_ATOM.
14768
14769         * config/i386/i386.md (cpu): Add new value "atom".
14770         (use_carry, movu): New attr.
14771         (atom.md): Include atom.md.
14772         (adddi3_carry_rex64): Set attr "use_carry".
14773         (addqi3_carry): Likewise.
14774         (addhi3_carry): Likewise.
14775         (addsi3_carry): Likewise.
14776         (*addsi3_carry_zext): Likewise.
14777         (subdi3_carry_rex64): Likewise.
14778         (subqi3_carry): Likewise.
14779         (subhi3_carry): Likewise.
14780         (subsi3_carry): Likewise.
14781         (x86_movdicc_0_m1_rex64): Likewise.
14782         (*x86_movdicc_0_m1_se): Likewise.
14783         (x86_movsicc_0_m1): Likewise.
14784         (*x86_movsicc_0_m1_se): Likewise.
14785         (*adddi_1_rex64): Emit add insn as much as possible.
14786         (*addsi_1): Likewise.
14787         (return_internal): Set atom_unit.
14788         (return_internal_long): Likewise.
14789         (return_pop_internal): Likewise.
14790         (*rcpsf2_sse): Set atom_sse_attr attr.
14791         (*qrt<mode>2_sse): Likewise.
14792         (*prefetch_sse): Likewise.
14793
14794         * config/i386/i386-c.c (ix86_target_macros_internal): New case
14795         PROCESSOR_ATOM.
14796         (ix86_target_macros_internal): Likewise.
14797
14798         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
14799         (*prefetch_sse_rex): Likewise.
14800         (sse_rcpv4sf2): Likewise.
14801         (sse_vmrcpv4sf2): Likewise.
14802         (sse_sqrtv4sf2): Likewise.
14803         (<sse>_vmsqrt<mode>2): Likewise.
14804         (sse_ldmxcsr): Likewise.
14805         (sse_stmxcsr): Likewise.
14806         (*sse_sfence): Likewise.
14807         (sse2_clflush): Likewise.
14808         (*sse2_mfence): Likewise.
14809         (*sse2_lfence): Likewise.
14810         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
14811         (<sse>_movup<ssemodesuffixf2c>): Likewise.
14812         (avx_movdqu<avxmodesuffix>): Likewise.
14813         (avx_lddqu<avxmodesuffix>): Likewise.
14814         (sse2_movntv2di): Change attr "type" to "ssemov".
14815         (sse2_movntsi): Likewise.
14816         (rsqrtv8sf2): Change attr "type" to "sseadd".
14817         (sse3_addsubv2df3): Set attr "atom_unit".
14818         (sse3_h<plusminus_insn>v4sf3): Likewise.
14819         (*sse2_pmaddwd): Likewise.
14820         (*vec_extractv2di_1_rex64): Likewise.
14821         (*vec_extractv2di_1_avx): Likewise.
14822         (sse2_psadbw): Likewise.
14823         (ssse3_phaddwv8hi3): Likewise.
14824         (ssse3_phaddwv4hi3): Likewise.
14825         (ssse3_phadddv4si3): Likewise.
14826         (ssse3_phadddv2si3): Likewise.
14827         (ssse3_phaddswv8hi3): Likewise.
14828         (ssse3_phaddswv4hi3): Likewise.
14829         (ssse3_phsubwv8hi3): Likewise.
14830         (ssse3_phsubwv4hi3): Likewise.
14831         (ssse3_phsubdv4si3): Likewise.
14832         (ssse3_phsubdv2si3): Likewise.
14833         (ssse3_phsubswv8hi3): Likewise.
14834         (ssse3_phsubswv4hi3): Likewise.
14835         (ssse3_pmaddubsw128): Likewise.
14836         (sse3_pmaddubsw: Likewise.
14837         (ssse3_palignrti): Likewise.
14838         (ssse3_palignrdi): Likewise.
14839
14840 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
14841
14842         * doc/install.texi (Specific): Fix two cross-references to MinGW.
14843
14844 2009-04-06  Richard Guenther  <rguenther@suse.de>
14845
14846         PR tree-optimization/28868
14847         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
14848         of which PHI results we inserted.
14849         (insert_into_preds_of_block): Record inserted PHIs.
14850         (eliminate): Eliminate redundant PHI nodes.
14851         (init_pre): Init inserted_phi_names.
14852
14853 2009-04-06  Richard Guenther  <rguenther@suse.de>
14854
14855         PR tree-optimization/39643
14856         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
14857         IMAGPART_EXPRs of complex constants.
14858         (execute_fold_all_builtins): If we folded a call queue
14859         TODO_update_address_taken.
14860
14861 2009-04-06  Jan Hubicka  <jh@suse.cz>
14862
14863         PR middle-end/39659
14864         * except.c (remove_unreachable_regions): Propagate may_contain_throw
14865         flag.
14866
14867 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
14868
14869         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
14870         delay slot.
14871         (ic_invalidate_array): Likewise.
14872
14873 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
14874
14875         * calls.c (emit_library_call_value_1): Fix a problem with parameter
14876         alignment for library calls.
14877
14878 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
14879
14880         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
14881         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
14882         * config/i386/mingw-stdint.h:  New file.
14883
14884 2009-04-05  Richard Guenther  <rguenther@suse.de>
14885
14886         PR tree-optimization/39648
14887         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
14888         our &A vs. &A[0] IL deficiencies.
14889
14890 2009-04-04  Jan Hubicka  <jh@suse.cz>
14891
14892         * except.c (sjlj_find_directly_reachable_regions): Be ready for
14893         removed toplevel regions.
14894         (sjlj_mark_call_sites): Likewise.
14895
14896 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
14897
14898         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
14899         (cygwin tm clause use_gcc_stdint):  Set to wrap.
14900         * config/i386/cygwin-stdint.h:  New file.
14901
14902 2009-04-04  Richard Guenther  <rguenther@suse.de>
14903
14904         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
14905         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
14906         single-argument PHIs if we are in loop-closed SSA form.
14907         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
14908         for the pre-condition.
14909         (slpeel_tree_peel_loop_to_edge): Likewise.
14910         (vect_build_loop_niters): Take an optional sequence to append stmts.
14911         (vect_generate_tmps_on_preheader): Likewise.
14912         (vect_do_peeling_for_loop_bound): Take extra guards for the
14913         pre-condition.
14914         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
14915         the cost model check.
14916         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
14917         guards if we are going to peel.  Do not apply versioning in that case.
14918         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
14919         (vect_do_peeling_for_loop_bound): Likewise.
14920         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
14921         loop bound only record extra pre-conditions, do not apply loop
14922         versioning.
14923
14924 2009-04-04  Richard Guenther  <rguenther@suse.de>
14925
14926         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
14927         renaming code.
14928
14929 2009-04-04  Jan Hubicka  <jh@suse.cz>
14930
14931         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
14932         last_basic_block for size of bb->index indexed array.
14933         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
14934         compute_out, link_btr_uses, build_btr_def_use_webs,
14935         build_btr_def_use_webs, migrate_btr_defs): Likewise.
14936
14937 2009-04-04  Jan Hubicka  <jh@suse.cz>
14938
14939         * except.c (remove_eh_handler_and_replace): Break out from ...
14940         (remove_eh_handler): ... here.
14941         (bring_to_root): New function.
14942         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
14943         handled ones, bring others to root of tree.
14944
14945 2009-04-04  Jan Hubicka  <jh@suse.cz>
14946
14947         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
14948         (all_phis_safe_to_merge): New function.
14949         (update_info): New structure.
14950         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
14951         (cleanup_empty_eh): Update SSA if possible.
14952
14953 2009-04-04  Richard Guenther  <rguenther@suse.de>
14954
14955         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
14956         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
14957         (append_vuse): Likewise.
14958
14959 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
14960
14961         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
14962         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
14963         instead of REG_UNSAVED for DW_CFA_undefined.
14964         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
14965         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
14966         outermost frame.
14967
14968 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
14969
14970         PR target/39501
14971         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
14972         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
14973         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
14974
14975 2009-04-04  Richard Guenther  <rguenther@suse.de>
14976
14977         PR tree-optimization/8781
14978         PR tree-optimization/37892
14979         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
14980         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
14981         (valueize_refs): Call it for *& valueizations.
14982         (shared_reference_ops_from_ref): Rename to ...
14983         (valueize_shared_reference_ops_from_ref): ... this and valueize.
14984         (shared_reference_ops_from_call): Rename to ...
14985         (valueize_shared_reference_ops_from_call): ... this and valueize.
14986         (vn_reference_lookup): Update.
14987         (visit_reference_op_call): Likewise.
14988         * tree-ssa-pre.c (phi_translate_1): Fold *&.
14989         (eliminate): Value-replace the call address in call statements.
14990
14991 2009-04-04  Richard Guenther  <rguenther@suse.de>
14992
14993         PR tree-optimization/39636
14994         * tree-ssa-forwprop.c
14995         (forward_propagate_addr_into_variable_array_index): Check for
14996         GIMPLE_ASSIGN before accessing the rhs code.
14997
14998 2009-04-03  Jason Merrill  <jason@redhat.com>
14999
15000         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
15001
15002 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
15003
15004         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
15005         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
15006         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
15007         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
15008         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
15009         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
15010         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
15011         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
15012         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
15013         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
15014         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
15015         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
15016         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
15017         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
15018         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
15019         Use fr_reg_or_fp01_operand instead of fr_register_operand
15020
15021         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
15022         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
15023         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
15024
15025 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
15026
15027         PR rtl-optimization/39607
15028         PR rtl-optimization/39631
15029
15030         Revert:
15031
15032         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
15033         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
15034         instead of DF_LR_OUT.
15035         * ira-lives.c (process_bb_node_lives): Ditto.
15036         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
15037         instead of DF_LR_{OUT,IN}.
15038         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
15039         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
15040
15041 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
15042
15043         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
15044         (execute_lower_omp): Always run but take the short way out if -fopenmp
15045         is not given.
15046         (gate_lower_omp): Remove, forcing the pass manager to always run the
15047         pass and always set PROP_gimple_lomp.
15048         (pass_lower_omp): Remove gate function.
15049         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
15050         PROP_trees.  Instead, require it.
15051         * ipa-cp.c (pass_ipa_cp): Likewise.
15052         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
15053         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
15054         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
15055         and PROP_gimple_leh.
15056
15057 2009-04-03  Richard Guenther  <rguenther@suse.de>
15058
15059         PR middle-end/13146
15060         PR tree-optimization/23940
15061         PR tree-optimization/33237
15062         PR middle-end/33974
15063         PR middle-end/34093
15064         PR tree-optimization/36201
15065         PR tree-optimization/36230
15066         PR tree-optimization/38049
15067         PR tree-optimization/38207
15068         PR tree-optimization/38230
15069         PR tree-optimization/38301
15070         PR tree-optimization/38585
15071         PR middle-end/38895
15072         PR tree-optimization/38985
15073         PR tree-optimization/39299
15074         * tree-ssa-structalias.h: Remove.
15075         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
15076         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
15077         (struct vuse_element_d): Remove.
15078         (struct vuse_vec_d): Likewise.
15079         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
15080         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
15081         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
15082         VUSE_ELEMENT_VAR): Likewise.
15083         (struct voptype_d): Likewise.
15084         (NUM_VOP_FREE_BUCKETS): Likewise.
15085         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
15086         (struct stmt_operands_d): Remove.
15087         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
15088         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
15089         VDEF_NUM, VDEF_VECT): Likewise.
15090         (copy_virtual_operands): Remove.
15091         (operand_build_cmp): Likewise.
15092         (create_ssa_artificial_load_stmt): Likewise.
15093         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
15094         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
15095         vuse_index and mayuse_index members.  Pack and move done and iter_type
15096         members to the front.
15097         (SSA_OP_VMAYUSE): Remove.
15098         (SSA_OP_VIRTUAL_USES): Adjust.
15099         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
15100         (unlink_stmt_vdef): Declare.
15101         (add_to_addressable_set): Remove.
15102         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
15103         (vrp_visit_stmt): Likewise.
15104         * doc/tree-ssa.texi (Alias analysis): Update.
15105         * doc/invoke.texi (max-aliased-vops): Remove docs.
15106         (avg-aliased-vops): Likewise.
15107         * tree-into-ssa.c (syms_to_rename): Remove.
15108         (need_to_update_vops_p): Likewise.
15109         (need_to_initialize_update_ssa_p): Rename to ...
15110         (update_ssa_initialized_fn): ... this.  Track function we are
15111         initialized for.
15112         (symbol_marked_for_renaming): Simplify.
15113         (add_new_name_mapping): Do not set need_to_update_vops_p.
15114         (dump_currdefs): Use SYMS_TO_RENAME.
15115         (rewrite_update_stmt): Always walk all uses/defs.
15116         (dump_update_ssa): Adjust.
15117         (init_update_ssa): Take function argument.  Track what we are
15118         initialized for.
15119         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
15120         (create_new_def_for): Initialize for cfun, assert we are initialized
15121         for cfun.
15122         (mark_sym_for_renaming): Simplify.
15123         (mark_set_for_renaming): Do not initialize update-ssa.
15124         (need_ssa_update_p): Simplify.  Take function argument.
15125         (name_mappings_registered_p): Assert we ask for the correct function.
15126         (name_registered_for_update_p): Likewise.
15127         (ssa_names_to_replace): Likewise.
15128         (release_ssa_name_after_update_ssa): Likewise.
15129         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
15130         (dump_decl_set): Do not print a newline.
15131         (debug_decl_set): Do it here.
15132         (dump_update_ssa): And here.
15133         * tree-ssa-loop-im.c (move_computations): Adjust.
15134         (movement_possibility): Likewise.
15135         (determine_max_movement): Likewise.
15136         (gather_mem_refs_stmt): Likewise.
15137         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
15138         or NAME_MEMORY_TAG.
15139         * tree-complex.c (update_all_vops): Remove.
15140         (expand_complex_move): Adjust.
15141         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
15142         Simplify test for memory referencing statement.  Exclude
15143         non-invariant ADDR_EXPRs.
15144         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
15145         * tree-loop-distribution.c (generate_memset_zero): Adjust.
15146         (rdg_flag_uses): Likewise.
15147         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
15148         related code.
15149         (tree_optimize_tail_calls_1): Also split the
15150         edge from the entry block if we have degenerate PHI nodes in
15151         the first basic block.
15152         * tree.c (init_ttree): Remove memory-tag related code.
15153         (tree_code_size): Likewise.
15154         (tree_node_structure): Likewise.
15155         (build7_stat): Re-write to be build6_stat.
15156         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
15157         (SSA_VAR_P): Adjust.
15158         (struct tree_memory_tag): Remove.
15159         (struct tree_memory_partition_tag): Likewise.
15160         (union tree_node): Adjust.
15161         (build7): Re-write to be build6.
15162         * tree-pass.h (pass_reset_cc_flags): Remove.
15163         (TODO_update_address_taken): New flag.
15164         (pass_simple_dse): Remove.
15165         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
15166         * params.h (MAX_ALIASED_VOPS): Remove.
15167         (AVG_ALIASED_VOPS): Likewise.
15168         * omp-low.c (expand_omp_taskreg): Update SSA form.
15169         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
15170         aliases the lhs in a copy stmt.
15171         * tree-ssa-dse.c (struct address_walk_data): Remove.
15172         (memory_ssa_name_same): Likewise.
15173         (memory_address_same): Likewise.
15174         (get_kill_of_stmt_lhs): Likewise.
15175         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
15176         unused stores.  Look through PHI nodes into post-dominated regions.
15177         (dse_optimize_stmt): Simplify.  Properly remove stores.
15178         (tree_ssa_dse): Compute dominators.
15179         (execute_simple_dse): Remove.
15180         (pass_simple_dse): Likewise.
15181         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
15182         gimple_loaded_syms and gimple_stored_syms computation.
15183         * toplev.c (dump_memory_report): Dump alias and pta stats.
15184         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
15185         (vn_reference_eq): Likewise.
15186         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
15187         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
15188         valueize_vuses): Remove.
15189         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
15190         (get_def_ref_stmt_vuse): ... this.
15191         (vn_reference_lookup_2): New function.
15192         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
15193         walking equivalent vuses.  Simplify.
15194         (vn_reference_lookup): Likewise.
15195         (vn_reference_insert): Likewise.
15196         (vn_reference_insert_pieces): Likewise.
15197         (visit_reference_op_call): Simplify.
15198         (visit_reference_op_load): Likewise.
15199         (visit_reference_op_store): Likewise.
15200         (init_scc_vn): Remove shared_lookup_vuses initialization.
15201         (free_scc_vn): Remove shared_lookup_vuses freeing.
15202         (sort_vuses, sort_vuses_heap): Remove.
15203         (get_ref_from_reference_ops): Export.
15204         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
15205         vector with single vuse pointer.
15206         (vn_reference_lookup_pieces, vn_reference_lookup,
15207         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
15208         (shared_vuses_from_stmt): Remove.
15209         (get_ref_from_reference_ops): Declare.
15210         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
15211         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
15212         memory-tag related code.
15213         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
15214         (likely_value): Add comment, skip static-chain of call statements.
15215         (surely_varying_stmt_p): Adjust.
15216         (gimplify_and_update_call_from_tree): Likewise.
15217         (execute_fold_all_builtins): Do not rebuild alias info.
15218         (gimplify_and_update_call_from_tree): Properly update VOPs.
15219         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
15220         (copy_ref_info): Remove memory-tag related code.
15221         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
15222         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
15223         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
15224         computation.
15225         * tree-ssa-dom.c (gimple_p): Remove typedef.
15226         (eliminate_redundant_computations): Adjust.
15227         (record_equivalences_from_stmt): Likewise.
15228         (avail_expr_hash): Likewise.
15229         (avail_expr_eq): Likewise.
15230         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
15231         (stmt_makes_single_load): Likewise.
15232         (stmt_makes_single_store): Likewise.
15233         * tree-ssa-alias.c: Rewrite completely.
15234         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
15235         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
15236         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
15237         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
15238         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
15239         Remove public functions.
15240         (pass_reset_cc_flags): Remove.
15241         (pass_build_alias): Move ...
15242         * tree-ssa-structalias.c (pass_build_alias): ... here.
15243         * tree-ssa-alias.c (may_be_aliased): Move ...
15244         * tree-flow-inline.h (may_be_aliased): ... here.
15245         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
15246         count_uses_and_derefs): Move ...
15247         * gimple.c: ... here.
15248         * gimple.h (count_uses_and_derefs): Declare.
15249         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
15250         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
15251         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
15252         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
15253         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
15254         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
15255         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
15256         New functions.
15257         * tree-dfa.c (refs_may_alias_p): Move ...
15258         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
15259         * tree-ssa-alias.h: New file.
15260         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
15261         (statement_sink_location): Likewise.
15262         * opts.c (decode_options): Do not adjust max-aliased-vops or
15263         avg-aliased-vops values.
15264         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
15265         (TV_CALL_CLOBBER): Likewise.
15266         (TV_FLOW_SENSITIVE): Likewise.
15267         (TV_FLOW_INSENSITIVE): Likewise.
15268         (TV_MEMORY_PARTITIONING): Likewise.
15269         (TV_ALIAS_STMT_WALK): New timevar.
15270         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
15271         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
15272         (get_address_description): Remove memory-tag related code.
15273         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
15274         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
15275         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
15276         and immediate uses in statements.  Document.
15277         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
15278         (dump_symbols): Remove.
15279         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
15280         * alias.c (get_deref_alias_set): New function split out from ...
15281         (get_alias_set): ... here.
15282         * alias.h (get_deref_alias_set): Declare.
15283         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
15284         type parameter.  Remove restrict pointer handling.  Create a
15285         ref-all pointer in case type-based alias sets do not conflict.
15286         (vect_analyze_data_refs): Remove SMT related code.
15287         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
15288         (vectorizable_load): Likewise.
15289         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
15290         (DR_SYMBOL_TAG, DR_VOPS): Remove.
15291         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
15292         Ignore vops and SMTs.
15293         (dr_analyze_alias): Likewise..
15294         (free_data_ref): Likewise.
15295         (create_data_ref): Likewise.
15296         (analyze_all_data_dependences): Likewise.
15297         (get_references_in_stmt): Adjust.
15298         * tree-flow-inline.h (gimple_aliases_computed_p,
15299         gimple_addressable_vars, gimple_call_clobbered_vars,
15300         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
15301         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
15302         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
15303         gimple_mem_ref_stats): Remove.
15304         (gimple_vop): New function.
15305         (op_iter_next_use): Remove vuses and mayuses cases.
15306         (op_iter_next_def): Remove vdefs case.
15307         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
15308         (clear_and_done_ssa_iter): Do not set removed fields.
15309         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
15310         Assert we are not iterating over vuses or vdefs if not also
15311         iterating over uses or defs.
15312         (op_iter_init_use): Likewise.
15313         (op_iter_init_def): Likewise.
15314         (op_iter_next_vdef): Remove.
15315         (op_iter_next_mustdef): Likewise.
15316         (op_iter_init_vdef): Likewise.
15317         (compare_ssa_operands_equal): Likewise.
15318         (link_use_stmts_after): Handle vuse operand.
15319         (is_call_used): Use is_call_clobbered.
15320         (is_call_clobbered): Global variables are always call clobbered,
15321         query the call-clobbers bitmap.
15322         (mark_call_clobbered): Ignore global variables.
15323         (clear_call_clobbered): Likewise.
15324         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
15325         virtual operands sanity check.
15326         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
15327         Remove.
15328         (TARGET_MEM_REF): Remove TMR_TAG operand.
15329         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
15330         Remove call-clobber related code.
15331         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
15332         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
15333         partitions or escape reason.
15334         (get_single_def_stmt, get_single_def_stmt_from_phi,
15335         get_single_def_stmt_with_phi): Remove.
15336         (dump_referenced_vars): Tidy.
15337         (get_ref_base_and_extent): Allow bare decls.
15338         (collect_dfa_stats): Adjust.
15339         * graphite.c (rename_variables_in_stmt): Adjust.
15340         (graphite_copy_stmts_from_block): Likewise.
15341         (translate_clast): Likewise.
15342         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
15343         (EXPR_DIES): New.
15344         (translate_vuse_through_block): Use the oracle.
15345         (phi_translate_1): Adjust.
15346         (value_dies_in_block_x): Use the oracle.  Cache the outcome
15347         in EXPR_DIES.
15348         (valid_in_sets): Check if the VUSE for
15349         a REFERENCE is available.
15350         (eliminate): Do not remove stmts during elimination,
15351         instead queue and remove them afterwards.
15352         (do_pre): Do not rebuild alias info.
15353         (pass_pre): Run TODO_rebuild_alias before PRE.
15354         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
15355         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
15356         (mark_all_v_defs_stmt): Remove.
15357         (mark_all_v_defs_seq): Adjust.
15358         (sra_replace): Likewise.
15359         (scalarize_use): Likewise.
15360         (scalarize_copy): Likewise.
15361         (scalarize_init): Likewise.
15362         (scalarize_ldst): Likewise.
15363         (todoflags): Remove.
15364         (tree_sra): Do not rebuild alias info.
15365         (tree_sra_early): Adjust.
15366         (pass_sra): Run TODO_update_address_taken before SRA.
15367         * tree-predcom.c (set_alias_info): Remove.
15368         (prepare_initializers_chain): Do not call it.
15369         (mark_virtual_ops_for_renaming): Adjust.
15370         (mark_virtual_ops_for_renaming_list): Remove.
15371         (initialize_root_vars): Adjust.
15372         (initialize_root_vars_lm): Likewise.
15373         (prepare_initializers_chain): Likewise.
15374         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
15375         (may_propagate_copy_into_stmt): Likewise.
15376         (merge_alias_info): Do nothing for now.
15377         (propagate_tree_value_into_stmt): Adjust.
15378         (stmt_may_generate_copy): Likewise.
15379         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
15380         not mark symbols for renaming.
15381         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
15382         with the same statement, make sure to update the new pointed-to one.
15383         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
15384         call statements, do not mark symbols for renaming.
15385         (mark_operand_necessary): Dump something.
15386         (ref_may_be_aliased): New function.
15387         (mark_aliased_reaching_defs_necessary_1): New helper function.
15388         (mark_aliased_reaching_defs_necessary): Likewise.
15389         (mark_all_reaching_defs_necessary_1): Likewise.
15390         (mark_all_reaching_defs_necessary): Likewise.
15391         (propagate_necessity): Do not process virtual PHIs.  For
15392         non-aliased loads mark all reaching definitions as necessary.
15393         For aliased loads and stores mark the immediate dominating
15394         aliased clobbers as necessary.
15395         (visited): New global static.
15396         (perform_tree_ssa_dce): Free visited bitmap after propagating
15397         necessity.
15398         (remove_dead_phis): Perform simple dead virtual PHI removal.
15399         (remove_dead_stmt): Properly unlink virtual operands when
15400         removing stores.
15401         (eliminate_unnecessary_stmts): Schedule PHI removal after
15402         stmt removal.
15403         * tree-ssa-ter.c (is_replaceable_p): Adjust.
15404         (process_replaceable): Likewise.
15405         (find_replaceable_in_bb): Likewise.
15406         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
15407         based on the single gimple vop.
15408         (verify_flow_insensitive_alias_info): Remove.
15409         (verify_flow_sensitive_alias_info): Likewise.
15410         (verify_call_clobbering): Likewise.
15411         (verify_memory_partitions): Likewise.
15412         (verify_alias_info): Likewise.
15413         (verify_ssa): Adjust..
15414         (execute_update_addresses_taken): Export.  Update SSA
15415         manually.  Optimize only when optimizing.  Use a local bitmap.
15416         (pass_update_address_taken): Remove TODO_update_ssa, add
15417         TODO_dump_func.
15418         (pass_update_address_taken): Just use TODO_update_address_taken.
15419         (init_tree_ssa): Do not initialize addressable_vars.
15420         (verify_ssa): Verify new VUSE / VDEF properties.
15421         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
15422         Do not call verify_alias_info.
15423         (delete_tree_ssa): Clear the VUSE, VDEF operands.
15424         Do not free the loaded and stored syms bitmaps.  Reset the escaped
15425         and callused solutions.  Do not free addressable_vars.
15426         Remove memory-tag related code.
15427         (warn_uninitialized_var): Aliases are always available.
15428         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
15429         * lambda-code.c (can_put_in_inner_loop): Adjust.
15430         (can_put_after_inner_loop): Likewise.
15431         (perfect_nestify): Likewise.
15432         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
15433         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
15434         (vectorizable_conversion): Do not mark symbols for renaming.
15435         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
15436         (expand_call_inline): Unlink the calls virtual operands before
15437         replacing it.
15438         (tree_function_versioning): Do not call update_ssa if we are not
15439         updating clones.  Simplify.
15440         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
15441         (propagate_with_phi): Likewise..
15442         * tree-outof-ssa.c (create_temp): Remove memory tag and call
15443         clobber code.  Assert we are not aliased or global.
15444         * tree-flow.h: Include tree-ssa-alias.h
15445         (enum escape_type): Remove.
15446         (struct mem_sym_stats_d): Likewise.
15447         (struct mem_ref_stats_d): Likewise.
15448         (struct gimple_df): Add vop member.  Remove global_var,
15449         call_clobbered_vars, call_used_vars, addressable_vars,
15450         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
15451         escaped and callused members.
15452         (struct ptr_info_def): Remove all members, add points-to solution
15453         member pt.
15454         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
15455         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
15456         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
15457         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
15458         (tree-ssa-alias.o): Likewise.
15459         (toplev.o): Add tree-ssa-alias.h
15460         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
15461         * gimple.c (gimple_set_bb): Fix off-by-one error.
15462         (is_gimple_reg): Do not handle memory tags.
15463         (gimple_copy): Also copy virtual operands.
15464         Delay updating the statement.  Do not reset loaded and stored syms.
15465         (gimple_set_stored_syms): Remove.
15466         (gimple_set_loaded_syms): Likewise.
15467         (gimple_call_copy_skip_args): Copy the virtual operands
15468         and mark the new statement modified.
15469         * tree-ssa-structalias.c (may_alias_p): Remove.
15470         (set_uids_in_ptset): Take the alias set to prune with as
15471         parameter.  Fold in the alias test of may_alias_p.
15472         (compute_points_to_sets): Compute whether a ptr is dereferenced
15473         in a local sbitmap.
15474         (process_constraint): Deal with &ANYTHING on the lhs, reject all
15475         other ADDRESSOF constraints on the lhs.
15476         (get_constraint_for_component_ref): Assert that we don't get
15477         ADDRESSOF constraints from the base of the reference.
15478         Properly generate UNKNOWN_OFFSET for DEREF if needed.
15479         (struct variable_info): Remove collapsed_to member.
15480         (get_varinfo_fc): Remove.
15481         (new_var_info): Do not set collapsed_to.
15482         (dump_constraint): Do not follow cycles.
15483         (dump_constraint_graph): Likewise.
15484         (build_pred_graph): Likewise.
15485         (build_succ_graph): Likewise.
15486         (rewrite_constraints): Likewise.
15487         (do_simple_structure_copy): Remove.
15488         (do_rhs_deref_structure_copy): Remove.
15489         (do_lhs_deref_structure_copy): Remove.
15490         (collapse_rest_of_var): Remove.
15491         (do_structure_copy): Re-implement.
15492         (pta_stats): New global variable.
15493         (dump_pta_stats): New function.
15494         (struct constraint_expr): Make offset signed.
15495         (UNKNOWN_OFFSET): Define special value.
15496         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
15497         (solution_set_expand): New helper function split out from ...
15498         (do_sd_constraint): ... here.
15499         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
15500         (do_ds_constraint): Likewise.
15501         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
15502         and CALLUSED = *CALLUSED.
15503         (set_union_with_increment): Make inc argument signed.
15504         (type_safe): Remove.
15505         (get_constraint_for_ptr_offset): Handle unknown and negative
15506         constant offsets.
15507         (first_vi_for_offset): Handle offsets before start.  Bail
15508         out early for offsets beyond the variable extent.
15509         (first_or_preceding_vi_for_offset): New function.
15510         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
15511         Together with ESCAPED = *ESCAPED this properly computes reachability.
15512         (find_what_var_points_to): New function.
15513         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
15514         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
15515         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
15516         pt_solutions_intersect): New functions.
15517         (compute_call_used_vars): Remove.
15518         (compute_may_aliases): New main entry into PTA computation.
15519         * gimple.h (gimple_p): New typedef.
15520         (struct gimple_statement_base): Remove references_memory_p.
15521         (struct gimple_statement_with_memory_ops_base): Remove
15522         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
15523         members.
15524         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
15525         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
15526         gimple_set_references_memory): Remove.
15527         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
15528         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
15529         New functions.
15530         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
15531         (verify_expr): Allow RESULT_DECL.
15532         (gimple_duplicate_bb): Do not copy virtual operands.
15533         (gimple_duplicate_sese_region): Adjust.
15534         (gimple_duplicate_sese_tail): Likewise.
15535         (mark_virtual_ops_in_region): Remove.
15536         (move_sese_region_to_fn): Do not call it.
15537         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
15538         and pass_simple_dse.
15539         (execute_function_todo): Handle TODO_update_address_taken,
15540         call execute_update_addresses_taken for TODO_rebuild_alias.
15541         (execute_todo): Adjust.
15542         (execute_one_pass): Init dump files early.
15543         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
15544         call-clobbered.
15545         (create_general_new_stmt): Clear vops.
15546         * tree-ssa-reassoc.c (get_rank): Adjust.
15547         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
15548         symbols for renaming.
15549         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
15550         (PARAM_AVG_ALIASED_VOPS): Likewise.
15551         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
15552         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
15553         * tree-ssa-operands.c: Simplify for new virtual operand representation.
15554         (operand_build_cmp, copy_virtual_operands,
15555         create_ssa_artificial_load_stmt, add_to_addressable_set,
15556         gimple_add_to_addresses_taken): Remove public functions.
15557         (unlink_stmt_vdef): New function.
15558
15559 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
15560
15561         * config.gcc (powerpc-*-linux*): Merge variants.
15562
15563 2009-04-02  Chao-ying Fu  <fu@mips.com>
15564             James Grosbach  <james.grosbach@microchip.com>
15565
15566         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
15567         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
15568         cop0_sp_offset.
15569         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
15570         keep_interrupts_masked_p, use_debug_exception_return_p.
15571         (mips_attribute_table): Add interrupt, use_shadow_register_set,
15572         keep_interrupts_masked, use_debug_exception_return.
15573         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
15574         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
15575         New functions.
15576         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
15577         (mips_print_operand): Process COP0 registers to print $0 .. $31
15578         correctly for GAS to process.
15579         (mips_interrupt_extra_call_saved_reg_p): New function.
15580         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
15581         extra registers.
15582         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
15583         (mips_compute_frame_info): Add supports for interrupt context that
15584         includes doubleword accumulators and COP0 registers.
15585         (mips_for_each_saved_acc): New function.
15586         (mips_for_each_saved_gpr_and_fpr): Change the function name from
15587         mips_for_each_saved_reg.
15588         (mips_save_reg): Save accumulators.
15589         (mips_kernel_reg_p): A new for_each_rtx callback.
15590         (mips_expand_prologue): Support interrupt handlers.
15591         (mips_restore_reg): Restore accumulators.
15592         (mips_expand_epilogue): Support interrupt handlers.
15593         (mips_can_use_return_insn): Return false for interrupt handlers.
15594         (mips_epilogue_uses): New function.
15595         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
15596         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
15597         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
15598         cop0_move): New instructions.
15599         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
15600         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
15601         defines.
15602         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
15603         New defines.
15604         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
15605         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
15606         interrupt handlers, we use K0 as the temporary register.
15607         (EPILOGUE_USES): Change to a function call.
15608         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
15609         handlers, we use K0 as the temporary register.
15610
15611         * doc/extend.texi (Function Attributes): Document interrupt,
15612         use_shadow_register_set, keep_interrupts_masked,
15613         use_debug_exception_return for MIPS attributes.
15614
15615 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
15616
15617         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
15618         Remove a number of t-files from tmake_file.
15619         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
15620         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
15621         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
15622         target_prototype, not TARGET_PROTOTYPE.
15623         (LINK_OS_GNU_SPEC): Define.
15624         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
15625         and darwin-ldoubdle.c.
15626
15627 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
15628
15629         PR driver/39293
15630         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
15631         (cpp_options): Ditto.
15632         (default_compilers): Ditto.
15633         (display_help): Ditto.
15634         (process_command): Ditto.
15635         (do_spec_1): Ditto.
15636         (set_input): Use lbasename instead of duplicate code.
15637         (save_temps_prefix): New static for -save-temps=obj.
15638         (save_temps_length): Ditto.
15639
15640         * doc/invoke.texi (-save-temps=obj): Document new variant to
15641         -save-temps switch.
15642
15643 2009-04-02  Jeff Law  <law@redhat.com>
15644
15645         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
15646         variable.
15647
15648 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
15649
15650         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
15651         * configure: Regenerated.
15652
15653 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
15654
15655         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
15656         share the argument list.
15657
15658 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
15659
15660         Merge
15661
15662         2009-02-12  Diego Novillo  <dnovillo@google.com>
15663
15664         * varpool.c (debug_varpool): New.
15665         * cgraph.h (debug_varpool): Declare.
15666
15667 2009-04-02  Jan Hubicka  <jh@suse.cz>
15668
15669         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
15670         pass.
15671
15672 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
15673
15674         * config/i386/i386.c (ix86_abi): Move initialization to ...
15675         (override_options): Here.
15676
15677 2009-04-02  Christian Bruel  <christian.bruel@st.com>
15678
15679         * config/sh/sh.c (sh_dwarf_register_span): New function.
15680         (TARGET_DWARF_REGISTER_SPAN): Define.
15681         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
15682
15683 2009-04-02  Ira Rosen  <irar@il.ibm.com>
15684
15685         PR tree-optimization/39595
15686         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
15687         interleaved loads group is not  greater than the SLP group size.
15688
15689 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
15690
15691         * builtins.c (is_builtin_name): New.
15692         (called_as_built_in): Use is_builtin_name.
15693         * tree.h (is_builtin_name): New.
15694         * varasm.c (incorporeal_function_p): Use is_builtin_name
15695
15696 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
15697
15698         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
15699
15700 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
15701
15702         PR c++/26693
15703         * c-decl.c (clone_underlying_type): Move this ...
15704         * c-common.c (set_underlying_type): ... here.
15705         Also, make sure the function properly sets TYPE_STUB_DECL() on
15706         the newly created typedef variant type.
15707         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
15708         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
15709         points.
15710
15711 2009-04-02  Richard Guenther  <rguenther@suse.de>
15712
15713         PR tree-optimization/37221
15714         * tree-flow.h (degenerate_phi_result): Declare.
15715         * tree-ssa-dom.c (degenerate_phi_result): Export.
15716         * tree-scalar-evolution.c (analyze_initial_condition): If
15717         the initial condition is defined by a degenerate PHI node
15718         use the degenerate value.
15719
15720 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
15721
15722         PR rtl-optimization/39588
15723         * combine.c (merge_outer_ops): Do not set the constant when this
15724         is not necessary.
15725         (simplify_shift_const_1): Do not modify it either in this case.
15726
15727 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
15728
15729         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
15730         tuning is deprecated if -mtune value is set to an Itanium1 variant.
15731
15732 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
15733
15734         PR c/29027
15735         * c-lex.c (interpret_float): Default (no suffix) is double.
15736
15737 2009-04-1  Xinliang David Li  <davidxl@google.com>
15738
15739         * config/i386/i386.c (legitimate_constant_p): Recognize
15740         all one vector constant.
15741
15742 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15743
15744         * config/vax/vax.c: Add #includes to silence warnings.
15745         Change #include order to silence two warnings.
15746
15747 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15748
15749         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
15750         (ASM_SPEC): Pass -k to the assembler for PIC code.
15751
15752 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15753
15754         * config.gcc: Add vax-*-linux* to the switch.
15755         * config/vax/linux.h: New file. (TARGET_VERSION,
15756         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
15757
15758 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15759
15760         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
15761         Use predicate macros instead of GET_CODE() == foo.
15762         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
15763         ashlsi3, rotrsi3, <unnamed>): Likewise.
15764
15765 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15766
15767         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
15768         jbbccihi, jbbccisi): Remova trailing whitespace.
15769         * config/vax/constraints.md: Likewise.
15770         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
15771         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
15772         * config/vax/predicates.md: Likewise.
15773         * config/vax/vax.c (print_operand_address, vax_output_int_move,
15774         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
15775         * config/vax/vax.h: Likewise.
15776         * config/vax/vax.md (nonlocal_goto): Likewise.
15777
15778 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15779
15780         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
15781         (indirectable_address_p, adjacent_operands_p): Add spaces around
15782         braces.
15783         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
15784
15785 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15786
15787         * config/vax/vax.c (legitimate_constant_address_p,
15788         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
15789         index_term_p, reg_plus_index_p, legitimate_address_p,
15790         vax_mode_dependent_address_p): Update comments to match functions
15791         modified by the recent int->bool conversion.
15792
15793 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15794
15795         * config/vax/builtins.md: Update copyright message.
15796         * config/vax/constraints.md: Likewise.
15797         * config/vax/netbsd-elf.h: Likewise.
15798         * config/vax/predicates.md: Likewise.
15799         * config/vax/vax-protos.h: Likewise.
15800         * config/vax/vax.c: Likewise.
15801         * config/vax/vax.h: Likewise.
15802         * config/vax/vax.md: Likewise.
15803         * config/vax/vax.opt: Likewise.
15804
15805 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
15806
15807         * config/vax/builtins.md (ffssi2, ffssi2_internal,
15808         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
15809         * config/vax/constraints.md (B, R): Likewise.
15810         * config/vax/predicates.md (external_memory_operand,
15811         nonimmediate_addsub_di_operand): Likewise.
15812         * config/vax/vax.c (vax_output_int_add): Likewise.
15813         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
15814         untyped_call): Likewise.
15815
15816 2009-04-01  Matt Thomas  <matt@3am-software.com>
15817
15818         * config/vax/predicates.md: New file.
15819         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
15820         external_const_operand, nonsymbolic_operand, external_memory_operand,
15821         indirect_memory_operand, indexed_memory_operand,
15822         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
15823         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
15824         predicate.
15825         * config/vax/constraints.md: New file.
15826         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
15827         New constraint.
15828         * config/vax/builtins.md: New file.
15829         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
15830         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
15831         jbbccisi): Define.
15832         * config/vax/vax.opt (mqmath): Add option.
15833         * config/vax/vax.md (isfx): Extend with DI.
15834         (VAXintQH, VAXintQHSD): Define.
15835         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
15836         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
15837         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
15838         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
15839         (movdi): Update constraints and use vax_output_int_move().
15840         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
15841         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
15842         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
15843         nonlocal_goto): New.
15844         (mov<mode>): Extend accepted operand types.
15845         (subdi3_old): Rename from subdi3, change update constraints and use
15846         a new implementation.
15847         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
15848         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
15849         MOVE_RATIO, CLEAR_RATIO): Define.
15850         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
15851         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
15852         (PRINT_OPERAND): Redefine using a function instead of inlined code.
15853         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
15854         (split_quadword_operands): Make static and really allow variable
15855         splitting.
15856         (print_operand_address): Update for PIC generation.
15857         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
15858         indexable_address_p, fixup_mathdi_operand,
15859         vax_expand_addsub_di_operands, adjacent_operands_p): New.
15860         (vax_float_literal, legitimate_constant_p,
15861         indirectable_constant_address_p, index_term_p,
15862         reg_plus_index_p): Return bool instead of int.
15863         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
15864         where needed.
15865         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
15866         generation.
15867         (vax_output_conditional_branch): Indent.
15868         (legitimate_constant_address_p, indirectable_constant_address_p,
15869         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
15870         vax_mode_dependent_address_p): Return bool instead of int, update for
15871         PIC generation.
15872         * config/vax/vax-protos.h (legitimate_constant_address_p,
15873         legitimate_constant_p, legitimate_address_p,
15874         vax_mode_dependent_address_p): Change declaration to bool.
15875         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
15876         vax_expand_addsub_di_operands, vax_output_int_subtract,
15877         vax_output_movmemsi): Declare.
15878         (split_quadword_operands, vax_float_literal): Delete declaration.
15879         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
15880         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
15881         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
15882         ASM_OUTPUT_DWARF_PCREL): Define.
15883         (ASM_SPEC): Change definition to allow PIC generation.
15884
15885 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
15886
15887         * doc/sourcebuild.texi: Update front-end requirements.
15888
15889 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
15890
15891         PR target/39226
15892         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
15893         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
15894         (booldi3_internal3): Use boolean_or_operator instead of
15895         boolean_operator.
15896
15897 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
15898
15899         PR c/39605
15900         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
15901         declarator whose size is not an integer constant expression but
15902         folds to an integer constant, then treat it as a constant
15903         subsequently.
15904
15905 2009-04-01  Richard Guenther  <rguenther@suse.de>
15906
15907         * fold-const.c (fold_plusminus_mult_expr): Do not fold
15908         i * 4 + 2 to (i * 2 + 1) * 2.
15909
15910 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
15911
15912         PR c/37772
15913         * c-parser.c (c_parser_asm_statement): Skip until close paren and
15914         return if c_parser_asm_string_literal returned NULL.
15915
15916 2009-04-01  Nick Clifton  <nickc@redhat.com>
15917
15918         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
15919         already defined.
15920         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
15921         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
15922         other typedefs to avoid conflicts with libgcc2.c.  Define labels
15923         to gain 16-bit bit-manipulation functions from libgcc2.c and then
15924         include it.
15925         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
15926         to gain 16-bit trapping arithmetic functions from libgcc2.c and
15927         then include it.
15928
15929 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
15930
15931         * varasm.c (default_function_rodata_section): Declare DOT as
15932         const char*.
15933
15934 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
15935             Andrey Galkin  <agalkin@hypercom.com>
15936
15937         PR/39492
15938         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
15939         Make object_name unique for each process.
15940
15941 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
15942
15943         PR other/39591
15944         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
15945         addressable variables in the parallel that could go out of scope while
15946         running queued tasks.
15947
15948 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
15949
15950         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
15951         (CASE_VALUES_THRESHOLD): Redefine.
15952         * config/avr/avr.c (avr_override_options): Remove initialization of
15953         avr_case_values_threshold variable.
15954         (avr_case_values_threshold): Remove variable. Add new function.
15955         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
15956         * config/avr/avr.opt (mno-tablejump): Remove option.
15957         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
15958
15959 2009-04-01  DJ Delorie  <dj@redhat.com>
15960
15961         * varasm.c (default_function_rodata_section): Don't assume
15962         anything about where the first '.' in the section name is.
15963
15964 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
15965
15966         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
15967         rs6000_emit_stack_tie.
15968
15969 2009-03-31  Ian Lance Taylor  <iant@google.com>
15970
15971         * tree-eh.c (tree_remove_unreachable_handlers): Compare
15972         gimple_code with GIMPLE_RESX, not RESX.
15973
15974 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
15975
15976         * c-common.c (c_get_ident): New.
15977         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
15978
15979 2009-04-01  Ben Elliston  <bje@au.ibm.com>
15980
15981         * config/rs6000/sysv4.opt (msdata): Improve option description.
15982
15983 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
15984
15985         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
15986         (divdf3_internal_lat): Remove.
15987         (divxf3_internal_lat): Remove.
15988         (divxf3_internal_thr): Remove.
15989         (divxf): Use divxf3_internal.
15990         * config/ia64/div.md (divsf3_internal_lat): New.
15991         (divdf3_internal_lat): New.
15992         (divxf3_internal): New.
15993
15994 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
15995
15996         PR c/448
15997         * Makefile.in (USE_GCC_STDINT): Define.
15998         (stmp-int-hdrs): Install stdint.h if applicable.
15999         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
16000         if known.
16001         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
16002         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
16003         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
16004         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
16005         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
16006         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
16007         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
16008         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
16009         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
16010         (c_common_nodes_and_builtins): Initialize
16011         underlying_wchar_type_node.  Do not initialize
16012         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
16013         nodes for new types.
16014         (c_stddef_cpp_builtins): Define macros for new types.
16015         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
16016         Remove.
16017         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
16018         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
16019         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
16020         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
16021         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
16022         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
16023         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
16024         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
16025         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
16026         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
16027         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
16028         int16_type_node, int32_type_node, int64_type_node,
16029         uint8_type_node, uint16_type_node, c_uint32_type_node,
16030         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
16031         int_least32_type_node, int_least64_type_node,
16032         uint_least8_type_node, uint_least16_type_node,
16033         uint_least32_type_node, uint_least64_type_node,
16034         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
16035         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
16036         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
16037         uintptr_type_node): Define.
16038         * c-cppbuiltin.c (builtin_define_constants,
16039         builtin_define_type_minmax): New.
16040         (builtin_define_stdint_macros): Define more macros.
16041         (c_cpp_builtins): Define more limit macros.
16042         (type_suffix): New.
16043         (builtin_define_type_max): Define in terms of
16044         builtin_define_type_minmax.  Remove is_long parameter.  All
16045         callers changed.
16046         * config.gcc (use_gcc_stdint): Define.
16047         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
16048         Add newlib-stdint.h for generic targets.
16049         * config/glibc-stdint.h, config/newlib-stdint.h,
16050         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
16051         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
16052         * config/score/score.h (UINTPTR_TYPE): Define.
16053         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
16054         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
16055         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
16056         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
16057         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
16058         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
16059         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
16060         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
16061         * config/spu/spu.h (STDINT_LONG32): Define.
16062         * configure.ac (use_gcc_stdint): Substitute.
16063         * configure: Regenerate.
16064         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
16065         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
16066         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
16067         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
16068         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
16069         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
16070         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
16071         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
16072         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
16073         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
16074         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
16075         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
16076         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
16077         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
16078         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
16079         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
16080         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
16081         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
16082         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
16083         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
16084         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
16085         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
16086         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
16087         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
16088         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
16089         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
16090         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
16091         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
16092         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
16093
16094 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
16095
16096         * loop-iv.c (suitable_set_for_replacement): Renamed from
16097         simplify_using_assignment; changed to return bool and to accept new
16098         args DEST and SRC.  Return true iff we find a source/destination pair
16099         that can be used to make a replacement, and fill SRC and DEST if so.
16100         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
16101         changed.
16102         (simplify_using_initial_values): Deal with altered regs here and track
16103         more precisely the effect they have on the validity of our expression.
16104
16105         * loop-iv.c (simplify_using_condition): A condition of the form
16106         (EQ REG CONST) can be used to simply make a substitution.
16107         (simplify_using_initial_values): Keep track of conditions we have seen
16108         and keep using them to simplify new expressions, while applying the
16109         same substitutions to them as to the expression.
16110
16111         * simplify-rtx.c (simplify_relational_operation_1): Simplify
16112         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
16113         GEU/LTU reversed.
16114
16115         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
16116         changed.  Use this when trying to improve the upper bound.
16117         Generate the comparison by using simplify_gen_relational.
16118
16119         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
16120
16121         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
16122         functions.
16123         (simplify_using_assignment, simplify_using_initial_values): Call
16124         replace_in_expr to make replacements.  Call replace_single_def_regs
16125         once on the initial version of the expression.
16126
16127 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16128
16129         PR target/27237
16130         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
16131
16132 2009-03-31  Richard Guenther  <rguenther@suse.de>
16133
16134         PR middle-end/31029
16135         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
16136         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
16137
16138 2009-03-31  Richard Guenther  <rguenther@suse.de>
16139
16140         * tree.h (div_if_zero_remainder): Declare.
16141         * fold-const.c (div_if_zero_remainder): Export.
16142         * tree-ssa-forwprop.c
16143         (forward_propagate_addr_into_variable_array_index): Handle
16144         constant array index addition outside of the variable index.
16145
16146 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
16147
16148         PR target/39592
16149         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
16150         define_splits, floatunssi<mode>2): Require x87 conversions from
16151         DImode to be permitted.
16152
16153 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
16154
16155         PR preprocessor/15638
16156         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
16157
16158 2009-03-31  Richard Guenther  <rguenther@suse.de>
16159
16160         PR middle-end/23401
16161         PR middle-end/27810
16162         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
16163         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
16164         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
16165         a separate statement.
16166         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
16167         (lookup_tmp_var): Likewise.
16168         (is_gimple_formal_tmp_or_call_rhs): Remove.
16169         (is_gimple_reg_or_call_rhs): Rename to ...
16170         (is_gimple_reg_rhs_or_call): ... this.
16171         (is_gimple_mem_or_call_rhs): Rename to ...
16172         (is_gimple_mem_rhs_or_call): ... this.
16173         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
16174         DECL_GIMPLE_REG_P only if is_formal is true.
16175         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
16176         for non-proper post-modify expression gimplification.
16177         (gimplify_self_mod_expr): For post-modify expressions gimplify
16178         the lvalue to a minimal lvalue.
16179         (rhs_predicate_for): Remove formal temp case.
16180         (gimplify_modify_expr_rhs): Likewise.
16181         (gimplify_addr_expr): Use is_gimple_reg.
16182         (gimplify_expr): Remove formal temp cases.
16183         (gimple_regimplify_operands): Likewise.
16184         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
16185         and FILTER_EXPR like constants.
16186         * gimple.c (walk_gimple_op): Fix val_only initialization, use
16187         is_gimple_reg.
16188         (is_gimple_formal_tmp_rhs): Remove.
16189         (is_gimple_reg_rhs): Remove special casing.
16190         (is_gimple_mem_rhs): Fix.
16191         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
16192         (is_gimple_formal_tmp_var): Remove.
16193         (is_gimple_formal_tmp_reg): Likewise.
16194         (is_gimple_min_lval): Allow invariant component ref parts.
16195         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
16196         is_gimple_formal_tmp_reg): Remove declarations.
16197         * tree-cfg.c (verify_expr): Verify that variables with address
16198         taken do not have DECL_GIMPLE_REG_P set.
16199         * tree-mudflap.c (mf_build_check_statement_for): Use
16200         force_gimple_operand instead of gimplify_expr.
16201
16202 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
16203
16204         * modulo-sched.c (sms_schedule_by_order): Pass the actual
16205         schedulable rows to compute_split_row.
16206
16207 2009-03-31  Ben Elliston  <bje@au.ibm.com>
16208
16209         PR target/31635
16210         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
16211         OPT_mvrsave.
16212
16213 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
16214
16215         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
16216         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
16217         * configure: Regenerate.
16218         * config.in: Regenerate.
16219         * config/rs6000/rs6000.opt (mtls-markers): Add.
16220         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
16221         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
16222         (tls_ld_aix, tls_ld_sysv): Likewise.
16223         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
16224         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
16225
16226 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
16227
16228         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
16229
16230 2009-03-30  Jan Hubicka  <jh@suse.cz>
16231
16232         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
16233         out of RESX.
16234         (tree_remove_unreachable_handlers): Cleanup EH predecestor
16235         detection and label handling.
16236
16237 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
16238
16239         * ira-int.h (ira_allocno): Rename left_conflicts_num to
16240         left_conflicts_size.
16241         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
16242         ALLOCNO_LEFT_CONFLICTS_SIZE.
16243
16244         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
16245         remove_allocno_from_bucket_and_push,
16246         allocno_spill_priority_compare, push_allocnos_to_stack,
16247         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
16248         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
16249         (setup_allocno_left_conflicts_num): Ditto.  Rename to
16250         setup_allocno_left_conflicts_size.
16251         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
16252         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
16253         setup_allocno_left_conflicts_size instead of
16254         setup_allocno_left_conflicts_num.
16255
16256         * ira-build.c (ira_create_allocno): Use
16257         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
16258         ALLOCNO_LEFT_CONFLICTS_NUM.
16259
16260 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
16261
16262         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
16263         instead of DF_LR_OUT.
16264
16265         * ira-lives.c (process_bb_node_lives): Ditto.
16266
16267         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
16268         instead of DF_LR_{OUT,IN}.
16269
16270         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
16271
16272         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
16273
16274 2009-03-30  Jan Hubicka  <jh@suse.cz>
16275
16276         * except.c (label_to_region_map): Fix thinko.
16277
16278 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
16279
16280         PR middle-end/38237
16281         * tree.h (tree_find_value): New declaration.
16282         * tree.c (tree_find_value): New function.
16283         * varasm.c (assemble_external): Avoid duplicate entries on lists.
16284
16285 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
16286
16287         PR debug/39563
16288         * c-decl.c (struct c_binding): Add locus field.
16289         (bind): Add locus argument, set locus field from it.
16290         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
16291         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
16292         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
16293         implicitly_declare, undeclared_variable, lookup_label,
16294         declare_label, c_make_fname_decl, c_builtin_function,
16295         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
16296         bind callers.
16297
16298 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
16299
16300         PR target/38781
16301         * config/i386/i386.c (classify_argument): Check total size of
16302         structure.
16303
16304 2009-03-30  Martin Jambor  <mjambor@suse.cz>
16305
16306         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
16307         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
16308         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
16309         respectively.
16310
16311         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
16312         seen_variable_array_ref while also traversing a union.
16313
16314         * tree-inline.c (optimize_inline_calls): Do not call
16315         cgraph_node_remove_callees.
16316         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
16317         (pass_remove_cgraph_callee_edges): New variable.
16318         * passes.c (init_optimization_passes): Add
16319         pass_remove_cgraph_callee_edges after early inlining and before all
16320         late intraprocedural passes.
16321
16322         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
16323
16324 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
16325
16326         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
16327         Fix typos in names.
16328
16329 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
16330
16331         * combine.c (simplify_comparison): Use have_insn_for.
16332         * dojump.c (do_jump): Likewise.
16333
16334 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
16335
16336         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
16337         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
16338         sparc_compare_op0 like sparc_compare_emitted used to be handled.
16339         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
16340         instead of sparc_compare_emitted.
16341         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
16342         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
16343         instead of sparc_compare_emitted.
16344
16345 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
16346
16347         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
16348         enter/exit cfglayout mode.
16349         (pass_partition_block): Require it.
16350         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
16351         (combine_instructions): Track basic blocks instead of labels.
16352         (update_cfg_for_uncondjump): New.
16353         (try_combine): Use it.  Update jumps after rescanning.
16354         (pass_combine): Require PROP_cfglayout.
16355         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
16356
16357 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
16358
16359         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
16360         Provide/destroy PROP_cfglayout respectively.
16361         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
16362         * tree-pass.h (PROP_cfglayout): New.
16363
16364 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
16365
16366         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
16367         fold_convert_const_fixed_from_fixed,
16368         fold_convert_const_fixed_from_int,
16369         fold_convert_const_fixed_from_real, fold_negate_const): Do not
16370         set TREE_CONSTANT_OVERFLOW.
16371         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
16372         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
16373
16374 2009-03-30  Ira Rosen  <irar@il.ibm.com>
16375
16376         * tree-vect-loop-manip.c: New file.
16377         * tree-vectorizer.c: Update documentation and included files.
16378         (vect_loop_location): Make extern.
16379         (rename_use_op): Move to tree-vect-loop-manip.c
16380         (rename_variables_in_bb, rename_variables_in_loop,
16381         slpeel_update_phis_for_duplicate_loop,
16382         slpeel_update_phi_nodes_for_guard1,
16383         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
16384         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
16385         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
16386         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
16387         find_loop_location): Likewise.
16388         (new_stmt_vec_info): Move to tree-vect-stmts.c.
16389         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
16390         get_vectype_for_scalar_type, vect_is_simple_use,
16391         supportable_widening_operation, supportable_narrowing_operation):
16392         Likewise.
16393         (bb_in_loop_p): Move to tree-vect-loop.c.
16394         (new_loop_vec_info, destroy_loop_vec_info,
16395         reduction_code_for_scalar_code, report_vect_op,
16396         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
16397         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
16398         (vect_supportable_dr_alignment): Likewise.
16399         * tree-vectorizer.h (tree-data-ref.h): Include.
16400         (vect_loop_location): Declare.
16401         Reorganize function declarations according to the new file structure.
16402         * tree-vect-loop.c: New file.
16403         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
16404         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
16405         * tree-vect-data-refs.c: New file.
16406         * tree-vect-patterns.c (timevar.h): Don't include.
16407         * tree-vect-stmts.c: New file.
16408         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
16409         tree-vect-slp.c, tree-vect-loop.c.
16410         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
16411         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
16412         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
16413         (tree-vect-analyze.o): Remove.
16414         (tree-vect-transform.o): Likewise.
16415         (tree-vect-data-refs.o): Add rule.
16416         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
16417         tree-vect-slp.o): Likewise.
16418         (tree-vect-patterns.o): Remove redundant dependencies.
16419         (tree-vectorizer.o): Likewise.
16420         * tree-vect-slp.c: New file.
16421
16422 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
16423
16424         * optc-gen.awk: Warn if an option flag has multiple different
16425         help strings.
16426
16427 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
16428
16429         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
16430         -floop-block): Document dependences on PPL, CLooG and Graphite.
16431
16432 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
16433
16434         PR rtl-optimization/323
16435         * c-common.c (c_fully_fold, convert_and_check,
16436         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
16437         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
16438         * c-common.def (EXCESS_PRECISION_EXPR): New.
16439         * c-cppbuiltin.c (builtin_define_float_constants): Define
16440         constants with enough digits for long double.
16441         * c-lex.c (interpret_float): Interpret constant with excess
16442         precision where appropriate.
16443         * c-opts.c (c_common_post_options): Set
16444         flag_excess_precision_cmdline.  Give an error for
16445         -fexcess-precision=standard for C++ for processors where the
16446         option is significant.
16447         * c-parser.c (c_parser_conditional_expression): Handle excess
16448         precision in condition.
16449         * c-typeck.c (convert_arguments): Handle arguments with excess
16450         precision.
16451         (build_unary_op): Move excess precision outside operation.
16452         (build_conditional_expr): Likewise.
16453         (build_compound_expr): Likewise.
16454         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
16455         (build_modify_expr): Handle excess precision in RHS.
16456         (convert_for_assignment): Handle excess precision in converted
16457         value.
16458         (digest_init, output_init_element, process_init_element): Handle
16459         excess precision in initializer.
16460         (c_finish_return): Handle excess precision in return value.
16461         (build_binary_op): Handle excess precision in operands and add
16462         excess precision as needed for operation.
16463         * common.opt (-fexcess-precision=): New option.
16464         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
16465         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
16466         For standard excess precision, output explicit conversion to and
16467         truncation from XFmode.
16468         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
16469         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
16470         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
16471         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
16472         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
16473         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
16474         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
16475         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
16476         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
16477         define_splits, sqrt<mode>2): Disable where appropriate for
16478         standard excess precision.
16479         * convert.c (convert_to_real): Do not shorten arithmetic to type
16480         for which excess precision would be used.
16481         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
16482         * doc/invoke.texi (-fexcess-precision=): Document option.
16483         (-mfpmath=): Correct index entry.
16484         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
16485         flag_excess_precision): New.
16486         * langhooks.c (lhd_post_options): Set
16487         flag_excess_precision_cmdline.
16488         * opts.c (common_handle_option): Handle -fexcess-precision=.
16489         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
16490         init_excess_precision): New.
16491         (lang_dependent_init_target): Call init_excess_precision.
16492         * tree.c (excess_precision_type): New.
16493         * tree.h (excess_precision_type): Declare.
16494
16495 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
16496
16497         PR c/35235
16498         * c-typeck.c (build_component_ref): Do not copy qualifiers from
16499         non-lvalue to component.
16500
16501 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
16502
16503         PR preprocessor/34695
16504         * Makefile.in (c-opts.o): Depend on c-tree.h.
16505         * c-common.c: Move down include of diagnostic.h.
16506         (done_lexing, c_cpp_error): New.
16507         * c-common.h (done_lexing): Declare.
16508         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
16509         (parse_in).
16510         * c-opts.c: Include c-tree.h.
16511         (c_common_init_options): Set preprocessor error callback.
16512         (c_common_handle_option): Do not set preprocessor
16513         inhibit_warnings, warnings_are_errors, warn_system_headers,
16514         pedantic_errors or inhibit_warnings flags.
16515         (c_common_post_options): Do not check cpp_errors (parse_in).
16516         (c_common_finish): Do not output dependencies if there were
16517         errors.  Do not check return value of cpp_finish.
16518         * c-ppoutput.c (pp_file_change): Set input_location.
16519         * c-tree.h (c_cpp_error): Declare.
16520         * diagnostic.c (diagnostic_set_info_translated): Also initialize
16521         override_column.
16522         (diagnostic_build_prefix): Check override_column.
16523         * diagnostic.h (diagnostic_info): Add override_column field.
16524         (diagnostic_override_column): Define.
16525
16526 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
16527
16528         * c-common.c (c_expand_expr, c_staticp): Remove.
16529         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
16530         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
16531         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
16532         * c-gimplify.c (gimplify_compound_literal_expr,
16533         optimize_compound_literals_in_ctor): Remove.
16534         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
16535         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
16536         * c-semantics.c (emit_local_var): Remove.
16537
16538         * langhooks-def.h (lhd_expand_expr): Remove.
16539         * langhooks.c (lhd_expand_expr): Remove.
16540         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
16541
16542         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
16543         handling from c-semantics.c; don't call into langhook.
16544         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
16545         * gimplify.c (gimplify_compound_literal_expr,
16546         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
16547         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
16548         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
16549         as was done in c-gimplify.c.
16550         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
16551         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
16552         Move from c-common.h.
16553         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
16554
16555         * tree.c (staticp): Do not call langhook.
16556         * langhooks.c (lhd_staticp): Delete.
16557         * langhooks-def.h (lhd_staticp): Delete prototype.
16558         (LANG_HOOKS_STATICP): Delete.
16559         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
16560
16561         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
16562         instead of DECL_STMTs.
16563
16564 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
16565
16566         PR c/456
16567         PR c/5675
16568         PR c/19976
16569         PR c/29116
16570         PR c/31871
16571         PR c/35198
16572         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
16573         void_type_node.
16574         (fold_call_expr): Return a NOP_EXPR from folding rather than the
16575         contained expression.
16576         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
16577         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
16578         conditional expressions for C.
16579         (decl_constant_value_for_optimization): Move from
16580         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
16581         whether optimizing and that the expression is a VAR_DECL not of
16582         array type instead of doing such checks in the caller.  Do not
16583         check pedantic.  Call gcc_unreachable for C++.
16584         * c-common.def (C_MAYBE_CONST_EXPR): New.
16585         * c-common.h (c_fully_fold, c_save_expr,
16586         decl_constant_value_for_optimization): New prototypes.
16587         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
16588         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
16589         EXPR_INT_CONST_OPERANDS): Define.
16590         * c-convert.c (convert): Strip nops from expression.
16591         * c-decl.c (groktypename): Take extra parameters expr and
16592         expr_const_operands.  Update call to grokdeclarator.
16593         (start_decl): Update call to grokdeclarator.  Add statement for
16594         expressions used in type of decl.
16595         (grokparm): Update call to grokdeclarator.
16596         (push_parm_decl): Update call to grokdeclarator.
16597         (build_compound_literal): Add parameter non_const and build a
16598         C_MAYBE_COSNT_EXPR if applicable.
16599         (grokdeclarator): Take extra parameters expr and
16600         expr_const_operands.  Track expressions used in declaration
16601         specifiers and declarators.  Fold array sizes and track whether
16602         they are constant expressions and whether they are integer
16603         constant expressions.
16604         (parser_xref_tag): Set expr and expr_const_operands fields in
16605         return value.
16606         (grokfield): Update call to grokdeclarator.
16607         (start_function): Update call to grokdeclarator.
16608         (build_null_declspecs): Set expr and expr_const_operands fields in
16609         return value.
16610         (declspecs_add_type): Handle expressions in typeof specifiers.
16611         * c-parser.c (c_parser_declspecs): Set expr and
16612         expr_const_operands fields for declaration specifiers.
16613         (c_parser_enum_specifier): Likewise.
16614         (c_parser_struct_or_union_specifier): Likewise.
16615         (c_parser_typeof_specifier): Likewise.  Update call to
16616         groktypename.  Fold expression as needed.  Return expressions with
16617         type instead of adding statements.
16618         (c_parser_attributes): Update calls to c_parser_expr_list.
16619         (c_parser_statement_after_labels): Fold expression before passing
16620         to objc_build_throw_stmt.
16621         (c_parser_condition): Fold expression.
16622         (c_parser_asm_operands): Fold expression.
16623         (c_parser_conditional_expression): Use c_save_expr.  Update call
16624         to build_conditional_expr.
16625         (c_parser_alignof_expression): Update call to groktypename.
16626         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
16627         original_code.  Fold expression argument of va_arg.  Create
16628         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
16629         argument to va_arg.  Update calls to groktypename.  Fold array
16630         index for offsetof.  Verify that first argument to
16631         __builtin_choose_expr has integer type.
16632         (c_parser_postfix_expression_after_paren_type): Update calls to
16633         groktypename and build_compound_literal.  Handle expressions with
16634         side effects in type name.
16635         (c_parser_postfix_expression_after_primary): Update call to
16636         c_parser_expr_list.  Set original_code for calls to
16637         __builtin_constant_p.
16638         (c_parser_expr_list): Take extra parameter fold_p.  Fold
16639         expressions if requested.
16640         (c_parser_objc_type_name): Update call to groktypename.
16641         (c_parser_objc_synchronized_statement): Fold expression.
16642         (c_parser_objc_receiver): Fold expression.
16643         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
16644         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
16645         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
16646         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
16647         (struct c_typespec): Add elements expr and expr_const_operands.
16648         (struct c_declspecs): Add elements expr and expr_const_operands.
16649         (groktypename, build_conditional_expr, build_compound_literal):
16650         Update prototypes.
16651         (in_late_binary_op): Declare.
16652         * c-typeck.c (note_integer_operands): New function.
16653         (in_late_binary_op): New variable.
16654         (decl_constant_value_for_broken_optimization): Move to c-common.c
16655         and rename to decl_constant_value_for_optimization.
16656         (default_function_array_conversion): Do not strip nops.
16657         (default_conversion): Do not call
16658         decl_constant_value_for_broken_optimization.
16659         (build_array_ref): Do not fold result.
16660         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
16661         result when operand is a VLA.
16662         (c_expr_sizeof_type): Update call to groktypename.  Handle
16663         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
16664         result when operand names a VLA type.
16665         (build_function_call): Update call to build_compound_literal.
16666         Only fold result for calls to __builtin_* functions.  Strip
16667         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
16668         the function designator.
16669         (convert_arguments): Fold arguments.  Update call to
16670         convert_for_assignment.
16671         (build_unary_op): Handle increment and decrement of
16672         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
16673         decrement earlier.  Fold operand of increment and decrement.
16674         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
16675         built for integer operand.  Wrap returns that are INTEGER_CSTs
16676         without being integer constant expressions or that have integer
16677         constant operands without being INTEGER_CSTs.
16678         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
16679         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
16680         result is an integer constant expression or can be used in
16681         unevaluated parts of one and avoid folding and wrap as
16682         appropriate.  Fold operands before possibly doing -Wsign-compare
16683         warnings.
16684         (build_compound_expr): Wrap result for C99 if operands can be used
16685         in integer constant expressions.
16686         (build_c_cast): Update call to digest_init.  Do not ignore
16687         overflow from casting floating-point constants to integers.  Wrap
16688         results that could be confused with integer constant expressions,
16689         null pointer constants or floating-point constants.
16690         (c_cast_expr): Update call to groktypename.  Handle expressions
16691         included in type name.
16692         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
16693         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
16694         Update calls to convert_for_assignment.
16695         (convert_for_assignment): Take new parameter
16696         null_pointer_constant.  Do not strip nops or call
16697         decl_constant_value_for_broken_optimization.  Set
16698         in_late_binary_op for conversions to boolean.
16699         (store_init_value): Update call to digest_init.
16700         (digest_init): Take new parameter null_pointer_constant.  Do not
16701         call decl_constant_value_for_broken_optimization.  pedwarn for
16702         initializers not constant expressions.  Update calls to
16703         convert_for_assignment.
16704         (constructor_nonconst): New.
16705         (struct constructor_stack): Add nonconst element.
16706         (really_start_incremental_init, push_init_level, pop_init_level):
16707         Handle constructor_nonconst and nonconst element.
16708         (set_init_index): Call constant_expression_warning for array
16709         designators.
16710         (output_init_element): Fold value.  Set constructor_nonconst as
16711         applicable.  pedwarn for initializers not constant expressions.
16712         Update call to digest_init.  Call constant_expression_warning
16713         where constant initializers are required.
16714         (process_init_element): Use c_save_expr.
16715         (c_finish_goto_ptr): Fold expression.
16716         (c_finish_return): Fold return value.  Update call to
16717         convert_for_assignment.
16718         (c_start_case): Fold switch expression.
16719         (c_process_expr_stmt): Fold expression.
16720         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
16721         ensure statement expression is not evaluated in constant expression.
16722         (build_binary_op): Track whether results are integer constant
16723         expressions or may occur in such, disable folding and wrap results
16724         as applicable.  Fold operands for -Wsign-compare warnings unless
16725         in_late_binary_op.
16726         (c_objc_common_truthvalue_conversion): Handle results folded to
16727         integer constants that are not integer constant expressions.
16728         * doc/extend.texi: Document when typeof operands are evaluated,
16729         that condition of __builtin_choose_expr is an integer constant
16730         expression, and more about use of __builtin_constant_p in
16731         initializers.
16732
16733 2009-03-29  Richard Guenther  <rguenther@suse.de>
16734
16735         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
16736         propagate addresses of array references.
16737
16738 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
16739
16740         * regmove.c (perhaps_ends_bb_p): Remove.
16741         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
16742         from INSN and check that the main loop stays within that basic block.
16743         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
16744         (regmove_forward_pass): Split out from regmove_optimize.  Use
16745         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
16746         (regmove_backward_pass): Split out from regmove_optimize.  Use
16747         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
16748         (regmove_optimize): Simplify.
16749
16750 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
16751
16752         PR target/39545
16753         * config/i386/i386.c (classify_argument): Ignore flexible array
16754         member in struct and warn ABI change.
16755
16756 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
16757
16758         * config/i386/i386-protos.h (ix86_agi_dependent): New.
16759
16760         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
16761         (ix86_adjust_cost): Updated.
16762
16763 2009-03-29  Jan Hubicka  <jh@suse.cz>
16764
16765         PR middle-end/28850
16766         * tree-pass.h (pass_cleanup_eh): New function.
16767         (remove_unreachable_regions): Break code handling RTL
16768         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
16769         that can not be reached by runtime.
16770         (can_be_reached_by_runtime): New function.
16771         (label_to_region_map): New function.
16772         (num_eh_regions): New function.
16773         (rtl_remove_unreachable_regions): New function.
16774         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
16775         (remove_eh_region): New function.
16776         * except.h: Include sbitmap and vecprim.
16777         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
16778         num_eh_regions): Declare.
16779         * passes.c (init_optimization_passes): Schedule cleanup_eh.
16780         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
16781         * tree-eh.c (tree_remove_unreachable_handlers): New function.
16782         (tree_empty_eh_handler_p): New function.
16783         (cleanup_empty_eh): New function.
16784         (cleanup_eh): New function.
16785         (pass_cleanup_eh): New function.
16786
16787 2009-03-29  Jan Hubicka  <jh@suse.cz>
16788
16789         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
16790         for removed regions.
16791
16792 2009-03-29  Jan Hubicka  <jh@suse.cz>
16793
16794         * except.c (dump_eh_tree): Dump all datastructures.
16795
16796 2009-03-29  Jan Hubicka  <jh@suse.cz>
16797
16798         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
16799         (duplicate_eh_regions_1): Likewise.
16800         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
16801         vector; call EH verification.
16802         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
16803         Be ready for region being removed.
16804
16805 2009-03-29  Jan Hubicka  <jh@suse.cz>
16806
16807         * bitmap.c (bitmap_last_set_bit): New function.
16808         * bitmap.h (bitmap_last_set_bit): Declare.
16809
16810 2009-03-29  David Ayers  <ayers@fsfe.org>
16811
16812         PR objc/27377
16813         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
16814         by calling objc_compare_types and surpress warnings about
16815         incompatible C pointers that are compatible ObjC pointers.
16816
16817 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
16818
16819         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
16820         call initialize_inline_failed.
16821         (initialize_inline_failed): Move it from here ...
16822         * cgraph.c (initialize_inline_failed): ... to here.
16823         (cgraph_create_edge): Call initialize_inline_failed rather than
16824         setting inline_failed directly.
16825
16826 2009-03-29  Ben Elliston  <bje@au.ibm.com>
16827
16828         PR target/32542
16829         * sysv4.opt (msdata): Improve comment.
16830         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
16831         * sysv4.h (SVR4_ASM_SPEC): Likewise.
16832
16833 2009-03-29  Ben Elliston  <bje@au.ibm.com>
16834
16835         PR target/30451
16836         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
16837         load and store attributes.
16838
16839 2009-03-29  Ben Elliston  <bje@au.ibm.com>
16840
16841         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
16842         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
16843         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
16844         * doc/extend.texi (X86 Built-in Functions): Add index entries for
16845         __builtin_infq and __builtin_huge_valq.
16846
16847 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
16848
16849         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
16850         atmega8m1 devices.
16851         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
16852         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
16853
16854 2009-03-28  Xinliang David Li  <davidxl@google.com>
16855
16856         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
16857         (do_dbg_cnt): New function.
16858
16859 2009-03-28  Jan Hubicka  <jh@suse.cz>
16860
16861         Merge from pretty-ipa:
16862
16863         2009-03-27  Jan Hubicka  <jh@suse.cz>
16864
16865         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
16866         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
16867         * passes.c (function_called_by_processed_nodes_p): New.
16868         * ipa-pure-const.c (check_call): Fix handling of operands.
16869         (analyze_function): Dump debug output for skipped bodies.
16870         (local_pure_const): Use function_called_by_processed_nodes_p.
16871         * dwarf2out.c (reference_to_unused): Use output.
16872         * passes.c (do_per_function_toporder): Likewise.
16873
16874         2008-11-12  Jan Hubicka  <jh@suse.cz>
16875
16876         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
16877         * ipa-pure-const.c (funct_state_d): Add can throw field; make
16878         state_set_in_source enum
16879         (check_decl): Ignore memory tags; do not set fake looping flags;
16880         dump diagnostics.
16881         (check_operand, check_tree, check_rhs_var, check_lhs_var,
16882         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
16883         (check_call, analyze_function): Rewrite.
16884         (check_stmt): New.
16885         (add_new_function): Update call of analyze_function.
16886         (generate_summary): Add call of analyze_function.
16887         (propagate): Propagate can_throw; handle state_set_in_source correctly.
16888         (local_pure_const): New function.
16889         (pass_local_pure_const): New pass.
16890         * ipa-inline.c (inline_transform): Set after_inlining.
16891         * tree-eh.c (stmt_can_throw_external): New.
16892         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
16893         work with aliasing built.
16894         * tree-flow.h (stmt_can_throw_external): New.
16895         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
16896         and local pure/const pass in early and late optimization queue.
16897
16898 2009-03-28  Martin Jambor  <mjambor@suse.cz>
16899
16900         * fold-const.c (get_pointer_modulus_and_residue): New parameter
16901         allow_func_align.
16902         (fold_binary): Allow function decl aligment consideration is the
16903         second argument is integer constant one.
16904         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
16905         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
16906         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
16907
16908 2009-03-28  Jan Hubicka  <jh@suse.cz>
16909
16910         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
16911         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
16912         * function.h (rtl_data): Add nothrow flag.
16913         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
16914         set DECL_NOTHROW for AVAILABLE functions.
16915
16916 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
16917
16918         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
16919         following vector keyword has expansion starting with pixel or bool
16920         keyword, expand vector to __vector and pixel or bool to __pixel or
16921         __bool.
16922
16923         PR c++/39554
16924         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
16925         warn_if_disallowed_function_p): Removed.
16926         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
16927         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
16928         warning_if_disallowed_function_p.
16929         * flags.h (warn_if_disallowed_function_p,
16930         warn_disallowed_functions): Removed.
16931         * common.opt (Wdisallowed-function-list=): Removed.
16932         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
16933
16934 2009-03-28  Richard Guenther  <rguenther@suse.de>
16935
16936         PR tree-optimization/38723
16937         * tree-ssa-pre.c (compute_avail): Add all default definitions to
16938         the entry block.
16939
16940 2009-03-28  Jan Hubicka  <jh@suse.cz>
16941
16942         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
16943         test introduced by my previous patch.
16944
16945 2009-03-28  Richard Guenther  <rguenther@suse.de>
16946
16947         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
16948         the PHIs value undefined.
16949
16950 2009-03-28  Jan Hubicka  <jh@suse.cz>
16951
16952         * tree-pass.h (pass_fixup_cfg): New pass.
16953         * ipa-inline.c (inline_transform): Set
16954         always_inline_functions_inlined/after_inlining.
16955         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
16956         (pass_fixup_cfg): New pass.
16957         * passes.c (init_optimization_passes): Add fixup_cfg.
16958
16959 2009-03-28  Richard Guenther  <rguenther@suse.de>
16960
16961         PR tree-optimization/38458
16962         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
16963         argument use the arguments copy-of value.
16964
16965 2009-03-28  Richard Guenther  <rguenther@suse.de>
16966
16967         PR tree-optimization/38180
16968         * tree-ssa-ccp.c (get_default_value): Simplify.
16969         (likely_value): Likewise.
16970         (surely_varying_stmt_p): Properly handle VOP case.
16971         (ccp_initialize): Likewise.
16972         (ccp_fold): Handle propagating through *&.
16973         (fold_const_aggregate_ref): Also handle decls.
16974
16975 2009-03-28  Jan Hubicka  <jh@suse.cz>
16976
16977         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
16978         * cgraph.h (cgraph_node): Likewise.
16979         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
16980         (cgraph_reset_node): Use process flag.
16981         (cgraph_mark_functions_to_output): Likewise.
16982         (cgraph_expand_function): Likewise.
16983         (cgraph_expand_all_functions): Likewise.
16984         (cgraph_output_in_order): Likewise.
16985         * dwarf2out.c (reference_to_unused): Likewise.
16986         * passes.c do_per_function_toporder): Likewise.
16987
16988 2009-03-28  Jan Hubicka  <jh@suse.cz>
16989
16990         Bring from lto-branch:
16991
16992         2008-09-03  Doug Kwan  <dougkwan@google.com>
16993
16994         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
16995         enums instead of reason strings.
16996         * cgraph.c (cgraph_create_edge): Same.
16997         (cgraph_inline_failed_string): New function.
16998         * cgraph.h (cgraph_inline_failed_t): New enum type.
16999         (cgraph_inline_failed_string): New prototype.
17000         (struct cgraph_edge): Change type of INLINED_FAILED from constant
17001         char pointer to cgraph_inline_failed_t.
17002         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
17003         (cgraph_default_inline_p): Ditto.
17004         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
17005         to cgraph_inline_failed_t pointer.
17006         * cif-code.def: New file.
17007         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
17008         reason string.
17009         (cgraph_check_inline_limits): Change type of REASON to pointer to
17010         cgraph_inline_failed_t.  Replace reason strings with enums.
17011         (cgraph_default_inline_p): Ditto.
17012         (cgraph_recursive_inlining_p): Ditto.
17013         (update_caller_keys): Change type of FAILED_REASON to
17014         cgraph_inline_failed_t.
17015         (cgraph_set_inline_failed): Change type of REASON to pointer to
17016         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
17017         convert enums to strings for text output.
17018         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
17019         to be of type cgraph_inline_failed_t.  Replace reason strings with
17020         enums.  Call cgraph_inline_failed_string to covert enums
17021         to strings for text output.
17022         (cgraph_decide_inlining): Replace reason strings with enums.
17023         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
17024         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
17025         for text output.
17026         * tree-inline.c (expand_call_inline): Change type of REASON
17027         to cgraph_inline_failed_t.  Replace reason strings with enums.
17028         Call cgraph_inline_failed_string for text output.
17029         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
17030         (cgraph.o): Ditto.
17031
17032 2009-03-28  Jan Hubicka  <jh@suse.cz>
17033
17034         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
17035         cgraph_clone_node): Remove master clone handling.
17036         (cgraph_is_master_clone, cgraph_master_clone): Remove.
17037         * cgraph.h (master_clone): Remove.
17038         (cgraph_is_master_clone, cgraph_master_clone): Remove.
17039         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
17040         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
17041
17042 2009-03-28  Jan Hubicka  <jh@suse.cz>
17043
17044         * cgraph.c (cgraph_function_body_availability): Functions declared
17045         inline are always safe to assume that it is not going to be replaced.
17046
17047 2009-03-28  Richard Guenther  <rguenther@suse.de>
17048
17049         PR tree-optimization/38513
17050         * tree-ssa-pre.c (eliminate): Remove redundant stores.
17051         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
17052         EXC_PTR_EXPR and FILTER_EXPR.
17053         (get_ref_from_reference_ops): Likewise.
17054
17055 2009-03-28  Richard Guenther  <rguenther@suse.de>
17056
17057         PR tree-optimization/38968
17058         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
17059         Use FLOOR_MOD_EXPR to compute misalignment.
17060
17061 2009-03-28  Richard Guenther  <rguenther@suse.de>
17062
17063         PR tree-optimization/37795
17064         * tree.h (combine_comparisons): Declare.
17065         * fold-const.c (combine_comparisons): Export.
17066         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
17067         comparisons.
17068         (ifcombine_iforif): Use combine_comparisons.
17069
17070 2009-03-28  Jan Hubicka  <jh@suse.cz>
17071
17072         * tree-eh.c (inlinable_call_p): New function.
17073         (make_eh_edges): Use it.
17074         (verify_eh_edges): Use it.
17075         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
17076         * except.c (reachable_next_level): Add inlinable_function argument
17077         (sjlj_find_directly_reachable_regions): Update.
17078         (add_reachable_handler): Do not set saw_any_handlers.
17079         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
17080         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
17081         Add new inlinable call parameter.
17082         (can_throw_internal, can_throw_external): Update.
17083         * except.h (can_throw_internal_1, can_throw_external_1,
17084         foreach_reachable_handler): Update declaration.
17085
17086 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
17087
17088         * config/arm/t-arm-coff, config/h8300/coff.h,
17089         config/i386/i386-aout.h, config/i386/i386-coff.h,
17090         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
17091         config/pdp11/2bsd.h, config/rs6000/aix41.h,
17092         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
17093         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
17094         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
17095         sys-types.h: Remove.
17096         * Makefile.in: Remove protoize and fixproto support and references
17097         in comments.
17098         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
17099         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
17100         Remove.
17101         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
17102         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
17103         unprotoize$(exeext).
17104         (rest.encap): Don't depend on $(STMP_FIXPROTO)
17105         (.PHONY): Don't depend on proto.
17106         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
17107         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
17108         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
17109         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
17110         build/gen-protos.o, build/scan.o, xsys-protos.h,
17111         build/fix-header$(build_exeext), build/fix-header.o,
17112         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
17113         stmp-install-fixproto): Remove.
17114         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
17115         SYSCALLS.c or fixproto files.
17116         (install-common): Don't install protoize.
17117         (install-headers-tar, install-headers-cpio, install-headers-cp):
17118         Don't depend on $(STMP_FIXPROTO).
17119         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
17120         install fixproto files or write out fixproto settings.
17121         (uninstall): Don't uninstall protoize.
17122         * config.gcc (use_fixproto): Remove.
17123         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
17124         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
17125         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
17126         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
17127         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
17128         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
17129         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
17130         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
17131         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
17132         * config/t-vxworks (STMP_FIXPROTO): Remove.
17133         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
17134         STMP_FIXPROTO): Remove.
17135         * config.in, configure: Regenerate.
17136         * crtstuff.c (gid_t, uid_t): Don't undefine.
17137         * doc/install.texi: Change m68k-coff to m68k-elf in example.
17138         (arm-*-coff, arm-*-aout: Remove target entries.
17139         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
17140         Remove mention of AIX 4.1.
17141         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
17142         * doc/invoke.texi (Running Protoize): Remove.
17143         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
17144         (Protoize Caveats): Remove.
17145         * tsystem.h: Update comments on headers assumed to exist.
17146
17147 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
17148
17149         * genautomata.c: Add a new year to the copyright.  Add a new
17150         reference.
17151         (struct insn_reserv_decl): Add comments for member bypass_list.
17152         (find_bypass): Remove.
17153         (insert_bypass): New.
17154         (process_decls): Use insert_bypass.
17155         (output_internal_insn_latency_func): Output all bypasses with the
17156         same input insn in one switch case.
17157
17158         * rtl.def (define_bypass): Describe bypass choice.
17159         * doc/md.texi (define_bypass): Ditto.
17160
17161 2009-03-27  Richard Guenther  <rguenther@suse.de>
17162
17163         * gimplify.c (mark_addressable): Export.
17164         * tree-flow.h (mark_addressable): Declare.
17165         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
17166         * tree-ssa.c (verify_phi_args): Verify that address taken
17167         variables have TREE_ADDRESSABLE set.
17168
17169 2009-03-27  Richard Guenther  <rguenther@suse.de>
17170
17171         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
17172         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
17173         Do not mark decls TREE_ADDRESSABLE.
17174         (build_fold_addr_expr): Adjust.
17175         (fold_addr_expr): Remove.
17176         (fold_unary): Use build_fold_addr_expr.
17177         (fold_comparison): Likewise.
17178         (split_address_to_core_and_offset): Likewise.
17179         * coverage.c (tree_coverage_counter_addr): Mark the array decl
17180         TREE_ADDRESSABLE.
17181         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
17182         (gimplify_modify_expr_to_memcpy): Mark source and destination
17183         addressable.
17184         * omp-low.c (create_omp_child_function): Mark the object decl
17185         TREE_ADDRESSABLE.
17186         (lower_rec_input_clauses): Mark the var we take the address of
17187         TREE_ADDRESSABLE.
17188         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
17189
17190 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
17191
17192         PR middle-end/39315
17193         * cfgexpand.c (expand_one_stack_var_at): Change alignment
17194         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
17195
17196 2009-03-27  Richard Guenther  <rguenther@suse.de>
17197
17198         PR tree-optimization/39120
17199         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
17200         constraints.
17201         (handle_lhs_call): Process return constraints.  Add escape
17202         constraints if necessary.
17203         (handle_const_call): Fill out return constraints.  Make nested
17204         case more precise.  Avoid consttmp if possible.
17205         (handle_pure_call): Fill out return constraints.  Avoid
17206         callused if possible.
17207         (find_func_aliases): Simplify call handling.
17208
17209 2009-03-27  Richard Guenther  <rguenther@suse.de>
17210
17211         PR tree-optimization/39120
17212         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
17213         as a representative.
17214         (solve_graph): Do propagate CALLUSED.
17215         (handle_pure_call): Use a scalar constraint from CALLUSED for
17216         the return value.
17217         (find_what_p_points_to): CALLUSED shall not appear in poins-to
17218         solutions.
17219
17220 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
17221
17222         PR c/39323
17223         * c-common.c (handle_aligned_attribute): Properly check alignment
17224         overflow.  Use (1U << i) instead of (1 << i).
17225
17226         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
17227
17228         * expr.h (get_mem_align_offset): Updated.
17229
17230         * tree.h (tree_decl_common): Change align to "unsigned int" and
17231         move it before pointer_alias_set.
17232
17233 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
17234             Jakub Jelinek  <jakub@redhat.com>
17235
17236         PR target/38034
17237         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
17238         gr_register_operand with gr_reg_or_0_operand.
17239         (cmpxchg_rel_di): Likewise.
17240         (sync_lock_test_and_set<mode>): Likewise.
17241
17242 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
17243
17244         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
17245         (true_regnum): Likewise.
17246
17247         * rtlanal.c (subreg_info): Moved to ...
17248         * rtl.h (subreg_info): Here.  New.
17249         (subreg_get_info): New.
17250
17251         * rtlanal.c (subreg_get_info): Make it extern.
17252
17253 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
17254
17255         PR target/39472
17256         * config/i386/i386.c (ix86_abi): New.
17257         (override_options): Handle -mabi=.
17258         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
17259         (ix86_call_abi_override): Likewise.
17260         (init_cumulative_args): Likewise.
17261         (function_arg_advance): Likewise.
17262         (function_arg_64): Likewise.
17263         (function_arg): Likewise.
17264         (ix86_pass_by_reference): Likewise.
17265         (ix86_function_value_regno_p): Likewise.
17266         (ix86_build_builtin_va_list_abi): Likewise.
17267         (setup_incoming_varargs_64): Likewise.
17268         (is_va_list_char_pointer): Likewise.
17269         (ix86_init_machine_status): Likewise.
17270         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
17271         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
17272         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
17273         (ix86_function_abi): Make it static and return enum calling_abi.
17274         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
17275         with ix86_abi.
17276         (ix86_fn_abi_va_list): Updated.
17277
17278         * config/i386/i386.h (ix86_abi): New.
17279         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
17280         (CONDITIONAL_REGISTER_USAGE): Likewise.
17281         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
17282         (machine_function): Likewise.
17283
17284         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
17285         with ix86_abi.
17286         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
17287         (STACK_BOUNDARY): Likewise.
17288         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
17289
17290         * config/i386/i386.opt (mabi=): New.
17291
17292         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
17293         return enum calling_abi.
17294         (ix86_function_type_abi): Likewise.
17295         (ix86_function_abi): Removed.
17296
17297         * doc/invoke.texi: Document -mabi= option for x86.
17298
17299 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17300
17301         * builtins.c (real_dconstp): Delete.
17302         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
17303
17304 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
17305             Jakub Jelinek  <jakub@redhat.com>
17306
17307         PR debug/37959
17308         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
17309         (gen_subprogram_die): When a function is explicit, generate the
17310         DW_AT_explicit attribute.
17311         * langhooks.h (struct lang_hooks_for_decls): Add
17312         function_decl_explicit_p langhook.
17313         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
17314         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
17315
17316 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
17317
17318         * builtins.c (fold_builtin_memory_op): Optimize memmove
17319         into memcpy if we can prove source and destination don't overlap.
17320
17321         * tree-inline.c: Include gt-tree-inline.h.
17322         (clone_fn_id_num): New variable.
17323         (clone_function_name): New function.
17324         (tree_function_versioning): Use it.
17325         * Makefile.in (GTFILES): Add tree-inline.c.
17326
17327 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
17328
17329         * BASE-VER: Change to 4.5.0.
17330
17331 2009-03-27  Xinliang David Li  <davidxl@google.com>
17332
17333         PR tree-optimization/39557
17334         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
17335
17336 2009-03-27  Xinliang David Li  <davidxl@google.com>
17337
17338         PR tree-optimization/39548
17339         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
17340         candidate check.
17341
17342 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
17343
17344         * c-common.c (pointer_int_sum): Use %wd on return from
17345         tree_low_cst.
17346
17347 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
17348
17349         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
17350         on return from tree_low_cst.
17351
17352 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
17353
17354         PR c++/36799
17355         * ginclude/stdarg.h (va_copy): Define also for
17356         __GXX_EXPERIMENTAL_CXX0X__.
17357
17358 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
17359
17360         PR c++/35652
17361         * builtins.h (c_strlen): Do not warn here.
17362         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
17363         * c-common.c (pointer_int_sum): Take an explicit location.
17364         Warn about offsets out of bounds.
17365         * c-common.h (pointer_int_sum): Adjust declaration.
17366
17367 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17368
17369         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
17370         markup glitch.
17371
17372 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
17373
17374         PR c++/39554
17375         * opts.c (warn_if_disallowed_function_p): Don't assume
17376         get_callee_fndecl must return non-NULL.
17377
17378 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
17379
17380         PR rtl-optimization/39522
17381         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
17382         when reg_reloaded_valid is set.
17383
17384 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17385
17386         * config/spu/divv2df3.c: New file.
17387         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
17388         (DPBIT_FUNCS): Filter out _div_df.
17389
17390 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
17391
17392         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
17393         a jump insn, count that jump in the distance to the loop start.
17394
17395 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
17396
17397         PR target/39523
17398         * config/sh/sh.c (calc_live_regs): Fix condition for global
17399         registers except PIC_OFFSET_TABLE_REGNUM.
17400
17401 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
17402
17403         PR/39518
17404         * doc/invoke.texi (-mconsole): New.
17405         (-mcygwin): New.
17406         (-mno-cygwin): New.
17407         (-mdll): New.
17408         (-mnop-fun-dllimport): New.
17409         (-mthread): New.
17410         (-mwin32): New.
17411         (-mwindows): New.
17412         (sub section "i386 and x86-64 Windows Options"): New.
17413
17414 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
17415
17416         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
17417         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
17418
17419 2009-03-25  Richard Guenther  <rguenther@suse.de>
17420
17421         PR middle-end/39497
17422         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
17423         of -Wno-error.
17424
17425 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
17426
17427         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
17428         neither of haifa/selective schedulers are working.
17429
17430 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17431
17432         * doc/invoke.texi (Debugging Options): Fix description of
17433         -fno-merge-debug-strings.
17434
17435 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
17436
17437         * config/cris/libgcc.ver: New version-script.
17438         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
17439
17440         * configure.ac <GAS features, nop mnemonic>: Add pattern
17441         crisv32-*-* for "nop".
17442         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
17443         * configure: Regenerate.
17444
17445 2009-03-24  Ira Rosen  <irar@il.ibm.com>
17446
17447         PR tree-optimization/39529
17448         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
17449         mark_sym_for_renaming for the tag copied to the new vector
17450         pointer.
17451
17452 2009-03-24  Arthur Loiret  <aloiret@debian.org>
17453
17454         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
17455         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
17456         EXTRA_SPEC_FUNCTIONS.
17457         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
17458         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
17459         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
17460         -march and -mtune options.
17461
17462 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
17463
17464         * config/m68k/t-rtems: Add m5329 multilib.
17465
17466 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
17467             Jakub Jelinek  <jakub@redhat.com>
17468
17469         PR debug/39524
17470         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
17471         nodes.
17472
17473 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
17474
17475         PR c/39495
17476         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
17477         instead of c_parser_expression_conv, if original_code isn't one of the
17478         4 allowed comparison codes, fail.
17479
17480 2009-03-23  Richard Guenther  <rguenther@suse.de>
17481
17482         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
17483         * tree.h (struct tree_type): Likewise.
17484         * reload.h (struct insn_chain): Likewise.
17485         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
17486         * function.h (struct function): Likewise.
17487         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
17488
17489 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
17490
17491         PR tree-optimization/39516
17492         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
17493
17494 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
17495
17496         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
17497         should be set true if BITS_PER_WORD of target is bigger than 32
17498
17499 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
17500
17501         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
17502         Translate -B-options to -rpath-link.  Correct existing
17503         rpath-link and conditionalize on !nostdlib.
17504
17505 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17506
17507         * doc/extend.texi (Function Attributes, Variable Attributes):
17508         Fix typos.
17509         * doc/invoke.texi (Debugging Options, Optimize Options)
17510         (i386 and x86-64 Options, MCore Options): Likewise.
17511
17512 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
17513
17514         PR debug/37890
17515         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
17516         it for block local namespace aliases.
17517         (gen_decl_die): Pass context_die to gen_namespace_die.
17518
17519 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
17520
17521         PR c/39495
17522         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
17523         minimum or maximum value.
17524
17525 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
17526
17527         * reginfo.c (globalize_reg): Recompute derived reg sets.
17528
17529 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
17530
17531         PR target/39063
17532         * libgcc2.c (mprotect): Do not use signed arguments for
17533         VirtualProtect, use DWORD arguments.  Also fix the 'may
17534         be used uninitialized' warning for the np variable.
17535
17536 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
17537
17538         PR target/39496
17539         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
17540         functions using regparm calling conventions when not optimizing.
17541         (ix86_function_sseregparm): Similarly for sseregparm calling
17542         conventions.
17543
17544 2009-03-19  Li Feng  <nemokingdom@gmail.com>
17545
17546         PR middle-end/39500
17547         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
17548         dependence if the first conflict is after niter iterations.
17549
17550 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
17551
17552         PR middle-end/38609
17553         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
17554         functions with dynamic stack-pointer adjustments.
17555
17556 2009-03-19  Ben Elliston  <bje@au.ibm.com>
17557
17558         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
17559         option; change to -msdata=data.
17560
17561 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17562
17563         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
17564         and -fopenmp.
17565
17566 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
17567
17568         PR target/35180
17569         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
17570
17571 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
17572
17573         * doc/invoke.texi (Code Gen Options): Expand discussion of
17574         -fno-common.
17575
17576 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
17577
17578         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
17579         * matrix-reorg.c (struct matrix_info): Likewise.
17580         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
17581         * rtl.h (struct mem_attrs): Likewise.
17582         * df.h (struct df): Likewise.
17583         * tree-data-ref.h (struct data_dependence_relation): Likewise.
17584         * ira-int.h (struct ira_allocno): Likewise.
17585         * df-scan.c (struct df_collection_rec): Likewise.
17586         * ira.c (struct equivalence): Likewise.
17587         * function.c (struct temp_slot): Likewise.
17588         * cfgloop.h (struct loop): Likewise.
17589
17590         PR debug/39485
17591         * function.c (use_register_for_decl): When not optimizing, disregard
17592         register keyword for variables with types containing methods.
17593
17594 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
17595
17596         PR middle-end/39447
17597         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
17598         (is_simple_operand): Call contains_component_ref_p before calling data
17599         reference analysis that would fail on COMPONENT_REFs.
17600
17601         * tree-vrp.c (search_for_addr_array): Fix formatting.
17602
17603 2009-03-18  Richard Guenther  <rguenther@suse.de>
17604
17605         * tree-vect-transform.c (vect_loop_versioning): Fold the
17606         generated comparisons.
17607         * tree-vectorizer.c (set_prologue_iterations): Likewise.
17608         (slpeel_tree_peel_loop_to_edge): Likewise.
17609
17610 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
17611
17612         PR middle-end/37805
17613         * opts.c (print_specific_help): In addition to `undocumented',
17614         accept `separate' and `joined' flags if passed alone.  Describe
17615         output by the first matched one of those.
17616         (common_handle_option): Skip over empty strings.
17617         * gcc.c (display_help): Fix help string for `--help='.
17618         * doc/invoke.texi (Option Summary, Overall Options): With
17619         `--help=', classes and qualifiers can both be repeated, but
17620         only the latter can be negated.  One should not pass only
17621         negated qualifiers.  Fix markup and examples.
17622
17623         Revert
17624         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
17625         PR middle-end/37805
17626         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
17627         and -fhelp=separate.
17628
17629 2009-03-17  Jing Yu  <jingyu@google.com>
17630
17631         PR middle-end/39378
17632         * function.h (struct rtl_data): Move is_thunk from here...
17633         (struct function): ...to here.
17634         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
17635         * varasm.c (assemble_start_function): Change is_thunk from crtl to
17636         cfun.
17637         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
17638         cfun.
17639         (alpha_does_function_need_gp, alpha_start_function): Likewise.
17640         (alpha_output_function_end_prologue): Likewise.
17641         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
17642         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
17643         (rs6000_output_function_epilogue): Likewise.
17644         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
17645
17646 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
17647
17648         PR target/39482
17649         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
17650         from different units in a single alternative.
17651         (*truncdfsf_i387): Ditto.
17652         (*truncxfsf2_mixed): Ditto.
17653         (*truncxfdf2_mixed): Ditto.
17654
17655 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
17656
17657         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
17658         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
17659
17660         PR debug/39474
17661         * tree-ssa-live.c (remove_unused_locals): Don't remove local
17662         unused non-artificial variables when not optimizing.
17663
17664         PR debug/39471
17665         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
17666         DW_TAG_imported_module even if decl is IMPORTED_DECL with
17667         NAMESPACE_DECL in its DECL_INITIAL.
17668
17669         PR middle-end/39443
17670         * optabs.c (set_user_assembler_libfunc): New function.
17671         * expr.h (set_user_assembler_libfunc): New prototype.
17672         * c-common.c: Include libfuncs.h.
17673         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
17674         for memcmp, memset, memcpy, memmove and abort.
17675         * Makefile.in (c-common.o): Depend on libfuncs.h.
17676
17677         PR debug/39412
17678         * dwarf2out.c (gen_inlined_enumeration_type_die,
17679         gen_inlined_structure_type_die, gen_inlined_union_type_die,
17680         gen_tagged_type_instantiation_die): Removed.
17681         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
17682         do nothing.
17683
17684 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
17685
17686         PR testsuite/38526
17687         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
17688         its use.
17689         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
17690         (check-parallel-%): Ditto.
17691         (check-consistency): Ditto.
17692
17693 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
17694
17695         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
17696         local variable rhs by NULL_TREE.
17697
17698 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
17699
17700         PR target/39477
17701         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
17702
17703 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
17704
17705         PR target/39476
17706         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
17707
17708 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
17709
17710         PR target/39473
17711         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
17712         for ms->sysv ABI calls only in 64bit mode.
17713
17714         * config/i386/i386.md (untyped_call): Support 32bit.
17715
17716 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
17717
17718         * doc/extend.texi: Replace x86_65 with x86_64.
17719
17720 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
17721
17722         PR tree-optimization/39455
17723         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
17724         mismatches for POINTER_TYPE_P (type).
17725         (number_of_iterations_le): Likewise.
17726
17727 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
17728
17729         * config/picochip/picochip.c: Removed profiling support.
17730         * config/picochip/picochip.md: Removed profiling instruction.
17731         * config/picochip/picochip.h: Removed profiling builtin.
17732
17733 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
17734
17735         * doc/install.texi (--with-host-libstdcxx): Document.
17736
17737 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
17738
17739         PR target/34299
17740         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
17741         generate a warning if the function name does not begin with
17742         "__vector" and the function has either the 'signal' or 'interrupt'
17743         attribute, from here to ...
17744         (avr_declare_function_name): ...here. New function.
17745         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
17746         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
17747
17748 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
17749
17750         PR bootstrap/39454
17751         * cse.c (fold_rtx): Don't modify original const_arg1 when
17752         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
17753         separate variable instead.
17754         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
17755         from out of range shift counts.
17756         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
17757
17758 2009-03-13  Catherine Moore  <clm@codesourcery.com>
17759
17760         * config/i386/x-mingw32 (host-mingw32.o): Replace
17761         diagnostic.h with $(DIAGNOSTIC_H).
17762
17763 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
17764
17765         PR target/39431
17766         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
17767         predicate.
17768         * config/i386/sync.md (sync_compare_and_swap<mode>,
17769         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
17770         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
17771         into a register.
17772         (sync_double_compare_and_swapdi_pic,
17773         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
17774         cmpxchg8b_pic_memory_operand instead of just memory_operand.
17775
17776 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
17777
17778         PR target/39445
17779         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
17780
17781 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
17782
17783         PR target/39327
17784         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
17785         (avx_addsubv4df3): Likewise.
17786         (*avx_addsubv4sf3): Likewise.
17787         (sse3_addsubv4sf3): Likewise.
17788
17789 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
17790
17791         PR target/38824
17792         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
17793
17794 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
17795
17796         PR debug/39432
17797         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
17798         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
17799         registers for allocnos created from user-defined variables.
17800
17801 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17802
17803         PR target/39181
17804         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
17805         of non-integer mode as well.
17806
17807 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
17808
17809         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
17810         for functions for which the parameter types are unknown.
17811
17812 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
17813
17814         PR target/39137
17815         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
17816         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
17817         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
17818         * config/i386/i386.c (ix86_local_alignment): For
17819         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
17820         long long variables on the stack to avoid dynamic realignment.
17821         Allow the first argument to be a decl rather than type.
17822         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
17823
17824 2009-03-11  Nick Clifton  <nickc@redhat.com>
17825
17826         PR target/5362
17827         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
17828         options.
17829         Add description to mno-lsim option.
17830         * config/mcore/mcore.h: Remove comment about deprecated m4align
17831         option.
17832         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
17833         * doc/invoke.texi: Add description of mno-lsim and
17834         mstack-increment options.
17835
17836         * config/fr30/fr30.opt: Document the -mno-lsim option.
17837         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
17838         and -mno-lsim options.
17839
17840 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17841
17842         * fold-const.c (fold_comparison): Only call fold_inf_compare
17843         if the mode supports infinities.
17844
17845 2009-03-11  Jason Merrill  <jason@redhat.com>
17846
17847         PR debug/39086
17848         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
17849         end already did.  Notice GIMPLE_CALL modifications of the result.
17850         Don't copy debug information from an ignored decl or a decl from
17851         another function.
17852
17853 2009-03-10  Richard Guenther  <rguenther@suse.de>
17854             Nathan Froyd  <froydnj@codesourcery.com>
17855
17856         PR middle-end/37850
17857         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
17858         (__divMODE3): Likewise.
17859
17860 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
17861
17862         PR tree-optimization/39394
17863         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
17864         DECL_SIZE_UNIT of variable length FIELD_DECLs.
17865
17866 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
17867
17868         * recog.c (verfiy_changes): Disallow renaming of hard regs in
17869         inline asms for register asm ("") declarations.
17870
17871 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
17872
17873         * fold-const.c (fold_unary): Fix comment.
17874
17875 2009-03-07  Jan Hubicka  <jh@suse.cz>
17876
17877         PR target/39361
17878         * tree-inline.c (setup_one_parameter): Do replacement of const
17879         argument by constant in SSA form.
17880
17881 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
17882
17883         PR middle-end/38028
17884         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
17885         determine alignment passed to assign_stack_local.
17886         (assign_parms_unsplit_complex): Likewise.
17887         * except.c (sjlj_build_landing_pads): Likewise.
17888
17889 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
17890
17891         PR middle-end/39360
17892         * tree-flow.h (add_referenced_var): Return bool instead of void.
17893         * tree-dfa.c (add_referenced_var): Return result of
17894         referenced_var_check_and_insert call.
17895         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
17896         of referenced_var_check_and_insert.
17897
17898         PR debug/39372
17899         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
17900         (gen_variable_die): Emit DW_AT_location on abstract static variable's
17901         DIE, don't emit it if abstract origin already has it.
17902         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
17903         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
17904
17905 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
17906
17907         * genpreds.c (needs_variable): Fix parentheses at variable name
17908         detection.
17909         (write_tm_constrs_h): Indent generated code.
17910
17911 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17912
17913         * doc/extend.texi (Function Attributes): Add documentation
17914         for isr attributes.
17915
17916 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
17917
17918         PR debug/39387
17919         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
17920         take locus from its DECL_SOURCE_LOCATION instead of input_location.
17921
17922 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
17923
17924         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
17925         the loop as bad.
17926
17927 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
17928
17929         PR debug/39379
17930         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
17931         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
17932
17933 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
17934
17935         * config/i386/i386.md (R8_REG, R9_REG): New constants.
17936         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
17937         constants instead of magic numbers.
17938         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
17939         (QI_REG_P): Ditto.
17940         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
17941         (x86_64_ms_abi_int_parameter_registers): Ditto.
17942         (x86_64_int_return_registers): Ditto.
17943         (ix86_maybe_switch_abi): Ditto.
17944         (ix86_expand_call): Ditto for clobbered_registers array.
17945         (ix86_hard_regno_mode_ok): Ditto.
17946         (x86_extended_QIreg_mentioned_p): Ditto.
17947
17948 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
17949
17950         PR tree-optimization/39349
17951         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
17952
17953         * combine.c (gen_lowpart_for_combine): Use omode when generating
17954         clobber.
17955
17956 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
17957
17958         PR rtl-optimization/39235
17959         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
17960
17961 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
17962
17963         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
17964
17965 2009-03-04  Richard Guenther  <rguenther@suse.de>
17966
17967         PR tree-optimization/39362
17968         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
17969         that occur in abnormal PHIs should be varying.
17970
17971 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
17972
17973         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
17974         Extend comments.
17975         (simple_iv):  Take loop as an argument instead of statement.
17976         * tree-scalar-evolution.h (simple_iv): Declaration changed.
17977         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
17978         to simple_iv.
17979         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
17980         Ditto.
17981         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
17982         * matrix-reorg.c (analyze_transpose): Ditto.
17983         * tree-data-ref.c (dr_analyze_innermost): Ditto.
17984         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
17985         * tree-predcom.c (ref_at_iteration): Ditto.
17986         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
17987
17988 2009-03-04  Richard Guenther  <rguenther@suse.de>
17989
17990         PR tree-optimization/39358
17991         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
17992         escaped_id and callused_id.
17993         (solve_graph): Likewise.
17994
17995 2009-03-04  Richard Guenther  <rguenther@suse.de>
17996
17997         PR tree-optimization/39339
17998         * tree-sra.c (try_instantiate_multiple_fields): Make it
17999         no longer ICE on the above.
18000
18001 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
18002
18003         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
18004         that fits within Pmode.
18005
18006 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
18007
18008         PR middle-end/10109
18009         * tm.texi (LIBCALL_VALUE): Update description.
18010
18011 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
18012
18013         PR middle-end/34443
18014         * doc/extend.texi (section): Update description.
18015
18016 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
18017
18018         PR middle-end/39345
18019         * tree-inline.c (remapped_type): New.
18020         (can_be_nonlocal): Call remapped_type instead of remap_type.
18021
18022 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
18023
18024         PR fortran/39354
18025         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
18026         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
18027
18028 2009-03-03  Richard Guenther  <rguenther@suse.de>
18029
18030         PR middle-end/39272
18031         * tree.c (tree_nonartificial_location): New function.
18032         * tree.h (tree_nonartificial_location): Declare.
18033         * builtins.c (expand_builtin_memory_chk): Provide location
18034         of the call location for artificial function pieces.
18035         (maybe_emit_chk_warning): Likewise.
18036         (maybe_emit_sprintf_chk_warning): Likewise.
18037         (maybe_emit_free_warning): Likewise.
18038         * expr.c (expand_expr_real_1): Likewise.
18039
18040 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
18041
18042         PR tree-optimization/39343
18043         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
18044         COMPONENT_REF t has ARRAY_TYPE.
18045
18046 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
18047
18048         PR middle-end/39335
18049         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
18050         when the type precision of the induction variable should be
18051         larger than the type precision of nit.
18052         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
18053         * graphite.c (graphite_loop_normal_form): Same.
18054         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
18055
18056 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
18057
18058         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
18059         (*call_1_rex64_ms_sysv): Use named constants instead of magic
18060         numbers to describe clobbered registers.
18061         (*call_value_0_rex64_ms_sysv): Ditto.
18062         * config/i386/mmx.md (mmx_emms): Ditto.
18063         (mmx_femms): Ditto.
18064
18065 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
18066
18067         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
18068         of ABI_64.
18069
18070 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18071
18072         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
18073         (spu_section_type_flags): New function.
18074
18075 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
18076
18077         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
18078         reg_class_contents of FLOAT_REGS into a temporary.
18079
18080 2009-03-02  Richard Guenther  <rguenther@suse.de>
18081             Ira Rosen  <irar@il.ibm.com>
18082
18083         PR tree-optimization/39318
18084         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
18085         information to the vectorized statement.
18086
18087 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
18088
18089         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
18090         variable.  Use defined names instead of magic constants for REX SSE
18091         registers.
18092
18093 2009-03-01  Richard Guenther  <rguenther@suse.de>
18094
18095         PR tree-optimization/39331
18096         * omp-low.c (lower_send_shared_vars): Do not receive new
18097         values for the reference of DECL_BY_REFERENCE parms or results.
18098
18099 2009-03-01  Jan Hubicka  <jh@suse.cz>
18100
18101         PR debug/39267
18102         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
18103         BLOCK_NONLOCALIZED_VAR): New macros.
18104         (tree_block): Add nonlocalized_vars.
18105         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
18106         gen_decl_die): Add origin argument.  Allow generation of die with
18107         origin at hand only.
18108         (gen_member_die, gen_type_die_with_usage, force_decl_die,
18109         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
18110         of gen_*.
18111         (gen_block_die): Fix checking for unused blocks.
18112         (process_scope_var): Break out from .... ; work with origins only.
18113         (decls_for_scope) ... here; process nonlocalized list.
18114         (dwarf2out_ignore_block): Look for nonlocalized vars.
18115         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
18116         vars.
18117         (dump_scope_block): Dump them.
18118         * tree-inline.c (remap_decls): Handle nonlocalized vars.
18119         (remap_block): Likewise.
18120         (can_be_nonlocal): New predicate.
18121         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
18122
18123 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18124
18125         * configure: Regenerate.
18126
18127 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
18128
18129         * optc-gen.awk: No need to duplicate option flags twice.
18130         Reuse help texts for duplicate options which do not have any.
18131
18132         * gcc.c (display_help): Document --version.
18133
18134         * gcc.c (main): If print_help_list and verbose_flag, ensure
18135         driver output comes before subprocess output.
18136
18137         * optc-gen.awk: Assign all remaining fields to help string,
18138         space-separated, for multi-line help in *.opt.
18139
18140         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
18141         -Wno-pedantic-ms-format is for MinGW targets only.
18142
18143         * doc/options.texi (Option file format): Fix bad indentation,
18144         restoring dropped sentence.
18145
18146 2009-02-28  Jan Hubicka  <jh@suse.cz>
18147
18148         * tree-inline.c (tree_function_versioning): Output debug info.
18149
18150 2009-02-28  Jan Hubicka  <jh@suse.cz>
18151
18152         PR debug/39267
18153         * tree-inline.c (setup_one_parameter): Do not copy propagate
18154         arguments when not optimizing.
18155
18156 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
18157
18158         PR target/39327
18159         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
18160         (avx_addsubv4df3): Likewise.
18161         (*avx_addsubv4sf3): Likewise.
18162         (sse3_addsubv4sf3): Likewise.
18163         (*avx_addsubv2df3): Likewise.
18164         (sse3_addsubv2df3): Likewise.
18165         (avx_unpckhps256): Correct item selectors.
18166         (avx_unpcklps256): Likewise.
18167         (avx_unpckhpd256): Likewise.
18168         (avx_unpcklpd256): Likewise.
18169
18170 2009-02-28  Jan Hubicka  <jh@suse.cz>
18171
18172         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
18173         static vars.
18174         (copy_arguments_for_versioning): If var is declared don't declare it.
18175         (tree_function_versioning): First setup substitutions and then copy
18176         args.
18177
18178 2009-02-27  Jan Hubicka  <jh@suse.cz>
18179
18180         PR debug/39267
18181         * cgraph.h (varpool_output_debug_info): Remove.
18182         * cgraphunit.c (varpool_output_debug_info): Remove.
18183         * dwarf2out.c (deferred_locations_struct): New struct
18184         (deferred_locations): New type.
18185         (deferred_locations_list): New static var.
18186         (deffer_location): New function.
18187         (gen_variable_die): Use it.
18188         (decls_for_scope): Output info on local static vars.
18189         (dwarf2out_finish): Process deferred locations.
18190         * varpool.c (varpool_output_debug_info): Remove.
18191
18192 2009-02-27  Jan Hubicka  <jh@suse.cz>
18193
18194         PR debug/39267
18195         * tree.h (TREE_PROTECTED): Fix comment.
18196         (BLOCK_HANDLER_BLOCK): Remove.
18197         (struct tree_block): Remove handler_block add body_block.
18198         (inlined_function_outer_scope_p): New.
18199         (is_body_block): Remove.
18200         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
18201         * dwarf2out.c (is_inlined_entry_point): Remove.
18202         (add_high_low_attributes): Use inlined_function_outer_scope_p.
18203         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
18204         code.
18205         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
18206         * gimplify.c (gimplify_expr): Gimplify body blocks.
18207         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
18208         block with multiple subblocks.
18209         (dump_scope_block): Prettier output; dump more flags and info.
18210         (dump_scope_blocks): New.
18211         (remove_unused_locals): Use dump_scope_blocks.
18212         * tree-flow.h (dump_scope_blocks): Declare.
18213         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
18214         * stmt.c (is_body_block): Remove.
18215         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
18216         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
18217
18218 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
18219
18220         PR middle-end/39308
18221         * graphite.c (graphite_loop_normal_form): Do not call
18222         number_of_iterations_exit from a gcc_assert.
18223
18224 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18225
18226         * config/s390/s390.c (s390_swap_cmp): Look for conditional
18227         jumps if COND is NULL.
18228         (find_cond_jump): New function.
18229         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
18230         * config/s390/s390.md: Remove z10_cobra attribute value.
18231
18232 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
18233
18234         * config/alpha/alpha.h (alpha_expand_mov): Return false if
18235         force_const_mem returns NULL_RTX.
18236
18237 2009-02-26  Jan Hubicka  <jh@suse.cz>
18238
18239         PR debug/39267
18240         * cgraph.h (varpool_output_debug_info): Remove.
18241         * cgraphunit.c (varpool_output_debug_info): Remove.
18242         * dwarf2out.c (deferred_locations_struct): New struct
18243         (deferred_locations): New type.
18244         (deferred_locations_list): New static var.
18245         (deffer_location): New function.
18246         (gen_variable_die): Use it.
18247         (decls_for_scope): Output info on local static vars.
18248         (dwarf2out_finish): Process deferred locations.
18249         * varpool.c (varpool_output_debug_info): Remove.
18250
18251 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
18252
18253         PR rtl-optimization/39241
18254         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
18255         to subreg_offset_representable_p.
18256
18257 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
18258
18259         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
18260         execute function prototype.  Get f and nregs from max_reg_num
18261         and get_insns.  Remove the first backward pass as it's dead,
18262         guard the forward pass by flag_expensive_optimizations.
18263         (rest_of_handle_regmove): Delete.
18264         (pass_regmove): Replace it with regmove_optimize.
18265
18266 2009-02-25  Martin Jambor  <mjambor@suse.cz>
18267
18268         PR tree-optimization/39259
18269         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
18270         calls_alloca function flags.
18271         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
18272         calls are detected.
18273
18274 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
18275
18276         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
18277         flags_set_1_rtx, flags_set_1_set): Delete.
18278         (regmove_optimize): Do not call mark_flags_life_zones.
18279
18280 2009-02-24  Julian Brown  <julian@codesourcery.com>
18281
18282         PR target/35965
18283         * config/arm/arm.c (require_pic_register): Only set
18284         cfun->machine->pic_reg once per function.
18285
18286 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
18287
18288         * doc/invoke.texi (Link Options): Document an easier way to pass
18289         options that take arguments to the GNU linker using -Xlinker and -Wl.
18290
18291 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
18292
18293         PR target/33785
18294         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
18295
18296 2009-02-24  Richard Guenther  <rguenther@suse.de>
18297
18298         PR debug/39285
18299         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
18300
18301 2009-02-24  Richard Guenther  <rguenther@suse.de>
18302             Zdenek Dvorak  <ook@ucw.cz>
18303
18304         PR tree-optimization/39233
18305         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
18306         from converting them to a generic type.
18307
18308 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
18309
18310         PR tree-optimization/39260
18311         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
18312         contains a condition with a real type.
18313         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
18314
18315 2009-02-23  Jason Merrill  <jason@redhat.com>
18316
18317         PR c++/38880
18318         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
18319         narrowing_initializer_constant_valid_p.
18320         (narrowing_initializer_constant_valid_p): Don't return
18321         null_pointer_node for adding a pointer to itself.
18322
18323 2009-02-23  Jan Hubicka  <jh@suse.cz>
18324
18325         PR c/12245
18326         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
18327         resizing.
18328
18329 2009-02-23  Jan Hubicka  <jh@suse.cz>
18330
18331         PR tree-optimization/37709
18332         * tree.c (block_ultimate_origin): Move here from dwarf2out.
18333         * tree.h (block_ultimate_origin): Declare.
18334         * dwarf2out.c (block_ultimate_origin): Move to tree.c
18335         * tree-ssa-live.c (remove_unused_scope_block_p):
18336         Eliminate blocks containig no instructions nor live variables nor
18337         nested blocks.
18338         (dump_scope_block): New function.
18339         (remove_unused_locals): Enable removal of dead blocks by default;
18340         enable dumping at TDF_DETAILS.
18341
18342 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
18343
18344         * config/i386/i386.c (classify_argument): Don't allow COImode
18345         and OImode.
18346         (function_arg_advance_32): Don't allow OImode.
18347         (function_arg_32): Likewise.
18348         (function_value_32): Likewise.
18349         (return_in_memory_32): Likewise.
18350         (function_arg_64): Remove OImode comment.
18351
18352 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
18353
18354         PR target/39261
18355         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
18356         ix86_expand_vector_set for V4DImode in 64bit mode only.
18357         (ix86_expand_vector_init_one_var): Likewise.
18358
18359 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
18360
18361         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
18362
18363 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
18364
18365         PR bootstrap/39257
18366         * loop-iv.c: Revert last change.
18367         * emit-rtl.c: Likewise.
18368
18369 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
18370
18371         PR target/39256
18372         * config/i386/i386.c (type_natural_mode): Remove an extra
18373         space in the warning message.
18374         (function_value_32): Handle 32-byte vector modes.
18375         (return_in_memory_32): Likewise.
18376
18377 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
18378
18379         * loop-iv.c (truncate_value): New function.
18380         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
18381         of lowpart_subreg.
18382         (lowpart_subreg): Move to...
18383         * emit-rtl.c: ...here.
18384
18385 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
18386
18387         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
18388         accidental and undocumented change at revision 140860.
18389
18390 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
18391
18392         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
18393         take gimple_seq * arguments.
18394         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
18395         types_compatible_p langhook.
18396
18397 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
18398             Joseph Myers  <joseph@codesourcery.com>
18399
18400         * config/arm/arm.c (arm_builtin_va_list): New function.
18401         (arm_expand_builtin_va_start): Likewise.
18402         (arm_gimplify_va_arg_expr): Likewise.
18403         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
18404         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
18405         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
18406         (va_list_type): New variable.
18407         (arm_mangle_type): Mangle va_list_type appropriately.
18408
18409 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
18410
18411         PR middle-end/39157
18412         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
18413         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
18414         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
18415         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
18416         parameter to 1000 for -O1 by default.
18417         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
18418         parameter.
18419         * loop-invariant.c: Include params.h.
18420         (move_loop_invariants): Don't call move_single_loop_invariants on
18421         very large loops.
18422
18423 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
18424
18425         * calls.c (emit_library_call_value_1): Use slot_offset instead of
18426         offset when calculating bounds for indexing stack_usage_map.  Fixes
18427         a buffer overflow with certain target setups.
18428
18429 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
18430
18431         PR target/39240
18432         * calls.c (expand_call): Clear try_tail_call if caller and callee
18433         disagree in promotion of function return value.
18434
18435 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
18436
18437         PR target/39175
18438         * c-common.c (c_determine_visibility): If visibility changed and
18439         DECL_RTL has been already set, call make_decl_rtl to update symbol
18440         flags.
18441
18442 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
18443
18444         PR c++/39188
18445         * varasm.c (assemble_variable): Don't check DECL_NAME when
18446         globalizing a variable.
18447
18448 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
18449
18450         PR c/38483
18451         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
18452         expression before any __builtin_trap call.
18453         * c-typeck.c (build_function_call): Convert and check function
18454         arguments before generating a call to a trap.  Evaluate the
18455         function arguments before the trap.
18456
18457 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
18458
18459         PR target/39228
18460         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
18461         (UNSPEC_FXAM_MEM): New unspec.
18462         (fxam<mode>2_i387_with_temp): New insn and split pattern.
18463         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
18464         memory using fxam<mode>2_i387_with_temp to remove excess precision.
18465
18466 2009-02-19  Richard Guenther  <rguenther@suse.de>
18467
18468         PR tree-optimization/39207
18469         PR tree-optimization/39074
18470         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
18471         storedanything_tree): New.
18472         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
18473         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
18474         (build_succ_graph): Add edges from STOREDANYTHING to all
18475         non-direct nodes.
18476         (init_base_vars): Initialize STOREDANYTHING.
18477         (compute_points_to_sets): Free substitution info after
18478         building the succ graph.
18479         (ipa_pta_execute): Likewise.
18480
18481         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
18482         field.
18483         (do_ds_constraint): Do not add to special var or non-pointer
18484         field solutions.
18485         (type_could_have_pointers): Split out from ...
18486         (could_have_pointers): ... here.  For arrays use the element type.
18487         (create_variable_info_for): Initialize may_have_pointers.
18488         (new_var_info): Likewise.
18489         (handle_lhs_call): Make the HEAP variable unknown-sized.
18490         (intra_create_variable_infos): Use a type with pointers for
18491         PARM_NOALIAS, make it unknown-sized.
18492
18493 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
18494
18495         PR target/39224
18496         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
18497
18498 2009-02-18  Jason Merrill  <jason@redhat.com>
18499
18500         PR target/39179
18501         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
18502         value if DECL_EXTERNAL.
18503         * tree-sra.c (sra_walk_gimple_assign): Likewise.
18504         * target.h (gcc_target::binds_local_p): Clarify "module".
18505         * tree.h (TREE_PUBLIC): Clarify "module".
18506
18507 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
18508
18509         PR target/38891
18510         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
18511         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
18512
18513 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
18514
18515         PR target/39082
18516         * c.opt (Wabi): Support C and ObjC.
18517         (Wpsabi): New.
18518
18519         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
18520
18521         * config/i386/i386.c (classify_argument): Warn once about the ABI
18522         change when passing union with long double.
18523
18524         * doc/invoke.texi: Update -Wabi for warning psABI changes.
18525
18526 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
18527
18528         PR c/35447
18529         * c-parser.c (c_parser_compound_statement): Always enter and leave
18530         a scope.
18531
18532 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18533
18534         PR target/34587
18535         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
18536
18537 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
18538
18539         PR tree-optimization/36922
18540         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
18541         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
18542         Likewise.
18543
18544 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
18545
18546         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
18547         to 0 for EABI64.
18548
18549 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
18550
18551         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
18552
18553 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
18554
18555         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
18556         tree sharing.
18557
18558 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
18559             Richard Sandiford  <rdsandiford@googlemail.com>
18560
18561         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
18562         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
18563         (loongson_biadd): ...this.
18564
18565 2009-02-17  Richard Guenther  <rguenther@suse.de>
18566
18567         PR tree-optimization/39202
18568         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
18569         a var make sure to follow existing collapses.
18570
18571 2009-02-17  Richard Guenther  <rguenther@suse.de>
18572
18573         PR middle-end/39214
18574         * langhooks.c (lhd_print_error_function): Check for NULL block.
18575
18576 2009-02-17  Richard Guenther  <rguenther@suse.de>
18577
18578         PR tree-optimization/39204
18579         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
18580         of the PHI arg.
18581
18582 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
18583
18584         * config/soft-fp/double.h: Update from glibc CVS.
18585
18586 2009-02-17  Richard Guenther  <rguenther@suse.de>
18587
18588         PR tree-optimization/39207
18589         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
18590         strict-aliasing warnings for pointers pointing to NULL.
18591
18592 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
18593
18594         PR c/35446
18595         * c-parser.c (c_parser_braced_init): Call pop_init_level when
18596         skipping until next close brace.
18597
18598 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
18599
18600         PR target/37049
18601         * config/i386/i386.c (ix86_expand_push): Set memory alignment
18602         to function argument boundary.
18603
18604 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
18605
18606         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
18607         in the lea_add. Reload eventually constraints it properly.
18608         * config/picochip/constraints.md: Remove the target constraint
18609         "b", since it is not needed anymore.
18610
18611 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
18612
18613         * gthr-dce.h: Uglify function parameter and local variable names.
18614         * gthr-gnat.h: Likewise.
18615         * gthr-mipssde.h: Likewise.
18616         * gthr-nks.h: Likewise.
18617         * gthr-posix95.h: Likewise.
18618         * gthr-posix.h: Likewise.
18619         * gthr-rtems.h: Likewise.
18620         * gthr-single.h: Likewise.
18621         * gthr-solaris.h: Likewise.
18622         * gthr-tpf.h: Likewise.
18623         * gthr-vxworks.h: Likewise.
18624         * gthr-win32.h: Likewise.
18625
18626 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
18627
18628         PR target/39196
18629         * config/i386/i386.md: Restrict the new peephole2 to move
18630         between MMX/SSE registers.
18631
18632 2009-02-15  Richard Guenther  <rguenther@suse.de>
18633
18634         Revert
18635         2009-02-13  Richard Guenther  <rguenther@suse.de>
18636
18637         * configure.ac: Enable LFS.
18638         * configure: Re-generate.
18639         * config.in: Likewise.
18640
18641 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18642
18643         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
18644         spu_srqwbyte, spu_srqwbytebc): Define.
18645         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
18646         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
18647         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
18648         "shrqby_<mode>"): New insn-and-split patterns.
18649         * config/spu/spu.c (expand_builtin_args): Determine and return
18650         number of operands using spu_builtin_description data.
18651         (spu_expand_builtin_1): Use it.
18652
18653 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
18654
18655         PR target/38056
18656         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
18657         TARGET_CONST_GP.
18658
18659 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
18660
18661         PR target/39149
18662         * config/i386/i386.c (override_options): Correct warning
18663         messages for -malign-loops, -malign-jumps and -malign-functions.
18664
18665 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
18666
18667         PR target/39152
18668         * config/i386/i386.md: Restrict the new peephole2 to move
18669         between the general purpose registers.
18670
18671 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
18672
18673         PR target/39162
18674         * config/i386/i386.c (type_natural_mode): Add a new argument.
18675         Return the original mode and warn ABI change if vector size is 32byte.
18676         (function_arg_advance): Updated.
18677         (function_arg): Likewise.
18678         (ix86_function_value): Likewise.
18679         (ix86_return_in_memory): Likewise.
18680         (ix86_sol10_return_in_memory): Likewise.
18681         (ix86_gimplify_va_arg): Likewise.
18682         (function_arg_32): Don't warn ABX ABI change here.
18683         (function_arg_64): Likewise.
18684
18685 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
18686
18687         * loop-iv.c (implies_p): In the final case, test that operands 0
18688         of the two comparisons match.
18689
18690         * config/bfin/bfin.c (find_prev_insn_start): New function.
18691         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
18692         (find_next_insn_start): Move.
18693
18694 2009-02-13  Richard Guenther  <rguenther@suse.de>
18695
18696         * configure.ac: Enable LFS.
18697         * configure: Re-generate.
18698         * config.in: Likewise.
18699
18700 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
18701
18702         PR c/35444
18703         * c-parser.c (c_parser_parms_list_declarator): Discard pending
18704         sizes on syntax error after some arguments have been parsed.
18705
18706 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
18707
18708         * doc/invoke.texi (-fira): Remove.
18709
18710 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
18711
18712         * caller-save.c: Replace regclass.c with reginfo.c in comments.
18713         * recog.c: Likewise.
18714         * rtl.h: Likewise.
18715
18716 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
18717
18718         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
18719         (umul_ppmm): Likewise.
18720         (count_leading_zeros): Likewise.
18721         (count_trailing_zeros): Likewise.
18722         (UMUL_TIME): Likewise.
18723
18724 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
18725
18726         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
18727         soft-fp/t-softfp to tmake_file.
18728
18729         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
18730         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
18731         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
18732         IA64_BUILTIN_INFQ]: New.
18733         (ia64_init_builtins): Initialize __builtin_infq,
18734         __builtin_fabsq and __builtin_copysignq if not HPUX.
18735         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
18736         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
18737
18738         * config/ia64/lib1funcs.asm (__divtf3): Define only if
18739         SHARED is defined.
18740         (__fixtfti): Likewise.
18741         (__fixunstfti): Likewise.
18742         (__floattitf): Likewise.
18743
18744         * config/ia64/libgcc-glibc.ver: New.
18745         * config/ia64/t-fprules-softfp: Likewise.
18746         * config/ia64/sfp-machine.h: Likewise.
18747
18748         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
18749         (LIBGCC2_TF_CEXT): Likewise.
18750         (TF_SIZE): Likewise.
18751         (TARGET_INIT_LIBFUNCS): Likewise.
18752
18753         * config/ia64/t-glibc (SHLINB_MAPFILES):
18754         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
18755
18756 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
18757
18758         * config/i386/i386.c (construct_container): Rewrite processing
18759         BLKmode with X86_64_SSE_CLASS.
18760
18761 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
18762
18763         PR target/39152
18764         * config/i386/i386.md: Replace simplify_replace_rtx with
18765         replace_rtx in the new peephole2.
18766
18767 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
18768
18769         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
18770         loop unrolling do not happen at -O2.
18771
18772 2009-02-12  Michael Matz  <matz@suse.de>
18773
18774         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
18775
18776 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
18777
18778         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
18779         for -g3.
18780
18781 2009-02-12  Ben Elliston  <bje@au.ibm.com>
18782
18783         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
18784         patterns when updating the back chain.  Missed in the 2009-02-10
18785         change.
18786
18787 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
18788
18789         * doc/extend.texi (Decimal Floating Types): Update identifier of
18790         draft TR and list of missing support.
18791
18792 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
18793
18794         PR middle-end/39154
18795         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
18796         bit to variable length decl's flags, add it also to its
18797         pointer replacement variable.
18798
18799 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
18800             Jakub Jelinek  <jakub@redhat.com>
18801
18802         PR target/39118
18803         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
18804         (memory_blockage): New expander.
18805         (*memory_blockage): New insn pattern.
18806         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
18807         instead of general blockage at the end of function prologue when
18808         frame pointer is used to access red zone area.  Do not emit blockage
18809         when profiling, it is emitted in generic code.
18810         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
18811         function epilogue when frame pointer is used to access red zone area.
18812
18813 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
18814
18815         PR target/38824
18816         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
18817         by arithmetic with memory operands.
18818         * config/i386/predicates.md (commutative_operator): New.
18819
18820 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
18821
18822         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
18823         bulleted lists.
18824
18825 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
18826
18827         * alias.h (record_alias_subset): Declare.
18828         * alias.c (record_alias_subset): Make global.
18829
18830 2009-02-10  Nick Clifton  <nickc@redhat.com>
18831
18832         * tree-parloops.c: Change license to GPLv3.
18833         * ipa-struct-reorg.c: Change license to GPLv3.
18834         * ipa-struct-reorg.h: Change license to GPLv3.
18835
18836 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
18837
18838         PR c/39084
18839         * c-decl.c (start_struct): Return NULL on error.
18840
18841 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
18842
18843         PR middle-end/39124
18844         * cfgloopmanip.c (remove_path): Call remove_bbs after
18845         cancel_loop_tree, not before it.
18846
18847         PR target/39139
18848         * function.h (struct function): Add has_local_explicit_reg_vars bit.
18849         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
18850         VAR_DECLs were seen.
18851         * tree-ssa-live.c (remove_unused_locals): Recompute
18852         cfun->has_local_explicit_reg_vars.
18853         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
18854         copies or clearings if cfun->has_local_explicit_reg_vars.
18855
18856 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
18857
18858         PR target/39118
18859         * config/i386/i386.c (expand_prologue): Emit blockage at the end
18860         of function prologue when frame pointer is used to access
18861         red zone area.
18862
18863 2009-02-10  Richard Guenther  <rguenther@suse.de>
18864
18865         PR middle-end/39127
18866         * gimplify.c (gimple_regimplify_operands): Always look if
18867         we need to create a temporary.
18868
18869 2009-02-10  Richard Guenther  <rguenther@suse.de>
18870
18871         PR tree-optimization/39132
18872         * tree-loop-distribution.c (todo): New global var.
18873         (generate_memset_zero): Trigger TODO_rebuild_alias.
18874         (tree_loop_distribution): Return todo.
18875
18876 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
18877
18878         PR target/39119
18879         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
18880         (x86_64_reg_class_name): Removed.
18881         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
18882         first one isn't X86_64_SSE_CLASS or any other ones aren't
18883         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
18884         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
18885         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
18886         and 3 X86_64_SSEUP_CLASS.
18887         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
18888         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
18889
18890 2009-02-10  Ben Elliston  <bje@au.ibm.com>
18891
18892         * config/rs6000/rs6000.md (allocate_stack): Always use an update
18893         form instruction to update the stack back chain word, even if the
18894         user has disabled the generation of update instructions.
18895         (movdi_<mode>_update_stack): New.
18896         (movsi_update_stack): Likewise.
18897         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
18898         always use an update form instruction to update the stack back
18899         chain word.
18900
18901 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
18902
18903         PR middle-end/38953
18904         * graphite.c (if_region_set_false_region): After moving a region in
18905         the false branch of a condition, remove the empty dummy basic block.
18906         (gloog): Remove wrong fix for PR38953.
18907
18908 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
18909
18910         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
18911         generation due to implicit sign extension.
18912
18913 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
18914
18915         PR middle-end/38981
18916         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
18917         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
18918
18919 2009-02-09  Richard Guenther  <rguenther@suse.de>
18920
18921         PR middle-end/35202
18922         * convert.c (convert_to_real): Disable (float)fn((double)x)
18923         to fnf(x) conversion if errno differences may occur and
18924         -fmath-errno is set.
18925
18926 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
18927
18928         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
18929         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
18930         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
18931
18932 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
18933
18934         PR c/35434
18935         * c-common.c (handle_alias_attribute): Disallow attribute for
18936         anything not a FUNCTION_DECL or VAR_DECL.
18937
18938 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
18939
18940         PR c/39035
18941         * real.c (do_compare): Special-case compare of zero against
18942         decimal float value.
18943
18944 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
18945
18946         PR c/36432
18947         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
18948         as indicating flexible array members unless the field itself is
18949         being declarared as the incomplete array.
18950
18951 2009-02-06  Jan Hubicka  <jh@suse.cz>
18952
18953         PR tree-optimization/38844
18954         * ipa-inline.c (try_inline): Stop inlining recursion when edge
18955         is already inlined.
18956
18957 2009-02-06  Richard Guenther  <rguenther@suse.de>
18958
18959         PR middle-end/38977
18960         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
18961         fork because we may expand it as __gcov_fork.
18962
18963 2009-02-06  Nick Clifton  <nickc@redhat.com>
18964
18965         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
18966
18967 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
18968
18969         PR tree-optimization/35659
18970         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
18971         vn_phi_eq): Shortcut if hashcode does not match.
18972         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
18973         NULL operands.
18974         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
18975         and avoid iterative_hash_expr.
18976         (FOR_EACH_VALUE_ID_IN_SET): New.
18977         (value_id_compare): Remove.
18978         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
18979         sort expressions by value id.
18980
18981 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
18982
18983         PR target/38991
18984         * config/sh/predicates.md (general_movsrc_operand): Don't check
18985         the subreg of system registers here.
18986
18987 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
18988
18989         PR c++/39106
18990         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
18991         on the copied decl.
18992
18993 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
18994
18995         PR rtl-optimization/39110
18996         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
18997         addresses, not aligned ones.
18998
18999 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
19000             Richard Guenther  <rguenther@suse.de>
19001
19002         PR tree-optimization/39100
19003         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
19004         comment says and add edges.
19005
19006 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
19007
19008         PR c/35435
19009         * c-common.c (handle_tls_model_attribute): Ignore attribute for
19010         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
19011
19012 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
19013
19014         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
19015         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
19016         register_bb_in_sese, new_sese, free_sese): Moved.
19017         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
19018         outermost_loop_in_scop, build_scop_iteration_domain,
19019         expand_scalar_variables_ssa_name, get_vdef_before_scop,
19020         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
19021         Use loop_in_sese_p instead of loop_in_scop_p.
19022         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
19023         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
19024         (scopdet_basic_block_info): Fix bug in scop detection.
19025         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
19026         eq_loop_to_cloog_loop): Remove.
19027         (nb_loops_around_loop_in_scop, nb_loop
19028         ref_nb_loops): Moved here...
19029         * graphite.h (ref_nb_loops): ... from here.
19030         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
19031         (loop_domain_dim, loop_iteration_vector_dim): Remove.
19032         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
19033         * testsuite/gcc.dg/graphite/scop-19.c: New
19034
19035 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
19036             Hans-Peter Nilsson  <hp@axis.com>
19037
19038         PR rtl-optimization/37889
19039         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
19040         Move offset handling from PLUS to before the switch.  Use new
19041         arguments when considering SYMBOL_REFs too.
19042         (rtx_addr_can_trap_p): Pass dummy offset and size.
19043         (enum may_trap_p_flags): Remove.
19044         (may_trap_p_1): Pass size from MEM_SIZE.
19045
19046         PR rtl-optimization/38921
19047         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
19048         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
19049         * rtlanal.c (may_trap_after_code_motion_p): Delete.
19050         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
19051
19052 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
19053
19054         AVX Programming Reference (January, 2009)
19055         * config/i386/sse.md (*vpclmulqdq): New.
19056
19057 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
19058
19059         PR tree-optimization/38977
19060         PR gcov-profile/38292
19061         * calls.c (special_function_p): Disregard __builtin_ prefix.
19062
19063 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
19064
19065         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
19066         non-indexable addresses even before reload.
19067
19068 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
19069
19070         PR c/29129
19071         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
19072         as having variable size.  Do not give an error for unnamed
19073         parameters with [*] declarators.  Give a warning for type names
19074         with [*] declarators and mark them as variable size.
19075         * c-parser.c (c_parser_sizeof_expression): Do not give an error
19076         for sizeof applied to [*] type names.
19077
19078 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
19079
19080         PR C++/36607
19081         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
19082
19083 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
19084
19085         * gcc.c (process_command): Update copyright notice dates.
19086         * gcov.c (print_version): Likewise.
19087         * gcov-dump.c (print_version): Likewise.
19088         * mips-tfile.c (main): Likewise.
19089         * mips-tdump.c (main): Likewise.
19090
19091 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
19092
19093         PR c/35433
19094         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
19095         for composite type involving a zero-length array type.
19096
19097 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
19098
19099         PR target/35318
19100         * function.c (match_asm_constraints_1): Skip over
19101         initial optional % in the constraint.
19102
19103         PR inline-asm/39059
19104         * c-parser.c (c_parser_postfix_expression): If fixed point is not
19105         supported, don't accept FIXED_CSTs.
19106         * c-decl.c (finish_declspecs): Error if fixed point is not supported
19107         and _Sat is used without _Fract/_Accum.  Set specs->type to
19108         integer_type_node for cts_fract/cts_accum if fixed point is not
19109         supported.
19110
19111 2009-02-02  Catherine Moore  <clm@codesourcery.com>
19112
19113         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
19114
19115 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
19116
19117         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
19118         (ABI_HAS_64BIT_SYMBOLS): Use it.
19119         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
19120
19121 2009-02-02  Paul Brook  <paul@codesourcery.com>
19122
19123         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
19124
19125 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
19126
19127         PR inline-asm/39058
19128         * recog.h (asm_operand_ok): Add constraints argument.
19129         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
19130         recurse on matching constraint.
19131         (check_asm_operands): Pass constraints as 3rd argument to
19132         asm_operand_ok.  Don't look up matching constraint here.
19133         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
19134         to asm_operand_ok.
19135
19136 2009-02-02  Ben Elliston  <bje@au.ibm.com>
19137
19138         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
19139         TARGET_NARROW_VOLATILE_BITFIELD macro names.
19140
19141 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
19142
19143         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
19144         information.  Remove some obsolete information.  Reorganize.
19145
19146         * config/pa/fptr.c: Revert license to GPL 2.
19147         * config/pa/milli64.S: Likewise.
19148
19149 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
19150
19151         PR target/38904
19152         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
19153         LIBRARY name in, instead of hard-coding it.
19154         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
19155         extra target make frag to tmake_files according to EH model.
19156         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
19157         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
19158         frags that define makefile variable EH_MODEL appropriately.
19159         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
19160         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
19161         to "-sjlj" according to type of EH configured.
19162         (LIBGCC_SONAME):  Concatenate it to shared library base name.
19163         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
19164         to "_sjlj" according to type of EH configured.
19165         (LIBGCC_SONAME):  Concatenate it to shared library base name.
19166         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
19167         (SHLIB_LINK):  Add missing semicolon to if-else construct.
19168         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
19169         string value of "pe_dll" command-line option.
19170         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
19171         (SHLIB_SONAME):  Use it when overriding t-cygming default.
19172         (SHLIB_IMPLIB):  Override t-cygming default.
19173         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
19174         string value of "pe_dll" command-line option.
19175
19176 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
19177
19178         PR target/38952
19179         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
19180         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
19181
19182 2009-01-31  Richard Guenther  <rguenther@suse.de>
19183
19184         PR tree-optimization/38937
19185         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
19186         computing the transitive closure.
19187
19188 2009-01-30  Richard Guenther  <rguenther@suse.de>
19189
19190         PR tree-optimization/39041
19191         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
19192         Propagate variable indices only if the types match for this stmt.
19193
19194 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
19195
19196         PR target/39013
19197         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
19198         inline but never defined.
19199
19200 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
19201
19202         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
19203         (*insv_h_di_reg_extimm): New insn.
19204         (*insv_l<mode>_reg_extimm): New insn.
19205
19206 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
19207
19208         * config/picochip/picochip.c (flag_conserve_stack): set
19209         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
19210         fconserve-stack. Reduce call-overhead used by inliner.
19211
19212 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
19213
19214         PR/38157
19215         * common.opt (flag_conserve_stack): Initialised to zero.
19216
19217 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
19218
19219         PR/39002
19220         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
19221         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
19222         method.
19223
19224 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
19225
19226         * ira-color.c (allocno_reload_assign): Update comments.
19227         * regmove.c (regmove_optimize): Likewise.
19228
19229         * ra.h: Removed.
19230
19231 2009-01-29  Robert Millan  <rmh@aybabtu.com>
19232
19233         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
19234         * config/i386/kopensolaris-gnu.h: New file.  Undefine
19235         `MD_UNWIND_SUPPORT'.
19236         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
19237
19238 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
19239
19240         PR tree-optimization/39007
19241         * tree-loop-distribution.c (generate_builtin): Use
19242         recompute_dominator to compute the immediate dominator of the
19243         basic block just after the loop.
19244
19245 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
19246
19247         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
19248         (ASM_OUTPUT_DWARF_PCREL): Define.
19249
19250 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
19251
19252         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
19253         * doc/passes.texi: Remove entries about regclass, local-alloc, and
19254         global.  Modify entries about regmove and IRA.
19255
19256         * ra-conflict.c: Remove the file.
19257
19258         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
19259
19260         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
19261         (pass_regclass_init): Rename to pass_reginfo_init.
19262
19263         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
19264
19265         * toplev.h (flag_ira): Remove.
19266
19267         * caller-save.c (setup_save_areas): Remove flag_ira.
19268
19269         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
19270
19271         * global.c: Remove the file.
19272
19273         * opts.c (decode_options): Remove flag_ira.
19274
19275         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
19276
19277         * regmove.c: Modify file description.
19278         (find_use_as_address, try_auto_increment): Define them only if
19279         AUTO_INC_DEC is defined.
19280         (replacement_quality, replace_in_call_usage, fixup_match_1,
19281         stable_and_no_regs_but_for_p): Remove.
19282         (reg_set_in_bb): Make it static.
19283         (regmove_optimize): Remove flag_ira and code which worked for
19284         !flag_ira.
19285
19286         * local-alloc.c: Remove the file.
19287
19288         * common.opt (fira): Remove.
19289
19290         * ira.c: Include except.h.
19291         (eliminable_regset): Move from global.c.
19292         (mark_elimination): Ditto.  Remove flag_ira.
19293         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
19294         equiv_mem_modified, validate_equiv_mem_from_store,
19295         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
19296         contains_replace_regs, memref_referenced_p, memref_used_between_p,
19297         no_equiv, recorded_label_ref): Move from local-alloc.c.
19298         (update_equiv_regs): Ditto.  Make it static.
19299         (print_insn_chain, print_insn_chains): Move it from global.c.
19300         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
19301         (build_insn_chain): Ditto.  Make it static.
19302         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
19303         Rename to init_live_subregs.
19304         (gate_ira): Remove flag_ira.
19305
19306         * regclass.c: Rename reginfo.c.  Change file description.
19307         (FORBIDDEN_INC_DEC_CLASSES): Remove.
19308         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
19309         (init_reg_sets_1): Remove code for evaluation of
19310         reg_class_superclasses and losing_caller_save_reg_set.
19311         (init_regs): Remove init_reg_autoinc.
19312         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
19313         ok_for_base_p_nonstrict): Remove.
19314         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
19315         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
19316         corresponding entries.
19317         (dump_regclass, record_operand_costs, scan_one_insn,
19318         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
19319         record_address_regs, auto_inc_dec_reg_p): Remove.
19320         (gt-regclass.h): Rename to gt-reginfo.h.
19321
19322         * rtl.h (dump_global_regs, retry_global_alloc,
19323         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
19324
19325         * Makefile.in (RA_H): Remove.
19326         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
19327         Rename regclass.o to reginfo.o.
19328         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
19329         gt-reginfo.h.
19330         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
19331         (GTFILES): Rename regclass.c to reginfo.c.
19332
19333         * passes.c (init_optimization_passes): Remove pass_local_alloc and
19334         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
19335
19336         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
19337         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
19338         Remove flag_ira.
19339         (finish_spills): Ditto.  Remove code for !flag_ira.
19340
19341 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
19342
19343         PR middle-end/35854
19344         * doc/invoke.texi (rtl debug options): Complete rewrite.
19345         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
19346         to auto_inc_dec".
19347         * mode-switching.c (pass_mode_switching): Rename pass from
19348         "mode-sw" to "mode_sw".
19349         * except.c (pass_convert_to_eh_ranges): Rename pass from
19350         "eh-ranges" to "eh_ranges".
19351         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
19352         to "subreg1".
19353
19354
19355 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
19356             Alexander Monakov  <amonakov@ispras.ru>
19357
19358         PR middle-end/38857
19359         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
19360         register.
19361         (move_exprs_to_boundary): Change return type and pass through
19362         should_move from move_op.  Relax assert.  Update usage ...
19363         (schedule_expr_on_boundary): ... here.  Use should_move instead of
19364         cant_move.
19365         (move_op_orig_expr_found): Indicate that insn was disconnected from
19366         stream.
19367         (code_motion_process_successors): Do not call after_merge_succs
19368         callback if original expression was not found when traversing any of
19369         the branches.
19370         (code_motion_path_driver): Change return type.  Update prototype.
19371         (move_op): Update comment.  Add a new parameter (should_move).  Update
19372         prototype.  Set *should_move based on indication provided by
19373         move_op_orig_expr_found.
19374
19375 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
19376
19377         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
19378         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
19379         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
19380         * config/rs6000/rs6000.c (rs6000_override_options): Default
19381         avoid-indexed-addresses on for Power6, off for everything else.
19382         (avoiding_indexed_address_p): New function.
19383         (rs6000_legitimize_address): Use it.
19384         (rs6000_legitimate_address): Likewise.
19385         * config/rs6000/rs6000.md (movXX_updateX): Likewise
19386
19387 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
19388
19389         PR tree-optimization/38997
19390         * tree-loop-distribution.c (generate_memset_zero): Use
19391         POINTER_PLUS_EXPR for a pointer addition.
19392
19393 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
19394
19395         * config/s390/s390.md (bswap<mode>2): New pattern added.
19396
19397 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
19398
19399         * config/s390/s390.md (*tls_load_31): Added type attribute.
19400
19401 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
19402
19403         * config/s390/s390.md: Fix a few comments.
19404
19405 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
19406
19407         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
19408         (*tm<mode>_full): Fixed z10prop attribute.
19409         (*tst<mode>_extimm): Fixed z10prop attribute.
19410         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
19411         (*tstqiCCT_cconly): Fixed z10prop attribute.
19412         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
19413         (*movsi_larl): Fixed z10prop attribute.
19414         (*movsi_zarch): Fixed z10prop attribute.
19415         (*movsi_eas): Fixed z10prop attribute.
19416         (*movhi): Fixed z10prop attribute.
19417         (*movqi): Fixed z10prop attribute.
19418         (*movstrictqi): Fixed z10prop attribute.
19419         (*mov<mode>): Fixed z10prop attribute.
19420         (*movcc): Fixed z10prop attribute.
19421         (*sethighpartdi_64): Fixed z10prop attribute.
19422         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
19423         (*negdi2_sign_cc): Fixed z10prop attribute.
19424         (*negdi2_sign): Fixed z10prop attribute.
19425         (*absdi2_sign_cc): Fixed z10prop attribute.
19426         (*absdi2_sign): Fixed z10prop attribute.
19427         (*negabsdi2_sign_cc): Fixed z10prop attribute.
19428         (*negabsdi2_sign): Fixed z10prop attribute.
19429         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
19430         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
19431         (doloop_si64): Fixed z10prop attribute.
19432         (doloop_si31): Fixed z10prop attribute.
19433         (doloop_long): Fixed z10prop attribute.
19434         (indirect_jump): Fixed z10prop attribute.
19435         (nop): Fixed z10prop attribute.
19436         (main_base_64): Fixed z10prop attribute.
19437         (reload_base_64): Fixed z10prop attribute.
19438
19439 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
19440
19441         PR rtl-optimization/38740
19442         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
19443         if !optimize.
19444         * config/mips/mips.c (mips_reorg): Likewise.
19445
19446 2009-01-28  Richard Guenther  <rguenther@suse.de>
19447
19448         PR tree-optimization/38926
19449         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
19450         with the correct value id to a value.
19451         (do_regular_insertion): Use the value number of edoubleprime
19452         for the value number of the expr.
19453
19454         Revert
19455         2008-08-21  Richard Guenther  <rguenther@suse.de>
19456
19457         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
19458         a PHI ask VN if it is already available.
19459         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
19460         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
19461
19462 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
19463
19464         PR middle-end/38934
19465         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
19466         set to varying whenever max has TREE_OVERFLOW set, similarly
19467         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
19468
19469 2009-01-28  Richard Guenther  <rguenther@suse.de>
19470
19471         PR middle-end/38908
19472         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
19473         uninitialized aggregate uses in call arguments.
19474
19475 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
19476
19477         PR tree-optimization/38984
19478         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
19479         the nothing_id variable if -fno-delete-null-pointer-checks.
19480
19481 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
19482
19483         PR target/38988
19484         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
19485         (set_got_offset_rex64): Ditto.
19486
19487 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
19488
19489         PR target/38941
19490         * doc/extend.texi: Improve local variable with asm reg.
19491
19492 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
19493
19494         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
19495         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
19496         was not supplied then set warn_packed_bitfield_compat to the
19497         default value of 1.
19498         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
19499         against 1.
19500
19501 2009-01-27  Richard Guenther  <rguenther@suse.de>
19502
19503         PR tree-optimization/38503
19504         * cfgexpand.c (expand_gimple_basic_block): Ignore
19505         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
19506         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
19507         variables that cannot have TBAA applied.
19508         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
19509         statements.
19510
19511 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
19512
19513         PR middle-end/38969
19514         * calls.c (initialize_argument_information): Do not wrap complex
19515         arguments in SAVE_EXPR.
19516
19517 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
19518
19519         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
19520         (INSTALL_LIBGCC): Revert typo commit.
19521
19522 2009-01-26  Richard Guenther  <rguenther@suse.de>
19523
19524         PR tree-optimization/38745
19525         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
19526         from special handling.
19527
19528 2009-01-26  Richard Guenther  <rguenther@suse.de>
19529
19530         PR tree-optimization/38745
19531         * tree-ssa.c (execute_update_addresses_taken): Do not include
19532         variables that cannot possibly be a register in not_reg_needs.
19533         Do not clear TREE_ADDRESSABLE on vars that may not become
19534         registers.
19535         * tree-ssa.c (update_alias_info_1): Include those in the set
19536         of addressable vars.
19537
19538 2009-01-26  Richard Guenther  <rguenther@suse.de>
19539
19540         PR middle-end/38851
19541         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
19542         * tree-ssa-dse.c: Include langhooks.h
19543         (execute_simple_dse): Remove stores with zero size.
19544
19545 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
19546
19547         PR c/38957
19548         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
19549         as PLUS_EXPR.
19550
19551 2009-01-24  Julian Brown  <julian@codesourcery.com>
19552
19553         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
19554         config/arm/linux-atomic.c.
19555         * config/arm/linux-atomic.c: New.
19556
19557 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
19558
19559         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
19560         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
19561         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
19562
19563 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
19564
19565         PR c/38938
19566         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
19567         properly.
19568
19569 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
19570
19571         PR tree-optimization/38953
19572         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
19573         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
19574         (gloog): Split the exit of the scop when the scop exit is a loop exit.
19575         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
19576         changed the CFG.
19577
19578 2009-01-24  Paul Brook  <paul@codesourcery.com>
19579
19580         * config/arm/neon.md (neon_type): Move to arm.md.
19581         (neon_mov<VSTRUCT>): Add neon_type attribute.
19582         * config/arm/arm.md (neon_type): Move to here.
19583         (conds): Add "unconditioal" and use as default for NEON insns.
19584
19585 2009-01-24  Ben Elliston  <bje@au.ibm.com>
19586
19587         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
19588         void *' warning from -Wc++-compat.
19589         * Makefile.in (dominance.o-warn): Remove.
19590
19591 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
19592
19593         PR tree-optimization/38932
19594         * fold-const.c (fold_unary_ignore_overflow): New.
19595         * tree.h (fold_unary_ignore_overflow): Declare.
19596         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
19597         * tree-ssa-sccvn.c (visit_reference_op_load,
19598         simplify_unary_expression): Likewise.
19599
19600 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
19601
19602         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
19603         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
19604         regardless of their type.
19605         * c-common.c (handle_packed_attribute): Don't ignore packed on
19606         bitfields.
19607         * c.opt (Wpacked-bitfield-compat): New warning option.
19608         * stor-layout.c (place_field): Warn if offset of a field changed.
19609         * doc/extend.texi (packed): Mention the ABI change.
19610         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
19611         (Warning Options): Add it to the list.
19612
19613 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
19614
19615         * c-opts.c (c_common_post_options): Fix a typo in comments.
19616
19617 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
19618
19619         PR middle-end/38615
19620         * gimplify.c (gimplify_init_constructor): Fix promotion of const
19621         variables to static.
19622         * doc/invoke.texi (-fmerge-all-constants): Update description.
19623
19624 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
19625
19626         PR target/38931
19627         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
19628         (*movdi_1_rex64): Use type "mmx" for alternative 5.
19629
19630 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
19631
19632         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
19633         a word boundary.
19634         (LOCAL_ALIGNMENT): Similarly.
19635
19636 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
19637             Joseph Myers  <joseph@codesourcery.com>
19638
19639         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
19640         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
19641         * config/arm/arm-tune.md: Regenerate.
19642         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
19643         -march=iwmmxt2.
19644
19645 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
19646
19647         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
19648         version number to five.
19649
19650 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
19651
19652         PR c++/38930
19653         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
19654         * c-common.c (set_underlying_type): Likewise.
19655         (is_typedef_decl ): Likewise
19656         * tree.h: Likewise
19657         (set_underlying_type): Likewise.
19658         (is_typedef_type): Likewise.
19659
19660 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
19661
19662         PR middle-end/38587
19663         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
19664         crossing setjmps.
19665
19666 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
19667
19668         PR bootstrap/37660
19669         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
19670         (LIBGCC_SPEC):  Don't define.
19671         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
19672
19673 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
19674
19675         PR rtl-optimization/38879
19676         * alias.c (base_alias_check): Unaligned access via AND address can
19677         alias all surrounding object types except those with sizes equal
19678         or wider than the size of unaligned access.
19679
19680 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
19681
19682         PR c++/26693
19683         * c-decl.c (clone_underlying_type): Move this ...
19684         * c-common.c (set_underlying_type): ... here.
19685         Also, make sure the function properly sets TYPE_STUB_DECL() on
19686         the newly created typedef variant type.
19687         (is_typedef_decl ): New entry point.
19688         * tree.h: Added a new member member_types_needing_access_check to
19689         struct tree_decl_non_common.
19690         (set_underlying_type): New entry point.
19691         (is_typedef_type): Likewise.
19692
19693 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
19694
19695         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
19696         Check whether two instructions have memory references that
19697         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
19698         are helper functions for traversing.
19699         * alias.h (insn_alias_sets_confilict_p): New prototypes.
19700         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
19701         not to draw dependency edge for instructions with non-conflicting
19702         alias sets.
19703
19704 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
19705
19706         PR other/38758
19707         * longlong.h: Update copyright years.  Use soft-fp license notice.
19708         Sync __clz_tab declaration with glibc.
19709
19710 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
19711
19712         PR target/30687
19713         * doc/extend.texi (syscall_linkage): New.
19714         (version_id): Modify.
19715
19716 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
19717             Richard Guenther  <rguenther@suse.de>
19718
19719         PR tree-optimization/38747
19720         PR tree-optimization/38748
19721         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
19722         conversion if the base address is an indirect reference and the
19723         aliasing sets could cause issues.
19724
19725 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
19726
19727         * common.opt (fgraphite, fgraphite-identity): Add comment for
19728         explaining why these options are not documented.
19729
19730 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
19731
19732         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
19733         gimple_call_lhs is NULL.
19734
19735 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
19736
19737         PR target/38868
19738         * emit-rtl.c (adjust_address_1): Make sure memref is never
19739         overwritten.
19740
19741 2009-01-20  Ben Elliston  <bje@au.ibm.com>
19742
19743         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
19744         const qualifier from arg parameter. Remove unnecessary cast to char *.
19745         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
19746         const qualifier from arg 2.
19747
19748 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
19749
19750         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
19751
19752 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
19753
19754         PR c/38869
19755         * rtl.h (reinit_regs): New prototype.
19756         * regclass.c: Include ira.h.
19757         (reinit_regs): New.
19758         * Makefile.in (regclass.o): Add ira.h.
19759         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
19760
19761 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
19762
19763         PR target/38736
19764         * c-common.c (handle_aligned_attribute): Use
19765         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
19766         default alignment value.
19767
19768         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
19769
19770         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
19771         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
19772
19773         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
19774         __BIGGEST_ALIGNMENT__.
19775
19776         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
19777
19778 2009-01-18  Richard Guenther  <rguenther@suse.de>
19779
19780         PR tree-optimization/38819
19781         * tree-flow.h (operation_could_trap_helper_p): Declare.
19782         * tree-eh.c (operation_could_trap_helper_p): Export.
19783         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
19784         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
19785         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
19786         are about to insert a possibly trapping instruction and fail
19787         in this case.
19788
19789 2009-01-18  Andreas Schwab  <schwab@suse.de>
19790
19791         * doc/install.texi (Configuration): Remove obsolete paragraph
19792         about use of --with-gnu-ld with --with-gnu-as.
19793
19794 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
19795
19796         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
19797         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
19798         Follow spelling conventions.
19799
19800 2009-01-18  Ben Elliston  <bje@au.ibm.com>
19801
19802         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
19803         C++ warning about implicit conversion from void * to struct
19804         bitmap_head_def *.
19805         (bitmap_obstack_free): Likewise for bitmap_element *.
19806         * Makefile.in (bitmap.o-warn): Remove.
19807
19808 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
19809
19810         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
19811
19812 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
19813             Tobias Grosser  <tobi.grosser@amd.com>
19814
19815         * graphite.c (graphite_trans_scop_block): Do not block single
19816         nested loops.
19817
19818 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
19819
19820         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
19821         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
19822         test with assertion.
19823
19824 2009-01-16  Richard Guenther  <rguenther@suse.de>
19825
19826         PR tree-optimization/38835
19827         PR middle-end/36227
19828         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
19829         and INT + PTR -> (INT)(PTR p+ INT) folding.
19830         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
19831
19832 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
19833
19834         PR target/38554
19835         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
19836         the subreg from a lowpart subreg if it is also casting the value.
19837
19838 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19839             Tobias Grosser  <tobi.grosser@amd.com>
19840
19841         * graphite.c (compare_prefix_loops): New.
19842         (build_scop_canonical_schedules): Rewritten.
19843         (graphite_transform_loops): Move build_scop_canonical_schedules
19844         after build_scop_iteration_domain.
19845
19846 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
19847             Tobias Grosser  <tobi.grosser@amd.com>
19848
19849         * graphite.c (add_conditions_to_domain): Add the loops to
19850         the dimension of the iteration domain.  Do copy the domain
19851         only when it exists.
19852         (build_scop_conditions_1): Do not call add_conditions_to_domain.
19853         (add_conditions_to_constraints): New.
19854         (can_generate_code_stmt, can_generate_code): Removed.
19855         (gloog): Do not call can_generate_code.
19856         (graphite_transform_loops): Call add_conditions_to_constraints
19857         after building the iteration domain.
19858
19859 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
19860
19861         PR tree-optimization/38789
19862         * tree-ssa-threadedge.c
19863         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
19864         __builtin_constant_p.
19865
19866 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
19867
19868         * dce.c (delete_unmarked_insns): Reversed the order that insns are
19869         examined before deleting them.
19870
19871 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
19872
19873         * function.c (aggregate_value_p): Correctly extract the function
19874         type from CALL_EXPR_FN lookup.
19875
19876 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
19877
19878         * config/picochip/picochip.c (picochip_override_options): Revert
19879         CFI asm flag disable commited previously.
19880
19881 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
19882             Tobias Grosser  <tobi.grosser@amd.com>
19883             Jan Sjodin  <jan.sjodin@amd.com>
19884
19885         * graphite.c (scan_tree_for_params): On substractions negate
19886         all the coefficients of the term.
19887         (clast_to_gcc_expression_red): New.  Handle reduction expressions
19888         of more than two operands.
19889         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
19890         (get_vdef_before_scop): Handle also the case of default definitions.
19891
19892 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
19893
19894         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
19895         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
19896         Also use them when walking CALL_INSN_FUNCTION_USAGE.
19897
19898 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
19899             Joey Ye  <joey.ye@intel.com>
19900
19901         PR middle-end/37843
19902         * cfgexpand.c (expand_stack_alignment): Don't update stack
19903         boundary nor check incoming stack boundary here.
19904         (gimple_expand_cfg): Update stack boundary and check incoming
19905         stack boundary here.
19906
19907 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
19908
19909         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
19910
19911 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
19912
19913         PR rtl-optimization/38245
19914         * calls.c (expand_call): Add stack arguments to
19915         CALL_INSN_FUNCTION_USAGE even for pure calls (when
19916         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
19917         in regs and partially in memory or BLKmode arguments.
19918         (emit_library_call_value_1): Add stack arguments to
19919         CALL_INSN_FUNCTION_USAGE even for pure calls (when
19920         ACCUMULATE_OUTGOING_ARGS).
19921         * dce.c: Include tm_p.h.
19922         (find_call_stack_args): New function.
19923         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
19924         argument.
19925         (mark_insn): Call find_call_stack_args for CALL_Ps.
19926         (prescan_insns_for_dce): Walk insns backwards in bb rather than
19927         forwards.  Allocate and free arg_stores bitmap if needed, pass it
19928         down to deletable_insn_p, don't mark stores set in arg_stores
19929         bitmap, clear the bitmap at the beginning of each bb.
19930         * Makefile.in (dce.o): Depend on $(TM_P_H).
19931
19932 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
19933
19934         PR target/22599
19935         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
19936         to make sure the insn is a conditional test (bug 22599).  Reformat a
19937         few long lines.
19938
19939 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
19940
19941         PR middle-end/38431
19942         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
19943         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
19944         (gloog): Do not call cleanup_tree_cfg.
19945         (graphite_transform_loops): Call cleanup_tree_cfg after all
19946         scops have been code generated.
19947
19948 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
19949         * doc/gty.texi (Invoking the garbage collector): Added new node
19950         and section documenting ggc_collect.
19951
19952 2009-01-14  Richard Guenther  <rguenther@suse.de>
19953
19954         PR tree-optimization/38826
19955         PR middle-end/38477
19956         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
19957         initialization notes only if we actually emitted a warning.
19958         (intra_create_variable_infos): Add constraints for a result decl
19959         that is passed by hidden reference.
19960         (build_pred_graph): Mark all related variables non-direct on
19961         address-taking.
19962
19963 2009-01-14  Nick Clifton  <nickc@redhat.com>
19964
19965         * ira-conflicts.c: Include addresses.h for the definition of
19966         base_reg_class.
19967         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
19968         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
19969
19970 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
19971
19972         PR target/38811
19973         * Makefile.in (ira-lives.o): Add except.h.
19974
19975         * ira-lives.c: Include except.h.
19976         (process_bb_node_lives): Process can_throw_internal.
19977
19978 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
19979
19980         PR rtl-optimization/38774
19981         * combine.c (simplify_set): When undoing cc_use change, don't do
19982         PUT_CODE on the newly created comparison, but instead put back the
19983         old comparison.
19984
19985 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
19986
19987         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
19988         values.  Remove duplicate arm8 entry.
19989
19990 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
19991
19992         PR tree-optimization/38786
19993         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
19994         the SSA_NAME case of expand_scalar_variables_expr.
19995         Set the type of an expression to the type of its assign statement.
19996         (expand_scalar_variables_expr): Also gather the scalar computation
19997         used to index the memory access.  Do not pass loop_p.
19998         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
19999         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
20000         the gimple_stmt_iterator where it inserts new code.
20001         Do not pass loop_p.
20002         (copy_bb_and_scalar_dependences): Do not pass loop_p.
20003         (translate_clast): Update call to copy_bb_and_scalar_dependences.
20004
20005 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
20006
20007         * graphite.h (debug_value): Removed.
20008         * graphite.c (debug_value): Removed.
20009
20010 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
20011
20012         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
20013         ldrd/strd with two 32-bit instructions.
20014
20015 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
20016
20017         * config/arm/arm.c (struct processors): Pass for speed down into
20018         cost helper functions.
20019         (const_ok_for_op): Handle COMPARE and inequality nodes.
20020         (arm_rtx_costs_1): Rewrite.
20021         (arm_size_rtx_costs): Update prototype.
20022         (arm_rtx_costs): Pass speed down to helper functions.
20023         (arm_slowmul_rtx_costs): Rework cost calculations.
20024         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
20025         (arm_9e_rtx_costs): Likewise.
20026
20027 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
20028
20029         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
20030         relocations of local symbols wider than UNITS_PER_WORD are not valid.
20031         (alpha_legitimize_address): Do not split local symbols wider than
20032         UNITS_PER_WORD into HIGH/LO_SUM parts.
20033
20034 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
20035
20036         PR bootstrap/38580
20037         * gcc.c (process_command): Replace call to execvp with calls
20038         to pex_one and exit.
20039
20040 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
20041
20042         PR target/29141
20043         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
20044         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
20045         variant for devices with 3-byte PC.
20046         (__tablejump_elpm__): New.
20047
20048 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
20049
20050         PR c/32041
20051         * c-parser.c (c_parser_postfix_expression): Allow `->' in
20052         offsetof member-designator, handle it as `[0].'.
20053
20054 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20055
20056         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
20057         function when not using named sections on targets with named sections
20058         if branch distance is less than 262132.
20059
20060 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
20061
20062         * combine.c (combine_instructions):  Recompute
20063         optimize_this_for_speed_p  for each BB in the main combine loop.
20064
20065 2009-01-12  Tomas Bily  <tbily@suse.cz>
20066
20067         PR middlend/38385
20068         * tree-loop-distribution.c (prop_phis): New function.
20069         (generate_builtin): Call prop_phis.
20070         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
20071
20072 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
20073
20074         PR tree-optimization/38807
20075         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
20076         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
20077
20078 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
20079
20080         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
20081         subreg of op0 to the original op0.
20082
20083 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
20084
20085         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
20086
20087 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
20088
20089         PR debug/7055
20090         * mips-tfile.c (parse_def): Fix parsing of def strings
20091         starting with digits.
20092
20093 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
20094
20095         PR target/38695
20096         * config/arm/arm.c (arm_is_long_call_p): Don't call
20097         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
20098
20099 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
20100
20101         * regrename.c (regrename_optimize): Fix dumping.
20102         (find_oldest_value_reg): Preserve REG_POINTER.
20103         (copy_hardreg_forward_1): Likewise.
20104
20105 2009-01-09  Diego Novillo  <dnovillo@google.com>
20106
20107         * gimple.h (struct gimple_statement_base) <uid>: Document
20108         the restrictions on its use.
20109         (gimple_uid): Tidy.
20110         (gimple_set_uid): Tidy.
20111
20112 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
20113
20114         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
20115         zero guard even if align_bytes != 0 and count is smaller than
20116         size_needed.
20117
20118 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
20119
20120         PR rtl-optimization/38495
20121         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
20122         (add_range_and_copies_from_move_list): Print all added ranges.
20123         Add ranges to memory optimized destination.
20124
20125 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
20126
20127         PR target/38686
20128         PR target/38708
20129         * config/i386/i386.c (override_options): Reject
20130         -mstringop-strategy=rep_8byte with -m32.
20131         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
20132         to 1.  Do count comparison against epilogue_size_needed at compile
20133         time even when count_exp was constant forced into register.  For
20134         size_needed don't jump to epilogue, instead just avoid aligning
20135         and invoke the body algorithm.  If need_zero_guard, add zero guard
20136         even if count is non-zero, but smaller than size_needed + number of
20137         bytes that could be stored for alignment.
20138         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
20139         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
20140         but smaller than size_needed + number of bytes that could be stored
20141         for alignment.  Compare size_needed with epilogue_size_needed instead
20142         of desired_align - align, don't adjust size_needed, pass
20143         epilogue_size_needed to the epilogue expanders.
20144
20145         PR c/35742
20146         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
20147
20148 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20149
20150         * pa.c (last_address): Change to unsigned.
20151         (update_total_code_bytes): Change argument to unsigned.  Don't
20152         check if insn addresses are set.
20153         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
20154         addresses are not set.
20155         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
20156
20157 2009-01-09  Nick Clifton  <nickc@redhat.com>
20158
20159         * config/sh/symbian.c: Replace uses of DECL_INLINE with
20160         DECL_DECLARED_INLINE_P.
20161
20162 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
20163
20164         PR middle-end/38347
20165         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
20166         GET_MODE (op0) in operand_subword_force calls.
20167
20168         PR middle-end/38771
20169         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
20170         fold_convert arg0 operands to TREE_TYPE (op0) first.
20171
20172 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
20173
20174         * params.def (ira-max-conflict-table-size): Decrease default value
20175         to 1000.
20176
20177 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
20178
20179         PR tree-optimization/37031
20180         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
20181         on parameter_set.
20182         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
20183         allocate it using gc instead of heap, use VEC_quick_push instead of
20184         VEC_safe_push.
20185         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
20186         instead of heap, use VEC_quick_push instead of VEC_safe_push.
20187         * tree-data-ref.h (struct access_matrix): Change matrix to gc
20188         allocated vector from heap allocated.
20189         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
20190         * tree-loop-linear.c (linear_transform_loops): Allocate nest
20191         vector only after perfect_loop_nest_depth call.
20192
20193 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
20194             Jan Sjodin  <jan.sjodin@amd.com>
20195
20196         PR tree-optimization/38559
20197         * graphite.c (debug_value, copy_constraint,
20198         swap_constraint_variables, scale_constraint_variable, ): New.
20199         (get_lower_bound, get_upper_bound): Removed.
20200         (graphite_trans_bb_strip_mine): Clean up this code that works
20201         only for constant number of iterations.  Fully copy upper and
20202         lower bound constraints, not only the constant part of them.
20203         * graphite.h (debug_value): Declared.
20204
20205 2009-01-08  Ira Rosen  <irar@il.ibm.com>
20206
20207         PR tree-optimization/37194
20208         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
20209         Don't add the cost of cost model guard in prologue to scalar
20210         outside cost in case of known number of iterations.
20211
20212 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
20213             Alan Modra  <amodra@bigpond.net.au>
20214
20215         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
20216         non-word-aligned REG+CONST addressing.
20217
20218 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
20219
20220         PR target/38706
20221         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
20222         free_after_compilation when outputting a thunk.
20223         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
20224         Do not call free_after_compilation here.
20225
20226 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
20227
20228         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
20229         (ix86_valid_target_attribute_inner_p): Ditto.
20230
20231 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
20232
20233         PR tree-optimization/38492
20234         PR tree-optimization/38498
20235         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
20236         * tree-chrec.h (scev_is_linear_expression): Declared.
20237         * graphite.c (graphite_cannot_represent_loop_niter): New.
20238         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
20239         (graphite_loop_normal_form): Use gcc_assert.
20240         (scan_tree_for_params): Use CASE_CONVERT.
20241         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
20242         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
20243         Use gcc_assert.  Discard scops that contain unhandled cases.
20244         (build_scop_conditions): Return a boolean status for unhandled cases.
20245         (strip_mine_profitable_p): Print the loop number, not its depth.
20246         (is_interchange_valid): Pass the depth of the loop nest, don't
20247         recompute it wrongly.
20248         (graphite_trans_bb_block): Same.
20249         (graphite_trans_bb_block): Print tentative of loop blocking.
20250         (graphite_trans_scop_block): Do not print that the loop has been
20251         blocked.
20252         (graphite_transform_loops): Do not handle scops that contain condition
20253         scalar phi nodes.
20254
20255 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
20256
20257         AVX Programming Reference (December, 2008)
20258         * config/i386/avxintrin.h (_mm256_stream_si256): New.
20259         (_mm256_stream_pd): Likewise.
20260         (_mm256_stream_ps): Likewise.
20261
20262         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
20263         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
20264         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
20265         (bdesc_special_args): Add __builtin_ia32_movntdq256,
20266         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
20267         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
20268         (ix86_expand_special_args_builtin): Likewise.
20269
20270         * config/i386/sse.md (AVXMODEDI): New.
20271         (avx_movnt<mode>): Likewise.
20272         (avx_movnt<mode>): Likewise.
20273         (<sse>_movnt<mode>): Remove AVX support.
20274         (sse2_movntv2di): Likewise.
20275
20276 2009-01-07  Richard Guenther  <rguenther@suse.de>
20277
20278         PR middle-end/38751
20279         * fold-const.c (extract_muldiv): Remove obsolete comment.
20280         (fold_plusminus_mult_expr): Undo MINUS_EXPR
20281         to PLUS_EXPR canonicalization for the canonicalization.
20282
20283 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
20284
20285         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
20286         hosted cross-compilers generating less efficient code.
20287
20288 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
20289
20290         * function.h (rtl_data): Add a dbr_scheduled_p field.
20291         * reorg.c (dbr_schedule): Set it.
20292         (gate_handle_delay_slots): Check it.
20293         * config/mips/mips.c (mips_base_delayed_branch): Delete.
20294         (mips_reorg): Check flag_delayed_branch instead of
20295         mips_base_delayed_branch.
20296         (mips_override_options): Don't set mips_base_delayed_branch
20297         or flag_delayed_branch.
20298
20299 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
20300
20301         PR rtl-optimization/38426.
20302         * ira.c (ira): Set current_function_is_leaf earlier.
20303
20304 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
20305
20306         PR rtl-optimization/38722
20307         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
20308         too early, only set a flag and modify after last possible
20309         undo_all point.
20310
20311 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
20312
20313         PR c/34252
20314         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
20315         * real.c (decimal_single_format): Correct values of emin and emax.
20316         (decimal_double_format): Ditto.
20317         (decimal_quad_format): Ditto.
20318         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
20319         computation of DECnn_MIN and DECnn_MAX for corrected values of
20320         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
20321         __DECnn_MIN__, and adjust its computation for the corrected value
20322         of emin.
20323
20324 2009-01-06  Jan Hubicka  <jh@suse.cz>
20325
20326         PR target/38744
20327         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
20328
20329 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
20330
20331         * doc/contrib.texi (Contributors): Slightly adjust the end note.
20332         Add Robert Clark to the list of testers.
20333
20334 2009-01-06  Jan Hubicka  <jh@suse.cz>
20335             Kai Tietz  <kai.tietz@onevision.com>
20336
20337         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
20338         * config/i386/i386.c (ix86_expand_call): Add clobbers.
20339
20340 2009-01-06  Jan Hubicka  <jh@suse.cz>
20341             Kai Tietz  <kai.tietz@onevision.com>
20342
20343         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
20344         for w64 ABI.
20345         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
20346         (ix86_nsaved_regs): Count only general purpose regs.
20347         (ix86_nsaved_sseregs): New.
20348         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
20349         to 16 for w64; compute padding and size of sse reg save area.
20350         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
20351         general purpose regs.
20352         (ix86_emit_save_sse_regs_using_mov): New.
20353         (ix86_expand_prologue): Save SSE regs if needed.
20354         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
20355         (ix86_emit_restore_sse_regs_using_mov): New.
20356         (ix86_expand_epilogue): Save SSE regs if needed.
20357
20358 2009-01-06  Jan Hubicka  <jh@suse.cz>
20359             Kai Tietz  <kai.tietz@onevision.com>
20360
20361         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
20362         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
20363         functions when accumulate outgoing args is off.
20364
20365 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
20366
20367         PR bootstrap/38742
20368         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
20369         before using pseudos_have_intersected_live_ranges_p.
20370
20371         * ira-int.h (ira_assert): Always define.
20372
20373 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
20374
20375         AVX Programming Reference (December, 2008)
20376         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
20377         (_mm256_permute2_pd): Likewise.
20378         (_mm_permute2_ps): Likewise.
20379         (_mm256_permute2_ps): Likewise.
20380         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
20381         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
20382
20383         * config/i386/i386.c (ix86_builtins): Remove
20384         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
20385         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
20386         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
20387         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
20388         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
20389         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
20390         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
20391         __builtin_ia32_vpermil2ps256.
20392         (ix86_init_mmx_sse_builtins): Updated.
20393         (ix86_expand_args_builtin): Likewise.
20394
20395 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20396
20397         * pa.c (output_call): Relocate non-jump insns in the delay slot of
20398         long absolute calls when generating PA 2.0 code.
20399
20400 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
20401
20402         PR rtl-optimization/38583
20403         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
20404
20405         * params.def (ira-max-conflict-table-size): New.
20406
20407         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
20408
20409         * ira.h (ira_conflicts_p): New external definition.
20410
20411         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
20412         table.  Report this.  Return result of building.
20413         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
20414         building conflict table.
20415
20416         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
20417         (ira_color): Use ira_conflicts_p.
20418
20419         * global.c: Include ira.h.
20420         (pseudo_for_reload_consideration_p, build_insn_chain): Use
20421         ira_conflicts_p.
20422
20423         * Makefile.in (global.o): Add ira.h.
20424
20425         * ira-build.c (mark_all_loops_for_removal,
20426         propagate_some_info_from_allocno): New.
20427         (remove_unnecessary_allocnos): Call
20428         propagate_some_info_from_allocno.
20429         (remove_low_level_allocnos): New.
20430         (remove_unnecessary_regions): Add parameter.  Call
20431         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
20432         parameter to remove_unnecessary_regions.
20433         (ira_build): Remove all regions but root if the conflict table was
20434         not built.  Update conflict hard regs for allocnos crossing calls.
20435
20436         * ira.c (ira_conflicts_p): New global.
20437         (ira): Define and use ira_conflicts_p.
20438
20439         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
20440         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
20441         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
20442
20443 2009-01-06  Ben Elliston  <bje@au.ibm.com>
20444
20445         * gengtype-lex.l (YY_NO_INPUT): Define.
20446
20447 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
20448
20449         PR c/34911
20450         * c-common.c (handle_vector_size_attribute): Also reject
20451         BOOLEAN_TYPE types.
20452
20453 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
20454
20455         PR tree-optimization/38492
20456         * graphite.c (rename_map_elt, debug_rename_elt,
20457         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
20458         rename_map_elt_info, eq_rename_map_elts,
20459         get_new_name_from_old_name, bb_in_sese_p): Moved around.
20460         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
20461         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
20462         (sese_build_livein_liveouts): New.
20463         (new_sese, free_sese): New.
20464         (new_scop): Call new_sese.
20465         (free_scop): Call free_sese.
20466         (rename_variables_from_edge, rename_phis_end_scop): Removed.
20467         (register_old_new_names): Renamed register_old_and_new_names.
20468         (register_scop_liveout_renames, add_loop_exit_phis,
20469         insert_loop_close_phis, struct igp,
20470         default_liveout_before_guard, add_guard_exit_phis,
20471         insert_guard_phis, copy_renames): New.
20472         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
20473         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
20474         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
20475         (scop_adjust_phis_for_liveouts): New.
20476         (gloog): Call scop_adjust_phis_for_liveouts.
20477
20478         * graphite.h (struct sese): Documented.  Added fields liveout,
20479         num_ver and livein.
20480         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
20481         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
20482         (struct scop): Added field liveout_renames.
20483         (SCOP_LIVEOUT_RENAMES): New.
20484
20485 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
20486
20487         PR tree-optimization/38510
20488         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
20489         (translate_clast): Call recompute_all_dominators before
20490         graphite_verify.
20491         (gloog): Call recompute_all_dominators before graphite_verify.
20492
20493 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
20494             Jan Sjodin  <jan.sjodin@amd.com>
20495
20496         PR tree-optimization/38500
20497         * graphite.c (create_sese_edges): Call fix_loop_structure after
20498         splitting blocks.
20499
20500 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
20501
20502         * config.gcc: Add m32r*-*-rtems*.
20503         * config/m32r/rtems.h: New file.
20504
20505 2009-01-05  Ben Elliston  <bje@au.ibm.com>
20506
20507         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
20508         (.po.pox): Likewise.
20509         (po/gcc.pot): Likewise.
20510
20511 2009-01-04  David S. Miller  <davem@davemloft.net>
20512
20513         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
20514         (STARTING_FRAME_OFFSET): Always set to zero.
20515
20516 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
20517
20518         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
20519         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
20520         fixed-point types, and vectors of the same.
20521
20522 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
20523
20524         * config/mips/sync.md (*mb_barrier): Rename to...
20525         (*memory_barrier): ...this.
20526
20527 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
20528
20529         * doc/extend.texi (Function Attributes): Move @cindex after @item
20530         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
20531         and put in alphabetical order. Fix 'target' name and put in order.
20532         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
20533         typos.
20534
20535 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
20536
20537         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
20538         (memory_barrier): Expand as unspec instead of unspec_volatile.
20539         Remove mem:BLK from insn operands.  Use Pmode scratch register.
20540         (*memory_barrier): Define as unspec instead of unspec_volatile.
20541         Use (match_dup 0) as input operand.
20542
20543         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
20544         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
20545         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
20546         scratch register.  Remove operand 1.
20547         (*stbar): Define as unspec instead of unspec_volatile.
20548         Use (match_dup 0) as input operand, remove (const_int 8).
20549         (*membar): Define as unspec instead of unspec_volatile.
20550         Use (match_dup 0) as input operand, remove input operand 2.
20551
20552         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
20553         (memory_barrier): Expand as unspec instead of unspec_volatile.
20554         Remove mem:BLK from insn operands.  Use Pmode scratch register.
20555         (*memory_barrier): Define as unspec instead of unspec_volatile.
20556         Use (match_dup 0) as input operand.
20557
20558         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
20559         Remove mem:BLK from insn operands.  Use Pmode scratch register.
20560         Set volatile flag on operand 0.
20561         (*memory_barrier): New insn pattern.
20562
20563         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
20564         insn operands.
20565         (*memory_barrier): Use (match_dup 0) as input operand.
20566
20567         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
20568         Remove mem:BLK from insn operands.  Use Pmode scratch register.
20569         Set volatile flag on operand 0.
20570         (*mb_internal): New insn pattern.
20571
20572         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
20573
20574 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
20575
20576         PR middle-end/38586
20577         * function.c (struct temp_slot): Move to the section of the file
20578         that deals with temp slots.  Remove field 'address'.
20579         (temp_slot_address_table): New hash table of address -> temp slot.
20580         (struct temp_slot_address_entry): New struct, items for the table.
20581         (temp_slot_address_compute_hash, temp_slot_address_hash,
20582         temp_slot_address_eq, insert_temp_slot_address): Support functions
20583         for the new table.
20584         (find_temp_slot_from_address): Rewrite to use the new hash table.
20585         (remove_unused_temp_slot_addresses): Remove addresses of temp
20586         slots that have been made available.
20587         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
20588         worker function for remove_unused_temp_slot_addresses.
20589         (assign_stack_temp_for_type): Don't clear the temp slot address list.
20590         Add the temp slot address to the address -> temp slot map.
20591         (update_temp_slot_address): Update via insert_temp_slot_address.
20592         (free_temp_slots): Call remove_unused_temp_slot_addresses.
20593         (pop_temp_slots): Likewise.
20594         (init_temp_slots): Allocate the address -> temp slot map, or empty
20595         the map if it is already allocated.
20596         (prepare_function_start): Initialize temp slot processing.
20597
20598 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
20599
20600         PR middle-end/38584
20601         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
20602         Calculate the size of all stack vars assuming no packing of stack
20603         vars will happen, replacing a quadratic algorithm with a linear one.
20604
20605 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
20606
20607         PR target/38707
20608         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
20609         can't be used.
20610
20611 2009-01-03  Diego Novillo  <dnovillo@google.com>
20612
20613         * doc/contrib.texi: Update contributions.
20614
20615 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
20616
20617         PR c++/38705
20618         * builtins.c (fold_builtin_memory_op): Give up if either operand
20619         is volatile.  Set srctype or desttype to non-qualified version
20620         of the other type.
20621
20622         PR c/38700
20623         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
20624         and FUNCTION_DECLs.
20625
20626 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
20627
20628         PR rtl-optimization/35805
20629         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
20630         problem if fast dce is able to remove any instructions.
20631         * dce.c (dce_process_block): Fix dump message.
20632
20633 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
20634
20635         PR 33649
20636         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
20637
20638 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
20639
20640         PR middle-end/38690
20641         * tree-flow.h (op_code_prio, op_prio): New prototypes.
20642         * tree-pretty-print.c (op_code_prio): New function.
20643         (op_prio): No longer static.  Use op_code_prio.
20644         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
20645         Use op_prio and op_code_prio to determine if () should be
20646         printed around operand(s) or not.
20647
20648         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
20649         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
20650         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
20651         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
20652         pp_character instead of pp_string for single letter printing.
20653
20654 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
20655
20656         * doc/extend.texi: Fix '#pragma GCC option' typo.
20657
20658 2009-01-02  Richard Guenther  <rguenther@suse.de>
20659
20660         * doc/install.texi (--enable-checking): Mention different
20661         default for stage1.
20662         (--enable-stage1-checking): Document.
20663
20664 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
20665
20666         PR middle-end/30142
20667         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
20668         case to be an error.
20669
20670 2009-01-02  Ben Elliston  <bje@au.ibm.com>
20671
20672         * config/fp-bit.h (pack_d): Constify argument.
20673         * config/fp-bit.c (makenan): Constify return type. Remove casts.
20674         (isnan): Constify argument.
20675         (isinf): Likewise.
20676         (iszero): Likewise.
20677         (pack_d): Likewise.
20678         (_fpadd_parts): Constify return type.
20679         (_fpmul_parts): Likewise.
20680         (_fpdiv_parts): Likewise.
20681
20682 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
20683
20684         PR c/36489
20685         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
20686         warn about overwriting initializer with side-effects or
20687         -Woverride-init if !IMPLICIT.
20688         (output_init_element): Likewise.  Pass IMPLICIT down to
20689         add_pending_init.
20690         (process_init_element): Add IMPLICIT argument.  Pass it down
20691         to output_init_element.
20692         (push_init_element, pop_init_level, set_designator): Adjust
20693         process_init_element callers.
20694         (set_nonincremental_init, set_nonincremental_init_from_string):
20695         Adjust add_pending_init callers.
20696         (output_pending_init_elements): Adjust output_init_element callers.
20697         * c-tree.h (process_init_element): Adjust prototype.
20698         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
20699         process_init_element callers.
20700
20701 \f
20702 Copyright (C) 2009 Free Software Foundation, Inc.
20703
20704 Copying and distribution of this file, with or without modification,
20705 are permitted in any medium without royalty provided the copyright
20706 notice and this notice are preserved.