OSDN Git Service

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