OSDN Git Service

ce703aec11979b730abb6a6b223d785b039b579f
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2
3         PR target/40463
4         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition.
5
6 2009-06-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7
8        * config/arm/arm.c (arm_override_options): Disable -mcaller-super-interworking
9        and -mcallee-super-interworking.
10        * doc/invoke.texi (ARM Options): Document this.
11
12 2009-06-22  Nathan Sidwell  <nathan@codesourcery.com>
13
14         * config/arm/arm.c (arm_print_operand): Deal with HIGH.
15         * config/arm/constraints.md (j): New constraint for movw operands.
16         (N): Remove thumb2 meaning.
17         * config/arm/arm.md (*arm_movw): Delete.
18         (*arm_movsi_insn): Use j constraint for movw instead of N constraint.
19         * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise.
20         * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise.
21
22 2009-06-22  Martin Jambor  <mjambor@suse.cz>
23
24         PR tree-optimization/40492
25         * tree-sra.c (sra_modify_assign): Pass zero offsets to
26         build_ref_for_offset.
27
28 2009-06-22  Shujing Zhao  <pearly.zhao@oracle.com>
29
30         * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and
31         JUMP_TABLE_DATA_P predicates where applicable.
32         * auto-inc-dec.c: Ditto.
33         * builtins.c: Ditto.
34         * caller-save.c: Ditto.
35         * calls.c: Ditto.
36         * cfgcleanup.c: Ditto.
37         * cfglayout.c: Ditto.
38         * cfgrtl.c: Ditto.
39         * combine.c: Ditto.
40         * combine-stack-adj.c: Ditto.
41         * cse.c: Ditto.
42         * cselib.c: Ditto.
43         * dbxout.c: Ditto.
44         * df-scan.c: Ditto.
45         * dse.c: Ditto.
46         * dwarf2asm.c: Ditto.
47         * dwarf2out.c: Ditto.
48         * emit-rtl.c: Ditto.
49         * except.c: Ditto.
50         * explow.c: Ditto.
51         * expmed.c: Ditto.
52         * expr.c: Ditto.
53         * final.c: Ditto.
54         * function.c: Ditto.
55         * fwprop.c: Ditto.
56         * gcse.c: Ditto.
57         * genpreds.c: Ditto.
58         * genrecog.c: Ditto.
59         * ifcvt.c: Ditto.
60         * ira-costs.c: Ditto.
61         * ira-lives.c: Ditto.
62         * jump.c: Ditto.
63         * loop-iv.c: Ditto.
64         * lower-subreg.c: Ditto.
65         * modulo-sched.c: Ditto.
66         * optabs.c: Ditto.
67         * postreload.c: Ditto.
68         * print-rtl.c: Ditto.
69         * recog.c: Ditto.
70         * reginfo.c: Ditto.
71         * regmove.c: Ditto.
72         * reload1.c: Ditto.
73         * reload.c: Ditto.
74         * reorg.c: Ditto.
75         * rtlanal.c: Ditto.
76         * rtl.c: Ditto.
77         * sched-vis.c: Ditto.
78         * sdbout.c: Ditto.
79         * sel-sched-ir.c: Ditto.
80         * simplify-rtx.c: Ditto.
81         * targhooks.c: Ditto.
82         * var-tracking.c: Ditto.
83         * vmsdbgout.c: Ditto.
84
85 2009-06-22  Matthias Klose  <doko@ubuntu.com>
86
87         * Makefile.in (install-plugin): Always use DESTDIR.
88
89 2009-06-22  Olivier Hainque  <hainque@adacore.com>
90         
91         * config/pa/pa.c (output_call): Don't optimize post call jumps
92         into return address adjustments if the call may throw.
93
94 2009-06-21  Richard Earnshaw  <rearnsha@arm.com>
95
96         * arm.c (thumb1_output_casesi): New function.
97         * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if
98         optimizing for size or PIC.
99         (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1.
100         * arm.md (UNSPEC_THUMB1_CASESI): New constant.
101         (casesi): Handle Thumb-1 when optimizing for size or PIC.
102         (thumb1_casesi_internal_pic): New expand rule.
103         (thumb1_casesi_dispatch): New pattern.
104         * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for
105         thumb-1 mode.
106         * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now
107         in the text seciton when PIC or optimizing for size.
108         * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
109         * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack
110         preservation properties of code.
111         (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions.
112         (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions.
113         (__gnu_thumb1_case_si): New function.
114         * t-arm (LIB1ASMSRC): Define here.
115         (LIB1ASMFUNCS): Add some common functions.
116         * t-arm-elf (LIB1ASMSRC): Delete.
117         (LIB1ASMFUNCS): Append to existing set.
118         * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
119         * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
120         * t-symbian (LIB1ASMFUNCS): Likewise.
121         * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
122         * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise.
123
124 2009-06-21  Richard Guenther  <rguenther@suse.de>
125
126         PR tree-optimization/38729
127         * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict
128         to loops with a single exit if -fno-expensive-optimizations.
129
130 2009-06-21  Jakub Jelinek  <jakub@redhat.com>
131
132         * var-tracking.c (struct shared_hash_def, shared_hash): New types.
133         (dataflow_set): Change vars type from htab_t to shared_hash.
134         (shared_hash_pool, empty_shared_hash): New variables.
135         (vars_clear): Removed.
136         (shared_hash_shared, shared_hash_htab, shared_hash_copy,
137         shared_hash_find_slot_unshare, shared_hash_find_slot,
138         shared_hash_find_slot_noinsert, shared_hash_find): New
139         static inlines.
140         (shared_hash_unshare, shared_hash_destroy): New functions.
141         (unshare_variable): Unshare set->vars if shared, use
142         shared_hash_htab.
143         (vars_copy): Use htab_traverse_noresize instead of htab_traverse.
144         (get_init_value, find_src_set_src, dump_dataflow_set,
145         clobber_variable_part, emit_notes_for_differences): Use
146         shared_hash_htab.
147         (dataflow_set_init): Remove second argument, set vars to
148         empty_shared_hash instead of creating a new htab.
149         (dataflow_set_clear): Call shared_hash_destroy and set vars
150         to empty_shared_hash instead of calling vars_clear.
151         (dataflow_set_copy): Don't call vars_copy, instead just share
152         the src htab with dst.
153         (variable_union): Use shared_hash_*, use initially NO_INSERT
154         lookup if set->vars is shared.  Don't keep slot cleared before
155         calling unshare_variable.  Unshare set->vars if needed.
156         Even ->refcount == 1 vars must be unshared if set->vars is shared
157         and var needs to be modified.
158         (variable_canonicalize): New function.
159         (dataflow_set_union): If dst->vars is empty, just share src->vars
160         with dst->vars and traverse with variable_canonicalize to canonicalize
161         and unshare what is needed.
162         (dataflow_set_different): If old_set and new_set use the same shared
163         htab, they aren't different.  If number of htab elements is different,
164         htabs are different.  Use shared_hash_*.
165         (dataflow_set_destroy): Call shared_hash_destroy instead of
166         htab_delete.
167         (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass
168         second argument to dataflow_set_init.
169         (vt_initialize): Likewise.  Initialize shared_hash_pool and
170         empty_shared_hash, move bb in/out initialization afterwards.
171         Use variable_htab_free instead of NULL as changed_variables del hook.
172         (variable_was_changed): Change type of second argument to pointer to
173         dataflow_set.  When inserting var into changed_variables, bump
174         refcount.  Unshare set->vars if set is shared htab and slot needs to
175         be cleared.
176         (set_variable_part): Use shared_hash_*, use initially NO_INSERT
177         lookup if set->vars is shared.  Unshare set->vars if needed.
178         Even ->refcount == 1 vars must be unshared if set->vars is shared
179         and var needs to be modified.  Adjust variable_was_changed caller.
180         (delete_variable_part): Use shared_hash_*.  Even ->refcount == 1
181         vars must be unshared if set->vars is shared and var needs to be
182         modified.  Adjust variable_was_changed caller.
183         (emit_note_insn_var_location): Don't pool_free var.
184         (emit_notes_for_differences_1): Initialize empty_var->refcount to 0
185         instead of 1.
186         (vt_finalize): Call htab_delete on empty_shared_hash->htab and
187         free_alloc_pool on shared_hash_pool.
188
189 2009-06-20  Anthony Green  <green@moxielogic.com>
190
191         * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define.
192         * config/moxie/moxie.h (LOAD_EXTEND_OP): Define.
193
194 2009-06-20  Richard Guenther  <rguenther@suse.de>
195
196         * tree-ssa-structalias.c (find_func_aliases): For memset use
197         a constraint from NULL if we memset to zero.
198         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins
199         we explicitly handle that do not read from memory.
200         (call_may_clobber_ref_p_1): Properly handle builtins that may
201         set errno.
202
203 2009-06-20  Richard Guenther  <rguenther@suse.de>
204
205         PR tree-optimization/40495
206         * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove.
207         (new_scalar_tmp_constraint_exp): New function.
208         (process_constraint): Do not create temporary decls.
209         (process_all_all_constraints): Likewise.
210         (handle_const_call): Likewise.
211         (create_function_info_for): Do not set decl.
212
213 2009-06-19  Ian Lance Taylor  <iant@google.com>
214
215         * config/rs6000/rs6000.c (rs6000_explicit_options): Make static.
216         (rs6000_attribute_table): Make static; move before use.
217
218 2009-06-19  Eric Botcazou  <ebotcazou@adacore.com>
219
220         * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat.
221         <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR.
222         Propagate the TREE_READONLY flag without overwriting it.
223         (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise.
224         Propagate the TREE_READONLY flag onto the result.
225         (process_call_operands): Move around.  Use correct constant value.
226
227 2009-06-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
228
229         PR target/40482
230         * config/arm/arm.c (thumb_shiftable_const): Truncate val to 
231         32 bits.
232         * config/arm/arm.md: Likewise.
233
234 2009-06-19  Ian Lance Taylor  <ian@airs.com>
235
236         * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK
237         to GIMPLE_ERROR_MARK.
238
239         * c-typeck.c (build_conditional_expr): Add op1_original_type and
240         op2_original_type parameters.  Warn about using different enum
241         types.
242         * c-parser.c (c_parser_conditional_expression): Pass original
243         types to build_conditional_expr.
244         * c-tree.h (build_conditional_expr): Update declaration.
245
246 2009-06-19  Ian Lance Taylor  <iant@google.com>
247
248         * config/i386/i386.c (ix86_function_specific_save): Test that
249         fields match values, rather than testing the values are in a
250         certain range.
251
252 2009-06-19  Richard Guenther  <rguenther@suse.de>
253
254         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
255         ADDR_EXPR pointers.
256         (ptr_derefs_may_alias_p): Likewise.
257         (ptr_deref_may_alias_ref_p_1): New function.
258         (ptr_deref_may_alias_ref_p): Likewise.
259         (ref_maybe_used_by_call_p_1): Handle builtins that are not
260         covered by looking at the ESCAPED solution.
261         (call_may_clobber_ref_p_1): Likewise.
262         * tree-ssa-structalias.c (get_constraint_for_ptr_offset):
263         Handle NULL_TREE offset.  Do not produce redundant constraints.
264         (process_all_all_constraints): New helper function.
265         (do_structure_copy): Use it.
266         (handle_lhs_call): Likewise.
267         (find_func_aliases): Handle some builtins with pointer arguments
268         and/or return values explicitly.
269
270 2009-06-19  Ian Lance Taylor  <iant@google.com>
271
272         * varasm.c (const_rtx_hash_1): Remove const qualifier from shift.
273
274 2009-06-19  Ian Lance Taylor  <iant@google.com>
275
276         * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int.
277
278 2009-06-19  Ian Lance Taylor  <iant@google.com>
279
280         * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes.
281         * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO
282         version.
283
284         * c-decl.c (finish_decl): If -Wc++-compat, warn about
285         uninitialized const.
286
287 2009-06-19  Ian Lance Taylor  <iant@google.com>
288
289         * dse.c (struct store_info): Rename bitmap field to bmap.  Change
290         all uses.
291
292         * c-decl.c (in_struct, struct_types): Remove.
293         (struct c_binding): Add in_struct field.
294         (c_binding_ptr): Define type, along with VEC.
295         (struct c_struct_parse_info): Define.
296         (struct_parse_info): New static variable.
297         (bind): Initialize in_struct field.
298         (start_struct): Remove enclosing_in_struct and
299         enclosing_struct_types parameters.  Add
300         enclosing_struct_parse_info parameter.  Change all callers.  Set
301         struct_parse_info rather than in_struct and struct_types.
302         (grokfield): If -Wc++-compat and there is a symbol binding for the
303         field name, set the in_struct flag and push it on the
304         struct_parse_info->fields vector.
305         (warn_cxx_compat_finish_struct): New static function.
306         (finish_struct): Remove enclosing_in_struct and
307         enclosing_struct_types parameters.  Add
308         enclosing_struct_parse_info parameter.  Change all callers.  Don't
309         set C_TYPE_DEFINED_IN_STRUCT here.  Call
310         warn_cxx_compat_finish_struct.  Free struct_parse_info and set to
311         parameter.  Only push on struct_types if warn_cxx_compat.
312         (finish_enum): Only push on struct_types if warn_cxx_compat.
313         (declspecs_add_type): Add loc parameter.  Change all callers.
314         Change all error calls to error_at.  Pass loc, not input_location,
315         to pedwarn calls.  Warn if -Wc++-compat and a typedef name is
316         defined in a struct.  If -Wc++-compat and parsing a struct, record
317         that a typedef name was used.
318         * c-parser.c (c_parser_declspecs): Get location to pass to
319         declspecs_add_type.
320         (c_parser_struct_or_union_specifier): Update calls to start_struct
321         and finish_struct.
322         * c-tree.h (struct c_struct_parse_info): Declare.
323         (finish_struct, start_struct): Update declarations.
324         (declspecs_add_type): Update declaration.
325
326 2009-06-19  Ian Lance Taylor  <iant@google.com>
327
328         * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global
329         variable with an anonymous type.
330
331 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
332
333         * see.c: Remove for real.
334
335 2009-06-19  Uros Bizjak  <ubizjak@gmail.com>
336
337         * optabs.h (enum optab_index): Add new OTI_significand.
338         (significand_optab): Define corresponding macro.
339         * optabs.c (init_optabs): Initialize significand_optab.
340         * genopinit.c (optabs): Implement significand_optab using
341         significand?f2 patterns.
342         * builtins.c (expand_builtin_mathfn): Handle
343         BUILT_IN_SIGNIFICAND{,F,L}.
344         (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using
345         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
346
347         * config/i386/i386.md (significandxf2, significand<mode>2): New
348         expanders to implement significandf, significand and significandl
349         built-ins as inline x87 intrinsics.
350
351 2009-06-18  Anatoly Sokolov  <aesok@post.ru>
352
353         * config/avr/avr.c (avr_override_options): Remove setting value of
354         PARAM_INLINE_CALL_COST.
355
356 2009-06-18  Richard Henderson  <rth@redhat.com>
357
358         PR 40488
359         * tree-pass.h (TDF_ASMNAME): New.
360         * tree-dump.c (dump_options): Add asmname.
361         * doc/invoke.texi: Document it.
362
363         * tree-pretty-print.c (maybe_dump_asm_name): Merge into...
364         (dump_decl_name): ...here.
365         (dump_function_name): New flags arg; mind TDF_ASMNAME.
366         (dump_generic_node): Update dump_function_name calls.
367         (print_call_name): New flags arg; update all dump calls.
368         * diagnostic.h (print_call_name): Update.
369         * gimple-pretty-print.c (dump_gimple_call): Update.
370
371 2009-06-18  H.J. Lu  <hongjiu.lu@intel.com>
372
373         PR target/40470
374         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG.
375
376 2009-06-18  Diego Novillo  <dnovillo@google.com>
377
378         * doc/plugins.texi: Document plugin_is_GPL_compatible.
379         * plugin.c (str_license): Declare.
380         (try_init_one_plugin): Assert that the symbol
381         'plugin_is_GPL_compatible' exists.
382
383 2009-06-18  Sergei Dyshel  <sergeid@il.ibm.com>
384
385         * see.c: Remove.
386         * Makefile.in (OBJS-common): Remove see.o.
387         (see.o): Remove.
388         * common.opt (fsee): Mark as preserved for backward compatibility.
389         * opts.c (common_handle_option): Add OPT_fsee to the backward 
390         compatibility section.
391         * passes.c (init_optimization_passes, pass_see): Remove pass.
392         * timevar.def (TV_SEE): Remove.
393         * tree-pass.h (pass_see): Remove declaration.
394         * doc/invoke.texi (-fsee): Remove documentation.
395         
396 2009-06-18  Martin Jambor  <mjambor@suse.cz>
397
398         * tree-sra.c: Include statistics.h
399         (sra_stats): New variable.
400         (sra_initialize): Clear sra_stats.
401         (create_access_replacement): Increment sra_stats.replacements.
402         (get_access_replacement): Do not return twice.
403         (analyze_all_variable_accesses): Increment statistics counter by the
404         number of scalarized aggregates.
405         (generate_subtree_copies): Increment sra_stats.subtree_copies.
406         (sra_modify_expr): Increment sra_stats.exprs.
407         (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements.
408         (sra_modify_assign): Increment sra_stats.exprs,
409         sra_stats.separate_lhs_rhs_handling and sra_stats.deleted.
410         (perform_intra_sra): Update statistics counters.
411         * Makefile.in (tree-sra.o): Add statistics.h to dependencies.
412
413 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
414
415         * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine.
416         (arm_scalar_mode_supported_p): New function.
417
418 2009-06-18  Paul Brook  <paul@codesourcery.com>
419             Sandra Loosemore  <sandra@codesourcery.com>
420
421         * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define.
422         (__extendhfsf2, __truncsfhf2): Define.
423         * config/arm/fp16.c: New file.
424         * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c.
425         * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA):  Add fp16.c.
426
427 2009-06-18  Sandra Loosemore  <sandra@codesourcery.com>
428
429         * doc/extend.texi (Half-Precision): New section.
430         * doc/invoke.texi (Option Summary): List -mfp16-format.
431         (ARM Options): List neon-fp16 as -mfpu value.  Document -mfp16-format.
432         * config/arm/arm.opt (mfp16-format=): New.
433         * config/arm/arm.c: Include intl.h.
434         (TARGET_INVALID_PARAMETER_TYPE): Redefine.
435         (TARGET_INVALID_RETURN_TYPE): Redefine.
436         (TARGET_PROMOTED_TYPE): Redefine.
437         (TARGET_CONVERT_TO_TYPE): Redefine.
438         (arm_fp16_format): Define.
439         (all_fpus): Add entry for neon-fp16.
440         (fp_model_for_fpu): Likewise.
441         (struct fp16_format): Declare.
442         (all_fp16_formats): Define.
443         (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic
444         functions.
445         (arm_override_options): Set arm_fp16_format. Call sorry for fp16
446         and no ldrh.
447         (arm_legitimate_index_p): Treat HFmode like HImode.
448         (thumb1_legitimate_address_p): Make it recognize HFmode constants.
449         (coproc_secondary_reload_class): Special-case HFmode.
450         (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16.
451         (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers.
452         (arm_init_fp16_builtins): New.
453         (arm_init_builtins): Call it.
454         (arm_invalid_parameter_type): New.
455         (arm_invalid_return_type): New.
456         (arm_promoted_type): New.
457         (arm_convert_to_type).
458         (arm_file_start): Deal with neon-fp16 as fpu_name.  Emit tag for fp16
459         format.
460         (arm_emit_fp16_const): New function.
461         (arm_mangle_type): Mangle __fp16 as "Dh".
462         * config/arm/arm.h (TARGET_VFPD32): Make it know about
463         FPUTYPE_NEON_FP16.
464         (TARGET_NEON_FP16): New.
465         (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16.
466         (enum fputype): Add FPUTYPE_NEON_FP16.
467         (enum arm_fp16_format_type): Declare.
468         (arm_fp16_format): Declare.
469         (LARGEST_EXPONENT_IS_NORMAL): Define.
470         * config/arm/arm-protos.h (arm_emit_fp16_const): Declare.
471         * config/arm/arm-modes.def (HFmode): Define.
472         * config/arm/vfp.md: (*movhf_vfp): New.
473         (extendhfsf2): New.
474         (truncsfhf2): New.
475         * config/arm/arm.md: (fpu): Add neon_fp16.
476         (floatsihf2, floatdihf2): New.
477         (fix_trunchfsi2, fix_trunchfdi2): New.
478         (truncdfhf2): New.
479         (extendhfdf2): New.
480         (movhf): New.
481         (*arm32_movhf): New.
482         (*thumb1_movhf): New.
483         (consttable_2): Add check for HFmode constants.
484         (consttable_4): Handle HFmode constants.
485
486 2009-06-18  Uros Bizjak  <ubizjak@gmail.com>
487
488         * convert.c (convert_to_integer): Convert (int)logb() into ilogb().
489
490 2009-06-17  Olivier Hainque  <hainque@adacore.com>
491
492         * collect2.c (main): Use CONST_CAST2 to perform char ** to
493         const char ** conversion in AIX specific section.
494         
495 2009-06-17  H.J. Lu  <hongjiu.lu@intel.com>
496
497         * config/i386/i386.c (ix86_special_builtin_type): Remove
498         UINT64_FTYPE_PINT.  Add UINT64_FTYPE_PUNSIGNED.
499         (bdesc_special_args): Updated.
500         (ix86_init_mmx_sse_builtins): Likewise.
501         (ix86_expand_special_args_builtin): Likewise.
502
503 2009-06-17  Richard Henderson  <rth@redhat.com>
504
505         * tree-pretty-print.c (maybe_dump_asm_name): New.
506         (dump_decl_name): Use it.
507         (PRINT_FUNCTION_NAME): Merge into...
508         (dump_function_name): ... here.  Use maybe_dump_asm_name.
509
510 2009-06-17  Cary Coutant  <ccoutant@google.com>
511
512         * dbxout.c (dbxout_source_line): Add is_stmt parameter.
513         Change caller.
514         * debug.c (struct gcc_debug_hooks): Change placeholder for
515         source_line hook.
516         (debug_nothing_int_charstar_int): Replaced by...
517         (debug_nothing_int_charstar_int_bool): ...this.
518         * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to
519         source_line prototype.
520         (debug_nothing_int_charstar_int): Replaced by...
521         (debug_nothing_int_charstar_int_bool): ...this.
522         * defaults.h (SUPPORTS_DISCRIMINATOR): New constant.
523         * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter.
524         Output is_stmt operand when necessary.
525         * final.c (final_scan_insn): Pass is_stmt to source_line debug hook.
526         (notice_source_line): Add is_stmt parameter.
527         * sdbout.c (sdbout_source_line): Add is_stmt parameter.
528         * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter.
529         Change callers.
530         * xcoffout.c (xcoffout_source_line): Add is_stmt parameter.
531         * xcoffout.h (xcoffout_source_line): Add is_stmt parameter.
532
533 2009-06-17  Ian Lance Taylor  <iant@google.com>
534
535         * expr.c (struct move_by_pieces_d): Rename from move_by_pieces.
536         Change all uses.
537         (struct store_by_pieces_d): Rename from store_by_pieces.  Change
538         call uses.
539
540 2009-06-17  Adam Nemet  <anemet@caviumnetworks.com>
541
542         * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS,
543         STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions,
544         tree_strip_sign_nop_conversions and
545         tree_ssa_strip_useless_type_conversions rather than stripping
546         the operations here.
547         (tree_strip_nop_conversions, tree_strip_sign_nop_conversions):
548         Declare them.
549         * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it.
550         * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function.
551         * tree.c (tree_nop_conversion, tree_sign_nop_conversion,
552         tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New
553         functions.
554
555 2009-06-17  Michael Eager  <eager@eagercon.com>
556
557         * config/rs6000/constraints.md (register_constraint "d"): New.
558         * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2,
559         truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
560         *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64,
561         *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2,
562         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
563         divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2,
564         fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd'
565         * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs,
566         __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte,
567         __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw,
568         __fctiwz): Same.
569         * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr,
570         *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr,
571         *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2,
572         *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal,
573         *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt,
574         fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2,
575         stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1,
576         *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64,
577         *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1,
578         trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper,
579         *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32,
580         *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2,
581         *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same.
582         * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint.
583
584 2009-06-16  Ian Lance Taylor  <iant@google.com>
585
586         * profile.c (total_num_never_executed): Don't define.
587         (compute_branch_probabilities): Don't count or print
588         num_never_executed.
589         (init_branch_prob): Don't set total_num_never_executed.
590         (end_branch_prob): Don't print total_num_never_executed.
591
592 2009-06-17  David Daney  <ddaney@caviumnetworks.com>
593
594         * jump.c (cleanup_barriers): Handle case of no insns before a barrier.
595
596 2009-06-17  David Edelsohn  <edelsohn@gnu.org>
597
598         * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode.
599         (nabstd2_fpr): Same.
600
601 2009-06-17  Steve Ellcey  <sje@cup.hp.com>
602
603         * expr.c (expand_assignment): Change complex type check.
604
605 2009-06-17  Basile Starynkevitch  <basile@starynkevitch.net>
606
607         * doc/plugins.texi (Building GCC plugins): Added new section. 
608
609 2009-06-17  Ian Lance Taylor  <iant@google.com>
610
611         * c-pch.c (get_ident): Don't set size of templ array.
612         (pch_init): Don't set size of partial_pch array.
613
614         * c-typeck.c (digest_init): If -Wc++-compat, warn about using a
615         string constant to intialize an array whose size is the length of
616         the string.
617
618 2009-06-17  Richard Guenther  <rguenther@suse.de>
619
620         PR tree-optimization/40389
621         * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case
622         to addressable types.
623         * gimple.c (walk_stmt_load_store_addr_ops): Likewise.
624
625 2009-06-17  Richard Guenther  <rguenther@suse.de>
626
627         PR middle-end/40460
628         * tree-chrec.h (build_polynomial_chrec): If we cannot determine
629         if there is no evolution of left in the loop bail out.
630         * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one
631         chrec_fold_multiply.
632
633 2009-06-16  J"orn Rennecke  <joern.rennecke@arc.com>
634             Janis Johnson  <janis187@us.ibm.com>
635
636         PR target/39254
637         * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE
638         for the symbol ref of a constant that is the source of a move
639         - nor for any other not-obvious-label-ref constants.
640
641 2009-06-16  Olatunji Ruwase  <tjruwase@google.com>
642
643         * plugin.c (position_pass): Skip newly inserted pass during list
644         traversal to avoid repeated insertion.
645
646 2009-06-16  Ian Lance Taylor  <iant@google.com>
647
648         * vec.h (VEC_stack_alloc): Define different version if
649         GATHER_STATISTICS is defined, to accept and ignore MEM_STAT.
650         (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL.
651         (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise.
652         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
653
654 2009-06-16  H.J. Lu  <hongjiu.lu@intel.com>
655
656         * config.gcc (extra_headers): Add ia32intrin.h for x86.
657
658         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI,
659         IX86_BUILTIN_BSRDI.  IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC.
660         IX86_BUILTIN_RDTSCP.  IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI,
661         IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI.
662         (ix86_special_builtin_type): Add UINT64_FTYPE_VOID,
663         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
664         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
665         (bdesc_special_args): Add __builtin_ia32_rdtsc and
666         __builtin_ia32_rdtscp.
667         (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi,
668         __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi
669         and __builtin_ia32_rorhi.
670         (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID,
671         UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT,
672         INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT.
673         (ix86_expand_args_builtin): Likewise.
674         (ix86_expand_special_args_builtin): Likewise.
675
676         * config/i386/i386.md (UNSPECV_RDTSCP): New.
677         (UNSPECV_RDTSC): Likewise.
678         (UNSPECV_RDPMC): Likewise.
679         (*bsr): Renamed to ...
680         (bsr): This
681         (*bsr_rex64): Renamed to ...
682         (bsr_rex64): This.
683         (rdpmc): New.
684         (*rdpmc): Likewise.
685         (*rdpmc_rex64): Likewise.
686         (rdtsc): Likewise.
687         (*rdtsc): Likewise.
688         (*rdtsc_rex64): Likewise.
689         (rdtscp): Likewise.
690         (*rdtscp): Likewise.
691         (*rdtscp_rex64): Likewise.
692
693         * config/i386/ia32intrin.h: New.
694
695         * config/i386/x86intrin.h: Include <ia32intrin.h>.
696
697 2009-06-16  Ian Lance Taylor  <iant@google.com>
698
699         * ira-build.c (copy_info_to_removed_store_destinations):
700         Initialize parent_a.
701
702 2009-06-16  Ian Lance Taylor  <iant@google.com>
703
704         * c-decl.c (grokdeclarator): Change size_varies to bool.
705
706 2009-06-16  Ian Lance Taylor  <iant@google.com>
707
708         * sel-sched.c: Make forward declarations of move_op_hooks and
709         fur_hooks explicitly extern.
710
711 2009-06-16  Ian Lance Taylor  <iant@google.com>
712
713         * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself.
714         * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself.
715
716 2009-06-16  Ian Lance Taylor  <iant@google.com>
717
718         * resource.c (mark_referenced_resources): Change
719         include_delayed_effects parameter to bool.  Change all callers.
720         (mark_end_of_function_resources): Likewise.
721         * reorg.c (insn_references_resource_p): Likewise.
722         (insn_sets_resource_p): Likewise.
723         * resource.h (mark_referenced_resources): Update declaration.
724         (mark_end_of_function_resources): Update declaration.
725
726 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
727
728         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++.
729
730 2009-06-16  David Edelsohn  <edelsohn@gnu.org>
731
732         * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap.
733         GCC can bootstrap on AIX with GNU Binutils 2.20.
734
735 2009-06-16  Ian Lance Taylor  <iant@google.com>
736
737         * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H).
738
739 2009-06-16  Ian Lance Taylor  <iant@google.com>
740
741         * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static
742         inline, not extern inline.
743         (exact_log2): Likewise.
744         * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't
745         test CLZ_HWI.
746         (exact_log2): Likewise, but don't test CTZ_HWI.
747
748 2009-06-16  Ian Lance Taylor  <iant@google.com>
749
750         * bitmap.c (bitmap_clear): Don't declare as inline.
751         * gimple.c (gimplify_assign): Likewise.
752         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
753         * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE.
754         (sched_scan_info): Remove duplicate definition.
755
756 2009-06-16  Ian Lance Taylor  <iant@google.com>
757
758         * c-common.c (skip_evaluation): Don't define.
759         (c_inhibit_evaluation_warnings): Define global variable.
760         (overflow_warning): Check c_inhibit_evaluation_warnings rather
761         than skip_evaluation.
762         (convert_and_check, warn_for_div_by_zero): Likewise.
763         * c-common.h (skip_evaluation): Don't declare.
764         (c_inhibit_evaluation_warnings): Declare.
765         * c-parser.c (c_parser_typeof_specifier): Set
766         c_inhibit_evaluation_warnings rather than skip_evaluation.
767         (c_parser_conditional_expression): Likewise.
768         (c_parser_binary_expression): Likewise.
769         (c_parser_sizeof_expression): Likewise.
770         (c_parser_alignof_expression): Likewise.
771         * c-typeck.c (build_indirect_ref): Check
772         c_inhibit_evaluation_warnings rather than skip_evaluation.
773         (build_conditional_expr, build_binary_op): Likewise.
774
775 2009-06-16  Richard Guenther  <rguenther@suse.de>
776
777         * tree-ssa-alias.c (is_escape_site): Remove.
778         * tree-ssa-alias.h (enum escape_type): Remove.
779         (is_escape_site): Likewise.
780         * tree-ssa-structalias.c (find_func_aliases): Handle escapes
781         via casts and asms without deferring to is_escape_site.
782
783 2009-06-16  Jakub Jelinek  <jakub@redhat.com>
784
785         PR middle-end/40446
786         * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
787         use gen_lowpart if op0 has complex mode.
788
789 2009-06-16  Richard Guenther  <rguenther@suse.de>
790
791         * tree-ssa-structalias.c (do_ds_constraint): Stores in global
792         variables add them to ESCAPED.
793         (find_func_aliases): Do not make all indirectly stored values escaped.
794
795 2009-06-16  Rafael Avila de Espindola  <espindola@google.com>
796
797         * config/i386/winnt.c (i386_pe_encode_section_info): Update call to
798         make_decl_one_only.
799
800 2009-06-16  Martin Jambor  <mjambor@suse.cz>
801
802         PR tree-optimization/40432
803         * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR,
804         check whether we need to force gimple register operand.
805
806 2009-06-16  Martin Jambor  <mjambor@suse.cz>
807
808         PR tree-optimization/40413
809         * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to
810         build_ref_for_offset.
811         (propagate_subacesses_accross_link): Fix a typo in a comment.
812
813 2009-06-16  Ira Rosen  <irar@il.ibm.com>
814
815         * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction
816         with additional parameter.
817         * tree-vectorizer.h (enum vect_def_type): Add new value
818         vect_nested_cycle.
819         (enum vect_relevant): Add comments.
820         (vect_is_simple_reduction): Add new argument.
821         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments.
822         Detect nested cycles.
823         (vect_is_simple_reduction): Update documentation, add an argument to
824         distinguish inner-loop reduction from nested cycle, detect nested
825         cycles, fix printings and indentation, don't swap operands in case
826         of nested cycle.
827         (get_initial_def_for_reduction): Handle subtraction.
828         (vect_create_epilog_for_reduction): Add new argument to specify
829         reduction variable.
830         (vect_finalize_reduction): Handle subtraction, fix comments.
831         (vectorizable_reduction): Handle nested cycles. In case of nested
832         cycle keep track of the reduction variable position. Call 
833         vect_is_simple_reduction with additional parameter. Use original 
834         statement code in reduction epilogue for nested cycle. Call
835         vect_create_epilog_for_reduction with additional parameter.
836         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert
837         inner-loop vectorization.
838         (vect_recog_widen_sum_pattern): Likewise.
839         * tree-vect-stmts.c (process_use): Distinguish between nested cycles
840         and reductions.
841         (vect_mark_stmts_to_be_vectorized): Likewise.
842         (vect_get_vec_def_for_operand): Handle nested cycles.
843
844 2009-06-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
845
846         * doc/invoke.texi (Debugging Options): Fix option index entries
847         for -fdump-statistics, -frandom-seed add entries for
848         -fdump-tree-original, -fdump-tree-optimized, -frandom-seed.
849         (FRV Options): Fix entries for -mTLS, -mtls.
850         (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld.
851         (i386 and x86-64 Options): Fix entry for -mno-red-zone.
852         (M68hc1x Options): Fix @itemx for -mnominmax.
853         (MCore Options): Fix entry for -mno-lsim.
854         (MMIX Options): Fix entry for -mabi=mmixware.
855         (PDP-11 Options): Fix entry for -mbcopy-builtin.
856
857 2009-06-16  Basile Starynkevitch  <basile@starynkevitch.net>
858
859         * doc/plugins.texi (Interacting with the GCC Garbage Collector):
860         Mention the plugin mode of gengtype.
861         * doc/gty.texi (Source Files Containing Type Information): Likewise.
862         * gengtype.c: Updated copyright.
863         (plugin_files, nb_plugin_files) Added new static variables.
864         (measure_input_list) Care about plugin_files.
865         (write_rtx_next): Added early return in plugin mode.
866         (create_file): Updated copyright year in generated file. Added
867         asserts.
868         (oprintf): Added early return if NULL outf.
869         (get_output_file_with_visibility): Care of plugin_files.
870         (get_output_file_name): May return null.
871         (write_local): Added early return.
872         (put_mangled_filename): Ditto.
873         (finish_root_table): Added check for base_files.
874         (write_roots): Care about null when plugins.
875         (main): Added plugin mode.
876
877 2009-06-15  Ian Lance Taylor  <iant@google.com>
878
879         * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch.
880         * gcov.c (read_count_file): Add braces around variables declared
881         before label.
882
883         * c.opt (Wjump-misses-init): New warning.
884         * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for
885         -Wall and -Wc++-compat if not already set.
886         (c_common_post_options): Clear warn_jump_misses_init if it was not
887         set.
888         * c-decl.c (struct c_binding): Change type field to a union with
889         new label field.  Make it the first field in the struct.  Update
890         references to type to use u.type instead.
891         (struct c_spot_bindings): Define.
892         (struct c_goto_bindings): Define.
893         (c_goto_bindings_p): Define, along with VECs.
894         (struct c_label_vars): Define.
895         (struct c_scope): Add has_label_bindings field.
896         (bind_label, set_spot_bindings): New static functions.
897         (decl_jump_unsafe, update_spot_bindings): New static functions.
898         (update_label_decls): New static function.
899         (pop_scope): Call update_label_decls.  Don't call c_end_vm_scope.
900         Update binding u.label field to shadowed field.
901         (c_binding_start_stmt_expr): New function.
902         (c_binding_end_stmt_expr): New function.
903         (pushdecl): Don't call c_begin_vm_scope.
904         (make_label): Add defining and p_label_vars parameters.  Change
905         all callers.
906         (lookup_label): Correct test for whether a label has not yet been
907         defined.  Call bind_label rather than bind.
908         (warn_about_goto): New static function.
909         (lookup_label_for_goto): New function.
910         (declare_label): Call bind_label rather than bind.
911         (check_earlier_gotos): New static function.
912         (define_label): Don't give errors about jumping into statement
913         expressions or scopes of variably modified types.  Call
914         set_spot_bindings and check_earlier_gotos.  Call bind_label
915         instead of bind.  Don't set label_context_stack_se or
916         label_context_stack_vm.
917         (c_get_switch_bindings): New function.
918         (c_release_switch_bindings): New function.
919         (c_check_switch_jump_warnings): New function.
920         (start_function): Don't set label_context_stack_se or
921         label_context_stack_vm.
922         (finish_function): Likewise.
923         * c-typeck.c (label_context_stack_se): Don't define.
924         (label_context_stack_vm): Don't define.
925         (c_finish_goto_label): Call lookup_label_for_goto rather than
926         lookup_label.  Don't give errors about jumping into a statement
927         expression or the scope of a variably modified type.  Don't set
928         label_context_stack_se or label_context_stack_vm.
929         (struct c_switch): Remove blocked_stmt_expr and blocked_vm
930         fields.  Add bindings field.
931         (c_start_case): Don't set deleted fields.  Set bindings field.
932         (do_case): Rework order of tests.  Don't check blocked_stmt_expr
933         or blocked_vm.  Call c_check_switch_jump_warnings.
934         (c_finish_case): Don't test blocked_stmt_expr field.  Call
935         c_release_switch_bindings.
936         (c_begin_stmt_expr): Don't increment blocked_stmt_expr in
937         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
938         set label_context_stack_se.  Call c_bindings_start_stmt_expr.
939         (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in
940         c_switch_stack.  Don't walk label_context_stack_se labels.  Don't
941         set label_context_stack_se.  Call c_bindings_end_stmt_expr.
942         (c_begin_vm_scope, c_end_vm_scope): Don't define.
943         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define.
944         (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define.
945         (C_DECL_UNJUMPABLE_VM): Don't define.
946         (C_DECL_UNDEFINABLE_VM): Don't define.
947         (struct c_label_list): Don't define.
948         (struct c_label_context_se): Don't define.
949         (struct c_label_context_vm): Don't define.
950         (struct c_spot_bindings): Declare.
951         (c_bindings_start_stmt_expr): Declare.
952         (c_bindings_end_stmt_expr): Declare.
953         (lookup_label_for_goto): Declare.
954         (c_get_switch_bindings, c_release_switch_bindings): Declare.
955         (c_check_switch_jump_warnings): Declare.
956         (label_context_stack_se, label_context_stack_vm): Don't declare.
957         (c_finish_goto_label): Update declaration.
958         (c_begin_vm_scope, c_end_vm_scope): Don't declare.
959         * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init.
960         (Warning Options): Document -Wjump-misses-init.
961
962 2009-06-15  Jakub Jelinek  <jakub@redhat.com>
963
964         * tree-object-size.c (addr_object_size): Fix a pasto in the last
965         change.
966
967 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
968
969         * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP.
970
971 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
972
973         * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl.
974
975 2009-06-15  Aldy Hernandez  <aldyh@redhat.com>
976
977         * tree-eh.c (lower_try_finally_switch): Initialize tf_loc.
978
979 2009-06-15  Rafael Avila de Espindola  <espindola@google.com>
980
981         * cgraphunit.c (cgraph_function_versioning,save_inline_function_body):
982         Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY.
983         * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP.
984         * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP.
985         * dwarf2asm.c (dw2_force_const_mem): Update call to
986         make_decl_one_only.
987         * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove.
988         (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP.
989         * langhooks.c (lhd_comdat_group): Remove.
990         * langhooks.h (lang_hooks_for_decls): Remove comdat_group.
991         * tree.h (DECL_COMDAT_GROUP): New.
992         (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP.
993         (tree_decl_with_vis): Add comdat_group. Remove one_only.
994         (make_decl_one_only): Change signature.
995         * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to
996         make_decl_one_only.
997         (make_decl_one_only): Change signature.
998         (default_elf_asm_named_section): Use DECL_COMDAT_GROUP.
999
1000 2009-06-15  Richard Guenther  <rguenther@suse.de>
1001
1002         PR middle-end/40439
1003         * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts.
1004
1005 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1006
1007         * tree-ssa-math-opts.c: Remove extra divide.
1008
1009 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1010
1011         * config/s390/s390.md ("bswap<mode>2"): Only available on z900.
1012
1013 2009-06-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1014
1015         * passes.c: Add bswap pass.
1016         * tree-pass.h: Add pass_optimize_bswap declaration.
1017         * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt.
1018         Include rtl.h, expr.h and optabs.h for optab_handler check.
1019         (struct symbolic_number, pass_optimize_bswap): New definition.
1020         (do_shift_rotate, verify_symbolic_number_p): New functions.
1021         (find_bswap_1, find_bswap, execute_optimize_bswap): New functions.
1022         (gate_optimize_bswap): New function.
1023         * tree.c (widest_int_cst_value): New function.
1024         * tree.h (widest_int_cst_value): Prototype added.
1025
1026 2009-06-14  Steven Bosscher  <steven@gcc.gnu.org>
1027
1028         * cfgcleanup.c (old_insns_match_p): Remove code to substitute
1029         REG_EQUAL/REG_EQUIV notes.
1030
1031 2009-06-14  Richard Guenther  <rguenther@suse.de>
1032
1033         PR middle-end/40389
1034         * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call
1035         has its address taken if NRV was applied and it is addressable.
1036         * tree-ssa-structalias.c (get_constraint_for_address_of): New
1037         function split out from ...
1038         (get_constraint_for_1): ... here.
1039         (handle_rhs_call): Use it to mark the return slot escaped if
1040         it is addressable and NRV was applied.
1041
1042 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
1043
1044         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
1045         Change first argument type to location_t.
1046         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same.
1047         Do not set input_location.
1048         Use loc instead of input_location throughout.
1049
1050 2009-06-13  Richard Guenther  <rguenther@suse.de>
1051
1052         PR tree-optimization/40421
1053         * tree-predcom.c (should_unroll_loop_p): Remove.
1054         (tree_predictive_commoning_loop): Use can_unroll_loop_p.
1055
1056 2009-06-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
1057
1058         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1059         Add location argument.
1060
1061 2009-06-13  Aldy Hernandez  <aldyh@redhat.com>
1062
1063         * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to
1064         build_decl.
1065         * config/s390/s390.c (s390_build_builtin_va_list): Same.
1066         (s390_gimplify_va_arg): Pass location to create_artificial_label.
1067         * config/spu/spu-protos.h: Add location to
1068         spu_resolve_overloaded_builtin.
1069         * config/spu/spu.c (spu_build_builtin_va_list): Pass location to
1070         spu_build_builtin_va_list.
1071         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location
1072         argument.  Pass location to build_function_call_vec.
1073         * config/sh/sh.c (sh_build_builtin_va_list): Pass location to
1074         build_decl.
1075         (emit_fpu_switch): Same.
1076         (sh_gimplify_va_arg_expr): Pass location to create_artificial_label.
1077         * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location
1078         to build_decl and create_artificial_label.
1079         (xtensa_gimplify_va_arg_expr): Same.
1080         * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same.
1081         (xstormy16_gimplify_va_arg_expr): Same.
1082         * config/iq2000/iq2000.c (iq2000_expand_prologue): Same.
1083         * config/arm/arm.c (arm_build_builtin_va_list): Same.
1084         * config/mips/mips.c (mips_build_builtin_va_list): Same.
1085         (mips16_build_function_stub): Same.
1086         (mips16_build_call_stub): Same.
1087
1088 2009-06-13  Richard Earnshaw  <rearnsha@arm.com>
1089
1090         PR target/40327
1091         * arm/constraints.md (Pa, Pb): New constraints.
1092         * arm/arm.md (thumb1_addsi3): Support more complex additions.  Add a 
1093         split pattern to deal with them.
1094
1095 2009-06-13  Joerg Sonnenberger  <joerg@britannica.bec.de>
1096
1097         * doc/invoke.texi: Add missing option -Wp,OPTION in list,
1098         fix index entry for -Xpreprocessor.
1099
1100 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
1101
1102         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1103         Add location argument to build_decl call.
1104         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same.
1105         (rs6000_init_builtins): Same.
1106         (spe_init_builtins): Same.
1107         (rs6000_gimplify_va_arg): Add location argument to
1108         create_artificial_label call.
1109
1110 2009-06-12  Steven Bosscher  <steven@gcc.gnu.org>
1111
1112         * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar.
1113         * combine-stack-adj.c (pass_stack_adjustments): Use it.
1114         * Makefile.in: Fix GGC dependency for gcse.o.
1115
1116 2009-06-12  Aldy Hernandez  <aldyh@redhat.com>
1117
1118         * tree-pretty-print.c (dump_generic_node): Dump column numbers.
1119         * gimple-pretty-print.c (dump_gimple_stmt): Same.
1120         * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs
1121         created.
1122         * c-parser.c (c_parser_binary_expression): Use current column while
1123         building binary operations.
1124         * common.opt (fshow-column): Enable by default.
1125         * tree-vrp.c (check_array_ref): Use warning_at.
1126         (check_array_bounds): Use location from call back if expr has no
1127         location.
1128         * tree.h: Add location argument to maybe_fold_*.
1129         * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*.
1130         (maybe_fold_offset_to_array_ref): Add location argument and use it.
1131         (maybe_fold_offset_to_component_ref): Same.
1132         (maybe_fold_offset_to_reference): Same.
1133         (maybe_fold_offset_to_address): Same.
1134         (maybe_fold_stmt_indirect): Same.
1135         (maybe_fold_stmt_addition): Same.
1136         (fold_stmt_r): Pass location to maybe_fold_*.
1137         (fold_gimple_assign): Same.
1138         * c-tree.h: Add location argument to finish_decl,
1139         default_function_array_conversion, store_init_value.
1140         * c-decl.c (define_label): Use error_at.
1141         (c_make_fname_decl): Pass location to finish_decl.
1142         (finish_decl): New location argument.
1143         (build_compound_literal): Pass location to store_init_value.
1144         (grokdeclarator): Pass location to finish_decl.
1145         (grokfield): Same.
1146         * c-typeck.c (array_to_pointer_conversion): New location argument.
1147         (function_to_pointer_conversion): Same.
1148         (default_function_array_conversion): Same.
1149         (parser_build_unary_op): Pass location to overflow_warning.
1150         (parser_build_binary_op): Same.  Use warning_at.
1151         (build_unary_op): Pass location to array_to_pointer_conversion.
1152         (build_c_cast): Pass location to digest_init.
1153         (build_modify_expr): New location argument.
1154         (convert_for_assignment): Same.
1155         (store_init_value): Same.
1156         (digest_init): Same.
1157         (output_init_element): Pass location to digest_init and
1158         array_to_pointer_conversion.
1159         (c_finish_return): Pass location to convert_for_assignment.
1160         * gimplify.c (gimplify_conversion): Pass location to
1161         maybe_fold_offset_to_address.
1162         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location
1163         to maybe_fold_stmt_addition.
1164         * c-omp.c (c_finish_omp_atomic): Pass new location to
1165         build_modify_expr.
1166         (c_finish_omp_for): Same.
1167         * c-common.c (overflow_warning): New argument.
1168         * c-common.h: New argument to build_modify_expr, overflow_warning.
1169         * c-parser.c (c_parser_declaration_or_fndef): Pass location to
1170         finish_decl.
1171         (c_parser_initializer): Pass location to
1172         default_function_array_conversion.
1173         (c_parser_initelt): Same.
1174         (c_parser_initval): Same.
1175         (c_parser_asm_operands): Same.
1176         (c_parser_expr_no_commas): Same.  Pass location to build_modify_expr.
1177         (c_parser_conditional_expression): Same.
1178         (c_parser_binary_expression): Add location info to stack.  Use it.
1179         (c_parser_unary_expression): Pass location to
1180         default_function_array_conversion, parser_build_unary_op,
1181         build_indirect_ref, c_parser_postfix_expression_after_primary.
1182         (c_parser_postfix_expression_after_primary): New location argument.
1183         Use it.
1184         (c_parser_expression_conv): Pass location to
1185         default_function_array_conversion.
1186         (c_parser_expr_list): Same.
1187         (c_parser_omp_atomic): Same.
1188         (c_parser_omp_for_loop): Same.
1189         * c-tree.h: (struct c_declarator): Add comment to id_loc.
1190         (build_array_declarator): New argument.
1191         * c-decl.c (build_array_declarator): Add location argument.
1192         (grokdeclarator): Set id_loc for cdk_array.
1193         * c-parser.c (c_parser_direct_declarator_inner): Pass location to
1194         build_array_declarator.
1195         * tree.c (build_omp_clause): Add location argument.
1196         * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro.
1197         (OMP_CLAUSE_LOCATION): New macro.
1198         (struct tree_omp_clause): Add location field.
1199         (build_omp_clause): Add argument.
1200         * testsuite/gcc.dg/gomp/for-1.c: Fix column.
1201         * cp/pt.c (tsubst_omp_for_iterator): Pass location to
1202         build_omp_clause.
1203         * cp/parser.c (cp_parser_omp_var_list_no_open): Same.
1204         (cp_parser_omp_clause_collapse): Same.
1205         (cp_parser_omp_clause_default): Same.
1206         (cp_parser_omp_clause_if): Same.
1207         (cp_parser_omp_clause_nowait): Same.
1208         (cp_parser_omp_clause_num_threads): Same.
1209         (cp_parser_omp_clause_ordered): Same.
1210         (cp_parser_omp_clause_schedule): Same.
1211         (cp_parser_omp_clause_untied): Same.
1212         (cp_parser_omp_for_loop): Same.
1213         (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses.
1214         * c-tree.h (c_start_case): Add location argument.
1215         (c_process_expr_stmt): Same.
1216         (c_finish_goto_*): Same.
1217         * tree-parloops.c (initialize_reductions): Pass location to
1218         build_omp_clause.
1219         (create_parallel_loop): Same.
1220         * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same.
1221         (gfc_trans_omp_reduction_list): Same.
1222         (gfc_trans_omp_clauses): Same.
1223         (gfc_trans_omp_do): Same.
1224         * c-typeck.c (c_finish_goto_label): Same.
1225         (c_finish_goto_ptr): New location argument.
1226         (c_start_case): Same.
1227         (emit_side_effect_warnings): Same.
1228         (c_process_expr_stmt): Same.
1229         (c_finish_stmt_expr): Same.
1230         (c_finish_omp_clauses): Use error_at instead of error.
1231         * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to
1232         build_omp_clause.
1233         * c-omp.c (c_split_parallel_clauses): New location argument.
1234         * tree-nested.c (convert_nonlocal_reference_stmt): Pass location
1235         to build_omp_clause.
1236         (convert_local_reference_stmt): Same.
1237         (convert_gimple_call): Same.
1238         * c-common.h (c_split_parallel_clauses): New argument.
1239         * c-parser.c (c_parser_statement_after_labels): Pass location to
1240         c_finish_goto_label.
1241         (c_parser_switch_statement): Pass location to c_start_case.
1242         (c_parser_for_statement): Pass location to c_finish_expr_stmt,
1243         and c_process_expr_stmt.
1244         (c_parser_omp_variable_list): Add location argument.
1245         (c_parser_omp_clause_collapse): Pass location to build_omp_clause.
1246         (c_parser_omp_clause_default): Same.
1247         (c_parser_omp_clause_if): Same.
1248         (c_parser_omp_clause_num_threads): Same.
1249         (-c_parser_omp_clause_ordered): Same.
1250         (c_parser_omp_clause_reduction): Pass location to
1251         c_parser_omp_variable_list.
1252         (c_parser_omp_clause_schedule): Pass location to build_omp_clause.
1253         (c_parser_omp_clause_untied): Same.
1254         (c_parser_omp_for_loop): Pass location to c_process_expr_stmt.
1255         (c_parser_omp_parallel): Pass location to c_split_parallel_clauses.
1256
1257         * c-tree.h (check_for_loop_decls, undeclared_variable,
1258         build_component_ref, build_array_ref, build_external_ref,
1259         c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op,
1260         build_conditional_expr, build_compound_expr, c_cast_expr,
1261         build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr,
1262         c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New
1263         argument.
1264         * c-semantics.c (build_stmt): Same.
1265         (build_case_label): Same.
1266         * c-decl.c (c_finish_incomplete_decl): Pass location on down.
1267         (undeclared_variable): New argument.
1268         (make_label): Same.
1269         (lookup_label): Pass location on down.
1270         (define_label): Same.
1271         (finish_decl): Same.
1272         (build_compound_literal): Same.
1273         (finish_struct): Same.
1274         (finish_function): Do not set location here.
1275         (check_for_loop_decls): New argument.
1276         * tree.c (save_expr): Set location.
1277         (build_empty_stmt): New argument.
1278         * tree.h (build_empty_stmt): New argument to build_empty_stmt.
1279         (CAN_HAVE_LOCATION_P): Make sure we have a non empty node.
1280         * builtins.c (gimplify_va_arg_expr): Use locations.
1281         (expand_builtin_sync_operation): Same.
1282         * c-typeck.c (build_component_ref): New argument.
1283         (build_array_ref): Same.
1284         (build_external_ref): Same.
1285         (c_expr_sizeof_expr): Same.
1286         (c_expr_sizeof_type): Same.
1287         (parser_build_unary_op): Same.
1288         (build_conditional_expr): Same.
1289         (build_compound_expr): Pass location on down.
1290         (build_compound_expr): New argument.
1291         (build_c_cast): Same.
1292         (c_cast_expr): Same.
1293         (build_asm_expr): Same.
1294         (c_finish_return): Same.
1295         (c_process_expr_stmt): Pass location on down.
1296         (c_finish_stmt_expr): New argument.
1297         (push_clenaup): Same.
1298         (c_finish_omp_parallel): Same.
1299         (c_finish_omp_task): Same.
1300         * gimplify.c (gimplify_call_expr): Pass location on down.
1301         * c-omp.c (c_finish_omp_master): New argument.
1302         (c_finish_omp_critical): Same.
1303         (c_finish_omp_ordered): Same.
1304         (c_finish_omp_barrier): Same.
1305         (-c_finish_omp_taskwait): Same.
1306         (c_finish_omp_atomic): Same.
1307         (c_finish_omp_flush): Same.
1308         * tree-inline.c (copy_tree_body_r): Pass location on down.
1309         (inline_forbidden_p): Remove use of input_location.
1310         * c-gimplify.c (c_build_bind_expr): New argument.
1311         * c-common.c (c_common_truthvalue_conversion): Pass location on down.
1312         (c_sizeof_or_alignof_type): New argument.
1313         (c_alignof_expr): Same.
1314         (build_va_arg): Same.
1315         (c_add_case_label): Same.
1316         * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr,
1317         c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label,
1318         c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt,
1319         c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered,
1320         c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush,
1321         c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses):
1322         New argument.
1323         * stub-objc.c (objc_build_selector_expr): Same.
1324         (objc_build_throw_stmt): Same.
1325         * c-parser.c (c_parser_declaration_or_fndef): Pass location on down.
1326         (c_parser_initelt): Same.
1327         (c_parser_compound_statement): Same.
1328         (c_parser_compound_statement_nostart): Same.
1329         (c_parser_label): Same.
1330         (c_parser_statement_after_labels): Same.
1331         (c_parser_if_body): Same.
1332         (c_parser_else_body): Same.
1333         (c_parser_if_statement): Same.
1334         (c_parser_switch_statement): Same.
1335         (c_parser_while_statement): Same.
1336         (c_parser_do_statement): Same.
1337         (c_parser_for_statement): Same.
1338         (c_parser_asm_statement): Same.
1339         (c_parser_conditional_expression): Same.
1340         (c_parser_binary_expression): Same.
1341         (c_parser_cast_expression): Same.
1342         (c_parser_unary_expression): Same.
1343         (c_parser_sizeof_expression): Same.
1344         (c_parser_alignof_expression): Same.
1345         (c_parser_postfix_expression): Same.
1346         (c_parser_expression): Same.
1347         (c_parser_objc_receiver): Same.
1348         (c_parser_omp_variable_list): Same.
1349         (c_parser_omp_structured_block): Same.
1350         (c_parser_omp_atomic): New argument.
1351         (c_parser_omp_barrier): Same.
1352         (c_parser_omp_critical): Same.
1353         (c_parser_omp_flush): Pass location on down.
1354         (c_parser_omp_for_loop): New argument.
1355         (c_parser_omp_for): Same.
1356         (c_parser_omp_master): Same.
1357         (c_parser_omp_ordered): Same.
1358         (c_parser_omp_sections_scope): Same.
1359         (c_parser_omp_sections): Same.
1360         (c_parser_omp_parallel): Same.
1361         (c_parser_omp_single): Same.
1362         (c_parser_omp_task): Same.
1363         (c_parser_omp_taskwait): Pass location on down.
1364         (c_parser_omp_construct): Same.
1365         (c_parser_omp_threadprivate): Same.
1366         * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h,
1367         builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c,
1368         tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c,
1369         c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c,
1370         c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c,
1371         emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c,
1372         rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h,
1373         tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c,
1374         config/i386/i386.c, stmt.c:
1375         Add location argument to the following function definitions and/or
1376         function calls: build_decl, objcp_start_struct, objcp_finish_struct,
1377         start_struct, finish_struct, PUSH_FIELD, create_artificial_label,
1378         cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl,
1379         build_compound_literal, parser_xref_tag, resolve_overloaded_builtin,
1380         do_case, c_finish_bc_stmt, build_compound_literal,
1381         build_function_call.
1382         * c-decl.c (build_compound_literal): Add location argument.
1383         Make all diagnostic calls use location.
1384         (start_struct): Same.
1385         (finish_struct): Same.
1386         (start_enum): Same.
1387         (build_enumerator): Same.
1388         (start_function): Same.
1389         (grokdeclarator): Make all diagnostic calls use location.
1390         (store_parm_decls_oldstyle): Same.
1391         * c-typeck.c (build_function_call): Add location argument.
1392         Make all diagnostic calls use location.
1393         (do_case): Same.
1394         (c_finish_bc_stmt): Same.
1395         * tree-nested.c (get_trampoline_type): Add argument.
1396         Pass location to build_decl.
1397         (lookup_tramp_for_decl): Pass location to get_trampoline_type.
1398         * rtl.h (RTL_LOCATION): New.
1399         * c-common.c (c_add_case_label): Add location argument.
1400         Make all diagnostic calls use location.
1401         * c-common.h: Add location argument to make_fname_decl, do_case,
1402         c_add_case_label, build_function_call, resolve_overloaded_builtin.
1403         * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc.
1404         Set it appropriately for every case.  Pass enum_loc to start_enum
1405         call.  Pass value_loc first to build_enumerator.  Pass enum_loc to
1406         parser_xref_tag.
1407         (c_parser_struct_or_union_specifier): Save location.  Use it for
1408         start_struct, finish_struct, and parser_xref_tag.
1409
1410 2009-06-12  Ian Lance Taylor  <iant@google.com>
1411
1412         * fold-const.c (fold_unary): Rename local variable and to and_expr.
1413
1414         * c-opts.c (c_common_handle_option): For -Wc++-compat set
1415         cpp_opts->warn_cxx_operator_names.
1416
1417 2009-06-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1418
1419         PR tree-opt/38865
1420         * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup
1421         is returns NULL and OP is a VCE, look through the VCE.
1422
1423 2009-06-12  Ian Lance Taylor  <iant@google.com>
1424
1425         PR bootstrap/40430
1426         * collect2.c (main): Use CONST_CAST2 in code inside #if
1427         LINK_ELIMINATE_DUPLICATE_LDIRECTORIES.
1428
1429 2009-06-12  Joey Ye  <joey.ye@intel.com>
1430
1431         PR middle-end/39146
1432         * cfgexpand.c (get_decl_align_unit): Update
1433         max_used_stack_slot_alignment with align instead of
1434         stack_alignment_needed.
1435
1436         * function.c (assign_stack_local_1): Update
1437         max_used_stack_slot_alignment with alignment_in_bits instead
1438         of stack_alignment_needed.
1439         (locate_and_pad_parm): Don't update max_used_stack_slot_alignment
1440         here.
1441
1442 2009-06-12  Jakub Jelinek  <jakub@redhat.com>
1443
1444         * dwarf2out.c (last_var_location_insn): New variable.
1445         (dwarf2out_end_epilogue): Clear last_var_location_insn.
1446         (dwarf2out_var_location): Don't record anything after last real
1447         insn.  Only change labels if there were any real instructions
1448         in between last note and this one, or if changed sections.
1449
1450 2009-06-11  Richard Henderson  <rth@redhat.com>
1451
1452         * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER
1453         note when storing the frame pointer in a register.
1454         (FRP): Don't redefine to nothing for epilogue.
1455         (alpha_expand_epilogue): Mark register and sp restores.
1456         (unicosmk_gen_dsib): Don't mark weird frame pointer adjust.
1457
1458         * config/alpha/alpha.c (alpha_emit_setcc): Fix test for
1459         when gen_lowpart is needed.
1460
1461 2009-06-11  Richard Henderson  <rth@redhat.com>
1462
1463         * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset.
1464
1465         * dwarf2out.c (need_data_align_sf_opcode): New.
1466         (div_data_align): Move earlier.
1467         (def_cfa_1, reg_save): Use it.
1468
1469 2009-06-11  H.J. Lu  <hongjiu.lu@intel.com>
1470
1471         * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New.
1472         (OPTION_MASK_ISA_CRC32_UNSET): Likewise.
1473         (ix86_handle_option): Handle OPT_mcrc32.
1474         (ix86_target_string): Add -mcrc32.
1475         (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32.
1476
1477         * config/i386/i386.h (TARGET_CRC32): New.
1478
1479         * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32.
1480         (sse4_2_crc32di): Likewise.
1481
1482         * config/i386/i386.opt (mcrc32): New.
1483
1484         * doc/invoke.texi: Document -mcrc32.
1485
1486 2009-06-11  Richard Henderson  <rth@redhat.com>
1487
1488         * common.opt (gdwarf-): Accept a version number.
1489         * doc/invoke.texi (gdwarf-): Update docs.
1490         * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus.
1491         * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf
1492         version level, and record it.
1493
1494         * dwarf2.h (DW_CIE_VERSION): Remove.
1495         * dwarf2out.c (DWARF_VERSION): Remove.
1496         (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3.
1497         (output_call_frame_info): Use CIE version 3 for dwarf3,
1498         or if the return register column is out of range for version 1.
1499         (dwarf_stack_op_name): Add all dwarf3 values.
1500         (DEBUG_PUBTYPES_SECTION): New.
1501         (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr
1502         encoding change for dwarf3.
1503         (output_die) [dw_val_class_die_ref]: Likewise.
1504         (output_compilation_unit_header): Emit correct version for dwarf3.
1505         (output_line_info): Likewise.
1506         (output_pubnames): Update for DWARF_VERSION removal.
1507         (output_aranges): Likewise.
1508         (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3.
1509         (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION.
1510         (dwarf2out_finish): Likewise.
1511
1512 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
1513
1514         * system.h (gcc_assert, gcc_unreachable): Revert accidental commit
1515         in r148403.
1516
1517 2009-06-11  David Daney  <ddaney@caviumnetworks.com>
1518
1519         PR c/39252
1520         * doc/extend.texi ( __builtin_unreachable): Document new builtin.
1521         * builtins.c (expand_builtin_unreachable): New function.
1522         (expand_builtin): Handle BUILT_IN_UNREACHABLE case.
1523         * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin.
1524         * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no
1525         successors.
1526         * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when
1527         searching for missing barriers.
1528
1529 2009-06-11  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1530
1531         * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov
1532         when -fprofile-generate* was passed.
1533         * config/darwin9.h (LINK_COMMAND_SPEC): Likewise.
1534
1535 2009-06-11  Anthony Green  <green@moxielogic.com>
1536
1537         * config/moxie/moxie.md: Define length attribute for all instructions.
1538         (rCC): Define.
1539         (*b<cond:code>): Support limited branch ranges for new PC-relative
1540         branch instructions.
1541         * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define.
1542
1543 2009-06-11  Jakub Jelinek  <jakub@redhat.com>
1544
1545         * config/i386/i386.c (min_insn_size): Use get_attr_length
1546         for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP.
1547         For __asm return 0.
1548
1549         * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before
1550         instead of emit_insn_before.
1551
1552 2009-06-10  Ian Lance Taylor  <iant@google.com>
1553
1554         PR bootstrap/40408
1555         * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to
1556         GIMPLE_SWITCH.
1557
1558 2009-06-10  Revital Eres  <eres@il.ibm.com>
1559
1560         * passes.c (init_optimization_passes): Reschedule
1561         predictive-commoning pass before complete unroll pass.
1562
1563 2009-06-10  Martin Jambor  <mjambor@suse.cz>
1564
1565         * cgraph.c (cgraph_node_can_be_local_p): New function.
1566         (cgraph_make_node_local): New function.
1567         * cgraph.h (cgraph_node_can_be_local_p): Declare.
1568         (cgraph_make_node_local): Declare.
1569
1570 2009-06-10  Nathan Froyd  <froydnj@codesourcery.com>
1571
1572         * tree.h (tree_base): Add packed_flag and user_align fields.
1573         Decrease size of spare field.
1574         (TYPE_USER_ALIGN): Use user_align from tree_base.
1575         (DECL_USER_ALIGN): Likewise.
1576         (TYPE_PACKED): Use packed_flag from tree_base.
1577         (DECL_PACKED): Likewise.
1578         (tree_type): Delete packed_flag and user_align fields.  Widen
1579         precision field.  Widen mode field and shuffle fields to align
1580         mode on an 8-bit boundary.
1581         (tree_decl_common): Delete decl_flag_1 and user_align fields.
1582         Renumber decl_flag_* fields.  Fix comments.  Widen
1583         decl_common_unused field.
1584         (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields.
1585         (DECL_EXTERNAL): Likewise.
1586         (DECL_BIT_FIELD): Likewise.
1587         (DECL_NONADDRESSABLE_P): Likewise.
1588         (TYPE_DECL_SUPRESS_DEBUG): Likewise.
1589         * config/arm/arm-modes.def (XImode): Make it an INT_MODE.
1590
1591 2009-06-10  Ian Lance Taylor  <iant@google.com>
1592
1593         * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I.
1594         (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P.
1595         (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O.
1596         (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc).
1597         (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old
1598         DEF_VEC_ALLOC_FUNC_P.
1599         (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc).
1600         (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old
1601         DEF_VEC_ALLOC_FUNC_O.
1602         (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc).
1603         (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old
1604         DEF_VEC_ALLOC_FUNC_I.
1605         (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare.
1606         (vec_stack_p_reserve_exact_1): Declare.
1607         (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare.
1608         (vec_stack_free): Declare.
1609         (VEC_stack_alloc): Define.
1610         (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define.
1611         (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define.
1612         (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define.
1613         * vec.c (void_p): New type.  Call DEF_VEC_P and DEF_VEC_ALLOC_P
1614         for void_p.
1615         (stack_vecs): New static variable.
1616         (vec_stack_p_reserve_exact_1): New function.
1617         (vec_stack_o_reserve_1): New static function.
1618         (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions.
1619         (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions.
1620         (vec_stack_free): New function.
1621         * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK.
1622         (VEC_df_ref_stack_alloc): Define.
1623         (df_mw_hardreg_ptr): New type.  Use DEF_VEC_P and
1624         DEF_VEC_ALLOC_P_STACK.
1625         (VEC_df_mw_hardreg_ptr_stack_alloc): Define.
1626         (struct df_collection_rec): Change _vec fields to VEC.  Remove
1627         _use fields.
1628         (df_free_collection_rec): Adjust for new fields.
1629         (df_insn_rescan): Use new df_collection_rec fields.
1630         (df_notes_rescan, df_canonize_collection_rec): Likewise.
1631         (df_ref_create_structure, df_ref_record): Likewise.
1632         (df_get_conditional_uses, df_get_call_refs): Likewise.
1633         (df_insn_refs_collect, df_bb_refs_collect): Likewise.
1634         (df_bb_refs_record, df_record_entry_block_defs): Likewise.
1635         (df_record_exit_block_uses, df_bb_verify): Likewise.
1636         (df_swap_refs): Change ref_vec parameter to VEC.  Change all callers.
1637         (df_sort_and_compress_refs): Change ref_vec parameter to VEC.
1638         Remove count parameter.  Change return type to void.  Change all
1639         callers.
1640         (df_sort_and_compress_mws): Change mw_vec parameter to VEC.
1641         Remove count parameter.  Change return type to void.  Change all
1642         callers.
1643         (df_install_refs): Change old_vec parameter to VEC.  Remove count
1644         parameter.  Change all callers.
1645         (df_install_mws): Change old_vec parameter to VEC.  Remove count
1646         parameter.  Change all callers.
1647         (df_refs_verify): Change new_rec parameter to VEC.  Change call
1648         callers.
1649         (df_mws_verify): Likewise.
1650
1651 2009-06-10  Alexandre Oliva  <aoliva@redhat.com>
1652
1653         * gcc.c (compare_files): Cast munmap argumento to caddr_t.
1654
1655 2009-06-10  H.J. Lu  <hongjiu.lu@intel.com>
1656
1657         * doc/extend.texi: Add description for __builtin_ia32_crc32di.
1658
1659 2009-06-10  Anthony Green  <green@moxielogic.com>
1660
1661         * config/moxie/crti.asm: New file.
1662         * config/moxie/crtn.asm: New file.
1663         * config/moxie/moxie.c: New file.
1664         * config/moxie/moxie.h: New file.
1665         * config/moxie/sfp-machine.h: New file.
1666         * config/moxie/moxie-protos.h: New file.
1667         * config/moxie/t-moxie: Created.
1668         * config/moxie/t-moxie-softfp: Created.
1669         * config/moxie/moxie.md: Created.
1670         * config/moxie/constraints.md: Created.
1671         * config.gcc: Add moxie support.
1672         * doc/md.texi (Machine Constraints): Add moxie constraints.
1673         * doc/contrib.texi (Contributors): Mention moxie port.
1674         * doc/install.texi (Specific): Mention the moxie port.
1675
1676 2009-06-09  Ian Lance Taylor  <iant@google.com>
1677
1678         * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if
1679         compiling with C++.
1680         * optabs.c (optab_table): Only use designated initializers if
1681         HAVE_DESIGNATED_INITIALIZERS is defined.
1682         (convert_optab_table): Likewise.
1683         (init_optabs): Always call init_insn_codes if
1684         HAVE_DESIGNATED_INITIALIZERS is not defined.
1685
1686 2009-06-09  Ian Lance Taylor  <iant@google.com>
1687
1688         * targhooks.c (default_builtin_vectorized_function): Change fn
1689         parameter to unsigned int.
1690         (default_builtin_vectorized_conversion): Change code parameter to
1691         unsigned int.
1692         (default_builtin_reciprocal): Change fn parameter to unsigned int.
1693         * targhooks.h: Update declarations.
1694         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code
1695         parameter to unsigned int.
1696
1697         * c-typeck.c (comptypes_check_enum_int): New static function.
1698         (comptypes_internal): Add enum_and_int_p parameter.  Change all
1699         callers.
1700         (comp_target_types): Add location parameter.  Change all callers.
1701         (tagged_types_tu_compatible_p): Add enum_and_int_p parameter.
1702         Change all callers.
1703         (function_types_compatible_p, type_lists_compatible_p): Likewise.
1704         (build_conditional_expr): Add colon_loc parameter.  Change all
1705         callers.
1706         (convert_for_assignment): Add location parameter.  Change all callers.
1707         * c-parser.c (c_parser_conditional_expression): Pass location of
1708         colon to build_conditional_expr.
1709         * c-tree.h (build_conditional_expr): Update declaration.
1710
1711 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
1712
1713         * graphite.c: Revert previous patch.
1714
1715 2009-06-09  Sebastian Pop  <sebastian.pop@amd.com>
1716
1717         PR bootstrap/40103
1718         * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat".
1719
1720 2009-06-09  Ghassan Shobaki  <ghassan.shobaki@amd.com>
1721
1722         * tree-ssa-loop-prefetch.c
1723         (loop_prefetch_arrays): Fixed a portability problem in printf format
1724         string.
1725
1726 2009-06-09  Martin Jambor  <mjambor@suse.cz>
1727
1728         PR tree-optimization/40351
1729         * tree-sra.c (propagate_subacesses_accross_link): Check that a
1730         refrence to a potential artifical subaccess can be constructed.
1731
1732 2009-06-08  Kaz Kojima  <kkojima@gcc.gnu.org>
1733
1734         * config/sh/sh-protos.h (sh_optimization_options): Declare.
1735         (sh_override_options): Likewise.
1736         * config/sh/sh.c: Include params.h.
1737         (sh_optimization_options): New.
1738         (sh_override_options): Likewise.
1739         * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options.
1740         (OVERRIDE_OPTIONS): Use sh_override_options.
1741
1742 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
1743
1744         * dwarf2out.c (emit_cfa_remember): New variable.
1745         (add_fde_cfi): If emit_cfa_remember, recurse to add
1746         DW_CFA_remember_state first.
1747         (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state,
1748         instead just set emit_cfa_remember.
1749
1750 2009-06-08  Jan Hubicka  <jh@suse.cz>
1751
1752         PR debug/40126
1753         * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table.
1754
1755 2009-06-08  Jan Hubicka  <jh@suse.cz>
1756
1757         PR middle-end/39834
1758         * cgraphunit.c (save_inline_function_body): Do not copy transform
1759         hooks for saved inline bodies.
1760         * ipa-passes.c (do_per_function): Do not add the hoks multiple times
1761         for given function.
1762
1763 2009-06-08  Adam Nemet  <anemet@caviumnetworks.com>
1764
1765         * jump.c (returnjump_p): Handle delayed branches.  Add missing
1766         function comment.
1767
1768 2009-06-08  Jan Hubicka  <jh@suse.cz>
1769
1770         PR middle-end/40102
1771         * cgraph.c (cgraph_create_edge_including_clones): Also asume that the
1772         original node might've been modified.
1773         * tree-inline.c (copy_bb): Do not assume that all clones are the same.
1774
1775 2009-06-08  Jakub Jelinek  <jakub@redhat.com>
1776
1777         * tree-object-size.c (addr_object_size): Add OSI argument.
1778         Handle also INDIRECT_REF with SSA_NAME inside of it as base address.
1779         (compute_builtin_object_size, expr_object_size): Adjust callers.
1780         (plus_stmt_object_size): Call addr_object_size instead of
1781         compute_builtin_object_size.
1782
1783 2009-06-08  Ghassan Shobaki  <ghassan.shobaki@amd.com>
1784             Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
1785         
1786         * tree-ssa-loop-prefetch.c 
1787         (gather_memory_references): Introduced a counter for the number of 
1788         memory references.
1789         (anything_to_prefetch_p): Introduced a counter for the number of 
1790         prefetches.
1791         (is_loop_prefetching_profitable): New function with a cost model 
1792         for prefetching.
1793         (loop_prefetch_arrays): Use the new cost model to determine if 
1794         prefetching is profitable.
1795         * params.def (MIN_INSN_TO_PREFETCH_RATIO, 
1796         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1797         * params.h (MIN_INSN_TO_PREFETCH_RATIO, 
1798         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1799         * doc/invoke.texi (MIN_INSN_TO_PREFETCH_RATIO, 
1800         PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters.
1801         
1802 2009-06-08  Michael Matz  <matz@suse.de>
1803
1804         PR debug/40012
1805         * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all
1806         partitions use the same.
1807         (expand_one_var): Deal with DECL_RTL sometimes begin set also
1808         for basevars of SSA_NAMEs.
1809         (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs,
1810         to not expand them twice.
1811         (gimple_expand_cfg): Clear DECL_RTL for those decls that have
1812         multiple places.
1813
1814 2009-06-08  Alexandre Oliva  <aoliva@redhat.com>
1815
1816         * common.opt (fcompare-debug=, fcompare-debug-second): New.
1817         (fdump-final-insns=, gtoggle): New.
1818         * doc/invoke.texi: Document them.
1819         * final.c (rest_of_clean_state): Dump final insn stream.
1820         * gcc.c (invoke_as): Hook in -fcompare-debug.
1821         (static_spec_functions): Add compare-debug-dump-opt,
1822         compare-debug-self-opt and compare-debug-auxbase-opt.
1823         (compare_debug, compare_debug_second, compare_debug_opt): New.
1824         (switches_debug_check, n_switches_debug_check): New.
1825         (debug_auxbase_opt, debug_check_temp_file): New.
1826         (process_command): Handle -fno-compare-debug, -fcompare-debug and
1827         -fcompare-debug=*.
1828         (do_self_spec): Handle arguments after switches.
1829         (do_spec_1): Add .gk extension to temp file basenames for compare.
1830         (check_live_switch): Take SWITCH_IGNORE into account, and earlier.
1831         (cc1_options): Use it instead of normal auxbase computation for
1832         the second compare-debug compilation.
1833         (compare_files): New.
1834         (main): Set up and implement compare debug mode.
1835         (compare_debug_dump_opt_spec_function): New.
1836         (compare_debug_self_opt_spec_function): New.
1837         (compare_debug_auxbase_opt_spec_function): New.
1838         * toplev.c (process_options): Handle flag_gtoggle,
1839         flag_dump_final_insns.
1840         * coverage.c (coverage_begin_output): Don't overwrite .gcno file
1841         during -fcompare-debug-second compilation.
1842
1843 2009-06-07  Ian Lance Taylor  <iant@google.com>
1844
1845         * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr.
1846         * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define.
1847
1848         * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch
1849         with no default node.  Change warning with %H to warning_at.
1850         Don't clear warn_switch around case checking.
1851         * doc/invoke.texi (Warning Options): Clarify distinction between
1852         -Wswitch and -Wswitch-enum.
1853
1854 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1855
1856         * tree-pass.h (TODO_update_ssa_any): Document internal use only.
1857
1858 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1859
1860         * gbl-ctors.h: Add header guard.
1861
1862 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1863
1864         * tree-flow.h (make_value_handle, set_value_handle, sort_vuses,
1865         sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt,
1866         vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses,
1867         vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove
1868         prototypes for removed functions.
1869         (expressions_equal_p): Move to ...
1870         * tree-ssa-sccvn.h: ... here and ...
1871         * matrix-reorg.c: ... adjust includes.
1872
1873 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1874
1875         * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output.
1876
1877 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1878
1879         * c-decl.c (finish_decl): Use bool for variable was_incomplete.
1880         (finish_function): Remove erroneous whitespace.
1881
1882 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1883
1884         * tree-cfg.c (gimple_merge_blocks): Commentary typo fix.
1885         (verify_stmts): Print statement who's gimple_bb is set to a wrong BB
1886
1887 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1888
1889         * errors.c (internal_error): Commentary typo fix.
1890         * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto.
1891         * tree-ssa-pre.c: Ditto.
1892
1893 2009-06-07  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
1894
1895         * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of
1896         them is supposed to hold actual statements.
1897
1898 2009-06-06  Ian Lance Taylor  <iant@google.com>
1899
1900         * doc/extend.texi (Attribute Syntax): Document that C++ labels on
1901         empty statements can now have attributes.
1902
1903 2009-06-05  Shujing Zhao  <pearly.zhao@oracle.com>
1904
1905         * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable.
1906         * config/mips/mips.md: Ditto.
1907
1908 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
1909
1910         * config/rs6000/eabi.asm (__eabi_convert): Don't define if
1911         _RELOCATABLE.
1912         (__eabi_uconvert): Likewise.
1913
1914 2009-06-05  Nathan Froyd  <froydnj@codesourcery.com>
1915
1916         * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and
1917         CFI_* definitions with IN_GCC.
1918
1919 2009-06-05  David Edelsohn  <edelsohn@gnu.org>
1920
1921         * xcoffout.h (xcoffout_source_line): Update prototype.
1922
1923 2009-06-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1924
1925         * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use
1926         mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM.
1927
1928 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
1929
1930         PR middle-end/40340
1931         * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune
1932         inlined_function_outer_scope_p blocks for artificial inlines
1933         even at -g0/-g1.
1934         * tree.c (tree_nonartificial_location): Rewrite using
1935         block_nonartificial_location.
1936
1937 2009-06-05  Revital Eres  <eres@il.ibm.com>
1938             Leehod Baruch  <leehod@il.ibm.com>
1939
1940         * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF.
1941         (expand_expr_real_1): Remove comment.
1942         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1943         Vectorize misaligned access when the target supports it.
1944         (vect_supportable_dr_alignment): Check for unaligned access support.
1945         * tree-vect-stmts.c (vectorizable_store): Generate misaligned store
1946         and remove asset.
1947
1948 2009-06-05  Julian Brown  <julian@codesourcery.com>
1949
1950         * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP.
1951         * config/arm/ieee754-sf.S (cmpsf2): Likewise.
1952
1953 2009-06-05  Richard Guenther  <rguenther@suse.de>
1954
1955         PR bootstrap/40350
1956         * dwarf2out.c (dwarf2out_begin_function): Mark discriminator
1957         as possibly unused.
1958
1959 2009-06-05  Jakub Jelinek  <jakub@redhat.com>
1960
1961         * config/s390/s390.c (global_not_special_regno_p): New static inline.
1962         (save_gprs): Don't tell unwinder when a global register is saved.
1963         (s390_emit_epilogue): Emit needed epilogue unwind info.
1964
1965 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
1966
1967         * dwarf2out.c (deferred_asm_name): New.
1968         (add_name_and_src_coords_attributes): Defer creation of
1969         DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not
1970         computed yet.
1971         (move_linkage_attr): New.
1972         (dwarf2out_finish): Revisit deferrals and emit attributes at the
1973         right place.
1974
1975 2009-06-05  Alexandre Oliva  <aoliva@redhat.com>
1976
1977         * tree-nested.c (finalize_nesting_tree_1): Declare the
1978         frame_decl in the binding tree.
1979
1980 2009-06-04  Cary Coutant  <ccoutant@google.com>
1981
1982         * basic-block.h (struct basic_block_def): Add discriminator field.
1983         * dbxout.c (dbxout_source_line): Add new parameter.  Change all
1984         callers.
1985         * debug.c (do_nothing_debug_hooks): Add additional entry.
1986         (debug_nothing_int_charstar_int): New function.
1987         * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook.
1988         (debug_nothing_int_charstar_int): New declaration.
1989         * dwarf2out.c (dwarf2out_source_line): Add new parameter.  Write
1990         discriminator value in .loc directive.
1991         * final.c (last_discriminator): New variable.
1992         (discriminator): New variable.
1993         (final_start_function): Initialize above variables, pass current
1994         discriminator to debug hook.
1995         (notice_source_line): Check for discriminator change.
1996         * gimple-pretty-print.c (dump_bb_header): Print discriminator value.
1997         * sdbout.c (sdbout_source_line): New parameter.
1998         * tree-cfg.c (struct locus_discrim_map): New structure type.
1999         (discriminator_per_locus): New hash table.
2000         (build_gimple_cfg): Allocate and free discriminator hash table.
2001         (make_edges): Call assign_discriminator.
2002         (locus_map_hash): New function.
2003         (locus_map_eq): New function.
2004         (next_discriminator_for_locus): New function.
2005         (same_line_p): New function.
2006         (assign_discriminator): New function.
2007         (make_cond_expr_edges): Call assign_discriminator.
2008         (make_gimple_switch_edges): Likewise.
2009         (first_non_label_stmt): New function.
2010         * vmsdbgout.c (vmsdbgout_source_line): Add new parameter.  Change
2011         all callers.
2012         * xcoffout.c (xcoffout_source_line): Add new parameter.
2013
2014         * configure.ac (gcc_cv_as_discriminator): New configury check for
2015         gas support for discriminator.
2016         * configure: Regenerate.
2017         * config.in: Regenerate.
2018
2019 2009-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2020
2021         * config/arm/arm.c (thumb2_legitimate_index_p): Initialize
2022         val after checking for integers.
2023
2024 2009-06-04  Uros Bizjak  <ubizjak@gmail.com>
2025
2026         * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from
2027         X64_REGPARM_MAX.
2028         (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX.
2029         (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX.
2030         (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX.
2031         * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of
2032         X64_REGPARM_MAX.  Use X86_64_MS_SSE_REGPARM_MAX instead of
2033         X64_SSE_REGPARM_MAX.
2034         * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of
2035         X64_SSE_REGPARM_MAX.
2036
2037 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
2038
2039         * gcc.c (report_times_to_file): New.
2040         (execute): Implement it.
2041         (process_command): Support -time=.
2042         * doc/invoke.texi: Document it.
2043
2044 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
2045
2046         * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables
2047         that have value exprs.
2048
2049 2009-06-04  Alexandre Oliva  <aoliva@redhat.com>
2050
2051         * dwarf2asm.c (dw2_force_const_mem): Defer creation of
2052         declarations for constants until...
2053         (dw2_output_indirect_constant_1): ... this point.
2054
2055 2009-06-04  Richard Earnshaw  <rearnsha@arm.com>
2056
2057         PR target/10242
2058         * arm.md (arm_addsi3): Don't try to split an add with an
2059         eliminable register until after reload has completed.
2060
2061 2009-06-03  Ian Lance Taylor  <iant@google.com>
2062
2063         * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST.
2064         * genattrtab.c (write_length_unit_log): Likewise.
2065         * genchecksum.c (dosum): Likewise.
2066         * gengtype.c (write_rtx_next): Likewise.
2067         (finish_root_table, write_roots): Likewise.
2068         * gimple.c (gimple_ops_offset_): Likewise.
2069         * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise.
2070         * config/arc/arc.c (arc_attribute_table): Likewise.
2071         * config/arm/arm.c (arm_attribute_table): Likewise.
2072         * config/avr/avr.c (avr_attribute_table): Likewise.
2073         * config/crx/crx.c (crx_attribute_table): Likewise.
2074         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
2075         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise.
2076         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
2077         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
2078         * config/sh/sh.c (sh_attribute_table): Likewise.
2079         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
2080         * config/spu/spu.c (spu_attribute_table): Likewise.
2081         * config/v850/v850.c (v850_attribute_table): Likewise.
2082
2083         * config/alpha/alpha.c (vms_attribute_table): Make static.
2084         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
2085         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
2086         * config/mips/mips.c (mips_attribute_table): Likewise.
2087
2088         * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and
2089         $(SYSTEM_H).
2090         (cc1-checksum.o): Likewise.
2091
2092 2009-06-03  Steve Ellcey  <sje@cup.hp.com>
2093
2094         * config/ia64/vect.md (*movv2sf_internal): Handle big endian case.
2095
2096 2009-06-03  Jakub Jelinek  <jakub@redhat.com>
2097
2098         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated
2099         insn if it is changing sp.  Use gen_add3_insn instead of
2100         conditionally gen_addsi3 and gen_adddi3.
2101         (offset_below_red_zone_p): New static inline function.
2102         (rs6000_emit_epilogue): Emit needed epilogue unwind info.
2103         Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3.
2104         * config/rs6000/ppc-asm.h: Include auto-host.h.
2105         (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET,
2106         CFI_RESTORE): Define.
2107         * config/rs6000/crtresxgpr.asm: Add unwind info.
2108         * config/rs6000/crtresxfpr.asm: Likewise.
2109         * config/rs6000/crtresgpr.asm: Likewise.
2110         * config/rs6000/crtresfpr.asm: Likewise.
2111         * config/rs6000/crtsavgpr.asm: Likewise.
2112         * config/rs6000/crtsavfpr.asm: Likewise.
2113
2114         * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second
2115         argument of DWARF2_FRAME_REG_OUT macros.
2116
2117 2009-06-03  Julian Brown  <julian@codesourcery.com>
2118
2119         * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four
2120         words or less (including TImode) in core registers.
2121
2122 2009-06-03  Richard Guenther  <rguenther@suse.de>
2123
2124         PR middle-end/40328
2125         * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
2126
2127 2009-06-03  Andrey Belevantsev  <abel@ispras.ru>
2128
2129         * statistics.c (statistics_counter_event): Do not record event 
2130         in pass dump if its number == -1.
2131         (curr_statistics_hash): Add assert that we never get passes 
2132         with static number == -1.
2133
2134 2009-06-03  Richard Guenther  <rguenther@suse.de>
2135             Andrey Belevantsev  <abel@ispras.ru>
2136
2137         * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 
2138         non-BLKmode arrays addressable.
2139
2140 2009-06-03  Maxim Kuvyrkov  <maxim@codesourcery.com>
2141
2142         * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ...
2143         * config/m68k/m68k.h: ... here.
2144         * testsuite/gcc.dg/falign-labels.c (dg-options): Don't restrict for
2145         m68k and fido.
2146
2147 2009-06-03  Martin Jambor  <mjambor@suse.cz>
2148
2149         PR tree-optimization/40323
2150         * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single
2151         assignment.
2152
2153 2009-06-03  Richard Guenther  <rguenther@suse.de>
2154
2155         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
2156         consistently.
2157
2158 2009-06-03  Shujing Zhao  <pearly.zhao@oracle.com>
2159
2160         * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P,
2161         JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and
2162         JUMP_TABLE_DATA_P where applicable.
2163         * config/sh/sh.c: Ditto.
2164         * config/sh/sh.h: Ditto.
2165         * config/sh/sh.md: Ditto.
2166         * config/sh/symbian.c: Ditto.
2167
2168 2009-06-03  Uros Bizjak  <ubizjak@gmail.com>
2169
2170         * config/i386/driver-i386.c (describe_cache): Optimize
2171         concatenation of strings.  Use snprintf instead of sprintf.
2172         (host_detect_local_cpu): Ditto.  Ignore -march and -mtune for native
2173         target when not compiling with GCC.
2174
2175 2009-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
2176
2177         * config/sh/sh.c: Revert last change.
2178         (sh_expand_epilogue): Emit a blockage insn before the frame
2179         pointer adjustment unconditionally.
2180
2181 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2182
2183         * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program".
2184         * config/pa/pa-hpux10.h (LINK_SPEC): Likewise.
2185         * config/pa/pa-hpux11.h (LINK_SPEC): Likewise.
2186         * gcc.c (set_collect_gcc_options): Don't add -fwhole-program
2187         to COLLECT_GCC_OPTIONS.
2188
2189 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2190
2191         * collect2.c (target_system_root): New variable.
2192         (main): Handle --sysroot=.
2193         (ignore_library): Strip the sysroot from the library path.
2194
2195 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2196
2197         * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o.
2198         (collect2.o): Depend on collect2-aix.h.
2199         (collect2-aix.o): New rule.
2200         * collect2-aix.h: New file.
2201         * collect2-aix.c: Likewise.
2202         * collect2.c: Include collect2-aix.h.  Don't undefine
2203         OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined.
2204         Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE.
2205         Use TARGET_AIX_VERSION instead of _AIX51.
2206         * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define.
2207         * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise.
2208         * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise.
2209         * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise.
2210         * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise.
2211
2212 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2213
2214         * collect2.c (ignore_library): Avoid premature post-increment
2215         and null deference.
2216
2217 2009-06-02  Richard Sandiford  <r.sandiford@uk.ibm.com>
2218
2219         * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT.
2220         * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the
2221         !CROSS_DIRECTORY_STRUCTURE alternative and use it for
2222         CROSS_DIRECTORY_STRUCTURE too.
2223         (LINK_LIBG_SPEC): Likewise.
2224         (LIB_SPEC): Add %R to sysroot paths.
2225         * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths.
2226         (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise.
2227         * config/rs6000/aix51.h: As for aix43.h.
2228         * config/rs6000/aix52.h: Likewise.
2229         * config/rs6000/aix53.h: Likewise.
2230         * config/rs6000/aix61.h: Likewise.
2231         * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT)
2232         to the beginning of sysroot paths.
2233
2234 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2235
2236         * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and
2237         INSN_LISTs that are out of the REG_NOTE range.
2238
2239 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2240
2241         * loop-unroll.c (struct iv_to_split): Add pointer to next.
2242         (struct var_to_expand): Likewise.
2243         (struct opt_info): Add head and tail for linked lists of the above.
2244         (analyze_insn_to_expand_var): Initialize next.
2245         (analyze_iv_to_split_insn): Likewise.
2246         (analyze_insns_in_loop): Create linked lists.
2247         (allocate_basic_variable): Simplify for use without hash table.
2248         (insert_var_expansion_initialization): Likewise, make it type-safer.
2249         (combine_var_copies_in_loop_exit): Likewise.
2250         (apply_opt_in_copies): Walk lists rather than hash tables.
2251         (release_var_copies): Simplified and inlined by hand into...
2252         (free_opt_info): ... this function.
2253
2254 2009-06-02  Richard Guenther  <rguenther@suse.de>
2255
2256         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE
2257         for field decls.
2258
2259 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2260
2261         * cfgexpand.c (gimple_expand_cfg): Discard the source location
2262         only for builtins that are not overridden.
2263
2264 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2265
2266         * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's
2267         label string.
2268
2269 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2270
2271         * df-core.c (df_ref_debug): Honor -fdump-noaddr.
2272
2273 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2274
2275         * combine.c (move_deaths): Compare LUIDs within the same BB only.
2276
2277 2009-06-02  Alexandre Oliva  <aoliva@redhat.com>
2278
2279         * common.opt (fdump-unnumbered-links): New.
2280         * doc/invoke.texi (-fdump-unnumbered-links): Document it.
2281         * print-rtl.c (flag_dump_unnumbered_links): New.
2282         (print_rtx): Test it.
2283
2284 2009-06-02  Richard Earnshaw  <rearnsha@arm.com>
2285
2286         * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a
2287         push/pop multiple to 8-byte alignment.
2288
2289 2009-06-01  Jakub Jelinek  <jakub@redhat.com>
2290
2291         * config/i386/i386.c (queued_cfa_restores): New static variable.
2292         (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New
2293         functions.
2294         (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes.
2295         (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument.
2296         Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note.
2297         Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET
2298         note unconditionally.
2299         (ix86_emit_restore_regs_using_mov): Likewise.
2300         (ix86_emit_restore_sse_regs_using_mov): Likewise.
2301         (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass
2302         it through to ix86_emit_restore_reg_using_pop.
2303         (ix86_emit_leave): Add RED_OFFSET argument.  Call
2304         ix86_add_queued_cfa_restore_notes.  Call ix86_add_cfa_restore_note
2305         instead of adding REG_CFA_OFFSET note unconditionally.
2306         (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to
2307         the above functions.  Call ix86_add_queued_cfa_restore_notes when
2308         needed.
2309
2310         * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true,
2311         force output of the label even for dwarf2out_do_cfi_asm.
2312         (add_fde_cfi): If -g2 and above and cfi might change CFA,
2313         force creation of CFI label and chain DW_CFA_set_loc jumping to it
2314         for convert_cfa_to_fb_loc_list.  Adjust other dwarf2out_cfi_label
2315         caller.
2316         (dwarf2out_stack_adjust, dwarf2out_frame_debug,
2317         dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust
2318         dwarf2out_cfi_label callers.
2319         * tree.h (dwarf2out_cfi_label): Adjust prototype.
2320         * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue):
2321         Adjust dwarf2out_cfi_label callers.
2322         * config/vax/vax.c (vax_output_function_prologue): Likewise.
2323
2324         * config/i386/i386.h (struct machine_cfa_state,
2325         struct machine_function): Guard with ifndef USED_FOR_TARGET
2326         instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS.
2327
2328         PR other/40024
2329         * emutls.c (__emutls_get_address): Change arr->size to mean number
2330         of allocated arr->data entries instead of # of slots + 1.
2331
2332         PR middle-end/40316
2333         * recog.c (peep2_reinit_state): New function.
2334         (peephole2_init_state): Use it at the end of a basic block and also
2335         when seeing a RTX_FRAME_RELATED_P insn.
2336
2337 2009-06-01  Steve Ellcey  <sje@cup.hp.com>
2338
2339         * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf,
2340         fixuns_truncrfdi2): New.
2341         (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts,
2342         *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts,
2343         *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts,
2344         *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf,
2345         *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts,
2346         *recip_approx): Remove.
2347         (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3,
2348         moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr,
2349         divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and
2350         move to div.md.
2351         * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt,
2352         setf_exp_rf): New.
2353
2354 2009-06-01  Ian Lance Taylor  <iant@google.com>
2355
2356         * attribs.c (register_attribute): Use CONST_CAST.
2357         * collect2.c (main): Use CONST_CAST2.
2358         (scan_prog_file): Likewise.
2359         * gcc.c (process_command, main): Likewise.
2360         * toplev.c (toplev_main): Likewise.
2361
2362         * c-typeck.c (handle_warn_cast_qual): New static function,
2363         partially broken out of build_c_cast.
2364         (build_c_cast): Call handle_warn_cast_qual.
2365         * doc/invoke.texi (Warning Options): Document new effect of
2366         -Wcast-qual.
2367
2368 2009-06-01  Aldy Hernandez  <aldyh@redhat.com>
2369
2370         * diagnostic.c (diagnostic_build_prefix): Always print columns.
2371         (diagnostic_report_current_module): Print columns.
2372         * common.opt (flag_show_column): Enable by default.
2373
2374 2009-06-01  Luis Machado  <luisgpm@br.ibm.com>
2375
2376         * alias.c (find_base_term): Check for NULL term before returning.
2377
2378 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
2379
2380         Revert due to PR40320:
2381         2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
2382         * calls.c (emit_library_call_value_1): Don't force_operand for move
2383         and push insns.
2384
2385 2009-06-01  Olivier Hainque  <hainque@adacore.com>
2386             Eric Botcazou  <ebotcazou@adacore.com>
2387
2388         * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is
2389         to be processed as a bitfield for constructor output purposes.
2390         * output.h (initializer_constant_valid_for_bitfield_p): Declare
2391         new function.
2392         * varasm.c (oc_local_state): New type, output_constructor
2393         local state to support communication with helpers.
2394         (oc_outer_state): New type, output_constructor outer state of
2395         relevance in recursive calls.
2396         (output_constructor_array_range): New output_constructor helper,
2397         extracted code for an array range element.
2398         (output_constructor_regular_field): New output_constructor helper,
2399         extracted code for an element that is not a bitfield.
2400         (output_constructor_bitfield): New output_constructor helper,
2401         extracted code for a bitfield element.  Accept an OUTER state
2402         argument for recursive processing.  Recurse on record or array
2403         CONSTRUCTOR values, possibly past noop conversions.
2404         (initializer_constant_valid_for_bitfield_p): New predicate.  Whether
2405         VALUE is a valid constant-valued expression for use in a static
2406         bit-field initializer.
2407         (output_constructor): Rework to use helpers.  Accept and honor an
2408         OUTER state argument for recursive calls.  Return total size.  Be
2409         prepared for nested constructors initializing bitfields.
2410         (output_constant): Feed OUTER in calls to output_constructor.
2411
2412 2009-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
2413
2414         * calls.c (emit_library_call_value_1): Don't force_operand for move
2415         and push insns.
2416
2417 2009-06-01  Nick Clifton  <nickc@redhat.com>
2418
2419         * doc/invoke.texi (IA-64 Options): Fix typo.
2420
2421 2009-06-01  Ira Rosen  <irar@il.ibm.com>
2422
2423         PR tree-optimization/39129
2424         * tree-vect-loop-manip.c (conservative_cost_threshold): Change the 
2425         printed message.
2426         (vect_do_peeling_for_loop_bound): Use 
2427         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2428         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2429         (vect_loop_versioning): Likewise.
2430         (vect_create_cond_for_alias_checks): Fix indentation.
2431         * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 
2432         macros.
2433         (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define.
2434         (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise.
2435         * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 
2436         "control flow in loop".
2437         (vect_estimate_min_profitable_iters): Use 
2438         LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and
2439         LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros.
2440         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
2441         (vect_create_data_ref_ptr): Don't mention array dimension in printing.
2442         * tree-vect-stmts.c (vectorizable_store): Replace the check that the 
2443         statement belongs to a group of strided accesses with the exact code 
2444         check.
2445         (vectorizable_load): Likewise.
2446         * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block".
2447         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
2448
2449 2009-06-01  Gerald Pfeifer  <gerald@pfeifer.com>
2450
2451         * config/freebsd-stdint.h: New file.
2452         * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap.
2453         Add freebsd-stdint.h to tm_file.
2454
2455 2009-06-01  Richard Earnshaw  <rearnsha@arm.com>
2456
2457         * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split.
2458         (thumb2_extendhidi2): Likewise.
2459
2460 2009-05-31  Ian Lance Taylor  <iant@google.com>
2461
2462         * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition.
2463
2464 2009-05-31  Ian Lance Taylor  <iant@google.com>
2465
2466         * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H).
2467         (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H).
2468         (ipa-reference.o): Depend upon gt-ipa-reference.h.
2469
2470 2009-05-31  Jason Merrill  <jason@redhat.com>
2471
2472         * tree-pretty-print.c (print_call_name): Take the callee, not the
2473         call itself.  Make non-static.  Use dump_function_name for functions.
2474         (dump_generic_node): Adjust.
2475         * diagnostic.h: Declare print_call_name.
2476         * gimple-pretty-print.c (dump_gimple_call): Use it.
2477
2478 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
2479
2480         * config/sh/sh.md (ashldi3_std): New define_expand.
2481         (ashldi3): Use it.
2482
2483 2009-05-31  Kaz Kojima  <kkojima@gcc.gnu.org>
2484
2485         PR target/40313
2486         * config/sh/sh.c: Include debug.h.
2487         (sh_expand_epilogue): Emit a blockage insn before the frame
2488         pointer adjustment also when dwarf2out_do_frame returns true.
2489
2490 2009-05-31  Richard Earnshaw  <rearnsha@arm.com>
2491
2492         * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern.
2493         (thumb2_extendqidi2): New pattern.
2494
2495 2009-05-31  Ira Rosen  <irar@il.ibm.com>
2496
2497         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't
2498         mark phis for renaming.
2499         * tree-vectorizer.c (vect_memsyms_to_rename): Remove.
2500         (vectorize_loops): Don't allocate and free vect_memsyms_to_rename.
2501         Call mark_sym_for_renaming.
2502         * tree-vectorizer.h (vect_memsyms_to_rename): Remove.
2503         * tree-vect-loop.c (vect_transform_loop): Remove
2504         vect_memsyms_to_rename initialization and a call to
2505         mark_set_for_renaming.
2506
2507 2009-05-31  Jakub Jelinek  <jakub@redhat.com>
2508
2509         PR middle-end/40304
2510         * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns
2511         frame related even if !set_cfa && style < 0.
2512
2513 2009-05-30  Kai Tietz  <kai.tietz@onevision.com>
2514
2515         * config/i386/mingw-tls.c: New file.
2516         * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file.
2517         * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets
2518         defining _WIN32 but not __CYGWIN__.
2519
2520 2009-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2521
2522         * configure.ac: Add MPC support.
2523         
2524         * config.in, configure: Regenerate.     
2525
2526 2009-05-29  Richard Henderson  <rth@redhat.com>
2527
2528         * cfgcleanup.c (try_crossjump_to_edge): Only skip past
2529         NOTE_INSN_BASIC_BLOCK.
2530         * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks.
2531         Duplicate NOTE_INSN_EPILOGUE_BEG notes.
2532         * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG
2533         to be deleted.
2534         * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield,
2535         add in_use field.
2536         (add_cfi): Disable check redefining cfa away from drap.
2537         (lookup_cfa_1): Add remember argument; handle remember/restore.
2538         (lookup_cfa): Pass remember argument.
2539         (cfa_remember): New.
2540         (compute_barrier_args_size_1): Remove sibcall check.
2541         (dwarf2out_frame_debug_def_cfa): New.
2542         (dwarf2out_frame_debug_adjust_cfa): New.
2543         (dwarf2out_frame_debug_cfa_offset): New.
2544         (dwarf2out_frame_debug_cfa_register): New.
2545         (dwarf2out_frame_debug_cfa_restore): New.
2546         (dwarf2out_frame_debug): Handle REG_CFA_* notes.
2547         (dwarf2out_begin_epilogue): New.
2548         (dwarf2out_frame_debug_restore_state): New.
2549         (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state,
2550         DW_CFA_restore_state.
2551         (output_cfi_directive): Likewise.
2552         (convert_cfa_to_fb_loc_list): Likewise.
2553         (dw_cfi_oprnd1_desc): Handle DW_CFA_restore.
2554         * dwarf2out.h: Update.
2555         * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P.
2556         (copy_insn_1): Early out for null.
2557         * final.c (final_scan_insn): Call dwarf2out_begin_epilogue
2558         and dwarf2out_frame_debug_restore_state.
2559         * function.c (prologue, epilogue, sibcall_epilogue): Remove.
2560         (prologue_insn_hash, epilogue_insn_hash): New.
2561         (free_after_compilation): Adjust freeing accordingly.
2562         (record_insns): Create hash table if needed; push insns into
2563         hash instead of array.
2564         (maybe_copy_epilogue_insn): New.
2565         (contains): Search hash table instead of array.
2566         (sibcall_epilogue_contains): Remove.
2567         (thread_prologue_and_epilogue_insns): Split eh_return insns
2568         and mark them as epilogues.
2569         (reposition_prologue_and_epilogue_notes): Rewrite epilogue
2570         scanning in terms of basic blocks.
2571         * insn-notes.def (CFA_RESTORE_STATE): New.
2572         * jump.c (returnjump_p_1): Accept EH_RETURN.
2573         (eh_returnjump_p_1, eh_returnjump_p): New.
2574         * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET,
2575         CFA_REGISTER, CFA_RESTORE): New.
2576         * rtl.def (EH_RETURN): New.
2577         * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare.
2578
2579         * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove.
2580         (eh_return_internal): Use eh_return rtx; split w/ epilogue.
2581
2582         * config/i386/i386.c (gen_push): Update cfa state.
2583         (pro_epilogue_adjust_stack): Add set_cfa argument.  When true,
2584         add a CFA_ADJUST_CFA note.
2585         (ix86_dwarf_handle_frame_unspec): Remove.
2586         (ix86_expand_prologue): Update cfa state.
2587         (ix86_emit_restore_reg_using_pop): New.
2588         (ix86_emit_restore_regs_using_pop): New.
2589         (ix86_emit_leave): New.
2590         (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes.
2591         (ix86_expand_epilogue): Add notes for unwinding the epilogue.
2592         * config/i386/i386.h (struct machine_cfa_state): New.
2593         (ix86_cfa_state): New.
2594         * config/i386/i386.md (UNSPEC_EH_RETURN): Remove.
2595         (eh_return_internal): Merge from eh_return_<mode>,
2596         use eh_return rtx, split w/ epilogue.
2597
2598 2009-05-29  Ian Lance Taylor  <iant@google.com>
2599
2600         * builtins.c (validate_gimple_arglist): Don't use va_arg with
2601         enum type.
2602         * calls.c (emit_library_call_value_1): Likewise.
2603
2604         * c-typeck.c (c_build_va_arg): New function.
2605         * c-tree.h (c_build_va_arg): Declare.
2606         * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg
2607         instead of build_va_arg.
2608
2609 2009-05-29  Eric Botcazou  <ebotcazou@adacore.com>
2610
2611         * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case.
2612         (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise.
2613         (ptr_difference_cost): Use affine combinations to compute it.
2614         (difference_cost): Likewise.
2615         (get_computation_cost_at): Compute more accurate cost for addresses
2616         if the ratio is a multiplier allowed in addresses.
2617         For non-addresses, consider that an additional offset or symbol is
2618         added only once.
2619
2620 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
2621
2622         * config/i386/i386.c (ix86_decompose_address): Avoid useless
2623         0 displacement.  Add 0 displacement if base is %[er]bp or %r13.
2624
2625         * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for
2626         TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default.
2627         (prefix_rex): For UNIT_MMX don't imply the prefix by default
2628         if MODE_DI.
2629         (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and
2630         to 1 for TYPE_SSE{IADD1,CVT1}.
2631         (prefix_vex_imm8): Removed.
2632         (length_vex): Only pass 1 as second argument to
2633         ix86_attr_length_vex_default if prefix_extra is 0.
2634         (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT.
2635         (length): For prefix vex computation use length_immediate
2636         attribute instead of prefix_vex_imm8.
2637         (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64,
2638         addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0,
2639         *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1,
2640         *xorqi_cc_ext_1_rex64): Override modrm attribute to 1.
2641         (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2,
2642         *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit
2643         a space in between the operands.
2644         (*anddi_1_rex64, *andsi_1): Likewise.  Override prefix_rex to 1
2645         if one operand is 0xff and the other one si, di, bp or sp.
2646         (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the
2647         other one si, di, bp or sp.
2648         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute.
2649         (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add
2650         type and mode attributes.
2651         (*bsr, *bsr_rex64, *bsrhi): Add type attribute.
2652         (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear
2653         prefix_rep attribute and set prefix_data16 attribute iff MODE_DF.
2654         (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set
2655         prefix_data16 attribute iff MODE_DF.
2656         (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute.
2657         (fix_trunc<mode>di_sse): Set prefix_rex attribute.
2658         (*adddi_4_rex64, *addsi_4): Use const128_operand instead of
2659         constm128_operand in length_immediate computation.
2660         (*addhi_4): Likewise.  Fix mode attribute to MODE_HI.
2661         (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq.
2662         (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set
2663         length_immediate attribute to 1.
2664         (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute.
2665         (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes
2666         for certain alternatives.
2667         (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override
2668         prefix_data16 attribute if MODE_V1DF.
2669         (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set
2670         length_immediate to 1.
2671         (set_got_rex64, set_rip_rex64): Remove length attribute, set
2672         length_address to 4, set mode attribute to MODE_DI.
2673         (set_got_offset_rex64): Likewise.  Set length_immediate to 0.
2674         (fxam<mode>2_i387): Set length attribute to 4.
2675         (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow,
2676         *prefetch_3dnow_rex): Override length_address attribute.
2677         (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex
2678         attributes.
2679         * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate.
2680         (constm128_operand): Removed.
2681         * config/i386/i386.c (memory_address_length): For
2682         disp && !index && !base in 64-bit mode account for SIB byte if
2683         print_operand_address can't optimize disp32 into disp32(%rip)
2684         and UNSPEC doesn't imply (%rip) addressing.  Add 1 to length
2685         for fs: or gs: segment.
2686         (ix86_attr_length_immediate_default): When checking if shortform
2687         is possible, truncate immediate to the length of the non-shortened
2688         immediate.
2689         (ix86_attr_length_address_default): Ignore MEM_P operands
2690         with X constraint.
2691         (ix86_attr_length_vex_default): Only check for DImode on
2692         GENERAL_REG_P operands.
2693         * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear
2694         prefix_rep attribute, set prefix_data16 attribute iff MODE_DF.
2695         (sse_cvttps2pi): Clear prefix_rep attribute.
2696         (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16
2697         attribute.
2698         (*sse2_cvttpd2dq): Don't clear prefix_rep attribute.
2699         (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3,
2700         *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1
2701         iff operand 2 is const_int_operand.
2702         (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>,
2703         sse2_shufpd_<mode>): Set length_immediate attribute to 1.
2704         (sse2_pshufd_1): Likewise.  Set prefix attribute to maybe_vex
2705         instead of vex.
2706         (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear
2707         prefix_data16.
2708         (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set
2709         prefix_data16 attribute for movlpd and movhpd instructions.
2710         (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise.  Override
2711         length_immediate for shufpd instruction.
2712         (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute.
2713         (avx_cmpp<avxmodesuffixf2c><mode>3,
2714         avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3,
2715         <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3,
2716         avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>,
2717         *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1.
2718         (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4.
2719         (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1.
2720         (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override
2721         prefix_data16 attribute for the first alternative to 1.
2722         (*avx_loadlps): Override length_immediate for the first alternative.
2723         (*vec_concatv2sf_avx): Override length_immediate and prefix_extra
2724         attributes for second alternative.
2725         (*vec_concatv2sf_sse4_1): Override length_immediate and
2726         prefix_data16 attributes for second alternative.
2727         (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>,
2728         vec_extract_hi_<mode>, vec_extract_lo_v16hi,
2729         vec_extract_hi_v16hi, vec_extract_lo_v32qi,
2730         vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1.
2731         (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set
2732         prefix_data16 and length_immediate to 1.
2733         (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra
2734         to 1.
2735         (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set
2736         prefix_extra attribute for variants that don't have 0f prefix alone.
2737         (*avx_pinsr<ssevecsize>): Likewise.  Set length_immediate to 1.
2738         (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb,
2739         *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory,
2740         *sse4_1_pextrd): Set length_immediate to 1.
2741         (*sse4_1_pinsrd): Likewise.  Set prefix_extra to 1.
2742         (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate
2743         to 1.
2744         (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64,
2745         *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override
2746         length_immediate to 1 for second alternative.
2747         (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override
2748         prefix_extra and length_immediate attributes for the first
2749         alternative.
2750         (vec_concatv2si_sse4_1): Override length_immediate to 1 for the
2751         first alternative.
2752         (*vec_concatv2di_rex64_sse4_1): Likewise.  Override prefix_rex
2753         to 1 for the first and third alternative.
2754         (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second
2755         alternative.
2756         (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex
2757         attribute.
2758         (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address
2759         attribute to 0.
2760         (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3,
2761         *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi,
2762         *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3,
2763         *avx_psign<mode>3): Set prefix_extra attribute to 1.
2764         (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3,
2765         ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3,
2766         ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3,
2767         ssse3_psign<mode>3): Override prefix_rex attribute.
2768         (*avx_palignrti): Override prefix_extra and length_immediate to 1.
2769         (ssse3_palignrti): Override length_immediate to 1.
2770         (ssse3_palignrdi): Override length_immediate to 1, override
2771         prefix_rex attribute.
2772         (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute.
2773         (sse4a_extrqi): Override length_immediate to 2.
2774         (sse4a_insertqi): Likewise.  Override prefix_data16 to 0.
2775         (sse4a_insertq): Override prefix_data16 to 0.
2776         (avx_blendp<avxmodesuffixf2c><avxmodesuffix>,
2777         avx_blendvp<avxmodesuffixf2c><avxmodesuffix>,
2778         avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw,
2779         *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256,
2780         avx_rounds<avxmodesuffixf2c>256): Override prefix_extra
2781         and length_immediate to 1.
2782         (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>,
2783         sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm,
2784         sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri,
2785         sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16
2786         and length_immediate to 1.
2787         (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1.
2788         (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1.
2789         (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>,
2790         avx_ptest256): Override prefix_extra to 1.
2791         (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>):
2792         Override prefix_data16 and length_immediate to 1.
2793         (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi,
2794         sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si,
2795         sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di,
2796         sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override
2797         prefix_data16 to 0 and prefix_extra to 2.
2798         (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1.
2799         (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra
2800         attribute.
2801         (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3,
2802         sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3):
2803         Override prefix_data16 and prefix_rep to 0, length_immediate to 1
2804         and prefix_extra to 2.
2805         (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override
2806         prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2.
2807         (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast,
2808         avx_vpermilvar<mode>3,
2809         avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>,
2810         avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256,
2811         avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>,
2812         avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>):
2813         Override prefix_extra to 1.
2814         (aeskeygenassist, pclmulqdq): Override length_immediate to 1.
2815         (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3,
2816         vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi,
2817         vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override
2818         prefix_extra and length_immediate to 1.
2819         (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override
2820         modrm to 0.
2821         (*vec_concat<mode>_avx): Override prefix_extra and length_immediate
2822         to 1 for the first alternative.
2823         * config/i386/mmx.md (*mov<mode>_internal_rex64): Override
2824         prefix_rep, prefix_data16 and/or prefix_rex attributes in certain
2825         cases.
2826         (*mov<mode>_internal_avx, *movv2sf_internal_rex64,
2827         *movv2sf_internal_avx, *movv2sf_internal): Override
2828         prefix_rep attribute for certain alternatives.
2829         (*mov<mode>_internal): Override prefix_rep or prefix_data16
2830         attributes for certain alternatives.
2831         (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex
2832         attributes for certain alternatives.
2833         (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3,
2834         *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2,
2835         mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3,
2836         mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3,
2837         *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw,
2838         mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3,
2839         mmx_pswapdv2si2): Set prefix_extra attribute to 1.
2840         (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set
2841         length_immediate to 1 if operand 2 is const_int_operand.
2842         (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi,
2843         *vec_extractv2si_1): Set length_immediate attribute to 1.
2844         (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if
2845         using old 3DNOW insn rather than SSE/3DNOW_A.
2846         (mmx_emms, mmx_femms): Clear modrm attribute.
2847
2848 2009-05-29  Martin Jambor  <mjambor@suse.cz>
2849
2850         * tree-sra.c:  New implementation of SRA.
2851
2852         * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed.
2853         (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed.
2854         (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed.
2855         * params.h (SRA_MAX_STRUCTURE_SIZE): Removed.
2856         (SRA_MAX_STRUCTURE_COUNT): Removed.
2857         (SRA_FIELD_STRUCTURE_RATIO): Removed.
2858         * doc/invoke.texi (sra-max-structure-size): Removed.
2859         (sra-field-structure-ratio): Removed.
2860
2861 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
2862
2863         PR middle-end/40291
2864         * builtins.c (expand_builtin_memcmp): Convert len to sizetype
2865         before expansion.
2866
2867 2009-05-29  Andrey Belevantsev  <abel@ispras.ru>
2868
2869         PR rtl-optimization/40101
2870         * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative
2871         seqno.  Adjust comment.
2872         * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 
2873         inserting bookkeeping before a jump, the jump is not scheduled.
2874         When no positive seqno found, provide a value.  Add comment.
2875
2876 2009-05-29  Richard Guenther  <rguenther@suse.de>
2877
2878         * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove
2879         short-cutting on the first component.
2880
2881 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
2882
2883         PR middle-end/39958
2884         * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE
2885         for trees other than decls/types.
2886
2887 2009-05-29  Richard Guenther  <rguenther@suse.de>
2888
2889         * tree-ssa-operands.c (get_expr_operands): Do not handle
2890         INDIRECT_REFs in the handled-component case.  Remove
2891         unused get_ref_base_and_extent case.
2892         * tree-dfa.c (get_ref_base_and_extent): Avoid calling
2893         tree_low_cst and host_integerp where possible.
2894         * tree-ssa-structalias.c (equiv_class_label_eq): Check hash
2895         codes for equivalence.
2896         * dce.c (find_call_stack_args): Avoid redundant bitmap queries.
2897
2898 2009-05-29  David Billinghurst <billingd@gcc.gnu.org>
2899
2900         * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp
2901         to tmake_file for i[34567]86-*-cygwin*. 
2902
2903 2009-05-29  Jakub Jelinek  <jakub@redhat.com>
2904
2905         PR target/40017
2906         * config/rs6000/rs6000-c.c (_Bool_keyword): New variable.
2907         (altivec_categorize_keyword, init_vector_keywords,
2908         rs6000_cpu_cpp_builtins): Define _Bool as conditional macro
2909         similar to bool.
2910
2911 2009-05-29  Kai Tietz  <kai.tietz@onevision.com>
2912
2913         * tree.c (handle_dll_attribute): Check if node is
2914         of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check.
2915
2916 2009-05-29  Richard Earnshaw  <rearnsha@arm.com>
2917
2918         * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split
2919         component.
2920         (thumb2_zero_extendqidi2): Likewise.
2921
2922 2009-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
2923
2924         * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt
2925         instead of gen_movrt.
2926         * config/sh/sh.md (movrt): Remove.
2927
2928 2009-05-28  Steve Ellcey  <sje@cup.hp.com>
2929
2930         * doc/invoke.texi (IA-64 Options):
2931         Add -msdata, -mfused-madd, -mno-inline-float-divide, 
2932         -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc,
2933         -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns,
2934         -msched-prefer-non-control-spec-insns,
2935         -msched-stop-bits-after-every-cycle,
2936         -msched-count-spec-in-critical-path,
2937         -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost
2938         -msched-max-memory-insns-hard-limit, -msched-max-memory-insns.
2939         Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc,
2940         and -msched-spec-verbose.
2941
2942 2009-05-28  Joseph Myers  <joseph@codesourcery.com>
2943
2944         * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache.
2945         * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an
2946         error if used.
2947         * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache.
2948
2949 2009-05-28  Richard Guenther  <rguenther@suse.de>
2950
2951         * tree-ssa-alias.c (ao_ref_init): New function.
2952         (ao_ref_base): Likewise.
2953         (ao_ref_base_alias_set): Likewise.
2954         (ao_ref_alias_set): Likewise.
2955         (refs_may_alias_p_1): Change signature.
2956         (refs_may_alias_p): Adjust.
2957         (refs_anti_dependent_p): Likewise.
2958         (refs_output_dependent_p): Likewise.
2959         (call_may_clobber_ref_p_1): Change signature.
2960         (call_may_clobber_ref_p): Adjust.
2961         (stmt_may_clobber_ref_p_1): New function split out from ...
2962         (stmt_may_clobber_ref_p): ... here.
2963         (maybe_skip_until): Adjust signature.
2964         (get_continuation_for_phi): Likewise.
2965         (walk_non_aliased_vuses): Likewise.
2966         * tree-ssa-alias.h (struct ao_ref_s): New structure type.
2967         (ao_ref_init): Declare.
2968         (ao_ref_base): Likewise.
2969         (ao_ref_alias_set): Likewise.
2970         (stmt_may_clobber_ref_p_1): Likewise.
2971         (walk_non_aliased_vuses): Adjust.
2972         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function.
2973         (get_ref_from_reference_ops): remove.
2974         (vn_reference_lookup_2): Adjust signature.
2975         (vn_reference_lookup_3): Do not re-build trees.  Handle unions.
2976         (vn_reference_lookup_pieces): Adjust signature, do not re-build trees.
2977         (vn_reference_lookup): Adjust.
2978         (vn_reference_insert): Likewise.
2979         (vn_reference_insert_pieces): Adjust signature.
2980         (visit_reference_op_call): Adjust.
2981         * tree-ssa-pre.c (get_expr_type): Simplify.
2982         (phi_translate_1): Adjust.
2983         (compute_avail): Likewise.
2984         (translate_vuse_through_block): Do not re-build trees.
2985         (value_dies_in_block_x): Likewise.
2986         * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set
2987         fields.
2988         (vn_reference_lookup_pieces): Adjust declaration.
2989         (vn_reference_insert_pieces): Likewise.
2990
2991 2009-05-28  Benjamin Kosnik  <bkoz@redhat.com>
2992
2993         * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use
2994         with checking disabled.
2995
2996 2009-05-28  Dave Korn  <dave.korn.cygwin@gmail.com>
2997
2998         PR target/37216
2999
3000         * configure.ac (HAVE_GAS_ALIGNED_COMM):  Add autoconf test and
3001         macro definition for support of three-operand format aligned
3002         .comm directive in assembler on cygwin/pe/mingw target OS.
3003         * configure:  Regenerate.
3004         * config.h:  Regenerate.
3005
3006         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common):  Use
3007         aligned form of .comm directive if -mpe-aligned-commons is in effect.
3008         * config/i386/cygming.opt (-mpe-aligned-commons):  Add new option.
3009
3010         * doc/invoke.texi (-mpe-aligned-commons):  Document new target option.
3011         * doc/tm.texi (ASM_OUTPUT_COMMON):  Document zero size commons.
3012
3013 2009-05-28  Ira Rosen  <irar@il.ibm.com>
3014
3015         PR tree-optimization/40254
3016         * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account
3017         in analysis of basic blocks.
3018
3019 2009-05-28  Adam Nemet  <anemet@caviumnetworks.com>
3020
3021         PR middle-end/33699
3022         * target.h (struct gcc_target): Fix indentation.  Add const_anchor.
3023         * target-def.h (TARGET_CONST_ANCHOR): New macro.
3024         (TARGET_INITIALIZER): Use it.
3025         * cse.c (CHEAPER): Move it up to the other macros.
3026         (insert): Rename this ...
3027         (insert_with_costs): ... to this.  Add cost parameters.  Update
3028         function comment.
3029         (insert): New function.  Call insert_with_costs.
3030         (compute_const_anchors, insert_const_anchor, insert_const_anchors,
3031         find_reg_offset_for_const, try_const_anchors): New functions.
3032         (cse_insn): Call try_const_anchors.  Adjust cost of src_related
3033         when using a const-anchor.  Call insert_const_anchors.
3034         * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor.
3035         * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR.
3036
3037 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
3038
3039         * tree-inline.c (remap_decls): Enable nonlocalized variables
3040         when not optimizing.
3041
3042 2009-05-28  Alexandre Oliva  <aoliva@redhat.com>
3043
3044         * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing.
3045         Simplify other tests involving optimize.
3046
3047 2009-05-27  Tom Tromey  <tromey@redhat.com>
3048
3049         * unwind-dw2.c (_Unwind_DebugHook): New function.
3050         (uw_install_context): Call _Unwind_DebugHook.
3051
3052 2009-05-27  Tom Tromey  <tromey@redhat.com>
3053
3054         * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++
3055
3056 2009-05-27  Ian Lance Taylor  <iant@google.com>
3057
3058         * Makefile.in (LINKER, LINKER_FLAGS): Define.
3059         (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define.
3060         (ALL_LINKERFLAGS): Define.
3061         (xgcc$(exeext)): Change $(COMPILER) to $(LINKER).
3062         (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise.
3063         (collect2$(exeext), mips-tfile, mips-tdump): Likewise.
3064         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
3065         (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to
3066         $(LINKER_FOR_BUILD).
3067         (build/gcov-iov$(build_exeext)): Likewise.
3068
3069 2009-05-27  Julian Brown  <julian@codesourcery.com>
3070
3071         * gcse.c (target.h): Include.
3072         (can_assign_to_reg_without_clobbers_p): Check that the target allows
3073         copy of argument to a pseudo register.
3074
3075 2009-05-27  Diego Novillo  <dnovillo@google.com>
3076
3077         * tree-ssa-live.c (dump_scope_block): Document arguments.
3078         (dump_scope_blocks): Document.
3079         (debug_scope_blocks): New.
3080         * tree-flow.h (debug_scope_blocks): Declare.
3081
3082 2009-05-21  Denis Chertykov  <denisc@overta.ru>
3083
3084         * doc/contrib.texi (Contributors): Add myself to the list.
3085
3086 2009-05-27  Olivier Hainque  <hainque@adacore.com>
3087
3088         * expr.c (target_align): New function.  Alignment the TARGET of an
3089         assignment may be assume to have.
3090         (highest_pow2_factor_for_target): Use it instead of relying on
3091         immediate tree attributes of TARGET, not necessarily honored when
3092         intermediate bitfields are involved.
3093         
3094 2009-05-27  H.J. Lu  <hongjiu.lu@intel.com>
3095
3096         PR target/40266
3097         * config/i386/driver-i386.c (host_detect_local_cpu): Support
3098         AVX, SSE4, AES, PCLMUL and POPCNT.
3099
3100 2009-05-27  Diego Novillo  <dnovillo@google.com>
3101
3102         * tree-pretty-print.c (dump_location): New.
3103         (dump_generic_node): Call it.
3104         Factor code to handle BLOCK nodes ...
3105         (dump_block_node): ... here.
3106
3107 2009-05-27  Rafael Avila de Espindola  <espindola@google.com>
3108
3109         * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h
3110         with it.
3111         * doc/plugins.texi: Document that gcc-plugin.h must be the first to be
3112         included.
3113         * gcc-plugin.h: Include config.h and system.h.
3114         (IN_GCC): Define if not defined.
3115
3116 2009-05-27  Hans-Peter Nilsson  <hp@axis.com>
3117
3118         PR middle-end/40249
3119         * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions
3120         with -fno-inline.
3121
3122 2009-05-27  Shujing Zhao  <pearly.zhao@oracle.com>
3123
3124         * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where
3125         applicable.
3126         * config/m32r/m32r.h: Ditto.
3127         * config/m32r/m32r.md: Ditto.
3128         * config/m32r/predicates.md: Ditto.
3129
3130 2009-05-27  Alexandre Oliva  <aoliva@redhat.com>
3131
3132         * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr.
3133
3134 2009-05-26  Basile Starynkevitch  <basile@starynkevitch.net>
3135
3136         * doc/plugins.texi
3137         (Loading plugins): typo.
3138         (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START,
3139         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
3140         (Interacting with the GCC Garbage Collector): Added new section.
3141         (Giving information about a plugin): Added new section for
3142         PLUGIN_INFO.
3143         * ggc.h (ggc_register_root_tab): Added declaration.
3144         * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING)
3145         (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events.
3146         (register_callback): Improved comment in declaration.
3147         * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors.
3148         (extra_root_vec) Added static variable for dynamic roots registration.
3149         (ggc_register_root_tab) Added new routine.
3150         (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke
3151         PLUGIN_GGC_MARKING event.
3152         * ggc-zone.c: Include plugin.h.
3153         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
3154         * ggc-page.c: Include plugin.h.
3155         (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events.
3156         * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START,
3157         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS
3158         (register_callback): check lack of callbacks for
3159         pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS,
3160         PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END.
3161         (invoke_plugin_callbacks): Handle PLUGIN_GGC_START,
3162         PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS.
3163         * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added
3164         dependency on plugin.h.
3165         (plugin.o): Added dependency on ggc.h...
3166
3167 2009-05-26  Richard Guenther  <rguenther@suse.de>
3168
3169         PR middle-end/40248
3170         Revert
3171         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
3172         with mismatched comparison modes.
3173
3174         * expr.c (expand_expr_real_1): Expand the operand of a
3175         VIEW_CONVERT_EXPR in its natural mode.
3176
3177 2009-05-26  Ian Lance Taylor  <iant@google.com>
3178
3179         * Makefile.in (COMPILER, COMPILER_FLAGS): Define.
3180         (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define.
3181         (ALL_COMPILERFLAGS): Define.
3182         (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER).
3183         (cc1-dummy$(exeext), cc1$(exeext)): Likewise.
3184         (collect2$(exeext), collect2.o): Likewise.
3185         (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise.
3186         (gcc-options.o, version.o, prefix.o, toplev.o): Likewise.
3187         ($(out_object_file), mips-tfile, mips-tdump): Likewise.
3188         (libbackend.o, intl.o, cppdefault.o): Likewise.
3189         (gcov$(exeext), gcov-dump$(exeext)): Likewise.
3190         (build/%.o): Use $(COMPILER_FOR_BUILD).
3191         (build/gen%$(build_exeext)): Likewise.
3192         (build/gcov-iov$(build_exeext)): LIkewise.
3193         * config/t-darwin (darwin.o): Use $(COMPILER).
3194         (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise.
3195         * config/t-sol2 (sol2-c.o): Likewise.
3196         (sol2.o): Likewise.
3197         * config/t-vxworks (vxworks.o): Likewise.
3198         * config/x-darwin (host-darwin.o): Likewise.
3199         * config/x-hpux (host-hpux.o): Likewise.
3200         * config/x-linux (host-linux.o): Likewise.
3201         * config/x-solaris (host-solaris.o): Likewise.
3202         * config/alpha/x-alpha (driver-alpha.o): Likewise.
3203         * config/arm/t-arm (arm-c.o): Likewise.
3204         * config/arm/t-pe (pe.o): Likewise.
3205         * config/arm/t-wince-pe (pe.o): Likewise.
3206         * config/i386/t-cygming (winnt.o): Likewise.
3207         (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise.
3208         * config/i386/t-cygwin (cygwin1.o): Likewise.
3209         (cygwin2.o): Likewise.
3210         * config/i386/t-i386 (i386-c.o): Likewise.
3211         * config/i386/t-interix (winnt.o): Likewise.
3212         * config/i386/t-netware (netware.o): Likewise.
3213         * config/i386/t-nwld (nwld.o): Likewise.
3214         * config/i386/x-darwin (host-i386-darwin.o): Likewise.
3215         * config/i386/x-i386 (driver-i386.o): Likewise.
3216         * config/i386/x-cygwin (host-cygwin.o): Likewise.
3217         * config/i386/x-mingw32 (host-mingw32.o): Likewise.
3218         * config/ia64/t-ia64 (ia64-c.o): Likewise.
3219         * config/m32c/t-m32c (m32c-pragma.o): Likewise.
3220         * config/mips/x-native (driver-native.o): Likewise.
3221         * config/rs6000/t-rs6000 (rs6000-c.o): Likewise.
3222         * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
3223         * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
3224         * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise.
3225         * config/score/t-score-elf (score7.o): Likewise.
3226         (score3.o): Likewise.
3227         * config/sh/t-sh (sh-c.o): Likewise.
3228         * config/sh/t-symbian (sh-c.o): Likewise.
3229         (symbian.o): Likewise.
3230         * config/spu/t-spu-elf (spu-c.o): Likewise.
3231         * config/v850/t-v850 (v850-c.o): Likewise.
3232         * config/v850/t-v850e (v850-c.o): Likewise.
3233
3234 2009-05-26  Richard Guenther  <rguenther@suse.de>
3235
3236         PR tree-optimization/40122
3237         * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to
3238         VECTOR_CSTs if possible.
3239         (fold_gimple_assign): Likewise.
3240
3241 2009-05-26  Richard Guenther  <rguenther@suse.de>
3242
3243         PR middle-end/40252
3244         * fold-const.c (fold_binary): Use the correct types for building
3245         rotates.
3246
3247 2009-05-26  Richard Guenther  <rguenther@suse.de>
3248
3249         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove
3250         redundant calls to merge_alias_info.
3251         (bump_vector_ptr): Likewise.
3252         * tree-ssa-copy.c (merge_alias_info): Remove.
3253         (replace_exp_1): Remove call to merge_alias_info.
3254         (propagate_tree_value): Likewise.
3255         (fini_copy_prop): Propagate points-to info.
3256         * tree-flow.h (merge_alias_info): Remove.
3257
3258 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
3259
3260         * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove.
3261
3262 2009-05-25  Jan Hubicka  <jh@suse.cz>
3263
3264         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
3265         * cgraph.h (struct inline_summary): New filed self_wize,
3266         size_inlining_benefit, self_time and time_inlining_benefit.
3267         (struct cgraph_global_info): Replace insns by time ans size fields.
3268         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
3269         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
3270         (ipcp_update_callgraph): Do not touch function bodies.
3271         * ipa-inline.c: Include except.h
3272         (MAX_TIME): New constant.
3273         (overall_insns): Remove.
3274         (leaf_node_p): New.
3275         (overall_size, max_benefit): New static variables.
3276         (cgraph_estimate_time_after_inlining): New function.
3277         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
3278         (cgraph_clone_inlined_nodes): Update size.
3279         (cgraph_mark_inline_edge): Update size.
3280         (cgraph_estimate_growth): Use size info.
3281         (cgraph_check_inline_limits): Check size.
3282         (cgraph_default_inline_p): Likewise.
3283         (cgraph_edge_badness): Compute badness based on benefit and size cost.
3284         (cgraph_decide_recursive_inlining): Check size.
3285         (cgraph_decide_inlining_of_small_function): Update size; dump sizes
3286         and times.
3287         (cgraph_decide_inlining): Likewise.
3288         (cgraph_decide_inlining_incrementally): Likewise; honor
3289         PARAM_EARLY_INLINING_INSNS.
3290         (likely_eliminated_by_inlining_p): New predicate.
3291         (estimate_function_body_sizes): New function.
3292         (compute_inline_parameters): Use it.
3293         * except.c (must_not_throw_labels): New function.
3294         * except.h (must_not_throw_labels): Declare.
3295         * tree-inline.c (init_inline_once): Kill inlining_weigths
3296         * tree-ssa-structalias.c: Avoid uninitialized warning.
3297         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
3298         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
3299         (PARAM_INLINE_CALL_COST): Remove.
3300         (PARAM_EARLY_INLINING_INSNS): New.
3301
3302 2009-05-25  Richard Guenther  <rguenther@suse.de>
3303
3304         PR tree-optimization/36327
3305         * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker
3306         callback for reference translation or lookup at the point of may-defs.
3307         * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
3308         * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out
3309         for union COMPONENT_REFs.
3310         (vn_reference_lookup_3): New callback.  Lookup from memset
3311         and CONSTRUCTOR assignment, translate through struct copies.
3312         (vn_reference_lookup_pieces): Make sure to not free the
3313         passed operands array.  Adjust walk_non_aliased_vuses call.
3314         (vn_reference_lookup): Adjust walk_non_aliased_vuses call,
3315         make sure we do not leak memory.
3316
3317 2009-05-25  Richard Guenther  <rguenther@suse.de>
3318
3319         * tree-ssa-alias.h (dump_points_to_solution): Declare.
3320         * tree-inline.c (expand_call_inline): Reset the escaped and
3321         callused solutions.
3322         * tree-ssa-structalias.c (pass_build_ealias): New.
3323         * tree-pass.h (pass_build_ealias): Declare.
3324         * passes.c (init_optimization_passes): Add PTA during 
3325         early optimizations.
3326         * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED
3327         and CALLUSED solutions.
3328         (dump_points_to_solution): New function, split out from ...
3329         (dump_points_to_info_for): ... here.
3330         * tree-parloops.c (parallelize_loops): Reset the escaped and
3331         callused solutions.
3332
3333 2009-05-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3334
3335         PR bootstrap/40027
3336         * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing.
3337         * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define.
3338
3339 2009-05-25  Ira Rosen  <irar@il.ibm.com>
3340
3341         PR tree-optimization/40238
3342         * tree-vect-stmts.c (vect_init_vector): Insert initialization
3343         statements after basic block's labels.
3344         * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 
3345         to free the allocated memory.
3346
3347 2009-05-24  Kaz Kojima  <kkojima@gcc.gnu.org>
3348
3349         * gcc/config/sh/sh.c (sh_set_return_address): Mark store of
3350         return address with a USE.
3351
3352 2009-05-24  Richard Guenther  <rguenther@suse.de>
3353
3354         PR middle-end/40233
3355         * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
3356         array type from the main variant of the inner type.
3357
3358 2009-05-24  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
3359
3360         * config/vax/vax-protos.h (legitimate_constant_address_p): Change
3361         definition to bool (from int) to un-break build.
3362         (legitimate_constant_p, vax_mode_dependent_address_p): Likewise.
3363
3364 2009-05-24  Paolo Bonzini  <bonzini@gnu.org>
3365
3366         * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes,
3367         discard_stmt_changes): Delete.
3368         * tree-ssa-operands.c (scb_stack): Delete.
3369         (init_ssa_operands): Do not initialize it.
3370         (fini_ssa_operands): Do not free it.
3371         (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete.
3372
3373         * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 
3374         update_stmt, remove the others.  Fix comments.
3375         * tree-dfa.c (optimize_stack_restore): Likewise.
3376         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise.
3377         * tree-ssa-loop-ivopts.c (rewrite_use): Likewise.
3378         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
3379         * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins):
3380         Likewise.
3381         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
3382         * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise.
3383         (dom_opt_finalize_block): Likewise, adjusting access to
3384         stmts_to_rescan.
3385         (optimize_stmt): Likewise, adjusting access to stmts_to_rescan.
3386         (stmts_to_rescan): Change item type to gimple.
3387         (tree_ssa_dominator_optimize): Change type of stmts_to_rescan.
3388
3389 2009-05-24  Ira Rosen  <irar@il.ibm.com>
3390
3391         * doc/passes.texi (Tree-SSA passes): Document SLP pass.
3392         * tree-pass.h (pass_slp_vectorize): New pass.
3393         * params.h (SLP_MAX_INSNS_IN_BB): Define.
3394         * timevar.def (TV_TREE_SLP_VECTORIZATION): Define.
3395         * tree-vectorizer.c (timevar.h): Include.
3396         (user_vect_verbosity_level): Declare.
3397         (vect_location): Fix comment.
3398         (vect_set_verbosity_level): Update user_vect_verbosity_level
3399         instead of vect_verbosity_level.
3400         (vect_set_dump_settings): Add an argument. Ignore user defined
3401         verbosity if dump flags require higher level of verbosity. Print to
3402         stderr only for loop vectorization.
3403         (vectorize_loops): Update call to vect_set_dump_settings.
3404         (execute_vect_slp): New function.
3405         (gate_vect_slp): Likewise.
3406         (struct gimple_opt_pass pass_slp_vectorize): New.
3407         * tree-vectorizer.h (struct _bb_vec_info): Define along macros to
3408         access its members.
3409         (vec_info_for_bb): New function.
3410         (struct _stmt_vec_info): Add bb_vinfo and a macro for its access.
3411         (VECTORIZATION_ENABLED): New macro.
3412         (SLP_ENABLED, SLP_DISABLED): Likewise.
3413         (vect_is_simple_use): Add bb_vec_info argument.
3414         (new_stmt_vec_info, vect_analyze_data_ref_dependences,
3415         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
3416         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
3417         vect_schedule_slp, vect_analyze_slp): Likewise.
3418         (vect_analyze_stmt): Add slp_tree argument.
3419         (find_bb_location): Declare.
3420         (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise.
3421         * tree-vect-loop.c (new_loop_vec_info): Adjust function calls.
3422         (vect_analyze_loop_operations, vect_analyze_loop,
3423         get_initial_def_for_induction, vect_create_epilog_for_reduction,
3424         vect_finalize_reduction, vectorizable_reduction,
3425         vectorizable_live_operation, vect_transform_loop): Likewise.
3426         * tree-data-ref.c (dr_analyze_innermost): Update comment,
3427         skip evolution analysis if analyzing a basic block.
3428         (dr_analyze_indices): Likewise.
3429         (initialize_data_dependence_relation): Skip the test whether the
3430         object is invariant for basic blocks.
3431         (compute_all_dependences): Skip dependence analysis for data
3432         references in basic blocks.
3433         (find_data_references_in_stmt): Don't fail in case of invariant
3434         access in basic block.
3435         (find_data_references_in_bb): New function.
3436         (find_data_references_in_loop): Move code to
3437         find_data_references_in_bb and add a call to it.
3438         (compute_data_dependences_for_bb): New function.
3439         * tree-data-ref.h (compute_data_dependences_for_bb): Declare.
3440         * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case
3441         that STEP is 0.
3442         (vect_analyze_data_ref_dependence): Check for interleaving in case of
3443         unknown dependence in basic block and fail in case of dependence in
3444         basic block.
3445         (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data
3446         dependence instances from either loop or basic block vectorization
3447         info.
3448         (vect_compute_data_ref_alignment): Check if it is loop vectorization
3449         before calling nested_in_vect_loop_p.
3450         (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data
3451         dependence instances from either loop or basic block vectorization
3452         info.
3453         (vect_verify_datarefs_alignment): Likewise.
3454         (vect_enhance_data_refs_alignment): Adjust function calls.
3455         (vect_analyze_data_refs_alignment): Likewise.
3456         (vect_analyze_group_access): Fix printing. Skip different checks if
3457         DR_STEP is 0. Keep strided stores either in loop or basic block
3458         vectorization data structure. Fix indentation.
3459         (vect_analyze_data_ref_access): Fix comments, allow zero step in
3460         basic blocks.
3461         (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data
3462         dependence instances from either loop or basic block vectorization
3463         info.
3464         (vect_analyze_data_refs): Update comment. Call
3465         compute_data_dependences_for_bb to analyze basic blocks.
3466         (vect_create_addr_base_for_vector_ref): Check for outer loop only in
3467         case of loop vectorization. In case of basic block vectorization use
3468         data-ref itself as a base.
3469         (vect_create_data_ref_ptr): In case of basic block vectorization:
3470         don't advance the pointer, add new statements before the current
3471         statement.  Adjust function calls.
3472         (vect_supportable_dr_alignment): Support only aligned accesses in
3473         basic block vectorization.
3474         * common.opt (ftree-slp-vectorize): New flag.
3475         * tree-vect-patterns.c (widened_name_p): Adjust function calls.
3476         (vect_pattern_recog_1): Likewise.
3477         * tree-vect-stmts.c (process_use): Likewise.
3478         (vect_init_vector): Add new statements in the beginning of the basic
3479         block in case of basic block SLP.
3480         (vect_get_vec_def_for_operand): Adjust function calls.
3481         (vect_finish_stmt_generation): Likewise.
3482         (vectorizable_call): Add assert that it is loop vectorization, adjust
3483         function calls.
3484         (vectorizable_conversion, vectorizable_assignment): Likewise.
3485         (vectorizable_operation): In case of basic block SLP, take
3486         vectorization factor from statement's type and skip the relevance
3487         check. Adjust function calls.
3488         (vectorizable_type_demotion): Add assert that it is loop
3489         vectorization, adjust function calls.
3490         (vectorizable_type_promotion): Likewise.
3491         (vectorizable_store): Check for outer loop only in case of loop
3492         vectorization. Adjust function calls. For basic blocks, skip the
3493         relevance check and don't advance pointers.
3494         (vectorizable_load): Likewise.
3495         (vectorizable_condition): Add assert that it is loop vectorization,
3496         adjust function calls.
3497         (vect_analyze_stmt): Add argument. In case of basic block SLP, check
3498         that it is not reduction, get vector type, call only supported
3499         functions, skip loop specific parts.
3500         (vect_transform_stmt): Check for outer loop only in case of loop
3501         vectorization.
3502         (new_stmt_vec_info): Add new argument and initialize bb_vinfo.
3503         (vect_is_simple_use): Fix comment, add new argument, fix conditions
3504         for external definition.
3505         * passes.c (pass_slp_vectorize): New pass.
3506         * tree-vect-slp.c (find_bb_location): New function.
3507         (vect_get_and_check_slp_defs): Add argument, adjust function calls,
3508         check for patterns only in loops.
3509         (vect_build_slp_tree): Add argument, adjust function calls, fail in
3510         case of multiple types in basic block SLP.
3511         (vect_mark_slp_stmts_relevant): New function.
3512         (vect_supported_load_permutation_p): Fix comment.
3513         (vect_analyze_slp_instance): Add argument. In case of basic block
3514         SLP, take vectorization factor from statement's type, check that
3515         unrolling factor is 1. Adjust function call. Save SLP instance in
3516         either loop or basic block vectorization structure. Return FALSE,
3517         if SLP failed.
3518         (vect_analyze_slp): Add argument. Get strided stores groups from
3519         either loop or basic block vectorization structure. Return FALSE
3520         if basic block SLP failed.
3521         (new_bb_vec_info): New function.
3522         (destroy_bb_vec_info, vect_slp_analyze_node_operations,
3523         vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise.
3524         (vect_schedule_slp): Add argument. Get SLP instances from either
3525         loop or basic block vectorization structure. Set vectorization factor
3526         to be 1 for basic block SLP.
3527         (vect_slp_transform_bb): New function.
3528         * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define.
3529
3530 2009-05-23  Mark Mitchell  <mark@codesourcery.com>
3531
3532         * final.c (shorten_branches): Do not align labels for jump tables.
3533         (final_scan_insn): Use JUMP_TABLE_DATA_P.
3534
3535 2009-05-23  Eric Botcazou  <ebotcazou@adacore.com>
3536
3537         * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA.
3538         Remove outdated reference to flow.c and fix nits.
3539         * doc/gccint.texi: Tweak RTL description.
3540         * doc/rtl.texi: Likewise.
3541
3542 2009-05-23  Denis Chertykov  <chertykov@gmail.com>
3543
3544         * config/avr/avr.c: Change my email address.
3545         * config/avr/avr.h: Likewise.
3546         * config/avr/avr.md: Likewise.
3547         * config/avr/avr-protos.h: Likewise.
3548         * config/avr/libgcc.S: Likewise.
3549
3550 2009-05-22  Trevor Smigiel <Trevor_Smigiel@playstation.sony.com>
3551
3552         * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove.
3553         (spu_split_load, spu_split_store): Change return type to int.
3554         (spu_split_convert): Declare.
3555         * config/spu/predicates.md (spu_mem_operand): Remove.
3556         (spu_mov_operand): Update.
3557         (spu_dest_operand, shiftrt_operator, extend_operator): Define.
3558         * config/spu/spu.c (regno_aligned_for_load): Remove.
3559         (reg_aligned_for_addr, spu_expand_load): Define.
3560         (spu_expand_extv): Reimplement and handle MEM.
3561         (spu_expand_insv): Handle MEM.
3562         (spu_sched_reorder): Handle insn's with length 0.
3563         (spu_legitimate_address_p): Reimplement.
3564         (store_with_one_insn_p): Return TRUE for any mode with size
3565         larger than 16 bytes.
3566         (address_needs_split): Define.
3567         (spu_expand_mov): Call spu_split_load and spu_split_store for MEM
3568         operands.
3569         (spu_convert_move): Define.
3570         (spu_split_load): Use spu_expand_load and change all MEM's to TImode.
3571         (spu_split_store): Change all MEM's to TImode.
3572         (spu_init_expanders): Preallocate registers that correspond to
3573         LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with
3574         mark_reg_pointer.
3575         (spu_split_convert): Define.
3576         * config/spu/spu.md (QHSI, QHSDI): New mode iterators.
3577         (_move<mode>, _movdi, _movti): Update predicate and condition.
3578         (load, store): Change to define_split.
3579         (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to
3580         extend<mode>ti2.
3581         (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define.
3582         (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one
3583         define_insn_and_split of lshr<mode>3.
3584         (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand.
3585         (<v>ashr<mode>3_imm): Define.
3586         (extv, extzv, insv): Allow MEM operands.
3587         (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti,
3588         shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi,
3589         sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine.
3590         (_spu_convert2): Change to define_insn_and_split and remove the
3591         corresponding define_peephole2.
3592         (stack_protect_set, stack_protect_test, stack_protect_test_si):
3593         Change predicates to memory_operand.
3594
3595 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
3596
3597         * config/arm/thumb2.md: Add 16-bit multiply instructions.
3598
3599 2009-05-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
3600
3601         PR tree-optimization/40219
3602         * tree.c (iterative_hash_expr): Make sure the builtin function is
3603         a normal builtin function and not a front end or back end builtin
3604         before indexing into the built_in_decls array.
3605
3606 2009-05-22  Richard Guenther  <rguenther@suse.de>
3607
3608         PR middle-end/38964
3609         * alias.c (write_dependence_p): Do not use TBAA for answering
3610         anti-dependence or output-dependence.
3611         * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code.
3612         (emit_pointer_definition): Remove.
3613         (emit_alias_warning): Likewise.
3614         (find_what_var_points_to): Remove TBAA pruning code.
3615         (find_what_p_points_to): Likewise.  Do not warn about strict-aliasing
3616         violations.
3617         (compute_points_to_sets): Remove code computing the set of
3618         dereferenced pointers.
3619         * tree-data-ref.c (dr_may_alias_p): Properly use the split
3620         oracle for querying anti and output dependencies.
3621         * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying
3622         if TBAA may be applied.
3623         (refs_anti_dependent_p): New function.
3624         (refs_output_dependent_p): Likewise.
3625         * tree-ssa-alias.h (refs_anti_dependent_p): Declare.
3626         (refs_output_dependent_p): Likewise.
3627         * doc/tree-ssa.texi (Memory model): New section.
3628         * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3629         * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3630         * cfgexpand.c (expand_gimple_basic_block): Do not handle
3631         GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR.
3632         * expr.c (expand_expr_real_1): Likewise.
3633         * gimple-low.c (lower_stmt): Likewise.
3634         * gimple-pretty-print.c (dump_gimple_stmt): Likewise.
3635         (dump_gimple_cdt): Remove.
3636         * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3637         (gimple_size): Likewise.
3638         (walk_gimple_op): Likewise.
3639         (is_gimple_stmt): Likewise.
3640         (walk_stmt_load_store_addr_ops): Likewise.
3641         (gimple_build_cdt): Remove.
3642         * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove.
3643         * gimple.h (gimple_cdt_new_type): Remove.
3644         (gimple_cdt_new_type_ptr): Likewise.
3645         (gimple_cdt_set_new_type): Likewise.
3646         (gimple_cdt_location): Likewise.
3647         (gimple_cdt_location_ptr): Likewise.
3648         (gimple_cdt_set_location): Likewise.
3649         * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3650         * tree-cfg.c (remove_useless_stmts_1): Do not handle
3651         GIMPLE_CHANGE_DYNAMIC_TYPE.
3652         (verify_types_in_gimple_stmt): Likewise.
3653         * tree-inline.c (estimate_num_insns): Likewise.
3654         (expand_call_inline): Do not copy DECL_NO_TBAA_P.
3655         (copy_decl_to_var): Likewise.
3656         (copy_result_decl_to_var): Likewise.
3657         * tree-pretty-print.c (dump_generic_node): Do not handle
3658         CHANGE_DYNAMIC_TYPE_EXPR.
3659         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3660         * tree-ssa-operands.c (get_expr_operands): Likewise.
3661         * tree-ssa-structalias.c (struct variable_info): Remove
3662         no_tbaa_pruning member.
3663         (new_var_info): Do not set it based on DECL_NO_TBAA_P.
3664         (unify_nodes): Do not copy it.
3665         (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE.
3666         (dump_solution_for_var): Do not dump no_tbaa_pruning state.
3667         (set_uids_in_ptset): Do not check it.
3668         (find_what_var_points_to): Likewise.
3669         (compute_tbaa_pruning): Remove.
3670         (compute_points_to_sets): Do not call it.
3671         * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR.
3672         * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove.
3673         * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove.
3674         (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise.
3675         (DECL_NO_TBAA_P): Likewise.
3676         (struct tree_decl_common): Move no_tbaa_flag to unused flags section.
3677         * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P.
3678         (expand_omp_atomic_pipeline): Do not set it.
3679         * print-tree.c (print_node): Do not dump it.
3680         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
3681         redundant check.
3682
3683 2009-05-22 Vladimir Makarov <vmakarov@redhat.com>
3684
3685         PR target/39856
3686         * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note
3687         for clobber.
3688
3689 2009-05-22  Mark Mitchell  <mark@codesourcery.com>
3690
3691         * tree.c (handle_dll_attribute): Mark dllexport'd inlines as
3692         non-external.
3693
3694 2009-05-22  Ben Elliston  <bje@au.ibm.com>
3695
3696         * Makefile.in (bversion.h, s-bversion): New targets.
3697         (TOPLEV_H): Add bversion.h.
3698         * toplev.h: Include "bversion.h".
3699         (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use
3700         the __format__ attribute only if compiling with the same version
3701         of GCC as the sources (the "build version").
3702
3703 2009-05-22  Ben Elliston  <bje@au.ibm.com>
3704
3705         * c-format.c (handle_format_attribute): Fix comment typo.
3706
3707 2009-05-21  Steve Ellcey  <sje@cup.hp.com>
3708
3709         PR target/37846
3710         * config/ia64/ia64.opt (mfused-madd): New.
3711         * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD.
3712         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
3713         * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4,
3714         madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4,
3715         nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf,
3716         msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4,
3717         nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD.
3718         * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 
3719         instruction if !TARGET_FUSED_MADD.
3720         (fpma, fpms): Remove colon from name.
3721
3722 2009-05-22  Richard Guenther  <rguenther@suse.de>
3723
3724         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record
3725         TMR_ORIGINAL.  Always either record TMR_SYMBOL or TMR_BASE.
3726         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
3727         TARGET_MEM_REF.
3728         (create_expression_by_pieces): Only convert if necessary.
3729         * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF.
3730         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST.
3731
3732 2009-05-21  Adam Nemet  <anemet@caviumnetworks.com>
3733
3734         * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a
3735         regular pattern from a template and rename it ...
3736         (*extzv_truncsi_exts): ... to this.
3737
3738 2009-05-21  Richard Guenther  <rguenther@suse.de>
3739
3740         * cgraph.h (struct cgraph_node): Remove inline_decl member.
3741         * ipa-inline.c (cgraph_mark_inline_edge): Do not check it.
3742         (cgraph_default_inline_p): Likewise.
3743         (cgraph_decide_inlining_incrementally): Likewise.
3744
3745 2009-05-21  H.J. Lu  <hongjiu.lu@intel.com>
3746             Uros Bizjak  <ubizjak@gmail.com>
3747
3748         * config/i386/cpuid.h (bit_MOVBE): New.
3749
3750         * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
3751
3752         * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New.
3753         (OPTION_MASK_ISA_MOVBE_UNSET): Likewise.
3754         (ix86_handle_option): Handle OPT_mmovbe.
3755         (ix86_target_string): Add -mmovbe.
3756         (pta_flags): Add PTA_MOVBE.
3757         (processor_alias_table): Add PTA_MOVBE to "atom".
3758         (override_options): Handle PTA_MOVBE.
3759
3760         * config/i386/i386.h (TARGET_MOVBE): New.
3761
3762         * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE.
3763         (*bswapsi_movbe): New.
3764         (*bswapdi_movbe): Likewise.
3765         (bswapdi2): Renamed to ...
3766         (*bswapdi_1): This.
3767         (bswapdi2): New expander.
3768
3769         * config/i386/i386.opt (mmovbe): New.
3770
3771         * doc/invoke.texi: Document -mmovbe.
3772
3773 2009-05-21  Taras Glek  <tglek@mozilla.com>
3774
3775         * plugin.c (try_init_one_plugin): Updated to new plugin_init API.
3776         * gcc-plugin.h (plugin_init): Updated signature.
3777         * gcc-plugin.h (plugin_name_args): Moved to this header.
3778         * doc/plugins.texi (plugin_init): Updated documention to reflect
3779         API change.
3780         * doc/plugins.texi (plugin_name_args): Added to documention.
3781
3782 2009-05-21  Mark Mitchell  <mark@codesourcery.com>
3783
3784         * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern.
3785         (*mul<mode>3neg<mode>add<mode>_neon): Likewise.
3786
3787 2009-05-21  Shujing Zhao  <pearly.zhao@oracle.com>
3788
3789         * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and
3790         JUMP_TABLE_DATA_P predicates where applicable.
3791         * config/i386/predicates.md: Ditto.
3792         * config/i386/sse.md: Ditto.
3793
3794 2009-05-21  Jakub Jelinek  <jakub@redhat.com>
3795
3796         * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For
3797         operand2 -128 override length_immediate attribute to 1.
3798         * config/i386/predicates.md (constm128_operand): New predicate.
3799
3800         * config/i386/i386.c (memory_address_length): Handle %r12
3801         the same as %rsp and %r13 the same as %rbp.  For %rsp and %rbp
3802         also check REGNO.
3803         (ix86_attr_length_address_default): For MODE_SI lea in 64-bit
3804         mode look through optional ZERO_EXTEND and SUBREG.
3805         * config/i386/i386.md (R12_REG): New define_constant.
3806         (prefix_data16): For sse unit set also for MODE_TI insns.
3807         (prefix_rex): For -m32 always return 0.  For TYPE_IMOVX
3808         insns set if operand 1 is ext_QIreg_operand.
3809         (modrm): For TYPE_IMOV clear only if not MODE_DI.  For
3810         TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened
3811         immediate.
3812         (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change
3813         mode from MODE_DI to MODE_SI.
3814         (movdi_1_rex64): Override modrm and length_immediate attributes
3815         only for movabs (TYPE_IMOV, alternative 2).
3816         (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX.
3817         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit,
3818         *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit,
3819         *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit,
3820         *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set
3821         prefix_rex attribute if DImode.
3822         (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64,
3823         *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
3824         *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3,
3825         *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate
3826         attribute to 1 if TYPE_ALU and operand 2 is const128_operand.
3827         (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64):
3828         Likewise.  For TYPE_IMOV clear length_immediate attribute.
3829         (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64,
3830         *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly,
3831         *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp,
3832         *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
3833         *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU
3834         or one operand TYPE_ISHIFT.
3835         (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64,
3836         *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit,
3837         *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp,
3838         *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext,
3839         *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly,
3840         *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp,
3841         *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64,
3842         *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64,
3843         *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp,
3844         *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext,
3845         *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly,
3846         *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp,
3847         *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit,
3848         *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp,
3849         *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit,
3850         *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit,
3851         *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0,
3852         set mode attribute, don't override length attribute.
3853         (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute
3854         to 1.
3855         (return_internal_long): Set length attribute to 2 instead of 1.
3856         (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64,
3857         *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear
3858         prefix_rex attribute.
3859         * config/i386/predicates.md (ext_QIreg_operand, const128_operand):
3860         New predicates.
3861         (memory_displacement_only_operand): Always return 0 for TARGET_64BIT.
3862
3863 2009-05-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3864
3865         * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern.
3866
3867 2009-05-20  Ian Lance Taylor  <iant@google.com>
3868
3869         * tree.c (build_tree_list_vec_stat): New function.
3870         (ctor_to_vec): New function.
3871         (build_nt_call_vec): New function.
3872         (build_call_array): Change args to be a const pointer.
3873         (build_call_vec): New function.
3874         * tree.h (build_nt_call_vec): Declare.
3875         (build_tree_list_vec_stat): Declare.
3876         (build_tree_list_vec): Define.
3877         (build_call_array): Update declaration.
3878         (build_call_vec): Declare.
3879         (ctor_to_vec): Declare.
3880         * c-common.c (tree_vector_cache): New static variable.
3881         (make_tree_vector): New function.
3882         (release_tree_vector): New function.
3883         (make_tree_vector_single): New function.
3884         (make_tree_vector_copy): New function.
3885         * c-common.h (tree_vector_cache, make_tree_vector): Declare.
3886         (make_tree_vector_single, make_tree_vector_copy): Declare.
3887         * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove.
3888         (c_parser_expr_list): Don't manage cache here, instead call
3889         make_tree_vector.
3890         (c_parser_release_expr_list): Remove static function.
3891         (c_parser_vec_to_tree_list): Remove static function.
3892         (c_parser_attributes): Call build_tree_list_vec instead of
3893         c_parser_vec_to_tree_list.  Call release_tree_vector instead of
3894         c_parser_release_expr_list.
3895         (c_parser_postfix_expression_after_primary): Likewise.
3896         (c_parser_objc_keywordexpr): Likewise.
3897
3898 2009-05-20  Sandra Loosemore  <sandra@codesourcery.com>
3899
3900         * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE,
3901         TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and
3902         TARGET_CONVERT_TO_TYPE.
3903         * hooks.c (hook_tree_const_tree_null): Define.
3904         * hooks.h (hook_tree_const_tree_null): Declare.
3905         * target.h (struct gcc_target):  Add invalid_parameter_type,
3906         invalid_return_type, promoted_type, and convert_to_type fields.
3907         * target-def.h: (TARGET_INVALID_PARAMETER_TYPE): Define.
3908         (TARGET_INVALID_RETURN_TYPE): Define.
3909         (TARGET_PROMOTED_TYPE): Define.
3910         (TARGET_CONVERT_TO_TYPE): Define.
3911         (TARGET_INITIALIZER): Update for new fields.
3912         * c-decl.c (grokdeclarator): Check targetm.invalid_return_type.
3913         (grokparms): Check targetm.invalid_parameter_type.
3914         * c-typeck.c (default_conversion): Check targetm.promoted_type.
3915         * c-convert.c (convert): Check targetm.convert_to_type.
3916
3917 2009-05-20  Adam Nemet  <anemet@caviumnetworks.com>
3918
3919         * config/mips/mips.md (*extenddi_truncate<mode>,
3920         *extendsi_truncate<mode>): Emit exts if supported.  Add attribute
3921         defintions.
3922         (*extendhi_truncateqi): New define_insn_and_sptit.
3923
3924 2009-05-20  Jakub Jelinek  <jakub@redhat.com>
3925
3926         PR middle-end/40204
3927         * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite
3928         recursion if build_int_cst_type returns the same INTEGER_CST as arg1.
3929
3930 2009-05