OSDN Git Service

* sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE on RTX_FRAME_RELA...
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
2
3         * sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE
4         on RTX_FRAME_RELATED_P insns and the insn to which
5         NOTE_INSN_EPILOGUE_BEG is attached.
6         * sched-vis.c (print_value): Allow NULL value.
7
8 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
9
10         PR rtl-optimization/45570
11         * sel-sched-ir.c (cfg_preds_1): When walking out of the region,
12         assert that we are pipelining outer loops.  Allow returning
13         zero predecessors.
14
15 2010-10-14  Andrey Belevantsev  <abel@ispras.ru>
16
17         * sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
18         (tidy_control_flow): Tidy vertical space.
19         (sel_remove_bb): New variable idx.  Use it to remember the basic
20         block index before deleting the block.
21         (sel_remove_empty_bb): Remove dead code, simplify and insert to ...
22         (sel_merge_blocks): ... here.
23         * sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
24
25 2010-10-14  Jakub Jelinek  <jakub@redhat.com>
26
27         * cse.c (is_dead_reg): Change into inline function that is not
28         called through for_each_rtx.
29         (set_live_p): Adjust caller.
30         (insn_live_p): Don't reset DEBUG_INSNs here.
31         (struct dead_debug_insn_data): New data. 
32         (count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
33         (delete_trivially_dead_insns): If there is just one setter for the
34         dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
35         and add DEBUG_INSN for it right before the removed setter and
36         use the DEBUG_EXPR instead of the dead pseudo.
37
38 2010-10-14  Zdenek Dvorak  <rakdver@kam.uniff.cz>
39
40         * et-forest.c (et_nca): Return NULL immediately when
41         the dominance forest has disjoint components.
42
43 2010-10-13  Vladimir Makarov  <vmakarov@redhat.com>
44
45         * ira.c (setup_class_hard_regs): Fix typo in indexing
46         ira_non_ordered_class_hard_regs and ira_class_hard_reg_index.
47
48 2010-10-14  Tijs Wiebe Lefering  <twlevo@gmail.com>
49
50         * graph.c (inbb): New variable.
51         (start_bb): Set inbb to 1 if output is inside of a building block.
52         (end_bb): Check if output is inside of a building block.
53
54 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
55
56         PR rtl-optimization/45912
57         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
58         regno of registers instead of their index to compute the alignment.
59
60 2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
61
62         * config/i386/i386.c (ix86_build_const_vector): Check vector
63         mode instead of scalar mode.
64         (ix86_build_signbit_mask): Likewise.
65         (ix86_expand_fp_absneg_operator): Updated.
66         (ix86_expand_copysign): Likewise.
67         (ix86_expand_int_vcond): Likewise.
68         (ix86_emit_swdivsf): Likewise.
69         (ix86_sse_copysign_to_positive): Likewise.
70         (ix86_expand_sse_fabs): Likewise.
71         * config/i386/i386.md (fixuns_trunc<mode>si2): Likewise.
72         * config/i386/sse.md (copysign<mode>3): Likewise.
73         (sse2_cvtudq2ps): Likewise.
74         (vec_unpacku_float_hi_v4si): Likewise.
75         (vec_unpacku_float_lo_v4si): Likewise.
76
77         * config/i386/i386.c (ix86_builtins): Add
78         IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
79         (bdesc_args): Likewise.
80         (ix86_builtin_vectorized_function): Support 
81         IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
82         IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
83         and IX86_BUILTIN_CVTPS2DQ256.
84         (ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.
85
86         * config/i386/sse.md (STORENT_MODE): New.
87         (VEC_FLOAT_MODE): Likewise.
88         (VEC_EXTRACT_MODE): Likewise.
89         (*avx_cvtdq2pd256_2): Likewise.
90         (vec_pack_trunc_v4df): Likewise.
91         (vec_interleave_highv8sf): Likewise.
92         (vec_interleave_lowv8sf): Likewise.
93         (storent<mode>): Macroized.
94         (<code><mode>2: absneg): Likewise.
95         (copysign<mode>3): Likewise.
96         (vec_extract<mode>): Likewise.
97
98         PR target/44180
99         * config/i386/i386.c (expand_vec_perm_even_odd_1): Rewritten
100         for V8SFmode.
101
102 2010-10-13  Richard Guenther  <rguenther@suse.de>
103             H.J. Lu  <hongjiu.lu@intel.com>
104
105         * config/i386/sse.md (reduc_splus_v8sf): Add.
106         (reduc_splus_v4df): Likewise.
107         (vec_unpacks_hi_v8sf): Likewise.
108         (vec_unpacks_lo_v8sf): Likewise.
109         (*avx_cvtps2pd256_2): Likewise.
110         (vec_unpacks_float_hi_v8si): Likewise.
111         (vec_unpacks_float_lo_v8si): Likewise.
112         (vec_interleave_highv4df): Likewise.
113         (vec_interleave_lowv4df): Likewise.
114
115 2010-10-13  Richard Guenther  <rguenther@suse.de>
116
117         PR objc/45878
118         * gimple-fold.c (gimple_fold_obj_type_ref): Leave OBJ_TYPE_REFs
119         alone if there are no virtual methods.
120
121 2010-10-13  Richard Henderson  <rth@redhat.com>
122
123         * expr.c (build_personality_function): Take parameter LANG instead
124         of parameter NAME.  Build the name based on the lang prefix and the
125         unwind method in use.
126         * tree.c (lhd_gcc_personality): Update call to
127         build_personality_function.
128
129 2010-10-13  Richard Guenther  <rguenther@suse.de>
130
131         PR objc/45878
132         * tree-ssa-ccpc (ccp_fold_stmt): Use gimple_fold_obj_type_ref.
133
134 2010-10-13  Eric Botcazou  <ebotcazou@adacore.com>
135
136         * cse.c (cse_insn): Fix thinko in the canonicalization of USE insns.
137         Canonicalize input operands of ASM_OPERANDS insns.
138
139 2010-10-13  Richard Guenther  <rguenther@suse.de>
140
141         PR tree-optimization/45788
142         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Delay
143         EH update until fixup-cfg.
144
145 2010-10-13  Julian Brown  <julian@codesourcery.com>
146
147         * config/arm/arm.h (REG_CLASS_CONTENTS): Remove soft frame pointer
148         from CORE_REGS and GENERAL_REGS classes.
149         * config/arm/arm.md (*thumb1_movsi_insn): Ignore all parts of
150         final constraint for register preferencing.
151
152 2010-10-13  Richard Guenther  <rguenther@suse.de>
153
154         PR tree-optimization/45970
155         * tree-ssa-alias.h (stmt_kills_ref_p): Declare.
156         * tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
157         (stmt_kills_ref_p): Likewise.
158         * tree-ssa-dse.c (dse_optimize_stmt): Use it.
159
160 2010-10-13  Richard Guenther  <rguenther@suse.de>
161
162         PR tree-optimization/45982
163         * tree-ssa-structalias.c (make_constraints_to): New function.
164         (make_constraint_to): Implement in terms of make_constraints_to.
165         (find_func_aliases): Properly make return values of pure/const
166         functions escape if they assign to sth that is not a pointer.
167
168 2010-10-13  Richard Guenther  <rguenther@suse.de>
169
170         PR middle-end/45874
171         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
172         Fixup the CFG when EH was fixed up.
173
174 2010-10-13  Ira Rosen  <irar@il.ibm.com>
175
176         * tree-vect-slp.c (vect_get_constant_vectors): Fix comment.
177         Use operand's type for POINTER_PLUS_EXPR.
178
179 2010-10-13  Alexandre Oliva  <aoliva@redhat.com>
180
181         * c-parser.c (c_parser_for_statement): Initialize incr.
182
183 2010-10-12  Xinliang David Li  <davidxl@google.com>
184
185         PR tree-optimization/45972
186         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Skip phis
187         with too many arguments.
188
189 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
190
191         PR fortran/45636
192         * tree-ssa-forwprop.c: Include expr.h.
193         (constant_pointer_difference, simplify_builtin_call): New functions.
194         (tree_ssa_forward_propagate_single_use_vars): Call
195         simplify_builtin_call on builtin calls.
196
197 2010-10-12  Eric Botcazou  <ebotcazou@adacore.com>
198
199         * config/sparc/sparc.md (*adddi3_insn_sp32): Rename.
200         (*adddi3_extend_sp32): Likewise.
201         (*subdi3_insn_sp32): Likewise.
202         (*subdi3_extend_sp32): Likewise.
203         (*negdi2_sp32): Use negative test for consistency.
204
205 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
206
207         * libgcc2.h: Use __SIZEOF_DOUBLE__ instead of
208         LIBGCC2_DOUBLE_TYPE_SIZE.
209         (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
210         * config/fixed-bit.h: Likewise.
211         * config/rx/rx.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
212         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Delete.
213         * system.h (LIBGCC2_DOUBLE_TYPE_SIZE): Poison.
214         * doc/tm.texi.in (LIBGCC2_HAS_DF_MODE): Use DOUBLE_TYPE_SIZE.
215         (DF_SIZE): Likewise.
216         * doc/tm.texi: Regenerate.
217
218 2010-10-12  Nathan Froyd  <froydnj@codesourcery.com>
219
220         * config/rs6000/predicates.md (scc_rev_comparison_operator): New.
221         * config/rs6000/rs6000.md (*isel_reversed_signed_<mode>): New.
222         (*isel_reversed_unsigned_<mode>): New.
223         * config/rs6000/rs6000.c (output_isel): Accept GE/GEU/LE/LEU/NE
224         as valid comparisons and adjust operands and output appropriately.
225         (rs6000_rtx_costs) <CONST_INT>: Accept NE as a cost-0 outer_code.
226
227 2010-10-12  Chung-Lin Tang  <cltang@codesourcery.com>
228
229         * config/arm/arm.h (ARM_EXPAND_ALIGNMENT): Rename from
230         DATA_ALIGNMENT and add COND parameter. Update comments above.
231         (DATA_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with !optimize_size.
232         (LOCAL_ALIGNMENT): Use ARM_EXPAND_ALIGNMENT, with
233         !flag_conserve_stack.
234
235 2010-10-12  H.J. Lu  <hongjiu.lu@intel.com>
236
237         PR bootstrap/45958
238         * exec-tool.in: Support '-plugin' as the second option to the
239         linker.
240
241 2010-10-12  Richard Henderson  <rth@redhat.com>
242
243         PR middle-end/45962
244         * cfgexpand.c (add_stack_var): Ensure every variable has 1 byte.
245         (expand_stack_vars): Assert large base allocated when used.
246
247 2010-10-12  Richard Guenther  <rguenther@suse.de>
248
249         * tree-ssa-structalias.c (get_constraint_for_1): Constants
250         only point to nonlocal, not anything.
251
252 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
253
254         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Use sjlj
255         unwind info for exceptions.
256
257 2010-10-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
258
259         PR testsuite/45851
260         * doc/sourcebuild.texi (LTO Testing, dg-extra-ld-options):
261         Document optional target selector.
262
263 2010-10-12  Joseph Myers  <joseph@codesourcery.com>
264
265         * flag-types.h: New.
266         * Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
267         (FLAGS_H): Include flag-types.h.  Include $(OPTIONS_H) instead of
268         options.h.
269         (OPTIONS_H): Define.
270         (c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
271         of options.h.
272         * configure.ac (tm_include_list): Include options.h not flags.h.
273         * configure: Regenerate.
274         * flags.h: Include flag-types.h.  Include options.h at top of file
275         again.
276         (enum debug_info_type, enum debug_info_level, enum
277         debug_info_usage, enum symbol_visibility, struct visibility_flags,
278         enum ira_algorithm, enum ira_region, enum excess_precision, enum
279         graph_dump_types, enum stack_check_type, enum
280         warn_strict_overflow_code): Move to flag-types.h
281         * opth-gen.awk: Include flag-types.h in options.h.
282
283 2010-10-12  Jakub Jelinek  <jakub@redhat.com>
284
285         * expr.c (store_expr): Share code for STRING_CST and
286         MEM_REF of &STRING_CST cases.  Don't require BLKmode, instead
287         check if target is a MEM.
288
289         * rtl.h: Include hashtab.h.
290         (iterative_hash_rtx): New prototype.
291         * rtl.c (iterative_hash_rtx): New function.
292         * dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
293         (output_loc_list): Return immediately if emitted is set,
294         set it.
295         (hash_loc_operands, hash_locs, hash_loc_list,
296         compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
297         optimize_location_lists_1, optimize_location_lists): New function.
298         (dwarf2out_finish): Call optimize_location_lists.
299         * Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
300
301 2010-10-12  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
302
303         PR testsuite/45974
304         Revert:
305         * Makefile.in ($(lang_checks_parallel))
306         ($(lang_checks_parallelized)): Use single quotes for
307         $(RUNTESTFLAGS), to allow passing quoted content.
308
309 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
310
311         * config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
312         actual_oldval.  Use __builtin_expect.
313         (SUBWORD_VAL_CAS): Likewise.
314
315 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
316
317         * recog.c (nonmemory_operand): Call immediate_operand for
318         CONSTANT_P operands.
319
320 2010-10-11  Uros Bizjak  <ubizjak@gmail.com>
321
322         * config/i386/i386.md (movmem<mode>): Macroize expander from
323         movmem{si,di} using SWI48 mode iterator.
324         (*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
325         *strmovsi_rex_1 using P mode iterator.
326         (*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
327         (*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
328         (*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
329         (*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
330         (setmem<mode>): Macroize expander from setmem{si,di} using
331         SWI48 mode iterator.
332         (*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
333         *strsetsi_rex_1 using P mode iterator.
334         (*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
335         (*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
336         (*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
337         (*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
338         (*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
339         (*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
340         (strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
341         mode iterator.
342         (*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
343         *strlenqi_rex_1 using P mode iterator.
344
345 2010-10-11  Bernd Schmidt  <bernds@codesourcery.com>
346
347         PR bootstrap/45445
348         * ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
349         static functions.
350         (mark_ref_live, mark_ref_dead): Use them.
351         (make_pseudo_conflict): New arg ORIG_DREG.  All callers changed.
352         Save the original reg, and use the new functions.
353         (check_and_make_def_use_conflict): New arg ORIG_DREG.  All callers
354         changed.
355         (check_and_make_def_conflict): Save the original reg.
356
357 2010-10-11  Martin Jambor  <mjambor@suse.cz>
358
359         PR middle-end/45699
360         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Choose among
361         thunks.
362
363 2010-10-11  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
364
365         * Makefile.in ($(lang_checks_parallel))
366         ($(lang_checks_parallelized)): Use single quotes for
367         $(RUNTESTFLAGS), to allow passing quoted content.
368
369         PR bootstrap/35855
370         * opt-functions.awk (BEGIN): New section.
371         (lower, upper, digit, alnum): New variables.
372         (static_var, opt_sanitized_name): Use alnum instead of character
373         classes, for non-C locale.
374         * optc-gen.awk: Likewise.
375         * opth-gen.awk: Likewise.
376
377 2010-10-11  Anatoly Sokolov  <aesok@post.ru>
378
379         * target.def (preferred_reload_class): New hook.
380         * doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
381         * doc/tm.texi: Regenerate.
382         * targhooks.c (default_preferred_reload_class): New function.
383         * targhooks.h (default_preferred_reload_class): Declare.
384         * reload.c (find_dummy_reload): Change preferred_class variable type
385         from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
386         target hook.
387         (find_reloads): Change goal_alternative array type from int to
388         reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
389         (push_reload, find_reloads_address_part): Use
390         TARGET_PREFERRED_RELOAD_CLASS target hook.
391         * reload1.c (emit_input_reload_insns): Ditto.
392         * ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
393         hook. Change rclass argument and secondary_class variable types from
394         'enum reg_class' to reg_class_t.
395
396         * config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
397         * config/i386/i386-protos (ix86_preferred_reload_class): Remove.
398         * config/i386/i386.c (ix86_preferred_reload_class): Make static.
399         Change regclass argument and result types from enum reg_class to
400         reg_class_t.
401         (TARGET_PREFERRED_RELOAD_CLASS): Define.
402
403 2010-10-11  Eric Botcazou  <ebotcazou@adacore.com>
404
405         * simplify-rtx.c (simplify_unary_operation_1): Use unsigned arithmetics
406         in masking operations.
407         (simplify_const_unary_operation): Likewise.
408         (simplify_binary_operation_1): Likewise.
409         (simplify_const_binary_operation): Likewise.
410         (simplify_const_relational_operation): Likewise.
411         (simplify_ternary_operation): Likewise.
412         (simplify_immed_subreg): Likewise.
413
414 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
415
416         PR middle-end/45862
417         * doc/tm.texi.in (SUPPORTS_WEAK): Update.
418         (TARGET_SUPPORTS_WEAK): New.
419         * doc/tm.texi: Regenerate.
420         * defaults.h (SUPPORTS_WEAK): Update comment.
421         (TARGET_SUPPORTS_WEAK): New.
422         * dwarf2asm.c (USE_LINKONCE_INDIRECT): Update define.
423         * varasm.c (assemble_external): Use TARGET_SUPPORTS_WEAK instead of
424         SUPPORTS_WEAK.
425         (merge_weak, declare_weak, do_assemble_alias, supports_one_only,
426         make_decl_one_only): Likewise.
427         * config/pa/som.h (SUPPORTS_WEAK): Rename defines to
428         TARGET_SUPPORTS_WEAK.
429         (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Use TARGET_SUPPORTS_WEAK
430         instead of SUPPORTS_WEAK.
431
432 2010-10-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
433
434         * config/sparc/gmon-sol2.c: Don't include coretypes.h, tm.h.
435
436 2010-10-11  Nathan Froyd  <froydnj@codesourcery.com>
437
438         * vec.h (VEC_qsort): Define.
439         * dbxout.c (output_used_types): Use it.
440         * df-scan.c (df_sort_and_compress_refs): Likewise.
441         (df_sort_and_compress_mws): Likewise.
442         * genautomata.c (uniq_sort_alt_states): Likewise.
443         (evaluate_equiv_classes): Likewise.
444         (output_trans_table): Likewise.
445         (output_state): Likewise.
446         * gimplify.c (compare_case_labels): Likewise.
447         * graphite-sese-to-poly.c (graphite_sort_dominated_info): Likewise.
448         * ipa.c (build_cdtor_fns): Likewise.
449         * lto.c (lto_wpa_write_files): Likewise.
450         * sel-sched.c (fill_vec_av_set): Likewise.
451         * tree-predcom.c (determine_roots_comp): Likewise.
452         * tree-sra.c (sort_and_spliace_var_accesses): Likewise.
453         (splice_param_accesses): Likewise.
454         * tree-ssa-live.c (dump_enumerated_decls): Likewise.
455         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
456         (reassociate_bb): Likewise.
457         * tree-ssa-sccvn.c (sort_scc): Likewise.
458         * tree-ssa-structalias.c (sort_fieldstack): Likewise.
459
460 2010-10-11  Ian Lance Taylor  <iant@google.com>
461
462         * tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
463         * emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
464         TREE_THIS_NOTRAP when appropriate.
465         (get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new VAR_DECL.
466         * gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
467         newly created MEM_REF.
468
469 2010-10-11  Hariharan Sandanagobalane  <hariharan@picochip.com>
470
471         Nathan Froyds patch to hooks FUNCTION_ARG etc.
472         * config/picochip/picochip-protos.h (picochip_function_arg): Delete.
473         (picochip_incoming_function_arg): Delete.
474         (picochip_arg_advance): Delete.
475         * config/picochip/picochip.h (FUNCTION_ARG): Delete.
476         (FUNCTION_INCOMING_ARG): Delete.
477         (FUNCTION_ARG_ADVANCE): Delete.
478         * config/picochip/picochip.c (picochip_function_arg): Take a
479         const_tree and a bool.
480         (picochip_incoming_function_arg): Likewise.
481         (picochip_arg_advance): Likewise.
482         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
483         (TARGET_FUNCTION_ARG_ADVANCE): Define.
484
485 2010-10-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
486
487         PR middle-end/45955
488         * ipa.c (build_cdtor): Delete endless loop.
489
490 2010-10-07  Andi Kleen  <ak@linux.intel.com>
491
492         * Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
493         checksum-options.
494         (checksum-options): Add.
495         (cc1-dummy): Remove.
496         (cc1-checksum): Change to run checksum over object files
497         and options only.
498         * dummy-checksum.c: Remove.
499         * genchecksum.c: Update copyright.
500         (usage): Allow multiple arguments.
501         (BLOCKSIZE): Add.
502         (dosum): Change for incremental checksum. Remove C output.
503         (main): Iterate over all argument files. Add C output.
504
505 2010-10-11  Joseph Myers  <joseph@codesourcery.com>
506
507         * params.c (set_param_value_internal): New.
508         (set_param_value): Use set_param_value_internal.
509         (maybe_set_param_value, set_default_param_value): New.
510         * params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
511         (maybe_set_param_value, set_default_param_value): Declare.
512         * config/arm/arm.c (arm_option_override): Use maybe_set_param_value.
513         * config/i386/i386.c (ix86_option_override_internal): Use
514         maybe_set_param_value.
515         * config/ia64/ia64.c (ia64_option_default_params,
516         TARGET_OPTION_DEFAULT_PARAMS): New.
517         (ia64_option_optimization): Move some code to
518         ia64_option_default_params.
519         * config/picochip/picochip.c (picochip_option_override): Use
520         maybe_set_param_value.
521         * config/rs6000/rs6000.c (rs6000_option_default_params,
522         TARGET_OPTION_DEFAULT_PARAMS): New.
523         (rs6000_option_override_internal): Use maybe_set_param_value.
524         (rs6000_option_optimization): Move some code to
525         rs6000_option_default_params.
526         * config/s390/s390.c (s390_option_override): Use maybe_set_param_value.
527         * config/sh/sh.c (sh_option_default_params,
528         TARGET_OPTION_DEFAULT_PARAMS): New.
529         (sh_option_optimization): Move some code to sh_option_default_params.
530         * config/sparc/sparc.c (sparc_option_override): Use
531         maybe_set_param_value.
532         * config/spu/spu.c (spu_option_default_params,
533         TARGET_OPTION_DEFAULT_PARAMS): New.
534         (spu_option_optimization): Move some code to spu_option_default_params.
535         (spu_option_override): Use maybe_set_param_value.
536         * doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
537         * doc/tm.texi: Regenerate.
538         * ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
539         * opts.c (init_options_once): Use PARAM_VALUE not direct access to
540         compiler_params.
541         (default_options_optimization): Use maybe_set_param_value.
542         (finish_options): Use maybe_set_param_value.
543         * target.def (target_option.default_params): New hook.
544         * toplev.c (general_init): Call targetm.target_option.default_params.
545
546 2010-10-11  Ira Rosen  <irar@il.ibm.com>
547
548         PR tree-optimization/45902
549         * tree-vect-slp.c (vect_get_constant_vectors): Use statement's
550         vector type for constants, unless it's a pointer.
551
552 2010-10-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
553
554         * config/s390/s390.md (*mov<mode>cc): lgoc -> locg and stgoc -> stocg.
555
556 2010-10-11  Jakub Jelinek  <jakub@redhat.com>
557
558         PR target/45870
559         * config/i386/i386.c (ix86_delegitimize_tls_address): New function.
560         (ix86_delegitimize_address): Use it.
561
562 2010-10-10  Eric Botcazou  <ebotcazou@adacore.com>
563
564         * opt-functions.awk (opt_sanitized_name): Remove gdwarf+ handling.
565
566 2010-10-10  Uros Bizjak  <ubizjak@gmail.com>
567
568         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
569         to cum struct in the call to function_arg_advance.
570         (alpha_function_arg_advance): Mark named as unused.
571
572 2010-10-10  Richard Sandiford  <rdsandiford@googlemail.com>
573
574         * config/mips/mips.c (mips_handle_option): Make "value" with
575         ATTRIBUTE_UNUSED.
576
577 2010-10-09  Richard Henderson  <rth@redhat.com>
578
579         PR rtl-opt/33721
580         * explow.c (allocate_dynamic_stack_space): Add REQUIRED_ALIGN parm,
581         remove TARGET parm, convert KNOWN_ALIGN parm to SIZE_ALIGN.  Honor
582         required_align, tidy the code a bit.  Emit split_stack code in the
583         right place.  Mark the return value with the alignment properly.
584         * expr.h (allocate_dynamic_stack_space): Update decl.
585         * builtins.c (expand_builtin_apply): Update call to
586         allocate_dynamic_stack_space.
587         (expand_builtin_alloca): Likewise.  Remove TARGET parameter.
588         * calls.c (initialize_argument_information): Update call to
589         allocate_dynamic_stack_space.
590         (expand_call): Likewise.
591
592         * cfgexpand.c (get_decl_align_unit): Don't limit alignment.
593         Don't update_stack_alignment here.
594         (alloc_stack_frame_space): Make ALIGN unsigned.
595         (stack_var_cmp): Sort by alignment too.
596         (partition_stack_vars): Don't merge large and small alignment vars.
597         (expand_one_stack_var_at): Add BASE and BASE_ALIGN parameters.
598         Take care when BASE is not virtual_stack_vars_rtx.
599         (expand_stack_vars): Allocate dynamic stack space for large
600         alignment variables.
601         (expand_one_stack_var): Update all to expand_one_stack_var_at.
602         (defer_stack_allocation): True for large alignment vars.
603         (update_stack_alignment): Merge into ...
604         (expand_one_var): ... here.
605         (gimple_expand_cfg): Place code from expand_stack_vars.
606
607 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
608
609         * config/pdp11/pdp11.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
610         * config/pdp11/pdp11.c (pdp11_function_arg): New function.
611         (pdp11_function_arg_advance): New function.
612         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
613
614 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
615
616         * libgcc2.h: Use __SIZEOF_LONG_LONG__ instead of LONG_LONG_TYPE_SIZE.
617         * libgcc2.c: Likewise.
618
619 2010-10-09  Richard Guenther  <rguenther@suse.de>
620
621         PR lto/45956
622         * lto-streamer-in.c (lto_register_var_decl_in_symtab):
623         Properly check if a decl is an automatic var.
624
625 2010-10-09  Richard Guenther  <rguenther@suse.de>
626
627         PR lto/45947
628         * tree.c (free_lang_data_in_cgraph): Properly walk the varpool.
629
630 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
631
632         * config/mmix/mmix-protos.h (mmix_function_arg): Delete.
633         * config/mmix/mmix.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
634         * config/mmix/mmix.c (mmix_function_arg): Rename to...
635         (mmix_function_arg_1): ...this.  Make static.  Take a const_tree and
636         bool arguments.
637         (mmix_function_arg): New function.
638         (mmix_function_incoming_arg): New function.
639         (mmix_function_arg_advance): New function.
640         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_INCOMING_ARG): Define.
641         (TARGET_FUNCTION_ARG_ADVANCE): Define.
642
643 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
644
645         * config/vax/vax.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
646         * config/vax/vax.c (vax_function_arg): New function.
647         (vax_function_arg_advance): New function.
648         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
649
650 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
651
652         * config/pa/pa-protos.h (function_arg): Delete.
653         * config/pa/pa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
654         * config/pa/pa.c (function_arg): Rename to...
655         (pa_function_arg): ...this.  Make static.  Take a const_tree and
656         a bool.
657         (pa_function_arg_advance): New function.
658         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
659
660 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
661
662         * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
663         * config/m68k/m68k.c (m68k_function_arg): New function.
664         (m68k_function_arg_advance): New function.
665         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
666
667 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
668
669         * config/avr/avr-protos.h (function_arg): Delete.
670         (function_arg_advance): Delete.
671         * config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
672         * config/avr/avr.c (function_arg): Rename to...
673         (avr_function_arg): ...this.  Make static.  Take a const_tree and
674         a bool.
675         (function_arg_advance): Rename to...
676         (avr_function_arg_advance): ...this.  Make static.  Take a
677         const_tree and a bool.
678         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
679
680 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
681
682         * config/alpha/alpha-protos.h (function_arg): Delete.
683         * config/alpha/alpha.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
684         * config/alpha/vms.h (FUNCTION_ARG_ADVANCE): Delete.
685         * config/alpha/alpha.c (function_arg): Rename to...
686         (alpha_function_arg): ...this.  Make static.  Take a const_tree and
687         a bool.  Delete TARGET_ABI_UNICOSMK code.
688         (alpha_function_arg_advance): New function.
689         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
690
691 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
692
693         * config/mep/mep-protos.h (mep_function_arg): Delete.
694         (mep_function_arg_advance): Delete.
695         * config/mep/mep.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
696         * config/mep/mep.c (mep_function_arg): Make static.  Take a
697         const_tree and a bool.
698         (mep_function_arg_advance): Likewise.
699         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
700
701 2010-10-09  Richard Guenther  <rguenther@suse.de>
702
703         PR tree-optimization/45945
704         * tree-ssa.c (execute_update_addresses_taken): Fixup LHS scanning.
705
706 2010-10-09  Eric Botcazou  <ebotcazou@adacore.com>
707
708         PR tree-optimization/45612
709         * ipa-split.c (test_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.
710         Test LABEL_DECLs as well.  Fix formatting issues.
711         (verify_non_ssa_vars): Return false for a GIMPLE_LABEL statement
712         whose label is present in NON_SSA_VARS.
713         (mark_nonssa_use): Remove bogus ATTRIBUTE_UNUSED.  Handle LABEL_DECLs
714         as well.  Fix formatting issues.
715         (visit_bb): Fix typos and formatting issue.
716
717 2010-10-09  Nathan Froyd  <froydnj@codesourcery.com>
718
719         PR tree-optimization/45950
720         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): Consult length
721         before initializing vno->op.
722
723 2010-10-09  Ralf Corsépius <ralf.corsepius@rtems.org>
724
725         * config.gcc (bfin*-rtems*): Add newlib-stdint.h.
726         * config.gcc (lm32*-rtems*): Add newlib-stdint.h.
727
728 2010-10-08  H.J. Lu  <hongjiu.lu@intel.com>
729
730         PR target/45913
731         * config/i386/i386.c (ix86_binary_operator_ok): Support
732         "andhi/andsi/anddi" as a zero-extending move.
733
734 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
735
736         * builtins.c (fold_call_stmt): Don't copy gimple call arguments
737         into a temporary array.
738
739 2010-10-08  Jakub Jelinek  <jakub@redhat.com>
740
741         PR tree-optimization/45903
742         * simplify-rtx.c (simplify_subreg): Optimize lowpart SUBREG
743         of {A,L}SHIFTRT of MEM.
744
745 2010-10-08  Richard Guenther  <rguenther@suse.de>
746
747         * lto-streamer-in.c (lto_input_ts_decl_minimal_tree_pointers):
748         Re-construct BLOCK_VARS.
749         (lto_input_ts_block_tree_pointers): Do not stream BLOCK_VARS.
750         * lto-streamer-out.c (lto_output_ts_block_tree_pointers): Likewise.
751         * tree.c (free_lang_data_in_block): Remove.
752         (free_lang_data_in_decl): Do not touch DECL_CONTEXT of non-PARM_DECLs.
753         Do not touch the BLOCK tree.
754         * expr.c (expand_expr_real_1): Allow externals.
755
756 2010-10-08  Richard Guenther  <rguenther@suse.de>
757
758         * lto-streamer-out.c (lto_output_ts_block_tree_pointers):
759         Do not output BLOCK_SUBBLOCKS.
760         * lto-streamer-in.c (lto_input_ts_block_tree_pointers):
761         Reserve exact space needed for BLOCK_NONLOCALIZED_VARS.
762         Re-construct BLOCK_SUBBLOCKS of parent block.
763         (lto_input_ts_binfo_tree_pointers): Reserve exact space needed
764         for BINFO_BASE_ACCESSES.
765
766 2010-10-08  Joseph Myers  <joseph@codesourcery.com>
767
768         * Makefile.in (TM_H): Include $(FLAGS_H) instead of options.h.
769         (TREE_H): Include $(FLAGS_H) instead of options.h.
770         (opts-common.o): Depend on $(FLAGS_H) instead of options.h.
771         * c-objc-common.h (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
772         * common.opt (flag_complex_method, flag_evaluation_order,
773         flag_ira_algorithm, flag_ira_region, flag_warn_unused_result): New
774         Variable declarations.
775         * configure.ac (tm_include_list): Include flags.h instead of options.h.
776         * configure: Regenerate.
777         * flags.h: Condition out contents for target libraries.  Include
778         options.h at end of file.
779         (flag_complex_method, flag_ira_algorithm, flag_ira_region,
780         flag_evaluation_order, flag_warn_unused_result): Remove.
781         * gcc.c (main): Intialize global_options with global_options_init.
782         * langhooks-def.h (lhd_init_options_struct): Declare.
783         (LANG_HOOKS_INIT_OPTIONS_STRUCT): Define.
784         (LANG_HOOKS_INITIALIZER): Include LANG_HOOKS_INIT_OPTIONS_STRUCT.
785         * langhooks.c (lhd_init_options_struct): New.
786         * langhooks.h (struct lang_hooks): Add init_options_struct.
787         Update comment on init_options.
788         * optc-gen.awk: Generate initializer for global_options_init, not
789         global_options.
790         * opth-gen.awk: Condition out structure declarations for target
791         libraries.  Declare global_options_init.
792         * opts-common.c: Include flags.h instead of options.h.
793         * opts.c (flag_warn_unused_result): Remove.
794         (read_cmdline_options): Take gcc_options parameters.  Pass them to
795         read_cmdline_option.
796         (initial_lang_mask, initial_min_crossjump_insns,
797         initial_max_fields_for_field_sensitive,
798         initial_loop_invariant_max_bbs_in_loop): Define at file scope.
799         (init_options_once): New.  Split out of decode_options.
800         (init_options_struct): New.  Split out of decode_options.
801         (decode_cmdline_options_to_array_default_mask): New.
802         (default_options_optimization): New.  Split out of decode_options.
803         (decode_options): Move most code to other functions.  Update call
804         to read_cmdline_options.
805         (finish_options): New.  Split out of decode_options.
806         * opts.h (decode_options): Add gcc_options parameters.
807         (init_options_once, init_options_struct,
808         decode_cmdline_options_to_array_default_mask): New.
809         * toplev.c (flag_complex_method, flag_ira_algorithm,
810         flag_ira_region, flag_evaluation_order): Remove.
811         (general_init): Use global_options_init for initial flag values
812         for global_dc.
813         (toplev_main): Call init_options_once, init_options_struct,
814         lang_hooks.init_options_struct,
815         decode_cmdline_options_to_array_default_mask and
816         lang_hooks.init_option before decode_options.  Update arguments to
817         decode_options.
818         * tree.h: Include flags.h instead of options.h.
819
820 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
821
822         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
823
824 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
825
826         * config/sparc/sparc-protos.h (function_arg_advance, function-arg):
827         Delete.
828         * config/sparc/sparc.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
829         (FUNCTION_INCOMING_ARG): Delete.
830         * config/sparc/sparc.c (scan_record_type): Const-ify tree argument.
831         (function_arg_slotno): Likewise.  Take bool arguments.
832         (sparc_arg_partial_bytes): Update call to it.
833         (function_arg): Rename to...
834         (sparc_function_arg_1): ...this.  Take bool arguments.
835         (sparc_function_arg, sparc_function_incoming_arg): New functions.
836         (function_arg_advance): Rename to...
837         (sparc_function_arg_advance): ...this.  Take bool argument.
838         (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG): Define.
839         (TARGET_FUNCTION_INCOMING_ARG): Define.
840
841 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
842
843         * config/bfin/bfin-protos.h (function_arg, function_arg_advance):
844         Delete.
845         * config/bfin/bfin.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
846         * config/bfin/bfin.c (function_arg_advance): Rename to...
847         (bfin_function_arg_advance): ...this.  Make static.  Take const_tree
848         and bool arguments.
849         (function_arg): Rename to...
850         (bfin_function_arg): ...this.  Make static.  Take const_tree and bool
851         arguments.
852         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
853
854 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
855
856         * config/score/score-protos.h (score_function_arg): Delete.
857         (score_function_arg_advance): Delete.
858         * config/score/score3.h (score3_function_arg_advance): Take a
859         const_tree and a bool.
860         (score3_function_arg): Likewise.
861         * config/score/score7.h (score7_function_arg_advance): Likewise.
862         (score7_function_arg): Likewise.
863         * config/score/score3.c (score3_classify_arg): Likewise.
864         (score3_function_arg_advance, score3_function_arg): Likewise.
865         * config/score/score7.c (score7_classify_arg): Likewise.
866         (score7_function_arg_advance, score7_function_arg): Likewise.
867         * config/score/score.c (score_function_arg_advance): Likewise.
868         (score_function_arg): Likewise.  De-const-ify `cum' argument.
869         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
870
871 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
872
873         * config/s390/s390-protos.h (s390_function_arg_advance): Delete.
874         (s390_function_arg): Delete.
875         * config/s390/s390.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
876         * config/s390/s390.c (s390_function_arg_float): Take a const_tree.
877         (s390_function_arg_integer): Likewise.
878         (s390_function_arg_advance): Make static.  Take a const_tree and
879         a bool.
880         (s390_function_arg): Likewise.
881         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
882
883 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
884
885         * config/spu/spu-protos.h (spu_function_arg): Delete.
886         * config/spu/spu.h (FUNCTION_ARG): Delete.
887         (FUNCTION_ARG_ADVANCE): Move code to ...
888         * config/spu/spu.c (spu_function_arg_advance): New function.
889         (spu_function_arg): Make static.  Take a const_tree and a bool.
890         (spu_setup_incoming_varargs): Call spu_function_arg_advance.
891         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
892
893 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
894
895         * config/rx/rx.c (TARGET_EXCEPT_UNWIND_INFO): Define.
896
897 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
898
899         * tree-ssa-sccvn.c (init_vn_nary_op_from_pieces): New function.
900         (init_vn_nary_op_from_op): New function.
901         (init_vn_nary_op_from_stmt): New function.
902         (vn_nary_op_lookup_1): New function.
903         (sizeof_vn_nary_op): New function.
904         (alloc_vn_nary_op_noinit): New function.
905         (alloc_vn_nary_op): New function.
906         (vn_nary_op_insert_into): New function.
907         (vn_nary_op_lookup_pieces): Rewrite to use new helper functions.
908         (vn_nary_op_lookup): Likewise.
909         (vn_nary_op_lookup_stmt): Likewise.
910         (vn_nary_op_insert_pieces): Likewise.
911         (vn_nary_op_insert): Likewise.
912         (vn_nary_op_insert_stmt): Likewise.
913         (copy_nary): Likewise.
914         (set_value_id_for_result): New function.
915         (set_hashtable_value_ids): Call it.
916
917 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
918
919         * config/fr30/fr30.c (TARGET_EXCEPT_UNWIND_INFO): Define.
920         * config/fr30/fr30.md (leave_func): Rewrite without post_inc.
921
922 2010-10-08  Nathan Froyd  <froydnj@codesourcery.com>
923
924         * config/mcore/mcore.h (INCOMING_RETURN_ADDR_RTX): Define.
925         * config/mcore/mcore.c (TARGET_EXCEPT_UNWIND_INFO): Define.
926
927 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
928
929         PR debug/45656
930         * cse.c (cse_extended_basic_block): Preserve cc0 info across
931         debug isnsn.  Skip them when searching for cc0 setter.
932         (set_live_p): Skip debug insns when searching for cc0 user.
933
934 2010-10-08  Alexandre Oliva  <aoliva@redhat.com>
935
936         PR debug/45673
937         PR debug/45604
938         PR debug/45419
939         PR debug/45408
940         * tree-pretty-print.c (dump_generic_node): Explicitly dump the
941         type of MEM_REFs to INTEGER_CSTs.
942
943 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
944
945         * config/m68hc11/m68hc11.c (m68hc11_print_operand): Call
946         m68hc11_print_operand_address.
947
948 2010-10-07  Nathan Froyd  <froydnj@codesourcery.com>
949
950         * builtins.c (rewrite_call_expr): Move code to...
951         (rewrite_call_expr_valist): ...here.  Call build_call_expr_loc_array.
952         (rewrite_call_expr_array): New function.
953         (fold_builtin_sprintf_chk_1): New function.
954         (fold_builtin_sprintf_chk): Call it.
955         (gimple_fold_builtin_sprintf_chk): Likewise.
956         (fold_builtin_snprintf_chk_1): New function.
957         (fold_builtin_snprintf_chk): Call it.
958         (gimple_fold_builtin_snprintf_chk): Likewise.
959         (gimple_rewrite_call_expr): Delete.
960
961 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
962
963         * config.host: Update copyright year.
964
965 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
966
967         * config.host (host_lto_plugin_soname): New shell variable.
968         * configure.ac (LTOPLUGINSONAME): Add an AC_DEFINE for the above.
969         * config.in: Regenerate.
970         * configure: Regenerate.
971         * gcc.c (main): Use LTOPLUGINSONAME instead of hard-coding name of
972         LTO plugin shared library.
973
974 2010-10-07  Richard Henderson  <rth@redhat.com>
975
976         * target.h (enum unwind_info_type): Move ...
977         * coretypes.h: ... here.
978
979 2010-10-07  Nicola Pero  <nicola.pero@meta-innovation.com>
980
981         * doc/objc.texi (Fast enumeration protocol): Mention that
982         'unsigned int' can also be used instead of 'unsigned long' in
983         countByEnumeratingWithState:objects:count:.
984
985 2010-10-07  Martin Jambor  <mjambor@suse.cz>
986
987         * tree-sra.c (struct access): New field grp_assignment_write.
988         (dump_access): Dump grp_assignment_write.
989         (build_accesses_from_assign): Set grp_assignment_write.
990         (sort_and_splice_var_accesses): Aggregate grp_assignment_write.
991         (mark_read_status): Renamed to mark_rw_status, individual values
992         renamed too.
993         (analyze_access_subtree): Changed type of mark_write to
994         mark_read_status.  Fixed propagating of mark_read and
995         mark_write.  Changed benefit estimate.  Updated comment.
996
997 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
998
999         PR Tree-Vect/45847
1000         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Add NULL
1001         check for vectype_out returned by get_vectype_for_scalar_type().
1002
1003 2010-10-07  Tejas Belagod  <tejas.belagod@arm.com>
1004
1005         PR target/45805
1006         * config/arm/neon.md (neon_unpack<US>_<mode>): Add 'w' to
1007         constraint, add register specifier in instruction template.
1008         (neon_vec_pack_trunc_<mode>): Likewise.
1009         (neon_vec_<US>mult_<mode>): Add register specifier to
1010         instruction template.
1011
1012 2010-10-07  Dave Korn  <dave.korn.cygwin@gmail.com>
1013
1014         * config.gcc (c_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add
1015         cygwin2.o.
1016         (cxx_target_objs)[i?86-*-pe|i?86-*-cygwin*]: Likewise.
1017         (extra_gcc_objs)[i?86-*-pe|i?86-*-cygwin*]: Don't add cygwin1.o.
1018         * config/i386/t-cygwin (cygwin1.o): Delete build rule.
1019         (cygwin2.o): Likewise.
1020         * config/i386/cygwin1.c: Delete file.
1021         * config/i386/cygwin2.c: Likewise.
1022         * config/i386/cygwin.h (CPP_SPEC): Remove all %{mno-cygwin} specs and
1023         make all {%!mno-cygwin} ones unconditional.
1024         (STARTFILE_SPEC): Likewise.
1025         (REAL_LIBGCC_SPEC): Likewise.
1026         (LIB_SPEC): Likewise.
1027         (CXX_WRAP_SPEC): Likewise.
1028         (LINK_SPEC): Likewise.
1029         (CYGWIN_MINGW_SUBDIR): Delete now-unused macro definition.
1030         (CYGWIN_MINGW_SUBDIR_LEN): Likewise.
1031         (cygwin_gplusplus_include_dir): Delete now-unused array.
1032         (GPLUSPLUS_INCLUDE_DIR): Don't redefine to point to it.
1033         (cygwin_gplusplus_tool_include_dir): Delete now-unused array.
1034         (GPLUSPLUS_TOOL_INCLUDE_DIR): Don't redefine to point to it.
1035         (cygwin_gplusplus_backward_include_dir): Delete now-unused array.
1036         (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Don't redefine to point to it.
1037         (cygwin_local_include_dir): Delete now-unused array.
1038         (LOCAL_INCLUDE_DIR): Don't redefine to point to it.
1039         (cygwin_cross_include_dir): Delete now-unused array.
1040         (CROSS_INCLUDE_DIR): Don't redefine to point to it.
1041         (cygwin_tool_include_dir): Delete now-unused array.
1042         (TOOL_INCLUDE_DIR): Don't redefine to point to it.
1043         (cygwin_standard_include_dir): Delete now-unused array.
1044         (STANDARD_INCLUDE_DIR): Don't redefine to point to it.
1045         (GEN_CVT_ARRAY): Delete now-unused macro definition.
1046         (cvt_to_mingw): Delete now-unused array.
1047         (mingw_scan): Remove prototype of deleted function.
1048         (GCC_DRIVER_HOST_INITIALIZATION): Don't define now-unused target macro.
1049         * config/i386/cygming.opt (mcygwin): Delete target-specific option.
1050         * doc/invoke.texi (-mcygwin): Don't document removed option.
1051         (-mno-cygwin): Likewise.
1052
1053 2010-10-07  Richard Guenther  <rguenther@suse.de>
1054
1055         * machmode.h (mode_for_vector): Declare.
1056         * stor-layout.c (mode_for_vector): New function, split out from ...
1057         (layout_type): ... here.
1058         * tree-vectorizer.h (current_vector_size): Declare.
1059         * tree-vect-stmts.c (perm_mask_for_reverse): Check if the
1060         mask vector type is available.
1061         (get_vectype_for_scalar_type): Rename to ...
1062         (get_vectype_for_scalar_type_and_size): ... this.  Get a vector
1063         size argument.
1064         (get_vectype_for_scalar_type): New wrapper around
1065         get_vectype_for_scalar_type_and_size using current_vector_size.
1066         (get_same_sized_vectype): Use get_vectype_for_scalar_type_and_size.
1067         * tree-vect-loop.c (vect_analyze_loop_2): Split out core part
1068         of vect_analyze_loop here.
1069         (vect_analyze_loop): Loop over vector sizes calling vect_analyze_loop_3.
1070         * tree-vect-slp.c (vect_slp_analyze_bb): Set current_vector_size
1071         to autodetect.
1072         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Fix
1073         V8SF to V8SI conversion builtin.
1074
1075 2010-10-07  Richard Guenther  <rguenther@suse.de>
1076
1077         * target.def (autovectorize_vector_sizes): New target hook.
1078         * targhooks.c (default_autovectorize_vector_sizes): New function.
1079         * targhooks.h (default_autovectorize_vector_sizes): Declare.
1080         * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES):
1081         Document.
1082         * doc/tm.texi: Update.
1083         * config/i386/i386.c (ix86_autovectorize_vector_sizes): New function.
1084         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
1085
1086 2010-10-07  Richard Guenther  <rguenther@suse.de>
1087
1088         * target.def (units_per_simd_word): Rename to ...
1089         (preferred_simd_mode): ... this.  Return mode instead of size.
1090         * targhooks.c (default_units_per_simd_word): Rename to ...
1091         (default_preferred_simd_mode): ... this.  Return word_mode.
1092         * targhooks.h (default_preferred_simd_mode): Declare.
1093         * config/arm/arm.c (arm_units_per_simd_word): Rename to ...
1094         (arm_preferred_simd_mode): ... this.  Re-implement.
1095         * config/i386/i386.c (ix86_units_per_simd_word): Rename to ...
1096         (ix86_preferred_simd_mode): ... this.  Re-implement.
1097         * config/sparc/sparc.c (sparc_units_per_simd_word): Rename to ...
1098         (sparc_preferred_simd_mode): ... this.  Re-implement.
1099         * config/mips/mips.c (mips_units_per_simd_word): Rename to ...
1100         (mips_preferred_simd_mode): ... this.  Re-implement.
1101         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Rename to ...
1102         (rs6000_preferred_simd_mode): ... this.  Re-implement.
1103         * tree-vect-stmts.c (get_vectype_for_scalar_type): Adjust.
1104         * doc/tm.texi.in (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Remove.
1105         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Document.
1106         * doc/tm.texi: Update.
1107
1108 2010-10-07  Richard Guenther  <rguenther@suse.de>
1109
1110         PR middle-end/45869
1111         * tree-cfg.c (verify_gimple_assign_binary): Allow vector shifts
1112         of pointers.
1113
1114 2010-10-07  Alan Modra  <amodra@gmail.com>
1115
1116         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use gen_int_mode
1117         rather than sign extension by hand.
1118
1119 2010-10-07  Jan Hubicka  <jh@suse.cz>
1120
1121         PR middle-end/45926
1122         * ipa.c (cgraph_remove_unreachable_nodes): Revert my previous patch.
1123
1124 2010-10-07  Richard Guenther  <rguenther@suse.de>
1125
1126         PR bootstrap/45914
1127         * configure.ac: Fix typo.
1128         * configure: Regenerated.
1129
1130 2010-10-06  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1131
1132         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Don't use
1133         define_builtin_std where it's unnecessary.
1134         * config/i386/nto.h (TARGET_OS_CPP_BUILTINS): Likewise.
1135
1136 2010-10-06  Anatoly Sokolov  <aesok@post.ru>
1137
1138         * doc/tm.texi.in (CLASS_LIKELY_SPILLED_P): Remove documentation.
1139         * doc/tm.texi.in: Regenerate.
1140         * system.h (CLASS_LIKELY_SPILLED_P): Poison.
1141         * targhooks.c (default_class_likely_spilled_p): Don't use the
1142         CLASS_LIKELY_SPILLED_P macro.
1143
1144         * config/arm/arm.md: Update comment.
1145
1146 2010-10-06  Jan Hubicka  <jh@suse.cz>
1147
1148         * ipa.c (cgraph_remove_unreachable_nodes): External references can
1149         always be removed.
1150         (cgraph_externally_visible_p): We can not bring local comdats that
1151         are known to linker; fix handling of internal visibility.
1152         (function_and_variable_visibility): Likewise.
1153
1154 2010-10-06  Eric Botcazou  <ebotcazou@adacore.com>
1155
1156         PR rtl-optimization/45394
1157         * combine.c (cleanup_auto_inc_dec): Remove AFTER parameter and adjust.
1158         (struct rtx_subst_pair): Remove AFTER field.
1159         (propagate_for_debug_subst): Adjust call to cleanup_auto_inc_dec.
1160         (propagate_for_debug): Remove MOVE parameter and adjust.
1161         (try_combine): In the special case where I2 is a PARALLEL, combine only
1162         destinations of SETs and set I2SRC to the I2 source.
1163         Adjust calls to propagate_for_debug throughout.
1164         * reload1.c (eliminate_regs_1) <ASM_OPERANDS>: Do not abort for debug
1165         insns.
1166
1167 2010-10-06  Olivier Hainque  <hainque@adacore.com>
1168
1169         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Rewrite
1170         switch on insn codes as sequence of ifs.
1171
1172 2010-10-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
1173
1174         * config/picochip/picochip.c (TARGET_EXCEPT_UNWIND_INFO): Define it to
1175         be UI_NONE for picochip.
1176         (picochip_option_override): Do not disable exception flags.
1177         * config/picochip/picochip-protos.h (picochip_except_unwind_info):
1178         Declare.
1179
1180 2010-10-06  Richard Guenther  <rguenther@suse.de>
1181
1182         * Makefile.in (regmove.o): Depend on $(TARGET_H).
1183
1184 2010-10-06  Nicola Pero  <nicola.pero@meta-innovation.com>
1185
1186         Implemented fast enumeration for Objective-C.
1187         * c-parser.c (objc_could_be_foreach_context): New.
1188         (c_lex_one_token): Recognize RID_IN keyword in a potential
1189         Objective-C foreach context.
1190         (c_parser_declaration_or_fndef): Added parameter.  Accept
1191         Objective-C RID_IN keyword as terminating a declaration; in that
1192         case, return the declaration in the new parameter.
1193         (c_parser_extenral_declaration): Updated calls to
1194         c_parser_declaration_or_fndef.
1195         (c_parser_declaration_or_fndef): Same change.
1196         (c_parser_compound_statement_nostart): Same change.
1197         (c_parser_label): Same change.
1198         (c_parser_objc_methodprotolist): Same change.
1199         (c_parser_omp_for_loop): Same change.
1200         (c_parser_for_statement): Detect and parse Objective-C foreach
1201         statements.
1202         (c_parser_omp_for_loop): Updated call to check_for_loop_decls().
1203         * c-decl.c (check_for_loop_decls): Added parameter to allow ObjC
1204         fast enumeration parsing code to turn off the c99 error but still
1205         perform checks on the loop declarations.
1206         * c-tree.h (check_for_loop_decls): Updated declaration.
1207         * doc/objc.texi: Document fast enumeration.
1208
1209 2010-10-06  Nick Clifton  <nickc@redhat.com>
1210
1211         * config/mn10300/mn10300.h (FIRST_PSEUDO_REGISTER): Increment by one.
1212         (MDR_REGNUM): Define.
1213         (FIXED_REGISTERS, CALL_USED_REGISTERS): Add MDR as a fixed register.
1214         (REG_CLASS_CONTENTS): Add MDR to ALL_REGS.
1215         (INCOMING_RETURN_ADDR_RTX): Define in terms of MDR.
1216         (REGISTER_NAMES): Add MDR.
1217         (DWARF2_DEBUGGING_INFO): Define to 1.
1218         * config/mn10300/mn10300.c (TARGET_EXCEPT_UNWIND_INFO): Define.
1219         (F): New function.  Sets RTX_FRAME_RELATED_P.
1220         (mn10300_gen_multiple_store): Use F.
1221         (expand_prologue): Use F.  Use gen_movsf() to push floating
1222         point registers.
1223         (expand_epilogue): Use gen_movsf() to pop floating point registers.
1224         (mn10300_option_override): Disable combine stack adjust pass.
1225
1226 2010-10-06  Thomas Schwinge  <thomas@schwinge.name>
1227
1228         PR target/45901
1229         * config/alpha/gnu.h (TARGET_OS_CPP_BUILTINS): Refer to
1230         LINUX_TARGET_OS_CPP_BUILTINS instead of HURD_TARGET_OS_CPP_BUILTINS.
1231
1232 2010-10-06  Jakub Jelinek  <jakub@redhat.com>
1233
1234         * builtins.def (BUILT_IN_CALLOC, BUILT_IN_REALLOC,
1235         BUILT_IN_ISALNUM, BUILT_IN_ISALPHA, BUILT_IN_ISASCII,
1236         BUILT_IN_ISBLANK, BUILT_IN_ISCNTRL, BUILT_IN_ISDIGIT,
1237         BUILT_IN_ISGRAPH, BUILT_IN_ISLOWER, BUILT_IN_ISPRINT,
1238         BUILT_IN_ISPUNCT, BUILT_IN_ISSPACE, BUILT_IN_ISUPPER,
1239         BUILT_IN_ISXDIGIT, BUILT_IN_TOASCII, BUILT_IN_TOLOWER,
1240         BUILT_IN_TOUPPER): Mark as leaf.
1241
1242         PR middle-end/45838
1243         * omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
1244         BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
1245         BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
1246         BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
1247         BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_TASK,
1248         BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Use
1249         Revert back to ATTR_NOTHROW_LIST instead of ATTR_NOTHROW_LEAF_LIST.
1250
1251 2010-10-05  Anatoly Sokolov  <aesok@post.ru>
1252
1253         * config/m68hc11/m68hc11.h (CLASS_LIKELY_SPILLED_P): Remove.
1254         * config/m68hc11/m68hc11.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
1255         (m68hc11_class_likely_spilled_p): New function.
1256
1257 2010-10-05  Nicola Pero  <nicola.pero@meta-innovation.com>
1258
1259         * c-parser.c (c_parser_objc_method_definition): Updated comment.
1260
1261 2010-10-05  Jan Hubicka  <jh@suse.cz>
1262
1263         * doc/invoke.texi (-flto-partition, lto-partitions, lto-minpartition):
1264         Document.
1265         * opts.c (decode_options): Handle lto partitions.
1266         * common.opt (flto-partition=1to1, flto-partition=balanced): New.
1267         * params.def (PARAM_LTO_PARTITIONS, MIN_PARTITION_SIZE): New.
1268
1269 2010-10-05  Jan Hubicka  <jh@suse.cz>
1270
1271         * cgraphunit.c (assemble_function): Output thunks and aliases before
1272         the function itself.
1273
1274 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
1275
1276         * config/picochip/picochip.c (picochip_option_override): Disable
1277         exception flags for picochip.
1278
1279 2010-10-05  Joseph Myers  <joseph@codesourcery.com>
1280
1281         * opts-common.c (handle_option, handle_generated_option,
1282         read_cmdline_option, set_option): Add diagnostic_context
1283         parameter.  Update calls among these functions.
1284         (set_option): Don't use global_dc.
1285         * opts.c (read_cmdline_options): Pass global_dc to read_cmdline_option.
1286         (decode_options): Pass global_dc to enable_warning_as_error.
1287         (common_handle_option): Pass global_dc to enable_warning_as_error.
1288         (enable_warning_as_error): Add diagnostic_context parameter.
1289         Document parameters.  Don't use global_dc.  Pass
1290         diagnostic_context parameter to handle_generated_option.
1291         * opts.h (set_option, handle_option, handle_generated_option,
1292         read_cmdline_option, enable_warning_as_error): Add
1293         diagnostic_context parameter.
1294         * Makefile.in (lto-opts.o): Update dependencies.
1295         * coretypes.h (struct diagnostic_context, diagnostic_context):
1296         Declare here.
1297         * diagnostic.h (diagnostic_context): Don't declare typedef here.
1298         * gcc.c (process_command): Pass global_dc to read_cmdline_option.
1299         * langhooks-def.h (struct diagnostic_context): Don't declare here.
1300         (lhd_print_error_function, lhd_initialize_diagnostics): Declare
1301         using diagnostic_context typedef.
1302         * langhooks.c (lhd_initialize_diagnostics): Declare using
1303         diagnostic_context typedef.
1304         * langhooks.h (struct diagnostic_context): Don't declare here.
1305         (initialize_diagnostics, print_error_function): Declare using
1306         diagnostic_context typedef.
1307         * lto-opts.c: Include diagnostic.h.
1308         (lto_reissue_options): Pass global_dc to set_option.  Pass
1309         DK_UNSPECIFIED not 0.
1310         * plugin.c (plugins_internal_error_function): Declare using
1311         diagnostic_context typedef.
1312         * plugin.h (struct diagnostic_context): Don't declare here.
1313         (plugins_internal_error_function): Declare using
1314         diagnostic_context typedef.
1315
1316 2010-10-05  Olivier Hainque  <hainque@adacore.com>
1317             Nicolas Roche  <roche@adacore.com>
1318
1319         * config/vxworksae.h: Add missing VXWORKS_OS_CPP_BUILTINS.
1320         * config/rs6000/vxworks.h: Remove redundant CPP builtin definitions.
1321
1322 2010-10-05  Ira Rosen  <irar@il.ibm.com>
1323
1324         PR tree-optimization/45752
1325         * tree-vect-slp.c (vect_get_mask_element): Remove static
1326         variables, make them function arguments.
1327         (vect_transform_slp_perm_load): Pass new arguments to
1328         vect_get_mask_element.
1329
1330 2010-10-05  Richard Guenther  <rguenther@suse.de>
1331
1332         * value-prof.c (gimple_divmod_fixed_value): Work on SSA form.
1333         (gimple_mod_pow2): Likewise.
1334         (gimple_mod_subtract): Likewise.
1335         (gimple_ic): Likewise.
1336         (gimple_stringop_fixed_value): Likewise.
1337         * tree-profile.c (tree_init_edge_profiler): Mark profile
1338         functions nothrow and leaf.
1339         (add_abnormal_goto_call_edges): Remove.
1340         (tree_gen_edge_profiler): Work on SSA form.
1341         (tree_gen_ic_profiler): Likewise.  Simplify.
1342         (do_tree_profiling): Update SSA form.
1343         (pass_tree_profile): Remove.
1344         (do_tree_profiling): Likewise.
1345         (gate_tree_profile_ipa): New function.
1346         (pass_ipa_tree_profile): New.
1347         (tree_profiling): Re-write as IPA pass.  Properly drop const/pure
1348         state of instrumented functions.
1349         * passes.c (init_optimization_passes): Remove early non-SSA
1350         inlining.  Move profiling after early optimizations.
1351         * ipa-inline.c (cgraph_gate_ipa_early_inlining): Remove.
1352         (pass_ipa_early_inline): Likewise.
1353         * tree-pass.h (pass_ipa_early_inline): Remove.
1354         (pass_tree_profile): Likewise.
1355         (pass_ipa_tree_profile): Declare.
1356
1357 2010-10-05  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1358             Christian Borntraeger  <Christian.Borntraeger@de.ibm.com>
1359
1360         * gcc/config/s390/s390.c (z196_cost): New.
1361         (s390_handle_arch_option): Add -march=z196.
1362         (s390_option_override): Use the new cost function and use the z10
1363         defaults also for z196.
1364         (legitimate_reload_constant_p): Adjust comment.
1365         (legitimate_reload_fp_constant_p): New function.
1366         (s390_preferred_reload_class): Distingiush between FP and Int constants.
1367         (preferred_la_operand_p): Avoid la with index on z196.
1368         (s390_adjust_priority): Trigger also for z196.
1369         (s390_issue_rate): Issue rate for z196 is 3.
1370         (s390_z10_fix_long_loop_prediction): Rename to ...
1371         (s390_fix_long_loop_prediction): ... this.
1372         (s390_reorg): Apply the z10 adjustments also for z196.
1373         (s390_loop_unroll_adjust): Do this also for z196.
1374         * gcc/config/s390/s390.h (enum processor_type): Add PROCESSOR_2817_Z196.
1375         (enum processor_flags): Add PF_Z196.
1376         (TARGET_AVOID_CMP_AND_BRANCH): New macro.
1377         (TARGET_CPU_Z196, TARGET_Z196): New macros.
1378         * gcc/config.gcc: Enable z196 for --with-arch.
1379         * gcc/config/s390/2817.md: New file.
1380         * gcc/config/s390/2084.md: New type for multiply and add.
1381         * gcc/config/s390/2097.md: Likewise.
1382         * gcc/config/s390/s390.md (UNSPEC_POPCNT, UNSPEC_COPYSIGN)
1383         (UNSPECV_ATOMIC_OP): New constants.
1384         (fmadddf, fmaddsf): New values for type attribute.
1385         (z196prop): New insn attribute.
1386         (cpu, cpu_facility): Add z196.
1387         (ATOMIC_Z196): New code iterator.
1388         (noxa): New code attribute.
1389         (gk): New mode attribute.
1390         (*mov<mode>_64, *mov<mode>_31, *mov<mode>_64dfp, mov<mode>):
1391         Support load zero for fp constants.
1392         (fixuns_truncdddi2, fixuns_trunctddi2)
1393         (fixuns_trunc<BFP:mode><GPR:mode>2): Use the standard rtx pattern
1394         for z196.
1395         (fixuns_trunc<mode>si2, mov<mode>cc, popcountdi2, popcountsi2)
1396         (popcounthi2, popcountqi2): New expander.
1397         (*fixuns_trunc<FP:mode><GPR:mode>2_z196, floatsi<mode>2)
1398         (floatuns<GPR:mode><FP:mode>2, *mov<mode>cc, sync_<atomic><mode>)
1399         (sync_old_<atomic><mode>, *popcount<mode>, copysign<mode>3): New
1400         insn definition.
1401         (add<mode>3, *add<mode>3_carry1_cc, *add<mode>3_carry1_cconly)
1402         (*add<mode>3_carry2_cc, *add<mode>3_carry2_cconly, *add<mode>3_cc)
1403         (*add<mode>3_cconly, *add<mode>3_cconly2, *add<mode>3_imm_cc)
1404         (*sub<mode>3, *sub<mode>3_borrow_cc, *sub<mode>3_borrow_cconly)
1405         (*sub<mode>3_cc, *sub<mode>3_cc2, *sub<mode>3_cconly)
1406         (*sub<mode>3_cconly2, *anddi3_cc, *anddi3_cconly, *anddi3, *andsi3_cc)
1407         (*andsi3_cconly, *andsi3_zarch, *andsi3_esa, *andhi3_zarch
1408         (*andqi3_zarch, *iordi3_cc, *iordi3_cconly, *iordi3, *iorsi3_cc)
1409         (*iorsi3_cconly, *iorsi3_zarch, *iorhi3_zarch, *iorqi3_zarch)
1410         (*xordi3_cc, *xordi3_cconly, *xordi3, *xorsi3_cc, *xorsi3_cconly)
1411         (*xorsi3, *xorhi3, *xorqi3, *<shift><mode>3, *<shift><mode>3_and)
1412         (*ashr<mode>3_cc, *ashr<mode>3_cconly, *ashr<mode>3)
1413         (*ashr<mode>3_cc_and, *ashr<mode>3_cconly_and, *ashr<mode>3_and):
1414         Support new z196 instructions.
1415
1416 2010-10-05  Richard Guenther  <rguenther@suse.de>
1417
1418         PR middle-end/45877
1419         * gimple-fold.c (gimplify_and_update_call_from_tree): Handle
1420         case where gimplification optimizes away the stmt.
1421
1422 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
1423
1424         PR debug/45849
1425         * var-tracking.c (strip_pointer_flags): New function.
1426         (emit_note_insn_var_location): If rtx_equal_p check failed,
1427         retry on locations simplified with simplify_replace_fn_rtx
1428         and strip_pointer_flags as its callback.
1429
1430 2010-10-04  Jan Hubicka  <jh@suse.cz>
1431
1432         * gimple-fold.c (static_object_in_other_unit_p): Rename to...
1433         (can_refer_decl_in_current_unit_p): ... this one; reverse return
1434         value; handle comdats too.
1435         (canonicalize_constructor_val): Use it; handle function_decls
1436         correctly.
1437         (gimple_fold_obj_type_ref_known_binfo): Likewise.
1438         * gimple.c (get_base_address): Accept all kinds of decls.
1439
1440 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
1441
1442         * flags.h (g_switch_value, g_switch_set): Remove.
1443         * opts.c (g_switch_value, g_switch_set): Remove.
1444         * config/g.opt (G): Add Var(g_switch_value).
1445         * config/alpha/alpha.c (alpha_handle_option): Don't handle -G here.
1446         (alpha_option_override): Check global_options_set.x_g_switch_value
1447         instead of g_switch_set.
1448         (alpha_in_small_data_p): Remove cast in comparison with
1449         g_switch_value.
1450         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast
1451         g_switch_value to unsigned HOST_WIDE_INT.
1452         * config/frv/frv.c (frv_const_unspec_p): Remove cast in comparison
1453         with g_switch_value.
1454         (frv_handle_option): Don't handle -G here.
1455         (frv_option_override): Check global_options_set.x_g_switch_value
1456         instead of g_switch_set.  Don't modify g_switch_set.
1457         (frv_in_small_data_p): Remove cast in comparison with g_switch_value.
1458         * config/frv/frv.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Cast
1459         g_switch_value to unsigned HOST_WIDE_INT.
1460         * config/ia64/ia64.c (ia64_handle_option): Don't handle -G here.
1461         (ia64_option_override): Check global_options_set.x_g_switch_value
1462         instead of g_switch_set.
1463         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
1464         Remove.
1465         (lm32_in_small_data_p): Remove cast in comparison with
1466         g_switch_value.
1467         * config/lm32/lm32.h (ASM_OUTPUT_ALIGNED_LOCAL,
1468         ASM_OUTPUT_ALIGNED_COMMON): Cast g_switch_value to unsigned
1469         HOST_WIDE_INT.
1470         * config/m32r/m32r.c (m32r_handle_option): Don't handle -G here.
1471         (m32r_init): Check global_options_set.x_g_switch_value instead of
1472         g_switch_set.
1473         (m32r_in_small_data_p): Remove cast in comparison with
1474         g_switch_value.
1475         (m32r_file_start): Format g_switch_value with %d.
1476         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_COMMON,
1477         ASM_OUTPUT_ALIGNED_BSS): Cast g_switch_value to unsigned HOST_WIDE_INT.
1478         * config/microblaze/microblaze.c (microblaze_handle_option): Don't
1479         handle -G here.
1480         (microblaze_option_override): Check
1481         global_options_set.x_g_switch_value instead of g_switch_set.
1482         * config/mips/mips.c (mips_handle_option): Don't handle -G here.
1483         (mips_option_override): Check global_options_set.x_g_switch_value
1484         instead of g_switch_set.
1485         * config/rs6000/rs6000.c (rs6000_handle_option): Don't handle -G here.
1486         (rs6000_file_start): Format g_switch_value with %d.
1487         (small_data_operand, rs6000_elf_in_small_data_p): Remove casts in
1488         comparisons with g_switch_value.
1489         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Check
1490         global_options_set.x_g_switch_value instead of g_switch_set.
1491         * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Check
1492         global_options_set.x_g_switch_value instead of g_switch_set.
1493         * config/score/score.c (score_handle_option): Don't handle -G here.
1494         * config/score/score3.c (score3_option_override): Check
1495         global_options_set.x_g_switch_value instead of g_switch_set.
1496         * config/score/score7.c (score7_option_override): Check
1497         global_options_set.x_g_switch_value instead of g_switch_set.
1498
1499 2010-10-04  Vladimir Makarov  <vmakarov@redhat.com>
1500
1501         * common.opt (fira-coalesce): Remove.
1502
1503         * doc/invoke.texi (flag_ira_coalesce): Remove.
1504
1505         * ira-color.c (allocno_coalesced_p): Move before
1506         copy_freq_compare_func.
1507         processed_coalesced_allocno_bitmap): Ditto.
1508         (update_conflict_hard_regno_costs): Don't use
1509         ALLOCNO_FIRST_COALESCED_ALLOCNO.
1510         (allocno_cost_compare_func, print_coalesced_allocno): Remove.
1511         (assign_hard_reg): Assume no coalesced allocnos.
1512         (get_coalesced_allocnos_attributes): Remove.
1513         (bucket_allocno_compare_func): Assume no coalesced allocnos.
1514         (push_allocno_to_stack): Ditto.
1515         (remove_allocno_from_bucket_and_push): Use
1516         ira_print_expanded_allocno instead of print_coalesced_allocno.
1517         (push_allocnos_to_stack): Assume uncoalesced allocnos.
1518         (all_conflicting_hard_regs_coalesced): Ditto.  Rename to
1519         all_conflicting_hard_regs.
1520         (setup_allocno_available_regs_num): Assume uncoalesced allocnos.
1521         (setup_allocno_left_conflicts_size): Ditto.
1522         (put_allocno_into_bucket): Ditto.
1523         (copy_freq_compare_func): Remove.
1524         (copy_freq_compare_func, merge_allocnos): Move before
1525         coalesced_pseudo_reg_freq_compare.
1526         coalesced_allocno_conflict_p): Ditto.
1527         (coalesced_allocno_conflict_p, coalesce_allocnos): Ditto.  Remove
1528         parameter.  Assume it true.
1529         (color_allocnos): Assume uncoalesced allocnos.  Use
1530         ira_print_expanded_allocno instead of print_coalesced_allocno.
1531         (ira_sort_regnos_for_alter_reg): Call coalesce_allocnos without
1532         parameter.
1533
1534         * ira.c: Remove comment about coalescing.
1535
1536 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
1537
1538         * config/mips/mips.h (target_flags_explicit): Declare for
1539         GENERATOR_FILE.
1540
1541 2010-10-04  Andi Kleen <ak@linux.intel.com>
1542
1543         * Makefile.in (xgcc, cpp, cc1, collect2, lto-wrapper, gcov,
1544         gcov-dump, cc1-dummy, genprog, build/gcov-iov): Add + to build rule.
1545
1546 2010-10-04  Matthias Klose  <doko@ubuntu.com>
1547
1548         * config/sparc/t-linux64 (MULTILIB_OSDIRNAMES): Use ../lib32 as the
1549         multilib osdirname if it exists.
1550         * config/s390/t-linux64 (MULTILIB_OSDIRNAMES): Likewise.
1551
1552 2010-10-04  Jakub Jelinek  <jakub@redhat.com>
1553
1554         PR middle-end/45876
1555         * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Use
1556         arg0's type or its unsigned counterpart as utype.  Convert
1557         arg1 to utype unconditionally.
1558
1559 2010-10-04  Julian Brown  <julian@codesourcery.com>
1560
1561         * expr.c (expand_assignment): Add assertion to prevent emitting
1562         null rtx for movmisalign pattern.
1563         (expand_expr_real_1): Likewise.
1564         * config/arm/arm.c (arm_builtin_support_vector_misalignment): New.
1565         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): New. Use above.
1566         (arm_vector_alignment_reachable): New.
1567         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): New. Use above.
1568         (neon_vector_mem_operand): Disallow PRE_DEC for misaligned loads.
1569         (arm_print_operand): Include alignment qualifier in %A.
1570         * config/arm/neon.md (UNSPEC_MISALIGNED_ACCESS): New constant.
1571         (movmisalign<mode>): New expander.
1572         (movmisalign<mode>_neon_store, movmisalign<mode>_neon_load): New
1573         insn patterns.
1574
1575 2010-10-04  Joseph Myers  <joseph@codesourcery.com>
1576
1577         * optc-gen.awk: Define global_options_set.  Don't define
1578         target_flags_explicit.
1579         * opth-gen.awk: Declare global_options_set.  Define
1580         target_flags_explicit as macro.
1581         * opts-common.c (handle_option): Take opts_set and generated_p
1582         parameters.
1583         (handle_generated_option, read_cmdline_option, set_option): Take
1584         opts_set parameter.
1585         (set_option): Use opts_set instead of hardcoding target_flags and
1586         target_flags_explicit.
1587         * opts.c (sel_sched_switch_set, profile_arc_flag_set,
1588         flag_profile_values_set, flag_unroll_loops_set, flag_tracer_set,
1589         flag_value_profile_transformations_set, flag_peel_loops_set,
1590         flag_branch_probabilities_set, flag_inline_functions_set,
1591         flag_ipa_cp_set, flag_ipa_cp_clone_set,
1592         flag_predictive_commoning_set, flag_unswitch_loops_set,
1593         flag_gcse_after_reload_set): Remove.
1594         (common_handle_option, lang_handle_option, target_handle_option):
1595         Take opts_set parameter.  Assert that it is &global_options_set.
1596         (common_handle_option): Don't set _set variables.  Check opts_set
1597         instead of such variables.
1598         (enable_warning_as_error): Pass &global_options_set to
1599         handle_generated_option.
1600         * opts.h (cl_option_handler_func.handler, set_option,
1601         handle_option, handle_generated_option, read_cmdline_option): Add
1602         opts_set parameters.
1603         (handle_option): Add generated_p parameter.
1604         * config/i386/i386.c (ix86_function_specific_save,
1605         ix86_function_specific_restore): Updat for renaming of
1606         target_flags_explicit field.
1607         * config/i386/i386.opt (target_flags_explicit): Rename to
1608         ix86_target_flags_explicit.
1609         * config/ia64/ia64.c (ia64_override_options_after_change): Check
1610         global_options_set.x_flag_selective_scheduling and
1611         global_options_set.x_flag_selective_scheduling2, not
1612         sel_sched_switch_set.
1613         * flags.h (sel_sched_switch_set,
1614         flag_speculative_prefetching_set): Remove.
1615         * gcc.c (driver_handle_option): Take opts_set parameter.  Assert
1616         that it is &global_options_set.
1617         (process_command): Pass &global_options_set to read_cmdline_option.
1618         * lto-opts.c (lto_reissue_options): Pass &global_options_set to
1619         set_option.
1620         * toplev.c (target_flags_explicit): Remove.
1621
1622 2010-10-04  Jan Hubicka  <jh@suse.cz>
1623
1624         PR middle-end/45871
1625         * tree-ssa-ccp.c (get_base_constructor): Take HOST_WIDE_INT offset;
1626         use get_ref_base_and_offset to handle references.
1627         (fold_const_aggregate_ref): Update.
1628
1629 2010-10-04  Martin Jambor  <mjambor@suse.cz>
1630
1631         PR tree-optimization/45572
1632         * ipa-prop.c (ipa_make_edge_direct_to_target): Call
1633         ipa_check_create_node_params.
1634         * ipa-inline.c (add_new_edges_to_heap): Do not insert inlined edges.
1635
1636 2010-10-04  Yao Qi  <yao@codesourcery.com>
1637
1638         * doc/passes.texi: Clean up.
1639
1640 2010-10-03  Ian Lance Taylor  <iant@google.com>
1641
1642         * c-typeck.c (lookup_field): If -fplan9-extensions, permit
1643         referring to a field using a typedef name.
1644         (find_anonymous_field_with_type): New static function.
1645         (convert_to_anonymous_field): New static function.
1646         (convert_for_assignment): If -fplan9-extensions, permit converting
1647         pointer to struct to pointer to anonymous field.
1648         * c-decl.c (grokfield): If -fplan9-extensions, permit anonymous fields.
1649         (is_duplicate_field): New static function.
1650         (detect_field_duplicates_hash): If -fplan9-extensions, check for
1651         typedef names duplicating field names.
1652         (detect_field_duplicates): Likewise.
1653         * doc/invoke.texi (Option Summary): Mention -fplan9-extensions.
1654         (C Dialect Options): Document -fplan9-extensions.
1655         * doc/extend.texi (Unnamed Fields): Document -fplan9-extensions.
1656
1657 2010-10-03  H.J. Lu  <hongjiu.lu@intel.com>
1658
1659         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Revert
1660         revision 164914.
1661         (vect_create_data_ref_ptr): Likewise.
1662         * tree-vect-stmts.c (vectorizable_store): Likewise.
1663         (perm_mask_for_reverse): Likewise.
1664         (reverse_vec_elements): Likewise.
1665         (vectorizable_load): Likewise.
1666
1667 2010-10-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
1668
1669         * cppbuiltin.c: New file.
1670         * cppbuiltin.h: New file.
1671         * Makefile.in: Take into account cppbuiltin.{h,c}.
1672
1673 2010-10-03  Andi Kleen <ak@linux.intel.com>
1674
1675         * lto-cgraph.c (input_cgraph): Check for missing sections.
1676
1677 2010-10-03  Uros Bizjak  <ubizjak@gmail.com>
1678
1679         * config/i386/i386.md (*ashl<mode>3_mask): Change operand 2 predicate
1680         to nonimmediate_operand.  Force operand 2 to register when allowed.
1681         (*<shiftrt_insn><mode>3_mask): Ditto.
1682         (*<rotate_insn><mode>3_mask): Ditto.
1683
1684 2010-10-02  H.J. Lu  <hongjiu.lu@intel.com>
1685
1686         PR tree-optimization/45720
1687         PR tree-optimization/45764
1688         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
1689         Don't accept backwards consecutive accesses.
1690         (vect_create_data_ref_ptr): Disallow negative steps.
1691
1692         * tree-vect-stmts.c (vectorizable_store): Allow negative steps.
1693         (perm_mask_for_reverse): Removed.
1694         (reverse_vec_elements): Likewise.
1695         (vectorizable_load): Don't handle negative steps.
1696
1697 2010-10-02  Jan Hubicka  <jh@suse.cz>
1698
1699         * tree-ssa-ccp.c (ccp_fold_stmt): Fold away OBJ_TYPE_REF when
1700         call destination is known.
1701
1702 2010-10-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1703
1704         PR target/45820
1705         * config/pa/pa.c (pa_secondary_reload): Handle symbolic operands
1706         earlier.
1707
1708 2010-10-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1709
1710         * doc/install.texi (Configuration): Document build_configargs,
1711         host_configargs, target_configargs.
1712
1713 2010-10-01  Uros Bizjak  <ubizjak@gmail.com>
1714
1715         * config/i386/i386.md (*ashl<mode>3_mask): New insn_and_split pattern.
1716         (*<shiftrt_insn><mode>3_mask): Ditto.
1717         (*<rotate_insn><mode>3_mask): Ditto.
1718
1719 2010-10-01  Steve Ellcey  <sje@cup.hp.com>
1720
1721         PR tree-optimization/44716
1722         * config/ia64/hpux.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define.
1723         (HOT_TEXT_SECTION_NAME): Define.
1724
1725 2010-10-01  Nick Clifton  <nickc@redhat.com>
1726
1727         * common.opt: Add -fcombine-stack-adjustments.
1728         * opts.c (decode_options): Enable -fcombine-stack-adjustments at -O1.
1729         * combine-stack-adj.c (gate_handle_stack_adjustments): Check
1730         flag_combine_stack_adjustments.
1731         * doc/invoke.texi: Document the new option.
1732
1733 2010-10-01  Richard Guenther  <rguenther@suse.de>
1734
1735         PR tree-optimization/45854
1736         * tree-eh.c (cleanup_empty_eh): Avoid degenerate case.
1737
1738 2010-10-01  Anthony Green  <green@moxielogic.com>
1739
1740         * config.gcc: Fix moxie-*-rtems* configuration.
1741
1742 2010-10-01  Richard Guenther  <rguenther@suse.de>
1743
1744         * dwarf2out.c (gen_namespace_die): Use DECL_FILE_SCOPE_P.
1745         (gen_decl_die): Likewise.
1746
1747 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1748
1749         * config/spu/spu.c (spu_init_builtins): No longer add END_BUILTINS
1750         to the function code for SPU MD builtins.
1751         (spu_expand_builtin): Update.
1752         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Update.
1753
1754 2010-10-01  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1755
1756         * config/spu/spu.c (TARGET_EXCEPT_UNWIND_INFO): Set to
1757         sjlj_except_unwind_info.
1758
1759 2010-10-01  Tristan Gingold  <gingold@adacore.com>
1760
1761         * configure.ac: Define the nop insn for avr*-*-*
1762         * configure: Regenerate.
1763
1764 2010-10-01  Alan Modra  <amodra@gmail.com>
1765
1766         PR target/45807
1767         * config/rs6000/rs6000.c (rs6000_emit_prologue): Properly sign
1768         extend toc_restore_insn.
1769
1770 2010-09-30  Richard Guenther  <rguenther@suse.de>
1771
1772         PR tree-optimization/43959
1773         * function.c (gimplify_parameters): Use create_tmp_reg instead of
1774         create_tmp_var.
1775
1776 2010-09-30  Kaz Kojima  <kkojima@gcc.gnu.org>
1777
1778         * config/sh/sh.c (sh_expand_prologue): Set
1779         current_function_static_stack_size.
1780
1781 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1782
1783         * configure.ac: Check for Solaris 8 ld with .hidden support.
1784         * configure: Regenerate.
1785
1786 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1787
1788         PR middle-end/45758
1789         * graphite.c (graphite_initialize): Call scev_reset.
1790
1791 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1792
1793         * sese.h (scev_analyzable_p): Return false for real or floating
1794         point.  Only handle INTEGRAL_TYPE_P and POINTER_TYPE_P.
1795
1796 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1797
1798         * graphite-clast-to-gimple.c (compute_bounds_for_level): Free le
1799         and ps.
1800         * graphite-poly.c (pbb_number_of_iterations_at_time): Free le and
1801         domain.
1802         * graphite-sese-to-poly.c (add_upper_bounds_from_estimated_nit):
1803         Do not allocate ub_expr, it is passed in initialized.
1804
1805 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1806
1807         * graphite-clast-to-gimple.c (init_cloog_input_file): New.
1808         (build_cloog_prog): Dump CLooG input file when
1809         flag_graphite_dump_cloog is set.  This is disabled on trunk.
1810         * graphite-cloog-compat.h (cloog_program_dump_cloog): New.
1811
1812 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1813
1814         * graphite-clast-to-gimple.c (graphite_verify): Remove call to
1815         verify_dominators for CDI_POST_DOMINATORS.
1816         * sese.h: Remove comment about CDI_POST_DOMINATORS.
1817         (recompute_all_dominators): Remove call to free_dominance_info
1818         for CDI_POST_DOMINATORS.  Remove call to calculate_dominance_info
1819         for CDI_POST_DOMINATORS.
1820
1821 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1822
1823         * graphite-poly.c (pbb_number_of_iterations_at_time): Only iterate
1824         over pbb_dim_iter_domain.
1825
1826 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1827
1828         * graphite-flattening.c: Fix comments.
1829
1830 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1831
1832         * Makefile.in (OBJS-common): Add graphite-flattening.o.
1833         (graphite-flattening.o): New rule.
1834         * common.opt (floop-flatten): New flag.
1835         * doc/invoke.texi (-floop-flatten): Documented.
1836         * graphite-flattening.c: New.
1837         * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops.
1838         * graphite-poly.h (flatten_all_loops): Declared.
1839         (lst_remove_loop_and_inline_stmts_in_loop_father): New.
1840         * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten
1841         is set, also set flag_graphite.
1842
1843 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1844
1845         * graphite-poly.c (cloog_checksum): New.
1846         * graphite-poly.h (cloog_checksum): Declared.
1847
1848 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1849
1850         * graphite-poly.c (pbb_number_of_iterations): Removed.
1851         (pbb_number_of_iterations_at_time): Correctly compute the number
1852         of iterations in the transformed loop.
1853         * graphite-poly.h (pbb_number_of_iterations): Removed.
1854
1855 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1856
1857         * graphite-poly.h (lst_update_scattering_seq): Removed.
1858         (lst_update_scattering): Correctly handle outermost loop dewey
1859         renumbering.
1860
1861 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1862
1863         * graphite-blocking.c (pbb_strip_mine_profitable_p): Renamed
1864         lst_strip_mine_profitable_p.  Call lst_niter_for_loop.
1865         * graphite-poly.h (lst_niter_for_loop): New.
1866
1867 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1868
1869         * graphite-poly.c (apply_poly_transforms): Do not abort when the
1870         transform read from disk is not legal.  Call fatal_error instead.
1871
1872 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1873
1874         * graphite-poly.c (print_pbb_body): Add missing closing parenthesis.
1875         (print_scop_header): Removed.  Inlined in the only call place...
1876         (print_scop): ... here.
1877
1878 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1879
1880         * graphite-poly.h (lst_dewey_number): Use FOR_EACH_VEC_ELT.
1881
1882 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1883
1884         * graphite-poly.c (graphite_read_scop_file): Fix uninitialize warning.
1885
1886 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1887
1888         * graphite-dependences.c (dot_deps): Avoid set but not used warning.
1889         (dot_deps_stmt): Same.
1890         * graphite-poly.c (dot_lst): Same.
1891
1892 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1893
1894         * graphite-blocking.c (scop_do_strip_mine): Do not call
1895         graphite_legal_transform.
1896         (scop_do_block): Same.
1897
1898 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
1899
1900         * graphite-scop-detection.c (graphite_can_represent_loop): Correct the
1901         description.
1902
1903 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1904
1905         * tree-scalar-evolution.c (instantiate_array_ref): New.
1906         (instantiate_scev_r): Also handle ARRAY_REFs.
1907
1908 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1909
1910         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
1911         Do not check for VAR_DECL, PARM_DECL, FUNCTION_DECL, LABEL_DECL,
1912         RESULT_DECL, and FIELD_DECL.  Return false for an
1913         SSA_NAME_IS_DEFAULT_DEF.
1914         (compute_scalar_evolution_in_loop): Do not further analyze the
1915         scalar evolution when no_evolution_in_loop_p returns true.
1916
1917 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1918
1919         * tree-chrec.h (evolution_function_is_affine_p): Do not check
1920         whether CHREC_LEFT is invariant.  A function is affine when
1921         CHREC_RIGHT is invariant.
1922
1923 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1924
1925         * graphite-sese-to-poly.c (reduction_phi_p): Remove check for
1926         is_gimple_reg.
1927         (rewrite_degenerate_phi): Same.
1928         (rewrite_reductions_out_of_ssa): Add check for is_gimple_reg.
1929
1930 2010-09-30  Vladimir Kargov  <kargov@gmail.com>
1931
1932         * graphite-scop-detection.c (graphite_can_represent_scev,
1933         graphite_can_represent_expr, stmt_has_simple_data_refs_p,
1934         graphite_can_represent_loop): Remove outermost_loop.
1935
1936 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1937
1938         PR middle-end/45229
1939         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Do not
1940         handle GIMPLE_CALLs with no LHS.
1941
1942 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
1943
1944         * graphite-poly.c (init_graphite_out_file): New.
1945         (init_graphite_in_file): New.
1946         (apply_poly_transforms): Updated to enable reading and writing of
1947         multiple scop files.
1948
1949 2010-09-30  Tobias Grosser  <grosser@fim.uni-passau.de>
1950
1951         * graphite-scop-detection.c (graphite_can_represent_scev): Remove
1952         redundant checks.
1953
1954 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
1955
1956         * graphite-clast-to-gimple.c (precision_for_value): Adjust
1957         computation of precision by 1.
1958
1959 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
1960
1961         * graphite-cloog-util.c (openscop_read_cloog_matrix): New.
1962         (openscop_read_polyhedron_matrix): New.
1963         * graphite-cloog-util.h (openscop_read_polyhedron_matrix): Declared.
1964         (openscop_read_N_int): Same.
1965         * graphite-poly.c (openscop_read_N_int): New.
1966         (openscop_read_one_int): New.
1967         (openscop_read_N_string): New.
1968         (openscop_read_one_string): New.
1969         (openscop_read_powerset_matrix): New.
1970         (graphite_read_transforms): Remove.
1971         (graphite_read_scatt): New.
1972         (graphite_read_scop_file): New.
1973         (apply_poly_transforms): Updated to call graphite_read_scop_file.
1974
1975 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1976
1977         * graphite-poly.c: Change include order.
1978
1979 2010-09-30  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
1980
1981         * graphite-cloog-compat.h (cloog_matrix_ncolumns): New.
1982         (cloog_matrix_nrows): New.
1983
1984 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
1985
1986         * graphite-cloog-util.c (openscop_print_cloog_matrix): Remove spaces
1987         from matrix lines.
1988         * graphite-poly.c (openscop_print_scattering_function_1): Same.
1989         (print_scattering_function_1): Same.
1990         (openscop_print_pbb_domain): Same.
1991         (openscop_print_scop_context): Same.
1992         (print_scop_context): Same.
1993
1994 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
1995
1996         * graphite-poly.c (openscop_print_pdr_polyhedron): Fix indentation.
1997         (openscop_print_pdr_polyhedron): Print pph.
1998
1999 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2000
2001         * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in
2002         priority signed types.
2003
2004 2010-09-30  Sebastian Pop  <sebastian.pop@amd.com>
2005
2006         * graphite-clast-to-gimple.c (max_signed_precision_type): Remove
2007         the call to lang_hooks.types.type_for_size.  Call
2008         build_nonstandard_integer_type.
2009
2010 2010-09-30  Riyadh Baghdadi <baghdadi.mr@gmail.com>
2011
2012         * graphite-cloog-util.c (openscop_print_cloog_matrix): New.
2013         (openscop_print_polyhedron_matrix): New.
2014         * graphite-cloog-util.h (openscop_print_polyhedron_matrix): Declared.
2015         * graphite-poly.c (openscop_print_pdr_polyhedron): Same.
2016         (openscop_print_pdr_powerset): New.
2017         (openscop_print_powerset_matrix): New.
2018         (openscop_print_scattering_function_1): New.
2019         (print_scattering_function): Add support for scattering names and
2020         OpenScop format.
2021         (graphite_write_transforms): Remove.
2022         (print_pdr_access_layout): Updated to support OpenScop format.
2023         (print_pdr): Same.
2024         (openscop_print_pbb_domain): New.
2025         (print_pbb_body): Added a parameter to allow indicating that pbb_body
2026         is not provided.
2027         (print_pbb): Updated to call the new print_pbb_body.
2028         (openscop_print_scop_context): New.
2029         (print_scop_header): New.
2030         (print_scop): Updated to call print_scop_header.
2031         * graphite-poly.h: Document OpenScop format.
2032
2033 2010-09-30  Anatoly Sokolov  <aesok@post.ru>
2034
2035         * config/cris/m32c.c (cris_memory_move_cost): New.
2036         (cris_register_move_cost): Make static. Change arguments type from
2037         enum reg_class to reg_class_t.
2038         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
2039         * config/cris/cris.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
2040         * config/cris/cris-protos.h (cris_register_move_cost): Remove.
2041
2042 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
2043
2044         PR target/45843
2045         * config/i386/i386.c (ix86_gimplify_va_arg): Use
2046         INTVAL (XEXP (slot, 1)) as prev_size.
2047
2048 2010-09-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
2049
2050         PR target/45837
2051         * config/rs6000/aix.h (TARGET_AIX_OS): Define to be 1.
2052         * config/rs6000/rs6000.h (TARGET_AIX_OS): Define to be 0 if not
2053         defined.
2054         * config/rs6000/option-defaults.h (toplevel): Change #if
2055         TARGET_AIX to TARGET_AIX_OS to allow compiler to build after
2056         global option changes.
2057
2058 2010-09-30  Jakub Jelinek  <jakub@redhat.com>
2059
2060         * dwarf2out.c (mem_loc_descriptor): Handle IF_THEN_ELSE.
2061
2062         PR tree-optimization/31261
2063         * fold-const.c (fold_binary): Optimize ((A & N) + B) & M
2064         for constants M and N, M == (1LL << cst) - 1 && (N & M) == M.
2065
2066 2010-09-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2067
2068         PR bootstrap/45796
2069         * Makefile.in (build/gen%$(build_exeext)): Move rule after all
2070         special-casing for generators and turn into ...
2071         ((genprog:%=build/gen%$(build_exeext))): ... this static pattern
2072         rule, for better error messages in case of toplevel dependency errors.
2073         (genprog): Add hooks, rename to ...
2074         (genprogerr): ... this, and let genprog also contain check,
2075         checksum, condmd.
2076         ((genprog:%=build/gen%$(build_exeext))): Rename to ...
2077         ((genprogerr:%=build/gen%$(build_exeext))): ... this.
2078         (build/genhooks$(build_exeext)): Remove now-unneeded dependency.
2079
2080 2010-09-30  Jonathan Wakely  <jwakely.gcc@gmail.com>
2081             Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
2082
2083         * doc/install.texi: Suggest using LD_LIBRARY_PATH to find libs
2084         for GMP, MPFR and MPC.
2085
2086 2010-09-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2087
2088         * config/sparc/sparc.opt (mimpure-text): Move ...
2089         * config/sol2.opt: ... here.  Correct description.
2090         * config.gcc (*-*-solaris2*): Add sol2.opt to extra_options.
2091         * doc/invoke.texi (Option Summary, SPARC Options): Move
2092         -mimpure-text, -mno-impure-text, -threads, -pthreads, -pthread ...
2093         (Option Summary, Solaris 2 Options): ... here.
2094         (Submodel Options, Solaris 2 Options): New menu entry.
2095         (SPARC Options): Move -mimpure-text, -threads, -pthreads, -pthread ...
2096         (Solaris 2 Options): ... here.
2097
2098 2010-09-30  Michael Eager  <eager@eagercon.com>
2099
2100         * extend.texi (interrupt_handler): Add MicroBlaze to list.
2101         (save_volatiles): Describe option for MicroBlaze.
2102         * invoke.texi: Add MicroBlaze Options.
2103         * contrib.texi: Add acknowledgment.
2104         * md.texi: Add MicroBlaze d and z constraints.
2105         * install.texi: Add microblaze-*-elf.
2106         * configure.ac: Add microblaze-*-* to target list.
2107         * configure: Regenerate.
2108         * config.gcc: Add microblaze*-*-*, microblaze*-linux*.
2109         * config/microblaze/microblaze-protos.h: New.
2110         * config/microblaze/crti.s: New.
2111         * config/microblaze/predicates.md: New.
2112         * config/microblaze/linux.h: New.
2113         * config/microblaze/microblaze.md: New.
2114         * config/microblaze/constraints.md: New.
2115         * config/microblaze/crtn.s: New.
2116         * config/microblaze/microblaze.opt: New.
2117         * config/microblaze/microblaze-c.c: New.
2118         * config/microblaze/t-microblaze: New.
2119         * config/microblaze/microblaze.c: New.
2120         * config/microblaze/microblaze.h: New.
2121
2122 2010-09-30  Iain Sandoe  <iains@gcc.gnu.org>
2123
2124         * c-parser.c (c_parser_objc_methodprotolist): Amend preceding comment,
2125         parse @optional/@required and set the flags as appropriate.
2126
2127 2010-09-30  Nathan Froyd  <froydnj@codesourcery.com>
2128
2129         * config/iq2000/t-iq2000 (TARGET_LIBGCC2_CFLAGS): Delete.
2130
2131 2010-09-30  Joseph Myers  <joseph@codesourcery.com>
2132
2133         * opt-functions.awk (static_var): Update comment.
2134         (var_ref): Return offsetof expression or -1, not variable address.
2135         * optc-gen.awk: Generate structure field initializers instead of
2136         static variables.  Expect -1 for missing variables instead of null
2137         pointer.  Add gcc_options parameters to generated functions.
2138         * opth-gen.awk: Generate structure fields for static variables.
2139         Add gcc_options parameters to generated functions.
2140         * common.opt (optimize, optimize_size): Add variables.
2141         * config/i386/i386-c.c (ix86_pragma_target_parse): Pass
2142         &global_options to cl_target_option_restore.
2143         * config/i386/i386.c (ix86_valid_target_attribute_p): Pass
2144         &global_options to cl_optimization_restore, cl_target_option_save
2145         and cl_target_option_restore.
2146         (ix86_set_current_function): Pass &global_options to
2147         cl_target_option_restore.
2148         * config/pdp11/pdp11.h (optimize): Remove.
2149         * config/rs6000/rs6000.h (optimize): Remove.
2150         * config/sh/sh.h (optimize): Remove.
2151         * config/xtensa/xtensa.h (optimize): Remove.
2152         * coretypes.h (struct gcc_options): Declare.
2153         * diagnostic.c (diagnostic_initialize): Initialize
2154         context->option_state.
2155         (diagnostic_report_diagnostic): Pass option_state to
2156         option_enabled hook.
2157         * diagnostic.h (diagnostic_context.option_enabled): Add void *
2158         parameter.
2159         (diagnostic_context.option_state): New field.
2160         * final.c (final_start_function, final, final_scan_insn): Rename
2161         optimize parameter to optimize_p.
2162         * flags.h (optimize, optimize_size): Remove.
2163         * function.c (invoke_set_current_function_hook): Pass
2164         &global_options to cl_optimization_restore.
2165         * gcc.c (driver_handle_option): Take gcc_options parameter.
2166         Assert that it is &global_options.
2167         (process_command): Pass &global_options to read_cmdline_option.
2168         * ipa-pure-const.c (suggest_attribute): Pass &global_options to
2169         option_enabled.
2170         * lto-opts.c (lto_reissue_options): Use option_flag_var.  Pass
2171         &global_options to set_option.
2172         * opts-common.c (handle_option, handle_generated_option,
2173         read_cmdline_option, set_option): Take explicit gcc_options
2174         parameters.  Use option_flag_var.
2175         (option_flag_var): New.
2176         * opts.c (common_handle_option, lang_handle_option,
2177         target_handle_option): Take gcc_options parameter.  Assert that it
2178         is &global_options.
2179         (read_cmdline_options): Pass &global_options to read_cmdline_option.
2180         (print_filtered_help): Use option_flag_var.  Pass &global_options
2181         to option_enabled.
2182         (common_handle_option): Use option_flag_var.
2183         (option_enabled): Take opts parameter.  Use option_flag_var.
2184         (get_option_state): Take gcc_options parameter.  Use
2185         option_flag_var.  Pass gcc_options parameter to option_enabled.
2186         (enable_warning_as_error): Pass &global_options to
2187         handle_generated_option.
2188         * opts.h (struct cl_option): Change flag_var to flag_var_offset.
2189         (cl_option_handler_func.handler): Take gcc_options parameter.
2190         (option_enabled, get_option_state, set_option, handle_option,
2191         handle_generated_option, read_cmdline_option): Take gcc_options
2192         parameters.
2193         * toplev.c (optimize, optimize_size): Remove.
2194         (print_switch_values): Pass &global_options to option_enabled.
2195         (option_affects_pch_p): Use option_flag_var.  Pass &global_options
2196         to get_option_state.
2197         (general_init): Initialize global_dc->option_state.
2198         * tree.c (build_optimization_node): Pass &global_options to
2199         cl_optimization_save.
2200         (build_target_option_node): Pass &global_options to
2201         cl_target_option_save.
2202
2203 2010-09-30  Martin Jambor  <mjambor@suse.cz>
2204
2205         * tree-sra.c (type_consists_of_records_p): Do not check for trailing
2206         zero sized bit-fields.
2207
2208 2010-09-30  Nicola Pero  <nicola.pero@meta-innovation.com>
2209
2210         * c-parser.c (c_lex_one_token): When finding a CPP_AT_NAME
2211         Objective-C token, map RID_CLASS to RID_AT_CLASS and similar.
2212         (c_parser_external_declaration): Use RID_AT_CLASS instead of RID_CLASS.
2213         (c_parser_objc_class_declaration): Same change.
2214         (c_parser_objc_try_catch_statement): Use RID_AT_TRY instead of
2215         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
2216         (c_parser_objc_class_instance_variables): Use RID_AT_PRIVATE
2217         instead of RID_PRIVATE, RID_AT_PROTECTED instead of RID_PROTECTED
2218         and RID_AT_PUBLIC instead of RID_PUBLIC.
2219         (c_parser_statement_after_labels): Use RID_AT_TRY instead of
2220         RID_TRY and RID_AT_CATCH instead of RID_CATCH.
2221
2222 2010-09-30  Tom G. Christensen <tgc@jupiterrise.com>
2223
2224         * doc/install.texi (Binaries): Update link to HP-UX porting centre.
2225         Add links to current providers of packages for Solaris and IRIX.
2226
2227 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2228
2229         Merge from 'apple/trunk' branch on FSF servers.
2230         * c-parser.c: Applied change originally in c-parse.in.
2231
2232         2005-10-04  Fariborz Jahanian <fjahanian@apple.com>
2233
2234         Radar 4281748
2235         * c-decl.c (start_decl): Check for redeclaration of class name.
2236         * c-parse.in (after_type_declarator): Recognize CLASSNAME.
2237
2238 2010-09-29  Steve Ellcey  <sje@cup.hp.com>
2239
2240         * config/ia64/ia64.c (ia64_builtin_decl): New.
2241         (TARGET_BUILTIN_DECL): Define.
2242         (ia64_builtins): New.
2243         (ia64_init_builtins): Save decls in ia64_builtins.
2244
2245 2010-09-29  Bernd Schmidt  <bernds@codesourcery.com>
2246
2247         PR target/40457
2248         * postreload.c (move2add_use_add2_insn): Use full_costs for comparison.
2249         (move2add_use_add3_insn): Likewise.
2250         (reload_cse_move2add): Likewise.
2251         * rtlanal.c (get_full_rtx_cost): New function.
2252         * rtl.h (struct full_rtx_costs): New.
2253         (init_costs_to_max, init_costs_to_zero, costs_lt_p,
2254         costs_add_n_insns): New inline functions.
2255         (get_full_rtx_cost): Declare.
2256
2257         PR c/45054
2258         * reload1.c (replace_pseudos_in): Use eliminate_regs_1, allowing
2259         invariants.  Check for reg_equiv_invariant.
2260         (reload): Assert that spilled_pseudos is empty when returning.
2261
2262 2010-09-29  Kai Tietz  <kai.tietz@onevision.com>
2263
2264         * config/i386/mingw32.h (TARGET_64BIT): replaced by
2265         TARGET_64BIT_DEFAULT in #if check.
2266
2267 2010-09-29  Jack Howarth <howarth@bromo.med.uc.edu>
2268
2269         * varasm.c (assemble_alias): Add error message for unsupported ifunc.
2270
2271 2010-09-29  Mike Stump  <mikestump@comcast.net>
2272
2273         * config/darwin.h (flag_mkernel): Remove.
2274         (flag_apple_kext): Likewise.
2275
2276 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
2277             Jack Howarth <howarth@bromo.med.uc.edu>
2278
2279         * config/darwin.opt (undefined): Add.
2280
2281 2010-09-29  Nathan Sidwell  <nathan@codesourcery.com>
2282
2283         PR testsuite/45664
2284         * configure.ac: Add --enable-indirect-function option.
2285         * config.gcc: Add default_gnu_indirect_function.
2286         * config.in (HAVE_GAS_INDIRECT_FUNCTION): Rename to ...
2287         (HAVE_GNU_INDIRECT_FUNCTION): ... this.
2288         * varasm.c (do_assemble_alias): Adjust for macro name change.
2289         * configure: Rebuilt.
2290         * doc/install.texi: Document --enable-indirect-function.
2291
2292 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
2293
2294         * doc/options.texi (Variable, Var, Init): Update documentation
2295         without reference to VarExists.
2296         (VarExists): Remove.
2297         * common.opt, config/i386/i386.opt, config/linux.opt,
2298         config/rs6000/rs6000.opt, config/sh/sh.opt, config/spu/spu.opt:
2299         Don't use VarExists.
2300
2301 2010-09-29  Joseph Myers  <joseph@codesourcery.com>
2302
2303         * optc-gen.awk: Generate global_options initializer instead of
2304         individual variables.  Add x_ prefix to names of structure members.
2305         * opth-gen.awk: Generate gcc_options structure.  Add x_ prefix to
2306         names of structure members.
2307         * doc/tm.texi.in (HARD_FRAME_POINTER_IS_FRAME_POINTER,
2308         HARD_FRAME_POINTER_IS_ARG_POINTER): Document.
2309         * doc/tm.texi: Regenerate.
2310         * alias.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
2311         * builtins.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
2312         * c-parser.c (disable_extension_diagnostics,
2313         restore_extension_diagnostics): Update names of cpp_options members.
2314         * combine.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
2315         * common.opt (fcompare-debug-second): Don't use Var.
2316         * config/alpha/alpha.h (target_flags): Remove.
2317         * config/arm/arm.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
2318         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
2319         * config/bfin/bfin.h (target_flags): Remove.
2320         * config/cris/cris.h (target_flags): Remove.
2321         * config/i386/i386-c.c (ix86_pragma_target_parse): Update names of
2322         cl_target_option members.
2323         * config/i386/i386.c (ix86_force_align_arg_pointer): Remove.
2324         (ix86_function_specific_print, ix86_valid_target_attribute_tree,
2325         ix86_can_inline_p): Update names of cl_target_option members.
2326         * config/i386/i386.h (ix86_isa_flags): Remove.
2327         * config/lm32/lm32.h (target_flags): Remove.
2328         * config/mcore/mcore.h (mcore_stack_increment): Remove.
2329         * config/mcore/mcore.md (addsi3): Remove extern declaration of
2330         flag_omit_frame_pointer.
2331         * config/mep/mep.h (target_flags): Remove.
2332         * config/mips/mips.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
2333         HARD_FRAME_POINTER_IS_ARG_POINTER): Define.
2334         * config/mmix/mmix.h (target_flags): Remove.
2335         * config/rs6000/rs6000.h (rs6000_xilinx_fpu, flag_pic,
2336         flag_expensive_optimizations): Remove.
2337         * config/s390/s390.h (flag_pic): Remove.
2338         * config/score/score-conv.h (target_flags): Remove.
2339         * config/sh/sh.h (sh_fixed_range_str): Remove.
2340         * config/spu/spu.h (target_flags, spu_fixed_range_string): Remove.
2341         * dbxout.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
2342         * df-scan.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
2343         * diagnostic.c (diagnostic_initialize): Update names of
2344         diagnostic_context members.
2345         * diagnostic.h (diagnostic_context): Rename inhibit_warnings and
2346         warn_system_headers.
2347         (diagnostic_report_warnings_p): Update for new names.
2348         * dwarf2out.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER
2349         * emit-rtl.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER and
2350         HARD_FRAME_POINTER_IS_ARG_POINTER.
2351         * flags.h (flag_compare_debug): Declare.
2352         * ira.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
2353         * opts.c (flag_compare_debug): Define.
2354         (common_handle_option): Update names of diagnostic_context
2355         members.  Handle -fcompare-debug-second.
2356         (fast_math_flags_struct_set_p): Update names of cl_optimization
2357         members.
2358         * reginfo.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
2359         * regrename.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
2360         * reload.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
2361         * reload1.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
2362         * resource.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER.
2363         * rtl.h (HARD_FRAME_POINTER_IS_FRAME_POINTER,
2364         HARD_FRAME_POINTER_IS_ARG_POINTER): Define and use.
2365         * sel-sched.c: Use HARD_FRAME_POINTER_IS_FRAME_POINTER
2366         * stmt.c: Use HARD_FRAME_POINTER_IS_ARG_POINTER.
2367
2368 2010-09-29  Hariharan Sandanagobalane  <hariharan@picochip.com>
2369
2370         * config/picochip/picochip.c (picochip_output_internal_label):
2371         This function can now be called for debug CFI labels, which can come
2372         in the middle of a vliw instruction.  Postpone until end of vliw.
2373
2374 2010-09-29  Richard Guenther  <rguenther@suse.de>
2375
2376         * tree.h (SCOPE_FILE_SCOPE_P): New macro.
2377         (DECL_FILE_SCOPE_P): Use it.
2378         (TYPE_FILE_SCOPE_P): New macro.
2379
2380 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2381
2382         * c-parser.c (c_lex_one_token): In Objective-C, when dealing with
2383         a CPP_NAME which is a reserved word, clearly separate cases for
2384         OBJC_IS_PQ_KEYWORD, OBJC_IS_AT_KEYWORD and OBJC_IS_CXX_KEYWORD.
2385
2386 2010-09-29  Nicola Pero  <nicola.pero@meta-innovation.com>
2387
2388         * c-parser.c (c_lex_one_token): In Objective-C, do not replace
2389         token->value with the canonical spelling.  Do exactly like C and
2390         C++ and leave it as it is.
2391
2392 2010-09-28  Richard Henderson  <rth@redhat.com>
2393
2394         * config/alpha/alpha.c (alpha_builtins): New.
2395         (alpha_builtin_decl, TARGET_BUILTIN_DECL): New.
2396         (alpha_builtin_function): New.
2397         (alpha_add_builtins, alpha_init_builtins): Use it.
2398
2399 2010-09-28  Nicola Pero  <nicola.pero@meta-innovation.com>
2400
2401         * doc/standards.texi (Standards): Expanded the section on
2402         Objective-C and Objective-C++.
2403
2404 2010-09-28  DJ Delorie  <dj@redhat.com>
2405
2406         PR target/45800
2407         * config/m32c/m32c.c (m32c_subreg): Force adjustment of subregs of
2408         volatile MEMs.
2409
2410 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
2411
2412         * c-parser.c (c_parser_declaration_or_fndef): Diagnose incorrect prefix
2413         attributes on methods.
2414          (c_parser_objc_method_definition): Handle attributes.
2415         (c_parser_objc_methodproto): Likewise.
2416         (c_parser_objc_maybe_method_attributes): New.
2417         (c_parser_objc_method_decl): Handle attributes, add a diagnostic for a
2418         missing definition, similar to that in ObjC++.
2419
2420 2010-09-28  Richard Henderson  <rth@redhat.com>
2421
2422         * defaults.h (DWARF2_UNWIND_INFO): Don't depend on TARGET_UNWIND_INFO.
2423         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
2424         (CONFIG_SJLJ_EXCEPTIONS): Remove.
2425         (STACK_OLD_CHECK_PROTECT): Use targetm.except_unwind_info.
2426         (STACK_CHECK_PROTECT): Likewise.
2427         * dwarf2out.c (DWARF2_UNWIND_INFO, DWARF2_FRAME_INFO): Poison.
2428         (dwarf2out_do_frame): Use debug_unwind_info and except_unwind_info.
2429         (dwarf2out_do_cfi_asm, dwarf2out_begin_prologue): Likewise.
2430         (dwarf2out_frame_init, dwarf2out_frame_finish): Likewise.
2431         (dwarf2out_assembly_start): Likewise.
2432         * except.c (init_eh): Use targetm.except_unwind_info.
2433         (finish_eh_generation, gate_convert_to_eh_region_ranges): Likewise.
2434         (output_one_function_exception_table): Likewise.
2435         * final.c: Unconditionally include dwarf2out.h.
2436         (final_start_function): Unconditionally call dwarf2out routines.
2437         (final_end_function, final_scan_insn): Likewise.
2438         * function.c (expand_function_end): Use targetm.except_unwind_info.
2439         * opts.c (decode_options): Use targetm.except_unwind_info.
2440         * system.h (USING_SJLJ_EXCEPTIONS, TARGET_UNWIND_INFO): Poison.
2441         * target.def (debug_unwind_info, except_unwind_info): New.
2442         * target.h (enum unwind_info_type): New.
2443         * targhooks.c (default_debug_unwind_info): New.
2444         (default_except_unwind_info): New.
2445         (dwarf2_except_unwind_info, sjlj_except_unwind_info): New.
2446         * targhooks.h: Declare them.
2447         * tree-tailcall.c: Include "target.h"
2448         (suitable_for_tail_call_opt_p): Use targetm.except_unwind_info.
2449         * Makefile.in (tree-tailcall.o): Update.
2450         * tree.c (build_common_builtin_nodes): Use targetm.except_unwind_info.
2451         (lhd_gcc_personality): Likewise.
2452
2453         * doc/tm.texi.in (TARGET_UNWIND_INFO): Remove.
2454         (TARGET_EXCEPT_UNWIND_INFO): New.
2455         (DWARF2_UNWIND_INFO): Update.
2456         (TARGET_DEBUG_UNWIND_INFO): New.
2457         * doc/tm.texi: Rebuild.
2458
2459         * c-family/c-cppbuiltin.c (c_cpp_builtins): Use
2460         targetm.except_unwind_info.
2461
2462         * config/arm/arm.c (TARGET_EXCEPT_UNWIND_INFO): New.
2463         (arm_except_unwind_info): New.
2464         (arm_compute_func_type): Use it.
2465         (arm_expand_prologue, thumb_pushpop): Likewise.
2466         (thumb1_expand_prologue, thumb1_output_function_prologue): Likewise.
2467         (arm_unwind_emit, arm_output_fn_unwind): Likewise.
2468         * config/arm/bpabi.h (ARM_UNWIND_INFO): Rename from TARGET_UNWIND_INFO.
2469         * config/arm/arm.h (ARM_UNWIND_INFO): Likewise.
2470         (DWARF2_UNWIND_INFO): Remove.
2471         (MUST_USE_SJLJ_EXCEPTIONS): Remove.
2472         (ARM_EABI_UNWIND_TABLES): Remove.
2473
2474         * config/ia64/ia64.c (ia64_debug_unwind_info): New.
2475         (TARGET_DEBUG_UNWIND_INFO, TARGET_EXCEPT_UNWIND_INFO): New.
2476         (ia64_except_unwind_info): New.
2477         (ia64_output_function_prologue): Use it.
2478         (ia64_add_bundle_selector_before): Likewise.
2479         (ia64_reorg, ia64_asm_unwind_emit): Likewise.
2480         * config/ia64/ia64.h (DWARF2_FRAME_INFO): Remove.
2481         (TARGET_UNWIND_INFO): Remove.
2482
2483         * config/pa/pa.c (pa_option_override): Use targetm.except_unwind_info.
2484
2485 2010-09-28  Iain Sandoe  <iains@gcc.gnu.org>
2486
2487         * c-parser.c (c_parser_objc_class_definition): Adjust prototype.
2488         (c_parser_objc_protocol_definition): Likewise.
2489         (c_parser_external_declaration): Provide dummy attribute arguments.
2490         (c_parser_declaration_or_fndef): Parse prefix attributes for ObjC.
2491         (c_parser_objc_class_definition): Handle attributes.
2492         (c_parser_objc_protocol_definition): Likewise.
2493
2494 2010-09-28  Tobias Burnus  <burnus@net-b.de>
2495
2496         PR fortran/40569
2497         PR fortran/40568
2498         * toplev.h (save_decoded_options, save_decoded_options_count):
2499         New global variables.
2500         * toplev.c (save_decoded_options, save_decoded_options_count):
2501         Export variables.
2502
2503 2010-09-28  Ian Lance Taylor  <iant@google.com>
2504
2505         * config/i386/i386.c (ix86_supports_split_stack): Test
2506         HAVE_GAS_CFI_PERSONALITY_DIRECTIVE rather than dwarf2out_do_cfi_asm.
2507
2508 2010-09-28  Ian Lance Taylor  <iant@google.com>
2509
2510         PR target/45815
2511         * opts.c (decode_options): Don't test whether the target supports
2512         split stack if flag_split_stack == 0.
2513
2514 2010-09-28  Jan Hubicka  <jh@suse.cz>
2515
2516         * builtin-attrs.def (ATTR_LEAF): New attribute.
2517         (ATTR_NOVOPS_LEAF_LIST, ATTR_LEAF_LIST, ATTR_NOTHROW_LEAF_LIST,
2518         ATTR_CONST_NOTHROW_LEAF_LIST, ATTR_PURE_NOTHROW_LEAF_LIST,
2519         ATTR_PURE_NOTHROW_NOVOPS_LEAF_LIST, ATTR_NORETURN_NOTHROW_LEAF_LIST,
2520         ATTR_MALLOC_NOTHROW_LEAF_LIST, ATTR_SENTINEL_NOTHROW_LEAF_LIST,
2521         ATTR_NOTHROW_NONNULL_LEAF, ATTR_CONST_NOTHROW_NONNULL_LEAF,
2522         ATTR_CONST_NOTHROW_TYPEGENERIC_LEAF, ATTR_PURE_NOTHROW_NONNULL_LEAF,
2523         ATTR_MALLOC_NOTHROW_NONNULL_LEAF): New attribute lists.
2524         * sync-builtins.def: Annotate all builtins by leaf.
2525         * omp-builtins.def: Annotate all builtins by leaf.
2526         * builtins.def: Annotate relevant builtins with leaf attribute.
2527         (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
2528         ATTR_MATHFN_FPROUNDING_ERRNO, ATTR_MATHFN_FPROUNDING_STORE): Make
2529         leaf.
2530
2531 2010-09-28  Jan Hubicka  <jh@suse.cz>
2532
2533         * tree-ssa-ccp.c (fold_ctor_reference): New function.
2534         (fold_const_aggregate_ref): Use it.
2535         * fold-const.c (canonicalize_constructor_val): Check that we don't fold
2536         into external static.
2537
2538 2010-09-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2539
2540         PR target/44452
2541         * config/i386/i386.opt (mvect8-ret-in-mem): Define.
2542         * config/i386/i386.c (ix86_target_string): Handle -mvect8-ret-in-mem.
2543         (ix86_solaris_return_in_memory): Remove.
2544         * config/i386/i386-protos.h (ix86_solaris_return_in_memory): Remove.
2545         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
2546         (TARGET_SUBTARGET_DEFAULT): Redefine.
2547         * config/i386/sol2-10.h (TARGET_SUBTARGET_DEFAULT): Update comment.
2548         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Remove.
2549         (TARGET_SUBTARGET_DEFAULT): Redefine.
2550         * doc/invoke.texi (Option Summary, i386 and x86-64 Options): Add
2551         -mvect8-ret-in-mem.
2552         (i386 and x86-64 Options): Document -mvect8-ret-in-mem.
2553
2554 2010-09-29  Alan Modra  <amodra@gmail.com>
2555
2556         PR target/45807
2557         * config/rs6000/aix.h (SETUP_FRAME_ADDRESSES): Delete.
2558         * config/rs6000/linux64.h (SETUP_FRAME_ADDRESSES): Delete.
2559         * config/rs6000/rs6000-protos.h (rs6000_aix_emit_builtin_unwind_init):
2560         Delete.
2561         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init): Delete.
2562         (rs6000_emit_prologue): Don't just create frame save info for r2,
2563         actually save r2.
2564
2565 2010-09-28  Richard Henderson  <rth@redhat.com>
2566
2567         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Output 8 bytes
2568         when 8 bytes are requested.
2569
2570 2010-09-28  Tristan Gingold  <gingold@adacore.com>
2571
2572         * config/avr/avr.c (expand_prologue): Set
2573         current_function_static_stack_size.
2574
2575 2010-09-28  Tristan Gingold  <gingold@adacore.com>
2576
2577         * config/alpha/alpha.md: Change the initial condition of the
2578         probing loop.
2579
2580 2010-09-28  Uros Bizjak  <ubizjak@gmail.com>
2581
2582         * config/i386/sse.md (*avx_<umaxmin:code><mode>3):
2583         Split from *avx_<maxmin:code><mode>3.
2584         (*avx_<smaxmin:code><mode>3): Ditto.
2585         * config/i386/i386.md (maxmin): Remove code iterator.
2586
2587 2010-09-27  Ian Lance Taylor  <iant@google.com>
2588
2589         * config/i386/i386.c (ix86_supports_split_stack): -fsplit-stack
2590         requires assembler support for CFI directives.
2591
2592 2010-09-27  Richard Henderson  <rth@redhat.com>
2593
2594         * dwarf2out.c (dwarf2out_cfi_label): Use ASM_OUTPUT_DEBUG_LABEL.
2595
2596 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
2597
2598         * emit-rtl.c (reorder_insns_nobb) [ENABLE_CHECKING]: Sanity-check
2599         that AFTER is not in the range FROM..TO, inclusive.
2600
2601 2010-09-27  Hans-Peter Nilsson  <hp@axis.com>
2602             Bernd Schmidt  <bernds@codesourcery.com>
2603
2604         PR rtl-optimization/45792
2605         * cfgcleanup.c (try_head_merge_bb): New rtx vector nextptr.
2606         If not all insns are to be merged, for each edge, stash the
2607         next candidate after the to-be-merged insns before doing the
2608         merge, and use them for the retry at the new insertion point.
2609         Handle CC0 targets when retrying.
2610
2611 2010-09-27  Ian Lance Taylor  <iant@google.com>
2612
2613         * common.opt (fsplit-stack): New option.
2614         * opts.c (decode_options): Set flag_split_stack to final value.
2615         * target.def (supports_split_stack): New hook.
2616         * gcc.c (STACK_SPLIT_SPEC): Define.
2617         (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
2618         * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
2619         (Code Gen Options): Document -fsplit-stack.
2620         * doc/extend.texi (Function Attributes): Mention no_split_stack.
2621         (Function Attributes): Document no_split_stack.
2622         * doc/tm.texi.in (Stack Smashing Protection): Add @hook
2623         TARGET_SUPPORTS_SPLIT_STACK.
2624         * doc/tm.texi: Rebuild.
2625         * function.c (thread_prologue_and_epilogue_insns): If
2626         flag_split_stack, add split stack prologue.
2627         * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
2628         * varasm.c (saw_no_split_stack): New static variable.
2629         (assemble_start_function): Set saw_no_split_stack if the function
2630         has the no_split_stack attribute.
2631         (file_end_indicate_split_stack): New function.
2632         * output.h (file_end_indicate_split_stack): Declare.
2633         * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
2634         and function.
2635         * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
2636         routines.
2637         * config/i386/i386.c (ix86_option_override_internal): Don't set
2638         expand_builtin_va_start to NULL if -fsplit-stack.
2639         (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
2640         -fsplit-stack.
2641         (ix86_va_start): If -fsplit-stack, get overflow pointer from
2642         scratch register set by prologue.
2643         (ix86_code_end): If -fsplit-stack, call
2644         file_end_indicate_split_stack.
2645         (ix86_supports_split_stack): New static function.
2646         (SPLIT_STACK_AVAILABLE): Define.
2647         (split_stack_prologue_scratch_regno): New static function.
2648         (split_stack_fn): New static variable.
2649         (ix86_expand_split_stack_prologue): New function.
2650         (ix86_live_on_entry): New static function.
2651         (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
2652         (output_pic_addr_const): Likewise.
2653         (i386_asm_output_addr_const_extra): Likewise.
2654         (ix86_expand_call): Change return type to rtx.  Return the new
2655         call instruction.
2656         (TARGET_SUPPORTS_SPLIT_STACK): Define.
2657         (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
2658         * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
2659         (split_stack_prologue, split_stack_return): New insns.
2660         (split_stack_space_check): New insn.
2661         * config/i386/i386.h (struct machine_function): Add
2662         split_stack_varargs_pointer field.
2663         * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
2664         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
2665         * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
2666         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
2667         * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
2668         Declare.
2669         (ix86_expand_call): Update declaration.
2670
2671 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
2672
2673         * doc/objc.texi (Type encoding): Added the new 'long double' (D)
2674         code.  Added byref, which was missing in the list of codes.
2675         Explain that enumeration values are encoded as the integer type
2676         that the compiler uses to store them.  Explain and make examples
2677         of how 'const' interacts with pointers, and the complication of
2678         the encoding of 'const char *'.
2679         (Legacy type encoding): New subsection, explaining that GCC emits
2680         incorrect type encodings for the NeXT runtime for compatibility
2681         reasons.
2682         (@@encode): New subsection, explaining @encode and particularly
2683         that protocol qualifiers are not recognized inside an @encode()
2684         expression.
2685         (Method signatures): New subsection, explaining how method
2686         signatures are encoded.
2687
2688 2010-09-27  Nicola Pero  <nicola.pero@meta-innovation.com>
2689
2690         Merge from 'apple/trunk' branch on FSF servers.  Removed small
2691         change in build_conditional_expr that had been added when fixing
2692         PR objc/27377 and which did the same check in a less complete way.
2693
2694         2005-12-15  Fariborz Jahanian <fjahanian@apple.com>
2695
2696         Radar 4229905
2697         * c-typeck.c (build_conditional_expr): Call objc_have_common_type when
2698         looking for objective-c common pointer types.
2699
2700         2005-06-22  Ziemowit Laski  <zlaski@apple.com>
2701
2702         Radar 4154928
2703         * c-typeck.c (build_conditional_expr): For two ObjC pointer types,
2704         use their ObjC common type.
2705
2706 2010-09-27  Richard Guenther  <rguenther@suse.de>
2707
2708         * dbxout.c (dbxout_symbol): Use DECL_FILE_SCOPE_P.
2709
2710 2010-09-27  Jie Zhang  <jie@codesourcery.com>
2711
2712         * print-tree.c (print_node): Print in-constant-pool.
2713
2714 2010-09-27  Uros Bizjak  <ubizjak@gmail.com>
2715
2716         * config/i386/i386.h (CLASS_MAX_NREGS): Also handle XCmode.
2717         (UNITS_PER_WORD): Define only when IN_LIBGCC2 is undefined.
2718         (MOVE_MAX_PIECES): Redefine using UNITS_PER_WORD.
2719         (ASM_OUTPUT_AVX_PREFIX): Simplify pointer addition.
2720
2721 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
2722
2723         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_add): Merge
2724         from pro_epilogue_adjust_stack_<mode>_{1,2}.
2725         (pro_epilogue_adjust_stack_<mode>_add): Rename from
2726         pro_epilogue_adjust_stack_<mode>_3.
2727         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for
2728         renamed pro_epilogue_adjust_stack_{si,di}_add.
2729         (ix86_expand_prologue): Use indirect functions.  Update for renamed
2730         pro_epilogue_adjust_stack_{si,di}_sub.
2731
2732 2010-09-26  Uros Bizjak  <ubizjak@gmail.com>
2733
2734         * config/i386/i386.md (movmsk_df): New insn.
2735         (signbitdf): Split out of signbit<mode>2.  Generate movmsk_df
2736         sequence for TARGET_SSE_MATH.
2737
2738 2010-09-26  Richard Sandiford  <rdsandiford@googlemail.com>
2739
2740         * config/mips/mips.c (mips_builtin_decls): Declare.
2741         (mips_init_builtins): Store function declarations in
2742         mips_builtin_decls.
2743         (mips_builtin_decl): New function.
2744         (TARGET_BUILTIN_DECL): Define.
2745
2746 2010-09-25  Kai Tietz  <kai.tietz@onevision.com>
2747             Richard Henderson  <rth@redhat.com>
2748
2749         * config/i386/cygwin.asm: Include auto-host.h.
2750         (cfi_startproc, cfi_endproc, cfi_adjust_cfa_offset,
2751         cfi_def_cfa_register, cfi_register, cfi_push, cfi_pop): New macros.
2752         (__chkstk, __alloca): Annotate for dwarf2 unwind info.  Drop
2753         alignment code from the 64-bit path.  Use gas local labels.
2754         * config/i386/i386.md (pro_epilogue_adjust_stack_<mode>_2): Macroize
2755         from _di_2.  Remove the useless constant integer argument.
2756         (pro_epilogue_adjust_stack_<mode>_3): New.
2757         (allocate_stack_worker_probe_<mode>): Macroize from
2758         allocate_stack_worker_{32,64}.  Use __chkstk_ms.  Update all users.
2759         * config/i386/i386.c (ix86_expand_prologue): Use __chkstk_ms;
2760         use gen_pro_epilogue_adjust_stack_*_3 and annotate it.
2761         (__chkstk_ms): New function.
2762         * config/i386/t-cygming (LIB1ASMFUNCS): Add _chkstk_ms.
2763         * gcc/config/i386/t-interix: Likewise.
2764         * configure.ac (HAVE_GAS_CFI_DIRECTIVE): Export for target.
2765         (HAVE_GAS_CFI_PERSONALITY_DIRECTIVE): Likewise.
2766         (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): Likewise.
2767         * configure, config.in: Rebuild.
2768
2769 2010-09-25  Eric Botcazou  <ebotcazou@adacore.com>
2770
2771         * tree-inline.c (copy_bb): Use GSI_CONTINUE_LINKING when inserting new
2772         statements because of the return slot optimization.
2773
2774 2010-09-25  Anatoly Sokolov  <aesok@post.ru>
2775
2776         * config/avr/avr.h (CLASS_LIKELY_SPILLED_P): Remove.
2777         * config/avr/avr-protos.h (class_likely_spilled_p): Remove.
2778         * config/avr/avr.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
2779         (class_likely_spilled_p): Rename to...
2780         (avr_class_likely_spilled_p): ...this. Make static. Change argument
2781         type to reg_class_t.
2782
2783 2010-09-24  Jan Hubicka  <jh@suse.cz>
2784
2785         * lto-symtab.c (lto_symtab_entry_def): Add guessed field.
2786         (lto_symtab_resolve_symbols): Set it.
2787         (lto_symtab_merge_decls_1): Do not compute used_from_object_file;
2788         store resolution field in cgraph/varpool.
2789         * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node.
2790         (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify.
2791         (cgraph_dump_node): Drop used_from_object_file.
2792         (cgraph_clone_node, cgraph_create_virtual_clone): Likewise.
2793         (cgraph_function_body_availability): Use decl_replaceable_p.
2794         (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY.
2795         (cgraph_can_remove_if_no_direct_calls_and_refs): Use
2796         cgraph_used_from_object_file_p.
2797         (cgraph_will_be_removed_from_program_if_no_direct_calls): Use
2798         cgraph_used_from_object_file_p.
2799         (resolution_used_from_other_file_p): New functoin.
2800         (cgraph_used_from_object_file_p): New predicate.
2801         * cgraph.h: Include plugin-api.h
2802         (struct cgraph_local_info): Remove used_from_object_file.
2803         (struct cgraph_node): Add resolution field.
2804         (struct varpool_node): Likewise; remove used_from_object_file;
2805         reove const_value_known.
2806         (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node,
2807         cgraph_same_body_alias, cgraph_add_thunk): Update prototypes.
2808         (resolution_used_from_other_file_p, cgraph_used_from_object_file_p,
2809         varpool_used_from_object_file_p): Declare.
2810         (varpool_get_node, varpool_extra_name_alias): Update prototype.
2811         * tree.h (DECL_REPLACEABLE_P): Remove.
2812         (decl_replaceable_p, decl_binds_to_current_def_p): Declare.
2813         * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p.
2814         * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
2815         input_overwrite_node, input_node, input_varpool_node): Stream
2816         resolution.
2817         * expr.c (expand_expr_real_1): Use const_value_known_p
2818         * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set
2819         const_value_known.
2820         (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p.
2821         (function_and_variable_visibility): Set resolution for local vars
2822         and functions; use varpool_used_from_object_file_p.
2823         * varasm.c (resolution_to_local_definition_p, resolution_local_p): New
2824         static functions.
2825         (default_binds_local_p_1): Use resolutoin info.
2826         (decl_binds_to_current_def_p, decl_replaceable_p): New functions.
2827         * varpool.c (varpool_get_node): Constify.
2828         (const_value_known_p): Do not use vnode->const_value_known;
2829         use decl_replaceable_p.
2830         (varpool_finalize_decl): Do not set const_value_known.
2831         (cgraph_variable_initializer_availability): Use decl_replaceable_p
2832         (varpool_extra_name_alias): Return new node.
2833         (varpool_used_from_object_file_p): New function.
2834
2835 2010-09-24  Richard Henderson  <rth@redhat.com>
2836
2837         * config/ia64/ia64.c (ia64_dwarf_handle_frame_unspec): New.
2838         (TARGET_DWARF_HANDLE_FRAME_UNSPEC): New.
2839         (do_spill): Use REG_CFA_OFFSET.
2840         (ia64_expand_prologue): Use REG_CFA_ADJUST_CFA and REG_CFA_REGISTER
2841         as appropriate.
2842         (ia64_expand_epilogue): Likewise.
2843         (process_set): Split into ...
2844         (process_cfa_adjust_cfa): this,
2845         (process_cfa_register): this,
2846         (process_cfa_offset): and this new function.
2847         (ia64_asm_unwind_emit): Use them.  Expect REG_CFA_* notes
2848         instead of REG_FRAME_RELATED_EXPR.
2849
2850 2010-09-24  Olivier Hainque  <hainque@adacore.com>
2851
2852         * config/i386/vx-common.h (DBX_REGISTER_NUMBER): Reinstate.
2853
2854 2010-09-24  Jan Hubicka  <jh@suse.cz>
2855
2856         * doc/extend.texi: (attribute leaf): Document.
2857         * tree.c (local_define_builtin): Handle ECF_LEAF.
2858         (build_common_builtin_nodes): Set ECF_LEAF where needed.
2859         * tree.h (ECF_LEAF): New.
2860         * ipa-reference.c (propagate_bits): For leaf calls propagate ever
2861         overwrittable and unavailable functions.
2862         (ipa_init): Put all_module_statics into optimization_summary_obstack.
2863         (copy_global_bitmap): Do not copy all_module_statics.
2864         (read_write_all_from_decl): Use cgraph_node argument; handle ECF_LEAF.
2865         (propagate): Handle overwritable and unavailable leaf functions;
2866         initialize global info for overwritable and unavailable leaf functions;
2867         do not free all module statics.
2868         (ipa_reference_get_not_{read,written}_global): Leaf calls don't clobber
2869         local statics.
2870         * calls.c (flags_from_decl_or_type): Handle leaf.
2871         * tree-cfg.c (stmt_can_make_abnormal_goto): Leaf functions can't do
2872         abnormal gotos.
2873
2874 2010-09-24  Basile Starynkevitch  <basile@starynkevitch.net>
2875
2876         * gengtype.c: Reindented.
2877         * gengtype.h: Reindented.
2878         * gengtype-parse.c: Reindented.
2879
2880 2010-09-24  Jan Hubicka  <jh@suse.cz>
2881
2882         PR tree-optimization/45738
2883         PR tree-optimization/45741
2884         * expr.c (string_constant): Allow CONST_DECL too;
2885         check that DECL_INITIAL is set.
2886         * varpool.c (const_value_known_p): Only look into VAR_DECL
2887         and CONST_DECL.
2888
2889 2010-09-24  Joseph Myers  <joseph@codesourcery.com>
2890
2891         * common.opt (undef): New.
2892
2893 2010-09-24  Jakub Jelinek  <jakub@redhat.com>
2894
2895         PR middle-end/45234
2896         * rtl.h (enum global_rtl_index): Add
2897         GR_VIRTUAL_PREFERRED_STACK_BOUNDARY.
2898         (LAST_VIRTUAL_POINTER_REGISTER): Define.
2899         (virtual_preferred_stack_boundary_rtx,
2900         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM): Define.
2901         (LAST_VIRTUAL_REGISTER): Increase by one.
2902         (REGNO_PTR_FRAME_P): Use LAST_VIRTUAL_POINTER_REGISTER
2903         instead of LAST_VIRTUAL_REGISTER.
2904         * function.c (instantiate_new_reg): Handle
2905         virtual_preferred_stack_boundary_rtx.
2906         * emit-rtl.c (init_virtual_regs): Handle
2907         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
2908         (init_emit_regs): Initialize virtual_preferred_stack_boundary_rtx.
2909         * explow.c (round_push): If crtl->preferred_stack_boundary
2910         is smaller than MAX_SUPPORTED_STACK_ALIGNMENT, use
2911         virtual_preferred_stack_boundary_rtx alignment instead of
2912         crtl->preferred_stack_boundary alignment.
2913         (allocate_dynamic_stack_space): Use CONST_INT_P and REG_P
2914         macros.  Never decrease crtl->preferred_stack_boundary,
2915         use crtl->preferred_stack_boundary or MAX_SUPPORTED_STACK_ALIGNMENT
2916         instead of PREFERRED_STACK_BOUNDARY.  Don't modify
2917         stack_pointer_delta in dynamic allocation, even when size
2918         is constant.
2919         (probe_stack_range, anti_adjust_stack_and_probe): Use CONST_INT_P
2920         macro.
2921         * print-rtl.c (print_rtx): Handle
2922         VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM.
2923         * config/alpha/alpha.h (NONSTRICT_REG_OK_FP_BASE_P): Use
2924         LAST_VIRTUAL_POINTER_REGISTER instead of LAST_VIRTUAL_REGISTER.
2925         * config/frv/frv.c (frv_emit_movsi): Likewise.
2926         * config/arm/arm.c (thumb1_legitimate_address_p): Likewise.
2927         * config/rs6000/rs6000.c (virtual_stack_registers_memory_p):
2928         Likewise.
2929
2930         Revert:
2931         2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
2932
2933         PR middle-end/45234
2934         * calls.c (expand_call): Make sure that all variable sized
2935         adjustments are multiple of preferred stack boundary after
2936         stack alignment.
2937
2938 2010-09-24  Iain Sandoe  <iains@gcc.gnu.org>
2939             Dominique Dhumieres  <dominiq@lps.ens.fr>
2940
2941         PR bootstrap/45751
2942         * gcc/config/darwin-driver.c (darwin_default_min_version):
2943         Adjust size passed to memcpy in two places.
2944
2945 2010-09-24  Richard Guenther  <rguenther@suse.de>
2946
2947         * c-decl.c (pop_scope): Always set file-scope DECL_CONTEXT.
2948         Make sure to not call set_type_context with error_mark_node.
2949         * langhooks.c (lhd_set_decl_assembler_name): Use DECL_FILE_SCOPE_P.
2950
2951 2010-09-24  Richard Guenther  <rguenther@suse.de>
2952
2953         * Makefile.in (OBJS-onestep): Remove.
2954         (ALL_HOST_BACKEND_OBJS): Remove libbackend.o.
2955         (libbackend.a): Remove onestep support.
2956         (libbackend.o): Remove.
2957         * configure.ac (--enable-intermodule): Remove.
2958         * configure: Regenerate.
2959
2960 2010-09-24  Bernd Schmidt  <bernds@codesourcery.com>
2961
2962         * cfgcleanup.c (flow_find_head_matching_sequence): Terminate when
2963         reaching the end of a block if it occurs at a DEBUG_INSN.
2964
2965 2010-09-09  Tristan Gingold  <gingold@adacore.com>
2966
2967         PR target/44242
2968         * config/vms/vms-crt0-64.c: Removed.
2969         * config/vms/vms-crt0.c: Removed.
2970         * config/vms/vms-psxcrt0-64.c: Removed.
2971         * config/vms/vms-psxcrt0.c: Removed.
2972         * config/vms/vms-ucrt0.c: New file.
2973         * config/vms/t-vms64: Removed.
2974         * config/vms/t-vms (VMS_EXTRA_PARTS): Uncomment it.  Remove DECC.
2975         Use $(GCC_FOR_TARGET) to build pcrt0.o and vcrt0.o
2976         * config.gcc (alpha-dec-vms): Use t-vms.
2977
2978 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
2979
2980         * doc/invoke.texi (-fno-nil-receivers): Tidied up line to remove
2981         underfull hbox in DVI output.
2982         (-fobjc-class-cxx-cdtors): Same change.
2983         (-fobjc-exceptions): Tidied up documentation.  Explain what the
2984         option does, but moved the (lenghty) description of the exception
2985         syntax into objc.texi.
2986         (-fobjc-gc): Explain that the option is not useful with the GNU
2987         runtime.
2988         (-fzero-link): Explain that the GNU runtime always works in
2989         "zero-link" mode.
2990         * doc/objc.texi: All sections: simplified @node declarations
2991         removing specification of next, previous, up node.
2992         (Objective-C): Updated introduction.
2993         (Garbage Collection): Updated.  The bohem-gc library is now
2994         included in gcc itself.  Mention that this section only applies to
2995         the GNU Objective-C runtime.
2996         (compatibility_alias): Small tidy up.
2997         (Exceptions): New section mostly containing text previously in the
2998         description of the -fobjc-exception command-line option.
2999         (Synchronization): Same.
3000
3001 2010-09-24  Uros Bizjak  <ubizjak@gmail.com>
3002
3003         * config/i386/i386.md (ix86_code_end): Move the initialization of
3004         xops array near the consumer.  Use AX_REG and SP_REG instead of
3005         numerical constants.
3006
3007 2010-09-24  Nicola Pero  <nicola.pero@meta-innovation.com>
3008
3009         * c-typeck.c (convert_arguments): Use warning 'too many arguments to
3010         method [methodname]' for an Objective-C method instead of the less
3011         satisfactory 'too many arguments to function' (with no method name).
3012
3013 2010-09-23  Eric Botcazou  <ebotcazou@adacore.com>
3014
3015         * tree-flow.h (execute_update_addresses_taken): Remove parameter.
3016         * tree-ssa.c (maybe_optimize_var): Tweak comment and dump messages.
3017         (execute_update_addresses_taken): Remove parameter.  Execute the
3018         optimization unconditionally.
3019         * passes.c (execute_function_todo): Call execute_update_addresses_taken
3020         unconditionally if TODO_rebuild_alias is set, else only when optimizing
3021         if TODO_update_address_taken is set.
3022
3023 2010-09-23  Anatoly Sokolov  <aesok@post.ru>
3024
3025         * config/arm/arm.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
3026         * config/arm/arm-protos.h (arm_output_addr_const_extra): Remove.
3027         * config/arm/arm.c (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3028         (arm_output_addr_const_extra): Make static.
3029
3030 2010-09-23  Uros Bizjak  <ubizjak@gmail.com>
3031
3032         * config/i386/i386.md (UNSPECV_NOPS): Rename from UNSPEC_NOPS and
3033         define as unspec_volatile.
3034         ("nops"): Define as unspec_volatile. Use fputs to write to
3035         asm_out_file directly.  Output NOPs on separate lines using while loop.
3036         * config/i386/i386.c (ix86_code_end): Use fputs to write to
3037         asm_out_file directly.  Output NOPs on separate lines using while loop.
3038
3039 2010-09-23  Richard Guenther  <rguenther@suse.de>
3040
3041         PR tree-optimization/45565
3042         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
3043         Make sure to adjust the fndecl before replacing the stmt.
3044
3045 2010-09-23  Richard Guenther  <rguenther@suse.de>
3046
3047         PR middle-end/45750
3048         * gimplify.c (gimplify_expr): Properly pass on GS_ERROR when
3049         gimplifying MEM_REF.
3050
3051 2010-09-23  Alan Modra  <amodra@gmail.com>
3052
3053         * config/rs6000/rs6000.c (toc_relative_ok): Delete.
3054         (rs6000_emit_move): Use SYMBOL_REF_LOCAL_P instead.
3055
3056 2010-09-23  Bernd Schmidt  <bernds@codesourcery.com>
3057
3058         PR rtl-optimization/44374
3059         * basic-block.h (enum bb_flags): Add BB_MODIFIED.
3060         * df-core.c (df_set_bb_dirty): Set it.
3061         * ifcvt.c (find_memory): Remove function.
3062         (dead_or_predicable): Use can_move_insns_across.
3063         * df.h (can_move_insns_across): Declare function.
3064         * cfgcleanup.c (block_was_dirty): New static variable.
3065         (try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
3066         than df_get_bb_dirty.
3067         (try_head_merge_bb): New static function.
3068         (try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
3069         is set.
3070         * df-problems.c: Include "target.h"
3071         (df_simulate_find_uses): New static function.
3072         (MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
3073         (find_memory, find_memory_store): New static functions.
3074         (can_move_insns_across): New function.
3075         * Makefile.in (df-problems.o): Update dependencies.
3076
3077 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
3078
3079         PR java/44095
3080         * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch
3081         is specified and the suffix of the file isn't ".c".
3082         * config/sparc/linux64.h (ASM_SPEC): Likewise.
3083
3084 2010-09-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3085
3086         * doc/contrib.texi (Contributors): Allow URL to wrap in PDF output.
3087         * doc/cppopts.texi: Fix markup of index entry.
3088         * doc/extend.texi (Constructing Calls): Fix markup of
3089         __builtin_va_arg_pack and __builtin_va_arg_pack_len definition.
3090         (Conditionals, C++ Comments, Pragmas, Unnamed Fields, Thread-Local)
3091         (Vague Linkage, C++ Attributes): Fix markup of index entries and
3092         keywords.
3093         * doc/invoke.texi (Option Summary): Fix spacing.  Rewrap to
3094         avoid long lines.
3095         (C Dialect Options, C++ Dialect Options, Warning Options)
3096         (Debugging Options, Spec Files, Darwin Options)
3097         (i386 and x86-64 Options, MIPS Options)
3098         (RS/6000 and PowerPC Options, Code Gen Options): Fix markup of
3099         index entries, avoid abbreviations, allow URLs to wrap, avoid
3100         long lines, avoid overlong pages from long @itemx lists.
3101         * doc/objc.texi (Garbage Collection): Allow URLs to wrap.
3102         * doc/standards.texi (Standards): Likewise.
3103         * doc/trouble.texi (Incompatibilities): Fix markup of index entry.
3104
3105 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
3106
3107         * opts-common.c (prune_options): Make static.  Work with decoded
3108         options.
3109         (decode_cmdline_options_to_array): Call prune_options.  Don't
3110         resize option array here.
3111         * opts.h (prune_options): Remove prototype.
3112         * gcc.c (process_command): Take decoded options; don't call
3113         decode_cmdline_options_to_array here.  Use decoded options for argv[0].
3114         (main): Call decode_cmdline_options_to_array here instead of
3115         prune_options.  Update call to process_command.
3116         * config/darwin-driver.c: Include opts.h.
3117         (darwin_default_min_version): Work with decoded options.  Don't
3118         handle -b or -V here.
3119         * config/darwin.h (darwin_default_min_version): Update prototype.
3120         (GCC_DRIVER_HOST_INITIALIZATION): Update call to
3121         darwin_default_min_version.
3122         * config/i386/cygwin.h (mingw_scan): Update prototype.
3123         (GCC_DRIVER_HOST_INITIALIZATION): Update call to mingw_scan.
3124         * config/i386/cygwin1.c: Include opts.h.
3125         (mingw_scan): Work with decoded options.
3126         * config/i386/t-cygwin (cygwin1.o): Update dependencies.
3127         * config/t-darwin (darwin-driver.o): Update dependencies.
3128
3129 2010-09-22  Joseph Myers  <joseph@codesourcery.com>
3130
3131         * common.opt (-assemble, -compile, -coverage, -debug, -dump,
3132         -dump=, -dumpbase, -dumpdir, -entry, -entry=, -extra-warnings,
3133         -for-assembler, -for-assembler=, -for-linker, -for-linker=,
3134         -force-link, -force-link=, -language, -language=,
3135         -library-directory, -library-directory=, -no-canonical-prefixes,
3136         -no-standard-libraries, -no-warnings, -optimize, -output,
3137         -output=, -pass-exit-codes, -pedantic, -pedantic-errors, -pie,
3138         -pipe, -prefix, -prefix=, -preprocess, -print-file-name,
3139         -print-file-name=, -print-libgcc-file-name,
3140         -print-multi-directory, -print-multi-lib,
3141         -print-multi-os-directory, -print-prog-name, -print-prog-name=,
3142         -print-search-dirs, -print-sysroot, -print-sysroot-headers-suffix,
3143         -profile, -save-temps, -shared, -specs, -specs=, -static,
3144         -symbolic, -time, -verbose, -param=, -sysroot, coverage, e, u,
3145         symbolic): New.
3146         (fhelp, fhelp=, ftarget-help, fversion): Make into aliases.
3147         * gcc.c (A Short Introduction to Adding a Command-Line Option):
3148         Remove comment.
3149         (cc1_options): Correct specs for passing down --help,
3150         --target-help and --help=*.  Add spec for passing down --version.
3151         (struct option_map, option_map, target_option_translations,
3152         translate_options): Remove.
3153         (driver_handle_option): Handle OPT__version, OPT__help, OPT__help_
3154         and OPT__target_help instead of OPT_fversion, OPT_fhelp,
3155         OPT_fhelp_ and OPT_ftarget_help.
3156         (process_command): Don't call translate_options.  Call
3157         decode_cmdline_options_to_array before checking for
3158         -no-canonical-prefixes using decoded options.
3159         * opts-common.c (tm.h): Update comment on #include.
3160         (find_opt): Allow abbreviations of long options.
3161         (struct option_map, option_map): New.
3162         (decode_cmdline_option): Use them instead of hardcoding -Wno, -fno
3163         and -mno handling.
3164         (target_option_translations): New.
3165         (decode_cmdline_options_to_array): Handle
3166         TARGET_OPTION_TRANSLATE_TABLE in driver.
3167         * opts.c (common_handle_option): Don't handle OPT_fhelp,
3168         OPT_ftarget_help, OPT_fhelp_ or OPT_fversion.
3169
3170 2010-09-22  Richard Guenther  <rguenther@suse.de>
3171
3172         * tree-inline.c (optimize_inline_calls): Schedule cleanups
3173         only if we inlined something.  Block compaction and conditional
3174         folding are done by cfg cleanup.  Schedule update-address-taken.
3175         (tree_function_versioning): Remove redundant call to number_blocks.
3176         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Conditional
3177         folding is done by cfg cleanup.
3178         * passes.c (init_optimization_passes): Remove update-address-taken
3179         pass after IPA inlining.
3180
3181 2010-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
3182
3183         * postreload.c (move2add_note_store): Add reg_symbol_ref[] checks
3184         to update conditions. Fix reg_mode[] check.
3185
3186 2010-09-22  Hariharan Sandanagobalane  <hariharan@picochip.com>
3187
3188         * config/picochip/picochip.md (movhicc): Use expand to check whether
3189         movhicc is available and split it after reload.
3190
3191 2010-09-22  Richard Guenther  <rguenther@suse.de>
3192
3193         * tree-ssanames.c (release_dead_ssa_names): Do not remove
3194         callee edges here.
3195         * passes.c (init_optimization_passes): Remove early CFG cleanup.
3196         * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove.
3197         (pass_cleanup_cfg): Likewise.
3198         (execute_fixup_cfg): Cleanup.
3199         * tree-pass.h (pass_cleanup_cfg): Remove.
3200
3201 2010-09-22  Martin Jambor  <mjambor@suse.cz>
3202
3203         * gimple-fold.c (fold_gimple_call): New parameter inplace, do not fold
3204         builtins if it is true.
3205         (fold_stmt_1): Call, fold_gimple_call always, pass inplace as a
3206         parameter.
3207
3208 2010-09-22  Martin Jambor  <mjambor@suse.cz>
3209
3210         * tree-sra.c (struct access): New field grp_no_warning.
3211         (create_access_replacement): Set TREE_NO_WARNING according to
3212          grp_no_warning.
3213         (create_artificial_child_access): Use build_ref_for_model and set
3214         grp_no_warning if build_user_friendly_ref_for_offset fails.
3215         (propagate_subaccesses_across_link): Likewise.
3216
3217 2010-09-22  Eric Botcazou  <ebotcazou@adacore.com>
3218
3219         PR target/35664
3220         * config/sparc/constraints.md ('e'): Return NO_REGS if !TARGET_FPU.
3221         ('f'): Likewise.
3222
3223 2010-09-22  Tristan Gingold  <gingold@adacore.com>
3224
3225         * config/alpha/alpha.c (alpha_use_linkage): Initialize target field.
3226
3227 2010-09-22  Uros Bizjak  <ubizjak@gmail.com>
3228
3229         * config/i386/i386.h (MAX_STRINGOP_ALGS): Fix typo in the name.
3230         * config/i386/i386.c (decide_alg): Update for rename.
3231
3232 2010-09-22  Jakub Jelinek  <jakub@redhat.com>
3233
3234         PR rtl-optimization/45739
3235         * simplify-rtx.c (simplify_binary_operation_1): Optimize even
3236         vector mode | CONST0_RTX (mode) and ^ CONST0_RTX (mode).
3237
3238 2010-09-21  Anatoly Sokolov  <aesok@post.ru>
3239
3240         * config/rs6000/rs6000.h (OUTPUT_ADDR_CONST_EXTRA): Remove macros.
3241         * config/rs6000/rs6000-protos.h (rs6000_output_addr_const_extra):
3242         Remove.
3243         * config/rs6000/rs6000.c (rs6000_output_addr_const_extra): Make static.
3244         (TTARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
3245
3246 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
3247
3248         PR objc/23710
3249         * c-parser.c (c_parser_objc_method_definition): Check the return
3250         value of objc_start_method_definition and if false is returned,
3251         parse the method definition but emit no code.
3252
3253 2010-09-21  Nicola Pero  <nicola.pero@meta-innovation.com>
3254
3255         PR objc/25965
3256         * c-decl.c (detect_field_duplicates): If compiling Objective-C,
3257         call objc_get_interface_ivars ().
3258
3259 2010-09-21  Kai Tietz  <kai.tietz@onevision.com>
3260
3261         PR target/45694
3262         * config/i386/i386.c (ix86_expand_prologue): Save r10 in case that
3263         static chain-register is used for 64-bit.
3264
3265 2010-09-21  Richard Guenther  <rguenther@suse.de>
3266
3267         * dwarf2out.c (is_cu_die): New function.
3268         (add_pubtype): Use it.
3269         (gen_subprogram_die): Likewise.
3270         (gen_struct_or_union_type_die): Likewise.
3271         (dwarf2out_finish): Likewise.
3272         (comp_unit_die): Rename to ...
3273         (single_comp_unit_die): ... this.
3274         (comp_unit_die): New function lazily constructing and
3275         returning single_comp_unit_die.
3276         (is_cxx, is_fortran, is_ada, debug_dwarf, break_out_comdat_types,
3277         base_type_die, subrange_type_die, modified_type_die,
3278         lower_bound_default, add_bound_info, add_prototyped_attribute,
3279         dwarf2out_vms_debug_main_pointer, scope_die_for, retry_incomplete_types,
3280         dwarf2out_abstract_function, gen_type_die_with_usage, get_context_die,
3281         force_decl_die, gen_namespace_die, dwarf2out_decl,
3282         dwarf2out_start_source_file, dwarf2out_end_source_file,
3283         prune_unused_types, dwarf2out_finish): Use it.
3284         (gen_compile_unit_die): For GNU GIMPLE derive DW_AT_language from
3285         the global list of translation-unit decls.
3286         (dwarf2out_init): Do not create single_comp_unit_die here.
3287         (force_decl_die): Handle TRANSLATION_UNIT_DECL.
3288
3289 2010-09-21  Richard Guenther  <rguenther@suse.de>
3290
3291         * dwarf2out.c (dwarf2out_decl): Do not always generate a DIE
3292         for bool for C++.
3293
3294 2010-09-21  Bernd Schmidt  <bernds@codesourcery.com>
3295
3296         * config/arm/iterators.md (qhs_extenddi_op): New mode_attr.
3297         (qhs_extenddi_cstr): Likewise.
3298         * config/arm/arm.md (zero_extend<mode>di2, extend<mode>di2): Use
3299         them for the source operand.
3300
3301 2010-09-21  Uros Bizjak  <ubizjak@gmail.com>
3302
3303         * config/i386/i386.c (ix86_split_ashl): Rename single_width variable
3304         to half_width.  Use GET_MODE_BITSIZE to calculate mode size.
3305         (ix86_split_ashr): Ditto.
3306         (ix86_split_lshr): Ditto.
3307
3308 2010-09-21  Richard Guenther  <rguenther@suse.de>
3309
3310         PR tree-optimization/45580
3311         * tree-ssa-propagate.c (substitute_and_fold): Always replace
3312         regular uses.
3313         * gimple-fold.c (gimple_fold_obj_type_ref): For a BINFO without
3314         virtuals fold the call into a regular indirect one.
3315
3316 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
3317
3318         PR rtl-optimization/42775
3319         * cfgrtl.c (rest_of_pass_free_cfg): Recompute notes if delay slot
3320         scheduling is enabled.
3321
3322 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
3323
3324         PR rtl-optimization/45728
3325         * expr.c (expand_expr_real_1): If op0 isn't REG or MEM, try
3326         gen_lowpart_common first and if that fails, force_reg first
3327         before calling gen_lowpart.
3328
3329         PR middle-end/45678
3330         * cfgexpand.c (expand_one_stack_var_at): Use
3331         crtl->max_used_stack_slot_alignment as max_align, instead
3332         of maximum of that and PREFERRED_STACK_BOUNDARY.
3333         Don't call update_stack_alignment.
3334
3335 2010-09-20  Eric Botcazou  <ebotcazou@adacore.com>
3336
3337         * langhooks.h (struct lang_hooks_for_types): Remove hash_types field.
3338         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): Delete.
3339         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remove LANG_HOOKS_HASH_TYPES.
3340         * system.h (LANG_HOOKS_HASH_TYPES): Poison.
3341         * tree.c (type_hash_canon): Do not test lang_hooks.types.hash_types.
3342         (build_nonstandard_integer_type): Likewise.
3343         (build_range_type_1): New function, built from...
3344         (build_range_type): ...this.  Call build_range_type_1.
3345         (build_nonshared_range_type): New function.
3346         (build_array_type_1): New function, built from...
3347         (build_array_type: ...this.  Call build_array_type_1.
3348         (build_nonshared_array_type): New function.
3349         * tree.h (build_nonshared_range_type): Declare.
3350         (build_nonshared_array_type): Likewise.
3351
3352 2010-09-20  Anatoly Sokolov  <aesok@post.ru>
3353
3354         * config/arm/arm.h (CLASS_LIKELY_SPILLED_P): Remove.
3355         * config/arm/arm.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3356         (arm_class_likely_spilled_p): New function.
3357
3358 2010-09-20  Uros Bizjak  <ubizjak@gmail.com>
3359
3360         * config/i386/i386.c (ix86_expand_ashl_const): Rewrite using
3361         indirect functions.
3362         (ix86_split_ashl): Ditto.
3363         (ix86_split_ashr): Ditto.
3364         (ix86_split_lshr): Ditto.
3365         (ix86_adjust_counter): Ditto.
3366
3367 2010-09-20  Nicola Pero  <nicola.pero@meta-innovation.com>
3368
3369         * c-family/c-common.h (constant_string_class): Documented with
3370         comment identical to the one already in c-common.c.
3371
3372 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
3373
3374         * dwarf2out.c (any_cfis_emitted): New static variable.
3375         (add_fde_cfi): Set it.
3376         (dwarf2out_frame_debug): Clear it before processing,
3377         if it is set afterwards, flush any queued reg saves.
3378
3379         PR debug/45124
3380         * dwarf2out.c (add_accessibility_attribute): Assume
3381         DW_ACCESS_private as the default for dwarf_version > 2
3382         and DW_TAG_class_type parent.
3383         (gen_inheritance_die): Assume DW_ACCESS_public as the default
3384         for dwarf_version > 2 and parent other than DW_TAG_class_type.
3385
3386 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
3387
3388         PR target/45726
3389         * arm.md (arm_movt): Only enable on machines with MOVT.
3390
3391 2010-09-20  Jie Zhang  <jie@codesourcery.com>
3392
3393         * config/arm/arm.c (arm_address_offset_is_imm): New.
3394         (arm_early_store_addr_dep): New.
3395         (arm_early_load_addr_dep): New.
3396         * config/arm/arm-protos.h (arm_early_store_addr_dep): Declare.
3397         (arm_early_load_addr_dep): Declare.
3398         (arm_address_offset_is_imm): Declare.
3399         * config/arm/cortex-m4.md: New file.
3400         * config/arm/cortex-m4-fpu.md: New file.
3401         * config/arm/arm.md: Include cortex-m4.md and cortex-m4-fpu.md.
3402         (attr generic_sched): Exclude cortexm4.
3403         (attr generic_vfp): Exclude cortexm4.
3404
3405 2010-09-20  Richard Guenther  <rguenther@suse.de>
3406
3407         PR middle-end/45704
3408         * gimplify.c (gimplify_modify_expr_rhs): Preserve volatileness.
3409
3410 2010-09-20  Jan Hubicka  <jh@suse.cz>
3411
3412         PR tree-optimize/45605
3413         * cgraph.h (const_value_known_p): Declare.
3414         (varpool_decide_const_value_known): Remove.
3415         * tree-ssa-ccp.c (get_base_constructor): Use it.
3416         * lto-cgraph.c (compute_ltrans_boundary): Likewise.
3417         * expr.c (string_constant): Likewise.
3418         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
3419         * ipa.c (ipa_discover_readonly_nonaddressable_var,
3420         function_and_variable_visibility): Likewise.
3421         * gimplify.c (gimplify_call_expr): Likewise.
3422         * gimple-fold.c (get_symbol_constant_value): Likewise.
3423         * varpool.c (varpool_decide_const_value_known): Replace by...
3424         (const_value_known_p): ... this one; handle other kinds of DECLs
3425         too and work for automatic vars.
3426         (varpool_finalize_decl): Use const_value_known_p.
3427
3428 2010-09-20  Rafael Carre  <rafael.carre@gmail.com>
3429
3430         PR target/45726
3431         * arm.md (arm_movtas_ze): Only enable on machine with MOVT.
3432
3433 2010-09-20  Richard Guenther  <rguenther@suse.de>
3434
3435         PR tree-optimization/45705
3436         * tree-ssa-dom.c (optimize_stmt): Perform redundant store elimination.
3437
3438 2010-09-20  Jakub Jelinek  <jakub@redhat.com>
3439
3440         PR rtl-optimization/45695
3441         * combine.c (try_combine): When splitting a two set pattern,
3442         make sure the pattern which will be put into i2 doesn't use REGs
3443         or MEMs set by insns in between i2 and i3.
3444
3445 2010-09-19  Jan Hubicka  <jh@suse.cz>
3446
3447         PR lto/44246
3448         * lto-cgraph.c (input_cgraph_1, input_varpool_1): Avoid
3449         processing same node twice.
3450
3451 2010-09-19  Anatoly Sokolov  <aesok@post.ru>
3452
3453         * config/bfin/bfin.h (CLASS_LIKELY_SPILLED_P): Remove.
3454         * config/bfin/bfin.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
3455         (bfin_class_likely_spilled_p): New function
3456
3457 2010-09-19  Ira Rosen  <irar@il.ibm.com>
3458
3459         PR tree-optimization/45714
3460         * tree-vect-stmts.c (vect_transform_stmt): Use a dummy statement
3461         created in vectorizable_call instead of the original statement in
3462         def stmt updates.
3463
3464 2010-09-19  Uros Bizjak  <ubizjak@gmail.com>
3465
3466         * config/i386/i386-protos.h (split_double_mode): New prototype.
3467         (split_di, split_ti): Remove prototypes.
3468         * config/i386/i386.c (split_double_mode): New function.
3469         (split_di, split_ti): Remove.
3470         (ix86_expand_branch): Use split_double_mode.
3471         (ix86_split_to_parts): Ditto.
3472         (ix86_split_ashl): Ditto.
3473         (ix86_split_ashr): Ditto.
3474         (ix86_split_lshr): Ditto.
3475         (ix86_force_to_memory): Ditto.
3476         * config/i386/i386.md: Use split_double_mode in double-mode splitters.
3477
3478 2010-09-18  Jan Hubicka  <jh@suse.cz>
3479
3480         PR tree-optimization/45453
3481         * cgraphunit.c (cgraph_finalize_function): Consider comdat & external
3482         virtual functions are reachable.
3483         * ipa-inline.c (cgraph_clone_inlined_nodes): Likewise.
3484         * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
3485         * ipa-prop.c (ipa_modify_formal_parameters): Clear DECL_VIRTUAL_P
3486         when modifying function.
3487
3488 2010-09-18  Jan Hubicka  <jh@suse.cz>
3489
3490         PR tree-optimization/45605
3491         * cgraphunit.c (cgraph_analyze_functions): Allocate bitmap obstack.
3492         * gimple-fold.c (static_object_in_other_unit_p): New function.
3493         (canonicalize_constructor_val): Use it.
3494         (get_symbol_constant_value): Be reaqdy for canonicalize_constructor_val
3495         returning NULL.
3496         (gimple_fold_obj_type_ref_known_binfo): Use
3497         static_object_in_other_unit_p.
3498
3499 2010-09-18  Richard Guenther  <rguenther@suse.de>
3500
3501         PR tree-optimization/45709
3502         * tree-inline.c (copy_phis_for_bb): Delay commit of edge
3503         insertions until after all PHI nodes of the block are processed.
3504
3505 2010-09-18  Tijl Coosemans  <tijl@coosemans.org>
3506
3507         * config/i386/freebsd.h (SUBTARGET32_DEFAULT_CPU): Add.
3508
3509 2010-09-18  Kai Tietz  <kai.tietz@onevision.com>
3510
3511         * config.gcc (*-w64-mingw*): Correct typo about t-dfprules.
3512
3513 2010-09-18  Richard Guenther  <rguenther@suse.de>
3514
3515         PR tree-optimization/45709
3516         * tree-inline.c (copy_phis_for_bb): Fixup new_edge when we splitted it.
3517
3518 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
3519
3520         * graphite-dependences.c (dot_deps): Add DEBUG_FUNCTION.
3521         (dot_deps_stmt): Same.
3522         * graphite-poly.c (dot_lst): Same.
3523         * graphite-scop-detection.c (dot_all_scops): Same.
3524         (dot_scop): Same.
3525
3526 2010-09-17  Sebastian Pop  <sebastian.pop@amd.com>
3527
3528         Revert:
3529         2009-12-16  Ben Elliston  <bje@au.ibm.com>
3530
3531         * tree-data-ref.c (dot_rdg_1): Added back.
3532         (dot_rdg): Same.  Added "#if 0" around system call.
3533
3534 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
3535             Richard Henderson  <rth@redhat.com>
3536
3537         * config/i386/i386.c (initial_ix86_tune_features): Add
3538         X86_TUNE_PAD_SHORT_FUNCTION.
3539         (ix86_code_end): Pad with 8 NOPs for TARGET_PAD_SHORT_FUNCTION.
3540         (ix86_count_insn): New.
3541         (ix86_pad_short_function): Likewise.
3542         (ix86_reorg): Support TARGET_PAD_SHORT_FUNCTION.
3543
3544         * config/i386/i386.h (ix86_tune_indices): Add
3545         X86_TUNE_PAD_SHORT_FUNCTION.
3546         (TARGET_PAD_SHORT_FUNCTION): New.
3547
3548         * config/i386/i386.md (UNSPEC_NOPS): New.
3549         (nops): Likewise.
3550
3551 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
3552
3553         PR middle-end/45234
3554         * calls.c (expand_call): Make sure that all variable sized
3555         adjustments are multiple of preferred stack boundary after
3556         stack alignment.
3557
3558 2010-09-17  DJ Delorie  <dj@redhat.com>
3559
3560         * config/rx/rx.c (rx_print_operand): If __builtin_rx_setpsw() is
3561         passed an invalid value, print an error instead of ICEing.
3562         (valid_psw_flag): New.
3563         (rx_expand_builtin): Call it for setpsw/clrpsw.
3564         (rx_expand_builtin_mvtipl): Pass an integer to IN_RANGE, not an RTX.
3565
3566         * config/rx/rx.md (bitclr): Don't mark the output as early-clobber.
3567         (bitclr_in_memory): Likewise.
3568         (clrspw, setpsw, mvfc, mvtc, mvtipl): Make volatile.
3569
3570 2010-09-17  H.J. Lu  <hongjiu.lu@intel.com>
3571
3572         PR middle-end/45678
3573         * cfgexpand.c (update_stack_alignment): New.
3574         (get_decl_align_unit): Use it.
3575         (expand_one_stack_var_at): Call update_stack_alignment.
3576
3577 2010-09-17  Richard Guenther  <rguenther@suse.de>
3578
3579         * lto-streamer-in.c (lto_input_ts_translation_unit_decl_tree_pointers):
3580         Properly copy the read string.
3581
3582 2010-09-17  Joseph Myers  <joseph@codesourcery.com>
3583
3584         * doc/options.texi (Variable): Document.
3585         * optc-gen.awk, opth-gen.awk: Handle Variable records.  Don't
3586         generate target_flags declarations explicitly.  Don't define
3587         VarExists variables for the driver.
3588         * common.opt (target_flags): New Variable record.
3589         (flag_dump_unnumbered, flag_dump_unnumbered_links,
3590         flag_var_tracking, flag_var_tracking_assignments,
3591         flag_var_tracking_assignments_toggle): Don't mark variables with
3592         VarExists.
3593         * config/i386/i386.c (ix86_isa_flags): Don't define here.
3594         * config/i386/i386.opt (ix86_isa_flags): Define here.
3595         * config/mcore/mcore.c (mcore_stack_increment): Don't define here.
3596         * config/mcore/mcore.opt (mcore_stack_increment): Don't mark with
3597         VarExists.
3598         * flags.h (flag_dump_unnumbered, flag_var_tracking): Remove.
3599         * print-rtl.c (flag_dump_unnumbered, flag_dump_unnumbered_links):
3600         Only define for generator programs.
3601         * rtlanal.c (target_flags): Remove.
3602         * toplev.c (flag_var_tracking, flag_var_tracking_assignments,
3603         flag_var_tracking_assignments_toggle): Remove.
3604
3605 2010-09-17  Michael Matz  <matz@suse.de>
3606
3607         PR tree-optimization/43432
3608         * tree-vect-data-refs.c (vect_analyze_data_ref_access):
3609         Accept backwards consecutive accesses.
3610         (vect_create_data_ref_ptr): If step is negative generate
3611         decreasing IVs.
3612         * tree-vect-stmts.c (vectorizable_store): Reject negative steps.
3613         (perm_mask_for_reverse, reverse_vec_elements): New functions.
3614         (vectorizable_load): Handle loads with negative steps when easily
3615         possible.
3616
3617 2010-09-03  Jan Hubicka  <jh@suse.cz>
3618
3619         * lto-cgraph.c (compute_ltrans_boundary): Use const_value_known.
3620
3621 2010-09-03  Naveen H.S  <naveen.S@kpitcummins.com>
3622
3623         * config/v850/v850.c (v850_function_value_regno_p): Make static.
3624         Adjust comments. Declare.
3625         (TARGET_FUNCTION_VALUE_REGNO_P): Define.
3626         * config/v850/v850.h (FUNCTION_VALUE_REGNO_P): Delete.
3627
3628 2010-09-17  Richard Guenther  <rguenther@suse.de>
3629
3630         * common.opt (combine): Remove.
3631         * gcc.c (default_compilers): Remove specs testing combine.
3632         The C compilers no longer can combine.
3633         (option_map): Remove -combine.
3634         (display_help): Remove -combine.
3635         (driver_handle_option): Remove OPT_combine handling.
3636         (compile_input_file_p): Remove.
3637         (do_spec): Remove code concerning combine.
3638         (main): Likewise.
3639         * doc/invoke.texi: Remove traces of -combine.
3640         * lto-wrapper.c (run_gcc): Do not pass -combine to the compiler driver.
3641
3642 2010-09-17  Richard Guenther  <rguenther@suse.de>
3643
3644         PR middle-end/45678
3645         * builtins.c (fold_builtin_memory_op): Always properly adjust
3646         alignment of memory accesses.
3647
3648 2010-09-16  Jan Hubicka  <jh@suse.cz>
3649
3650         * lto-cgraph.c (input_overwrite_node): Do not set DECL_EXTERNAL when
3651         processing clone.
3652
3653 2010-09-16  H.J. Lu  <hongjiu.lu@intel.com>
3654
3655         * config/i386/i386-protos.h (ix86_split_idivmod): New prototype.
3656
3657         * config/i386/i386.c (predict_jump): Add prototype.
3658         (flag_opts): Add -m8bit-idiv.
3659         (ix86_split_idivmod): New.
3660
3661         * config/i386/i386.md (UNSPEC_DIV_ALREADY_SPLIT): New.
3662         Add 2 splitters for SI/DI mode divide.
3663         (divmod<mode>4_1): New pattern.
3664         (udivmod<mode>4_1): Likewise.
3665         (testdi_ccno_1): Likewise.
3666
3667         * config/i386/i386.opt (m8bit-idiv): New.
3668
3669         * doc/invoke.texi: Document -m8bit-idiv.
3670
3671 2010-09-16  Reza Yazdani  <reza.yazdani@amd.com>
3672
3673         PR bootstrap/45680
3674         * config/i386/i386.c (min_insn_size): Moved out of the
3675         ASM_OUTPUT_MAX_SKIP_PAD ifdef.
3676
3677 2010-09-16  Jan Hubicka  <jh@suse.cz>
3678
3679         * lto-cgraph.c (lto_output_node): Fix handling of clones.
3680         * ipa.c (cgraph_remove_unreachabloe_nodes): Fix handling of
3681         unreachable clones with reachable clones.
3682         * tree-inline.c (copy_bb): Fix sanity checking when producing
3683         unreachable clone.
3684
3685 2010-09-16  Anatoly Sokolov  <aesok@post.ru>
3686
3687         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Remove.
3688         (TARGET_MEMORY_MOVE_COST): Define.
3689         (m32r_function_arg): Annotate argument 'type' with ATTRIBUTE_UNUSED.
3690
3691 2010-09-16  Alexander Monakov  <amonakov@ispras.ru>
3692
3693         * sel-sched.c (move_cond_jump): Use tidy_control_flow instead of
3694         maybe_tidy_empty_bb.
3695
3696         Revert:
3697         2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
3698         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
3699
3700 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
3701
3702         * target.def (target_option.optimization): New hook.
3703         * doc/tm.texi.in (OPTIMIZATION_OPTIONS): Change to
3704         TARGET_OPTION_OPTIMIZATION hook.
3705         * doc/tm.texi: Regenerate.
3706         * hooks.c (hook_void_int_int): New.
3707         * hooks.h (hook_void_int_int): Declare.
3708         * opts.c: Don't include tm_p.h.
3709         (decode_options): Use targetm.target_option.optimization instead
3710         of OPTIMIZATION_OPTIONS.
3711         * system.h (OPTIMIZATION_OPTIONS): Poison.
3712         * config/arm/arm-protos.h (arm_optimization_options): Remove.
3713         * config/arm/arm.c (TARGET_OPTION_OPTIMIZATION): Define.
3714         (arm_optimization_options): Rename to arm_option_optimization.
3715         Make static.
3716         * config/arm/arm.h (OPTIMIZATION_OPTIONS): Remove.
3717         * config/cris/cris.c (TARGET_OPTION_OPTIMIZATION): Define.
3718         (cris_option_optimization): New.
3719         * config/cris/cris.h (OPTIMIZATION_OPTIONS): Remove.
3720         * config/crx/crx.c (TARGET_OPTION_OPTIMIZATION): Define.
3721         (crx_option_optimization): New.
3722         * config/crx/crx.h (OPTIMIZATION_OPTIONS): Remove.
3723         * config/frv/frv-protos.h (frv_optimization_options): Remove.
3724         * config/frv/frv.c (TARGET_OPTION_OPTIMIZATION): Define.
3725         (frv_optimization_options): Rename to frv_option_optimization.
3726         Make static.
3727         * config/frv/frv.h (OPTIMIZATION_OPTIONS): Remove.
3728         * config/h8300/h8300.c (h8300_option_optimization): New.
3729         (TARGET_OPTION_OPTIMIZATION): Define.
3730         * config/h8300/h8300.h (OPTIMIZATION_OPTIONS): Remove.
3731         * config/i386/i386-protos.h (optimization_options): Remove.
3732         * config/i386/i386.c (optimization_options): Rename to
3733         ix86_option_optimization.  Make static.
3734         (TARGET_OPTION_OPTIMIZATION): Define.
3735         * config/i386/i386.h (OPTIMIZATION_OPTIONS): Remove.
3736         * config/ia64/ia64-protos.h (ia64_optimization_options): Remove.
3737         * config/ia64/ia64.c (TARGET_OPTION_OPTIMIZATION): Define.
3738         (ia64_optimization_options): Rename to ia64_option_optimization.
3739         Make static.  Call SUBTARGET_OPTIMIZATION_OPTIONS.
3740         * config/ia64/ia64.h (OPTIMIZATION_OPTIONS): Remove.  Remove
3741         commented-out definition.
3742         * config/ia64/vms.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define
3743         instead of OPTIMIZATION_OPTIONS.
3744         * config/m32r/m32r.c (TARGET_OPTION_OPTIMIZATION): Define.
3745         (m32r_option_optimization): New.
3746         * config/m32r/m32r.h (OPTIMIZATION_OPTIONS): Remove.
3747         * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
3748         Remove.
3749         * config/mcore/mcore.c (TARGET_OPTION_OPTIMIZATION): Define.
3750         (mcore_option_optimization): New.
3751         * config/mcore/mcore.h (OPTIMIZATION_OPTIONS): Remove.
3752         * config/mep/mep-protos.h (mep_optimization_options): Remove.
3753         * config/mep/mep.c (TARGET_OPTION_OPTIMIZATION): Define.
3754         (mep_optimization_options): Rename to mep_option_optimization.
3755         Make static.  Take unused level and size parameters.
3756         * config/mep/mep.h (OPTIMIZATION_OPTIONS): Remove.
3757         * config/mmix/mmix.c (TARGET_OPTION_OPTIMIZATION): Define.
3758         (mmix_option_optimization): New.
3759         * config/mmix/mmix.h (OPTIMIZATION_OPTIONS): Remove.
3760         * config/pdp11/pdp11.c (TARGET_OPTION_OPTIMIZATION): Define.
3761         (pdp11_option_optimization): New.
3762         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Remove.
3763         * config/rs6000/rs6000-protos.h (optimization_options): Remove.
3764         * config/rs6000/rs6000.c (TARGET_OPTION_OPTIMIZATION): Define.
3765         (optimization_options): Rename to rs6000_option_optimization.
3766         Make static.
3767         * config/rs6000/rs6000.h (OPTIMIZATION_OPTIONS): Remove.
3768         * config/rx/rx-protos.h (rx_set_optimization_options): Remove.
3769         * config/rx/rx.c (rx_set_optimization_options): Rename to
3770         rx_option_optimization.  Make static.  Take unused level and size
3771         parameters.
3772         (TARGET_OPTION_OPTIMIZATION): Define.
3773         * config/rx/rx.h (OPTIMIZATION_OPTIONS): Remove.
3774         * config/s390/s390-protos.h (optimization_options): Remove.
3775         * config/s390/s390.c (optimization_options): Rename to
3776         s390_option_optimization.  Make static.  Don't mark size parameter
3777         unused.
3778         (TARGET_OPTION_OPTIMIZATION): Define.
3779         * config/s390/s390.h (OPTIMIZATION_OPTIONS): Remove.
3780         * config/sh/sh-protos.h (sh_optimization_options): Remove.
3781         * config/sh/sh.c (TARGET_OPTION_OPTIMIZATION): Define.
3782         (sh_optimization_options): Rename to sh_option_optimization.  Make
3783         static.  Don't mark parameters unused.
3784         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Remove.
3785         * config/spu/spu-protos.h (spu_optimization_options): Remove.
3786         * config/spu/spu.c (TARGET_OPTION_OPTIMIZATION): Define.
3787         (spu_optimization_options): Rename to spu_option_optimization.
3788         Make static.
3789         * config/spu/spu.h (OPTIMIZATION_OPTIONS): Remove.
3790         * config/v850/v850.c (TARGET_OPTION_OPTIMIZATION): Define.
3791         (v850_option_optimization): New.
3792         * config/v850/v850.h (OPTIMIZATION_OPTIONS): Remove.
3793         * config/xtensa/xtensa.c (TARGET_OPTION_OPTIMIZATION): Define.
3794         (xtensa_option_optimization): New.
3795         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Remove.
3796
3797 2010-09-16  Joseph Myers  <joseph@codesourcery.com>
3798
3799         * doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
3800         (C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
3801         * doc/tm.texi: Regenerate.
3802         * system.h (OVERRIDE_OPTIONS): Poison.
3803         * target.def (override): Default to hook_void_void.
3804         * targhooks.c (default_target_option_override): Remove.
3805         * genmodes.c, machmode.def: Update comments mentioning
3806         OVERRIDE_OPTIONS.
3807         * config/alpha/alpha-modes.def: Update comment mentioning
3808         alpha_override_options.
3809         * config/alpha/alpha-protos.h (override_options): Remove.
3810         * config/alpha/alpha.c (override_options): Rename to
3811         alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make static.
3812         (TARGET_OPTION_OVERRIDE): Define.
3813         * config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
3814         * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
3815         of OVERRIDE_OPTIONS.
3816         * config/arc/arc-protos.h (arc_init): Remove.
3817         * config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
3818         (arc_init): Rename to arc_option_override.  Make static.
3819         * config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
3820         (OVERRIDE_OPTIONS): Remove.
3821         * config/arm/arm-protos.h (arm_override_options): Remove.
3822         * config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
3823         (arm_override_options): Rename to arm_option_override.  Make
3824         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
3825         * config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
3826         * config/arm/arm.md: Update comment referring to arm_override_options.
3827         * config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
3828         instead of OVERRIDE_OPTIONS.
3829         * config/avr/avr-protos.h (avr_override_options): Remove.
3830         * config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
3831         (avr_override_options): Rename to avr_option_override.  Make static.
3832         * config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
3833         * config/bfin/bfin-protos.h (override_options): Remove (twice).
3834         * config/bfin/bfin.c (override_options): Rename to
3835         bfin_option_override.  Make static.
3836         (TARGET_OPTION_OVERRIDE): Define.
3837         * config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
3838         * config/cris/cris-protos.h (cris_override_options): Remove.
3839         * config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
3840         (cris_override_options): Rename to cris_option_override.  Make static.
3841         * config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
3842         * config/frv/frv-protos.h (frv_override_options): Remove.
3843         * config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
3844         (frv_override_options): Rename to frv_option_override.  Make static.
3845         * config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
3846         * config/h8300/h8300-protos.h (h8300_init_once): Remove.
3847         * config/h8300/h8300.c (h8300_init_once): Rename to
3848         h8300_option_override.  Make static.
3849         (TARGET_OPTION_OVERRIDE): Define.
3850         * config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
3851         * config/i386/i386-protos.h (override_options): Remove.
3852         * config/i386/i386.c (override_options): Rename to
3853         ix86_option_override_internal.  Make static.  Comments referring
3854         to this function and callers changed.
3855         (ix86_option_override): New.
3856         (TARGET_OPTION_OVERRIDE): Define.
3857         * config/i386/i386.h (OVERRIDE_OPTION): Remove.
3858         * config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update comment.
3859         * config/ia64/ia64.c (ia64_file_start): Update comment referring
3860         to ia64_override_options.
3861         * config/iq2000/iq2000-protos.h (override_options): Remove.
3862         * config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
3863         (override_options): Rename to iq2000_option_override.  Make static.
3864         * config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
3865         * config/lm32/lm32-protos.h (lm32_override_options): Remove.
3866         * config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
3867         (lm32_override_options): Rename to lm32_option_override.  Make static.
3868         * config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
3869         * config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
3870         (m32r_option_override): New.
3871         (m32r_init): Update comment.
3872         * config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
3873         * config/m68hc11/m68hc11-protos.h (m68hc11_override_options): Remove.
3874         * config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
3875         (m68hc11_override_options): Rename to m68hc11_option_override.
3876         Make static.  Return void.
3877         * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
3878         * config/m68k/m68k-protos.h (override_options): Remove.
3879         * config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
3880         (override_options): Rename to m68k_option_override.  Make static.
3881         * config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
3882         * config/mcore/mcore-protos.h (mcore_override_options): Remove.
3883         * config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
3884         (mcore_override_options): Rename to mcore_option_override.  Make
3885         static.
3886         * config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
3887         * config/mep/mep-protos.h (mep_override_options): Remove.
3888         * config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
3889         (mep_override_options): Rename to mep_option_override.  Make static.
3890         * config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
3891         * config/mmix/mmix-protos.h (mmix_override_options): Remove.
3892         * config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
3893         (mmix_override_options): Rename to mmix_option_override.  Make static.
3894         * config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
3895         * config/mn10300/mn10300-protos.h (mn10300_override_options): Remove.
3896         * config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
3897         (mn10300_override_options): Rename to mn10300_option_override.
3898         Make static.
3899         * config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
3900         * config/moxie/moxie-protos.h (moxie_override_options): Remove.
3901         * config/moxie/moxie.c (moxie_override_options): Rename to
3902         moxie_option_override.  Make static.
3903         (TARGET_OPTION_OVERRIDE): Define.
3904         * config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
3905         * config/picochip/picochip-protos.h (picochip_override_options):
3906         Remove.  Update comment referring to picochip_override_options.
3907         * config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
3908         (picochip_override_options): Rename to picochip_option_override.
3909         Make static.  Update comment and definition of
3910         TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
3911         * config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
3912         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
3913         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
3914         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
3915         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
3916         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
3917         * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
3918         instead of OVERRIDE_OPTIONS.
3919         * config/rs6000/rs6000-modes.def: Update comment referring to
3920         rs6000_override_options.
3921         * config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
3922         * config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
3923         (rs6000_override_options): Rename to
3924         rs6000_option_override_internal.  Make static.  Commented
3925         referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
3926         (rs6000_option_override): New.
3927         * config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
3928         instead of OVERRIDE_OPTIONS.
3929         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update comment.
3930         * config/s390/s390-protos.h (override_options): Remove.
3931         * config/s390/s390.c (override_options): Rename to
3932         s390_option_override.  Make static.
3933         (TARGET_OPTION_OVERRIDE): Define.
3934         * config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
3935         * config/score/score-protos.h (score_override_options): Remove.
3936         * config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
3937         (score_override_options): Rename to score_option_override.  Make
3938         static.
3939         * config/score/score.h (OVERRIDE_OPTIONS): Remove.
3940         Update comment referring to override_options.
3941         * config/score/score3.c (score3_override_options): Rename to
3942         score3_option_override.
3943         * config/score/score3.h (score3_override_options): Rename to
3944         score3_option_override.
3945         * config/score/score7.c (score7_override_options): Rename to
3946         score7_option_override.
3947         * config/score/score7.h (score7_override_options): Rename to
3948         score7_option_override.
3949         * config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
3950         * config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
3951         (sparc_override_options): Rename to sparc_option_override.  Make
3952         static.  Call SUBTARGET_OVERRIDE_OPTIONS.
3953         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
3954         * config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
3955         instead of OVERRIDE_OPTIONS.
3956         * config/spu/spu-protos.h (spu_override_options): Remove.
3957         * config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
3958         (spu_override_options): Rename to spu_option_override.  Make
3959         static.
3960         * config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
3961         * config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
3962         OVERRIDE_OPTIONS.
3963         * config/vax/vax-protos.h (override_options): Remove.
3964         * config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
3965         (override_options): Rename to vax_option_override.  Make static.
3966         Call SUBTARGET_OVERRIDE_OPTIONS.
3967         * config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
3968         * config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
3969         * config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
3970         * config/xtensa/xtensa-protos.h (override_options): Remove.
3971         * config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
3972         (override_options): Rename to xtensa_option_override.  Make static.
3973         * config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.
3974
3975 2010-09-16  Richard Guenther  <rguenther@suse.de>
3976
3977         PR tree-optimization/45623
3978         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Adjust.
3979         (get_constraint_for_component_ref): If computing a constraint
3980         for the rhs handle type punning through unions.
3981         (get_constraint_for_address_of): Adjust.
3982         (get_constraint_for_1): Likewise.
3983         (get_constraint_for): Likewise.
3984         (get_constraint_for_rhs): New function.
3985         (do_structure_copy): Adjust.
3986         (make_constraint_to): Likewise.
3987         (handle_const_call): Likewise.
3988         (find_func_aliases): Likewise.
3989         (process_ipa_clobber): Likewise.
3990         (create_variable_info_for): Likewise.
3991
3992 2010-09-16  Ira Rosen  <irar@il.ibm.com>
3993
3994         * tree-vectorizer.c: Fix documentation.
3995         * tree-vectorizer.h (vinfo_for_stmt): Add documentation.
3996         (set_vinfo_for_stmt, get_earlier_stmt, get_later_stmt,
3997         is_pattern_stmt_p, is_loop_header_bb_p,
3998         stmt_vinfo_set_inside_of_loop_cost,
3999         stmt_vinfo_set_outside_of_loop_cost, vect_pow2, aligned_access_p,
4000         known_alignment_for_access_p): Likewise.
4001         * tree-vect-loop.c: Fix documentation.
4002         (vect_get_cost): Start function name from new line.
4003         * tree-vect-data-refs.c: Fix documentation.
4004         * tree-vect_stmts.c: Likewise.
4005         (vect_create_vectorized_promotion_stmts): Always free vec_tmp.
4006         (vectorizable_store): Free vec_oprnds if allocated.
4007         (vectorizable_condition): Initialize several variables to avoid
4008         warnings.
4009         * tree-vect-slp.c: Fix documentation.
4010
4011 2010-09-16  Richard Guenther  <rguenther@suse.de>
4012
4013         * tree.c (tree_node_structure_for_code): TRANSLATION_UNIT_DECL
4014         is TS_TRANSLATION_UNIT_DECL.
4015         (initialize_tree_contains_struct): Adjust.
4016         (all_translation_units): New global vector.
4017         (build_translation_unit_decl): New function.
4018         * tree.h (TRANSLATION_UNIT_LANGUAGE): New macro.
4019         (struct tree_translation_unit_decl): New.
4020         (all_translation_units): Declare.
4021         (union tree_node): Add translation_unit_decl member.
4022         (build_translation_unit_decl): Declare.
4023         * treestruct.def (TS_TRANSLATION_UNIT_DECL): New.
4024         * lto-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
4025         New function.
4026         (pack_value_fields): Call it.
4027         (lto_output_tree_ref): Handle references to TRANSLATION_UNIT_DECL.
4028         (lto_output_ts_translation_unit_decl_tree_pointers): New function.
4029         (lto_output_tree_pointers): Call it.
4030         * lto-streamer-in.c (lto_input_tree_ref): Handle references
4031         to TRANSLATION_UNIT_DECL.
4032         (unpack_ts_translation_unit_decl_value_fields): New function.
4033         (unpack_value_fields): Call it.
4034         (lto_input_ts_translation_unit_decl_tree_pointers): New function.
4035         (lto_input_tree_pointers): Call it.
4036         * lto-streamer.c (check_handled_ts_structures): Adjust.
4037         * lto-streamer.h (enum LTO_tags): Add LTO_translation_unit_decl_ref.
4038         * c-decl.c (all_translation_units): Remove.
4039         (pop_scope): Use build_translation_unit_decl.
4040         (collect_all_refs): Adjust.
4041         (for_each_global_decl): Likewise.
4042         (c_write_global_declarations): Likewise.
4043
4044 2010-09-16  Jakub Jelinek  <jakub@redhat.com>
4045
4046         PR bootstrap/45686
4047         * fold-const.c (fold_checksum_tree): Change slot from const void **
4048         to void **, use CONST_CAST_TREE to store into *slot.
4049
4050 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
4051
4052         * config/i386/i386.md: Remove unneeded empty conditions and
4053         preparation statements from expanders.
4054         * config/i386/mmx.md: Ditto.
4055         * config/i386/sse.md: Ditto.
4056
4057 2010-09-16  Uros Bizjak  <ubizjak@gmail.com>
4058
4059         * config/i386/i386.h (PUSH_ROUNDING): Redefine using UNITS_PER_WORD.
4060
4061 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
4062
4063         PR rtl-optimization/45593
4064         * reorg.c (relax_delay_slots): Use emit_copy_of_insn_after to re-emit
4065         insns that were in delay slots as stand-alone insns.
4066
4067 2010-09-15  Ian Lance Taylor  <iant@google.com>
4068
4069         * incpath.c (remove_duplicates): If name is not a directory, issue
4070         a warning rather than an error.
4071
4072 2010-09-15  Martin Jambor  <mjambor@suse.cz>
4073
4074         PR middle-end/45644
4075         * tree-sra.c (create_access): Check for bit-fields directly.
4076
4077 2010-09-15  Jakub Jelinek  <jakub@redhat.com>
4078
4079         PR tree-optimization/45633
4080         * tree-cfg.c (verify_gimple_assign_binary): Allow
4081         MINUS_EXPR with lhs and rhs1 pointer vector and
4082         rhs2 sizetype vector.
4083         * expr.c (expand_expr_real_2) <case PLUS_EXPR>: For pointer
4084         or vector pointer use TER to optimize pointer subtraction.
4085
4086 2010-09-15  Jie Zhang  <jie@codesourcery.com>
4087
4088         * config/arm/vfp.md (cmpsf_trap_vfp): Change type from
4089         fcmpd to fcmps.
4090
4091 2010-09-15  Ian Lance Taylor  <iant@google.com>
4092
4093         * config/i386/i386.md (truncxf<mode>2): Fix indentation.
4094
4095 2010-09-15  Ian Lance Taylor  <iant@google.com>
4096
4097         * function.c (get_arg_pointer_save_area): Set
4098         arg_pointer_save_area_init to true.
4099
4100 2010-09-15  Martin Jambor  <mjambor@suse.cz>
4101
4102         * tree-sra.c (generate_subtree_copies): Updated comment.
4103         (handle_unscalarized_data_in_subtree): Removed parameter lhs which is
4104         obtained from the statement iterator instead.
4105         (load_assign_lhs_subreplacements): Removed parameters lhs and
4106         right_offset, which is obtained from top_racc instead.  Parameter lacc
4107         is now expected to be the root of the processed tree rather than root's
4108         first child.  Updated all callers.
4109
4110 2010-09-15  Joseph Myers  <joseph@codesourcery.com>
4111
4112         * config/pdp11/pdp11.c (register_move_cost): Rename to
4113         pdp11_register_move_cost.
4114         * config/pdp11/pdp11-protos.h (register_move_cost): Rename to
4115         pdp11_register_move_cost.
4116         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Call
4117         pdp11_register_move_cost instead of register_move_cost.
4118
4119 2010-09-15  Tejas Belagod  <tejas.belagod@arm.com>
4120
4121         * config/arm/neon.md (vec_pack_trunc_<mode>): Instruction
4122         pattern for vmovn. Expansion in case of non
4123         -mvectorize-with-neon-quad.
4124         (neon_vec_pack_trunc_<mode>): Instruction pattern for vmovn for
4125         non- -mvectorize-with-neon-quad case.
4126         (move_lo_quad_<mode>): New expansion to vmov into low part.
4127         (move_hi_quad_<mode>): New expansion to vmov into high part.
4128         (move_lo_quad_v4si): Refactor to move_lo_quad_<mode> expansion.
4129         (move_lo_quad_v4sf): Likewise.
4130         (move_lo_quad_v8hi): Likewise.
4131         (neon_move_lo_quad_<mode>): Instruction pattern for vmov into
4132         low part.
4133         (neon_move_hi_quad_<mode>): Instruction pattern for vmov into
4134         high part.
4135         * config/arm/iterators.md (ANY128): New mode iterator.
4136         (V_narrow_pack): New mode attribute.
4137         (V_HALF): Add attribute.
4138         (V_DOUBLE): Add attribute.
4139         (V_mode_nunits): Add attribute.
4140
4141 2010-09-15  Eric Botcazou  <ebotcazou@adacore.com>
4142
4143         * config/alpha/alpha.c (alpha_expand_prologue): If stack checking
4144         is enabled, probe up to frame_size + STACK_CHECK_PROTECT bytes.
4145
4146 2010-09-15  Olivier Hainque  <hainque@adacore.com>
4147             Jose Ruiz  <ruiz@adacore.com>
4148
4149         * config/alpha/osf5.h (MD_UNWIND_SUPPORT): Define.
4150         * config/alpha/osf5-unwind.h: New file.
4151
4152 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
4153
4154         PR bootstrap/45672
4155         * config/mips/mips.c (mips_units_per_simd_word): Correct return type.
4156         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
4157         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
4158
4159 2010-09-15  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4160
4161         * c-lang.h (struct lang_type): Add variable_size GTY option.
4162
4163 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
4164
4165         PR bootstrap/45672
4166         * config/rs6000/rs6000.c (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
4167
4168 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
4169
4170         * config/i386/i386.c (ix86_lea_for_add_ok): Return false if
4171         result isn't used in memory address.
4172
4173 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
4174
4175         * defaults.h (UNITS_PER_SIMD_WORD): Removed.
4176         * config/arm/arm.h (UNITS_PER_SIMD_WORD): Likewise.
4177         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Likewise.
4178         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
4179         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
4180         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
4181
4182         * target.def: Add units_per_simd_word to vectorize.
4183
4184         * targhooks.c (default_units_per_simd_word): New.
4185         * targhooks.h (default_units_per_simd_word): Likewise.
4186         * config/arm/arm.c (arm_units_per_simd_word): Likewise.
4187         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
4188         * config/mips/mips.c (mips_units_per_simd_word): Likewise.
4189         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
4190         * config/rs6000/rs6000.c (rs6000_units_per_simd_word): Likewise.
4191         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
4192         * config/sparc/sparc.c (sparc_units_per_simd_word): Likewise.
4193         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): Likewise.
4194
4195         * tree-vect-loop.c: Replace UNITS_PER_SIMD_WORD with
4196         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD in comments.
4197
4198         * tree-vect-stmts.c: Don't include "tm_p.h".
4199         (get_vectype_for_scalar_type): Replace UNITS_PER_SIMD_WORD
4200         with targetm.vectorize.units_per_simd_word.
4201
4202         * system.h (UNITS_PER_SIMD_WORD): Poisoned.
4203
4204         * config/i386/i386-protos.h (ix86_units_per_simd_word): Removed.
4205
4206         * config/i386/i386.c (ix86_units_per_simd_word): Make it static.
4207         (TARGET_VECTORIZE_UNITS_PER_SIMD_WORD): New.
4208
4209         * doc/tm.texi.in: Remove UNITS_PER_SIMD_WORD.  Add
4210         TARGET_VECTORIZE_UNITS_PER_SIMD_WORD.
4211
4212         * doc/tm.texi: Regenerated.
4213
4214 2010-09-14  H.J. Lu  <hongjiu.lu@intel.com>
4215
4216         * tree-vect-stmts.c: Include "tm_p.h".
4217
4218         * config/i386/i386-protos.h (ix86_units_per_simd_word): Moved
4219         out of RTX_CODE.
4220
4221 2010-09-14  Martin Jambor  <mjambor@suse.cz>
4222
4223         * tree-sra.c (build_ref_for_offset): Loc made a parameter.  Set the
4224         location of generated statement.  Changed all callers.
4225         (build_ref_for_model): New parameter loc which used to set location of
4226         all generated expressions.  Changed all callers.
4227         (generate_subtree_copies): Likewise.
4228         (init_subtree_with_zero): Likewise.
4229         (sra_modify_expr): Set locations of all generated statements and
4230         expressions to the location the original statement.
4231         (handle_unscalarized_data_in_subtree): Likewise.
4232         (load_assign_lhs_subreplacements): Likewise.
4233         (sra_modify_constructor_assign): Likewise.
4234         (sra_modify_assign): Likewise.
4235
4236 2010-09-14  Eric Botcazou  <ebotcazou@adacore.com>
4237
4238         PR target/45277
4239         PR target/45363
4240         PR target/45407
4241         * doc/install.texi (sparc*-*-*): New section.
4242         (sparc-sun-solaris2*): Mention MPC alongside GMP and MPFR.
4243
4244 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
4245
4246         PR middle-end/45567
4247         * builtins.c (expand_builtin_interclass_mathfn, expand_builtin_cexpi,
4248         expand_builtin_powi): Remove subtarget argument, pass NULL_RTX instead.
4249         (expand_builtin): Adjust caller.
4250         (expand_builtin_unop): Only use subtarget if it has the right mode.
4251
4252 2010-09-14  Tristan Gingold  <gingold@adacore.com>
4253
4254         * configure.ac (plugins): Fix typos.
4255         * configure: Regenerate.
4256
4257 2010-09-14  Jakub Jelinek  <jakub@redhat.com>
4258
4259         PR debug/45660
4260         * dwarf2out.c (gen_decl_die): Call gen_type_die for origin before
4261         gen_type_die for function/method return type.
4262
4263 2010-09-14  Ira Rosen  <irar@il.ibm.com>
4264
4265         PR tree-optimization/45470
4266         * tree-vect-data-refs.c (vect_analyze_data_refs): Fail if a statement
4267         can throw an exception.
4268         * tree-vect-stmts.c (vectorizable_call): Likewise.
4269
4270 2010-09-14  DJ Delorie  <dj@redhat.com>
4271
4272         PR target/44749
4273         * config/mep/mep-protos.h (mep_save_register_info,
4274         mep_reinit_regs, mep_init_regs): Declare.
4275
4276         * config/mep/mep.c: Move all target definitions to the end of the
4277         file to avoid the need for duplicate declarations.
4278         (mep_save_register_info, mep_reinit_regs, mep_init_regs): New.
4279         (mep_reorg_erepeat): Remove unused variables.
4280         (mep_expand_builtin): Likewise.
4281
4282         * config/mep/mep-pragma.c: Don't include rtl.h.
4283         (INVALID_REGNUM): New.
4284         (mep_pragma_coprocessor_which): Call mep-specific rtl-layer bridge
4285         functions.
4286         (mep_pragma_coprocessor_subclass): Rename "class" to "rclass".
4287         Avoid enum/integer math.
4288
4289 2010-09-13  Joseph Myers  <joseph@codesourcery.com>
4290
4291         PR target/44749
4292         * config/mep/t-mep (GTM_H): Add insn-constants.h.
4293         * config/mep/mep.c (mep_conditional_register_usage): Take no
4294         parameters.
4295         * config/mep/mep-protos.h (mep_conditional_register_usage): Update
4296         prototype.
4297         * config/mep/mep-pragma.c (CONDITIONAL_REGISTER_USAGE): Update
4298         call to mep_conditional_register_usage.
4299
4300 2010-09-13  Eric Botcazou  <ebotcazou@adacore.com>
4301
4302         PR debug/43937
4303         * varasm.c (output_constant_def_contents): Set TREE_ASM_WRITTEN on
4304         the DECL as well.
4305
4306 2010-09-13  Jakub Jelinek  <jakub@redhat.com>
4307
4308         PR rtl-optimization/45617
4309         * combine.c (simplify_comparison): Optimize (X >> N) {>,>=,<,<=} C
4310         even if low N bits of X aren't known to be zero.
4311
4312 2010-09-13  H.J. Lu  <hongjiu.lu@intel.com>
4313
4314         * config/i386/i386-protos.h (ix86_units_per_simd_word): New.
4315
4316         * config/i386/i386.c (initial_ix86_tune_features): Add
4317         X86_TUNE_VECTORIZE_DOUBLE.
4318         (ix86_units_per_simd_word): New.
4319
4320         * config/i386/i386.h (ix86_tune_indices): Add
4321         X86_TUNE_VECTORIZE_DOUBLE.
4322         (TARGET_VECTORIZE_DOUBLE): New.
4323         (UNITS_PER_SIMD_WORD): Defined with ix86_units_per_simd_word.
4324
4325 2010-09-13  Pat Haugen  <pthaugen@us.ibm.com>
4326
4327         * tree-ssa-ter.c (temp_expr_table_d): Add call_cnt field.
4328         (new_temp_expr_table): Allocate call_cnt vector.
4329         (free_temp_expr_table): Free it.
4330         (process_replaceable): Add call_cnt parm and set in vector.
4331         (find_replaceable_in_bb): Skip replacement if def/use span a call.
4332         (debug_ter): Dump call_cnt value, remove stderr uses.
4333
4334 2010-09-13  Jan Hubicka  <jh@suse.cz>
4335
4336         * tree.c (build_zero_cst): New.
4337         * tree.h (build_zero_cst): Declare.
4338         * tree-ssa-ccp.c (get_constant_value): Accept general operands.
4339         (get_base_constructor): Break out from ...
4340         (fold_const_aggregate_ref): Here; handle empty constructors.
4341
4342 2010-09-13  Marcus Shawcroft  <marcus.shawcroft@arm.com>
4343
4344         * config/arm/arm.md: (define_attr "conds"): Update comment.
4345         * config/arm/sync.md (arm_sync_compare_and_swapsi): Change
4346         conds attribute to clob.
4347         (arm_sync_compare_and_swapsi): Likewise.
4348         (arm_sync_compare_and_swap<mode>): Likewise.
4349         (arm_sync_lock_test_and_setsi): Likewise.
4350         (arm_sync_lock_test_and_set<mode>): Likewise.
4351         (arm_sync_new_<sync_optab>si): Likewise.
4352         (arm_sync_new_nandsi): Likewise.
4353         (arm_sync_new_<sync_optab><mode>): Likewise.
4354         (arm_sync_new_nand<mode>): Likewise.
4355         (arm_sync_old_<sync_optab>si): Likewise.
4356         (arm_sync_old_nandsi): Likewise.
4357         (arm_sync_old_<sync_optab><mode>): Likewise.
4358         (arm_sync_old_nand<mode>): Likewise.
4359
4360 2010-09-13  Olivier Hainque  <hainque@adacore.com>
4361
4362         * fwprop.c (forward_propagate_and_simplify): Only attach a
4363         REG_EQUAL note to an insn if the destination is a register.
4364         * gcse.c (try_replace_reg): Likewise.
4365
4366 2010-09-13  Richard Guenther  <rguenther@suse.de>
4367
4368         PR tree-optimization/45611
4369         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Fix typo.
4370         (copy_ref_info): Likewise.
4371
4372 2010-09-13  Alexandre Oliva  <aoliva@redhat.com>
4373
4374         PR debug/45604
4375         PR debug/45419
4376         PR debug/45408
4377         * tree-pretty-print.c (dump_generic_node): Disregard top-level
4378         types of MEM_REF pointer types to the same type.
4379
4380 2010-09-13  Hans-Peter Nilsson  <hp@axis.com>
4381
4382         PR rtl-optimization/41087
4383         * ifcvt.c (noce_get_condition): Don't allow conditions with
4384         side-effects.
4385
4386 2010-09-12  Anatoly Sokolov  <aesok@post.ru>
4387
4388         * config/frv/frv.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
4389         * config/frv/frv-protos.h (frv_register_move_cost): Remove.
4390         * config/frv/frv.c (frv_register_move_cost): Make static. Change
4391         arguments type to reg_class_t. Add mode argument.
4392         (frv_memory_move_cost): New.
4393         (TARGET_REGISTER_MOVE_COSTS, TARGET_MEMORY_MOVE_COSTS): Define.
4394
4395 2010-09-12  Bernd Schmidt  <bernds@codesourcery.com>
4396
4397         * config/arm/arm.md (arm_ashldi3_1bit, arm_ashrdi3_1bit,
4398         arm_lshrdi3_1bit): Put earlyclobber on the right alternative.
4399
4400 2010-09-10  Jan Hubicka  <jh@suse.cz>
4401
4402         * tree-ssa-ccp.c (fold_const_aggregate_ref): Do not check STATIC flag.
4403
4404 2010-09-10  Richard Guenther  <rguenther@suse.de>
4405
4406         * tree.c (make_vector_type): Do not set TYPE_DEBUG_REPRESENTATION_TYPE.
4407         * tree.h (TYPE_DEBUG_REPRESENTATION_TYPE): Remove.
4408         * lto-streamer-out.c (lto_output_ts_type_tree_pointers): Do
4409         not stream TYPE_DEBUG_REPRESENTATION_TYPE.
4410         * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Likewise.
4411
4412 2010-09-10  Richard Guenther  <rguenther@suse.de>
4413
4414         * dwarf2out.c (gen_array_type_die): Output DW_TAG_subrange_type
4415         for VECTOR_TYPEs using TYPE_VECTOR_SUBPARTS.
4416         * dbxout.c (dbxout_type): Manually deal with VECTOR_TYPE
4417         using TYPE_VECTOR_SUBPARTS, not TYPE_DEBUG_REPRESENTATION_TYPE.
4418
4419 2010-09-10  H.J. Lu  <hongjiu.lu@intel.com>
4420
4421         PR middle-end/45634
4422         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result
4423         of string folding is of integral type.
4424
4425 2010-09-10  Ryan Mansfield  <rmansfield@qnx.com>
4426
4427         * doc/invoke.texi (-x): Fix typo.
4428
4429 2010-09-10  Richard Guenther  <rguenther@suse.de>
4430
4431         PR debug/44115
4432         * tree.c (free_lang_data_in_decl): Do not clear DECL_DEBUG_EXPR.
4433         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
4434         Output DECL_DEBUG_EXPR.
4435         * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
4436         Input DECL_DEBUG_EXPR.
4437
4438 2010-09-10  Richard Guenther  <rguenther@suse.de>
4439
4440         * tree.c (type_hash_eq): For ARRAY_TYPEs also compare TYPE_SIZE.
4441         (build_index_type): Implement in terms of build_range_type.
4442         (build_range_type): Do not allow NULL_TREE type, improve
4443         hashing to cover more cases.  Set TYPE_STRUCTURAL_EQUALITY_P
4444         if we didn't hash.
4445         * c-decl.c (grokdeclarator): When modifying TYPE_SIZE manually
4446         create a distinct copy of the type.
4447
4448 2010-09-10  Kai Tietz  <kai.tietz@onevision.com>
4449
4450         * configure: Regenerated.
4451         * config.gcc: Add for x86_64 and i?86 mingw t-dfprule.
4452
4453 2010-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4454
4455         * config/arm/neon-schedgen.ml (allCores): Add support for Cortex-A9.
4456         * config/arm/cortex-a9-neon.md: New and partially generated.
4457         * config/arm/cortex-a9.md (cortex_a9_dp): Adjust for Neon.
4458
4459 2010-09-10  Richard Guenther  <rguenther@suse.de>
4460
4461         * tree.h (build_index_2_type): Remove.
4462         * tree.c (build_index_2_type): Remove.
4463
4464 2010-09-10  Jakub Jelinek  <jakub@redhat.com>
4465
4466         PR bootstrap/45630
4467         * dwarf2out.c (get_ref_die_offset_label): Use %ld instead of
4468         HOST_WIDE_INT_PRINT_DEC to print ref->die_offset.
4469         (implicit_ptr_descriptor): Return NULL if dwarf_strict.
4470
4471 2010-09-10  Martin Jambor  <mjambor@suse.cz>
4472
4473         PR tree-optimization/44972
4474         * tree-sra.c: Include toplev.h.
4475         (build_ref_for_offset): Entirely reimplemented.
4476         (build_ref_for_model): New function.
4477         (build_user_friendly_ref_for_offset): New function.
4478         (analyze_access_subtree): Removed build_ref_for_offset check.
4479         (propagate_subaccesses_across_link): Likewise.
4480         (create_artificial_child_access): Use
4481         build_user_friendly_ref_for_offset.
4482         (propagate_subaccesses_across_link): Likewise.
4483         (ref_expr_for_all_replacements_p): Removed.
4484         (generate_subtree_copies): Updated comment.  Use build_ref_for_model.
4485         (sra_modify_expr): Use build_ref_for_model.
4486         (load_assign_lhs_subreplacements): Likewise.
4487         (sra_modify_assign): Removed ref_expr_for_all_replacements_p checks,
4488         checks for return values of build_ref_for_offset.
4489         * ipa-cp.c (ipcp_lattice_from_jfunc): No need to check return value of
4490         build_ref_for_offset.
4491         * ipa-prop.h: Include gimple.h
4492         * ipa-prop.c (ipa_compute_jump_functions): Update to look for MEM_REFs.
4493         (ipa_analyze_indirect_call_uses): Update comment.
4494         * Makefile.in (tree-sra.o): Add $(GIMPLE_H) to dependencies.
4495         (IPA_PROP_H): Likewise.
4496
4497 2010-09-10  Martin Jambor  <mjambor@suse.cz>
4498
4499         PR tree-optimization/44972
4500         * ipa-prop.c (ipa_modify_call_arguments): Build MEM_REF instead of
4501         calling build_ref_for_offset.
4502
4503 2010-09-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4504
4505         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle Cortex-a15.
4506         * config/arm/arm-cores.def (cortex-a15): New core. Treat it as a v7-a.
4507         * config/arm/arm-tune.md: Regenerate.
4508         * doc/invoke.texi (ARM Options): Document it.
4509
4510 2010-09-09  Reza Yazdani  <reza.yazdani@amd.com>
4511
4512         * config/i386/i386.c: Include sched-int.h.
4513         (TARGET_SCHED_DISPATCH): Defined.
4514         (TARGET_SCHED_DISPATCH_DO): Defined.
4515         (DISPATCH_WINDOW_SIZE): Defined.
4516         (MAX_DISPATCH_WINDOWS): Defined.
4517         (MAX_INSN): Defined.
4518         (MAX_IMM): Defined.
4519         (MAX_IMM_SIZE): Defined.
4520         (MAX_IMM_32): Defined.
4521         (MAX_IMM_64): Defined.
4522         (MAX_LOAD): Defined.
4523         (MAX_STORE): Defined.
4524         (BIG): Defined.
4525         (dispatch_group): New.
4526         (num_allowable_groups): New.
4527         (group_name): New.
4528         (sched_insn_info_s): New.
4529         (dispatch_windows_s): New.
4530         (imm_info_s): New.
4531         (dispatch_window_list): New.
4532         (dispatch_window_list1): New.
4533         (get_mem_group): New.
4534         (is_cmp): New.
4535         (dispatch_violation): New.
4536         (is_branch): New.
4537         (is_prefetch): New.
4538         (init_window): New.
4539         (allocate_window): New.
4540         (init_dispatch_sched): New.
4541         (is_end_basic_block): New.
4542         (process_end_window): New.
4543         (allocate_next_window): New.
4544         (find_constant_1): New.
4545         (find_constant): New.
4546         (get_num_immediates): New.
4547         (has_immediate): New.
4548         (get_insn_path): New.
4549         (get_insn_group): New.
4550         (count_num_restricted): New.
4551         (fits_dispatch_window): New.
4552         (add_insn_window): New.
4553         (add_to_dispatch_window): New.
4554         (debug_dispatch_window_file): New.
4555         (debug_dispatch_window): New.
4556         (debug_insn_dispatch_info_file): New.
4557         (debug_ready_dispatch): New.
4558         (do_dispatch): New.
4559         (has_dispatch): New.
4560         * config/i386/i386.h (debug_ready_dispatch): Declared.
4561         (debug_dispatch_window): Declared.
4562         * config/i386/i386.opt (mdispatch-scheduler): New flag.
4563         * doc/tm.texi.in (TARGET_SCHED_DISPATCH): New.
4564         (TARGET_SCHED_DISPATCH_DO): New.
4565         * doc/tm.texi: Regererated.
4566         * haifa-sched.c (choose_ready): Call targetm.sched.dispatch and
4567         ready_remove_first_dispatch
4568         (schedule_block): Call targetm.sched.dispatch and
4569         targetm.sched.dispatch_do.
4570         (sched_init): Call targetm.sched.dispatch and
4571         targetm.sched.dispatch_do.
4572         (ready_remove_first_dispatch): New.
4573         (number_in_ready): New.
4574         (get_ready_element): New.
4575         * hooks.c (hook_bool_rtx_int_false): New.
4576         (hook_void_rtx_int): New.
4577         * hooks.h (hook_bool_rtx_int_false): Declared.
4578         (hook_void_rtx_int): Declared.
4579         * sched-int.h (IS_DISPATCH_ON): Defined.
4580         (IS_CMP): Defined.
4581         (DISPATCH_VIOLATION): Defined.
4582         (FITS_DISPATCH_WINDOW): Defined.
4583         (DISPATCH_INIT): Defined.
4584         (ADD_TO_DISPATCH_WINDOW): Defined.
4585         (get_ready_element): Declared.
4586         (number_in_ready): Declared.
4587         * target.def (dispatch): Defined.
4588         (dispatch_do): Defined.
4589
4590 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
4591
4592         PR middle-end/45312
4593         * reload1.c (merge_assigned_reloads): Remove.
4594         (reload_as_needed): Don't call it.
4595
4596 2010-09-09  Anatoly Sokolov  <aesok@post.ru>
4597
4598         * config/m32r/m32r.c (m32r_mode_dependent_address_p): New functions.
4599         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
4600         * config/m32r/m32r.h: (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
4601
4602 2010-09-09  Matthias Klose  <doko@ubuntu.com>
4603
4604         PR bootstrap/43847
4605         * configure.ac (--enable-plugin): Enhance for cross builds.
4606         * configure: Regenerate.
4607
4608 2010-09-09  Jan Hubicka  <jh@suse.cz>
4609
4610         PR tree-optimization/45598
4611         * tree-ssa-ccp.c (fold_const_aggregate_ref): Check that result of
4612         string folding is of integral type.
4613
4614 2010-09-09  Nathan Sidwell  <nathan@codesourcery.com>
4615
4616         * configure.ac (gnu_indirect_function): New test.
4617         * configure: Rebuilt.
4618         * config.in (HAVE_GAS_INDIRECT_FUNCTION): New.
4619         * defaults.h (IFUNC_ASM_TYPE): Provide default.
4620
4621         * doc/extend.texi (Function Attributes): Document ifunc.
4622         * varasm.c (do_assemble_alias): Deal with ifuncs too.
4623
4624 2010-09-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
4625
4626         * config/picochip/picochip.c (picochip_reorg): Check for note_p for
4627         epilogue instruction move.
4628
4629 2010-09-09  Jan Hubicka  <jh@suse.cz>
4630
4631         * collect2.c (maybe_run_lto_and_relink): Rewrite code producing ld
4632         command line to allow more partitions than input files.
4633
4634 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
4635
4636         PR middle-end/44554
4637         * ira.c (ira): Switch off sharing spill slots if setjmp is called.
4638
4639 2010-09-09  Vladimir Makarov  <vmakarov@redhat.com>
4640
4641         PR middle-end/40386
4642         * ira.c (pseudo_for_reload_consideration_p): Don't use
4643         flag_ira_share_spill_slots.
4644
4645 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4646
4647         * config/s390/s390.c (legitimate_reload_constant_p): Accept floating-
4648         point zero operands that fit into a single GPR.
4649         (s390_preferred_reload_class): Ensure we only return general-purpose
4650         register classes.
4651         * config/s390/s390.md ("*mov<mode>_64dfp"): Use lghi to load
4652         floating-point zero operands into GPRs.
4653         ("*mov<mode>_64"): Likewise.
4654         ("mov<mode>"): Likewise using lhi.
4655
4656 2010-09-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4657
4658         * config/s390/s390.c (s390_symref_operand_p): Return false for
4659         literal pool references.
4660         (s390_check_qrst_address): Update caller.
4661
4662 2010-09-09  Uros Bizjak  <ubizjak@gmail.com>
4663
4664         * config/i386/predicates.md (ext_register_operand): Check that
4665         SUBREG_REG is really a register before looking for REGNO.
4666         (reg_not_xmm0_operand): Handle SUBREGs correctly.
4667         (nonimm_not_xmm0_operand): Call reg_not_xmm0_operand.
4668
4669 2010-09-09  Jakub Jelinek  <jakub@redhat.com>
4670
4671         * rtl.def (DEBUG_IMPLICIT_PTR): New rtl code.
4672         * rtl.h (DEBUG_IMPLICIT_PTR_DECL): Define.
4673         * rtl.c (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_IMPLICIT_PTR.
4674         * print-rtl.c (print_rtx): Likewise.
4675         * cselib.c (rtx_equal_for_cselib_p, cselib_hash_rtx): Likewise.
4676         * cfgexpand.c (expand_debug_expr): Generate DEBUG_IMPLICIT_PTR
4677         for ADDR_EXPR with non-addressable object.
4678         * dwarf2out.c (enum dw_val_class): Add dw_val_class_decl_ref.
4679         (struct dw_val_struct): Add v.val_decl_ref.
4680         (dwarf_stack_op_name, output_loc_operands, output_loc_operands_raw):
4681         Handle DW_OP_GNU_implicit_pointer.
4682         (size_of_loc_descr): Likewise.  Fix up DW_OP_call_ref size.
4683         (get_ref_die_offset_label): New function.
4684         (implicit_ptr_descriptor): New function.
4685         (mem_loc_descriptor): Handle DEBUG_IMPLICIT_PTR.
4686         (loc_descriptor): Likewise.
4687         (gen_variable_die): Put even definitions into decl_die_table.
4688         (resolve_addr_in_expr): Resolve still unresolved
4689         DW_OP_GNU_implicit_pointer operands, if it can't be resolved
4690         return false.
4691         (dwarf2out_finish): Call output_location_lists after outputting
4692         .debug_info and .debug_abbrev instead of before.
4693
4694 2010-09-09  Roland McGrath  <roland@redhat.com>
4695
4696         * dwarf2out.c (DWARF_REF_SIZE): Define.
4697         (size_of_loc_descr): Use it for DW_OP_call_ref.
4698
4699 2010-09-09  Alan Modra  <amodra@gmail.com>
4700
4701         * doc/invoke.text: Reinstate mcmodel=medium.
4702         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
4703         CMODEL_MEDIUM as default.
4704         * config/rs6000/rs6000.h (enum rs6000_cmodel): Add CMODEL_MEDIUM.
4705         * config/rs6000/rs6000.c (rs6000_handle_option): Add mcmodel=medium.
4706         (toc_relative_ok, offsettable_ok_by_alignment): New functions.
4707         (rs6000_emit_move): Reinstate mcmodel=medium optimization.
4708
4709 2010-09-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4710
4711         PR target/45250
4712         * config/pa/pa.md (nonlocal_goto): Restore hard frame pointer using
4713         hard_frame_pointer_rtx instead of virtual_stack_vars_rtx.
4714         (builtin_longjmp): Likewise.
4715         (allocate_stack): Use hard_frame_pointer_rtx instead of
4716         frame_pointer_rtx.
4717         * config/pa/pa-protos.h (pa_initial_elimination_offset): Declare.
4718         * config/pa/pa.c (pa_internal_arg_pointer): Declare.
4719         (pa_can_eliminate): Likewise.
4720         (TARGET_INTERNAL_ARG_POINTER): Define.
4721         (TARGET_CAN_ELIMINATE): Define.
4722         (hppa_expand_prologue): Use hard frame pointer instead of soft frame
4723         pointer.
4724         (hppa_expand_epilogue, pa_eh_return_handler_rtx): Likewise.
4725         (pa_internal_arg_pointer, pa_can_eliminate,
4726         pa_initial_elimination_offset): New.
4727         * config/pa/pa.h (FRAME_POINTER_REGNUM): Set to new general register.
4728         (HARD_FRAME_POINTER_REGNUM): Set to register three.
4729         (INITIAL_FRAME_POINTER_OFFSET): Delete.
4730         (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET, DWARF_FRAME_REGISTERS):
4731         Define.
4732         (DWARF_ALT_FRAME_RETURN_COLUMN, REGNO_OK_FOR_INDEX_P,
4733         REGNO_OK_FOR_BASE_P): Update to include soft frame pointer.
4734         * config/pa/pa32-regs.h (FIRST_PSEUDO_REGISTER): Increase by one.
4735         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER,
4736         REG_CLASS_CONTENTS, REGNO_REG_CLASS, REGISTER_NAMES): Update to include
4737         new soft frame pointer.
4738         * config/pa/pa64-regs.h: Likewise.
4739
4740 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
4741
4742         * config/i386/i386.h (EH_RETURN_DATA_REGNO) Use DX_REG instead of
4743         numerical constant.
4744         (EH_RETURN_STACKADJ_RTX): Use CX_REG insted of numerical constant.
4745
4746 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
4747
4748         PR debug/45531
4749         * cfglayout.c (fixup_reorder_chain): Skip debug insns.
4750
4751 2010-09-08  Alexandre Oliva  <aoliva@redhat.com>
4752
4753         PR debug/45419
4754         PR debug/45408
4755         * tree-pretty-print.c (dump_generic_node): Disregard top-level
4756         qualifiers in otherwise equal MEM_REF pointer types.
4757         * fold-const.c (operand_equal_p): Compare pointer type of MEM_REFs.
4758         * tree.c (iterative_hash_expr): Hash the pointer type of MEM_REFs.
4759
4760 2010-09-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4761
4762         PR target/44392
4763         * config/arm/arm.md (bswapsi2): Handle condition correctly
4764         for armv6 and optimize_size.
4765
4766 2010-09-08  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
4767
4768         PR other/18555
4769         * doc/cppopts.texi (-isysroot): Document Darwin behaviour.
4770
4771 2010-09-08  Uros Bizjak  <ubizjak@gmail.com>
4772
4773         * config/i386/i386-protos.h (ix86_can_use_return_insn_p,
4774         symbolic_reference_mentioned_p, ix86_expand_movmem, ix86_expand_setmem,
4775         ix86_expand_strlen, legitimate_pic_address_disp_p,
4776         ix86_binary_operator_ok, ix86_unary_operator_ok, ix86_match_ccmode,
4777         ix86_expand_int_movcc, ix86_expand_fp_movcc, ix86_expand_int_addcc,
4778         ix86_check_movabs, ix86_secondary_memory_needed): Change function
4779         prototype to bool.
4780         * config/i386/i386.c (return_in_memory_32, return_in_memory_64,
4781         return_in_memory_ms_64, ix86_check_movabs,
4782         symbolic_reference_mentioned_p, ix86_can_use_return_insn_p,
4783         legitimate_pic_address_disp_p, ix86_binary_operator_ok,
4784         ix86_unary_operator_ok, ix86_match_ccmode, ix86_expand_int_movcc,
4785         ix86_expand_fp_movcc, ix86_expand_int_addcc, ix86_expand_movmem,
4786         ix86_expand_setmem, ix86_expand_strlen, inline_secondary_memory_needed,
4787         ix86_secondary_memory_needed): Change to bool.  Return
4788         "true" and "false" values.
4789         * config/i386/i386.md: Return "true" and "false" values.
4790
4791 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4792
4793         * doc/sourcebuild.texi (Effective-Target Keywords): Document
4794         run_expensive_tests.
4795
4796 2010-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4797
4798         * toplev.c (output_stack_usage): Use lbasename instead of basename.
4799
4800 2010-09-08  Martin Jambor  <mjambor@suse.cz>
4801
4802         PR other/45443
4803         * doc/invoke.texi: Add -fipa-cp-clone to list of switches turned on
4804         at -O3.
4805
4806 2010-09-08  Richard Guenther  <rguenther@suse.de>
4807
4808         * gimple.c (gimple_types, type_hash_cache): Move to GC memory.
4809         (visit): Adjust.
4810         (iterative_hash_gimple_type): Likewise.
4811         (gimple_type_hash): Likewise.
4812         (gimple_register_type): Likewise.
4813         (print_gimple_types_stats): Likewise.
4814         (free_gimple_type_tables): Likewise.
4815
4816 2010-09-08  Michael Matz  <matz@suse.de>
4817
4818         PR tree-optimization/43430
4819         * tree-vect-stmts.c (vectorizable_condition): Support multiple
4820         copies for conditional statements if it's not part of a reduction.
4821
4822 2010-09-08  Michael Matz  <matz@suse.de>
4823
4824         PR tree-optimization/33244
4825         * tree-ssa-sink.c (statement_sink_location): Don't sink into
4826         empty loop latches.
4827
4828 2010-09-08  Richard Guenther  <rguenther@suse.de>
4829
4830         PR tree-optimization/45578
4831         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr):
4832         Be more careful when transfering alignment information to
4833         the new induction variable.
4834         (copy_ref_info): Likewise.
4835
4836 2010-09-08  Richard Guenther  <rguenther@suse.de>
4837
4838         * tree.h (TYPE_ORIG_SIZE_TYPE): Remove.
4839         * c-typeck.c (comptypes_internal): Remove TYPE_ORIG_SIZE_TYPE checks.
4840
4841 2010-09-08  Arnaud Charlet  <charlet@adacore.com>
4842
4843         * c-tree.h, c-decl.c (build_enumerator): Add location parameter.
4844         * c-parser.c (c_parser_enum_specifier): Adjust call to build_enumerator.
4845
4846 2010-09-08  Kenneth Zadeck  <zadeck@naturalbridge.com>
4847
4848         PR doc/45587
4849         * doc/md.texi: Fixed modes on several standard pattern names.
4850
4851 2010-09-08  Mingjie Xing  <mingjie.xing@gmail.com>
4852
4853         * config/mips/loongson.md (loongson_psll<V_suffix>): Rename to...
4854         (ashl<mode>3): ...this.
4855         (loongson_psra<V_suffix>): Rename to...
4856         (ashr<mode>3): ...this.
4857         (loongson_psrl<V_suffix>): Rename to...
4858         (lshr<mode>3): ...this.
4859         * config/mips/mips.c (CODE_FOR_loongson_psllh): Define.
4860         (CODE_FOR_loongson_psllw): Define.
4861         (CODE_FOR_loongson_psrlh): Define.
4862         (CODE_FOR_loongson_psrlw): Define.
4863         (CODE_FOR_loongson_psrah): Define.
4864         (CODE_FOR_loongson_psraw): Define.
4865
4866 2010-09-07  Richard Henderson  <rth@redhat.com>
4867
4868         * tree-vect-data-refs.c: Include tm_p.h.
4869         * Makefile.in (tree-vect-data-refs.o): Update deps.
4870         * config/i386/i386-protos.h (ix86_cfun_abi, ix86_function_type_abi):
4871         Move delarations outside #ifdef RTX_CODE.
4872
4873 2010-09-07  Richard Henderson  <rth@redhat.com>
4874
4875         * final.c (rest_of_handle_final): Unconditionally do
4876         output_function_exception_table before assemble_end_function.
4877
4878 2010-09-07  Jan Hubicka  <jh@suse.cz>
4879
4880         * tree-inline.c (tree_inlinable_function_p): Do not test
4881         DECL_REPLACEABLE_P.
4882         * ipa-inline.c (cgraph_default_inline_p, update_caller_keys,
4883         update_callee_keys, cgraph_decide_inlining): Test function availability.
4884         * cif-code.def (OVERWRITABLE): New code.
4885
4886 2010-09-07  H.J. Lu  <hjl.tools@gmail.com>
4887             Jack Howarth  <howarth@bromo.med.uc.edu>
4888
4889         PR target/36502
4890         PR target/42313
4891         PR target/44651
4892         * config/i386/darwin.h (STACK_BOUNDARY): Redefine as 128 for
4893         profiling or 64-bit MS_ABI and as BITS_PER_WORD otherwise.
4894         (PREFERRED_STACK_BOUNDARY): Replace STACK_BOUNDARY with 128 in
4895         MAX macro.
4896
4897 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
4898
4899         * unwind-dw2-fde-glibc.c: Include <elf.h> for DT_CONFIG.
4900         Include <link.h> only if USE_PT_GNU_EH_FRAME is defined.
4901
4902 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
4903
4904         * config.gcc: Don't append t-android for Android targets.
4905
4906         * config/t-android: Removed.
4907
4908 2010-09-07  Richard Henderson  <rth@redhat.com>
4909
4910         * target.def (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): New hook.
4911         * doc/tm.texi.in: Add doc marker.
4912         * doc/tm.texi: Rebuild.
4913         * except.c (switch_to_exception_section): Always build.
4914         (output_one_function_exception_table): Move section switch,
4915         personality output, and label output ...
4916         (output_function_exception_table): ... here.  Use the new
4917         personality hook.
4918
4919         * config/ia64/ia64.c (ia64_asm_emit_except_personality,
4920         ia64_asm_init_sections, TARGET_ASM_EMIT_EXCEPT_PERSONALITY,
4921         TARGET_ASM_INIT_SECTIONS): New.
4922         (ia64_asm_unwind_emit): Rename from process_for_unwind_directive,
4923         make static.
4924         (TARGET_ASM_UNWIND_EMIT): Update to match.
4925         * config/ia64/ia64-protos.h (process_for_unwind_directive): Remove.
4926
4927         * config/arm/arm.c (arm_asm_emit_except_personality): New.
4928         (arm_asm_init_sections): New.
4929         (TARGET_ASM_EMIT_EXCEPT_PERSONALITY, TARGET_ASM_INIT_SECTIONS): New.
4930
4931 2010-09-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4932
4933         * config/arm/arm.md: Remove unused variable.
4934
4935 2010-09-07  Anatoly Sokolov  <aesok@post.ru>
4936
4937         * config/m32r/m32r.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
4938         * config/m32r/m32r.c (TARGET_MEMORY_MOVE_COSTS): Define.
4939         (m32r_memory_move_cost): New function.
4940
4941 2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
4942
4943         * config.gcc: Append t-android for Android targets.
4944
4945         * config/t-android: New.
4946
4947 2010-09-07  Richard Henderson  <rth@redhat.com>
4948
4949         * target.def (unwind_emit_before_insn): New hook.
4950         * doc/tm.texi.in: Add @hook marker for it.
4951         * doc/tm.texi: Rebuild.
4952         * final.c (final_scan_insn): Respect unwind_emit_before_insn.
4953
4954 2010-09-07  Martin Jambor  <mjambor@suse.cz>
4955
4956         PR fortran/43665
4957         * ipa-cp.c (ipcp_versionable_function_p): Return false if there
4958         are any type attributes.
4959
4960 2010-09-07  Jan Hubicka  <jh@suse.cz>
4961
4962         * tree-ssa-ccp.c (fold_const_aggregate_ref): Fix handling of
4963         array_ref_low_bound in string access folding.
4964
4965 2010-09-07  Uros Bizjak  <ubizjak@gmail.com>
4966
4967         PR target/45206
4968         * config/i386/i386.c (ix86_expand_epilogue): Mark SP as valid after
4969         eh_return fixup sequence.
4970
4971 2010-09-07  Jan Hubicka  <jh@suse.cz>
4972
4973         * gimple-fold.c (maybe_fold_reference): Verify that operand is
4974         gimple_min_invariant.
4975
4976 2010-09-07  Richard Guenther  <rguenther@suse.de>
4977
4978         PR middle-end/45569
4979         * tree-eh.c (operation_could_trap_helper_p): Neither COMPLEX_EXPR
4980         nor CONSTRUCTOR can trap.
4981         * tree-complex.c (update_complex_assignment): Update EH info.
4982
4983 2010-09-07  Richard Guenther  <rguenther@suse.de>
4984
4985         PR middle-end/45569
4986         * tree-cfg.c (build_gimple_cfg): Remove redundant stmt verification.
4987         * passes.c (execute_function_todo): Do not verify anything if
4988         we saw errors.
4989
4990 2010-09-07  Richard Guenther  <rguenther@suse.de>
4991
4992         * tree-pretty-print.c (dump_generic_node): Dump void types as void.
4993
4994 2010-09-07  Bernd Schmidt  <bernds@codesourcery.com>
4995
4996         PR target/43137
4997         * config/arm/iterators.md (qhs_zextenddi_cond, qhs_sextenddi_cond):
4998         New define_mode_attrs.
4999         * config/arm/arm.md (zero_extendsidi2, arm_zero_extendsidi2,
5000         arm_exxtendsidi2, arm_extendsidi2): Delete patterns.
5001         (zero_extend<mode>di2, extend<mode>di2 and related splits): New.
5002         (thumb1_zero_extendhisi2): Remove code to handle LABEL_REFs.
5003         Remove pool_range attribute.
5004         (arm_zero_extendhisi2, arm_zero_extendhisi2_v6, arm_zero_extendqisi2,
5005         arm_zero_extendqisi2_v6, thumb1_zero_extendqisi2_v6): Remove
5006         pool_range and neg_pool_range attributes.
5007         * config/arm/thumb2.md (thumb2_zero_extendsidi2,
5008         thumb2_zero_extendhidi2, thumb2_zero_extendqidi2, thumb2_extendsidi2,
5009         thumb2_extendhidi2, thumb2_extendqidi2): Delete.
5010
5011 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
5012
5013         * config/i386/linux-unwind.h (x86_fallback_frame_state): Properly
5014         check glibc.
5015
5016 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
5017
5018         PR target/22152
5019         * config/i386/mmx.md (*mov<mode>_internal_rex64,
5020         *mov<mode>_internal_avx, *mov<mode>_internal,
5021         *movv2sf_internal_rex64_avx, *movv2sf_internal_rex64,
5022         *movv2sf_internal_avx, *movv2sf_internal): Split out !y-!y alternative.
5023
5024 2010-09-06  Mark Mitchell  <mark@codesourcery.com>
5025
5026         * c-typeck.c (do_warn_double_promotion): Remove.
5027         * doc/invoke.texi (-Wdouble-promotion): Note available for C++ and
5028         Objective-C++ too.
5029
5030 2010-09-06  Anatoly Sokolov  <aesok@post.ru>
5031
5032         * config/frv/frv.h (CLASS_LIKELY_SPILLED_P): Remove.
5033         * config/frv/frv-protos.h (frv_class_likely_spilled_p): Remove.
5034         * config/frv/frv.c (frv_class_likely_spilled_p): Make static. Change
5035         argument type to reg_class_t. Change result type to bool.
5036         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5037
5038 2010-09-06  Nicola Pero  <nicola.pero@meta-innovation.com>
5039
5040         PR libobjc/19850
5041         * gthr-posix.h (__gthread_objc_thread_detach): Use
5042         _objc_thread_attribs when detaching a thread.
5043         * gthr-posix95.h (__gthread_objc_thread_detach): Same change.
5044
5045 2010-09-06  H.J. Lu  <hongjiu.lu@intel.com>
5046
5047         PR target/45524
5048         * configure.ac (enable_decimal_float): Set to $default_decimal_float.
5049         * configure: Regenerated.
5050
5051 2010-09-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5052
5053         * combine.c (try_combine): Set subst_low_luid to i0.
5054
5055 2010-09-06  Richard Guenther  <rguenther@suse.de>
5056
5057         * tree.def (MISALIGNED_INDIRECT_REF): Remove.
5058         * tree.h (INDIRECT_REF_P): Only check for INDIRECT_REF.
5059         (build_aligned_type): Declare.
5060         * tree.c (check_qualified_type): Also compare TYPE_ALIGN.
5061         (check_aligned_type): New function.
5062         (build_aligned_type): Likewise.
5063         * expr.c (expand_assignment): Handle misaligned stores via
5064         TARGET_MEM_REF and MEM_REF using movmisalign_optab.
5065         (expand_expr_real_1): Likewise.
5066         (safe_from_p): Remove MISALIGNED_INDIRECT_REF handling.
5067         * tree-vect-stmts.c (vectorizable_store): Do not build
5068         MISALIGNED_INDIRECT_REF but initialize alignment information.
5069         (vectorizable_load): Likewise.
5070         * builtins.c (get_object_alignment): Remove MISALIGNED_INDIRECT_REF
5071         handling.
5072         * cfgexpand.c (expand_debug_expr): Likewise.
5073         * dwarf2out.c (loc_list_from_tree): Likewise.
5074         * fold-const.c (maybe_lvalue_p): Likewise.
5075         (operand_equal_p): Likewise.
5076         (build_fold_addr_expr_with_type_loc): Likewise.
5077         * gimplify.c (gimplify_addr_expr): Likewise.
5078         (gimplify_expr): Likewise.
5079         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
5080         (verify_gimple_assign_single): Likewise.
5081         * tree-dump.c (dequeue_and_dump): Likewise.
5082         (tree_could_trap_p): Likewise.
5083         * tree-predcom.c (ref_at_iteration): Likewise.
5084         * tree-pretty-print.c (dump_generic_node): Likewise.
5085         (op_code_prio): Likewise.
5086         (op_symbol_code): Likewise.
5087         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
5088         * tree-ssa-loop-im.c (for_each_index): Likewise.
5089         (gen_lsm_tmp_name): Likewise.
5090         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
5091         (find_interesting_uses_address): Likewise.
5092         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
5093         * tree-ssa-operands.c (get_expr_operands): Likewise.
5094         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
5095         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
5096         (ao_ref_init_from_vn_reference): Likewise.
5097         * tree.c (staticp): Likewise.
5098         (build1_stat): Likewise.
5099         (reference_alias_ptr_type): Likewise.
5100         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5101         * config/rs6000/rs6000.c (rs6000_check_sdmode): Remove
5102         MISALIGNED_INDIRECT_REF handling.
5103
5104 2010-09-06  Richard Guenther  <rguenther@suse.de>
5105
5106         PR tree-optimization/45534
5107         * tree-ssa-address.c (create_mem_ref_raw): Add verify parameter.
5108         (create_mem_ref): Do verify the created TARGET_MEM_REF is valid
5109         on the target.
5110         (maybe_fold_tmr): Do not verify the created TARGET_MEM_REF is
5111         valid on the target.
5112
5113 2010-09-06  Andreas Schwab  <schwab@redhat.com>
5114
5115         * configure.ac: Quote argument of AC_MSG_WARN.
5116         * configure: Regenerate.
5117
5118 2010-09-06  Alexander Monakov  <amonakov@ispras.ru>
5119
5120         * sel-sched.c (move_cond_jump): Correct arguments to
5121         maybe_tidy_empty_bb.
5122         * sel-sched-ir.c (maybe_tidy_empty_bb): Export.
5123
5124 2010-09-06  Andrey Belevantsev  <abel@ispras.ru>
5125
5126         PR rtl-optimization/44919
5127         * sel-sched.c (move_cond_jump): Remove assert, check that
5128         the several blocks case can only happen with mutually exclusive
5129         insns instead.  Rewrite the movement code to support moving through
5130         several basic blocks.
5131
5132 2010-09-06  Uros Bizjak  <ubizjak@gmail.com>
5133
5134         * config/i386/i386.md (iptrsize): New mode attribute.
5135         (tp_seg): Ditto.
5136         (*load_tp_<mode>): Macroize insn from *load_tp_{si,di} using P
5137         mode iterator.
5138         (*add_tp_<mode>): Ditto from *add_tp_{si,di}.
5139         (stack_protect_set_<mode>): Ditto from stack_protect_set_{si,di}.
5140         (stack_protect_test_<mode>): Ditto from stack_protect_test_{si,di}.
5141         (stack_tls_protect_set_<mode>): Ditto from
5142         stack_tls_protect_set_{si,di}.  Use %@ to output segment register
5143         of thread base pointer load.
5144         (stack_tls_protect_test_<mode>): Ditto from
5145         stack_tls_protect_test_{si,di}.  Use %@ to output segment register
5146         of thread base pointer load.
5147         (stack_protect_set): Rewrite using indirect functions.
5148         (stack_protect_test): Ditto.
5149         * config/i386/i386.c (ix86_print_operand_punct_valid): Add '@'.
5150         (ix86_print_operand): Handle '@'.
5151
5152 2010-09-05  Giuseppe Scrivano  <gscrivano@gnu.org>
5153
5154         * tree-tailcall.c (process_assignment): Handle NEGATE_EXPR and
5155         MINUS_EXPR.
5156
5157 2010-09-05  Mark Mitchell  <mark@codesourcery.com>
5158
5159         * doc/invoke.texi: Document -Wdouble-promotion.
5160         * c-typeck.c (convert_arguments): Check for implicit conversions
5161         from float to double.
5162         (do_warn_double_promotion): New function.
5163         (build_conditional_expr): Use it.
5164         (build_binary_op): Likewise.
5165
5166 2010-09-05  Richard Guenther  <rguenther@suse.de>
5167
5168         PR tree-optimization/45535
5169         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
5170         handle TMR_INDEX2.  Make sure TMR_INDEX is not NULL before
5171         dereferencing it.
5172         (indirect_refs_may_alias_p): Likewise.
5173
5174 2010-09-05  Naveen H.S  <naveen.S@kpitcummins.com>
5175
5176         * config/sh/sh.c (sh_option_override): Make static.
5177         Adjust comments.  Declare.
5178         (sh_function_value_regno_p): Likewise.
5179         (sh_register_move_cost): Modify the arguments, make static.
5180         Adjust comments.  Declare.
5181         (TARGET_OPTION_OVERRIDE, TARGET_REGISTER_MOVE_COST
5182         TARGET_FUNCTION_VALUE_REGNO_P): Define.
5183         * config/sh/sh.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P
5184         REGISTER_MOVE_COST): Delete.
5185         * config/sh/sh-protos.h (sh_override_options): Delete.
5186         (sh_register_move_cost): Delete.
5187         (sh_function_value_regno_p): Delete.
5188
5189 2010-09-04  Anatoly Sokolov  <aesok@post.ru>
5190
5191         * config/m32r/m32r.c (m32r_function_value, m32r_libcall_value,
5192         m32r_function_value_regno_p): New functions.
5193         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5194         TARGET_FUNCTION_VALUE_REGNO_P): Declare.
5195         * config/m32r/m32r.h: (FUNCTION_VALUE, LIBCALL_VALUE,
5196         FUNCTION_VALUE_REGNO_P): Remove.
5197
5198 2010-09-04  Jan Hubicka  <jh@suse.cz>
5199
5200         * gimple-fold.c (maybe_fold_reference): Use fold_const_aggregate_ref.
5201         * tree-ssa-ccp.c (fold_const_aggregate_ref): Use
5202         fold_read_from_constant_string.
5203
5204         * gimple.h (canonicalize_constructor_val): Declare.
5205         * gimple-fold.c (canonicalize_constructor_val): New function.
5206         (get_symbol_constant_value):Use it.
5207         * tree-ssa-ccp.c (fold_const_aggregate_ref): Likewise.
5208
5209 2010-09-04  Jan Hubicka  <jh@suse.cz>
5210
5211         * tree-switch-conversion.c (build_one_array): Set constructor to be
5212         static.
5213         * varpool.c (varpool_finalize_decl): Compute const_value_known.
5214
5215 2010-09-04  Richard Guenther  <rguenther@suse.de>
5216
5217         PR bootstrap/45519
5218         * tree-flow.h (force_gimple_operand_1): Declare.
5219         (force_gimple_operand_gsi_1): Likewise.
5220         * gimplify.c (force_gimple_operand_1): New worker taking a
5221         gimple predicate for ...
5222         (force_gimple_operand): ... which now wraps it.
5223         (force_gimple_operand_gsi_1, force_gimple_operand_gsi): Likewise.
5224         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Revert
5225         last change.
5226         * tree-ssa-address.c (gimplify_mem_ref_parts): Use
5227         force_gimple_operand_gsi_1 with is_gimple_mem_ref_addr.
5228         (create_mem_ref): Likewise.
5229
5230 2010-09-04  Uros Bizjak  <ubizjak@gmail.com>
5231
5232         * config/i386/predicates.md (sse_reg_operand): New predicate.
5233         * config/i386/i386.md (TFmode push splitter): Use sse_reg_operand
5234         predicate for operand 1.
5235         (XFmode push splitter): Use fp_register_operand predicate
5236         for operand 1.
5237         (*dummy_extendsfdf2, *dummy_extendsfxf2): Remove disabled patterns.
5238         (SF-DF float_extend push splitter): Add reload_completed insn
5239         predicate.
5240         ({SF,DF}-XF float_extend_push splitter): Macroize splitter using
5241         MODEF mode macro.  Add reload_completed insn predicate.
5242
5243 2010-09-04  Paolo Bonzini  <bonzini@gnu.org>
5244
5245         * df.h (enum df_ref_class): Remove DF_REF_EXTRACT.
5246         (struct df_extract_ref): Remove.
5247         (union df_ref_d): Remove extract_ref member.
5248         (df_ref_create): Remove last three arguments.
5249         (DF_REF_LOC): Remove DF_REF_EXTRACT case.
5250         * df-scan.c (df_ref_record): Remove last three arguments, do not
5251         pass them to df_ref_create_structure.
5252         (df_uses_record): Remove first and last three arguments.  Replace
5253         first argument with DF_REF_REGULAR, adjust calls to remove the
5254         width, offset and mode.  Always call recursively on the second
5255         and third argument of ZERO_EXTRACT and SIGN_EXTRACT.
5256         (df_ref_create_structure): Remove first argument.
5257         (struct df_scan_problem_data): Remove ref_extract_pool.
5258         (df_scan_free_internal): Do not free it.
5259         (df_scan_alloc): Do not allocate it.
5260         (df_ref_create): Remove last three arguments, do not pass them to
5261         df_ref_create_structure.
5262         (df_free_ref): Remove DF_REF_EXTRACT case.
5263         (df_notes_rescan): Adjust call to df_uses_record.
5264         (df_ref_equal_p, df_ref_compare, df_ref_create_structure):
5265         Remove DF_REF_EXTRACT case.
5266         (df_def_record_1): Do not special case class for a ZERO_EXTRACT lhs.
5267         Adjust calls to df_ref_record, using DF_REF_REGULAR for all REG
5268         and SUBREG definitions.
5269         (df_get_conditional_uses): Remove references to width/offset/mode,
5270         adjust call to df_ref_create_structure.
5271         (df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect,
5272         df_entry_block_defs_collect, df_exit_block_uses_collect): Adjust
5273         calls to df_uses_record and df_ref_record.
5274         * fwprop.c (update_df): Remove references to width/offset/mode,
5275         adjust call to df_ref_create.
5276
5277 2010-09-03  Jan Hubicka  <jh@suse.cz>
5278
5279         * ipa.c (build_cdtor): Take VECtor as argument; fix array walk.
5280         (build_cdtor_fns): Update use of build_cdtor.
5281
5282 2010-09-03  Joseph Myers  <joseph@codesourcery.com>
5283
5284         * doc/options.texi (SeparateAlias): Document.
5285         * opt-functions.awk (switch_flags): Handle SeparateAlias.
5286         * opth-gen.awk: Generate enumeration names for options marked
5287         SeparateAlias, but not for those marked Ignore.
5288         * opts-common.c (generate_canonical_option): Don't output separate
5289         argument for options marked CL_SEPARATE_ALIAS.
5290         (decode_cmdline_option): Handle CL_SEPARATE_ALIAS.
5291         * opts.h (CL_SEPARATE_ALIAS): New.
5292         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
5293         CL_COMMON): Adjust definitions.
5294         * config/i386/darwin.opt, config/mips/sde.opt: New.
5295         * common.opt (fdump-final-insns): New.
5296         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
5297         i386/darwin.opt.
5298         (mips*-sde-elf*): Add mips/sde.opt.
5299         * config/mips/sde.h (DRIVER_SELF_SPECS): Don't handle
5300         -mno-data-in-code and -mcode-xonly here.
5301         * defaults.h (DEFAULT_SWITCH_TAKES_ARG): Add 'd'.
5302         * gcc.c (option_map): Add "j" to --dump entry.
5303         (translate_options): Don't translate -d to -foutput-class-dir= here.
5304
5305 2010-09-03  Sebastian Pop  <sebastian.pop@amd.com>
5306
5307         * tree-data-ref.c (dr_may_alias_p): Replace !DR_IS_READ with
5308         DR_IS_WRITE.
5309         (compute_all_dependences): Same.
5310         (create_rdg_edge_for_ddr): Same.
5311         * tree-data-ref.h (DR_IS_WRITE): New.
5312         (ddr_is_anti_dependent): Replace !DR_IS_READ with DR_IS_WRITE.
5313         * tree-if-conv.c (write_memrefs_written_at_least_once): Same.
5314         (write_memrefs_written_at_least_once): Same.
5315         * tree-predcom.c (suitable_component_p): Same.
5316         (determine_roots_comp): Same.
5317         (execute_load_motion): Same.
5318         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Same.
5319         (vect_enhance_data_refs_alignment): Same.
5320         (vect_analyze_group_access): Same.
5321
5322 2010-09-03  Joern Rennecke  <joern.rennecke@embecosm.com>
5323
5324         PR testsuite/42843
5325         * Makefile.in (PLUGINCC): Define in terms of @CC@ / @CXX@
5326         (PLUGINCFLAGS): Define in terms of @CFLAGS@ / @CXXFLAGS@
5327
5328 2010-09-03  Marcin Baczynski  <marbacz@gmail.com>
5329
5330         * dwarf2out.c (file scope): Remove #if0'd code.
5331         (gen_subprogram_die): Same.
5332
5333 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
5334
5335         PR middle-end/45484
5336         * dwarf2out.c (flush_queued_reg_saves): Rename to...
5337         (dwarf2out_flush_queued_reg_saves): ... this.  No longer static.
5338         (dwarf2out_frame_debug_expr, dwarf2out_frame_debug): Adjust callers.
5339         * dwarf2out.h (dwarf2out_flush_queued_reg_saves): New prototype.
5340         * config/i386/i386.c (output_set_got): Call it.
5341
5342 2010-09-03  Michael Matz  <matz@suse.de>
5343
5344         PR middle-end/45415
5345         * tree-sra.c (sra_modify_assign): If we modify the statement,
5346         say so.
5347
5348         * tree-ssa.c (verify_ssa): Check number of operands and links
5349         per statement to agree.
5350
5351 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
5352             Iain Sandoe  <iains@gcc.gnu.org>
5353
5354         PR target/45476
5355         * config/i386/t-darwin (LIB2FUNCS_EXCLUDE): New.
5356         * config/i386/darwin.h (LIBGCC2_HAS_TF_MODE,
5357         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
5358
5359 2010-09-03  Richard Guenther  <rguenther@suse.de>
5360
5361         * lto-streamer-out.c (output_function): Output function
5362         start and end loci.
5363         * lto-streamer-in.c (input_function): Input function start
5364         and end loci.
5365
5366 2010-09-03  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
5367
5368         * configure.ac: Use the GCC_AC_ENABLE_DECIMAL_FLOAT macro.
5369         * Makefile.in: Add aclocal.m4 dependency to dfp.m4.
5370         * configure: Regenerate.
5371         * aclocal.m4: Regenerate.
5372
5373 2010-09-03  Jan Hubicka  <jh@suse.cz>
5374
5375         PR lto/44812
5376         * lto-cgraph.c (intput_node, input_varpool_node): Set DECL_EXTERNAL
5377         on functions/variables in other partition.
5378
5379 2010-09-03  Jan Hubicka  <jh@suse.cz>
5380
5381         * cgraph.h (struct varpool_node): Add const_value_known.
5382         (varpool_decide_const_value_known): Declare.
5383         * tree-ssa-ccp.c (fold_const_aggregate_ref): Update initializer folding.
5384         * lto-cgraph.c (lto_output_varpool_node): Store const_value_known.
5385         (input_varpool_node): Restore const_value_known.
5386         * tree-ssa-loop-ivcanon (constant_after_peeling): Check varpool for
5387         initializer folding.
5388         * ipa.c (ipa_discover_readonly_nonaddressable_var,
5389         function_and_variable_visibility): Compute const_value_known.
5390         * gimple-fold.c (get_symbol_constant_value): Use varpool for
5391         initializer folding.
5392         * varpool.c (varpool_decide_const_value_known): New function.
5393
5394 2010-09-03  Uros Bizjak  <ubizjak@gmail.com>
5395
5396         * config/i386/i386.md: Remove empty preparation statements
5397         from splitters.
5398
5399 2010-09-03  Jan Hubicka  <jh@suse.cz>
5400
5401         * passes.c (rest_of_decl_compilation): Do not add local vars into
5402         varpool.
5403         * varpool.c (varpool_get_node, varpool_node): Sanity check that only
5404         static or extern vars are in varpool.
5405         (varpool_finalize_decl): Sanity check that only static vars are
5406         finalized.
5407
5408 2010-09-03  Jakub Jelinek  <jakub@redhat.com>
5409
5410         PR debug/45500
5411         * dwarf2out.c (rtl_for_decl_init): Give up for all generic vectors,
5412         not just generic vectors with BLKmode.
5413
5414 2010-09-03  Richard Guenther  <rguenther@suse.de>
5415
5416         * tree.def (TARGET_MEM_REF): Merge TMR_SYMBOL and TMR_BASE.
5417         Move TMR_OFFSET to second operand.  Add TMR_INDEX2.
5418         * tree.h (TMR_SYMBOL): Remove.
5419         (TMR_BASE, TMR_OFFSET): Adjust.
5420         (TMR_INDEX2): New.
5421         * alias.c (ao_ref_from_mem): Use TMR_BASE.
5422         * builtins.c (get_object_alignment): Merge TMR_BASE and
5423         TMR_SYMBOL handling.
5424         * cfgexpand.c (expand_debug_expr): Use TMR_BASE.
5425         * gimple.c (get_base_address): Merge MEM_REF and TARGET_MEM_REF
5426         handling.  Also allow TARGET_MEM_REF as base address.
5427         (walk_stmt_load_store_addr_ops): TMR_BASE is always non-NULL.
5428         * gimplify.c (gimplify_expr): Gimplify TMR_BASE like MEM_REF
5429         base.  Gimplify TMR_INDEX2.
5430         * tree-cfg.c (verify_types_in_gimple_reference): Adjust.
5431         * tree-dfa.c (get_ref_base_and_extent): Likewise.
5432         (get_addr_base_and_unit_offset): Likewise.
5433         * tree-eh.c (tree_could_trap_p): Likewise.
5434         * tree-pretty-print.c (dump_generic_node): Likewise.
5435         * tree-ssa-address.c (tree_mem_ref_addr): Simplify.  Handle TMR_INDEX2.
5436         (create_mem_ref_raw): Merge symbol and base.  Move 2ndary
5437         base to index2.
5438         (get_address_description): Reconstruct addres description
5439         from merged TMR_BASE and TMR_INDEX2.
5440         (maybe_fold_tmr): Fold propagated addresses.
5441         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Merge
5442         MEM_REF and TARGET_MEM_REF paths.
5443         (indirect_refs_may_alias_p): Likewise.
5444         * tree-ssa-live.c (mark_all_vars_used_1): Handle TMR_INDEX2
5445         instead of TMR_SYMBOL.
5446         * tree-ssa-operands.c (get_tmr_operands): Simplify.
5447         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Adjust
5448         according to changes ...
5449         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): ... here.
5450         Split TARGET_MEM_REF into two fields plus the base.
5451         * tree.c (mem_ref_offset): Simplify.
5452         * tree-ssa-loop-im.c (for_each_index): Handle TMR_INDEX2.
5453         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise.
5454         Strip NOPs when folding MEM_REF addresses.
5455         * tree-ssa-sink.c (is_hidden_global_store): Handle TARGET_MEM_REF.
5456         * gimple-fold.c (maybe_fold_reference): Fold TARGET_MEM_REF here ...
5457         (fold_gimple_assign): ... not here.
5458
5459 2010-09-03  Mingjie Xing  <mingjie.xing@gmail.com>
5460
5461         * config/mips/mips.h (SHIFT_COUNT_TRUNCATED): Change the definition.
5462         * config/mips/mips.c (mips_shift_truncation_mask): New function.
5463         (TARGET_SHIFT_TRUNCATION_MASK): Define.
5464
5465 2010-09-02  Richard Henderson  <rth@redhat.com>
5466
5467         * configure.ac (gcc_cv_as_cfi_advance_working): Use objdump
5468         instead of readelf in the test.
5469         (gcc_cv_as_cfi_sections_directive): Check for correct relocation
5470         in the .debug_frame section for coff targets.
5471         * configure: Rebuild.
5472
5473 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
5474
5475         * config/m32c/m32c.h (CLASS_LIKELY_SPILLED_P): Remove.
5476         * config/m32c/m32c-protos.h (m32c_class_likely_spilled_p): Remove.
5477         * config/m32c/m32c.c (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5478         (m32c_class_likely_spilled_p): Make static. Change argument type to
5479         reg_class_t. Change result type to bool.
5480
5481 2010-09-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
5482
5483         * config/rs6000/rs6000.opt (-mfriz): New switch to control whether
5484         to convert (double)(long) into a single FRIZ instruction or not
5485         when -ffast-math is used.
5486
5487         * config/rs6000/vsx.md (VSX_DF): New iterator for DF/V2DF modes.
5488         (vsx_float_fix_<mode>2): Optimize (double)(long) into X{S,V}RDPIZ
5489         or FRIZ instruction if -ffast-math.
5490         * config/rs6000/rs6000.md (friz): Ditto.
5491
5492         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mfriz.
5493
5494 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
5495
5496         * opth-gen.awk (quote, comma): Remove unused variables.
5497
5498 2010-09-02  Ryan Mansfield  <rmansfield@qnx.com>
5499
5500         * arm.c (arm_override_options): Correct fall-back code to use
5501         SUBTARGET_CPU_DEFAULT.
5502
5503 2010-09-02  Julian Brown  <julian@codesourcery.com>
5504
5505         * config/arm/neon.md (UNSPEC_VCLE, UNSPEC_VCLT): New constants for
5506         unspecs.
5507         (vcond<mode>, vcondu<mode>): New expanders.
5508         (neon_vceq<mode>, neon_vcge<mode>, neon_vcgt<mode>): Support
5509         comparisons with zero.
5510         (neon_vcle<mode>, neon_vclt<mode>): New patterns.
5511         * config/arm/constraints.md (Dz): New constraint.
5512
5513 2010-09-02  Anatoly Sokolov  <aesok@post.ru>
5514
5515         * target.def (class_likely_spilled_p): New hook.
5516         * doc/tm.texi.in (TARGET_CLASS_LIKELY_SPILLED_P): Document.
5517         * doc/tm.texi: Regenerate.
5518         * targhooks.c (default_class_likely_spilled_p): New function.
5519         * targhooks.h (default_class_likely_spilled_p): Declare.
5520         * regs.h (CLASS_LIKELY_SPILLED_P): Remove.
5521         * combine.c (cant_combine_insn_p, likely_spilled_retval_p): Use
5522         TARGET_CLASS_LIKELY_SPILLED_P target hook. Use HARD_REGISTER_P macro.
5523         Use fixed_reg_set instead of fixed_regs.
5524         * cse.c (hash_rtx_cb): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
5525         * calls.c (avoid_likely_spilled_reg): Ditto.
5526         * ira-conflicts.c (ira_build_conflicts): Ditto.
5527         * ira.c (update_equiv_regs): Ditto.
5528         * mode-switching.c (create_pre_exit): Ditto.
5529         * regmove.c (find_matches): Ditto.
5530         (regclass_compatible_p): Use TARGET_CLASS_LIKELY_SPILLED_P target hook.
5531         * reload.c (SMALL_REGISTER_CLASS_P): Remove macro.
5532         (small_register_class_p): New inline function.
5533         (push_secondary_reload, find_reusable_reload, find_reloads): Use
5534         small_register_class_p instead of SMALL_REGISTER_CLASS_P.
5535
5536         * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Remove.
5537         * config/i386/i386.c (ix86_class_likely_spilled_p): New.
5538         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
5539
5540 2010-09-02  Richard Guenther  <rguenther@suse.de>
5541
5542         PR tree-optimization/44937
5543         PR tree-optimization/45412
5544         * ipa-split.c (split_function): Properly remove PHI nodes.
5545
5546 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
5547
5548         * opts.h (struct cl_option): Add warn_message field.
5549         (struct cl_decoded_option): Add warn_message field.
5550         * doc/options.texi (Ignore, Warn): Document.
5551         * opt-functions.awk (needs_state_p): Don't consider aliases or
5552         ignored options to need state saved.
5553         * optc-gen.awk: Handle Warn and Ignore.
5554         * opth-gen.awk: Output OPT_SPECIAL_ignore.
5555         * opts-common.c (decode_cmdline_option): Set warn_message field.
5556         Handle ignored options.
5557         (decode_cmdline_options_to_array, generate_option,
5558         generate_option_input_file): Set warn_message field.
5559         (read_cmdline_option): Generate warnings from warn_message field.
5560         Handle ignored options.
5561         * common.opt (Wunreachable-code, fargument-alias,
5562         fargument-noalias, fargument-noalias-global,
5563         fargument-noalias-anything, fcse-skip-blocks, fforce-addr,
5564         floop-optimize, frerun-loop-opt, fsched2-use-traces, fsee,
5565         fstrength-reduce, ftree-store-ccp, ftree-store-copy-prop,
5566         ftree-salias): Mark Ignore.
5567         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -mcpu,
5568         -mintel-syntax and -mno-intel-syntax here.
5569         * config/i386/i386.opt (mcpu=, mintel-syntax): Define as aliases
5570         using Warn.
5571         * opts.c (common_handle_option): Don't handle options marked as
5572         ignored.
5573         (enable_warning_as_error): Handle ignored options.
5574
5575 2010-09-02  Joseph Myers  <joseph@codesourcery.com>
5576
5577         PR driver/44076
5578         * opts.h (struct cl_option): Add alias_arg, neg_alias_arg and
5579         alias_target fields.
5580         * opt-functions.awk (opt_sanitized_name): Don't handle
5581         finline-limit=, Wlarger-than= and ftemplate-depth= specially.
5582         * optc-gen.awk: Generate alias fields.
5583         * opth-gen.awk: Explicitly give values for OPT_* enum constants.
5584         Don't generate such constants for aliases.
5585         * opts-common.c (generate_canonical_option): New.
5586         (decode_cmdline_option): Handle aliases.  Use
5587         generate_canonical_option for known options instead of copying the
5588         input option text.
5589         * doc/options.texi (Alias): Document.
5590         * common.opt (W, Wlarger-than-, aux-info=, finline-limit-,
5591         fstack-check, specs): Mark as aliases.
5592         * gcc.c (driver_handle_option): Canonicalize -L options to joined
5593         arguments.
5594         (driver_handle_option): Don't handle OPT_specs.
5595         * opts.c (common_handle_option): Don't handle options marked as
5596         aliases.
5597         (enable_warning_as_error): Handle aliases.
5598         * stor-layout.c (layout_decl): Use OPT_Wlarger_than_ instead of
5599         OPT_Wlarger_than_eq.
5600         * tree-optimize.c (tree_rest_of_compilation): Use
5601         OPT_Wlarger_than_ instead of OPT_Wlarger_than_eq.
5602
5603 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
5604
5605         * config/i386/i386.md (nonmemory_operand): New mode attribute.
5606         (push memory peephole2): Macroize peepholes using SWI mode iterator.
5607         (move immediate to memory peephole2): Macroize peepholes using
5608         SWI124 mode iterator.
5609         (non-pairable NOT peephole2): Macroize peepholes using SWI124
5610         mode iterator.
5611         (simple lea add peephole2): Macroize peepholes using SWI48
5612         mode iterator.
5613         (simple lea mult peephole2): Ditto.
5614         (imul by 3,5,9 to lea peephole2): Ditto.
5615         (mov $-1, reg peephole2): Macroize peepholes using SWI248
5616         mode iterator.
5617         (imul $32bit_imm,mem,reg peephole2): Ditto.
5618         (imul $8/16bit_imm,regmem,reg peephole2): Ditto.
5619
5620 2010-09-02  Ian Bolton  <ian.bolton@arm.com>
5621
5622         * tree-ssa-loop-prefetch.c: Fix comment at head of file.
5623
5624 2010-09-02  Olivier Hainque  <hainque@adacore.com>
5625
5626         PR middle-end/44763
5627         * ira-color.c (SORTGT): New macro, helper for qsort callbacks.
5628         (allocno_priority_compare_func): Use it instead of a straight
5629         difference computation over priorities.
5630
5631 2010-09-02  Andi Kleen  <ak@linux.intel.com>
5632
5633         * opts.c (common_handle_option): Fix OPT_fwhopr/fwhopr_ handling.
5634
5635 2010-09-02  Ira Rosen  <irar@il.ibm.com>
5636
5637         * tree-vectorizer.h (get_later_stmt): New function.
5638         (vect_analyze_data_ref_dependences): Add argument.
5639         * tree-vect-loop.c (vect_analyze_loop): Update call to
5640         vect_analyze_data_ref_dependences.
5641         * tree-vect-data-refs.c (vect_drs_dependent_in_basic_block):
5642         New function.
5643         (vect_analyze_data_ref_dependence): Add argument for basic block
5644         dependencies. Check dependencies in basic block vectorization.
5645         (vect_analyze_data_ref_dependences): Add argument and update call to
5646         vect_analyze_data_ref_dependences.
5647         * tree-vect-slp.c (vect_find_last_store_in_slp_instance): New.
5648         (vect_bb_vectorizable_with_dependencies): New.
5649         (vect_slp_analyze_bb): Check dependencies in basic block.
5650         (vect_schedule_slp_instance): Insert stores before the last store in
5651         SLP instance.
5652
5653 2010-09-02  Uros Bizjak  <ubizjak@gmail.com>
5654
5655         PR target/45476
5656         * config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE,
5657         LIBGCC2_TF_CEXT, TF_SIZE): New defines.
5658
5659 2010-09-01  Jakub Jelinek  <jakub@redhat.com>
5660
5661         PR middle-end/45458
5662         * bb-reorder.c (add_labels_and_missing_jumps): Treat
5663         bbs ending with throwing insns like blocks ending with a call.
5664         (fix_up_fall_thru_edges): Likewise.
5665
5666 2010-09-01  Nathan Froyd  <froydnj@codesourcery.com>
5667
5668         * config/m32c/m32c-protos.h (m32c_function_arg): Delete.
5669         (m32c_function_arg_advance): Delete.
5670         * config/m32c/m32c.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5671         * config/m32c/m32c.c (m32c_function_arg): Make static.  Adjust
5672         comments.  Take a const_tree and a bool.  Declare.
5673         (m32c_function_arg_advance): Likewise.
5674         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5675
5676 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
5677
5678         PR target/45476
5679         * config/i386/cygming.h (LIBGCC2_HAS_TF_MODE,
5680         LIBGCC2_TF_CEXT, TF_SIZE): Move from ...
5681         * config/i386/mingw32.h: ... here.
5682
5683 2010-09-01  Andi Kleen  <ak@linux.intel.com>
5684
5685         PR lto/45475
5686         * lto-streamer-in.c (lto_input_ts_target_option): Add.
5687         (lto_input_tree_pointers): Call lto_input_ts_target_option.
5688         * lto-streamer-out (lto_output_ts_target_option): Add.
5689         (lto_output_tree_pointers): Call lto_output_ts_target_option.
5690
5691 2010-09-01  Kai Tietz  <kai.tietz@onevision.com>
5692
5693         PR/target 45452
5694         * config/i386/cygwin.h: Change order of specified import libraries.
5695         * config/i386/mingw32.h: Likewise.
5696         * config/i386/t-cygwin: Likewise.
5697         * config/i386/t-mingw32: Likewise.
5698         * config/i386/t-mingw-w32: Likewise.
5699         * config/i386/t-mingw-w64: Likewise.
5700
5701 2010-09-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5702
5703         * config/arm/neon-schedgen.ml (core): New type.
5704         (allCores): List of supported cores.
5705         (availability_table): Add supported cores.
5706         (collate_bypasses): Accept core as a parameter.
5707         (worst_case_latencies_and_bypasses): Accept core as a parameter.
5708         (emit_insn_reservations): Accept core as a parameter.  Use tuneStr
5709         and coreStr to get tune attribute and prefix for functional units.
5710         (emit_bypasses): Accept core name and use it.
5711         (calculate_per_core_availability_table): New.
5712         (filter_core): New.
5713         (calculate_core_availability_table): New.
5714         (main): Use calculate_core_availablity_table.
5715         * config/arm/cortex-a8-neon.md: Update copyright year.
5716         Regenerated from ml file and merged in.
5717         (neon_mrrc, neon_mrc): Rename to cortex_a8_neon_mrrc and
5718         cortex_a8_neon_mrc.
5719
5720 2010-09-01  Ian Bolton  <ian.bolton@arm.com>
5721
5722         * Makefile.in (tree-switch-conversion.o): Update dependencies.
5723
5724 2010-09-01  Richard Guenther  <rguenther@suse.de>
5725
5726         * alias.c (ao_ref_from_mem): Adjust.
5727         * builtins.c (get_object_alignment): Likewise.
5728         * cfgexpand.c (expand_debug_expr): Likewise.
5729         * gimple.c (get_base_address): Likewise.
5730         * tree-dfa.c (get_ref_base_and_extent): Likewise.
5731         (get_addr_base_and_unit_offset): Likewise.  Fix for
5732         both TMR_SYMBOL and TMR_BASE being set.
5733         * tree-eh.c (tree_could_trap_p): Likewise.
5734         * gimplify.c (gimplify_expr): Do not attempt to gimplify
5735         TMR_SYMBOL.  Always gimplify TMR_BASE.
5736         * tree-cfg.c (verify_types_in_gimple_reference): Verify
5737         TMR_BASE if there is a TMR_SYMBOL.
5738         * tree-pretty-print.c (dump_generic_node): Adjust.
5739         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
5740         (tree_mem_ref_addr): Likewise.
5741         (create_mem_ref_raw): Likewise.
5742         (move_fixed_address_to_symbol): Likewise.
5743         (create_mem_ref): Likewise.
5744         (dump_mem_address): Likewise.
5745         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Adjust.
5746         Fix for both TMR_SYMBOL and TMR_BASE being set.
5747         (indirect_refs_may_alias_p): Likewise.
5748         * tree-ssa-operands.c (get_tmr_operands): Adjust.
5749         * tree.def (TARGET_MEM_REF): Adjust documentation.
5750
5751 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
5752
5753         * config/i386/i386.h (enum ix86_tune_indices) <X86_TUNE_SINGLE_POP>:
5754         Rename from X86_TUNE_ADD_ESP_4.
5755         <IX86_TUNE_DOUBLE_POP>: Rename from X86_TUNE_ADD_ESP_8.
5756         <IX86_TUNE_SINGLE_PUSH>: Rename from X86_TUNE_SUB_ESP_4.
5757         <IX86_TUNE_DOUBLE_PUSH>: Rename from X86_TUNE_SUB_ESP_8.
5758         (TARGET_SINGLE_POP): Rename from TARGET_ADD_ESP_4.
5759         (TARGET_DOUBLE_POP): Rename from TARGET_ADD_ESP_8.
5760         (TARGET_SINGLE_PUSH): Rename from TARGET_SUB_ESP_4.
5761         (TARGET_DOUBLE_POP): Rename from TARGET_SUB_ESP_8.
5762         * config/i386/i386.c (initial_ix86_tune_features)
5763         <X86_TUNE_SINGLE_POP>: Invert members.
5764         <X86_TUNE_DOUBLE_POP>: Ditto.
5765         <X86_TUNE_SINGLE_PUSH>: Ditto.
5766         <X86_TUNE_DOUBLE_PUSH>: Ditto.
5767         * config/i386/i386.md (*pop<mode>1): Rename from pop<mode>1.
5768         No longer exported.
5769         (push peephole2 patterns): Macroize peepholes using P mode iterator.
5770         Adjust for renamed TARGET_{SINGLE,DOUBLE}_PUSH defines.
5771         (pop peephole2 patterns): Macroize peepholes using P mode iterator.
5772         Adjust for renamed TARGET_{SINGLE,DOUBLE}_POP defines.
5773
5774 2010-09-01  Eric Botcazou  <ebotcazou@adacore.com>
5775
5776         * gimplify.c (gimplify_init_constructor): Do not create a temporary for
5777         a volatile LHS if the constructor has only one element.
5778
5779 2010-09-01  Mikael Pettersson  <mikpe@it.uu.se>
5780
5781         PR bootstrap/45321
5782         * tree.c (stdarg_p): Make fntype parameter const.
5783         * tree.h (stdarg_p): Likewise.
5784         (function_args_iterator): Remove unused fntype field.
5785         (function_args_iter_init): Do not initialize fntype
5786         field.  Make fntype parameter const.
5787
5788 2010-09-01  Richard Guenther  <rguenther@suse.de>
5789
5790         * tree-vrp.c (adjust_range_with_scev): Use number of iteration
5791         estimate.
5792         (vrp_visit_phi_node): Delay using SCEV till we balloon the range.
5793         (execute_vrp): Compute number of iteration estimates.
5794         * cfgloop.h (estimate_numbers_of_iterations_loop): Adjust prototype.
5795         * tree-flow.h (estimate_numbers_of_iterations): Likewise.
5796         * tree-data-ref.c (estimated_loop_iterations): Adjust.
5797         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
5798         Infer loop bounds from undefined behavior based on a new parameter.
5799         (estimate_numbers_of_iterations): Likewise.
5800         (scev_probably_wraps_p): Adjust.
5801         * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
5802
5803 2010-09-01  Nick Clifton  <nickc@redhat.com>
5804
5805         * config/stormy16/stormy16.c: Use REG_P, MEM_P and CONST_INT_P
5806         where appropriate.
5807         (xstormy16_legitimate_address_p): Use true and false instead of 1
5808         and 0.
5809         (xstormy16_expand_prologue): Delete unused local variable 'insn'.
5810         (xstormy16_function_arg): Use FIRST_ARGUMENT_REGNUM in place of
5811         magic constant 2.
5812         (xstormy16_expand_call): Fix comment at start of function.
5813
5814 2010-09-01  Nick Clifton  <nickc@redhat.com>
5815
5816         * config/rx/rx.c (rx_expand_prologue): Do not adjust frame size
5817         when pushing accumulator register.
5818         (rx_get_stack_layout): Always save call clobbered registers inside
5819         interrupt handlers.
5820         * config/rx/rx-modes.def: Fix descriptive comment at start of file.
5821
5822 2010-09-01  Uros Bizjak  <ubizjak@gmail.com>
5823
5824         * config.gcc (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add
5825         i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file.
5826
5827         * libgcc-std.ver (GCC_4.6.0): Define version.
5828
5829 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
5830
5831         * tree-nested.c (convert_all_function_calls): Iterate until after the
5832         sum of static chains in the nest doesn't change.
5833
5834 2010-08-31  Anatoly Sokolov  <aesok@post.ru>
5835
5836         * config/m32c/m32c.c (classes_intersect): Remove.
5837         (m32c_preferred_reload_class, m32c_secondary_reload_class): Use
5838         reg_classes_intersect_p instead of classes_intersect.
5839         (class_can_hold_mode): Change arguments type from enum reg_class to
5840         reg_class_t.  Use reg_class_contents instead of class_contents.
5841         (m32c_register_move_cost): Make static. Change arguments type from
5842         enum reg_class to reg_class_t. Use reg_classes_intersect_p instead of
5843         classes_intersect. Use reg_class_contents instead of class_contents.
5844         (m32c_memory_move_cost): Make static. Change arguments type from
5845         enum reg_class to reg_class_t.
5846         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
5847         * config/m32c/m32c.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
5848         * config/m32c/m32c-protos.h (m32c_register_move_cost,
5849         m32c_memory_move_cost): Remove.
5850
5851 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
5852
5853         * config/arm/arm-protos.h (arm_function_arg_advance): Delete.
5854         (arm_function_arg): Delete.
5855         (arm_needs_doubleword_align): Take a const_tree.
5856         * config/arm/arm.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5857         * config/arm/arm.c (aapcs_select_call_coproc): Take a const_tree.
5858         (aapcs_layout_arg, arm_needs_doubleword_align): Likewise.
5859         (arm_function_arg): Make static.  Take a const_tree and a bool.
5860         (arm_function_arg_advance): Likewise.
5861         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5862
5863 2010-08-31  Andi Kleen  <ak@linux.intel.com>
5864
5865         * common.opt (fwhopr=): Update for -fwhopr=jobserver
5866         * doc/invoke.texi (fwhopr): Document -fwhopr=jobserver.
5867         * lto-wrapper.c (run_gcc): Add jobserver mode.
5868         * opts.c (common_handle_option): Fix OPT_fwhopr for non numeric
5869         argument.
5870
5871 2010-08-31  Uros Bizjak  <ubizjak@gmail.com>
5872
5873         * config/i386/i386.md (popdi1): Rewrite using POST_INC memory operand.
5874         (popsi1): Ditto.
5875         (*popdi1_epilogue): Ditto.
5876         (*popsi1_epilogue): Ditto.
5877         (popsi, popdi peephole2 patterns): Update peepholes for changed
5878         pop{si,di}1 and *pop{si,di}1_epilogue patterns.
5879
5880         (pop<mode>1): Macroize insn from pop{si,di}1 using P code iterator.
5881         (*pop<mode>1_epilogue): Ditto from *pop{si,di}1_epilogue.
5882
5883         * config/i386/i386.c (*ix86_gen_pop1): Remove indirect function.
5884         (override_options): Do not initialize removed ix86_gen_pop1.
5885         (gen_pop): New static function.
5886         (ix86_expand_prologue): Use gen_pop instead of ix86_gen_pop1.
5887         (release_scratch_register_on_entry): Ditto.
5888         (ix86_restore_reg_using_pop): Ditto.
5889         (ix86_expand_epilogue): Ditto.
5890
5891 2010-08-31  Jakub Jelinek  <jakub@redhat.com>
5892
5893         PR middle-end/45461
5894         * builtins.c (dummy_object): Return a MEM_REF instead of INDIRECT_REF.
5895
5896 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
5897
5898         * config/fr30/fr30.c (fr30_move_double): Delete `dregno' and extra
5899         semicolons.
5900
5901 2010-08-31  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
5902
5903         * doc/extend.texi: Fix documentation of the return value of
5904         __builtin_choose_expr.
5905
5906 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
5907
5908         * config/v850/v850-protos.h (function_arg): Delete.
5909         * config/v850/v850.h (FUNCTION_ARG): Delete.
5910         (FUNCTION_ARG_ADVANCE): Move code to...
5911         * config/v850/v850.c (v850_function_arg_advance): ...here.
5912         (v850_function_arg): Make static.  Take a const_tree and a bool.
5913         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5914
5915 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
5916
5917         * config/m32r/m32r.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Move
5918         these...
5919         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
5920         ...and these...
5921         * config/m32r/m32r.c (m32r_function_arg, m32r_function_arg_advance):
5922         ..to here..
5923         (ROUND_ADVANCE, ROUND_ADVANCE_ARG, ROUND_ADVANCE_CUM, PASS_IN_REG_P):
5924         ...and here.
5925         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5926
5927 2010-08-31  Nathan Froyd  <froydnj@codesourcery.com>
5928
5929         * config/rx/rx-protos.h (rx_function_arg, rx_function_arg_size):
5930         Delete.
5931         * config/rx/rx.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
5932         * config/rx/rx.c (rx_function_arg_size): Make static.
5933         (rx_function_arg): Likewise.
5934         (rx_function_arg_advance): New function.
5935         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
5936
5937 2010-08-31  John Tytgat  <John.Tytgat@aaug.net>
5938
5939         * config/arm/arm.c (arm_override_options): Remove superfluous test.
5940         Fix indentation.
5941
5942 2010-08-31  Eric Botcazou  <ebotcazou@adacore.com>
5943
5944         * dwarf2out.c (gen_decl_die) <CONST_DECL>: Do not skip in Ada.
5945         (dwarf2out_decl) <CONST_DECL>: Likewise.
5946
5947 2010-08-30  Eric Botcazou  <ebotcazou@adacore.com>
5948
5949         Stack usage support
5950         * common.opt (-fstack-usage): New option.
5951         * doc/invoke.texi (Debugging options): Document it.
5952         * builtins.c (expand_builtin_apply): Pass TRUE as 4th argument to
5953         allocate_dynamic_stack_space.
5954         (expand_builtin_alloca): Add 4th bool parameter CANNOT_ACCUMULATE
5955         and propagate it to allocate_dynamic_stack_space.
5956         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust for above change.
5957         * calls.c (initialize_argument_information): Pass TRUE as 4th
5958         argument to allocate_dynamic_stack_space.
5959         (expand_call): Set current_function_has_unbounded_dynamic_stack_size
5960         to 1 when pushing a variable-sized argument onto the stack.  Pass
5961         TRUE as 4th argument to allocate_dynamic_stack_space.
5962         Update current_function_pushed_stack_size.
5963         (emit_library_call_value_1): Likewise.
5964         * explow.c (allocate_dynamic_stack_space): Add 4th bool parameter
5965         CANNOT_ACCUMULATE.  If flag_stack_usage, look into the size and
5966         attempt to find an upper bound.  Remove redundant code for the
5967         SETJMP_VIA_SAVE_AREA case.
5968         * expr.h (allocate_dynamic_stack_space): Add 4th bool parameter.
5969         * function.h (struct stack_usage): New structure.
5970         (current_function_static_stack_size): New macro.
5971         (current_function_dynamic_stack_size): Likewise.
5972         (current_function_pushed_stack_size): Likewise.
5973         (current_function_dynamic_alloc_count): Likewise.
5974         (current_function_has_unbounded_dynamic_stack_size): Likewise.
5975         (current_function_allocates_dynamic_stack_space): Likewise.
5976         (struct function): Add new field 'su'.
5977         * function.c (instantiate_virtual_regs): If SETJMP_VIA_SAVE_AREA,
5978         add the value of the dynamic offset to the dynamic stack usage.
5979         (gimplify_parameters): Set ALLOCA_FOR_VAR_P on call to BUILT_IN_ALLOCA
5980         for variable-sized objects.
5981         (prepare_function_start): Allocate cfun->su if flag_stack_usage.
5982         (rest_of_handle_thread_prologue_and_epilogue): Call output_stack_usage.
5983         * gimplify.c (gimplify_decl_expr): Set ALLOCA_FOR_VAR_P on call to
5984         BUILT_IN_ALLOCA for variable-sized objects.
5985         * output.h (output_stack_usage): Declare.
5986         * toplev.c (stack_usage_file): New file pointer.
5987         (output_stack_usage): New function.
5988         (open_auxiliary_file): Likewise.
5989         (lang_dependent_init): Open file if flag_stack_usage is set.
5990         (finalize): Close file if stack_usage_file is not null.
5991         * tree.h (ALLOCA_FOR_VAR_P): New macro.
5992         * config/alpha/alpha.c (compute_frame_size): New function.
5993         (alpha_expand_prologue): Use it.
5994         (alpha_start_function): Likewise.
5995         (alpha_expand_epilogue): Likewise.  Set stack usage info.
5996         * config/i386/i386.c (ix86_expand_prologue): Likewise.
5997         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
5998         * config/mips/mips.c (mips_expand_prologue): Likewise.
5999         * config/pa/pa.c (hppa_expand_prologue): Likewise.
6000         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
6001         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
6002
6003 2010-08-30  Zdenek Dvorak  <ook@ucw.cz>
6004
6005         PR tree-optimization/45427
6006         * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Rewritten.
6007         Handle the case that the exit is never taken correctly.
6008         (number_of_iterations_ne): Pass exit_must_be_taken to
6009         number_of_iterations_ne_max.
6010
6011 2010-08-30  Catherine Moore  <clm@codesourcery.com>
6012
6013         * config/mips/mips.h (BASE_DRIVER_SELF_SPECS):
6014         Infer -mdspr2 for the the 74K.
6015
6016 2010-08-30  Jakub Jelinek  <jakub@redhat.com>
6017
6018         PR debug/45419
6019         * tree-ssa-live.c (dump_enumerated_decls): Clear the whole wi variable.
6020
6021         PR middle-end/45423
6022         * gimplify.c (goa_stabilize_expr): Handle TRUTH_NOT_EXPR
6023         and TRUTH_{AND,OR,XOR}_EXPR.
6024         * c-parser.c (c_parser_omp_atomic): Handle boolean
6025         {PRE,POST}_{INC,DEC}REMENT.
6026
6027 2010-08-30  Nathan Froyd  <froydnj@codesourcery.com>
6028
6029         * config/xtensa/xtensa-protos.h (function_arg_advance): Delete.
6030         (function_arg): Delete.
6031         * config/xtensa/xtensa.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6032         (FUNCTION_INCOMING_ARG): Delete.
6033         * config/xtensa/xtensa.c (function_arg_advance): Rename to...
6034         (xtensa_function_arg_advance): ...this.  Make static. Take a const_tree
6035         and a bool.
6036         (function_arg): Rename to...
6037         (xtensa_function_arg_1): ...this.  Make static.  Take a const_tree and
6038         a bool.
6039         (xtensa_function_arg, xtensa_function_incoming_arg): Nex functions.
6040         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6041         (TARGET_FUNCTION_INCOMING_ARG): Define.
6042
6043 2010-08-30  Richard Guenther  <rguenther@suse.de>
6044
6045         PR tree-optimization/21602
6046         * builtins.c (fold_builtin_memory_op): Fold memmove to memcpy
6047         using points-to information.
6048
6049 2010-08-30  H.J. Lu  <hongjiu.lu@intel.com>
6050
6051         * config/linux.h (TARGET_HAS_SINCOS): Replace | with ||.
6052
6053 2010-08-30  Richard Guenther  <rguenther@suse.de>
6054
6055         PR tree-optimization/45449
6056         * tree-ssa-live.c (remove_unused_locals): Also remove address-taken
6057         variables.
6058
6059 2010-08-30  Joseph Myers  <joseph@codesourcery.com>
6060
6061         * opts.h (CL_ERR_NEGATIVE): Define.
6062         * opts.c (unknown_option_callback): Don't postpone warnings for
6063         options marked with CL_ERR_NEGATIVE.
6064         * opts-common.c (decode_cmdline_option): Set CL_ERR_NEGATIVE error
6065         for negative versions of CL_REJECT_NEGATIVE options.
6066
6067 2010-08-30  Uros Bizjak  <ubizjak@gmail.com>
6068
6069         * config/i386/i386.md (zero_extendsidi2_1): Rename from
6070         zero_extendsidi2_32.
6071         (zero_extend<mode>di2): Macroize insn from zero_extend{qi,hi}di2
6072         using SWI12 mode iterator.
6073         (zero_extendhisi2_and): Merge insn pattern and corresponding spliter
6074         to define_insn_and_split pattern.
6075         (zero_extendqi<mode>2): Macroize expander from zero_extendqi{hi,si}2
6076         using SWI24 mode iterator.
6077         (*zero_extendqi<mode>2_and): Macroize insn from
6078         *zero_extendqi{hi,si}2_and using SWI24 mode iterator.
6079         (*zero_extendqi<mode>2_movzbl_and): Macroize insn from
6080         *zero_extendqihi2_movzbw_and and *zero_extendqisi2_movzbl_and using
6081         SWI24 mode iterator.
6082         (*zero_extendqi<mode>2_movzbl): Ditto from
6083         *zero_extendqi{hi,si}2_movzbl.
6084         (extendsidi2_1): Rename from extendsidi2_32.
6085         (extend<mode>di2): Macroize insn from extend{qi,hi}di2 using
6086         SWI12 mode iterator.
6087
6088 2010-08-29  Eric Botcazou  <ebotcazou@adacore.com>
6089
6090         * config/ia64/ia64.h (HARD_REGNO_NREGS): Return 1 for CCImode in
6091         general purpose registers.
6092         (HARD_REGNO_MODE_OK): Accept CCImode in general purpose registers.
6093         * config/ia64/ia64.md (*movcci): Change to named pattern.  Deal
6094         with general purpose registers and memory operands.  Add associated
6095         CCImode post-reload splitter.
6096         * config/ia64/div.md: Change BImode to CCImode throughout.
6097
6098 2010-08-28  Eric Botcazou  <ebotcazou@adacore.com>
6099
6100         * config/ia64/ia64.md (cstorebi4): Fix thinko.
6101
6102 2010-08-28  Hariharan Sandanagobalane  <hariharan@picochip.com>
6103
6104         * config/picochip/picochip.c (reorder_var_tracking_notes): This
6105         function was dropping debug insns which caused PR45299.
6106
6107 2010-08-28  Uros Bizjak  <ubizjak@gmail.com>
6108
6109         * config/i386/sse.md (extsuffix): New code attribute.
6110         (sse4_1_<code>v8qiv8hi2): Macroize insn from sse4_1_extendv8qiv8hi2
6111         and sse4_1_zero_extendv8qiv8hi2 using any_extend code iterator.
6112         (sse4_1_<code>v4qiv4si2): Ditto from sse4_1_extendv4qiv4si2
6113         and sse4_1_zero_extendv4qiv4si2.
6114         (sse4_1_<code>v2qiv2di2): Ditto from sse4_1_extendv2qiv2di2
6115         and sse4_1_zero_extendv2qiv2di2.
6116         (sse4_1_<code>v4hiv4si2): Ditto from sse4_1_extendv4hiv4si2
6117         and sse4_1_zero_extendv4hiv4si2.
6118         (sse4_1_<code>v2hiv2di2): Ditto from sse4_1_extendv2hiv2di2
6119         and sse4_1_zero_extendv2hiv2di2.
6120         (sse4_1_extendv2siv2di2): Ditto from sse4_1_extendv2siv2di2
6121         and sse4_1_zero_extendv2siv2di2
6122
6123         (<s>mulv8hi3_highpart): Macroize expander from {u,s}mulv8hi3_highpart
6124         using any_extend code iterator.
6125         (*avx_<s>mulv8hi3_highpart): Macroize insn from
6126         *avx_{u,s}mulv8hi3_highpart using any_extend code iterator.
6127         (*<s>mulv8hi3_highpart): Ditto from *{u,s}mulv8hi3_highpart.
6128
6129         * config/i386/i386.c (ix86_expand_sse4_unpack): Update for renamed
6130         gen_sse4_1_sign_extend* functions.
6131         (struct builtin_description bdesc_args): Ditto.
6132
6133 2010-08-27  Xinliang David Li  <davidxl@google.com>
6134
6135         PR/45422
6136         * tree-ssa-loop-ivopts.c (iv_ca_get_num_inv_exprs): Remove.
6137         (iv_ca_set_no_cp): Update used inv expr count.
6138         (iv_ca_set_cp): Ditto.
6139         (iv_ca_new): Initialize new member.
6140         (iv_ca_free): Free memory.
6141
6142 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
6143
6144         * config/sh/sh-protos.h (sh_function_arg): Delete.
6145         (sh_function_arg_advance): Delete.
6146         * config/sh/sh.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6147         (PASS_IN_REG_P): Eliminate cast.
6148         * config/sh/sh.c (sh_function_arg_advance): Make static.  Take a
6149         const_tree and a bool.
6150         (sh_function_arg): Likewise.
6151         (sh_output_mi_thunk): Call sh_function_arg_advance) and
6152         sh_function_arg.
6153         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6154
6155 2010-08-27  Naveen H.S  <naveen.S@kpitcummins.com>
6156             Kaz Kojima  <kkojima@gcc.gnu.org>
6157
6158         * config/sh/sh.c (push_regs): Emit movml for interrupt handler
6159         when possible.
6160         (sh_expand_epilogue): Likewise.
6161         * config/sh/sh.md (movml_push_banked): New insn.
6162         (movml_pop_banked): Likewise.
6163
6164 2010-08-28  Bernd Schmidt  <bernds@codesourcery.com>
6165
6166         * genautomata.c (gen_regexp_repeat, gen_regexp_allof,
6167         gen_regexp_oneof, gen_regexp_sequence): Use the string found
6168         in vector element 0 rather than the original string when there's
6169         only one element.
6170         (gen_regexp): Remove extra semicolon.
6171
6172         * config/arm/vfp.md (arm_movsi_vfp, thumb2_movsi_vfp, movsf_vfp,
6173         thumb2_movsf_vfp): Set attribute "insn".
6174         * config/arm/arm.md (arm_ashrdi3_1bit, arm_lshrdi3_1bit, not_shiftsi,
6175         not_shiftsi_compare0, not_shiftsi_compare0_scratch, arm_one_cmplsi2,
6176         thumb1_one_cmplsi2, notsi_compare0, notsi_compare0_scratch,
6177         arm_zero_extendsidi2, arm_extendsidi2, thumb1_movdi_insn,
6178         arm_movsi_insn, movhi_insn_arch4, movhi_bytes, arm_movqi_insn,
6179         thumb1_movqi_insn arm32_movhf, thumb1_movhf, arm_movsf_soft_insn,
6180         thumb1_movsf_insn, thumb_movdf_insn, mov_scc, mov_negscc, mov_notscc,
6181         movsicc_insn, movsfcc_soft_insn, and_scc, cond_move, if_move_not,
6182         if_not_move, if_shift_move, if_move_shift, if_shift_shift,
6183         if_not_arith, if_arith_not, cond_move_not): Likewise.
6184
6185 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
6186
6187         * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert):
6188         New declaration.
6189         (rs6000_allocate_stack_temp): Ditto.
6190         (rs6000_expand_convert_si_to_sfdf): Ditto.
6191
6192         * config/rs6000/rs6000.c (rs6000_override_options): Adjust long
6193         line.  Update the options set if power6 or power7 server/embedded
6194         type options are used.  If we give a warning for no vsx under
6195         -mcpu=power7 -mno-altivec, mark -mvsx as an explicit option.
6196         (rs6000_allocate_stack_temp): New function to allocate a stack
6197         tempoary and adjust the address so it meets either REG+OFFSET or
6198         REG+REG addressing requirements.
6199         (rs6000_address_for_fpconvert): Adjust REG+OFFSET addresses so
6200         that they can be used with the LFIWAX/LFIWZX instrucitons.
6201         (rs6000_expand_convert_si_to_sfdf): New helper funciton for
6202         converting signed/unsigned SImode to either SFmode/DFmode.
6203
6204         * config/rs6000/rs6000.h (TARGET_FCFID): New macros to determine
6205         whether certain instructions can be generated.
6206         (TARGET_FCTIDZ): Ditto.
6207         (TARGET_STFIWX): Ditto.
6208         (TARGET_LFIWAX): Ditto.
6209         (TARGET_LFIWZX): Ditto.
6210         (TARGET_FCFIDS): Ditto.
6211         (TARGET_FCFIDU): Ditto.
6212         (TARGET_FCFIDUS): Ditto.
6213         (TARGET_FCTIDUZ): Ditto.
6214         (TARGET_FCTIWUZ): Ditto.
6215
6216         * config/rs6000/rs6000.md (UNSPEC_FCTIW): New unspec constants.
6217         (UNSPEC_FCTID): Ditto.
6218         (UNSPEC_LFIWAX): Ditto.
6219         (UNSPEC_LFIWZX): Ditto.
6220         (UNSPEC_FCTIWUZ): Ditto.
6221         (rreg): Use correct constraints.
6222         (SI_CONVERT_FP): New mode attribute for floating point conversion
6223         tests.
6224         (E500_CONVERT): Ditto.
6225         (lfiwax): New insns for converting from integer to floating point
6226         utilizing newer instructions.  Attempt to optimize conversions
6227         that come from memory so that we don't load the value into a GPR,
6228         spill it to the stack and reload it into a FPR.
6229         (floatsi<mode>2_lfiwax): Ditto.
6230         (floatsi<mode>2_lfiwax_mem): Ditto.
6231         (floatsi<mode>2_lfiwax_mem2): Ditto.
6232         (lfiwzx): Ditto.
6233         (floatunssi<mode>2_lfiwzx): Ditto.
6234         (floatunssi<mode>2_lfiwzx_mem): Ditto.
6235         (floatunssi<mode>2_lfiwzx_mem2): Ditto.
6236         (floatdidf2_mem): Ditto.
6237         (floatunsdidf2_fcfidu): Ditto.
6238         (floatunsdidf2_mem): Ditto.
6239         (floatunsdisf2): Ditto.
6240         (floatunsdisf2_fcfidus): Ditto.
6241         (floatunsdisf2_mem): Ditto.
6242         (floatsidf2): Add support for LFIWAX/LFIWZX/FCFIDS/FCFIDU/FCFIDUS.
6243         Use FCFID on 32-bit hosts that support it.
6244         (floatsidf2_internal): Ditto.
6245         (floatunssisf2): Ditto.
6246         (floatunssidf2): Ditto.
6247         (floatunssidf2_internal): Ditto.
6248         (floatsisf2): Ditto.
6249         (floatdidf2): Ditto.
6250         (floatdidf2_fpr): Ditto.
6251         (floatunsdidf2): Ditto.
6252         (floatdisf2): Ditto.
6253         (floatdisf2_fcfids): Ditto.
6254         (floatdisf2_internal1): Ditto.
6255         (fixuns_truncsfsi2): Delete, merge into common pattern for both
6256         SF/DF.  Add power7 support.
6257         (fix_truncsfsi2): Ditto.
6258         (fixuns_truncdfsi2): Ditto.
6259         (fixuns_truncdfdi2): Ditto.
6260         (fix_truncdfsi2): Ditto.
6261         (fix_truncdfsi2_internal): Ditto.
6262         (fix_truncdfsi2_internal_gfxopt): Ditto.
6263         (fix_truncdfsi2_mfpgpr): Ditto.
6264         (fctiwz): Ditto.
6265         (btruncdf2): Ditto.
6266         (btruncdf2_fpr): Ditto.
6267         (btructsf2): Ditto.
6268         (ceildf2): Ditto.
6269         (ceildf2_fpr): Ditto.
6270         (ceilsf2): Ditto.
6271         (floordf2): Ditto.
6272         (floordf2_fpr): Ditto.
6273         (floorsf2): Ditto.
6274         (rounddf2): Ditto.
6275         (rounddf2_fpr): Ditto.
6276         (roundsf2): Ditto.
6277         (fix_trunc<mode>si2): Combine SF/DF conversion into one insn.
6278         (fix_trunc<mode>di2): Ditto.
6279         (fixuns_trunc<mode>si2): Ditto.
6280         (fixuns_trunc<mode>di2): Ditto.
6281         (fctiwz_<mode>): Ditto.
6282         (btrunc<mode>2): Ditto.
6283         (btrunc<mode>2_fpr): Ditto.
6284         (ceil<mode>2): Ditto.
6285         (ceil<mode>2_fpr): Ditto.
6286         (floor<mode>2): Ditto.
6287         (float<mode>2_fpr): Ditto.
6288         (round<mode>2): Ditto.
6289         (round<mode>2_fpr): Ditto.
6290         (fix_trunc<mode>si2_stfiwx): New insn for machines with STFIWX.
6291         (fixuns_trunc<mode>si2_stfiwx): Ditto.
6292         (fix_truncdfsi2_internal): Ditto.
6293         (fix_trunc<mode>si2_mem): Combiner pattern to eliminate storing
6294         converted value on stack, loaded into GPR, and then stored into
6295         the final destination.
6296         (fix_trunc<mode>di2_fctidz): New pattern for targets supporting
6297         FCTIDZ.
6298         (lrint<mode>di2): New insn, provide the lrint builtin functions.
6299         (ftruncdf2): Delete, unused.
6300         (fix_trunctfsi2_internal): Use gen_fctiwz_df, not gen_fctiwz.
6301
6302         * config/rs6000/vsx.md (toplevel): Update copyright year.
6303         (VSr2): Use "ws" contraint for DFmode, not "!r#r".
6304         (VSr3): Ditto.
6305
6306 2010-08-27  Basile Starynkevitch  <basile@starynkevitch.net>
6307             Jeremie Salvucci  <jeremie.salvucci@free.fr>
6308
6309         * gengtype.c (output_type_enum): Test the right union member.
6310
6311 2010-08-27  Uros Bizjak  <ubizjak@gmail.com>
6312
6313         PR target/41484
6314         * config/i386/sse.md (sse4_1_extendv8qiv8hi2): Also accept memory
6315         operands for operand 1.
6316         (sse4_1_extendv4qiv4si2): Ditto.
6317         (sse4_1_extendv2qiv2di2): Ditto.
6318         (sse4_1_extendv4hiv4si2): Ditto.
6319         (sse4_1_extendv2hiv2di2): Ditto.
6320         (sse4_1_extendv2siv2di2): Ditto.
6321         (sse4_1_zero_extendv8qiv8hi2): Ditto.
6322         (sse4_1_zero_extendv4qiv4si2): Ditto.
6323         (sse4_1_zero_extendv2qiv2di2): Ditto.
6324         (sse4_1_zero_extendv4hiv4si2): Ditto.
6325         (sse4_1_zero_extendv2hiv2di2): Ditto.
6326         (sse4_1_zero_extendv2siv2di2): Ditto.
6327         (*sse4_1_extendv8qiv8hi2): Remove insn pattern.
6328         (*sse4_1_extendv4qiv4si2): Ditto.
6329         (*sse4_1_extendv2qiv2di2): Ditto.
6330         (*sse4_1_extendv4hiv4si2): Ditto.
6331         (*sse4_1_extendv2hiv2di2): Ditto.
6332         (*sse4_1_extendv2siv2di2): Ditto.
6333         (*sse4_1_zero_extendv8qiv8hi2): Ditto.
6334         (*sse4_1_zero_extendv4qiv4si2): Ditto.
6335         (*sse4_1_zero_extendv2qiv2di2): Ditto.
6336         (*sse4_1_zero_extendv4hiv4si2): Ditto.
6337         (*sse4_1_zero_extendv2hiv2di2): Ditto.
6338         (*sse4_1_zero_extendv2siv2di2): Ditto.
6339
6340 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
6341
6342         * config/mips/mips-protos.h (mips_function_arg_advance): Delete
6343         (mips_function_arg): Delete.
6344         (mips_function_arg_boundary): Take a const_tree.
6345         * config/mips/mips.c (mips_function_arg_boundary): Likewise.
6346         (mips_arg_info): Likewise.
6347         (mips_setup_incoming_varargs): Call mips_function_arg_advance
6348         instead of FUNCTION_ARG_ADVANCE.
6349         (mips_function_arg_advance): Adjust prototype.  Make static.
6350         (mips_function_arg): Likewise.
6351         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6352         * config/mips/mips.h (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Delete.
6353
6354 2010-08-27  Nathan Froyd  <froydnj@codesourcery.com>
6355
6356         * config/rs6000/rs6000.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
6357         * config/rs6000/rs6000-protos.h (function_arg_advance): Delete.
6358         (function_arg): Delete.
6359         (function_arg_boundary): Take a const_tree.
6360         * config/rs6000/rs6000.c (function_arg_boundary): Likewise.
6361         (rs6000_spe_function_arg): Likewise.
6362         (rs6000_parm_start): Likewise.
6363         (rs6000_arg_size): Likewise.
6364         (rs6000_darwin64_record_arg_advance_recurse): Likewise.
6365         (rs6000_darwin64_record_arg): Likewise.  Take a bool instead of an int.
6366         (rs6000_mixed_function_arg): Likewise.
6367         (function_arg): Rename to...
6368         (rs6000_function_arg): ...this.
6369         (function_arg_advance): Rename to...
6370         (rs6000_function_arg_advance_1): ...this
6371         (rs6000_function_arg_advance): New function.  Call it.
6372         (setup_incoming_varargs): Call rs6000_function_arg_advance_1.
6373         (rs6000_return_in_memory): Adjust call to rs6000_darwin64_record_arg.
6374         (rs6000_function_value): Likewise.
6375         (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
6376
6377 2010-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6378
6379         * config/arm/arm.md (enabled): Test the value of arch_enabled
6380         rather than just using it.
6381
6382 2010-08-27  Olivier Hainque  <hainque@adacore.com>
6383             Eric Botcazou  <ebotcazou@adacore.com>
6384
6385         * dse.c (group_info.base_mem, get_group_info): Use BLKmode to
6386         cover all the possible offsets from this base.
6387         (scan_reads_nospill): Pass base_mem's mode to canon_true_dependence.
6388
6389 2010-08-26  Jakub Jelinek  <jakub@redhat.com>
6390
6391         PR tree-optimization/44485
6392         * calls.c (flags_from_decl_or_type): For const or pure
6393         noreturn functions return ECF_LOOPING_CONST_OR_PURE|ECF_NORETURN
6394         together with ECF_CONST resp. ECF_PURE.
6395         * builtins.c (expand_builtin): Use flags_from_decl_or_type
6396         instead of querying flags directly.
6397         * tree-ssa-loop-niter.c (finite_loop_p): Likewise.
6398         * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise.
6399
6400 2010-08-26  Richard Guenther  <rguenther@suse.de>
6401
6402         PR tree-optimization/45255
6403         * tree.c (decl_address_invariant_p): DECL_DLLIMPORT_P statics
6404         and externals are also invariant.
6405
6406 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
6407
6408         PR rtl-optimization/44858
6409         * combine.c (try_combine): If recog_for_combine added CLOBBERs to
6410         newi2pat, make sure they don't affect newpat.
6411
6412         PR rtl-optimization/45400
6413         * combine.c (simplify_shift_const_1) <case SUBREG>: Only use
6414         SUBREG_REG if both modes are of MODE_INT class.
6415
6416 2010-08-25  Julian Brown  <julian@codesourcery.com>
6417
6418         * config/arm/arm.c (arm_issue_rate): Return 2 for Cortex-A5.
6419         * config/arm/arm.md (generic_sched): No for Cortex-A5.
6420         (generic_vfp): Likewise.
6421         (cortex-a5.md): Include.
6422         * config/arm/cortex-a5.md: New.
6423
6424 2010-08-25  Richard Guenther  <rguenther@suse.de>
6425
6426         * alias.c (get_alias_set): Assign a single alias-set to all pointers.
6427         * gimple.c (gimple_get_alias_set): Remove special handling
6428         for pointers.
6429
6430 2010-08-25  Bernd Schmidt  <bernds@codesourcery.com>
6431
6432         PR middle-end/45355
6433         * combine.c (try_combine): Use reg_overlap_mentioned_p rather than
6434         dead_or_set_p when computing i0_feeds_i2_n.
6435
6436         * combine.c (find_split_point): Undo canonicalization of multiply-add
6437         to (minus x (mult)) when it seems likely that this will increase the
6438         chances of a split.
6439
6440 2010-08-25  Richard Guenther  <rguenther@suse.de>
6441
6442         PR lto/44562
6443         * lto-streamer.c (lto_record_common_node): Do not mess with
6444         TYPE_CANONICAL when not in lto.
6445         * gimple.c (gimple_register_type): Likewise.
6446
6447 2010-08-25  Richard Guenther  <rguenther@suse.de>
6448
6449         PR tree-optimization/45316
6450         * tree-ssa-pre.c (eliminate): Properly clean EH info.
6451
6452 2010-08-25  Richard Guenther  <rguenther@suse.de>
6453
6454         PR tree-optimization/45393
6455         * tree-ssa-math-opts.c (execute_cse_sincos_1): Properly transfer
6456         and clean EH info.  Avoid SSA update.
6457         (execute_cse_sincos): Cleanup the CFG if it has changed.
6458
6459 2010-08-25  Richard Guenther  <rguenther@suse.de>
6460
6461         PR middle-end/45379
6462         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle
6463         TARGET_MEM_REF in alignment computation.
6464
6465 2010-08-25  Jakub Jelinek  <jakub@redhat.com>
6466
6467         PR tree-optimization/45059
6468         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Strip useless
6469         type conversions from newop{1,2}.  Assert t is a comparison and
6470         newop{1,2} after the stripping are gimple vals.
6471
6472 2010-08-25  Tejas Belagod  <tejas.belagod@arm.com>
6473
6474         * config/arm/iterators.md (VU, SE, V_widen_l): New.
6475         (V_unpack, US): New.
6476         * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Expansion for vmovl.
6477         (vec_unpack<US>_lo_<mode>): Likewise.
6478         (neon_vec_unpack<US>_hi_<mode>): Instruction pattern for vmovl.
6479         (neon_vec_unpack<US>_lo_<mode>): Likewise.
6480         (vec_widen_<US>mult_lo_<mode>): Expansion for vmull.
6481         (vec_widen_<US>mult_hi_<mode>): Likewise.
6482         (neon_vec_<US>mult_lo_<mode>"): Instruction pattern for vmull.
6483         (neon_vec_<US>mult_hi_<mode>"): Likewise.
6484         (neon_unpack<US>_<mode>): Widening move intermediate step for
6485         vectorizing without -mvectorize-with-neon-quad.
6486         (neon_vec_<US>mult_<mode>): Widening multiply intermediate step
6487         for vectorizing without -mvectorize-with-neon-quad.
6488         * config/arm/predicates.md (vect_par_constant_high): Check for
6489         high-half lanes of a vector.
6490         (vect_par_constant_low): Check for low-half lanes of a vector.
6491
6492 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
6493
6494         * tree-if-conv.c (struct ifc_dr): New.
6495         (IFC_DR): New.
6496         (DR_WRITTEN_AT_LEAST_ONCE): New.
6497         (DR_RW_UNCONDITIONALLY): New.
6498         (memref_read_or_written_unconditionally): Use the cached values
6499         when possible.
6500         (write_memref_written_at_least_once): Same.
6501         (if_convertible_loop_p): Initialize and free DR->aux fields.
6502
6503 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
6504
6505         * gimple.c (gimple_could_trap_p_1): Not static anymore.
6506         Pass an extra bool parameter include_mem.
6507         (gimple_could_trap_p): Adjust call to gimple_could_trap_p_1.
6508         (gimple_assign_rhs_could_trap_p): Same.
6509         * gimple.h (gimple_could_trap_p_1): Declared.
6510         * tree-data-ref.h (same_data_refs_base_objects): New.
6511         (same_data_refs): New.
6512         * tree-if-conv.c (memrefs_read_or_written_unconditionally): New.
6513         (write_memrefs_written_at_least_once): New.
6514         (ifcvt_memrefs_wont_trap): New.
6515         (operations_could_trap): New.
6516         (ifcvt_could_trap_p): New.
6517         (if_convertible_gimple_assign_stmt_p): Call ifcvt_could_trap_p.
6518         Gets a vector of data refs.
6519         (if_convertible_stmt_p): Same.
6520         (if_convertible_loop_p_1): New.
6521         (if_convertible_loop_p): Call if_convertible_loop_p_1.
6522
6523 2010-08-24  Sebastian Pop  <sebastian.pop@amd.com>
6524
6525         * common.opt (ftree-loop-if-convert-stores): New flag.
6526         * doc/invoke.texi (ftree-loop-if-convert-stores): Documented.
6527         * tree-if-conv.c (ifc_temp_var): Pass an extra parameter GSI.  Insert
6528         the created statement before GSI.
6529         (if_convertible_phi_p): Allow virtual phi nodes when
6530         flag_loop_if_convert_stores is set.
6531         (if_convertible_gimple_assign_stmt_p): Allow memory reads and writes
6532         Do not handle types that do not match is_gimple_reg_type.
6533         Remove loop and bb parameters.  Call gimple_could_trap_p instead of
6534         when flag_loop_if_convert_stores is set, as LHS can contain
6535         memory refs.
6536         (if_convertible_stmt_p): Remove loop and bb parameters.  Update calls
6537         to if_convertible_gimple_assign_stmt_p.
6538         (if_convertible_loop_p): Update call to if_convertible_stmt_p.
6539         (replace_phi_with_cond_gimple_assign_stmt): Renamed
6540         predicate_scalar_phi.  Do not handle virtual phi nodes.
6541         (ifconvert_phi_nodes): Renamed predicate_all_scalar_phis.
6542         Call predicate_scalar_phi.
6543         (insert_gimplified_predicates): Insert the gimplified predicate of a BB
6544         just after the labels for flag_loop_if_convert_stores, otherwise
6545         insert the predicate in the end of the BB.
6546         (predicate_mem_writes): New.
6547         (combine_blocks): Call predicate_all_scalar_phis.  When
6548         flag_loop_if_convert_stores is set, call predicate_mem_writes.
6549         (tree_if_conversion): Call mark_sym_for_renaming when
6550         flag_loop_if_convert_stores is set.
6551         (main_tree_if_conversion): Return TODO_update_ssa_only_virtuals when
6552         flag_loop_if_convert_stores is set.
6553
6554 2010-08-24  Anatoly Sokolov  <aesok@post.ru>
6555
6556         * config/pa/pa.c (hppa_register_move_cost, pa_libcall_value,
6557         pa_function_value_regno_p, pa_print_operand_punct_valid_p): New.
6558         (pa_function_value): Make static.
6559         (override_options): Rename to...
6560         (pa_option_override): ...this. Make static.
6561         (TARGET_PRINT_OPERAND_PUNCT_VALID_P, TARGET_REGISTER_MOVE_COST,
6562         TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P,
6563         TARGET_OPTION_OVERRIDE): Define.
6564         * config/pa/pa.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P,
6565         LIBCALL_VALUE, REGISTER_MOVE_COST, PRINT_OPERAND_PUNCT_VALID_P):
6566         Remove.
6567         * config/pa/pa-protos.h (override_options): Remove.
6568
6569 2010-08-24  Richard Guenther  <rguenther@suse.de>
6570
6571         PR middle-end/45379
6572         * tree-ssa-address.c (create_mem_ref_raw): Drop to MEM_REF
6573         if addr->index is NULL or zero.
6574         * tree-ssa-alias.c (indirect_refs_may_alias_p): Handle
6575         TARGET_MEM_REF more properly.
6576         (indirect_ref_may_alias_decl_p): Likewise.
6577         * emit-rtl.c (set_mem_attributes_minus_bitpos): Keep TARGET_MEM_REFs.
6578         * alias.c (ao_ref_from_mem): Handle TARGET_MEM_REF more properly.
6579
6580 2010-08-23  Anatoly Sokolov  <aesok@post.ru>
6581
6582         * config/m32c/m32c.c (m32c_function_value_regno_p): Make static.
6583         (m32c_override_options): Rename to...
6584         (m32c_option_override): ...this. Make static.
6585         (TARGET_FUNCTION_VALUE_REGNO_P, TARGET_OPTION_OVERRIDE): Define.
6586         * config/m32c/m32c.h (OVERRIDE_OPTIONS, FUNCTION_VALUE_REGNO_P):
6587         Remove.
6588         * config/m32c/m32c-protos.h (m32c_override_options,
6589         m32c_function_value_regno_p): Remove.
6590
6591 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
6592
6593         * tree-ssa-loop-prefetch.c (gather_memory_references_ref) :
6594         Fix a typo in a previous commit.
6595
6596 2010-08-23  Kai Tietz  <kai.tietz@onevision.com>
6597
6598         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost):
6599         Pre-initialize innerloop_iters to one.
6600
6601 2010-08-23  Changpeng Fang  <changpeng.fang@amd.com>
6602
6603         * tree-flow.h (may_be_nonaddressable_p): New definition. Make the
6604         existing static function global.
6605
6606         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): This function
6607         is changed to global.
6608
6609         * tree-ssa-loop-prefetch.c (gather_memory_references_ref): Call
6610         may_be_nonaddressable_p on base, and don't collect this reference
6611         if the address of the base could not be taken.
6612
6613 2010-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
6614
6615         * config/rs6000/rs6000.opt (-mveclibabi=mass): New option to
6616         enable the compiler to autovectorize mathmetical functions for
6617         power7 using the Mathematical Acceleration Subsystem library.
6618
6619         * config/rs6000/rs6000.c (rs6000_veclib_handler): New variable to
6620         handle which vector math library we have.
6621         (rs6000_override_options): Add -mveclibabi=mass support.
6622         (rs6000_builtin_vectorized_libmass): New function to handle auto
6623         vectorizing math functions that are in the MASS library.
6624         (rs6000_builtin_vectorized_function): Call it.
6625
6626         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
6627         -mveclibabi=mass.
6628
6629 2010-08-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6630
6631         PR boehm-gc/34544
6632         * gthr-posix.h (__gthread_active_init): Delete.
6633         (__gthread_active_p): Do activity check here.
6634         Don't include errno.h on hppa-hpux.  Update comment.
6635         * gthr-posix95.h (__gthread_active_init): Delete.
6636         (__gthread_active_p): Do activity check here.
6637         Don't include errno.h on hppa-hpux.  Update comment.
6638         * config.gcc (hppa[12]*-*-hpux11*): Define extra_parts.
6639         * config/pa/pa64-hpux.h (LIB_SPEC): When -static is specified, only
6640         add -lpthread when -mt or -pthread is specified.
6641         * config/pa/pa-hpux11.h (LIB_SPEC): likewise.
6642         (LINK_GCC_C_SEQUENCE_SPEC): Define.
6643         * config/pa/t-pa-hpux11 (LIBGCCSTUB_OBJS): Define.
6644         (stublib.c, pthread_default_stacksize_np-stub.o,
6645         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o,
6646         $(T)libgcc_stub.a): Add methods.
6647         * config/pa/t-pa64 (LIBGCCSTUB_OBJS): Add pthread stubs.
6648         (stublib.c, pthread_default_stacksize_np-stub.o,
6649         pthread_mutex_lock-stub.o, pthread_mutex_unlock-stub.o): Add methods.
6650         * config/pa/stublib.c (pthread_default_stacksize_np, pthread_mutex_lock,
6651         pthread_mutex_unlock): New stubs.
6652
6653 2010-08-22  Joseph Myers  <joseph@codesourcery.com>
6654
6655         * Makefile.in (gccspec.o, cppspec.o): Update dependencies.
6656         * common.opt (L, nodefaultlibs, nostdlib, pg, static): New
6657         options.
6658         * config/avr/avr.h (LIBSTDCXX): Remove initial "-l".
6659         * config/freebsd.h (MATH_LIBRARY_PROFILE): Remove initial "-l".
6660         * config/i386/djgpp.h (LIBSTDCXX): Remove initial "-l".
6661         * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove initial "-l".
6662         * config/s390/tpf.h (MATH_LIBRARY, LIBSTDCXX): Remove initial
6663         "-l".
6664         * cppspec.c: Include opts.h.
6665         (lang_specific_driver): Use cl_decoded_option structures.
6666         * doc/tm.texi.in (MATH_LIBRARY): Update documentation.
6667         * doc/tm.texi: Regenerate.
6668         * gcc.c (translate_options): Translate -d to -foutput-class-dir=.
6669         (driver_handle_option): Allow driver options needing no special
6670         processing.
6671         (process_command): Decode options before call to
6672         lang_specific_driver.  Pass decoded options to
6673         lang_specific_driver.
6674         * gcc.h (lang_specific_driver): Update prototype.
6675         * gccspec.c: Include opts.h.
6676         (lang_specific_driver): Use cl_decoded_option structures.
6677         * opts-common.c (option_ok_for_language, generate_option,
6678         generate_option_input_file): New.
6679         (decode_cmdline_option): Use option_ok_for_language.
6680         (decode_cmdline_options_to_array): Use generate_option_input_file.
6681         (handle_generated_option): Use generate_option.
6682         * opts.h (generate_option, generate_option_input_file): Declare.
6683
6684 2010-08-22  Anatoly Sokolov  <aesok@post.ru>
6685
6686         * config/mips/mips.c (mips_override_options): Rename to...
6687         (mips_option_override): ...this. Make static.
6688         (TARGET_OPTION_OVERRIDE): Define.
6689         (mips_in_small_data_p): Update comment.
6690         * config/mips/mips.h (OVERRIDE_OPTIONS): Remove.
6691         (FIXED_REGISTERS): Update comment.
6692         * config/mips/mips-protos.h (mips_override_options): Remove.
6693
6694 2010-08-21  Olivier Hainque  <hainque@adacore.com>
6695
6696         * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Define __PPC__.
6697
6698 2010-08-21  Olivier Hainque  <hainque@adacore.com>
6699
6700         * config/rs6000/vxworks.h (PREFERRED_STACK_BOUNDARY,
6701         ABI_STACK_BOUNDARY): Ensure STACK_BOUNDARY is honored despite EABI.
6702
6703 2010-08-20  Jan Hubicka  <jh@suse.cz>
6704
6705         * tree-pass.h (pass_ipa_cdtor_merge): New function.
6706         * cgraphunit.c (static_ctors, static_dtors): Move to ipa.c; make
6707         heap allocated.
6708         (record_cdtor_fn): Move to ipa.c; do not test for
6709         have_ctors_dtors.
6710         (build_cdtor): Move to ipa.c; add code avoiding construction
6711         when target have ctors/dtors and there is only one ctor/dtor at given
6712         priority.
6713         (compare_ctor, compare_dtor): Move to ipa.c; use DECL_UID to stabilize
6714         sort; reverse order of constructors.
6715         (cgraph_build_cdtor_fns): Move to ipa.c; rename to build_cdtor_fns.
6716         (cgraph_finalize_function): Do not call record_cdtor_fn.
6717         (cgraph_finalize_compilation_unit): Do not call cgraph_build_cdtor_fns.
6718         (cgraph_build_static_cdtor): Move to ipa.c.
6719         * ipa.c: Include target.h and tree-iterator.h.
6720         (cgraph_build_static_cdtor, static_ctors, static_dtors,
6721         record_cdtor_fn, build_cdtor, compare_ctor, compare_dtor,
6722         build_cdtor_fns, ipa_cdtor_merge, gate_ipa_cdtor_merge,
6723         pass_ipa_cdtor_merge): New.
6724         * passes.c (init_optimization_passes): Enqueue pass_ipa_cdtor_merge.
6725         * ipa-prop.c (update_indirect_edges_after_inlining): Avoid out of
6726         bounds access.
6727
6728 2010-08-20  Jan Hubicka  <jh@suse.cz>
6729
6730         PR c++/45307
6731         PR c++/17736
6732         * cgraph.h (cgraph_only_called_directly_p,
6733         cgraph_can_remove_if_no_direct_calls_and_refs_p): Handle
6734         static cdtors.
6735         * cgraphunit.c (cgraph_decide_is_function_needed): Static cdtors
6736         are not needed.
6737         (cgraph_finalize_function): Static cdtors are reachable.
6738         (cgraph_mark_functions_to_output): Use cgraph_only_called_directly_p.
6739
6740 2010-08-20  Jan Hubicka  <jh@suse.cz>
6741
6742         * lto-cgraph.c (lto_output_edge): Use gimple_has_body_p instead of
6743         flag_wpa.
6744         * lto-streamer-out.c (lto_output): Likewise.
6745         * passes.c (ipa_write_optimization_summaries): Initialize statement
6746         uids.
6747
6748 2010-08-20  Olivier Hainque  <hainque@adacore.com>
6749
6750         * tree.h (alias_diag_flags): New enum.
6751         (alias_pair): Add an 'emitted_diags' field.
6752         * varasm.c (finish_aliases_1): Honor and update p->emitted_diags.
6753         (assemble_alias): Initialize emitted_diags of new pairs.
6754
6755 2010-08-20  Eric Botcazou  <ebotcazou@adacore.com>
6756
6757         * config/rs6000/aix.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
6758         * config/rs6000/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6759         * config/rs6000/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
6760         (STACK_CHECK_PROTECT): Define.
6761         * config/rs6000/rs6000.c (rs6000_emit_probe_stack_range): New function.
6762         (output_probe_stack_range): Likewise.
6763         (rs6000_emit_prologue): Invoke rs6000_emit_probe_stack_range if static
6764         builtin stack checking is enabled.
6765         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Declare.
6766         * config/rs6000/rs6000.md (UNSPECV_PROBE_STACK_RANGE): New constant.
6767         (probe_stack_range): New insn.
6768
6769 2010-08-20  H.J. Lu  <hongjiu.lu@intel.com>
6770
6771         PR target/45336
6772         * config/i386/emmintrin.h (_mm_extract_epi16): Cast to unsigned
6773         short first.
6774
6775         * config/i386/smmintrin.h (_mm_extract_epi8): Cast to unsigned
6776         char first.
6777
6778 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
6779
6780         PR target/45336
6781         * config/i386/sse.md (*sse4_1_pextrb): Add SWI48 mode iterator
6782         to cover zero extension into 64-bit register.
6783         (*sse2_pextrw): Likewise.
6784         (*sse4_1_pextrd_zext): New insn.
6785
6786 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
6787
6788         revert r163410, partially revert r163267.
6789         * config/rs6000/darwin.h (LIB_SPEC): Remove.
6790         * config/darwin.h (REAL_LIBGCC_SPEC): Link lgcc for all
6791         Darwin versions.
6792
6793 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
6794
6795         PR middle-end/44974
6796         * builtins.c (expand_builtin): Don't optimize away
6797         calls to DECL_LOOPING_CONST_OR_PURE_P builtins.
6798
6799 2010-08-20  Uros Bizjak  <ubizjak@gmail.com>
6800
6801         * config/i386/i386.md (ashift %rsp splitter): Remove splitter.
6802         (pro_epilogue_adjust_stack_di_2): Use "l" constraint for
6803         alternative 1 of operand 2.
6804
6805 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
6806             Paolo Bonzini  <bonzini@gnu.org>
6807
6808         * simplify-rtx.c (simplify_unary_operation_1): Optimize
6809         (sign_extend (zero_extend (...)) and
6810         ({sign,zero}_extend (lshiftrt (ashift X (const_int I)) (const_int I))).
6811
6812 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
6813
6814         PR rtl-optimization/45353
6815         * sel-sched-ir.c (sel_bb_head): Return NULL even if next_nonnote_insn
6816         after bb_note is a BARRIER.
6817
6818 2010-08-20  Iain Sandoe  <iains@gcc.gnu.org>
6819
6820         * config/rs6000/darwin.h (LIB_SPEC): New. Provide saveFP/restFP by
6821         linking libgcc.a.
6822
6823 2010-08-20  Jakub Jelinek  <jakub@redhat.com>
6824             Michael Matz  <matz@suse.de>
6825
6826         * tree-ssa-address.c (tree_mem_ref_addr): Convert offset to sizetype.
6827
6828 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
6829
6830         * ggc-common.c (ggc_mark_root_tab): New function, split out from...
6831         (ggc_mark_roots): ...here.
6832
6833 2010-08-20  Nathan Froyd  <froydnj@codesourcery.com>
6834
6835         * vec.h (FOR_EACH_VEC_ELT): Define.
6836         * c-decl.c: Use it.
6837         * cfgloop.c: Likewise.
6838         * cfgloopmanip.c: Likewise.
6839         * cgraph.c: Likewise.
6840         * cgraphunit.c: Likewise.
6841         * combine.c: Likewise.
6842         * config/bfin/bfin.c: Likewise.
6843         * config/mips/mips.c: Likewise.
6844         * config/rs6000/rs6000.c: Likewise.
6845         * dbxout.c: Likewise.
6846         * df-scan.c: Likewise.
6847         * dominance.c: Likewise.
6848         * dse.c: Likewise.
6849         * dwarf2out.c: Likewise.
6850         * except.c: Likewise.
6851         * expr.c: Likewise.
6852         * function.c: Likewise.
6853         * gcse.c: Likewise.
6854         * genattr.c: Likewise.
6855         * ggc-common.c: Likewise.
6856         * gimplify.c: Likewise.
6857         * graphite-blocking.c: Likewise.
6858         * graphite-clast-to-gimple.c: Likewise.
6859         * graphite-dependences.c: Likewise.
6860         * graphite-interchange.c: Likewise.
6861         * graphite-poly.c: Likewise.
6862         * graphite-scop-detection.c: Likewise.
6863         * graphite-sese-to-poly.c: Likewise.
6864         * graphite.c: Likewise.
6865         * haifa-sched.c: Likewise.
6866         * ifcvt.c: Likewise.
6867         * implicit-zee.c: Likewise.
6868         * ipa-prop.c: Likewise.
6869         * ipa-struct-reorg.c: Likewise.
6870         * ipa.c: Likewise.
6871         * ira-build.c: Likewise.
6872         * ira-color.c: Likewise.
6873         * ira-emit.c: Likewise.
6874         * lambda-code.c: Likewise.
6875         * loop-invariant.c: Likewise.
6876         * loop-unroll.c: Likewise.
6877         * lower-subreg.c: Likewise.
6878         * lto-cgraph.c: Likewise.
6879         * lto-opts.c: Likewise.
6880         * lto-streamer-in.c: Likewise.
6881         * lto-streamer-out.c: Likewise.
6882         * lto-streamer.c: Likewise.
6883         * lto-symtab.c: Likewise.
6884         * matrix-reorg.c: Likewise.
6885         * opts.c: Likewise.
6886         * predict.c: Likewise.
6887         * print-tree.c: Likewise.
6888         * sdbout.c: Likewise.
6889         * sel-sched-dump.c: Likewise.
6890         * sel-sched-ir.c: Likewise.
6891         * sel-sched.c: Likewise.
6892         * sese.c: Likewise.
6893         * stor-layout.c: Likewise.
6894         * tree-cfg.c: Likewise.
6895         * tree-cfgcleanup.c: Likewise.
6896         * tree-chrec.c: Likewise.
6897         * tree-data-ref.c: Likewise.
6898         * tree-emutls.c: Likewise.
6899         * tree-inline.c: Likewise.
6900         * tree-into-ssa.c: Likewise.
6901         * tree-loop-distribution.c: Likewise.
6902         * tree-loop-linear.c: Likewise.
6903         * tree-mudflap.c: Likewise.
6904         * tree-outof-ssa.c: Likewise.
6905         * tree-parloops.c: Likewise.
6906         * tree-predcom.c: Likewise.
6907         * tree-pretty-print.c: Likewise.
6908         * tree-scalar-evolution.c: Likewise.
6909         * tree-ssa-live.c: Likewise.
6910         * tree-ssa-loop-im.c: Likewise.
6911         * tree-ssa-loop-ivcanon.c: Likewise.
6912         * tree-ssa-loop-ivopts.c: Likewise.
6913         * tree-ssa-loop-manip.c: Likewise.
6914         * tree-ssa-loop-niter.c: Likewise.
6915         * tree-ssa-loop-prefetch.c: Likewise.
6916         * tree-ssa-phiprop.c: Likewise.
6917         * tree-ssa-pre.c: Likewise.
6918         * tree-ssa-reassoc.c: Likewise.
6919         * tree-ssa-sccvn.c: Likewise.
6920         * tree-ssa-structalias.c: Likewise.
6921         * tree-ssa.c: Likewise.
6922         * tree-vect-data-refs.c: Likewise.
6923         * tree-vect-loop-manip.c: Likewise.
6924         * tree-vect-loop.c: Likewise.
6925         * tree-vect-patterns.c: Likewise.
6926         * tree-vect-slp.c: Likewise.
6927         * tree-vect-stmts.c: Likewise.
6928         * tree-vrp.c: Likewise.
6929         * tree.c: Likewise.
6930         * value-prof.c: Likewise.
6931         * var-tracking.c: Likewise.
6932         * varasm.c: Likewise.
6933         * vmsdbgout.c: Likewise.
6934
6935 2010-08-19  Nathan Sidwell  <nathan@codesourcery.com>
6936             Richard Guenther  <richard.guenther@gmail.com>
6937
6938         * gimplify.c (gimplify_modify_expr): When assigning to volatiles,
6939         copy the src value and return a copy.
6940         * doc/extend.texi (Volatiles): Move from C++ to C and expand.
6941         (C++ Volatiles): Adjust to describe C++ semantics only.
6942
6943 2010-08-20  Joseph Myers  <joseph@codesourcery.com>
6944
6945         * doc/tm.texi.in (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Document to
6946         be zero or nonzero.
6947         * doc/tm.texi: Regenerate.
6948         * defaults.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define.
6949         * df-scan.c (df_get_exit_block_use_set), reginfo.c
6950         (init_reg_sets_1), rtlanal.c (rtx_unstable_p, rtx_varies_p):
6951         Handle new PIC_OFFSET_TABLE_REG_CALL_CLOBBERED semantics.
6952         * config/ia64/ia64.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): Define
6953         to 1.
6954
6955 2010-08-20  Olivier Hainque  <hainque@adacore.com>
6956
6957         * config/sparc/sparc.c (sparc_asm_function_epilogue): Don't output
6958         an extra nop past a sibling call at the very end.
6959
6960 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
6961
6962         PR bootstrap/45350
6963         * combine.c (try_combine): Initialize i1_is_used and i2_is_used.  Fix
6964         a comment.
6965
6966 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
6967
6968         * target.def (function_arg, function_incoming_arg): Remove const
6969         qualifier on CUMULATIVE_ARGS parameter.
6970         * targhooks.h (default_function_arg, default_function_incoming_arg):
6971         Likewise.
6972         * targhooks.c (default_function_arg, default_function_incoming_arg):
6973         Likewise.
6974         * config/i386/i386.c (ix86_function_arg): Likewise.
6975
6976 2010-08-19  Jakub Jelinek  <jakub@redhat.com>
6977
6978         PR target/45336
6979         * simplify-rtx.c (simplify_unary_operation_1): Optimize nested
6980         SIGN_EXTENDs or ZERO_EXTENDs.
6981
6982 2010-08-19  Bernd Schmidt  <bernds@codesourcery.com>
6983
6984         PR target/42172
6985         * combine.c (combine_validate_cost): New arg I0.  All callers changed.
6986         Take its cost into account if nonnull.
6987         (insn_a_feeds_b): New static function.
6988         (combine_instructions): Look for four-insn combinations.
6989         (can_combine_p): New args PRED2, SUCC2.  All callers changed.  Take
6990         them into account when computing all_adjacent and looking for other
6991         uses.
6992         (combinable_i3pat): New args I0DEST, I0_NOT_IN_SRC.  All callers
6993         changed.  Treat them like I1DEST and I1_NOT_IN_SRC.
6994         (try_combine): New arg I0.  Handle four-insn combinations.
6995         (distribute_notes): New arg ELIM_I0.  All callers changed.  Treat it
6996         like ELIM_I1.
6997
6998 2010-08-19  Jason Merrill  <jason@redhat.com>
6999
7000         PR c++/45307
7001         * gimplify.c (gimplify_init_constructor): Just return GS_UNHANDLED
7002         if ctor is empty.
7003         (gimplify_modify_expr_rhs): Adjust.
7004
7005 2010-08-19  Nathan Froyd  <froydnj@codesourcery.com>
7006
7007         * cfgloop.c (get_loop_body_in_bfs_order): Avoid redundant call to
7008         bitmap_bit_p.
7009         * config/bfin/bifn.c (bfin_discover_loop): Likewise.
7010         * dominance.c (iterate_fix_dominators): Likewise.
7011         * dse.c (set_usage_bits): Likewise.
7012         (set_position_unneeded, record_store): Likewise.
7013         * gimple-fold.c (get_maxval_strlen): Likewise.
7014         * haifa-sched.c (fix_inter_tick, fix_recovery_deps): Likewise.
7015         * ipa-inline.c (update_caller_keys): Likewise.
7016         * ipa-split.c (verify_non_ssa_vars): Likewise.
7017         * ipa-type-escape.c (mark_type, close_type_seen): Likewise.
7018         (close_type_exposed_parameter, close_type_full_escape): Likewise.
7019         (close_addressof_down): Likewise.
7020         * ira-color.c (assign_hard_reg, push_allocno_to_stack): Likewise.
7021         (setup_allocno_left_conflicts_size): Likewise.
7022         (ira_reassign_conflict_allocnos): Likewise.
7023         (ira_reassign_pseudos): Likewise.
7024         * ira-emit.c (change_loop): Likewise.
7025         * loop-invariant.c (mark_regno_live, mark_regno_death): Likewise.
7026         * lto-streamer-out.c (write_symbol): Likewise.
7027         * predict.c (expr_expected_value_1): Likewise.
7028         * regstat.c (regstat_bb_compute_ri): Likewise.
7029         * sel-sched.c (create_block_for_bookkeeping): Likewise.
7030         (track_scheduled_insns_and_blocks, sel_sched_region_1): Likewise.
7031         * stmt.c (expand_case): Likewise.
7032         * tree-eh.c (emit_eh_dispatch): Likewise.
7033         * tree-into-ssa.c (prune_unused_phi_nodes): Likewise.
7034         * tree-loop-distribution.c (make_nodes_having_upstream_mem_writes):
7035         Likewise.
7036         (rdg_flag_vertex, rdg_flag_loop_exits): Likewise.
7037         (rdg_build_components): Likewise.
7038         * tree-object-size.c (collect_object_sizes_for): Likewise.
7039         * tree-sra.c (convert_callers): Likewise.
7040         * tree-ssa-coalesce.c (live_track_add_partition): Likewise.
7041         * tree-ssa-live.c (mark_all_vars_used_1): Likewise.
7042         * tree-ssa-pre.c (bitmap_set_replace_value): Likewise.
7043
7044 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
7045
7046         * config/i386/i386.md (*lea_1): Use P mode iterator.
7047         (lea add splitter): Also handle DImode operands.
7048         (DImode lea add splitter): Use x86_64_immediate_operand for operand 2
7049         predicate.  Do not use ix86_lea_for_add_ok.
7050         (zext DImode lea add splitter): Use ix86_lea_for_add_ok.
7051         (lea ashift splitter): Also handle DImode operands.
7052         (DImode lea ashift splitter): Remove splitter.
7053
7054 2010-08-19  Uros Bizjak  <ubizjak@gmail.com>
7055
7056         * config/i386/i386.md (*add<SWI:mode>3_cconly_overflow): Do not use
7057         ix86_binary_operator_ok.
7058
7059 2010-08-19  Andrey Belevantsev  <abel@ispras.ru>
7060
7061         PR rtl-optimization/44691
7062         * sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
7063         is not a register.
7064
7065 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
7066
7067         PR target/45070
7068         * config/arm/arm.c (arm_output_epilogue): Ensure that return
7069          value of size 1-3 is handled correctly.
7070
7071 2010-08-19  Ian Bolton  <ian.bolton@arm.com>
7072
7073         * tree-switch-conversion.c (gen_inbound_check): Ensure that the
7074         type for the conditional has wide enough range.
7075
7076 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
7077
7078         PR target/45327
7079         * config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
7080         ix86_binary_operator_ok.
7081
7082 2010-08-18  Uros Bizjak  <ubizjak@gmail.com>
7083
7084         * config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
7085         <default>:  Swap operands 1 and 2 for alternative 2 to use existing
7086         code to output insn mnemonic.  Fix comment.
7087         (*addsi_1_zext): Add r-r-0 alternative 1.
7088         <TYPE_LEA>: Split insn to lea.
7089         <default>: Handle alternative 1.
7090         (*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
7091         multi-level if_then_else RTX to set "type" attribute.
7092         <default>: Handle alternative 2.
7093         (*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
7094         Use cond RTX instead of multi-level if_then_else RTX to set
7095         "type" attribute.
7096         <default>: Handle alternatives 2 and 4.
7097         (lea splitters): Update calls to ix86_lea_for_add_ok.
7098
7099         * config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
7100         argument.
7101         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.
7102
7103 2010-08-18  Richard Guenther  <rguenther@suse.de>
7104
7105         * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
7106         use operand helpers.
7107
7108 2010-08-18  Paolo Bonzini  <bonzini@gnu.org>
7109
7110         PR middle-end/45292
7111         * optabs.c (expand_bool_compare_and_swap): Expand pending
7112         pops before trying the optab.
7113
7114 2010-08-18  Yao Qi  <yao@codesourcery.com>
7115
7116         PR target/45094
7117         * config/arm/arm.c (output_move_double): Fix typo generating
7118         instructions ('ldr'->'str').
7119
7120 2010-08-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
7121
7122         PR rtl-optimization/42575
7123         * optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
7124         live ranges.
7125
7126 2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7127
7128         * config/arm/arm-protos.h (arm_expand_sync): New.
7129         (arm_output_memory_barrier, arm_output_sync_insn): New.
7130         (arm_sync_loop_insns): New.
7131         * config/arm/arm.c (FL_ARCH7): New.
7132         (FL_FOR_ARCH7): Include FL_ARCH7.
7133         (arm_arch7): New.
7134         (arm_print_operand): Support %C markup.
7135         (arm_legitimize_sync_memory): New.
7136         (arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
7137         (arm_process_output_memory_barrier, arm_output_memory_barrier): New.
7138         (arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
7139         (arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
7140         (arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
7141         (arm_process_output_sync_insn, arm_output_sync_insn): New.
7142         (arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
7143         * config/arm/arm.h (struct arm_sync_generator): New.
7144         (TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
7145         (TARGET_HAVE_MEMORY_BARRIER): New.
7146         (TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
7147         * config/arm/arm.md: Include sync.md.
7148         (UNSPEC_MEMORY_BARRIER): New.
7149         (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
7150         (VUNSPEC_SYNC_OP):New.
7151         (VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
7152         (sync_result, sync_memory, sync_required_value): New attributes.
7153         (sync_new_value, sync_t1, sync_t2): Likewise.
7154         (sync_release_barrier, sync_op): Likewise.
7155         (length): Add logic to length attribute defintion to call
7156         arm_sync_loop_insns when appropriate.
7157         * config/arm/sync.md: New file.
7158
7159 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
7160
7161         * tree.h (host_integerp): Add ATTRIBUTE_PURE when not
7162         ENABLE_TREE_CHECKING.
7163         (tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
7164         and GCC >= 4.3.
7165
7166 2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>
7167
7168         * config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
7169         or optimizing for size, always avoid lea if possible.
7170
7171         * config/i386/i386.md (*add<mode>_1): Always avoid lea if possible.
7172
7173 2010-08-17  Iain Sandoe  <iains@gcc.gnu.org>
7174
7175         * unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
7176         Dunmmy function with NULL return unless the target is
7177         OSX >= 10.6 (Darwin10).
7178
7179 2010-08-17  Jack Howarth  <howarth@bromo.med.uc.edu>
7180
7181         * gcc.c (spec_function): Add remove-outfile.
7182         (remove_outfile_spec_function): New function.
7183         * config/darwin.h (LINK_SPEC): Add removal of -ldl, -lm and -lpthread.
7184         * invoke.texi (replace-outfile): Document.
7185
7186 2010-08-17  Uros Bizjak  <ubizjak@gmail.com>
7187
7188         PR target/45296
7189         * reginfo.c (globalize_reg): Reject stack registers.
7190
7191 2010-08-17  Richard Guenther  <rguenther@suse.de>
7192
7193         * tree-ssa-dom.c (struct edge_info): Use a VEC for the
7194         list of conditional equivalences.
7195         (free_all_edge_infos): Adjust.
7196         (record_equivalences_from_incoming_edge): Likewise.
7197         (record_cond): Likewise.
7198         (build_and_record_new_cond): Likewise.
7199         (record_conditions): Likewise.
7200         (dom_opt_leave_block): Likewise.
7201
7202 2010-08-17  Kai Tietz  <kai.tietz@onevision.com>
7203
7204         * doc/invoke.texi (ms-extension): Add documentation.
7205
7206 2010-08-17  Richard Guenther  <rguenther@suse.de>
7207
7208         * fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
7209
7210 2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>
7211
7212         PR c/40563
7213         * c-decl.c (diagnose_uninitialized_cst_member): New function.
7214         (finish_decl): Use it to issue a -Wc++-compat warning about
7215         uninitialized const field in struct or union.
7216
7217         (finish_struct): Use strip_array_types.
7218
7219 2010-08-17  Jakub Jelinek  <jakub@redhat.com>
7220
7221         * function.c (block_fragments_nreverse, blocks_nreverse_all): New
7222         functions.
7223         (reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
7224         (reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
7225         call block_nreverse here.
7226         (blocks_nreverse): Rename decl temporary to block.
7227
7228 2010-08-16  Bernd Schmidt  <bernds@codesourcery.com>
7229
7230         * config/arm/thumb2.md (thumb2_notsi_shiftsi,
7231         thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
7232         thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
7233         thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
7234         thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
7235         thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
7236         thumb2_iorsi3): Delete.
7237         (orsi_notsi_si): No longer a named pattern.
7238         (orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
7239         * config/arm/predicates.md (shift_amount_operand): New.
7240         (mult_operator): New.
7241         * config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
7242         attr enabled): New.
7243         (iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
7244         arch matches t2.
7245         (not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
7246         (not_shiftsi_compare0): Likewise, renamed from
7247         arm_notsi_shiftsi_compare0.
7248         (not_shiftsi_compare0_scratch): Likweise, renamed from
7249         arm_notsi_shiftsi_compare0_scratch.
7250         (cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
7251         (cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
7252         (arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
7253         so that the register alternative is disabled when the shift_operator
7254         is MULT.  Use "M" as the constraint for constants.
7255         (arith_shiftsi splitter): Enable for TARGET_32BIT.
7256         (arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
7257         constraint for constants.
7258         (arith_shiftsi_compare0_scratch): Likewise.
7259         (sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
7260         Handle Thumb2 alternative.
7261
7262 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
7263
7264         * doc/options.texi (NoDriverArg): Document.
7265         * gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
7266         -MDX and -MMDX.
7267         * opt-functions.awk (switch_flags): Handle NoDriverArg.
7268         * opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
7269         marking for CL_NO_DRIVER_ARG options when in the driver.
7270         * opts.h (CL_NO_DRIVER_ARG): Define.
7271         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
7272         CL_COMMON): Update values.
7273
7274 2010-08-16  Joseph Myers  <joseph@codesourcery.com>
7275
7276         * common.opt: Add driver options.
7277         (auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
7278         * doc/options.texi (Driver, RejectDriver): Document.
7279         * gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
7280         print_prog_name, print_multi_directory, print_sysroot,
7281         print_multi_os_directory, print_multi_lib,
7282         print_sysroot_headers_suffix, report_times, combine_flag,
7283         use_pipes, wrapper_string): Remove.
7284         (save_switch, driver_unknown_option_callback,
7285         driver_wrong_lang_callback, driver_post_handling_callback,
7286         driver_handle_option): New.
7287         (spec_lang, last_language_n_infiles): Make file-scope static
7288         instead of local to process_command.
7289         (process_command): Use decode_cmdline_options_to_array and
7290         read_cmdline_option for option processing.  Compute have_c in
7291         prescan of decoded options.
7292         * opt-functions.awk (switch_flags): Handle Driver and
7293         RejectDriver.
7294         (var_type, var_type_struct): Handle Separate options as generating
7295         const char * variables.
7296         * opts-common.c (decode_cmdline_option): Expect CL_COMMON and
7297         CL_TARGET to be passed by caller if required.
7298         (decode_cmdline_options_to_array): Update comment.
7299         * opts.c (complain_wrong_lang): Handle options only valid for the
7300         driver.
7301         (decode_options): Update call to decode_cmdline_options_to_array.
7302         (print_filtered_help): Ignore driver-only options.
7303         (print_specific_help): Ignore CL_DRIVER.
7304         (common_handle_option): Don't call print_specific_help for CL_DRIVER.
7305         * opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
7306         (CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
7307         Update values.
7308
7309 2010-08-16  Richard Guenther  <rguenther@suse.de>
7310
7311         * tree-cfg.c (verify_types_in_gimple_reference): Verify
7312         TARGET_MEM_REF a bit.
7313         * tree-ssa-address.c (addr_for_mem_ref): Adjust.
7314         (create_mem_ref_raw): Always create TMR_OFFSET, store the
7315         alias pointer type via it.
7316         (copy_mem_ref_info): Adjust.
7317         (maybe_fold_tmr): Likewise.
7318         * tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
7319         (reference_alias_ptr_type): Likewise.
7320         * tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
7321         adjust documentation of TMR_OFFSET operand.
7322         * alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
7323         use the alias pointer type.
7324         * expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
7325         initialize mem attrs but the TMR itself.
7326         * tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
7327         similar to MEM_REF.
7328         * tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
7329         * tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
7330         (unshare_and_remove_ssa_names): Likewise.
7331         (copy_ref_info): Adjust.
7332         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
7333         TARGET_MEM_REF case.
7334         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
7335         at TMR_ORIGINAL.
7336         * tree.h (TMR_ORIGINAL): Remove.
7337         * gimple.c (get_base_address): For TARGET_MEM_REF with a
7338         symbol return that.
7339         * tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
7340         with a symbol.
7341         (get_addr_base_and_unit_offset): Likewise.
7342         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
7343         TARGET_MEM_REFs.
7344         (indirect_ref_may_alias_decl_p): Likewise.
7345         (refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
7346
7347 2010-08-15  Uros Bizjak  <ubizjak@gmail.com>
7348
7349         * doc/invoke.texi (-fomit-frame-pointer): Document that starting
7350         with GCC version 4.6, the default setting (when not optimizing
7351         for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
7352         been changed to -fomit-frame-pointer.
7353
7354 2010-08-15  Iain Sandoe  <iains@gcc.gnu.org>
7355
7356         * config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
7357         Darwin10.  Do not link libgcc.a for Darwin >= 9.
7358
7359 2010-08-15  Gerald Pfeifer  <gerald@pfeifer.com>
7360
7361         * doc/invoke.texi (Warning Options): Fix terminology and markup
7362         in the description of how unknown warning options are handled.
7363
7364 2010-08-15  Ira Rosen  <irar@il.ibm.com>
7365
7366         * tree-vect-data-refs.c (vect_setup_realignment): Support realignment
7367         in basic blocks.
7368         (vect_supportable_dr_alignment): Check alignment for basic blocks.
7369         * tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
7370         data references.
7371         (vect_bb_vectorization_profitable_p): New function.
7372         (vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
7373         check if it's worthwhile to vectorize the basic block.
7374
7375 2010-08-14  Anatoly Sokolov  <aesok@post.ru>
7376
7377         * reload.h (register_move_cost, memory_move_secondary_cost,
7378         secondary_reload_class): Adjust prototype.
7379         * rtl.h (reg_class_subset_p): Adjust prototype.
7380         * reload.c (secondary_reload_class): Change arguments type from
7381         enum reg_class to reg_class_t. Change result type to reg_class_t.
7382         * reginfo.c (register_move_cost, reg_class_subset_p): Change
7383         arguments type from enum reg_class to reg_class_t.
7384         (memory_move_secondary_cost): Change arguments type from
7385         enum reg_class to reg_class_t. Change type of saved_flags to
7386         reg_class_t.
7387
7388         * config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
7389         Remove macros.
7390         (mips_cost): Remove.
7391         (struct mips_rtx_cost_data): Moved to mips.c.
7392         * config/mips/mips-protos.h (mips_register_move_cost): Remove.
7393         * config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
7394         (mips_cost): Make static.
7395         (mips_canonicalize_move_class): Change argument type to reg_class_t.
7396         Change result type to reg_class_t.
7397         (mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
7398         type from enum reg_class to reg_class_t.
7399         (mips_register_move_cost): Make static. Change arguments
7400         type from enum reg_class to reg_class_t.
7401         (mips_memory_move_cost): New function.
7402         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
7403
7404 2010-08-14  Richard Sandiford  <rdsandiford@googlemail.com>
7405
7406         PR rtl-optimization/43358
7407         * ira-lives.c (process_single_reg_class_operands): Adjust the costs
7408         of a single hard register, using simplify_subreg_regno to decide
7409         what that register should be.
7410
7411 2010-08-14  Mingjie Xing  <mingjie.xing@gmail.com>
7412
7413         * config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
7414         * config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
7415         (loongson_pmull<V_suffix>): Rename to...
7416         (mul<mode>3): ...this and use MULT instead of an UNSPEC.
7417
7418 2010-08-13  Jack Howarth  <howarth@bromo.med.uc.edu>
7419
7420         * configure.ac: Enable -fomit-frame-pointer on darwin
7421         which support dwarf2.
7422         * config/i386/i386.c (override_options): Same.
7423
7424 2010-08-13  Jie Zhang  <jie@codesourcery.com>
7425
7426         * config/arm/arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
7427
7428 2010-08-12  Joseph Myers  <joseph@codesourcery.com>
7429
7430         * gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
7431         -MMD.
7432
7433 2010-08-12  Changpeng Fang  <changpeng.fang@amd.com>
7434
7435         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
7436         up dot_prod pattern searching if a stmt is outside the loop.
7437
7438 2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
7439             Uros Bizjak  <ubizjak@gmail.com>
7440
7441         * config.gcc: Handle --enable-frame-pointer.
7442
7443         * configure.ac: Add --enable-frame-pointer.
7444         * configure: Regenerated.
7445
7446         * config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
7447         (override_options): If not configured with --enable-frame-pointer,
7448         enable -fomit-frame-pointer (but not for TARGET_MACHO or when
7449         optimizing for size), -fasynchronous-unwind-tables and
7450         -maccumulate-outgoing-args by default.
7451
7452 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
7453
7454         * builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
7455
7456         PR middle-end/45262
7457         * fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
7458         -a overflows.  Normalize the range.
7459
7460 2010-08-12  Richard Guenther  <rguenther@suse.de>
7461
7462         PR tree-optimization/45232
7463         * tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
7464         for types with undefined overflow.
7465         (reassociate_bb): Allow re-associating of bit and min/max
7466         operations for types with undefined overflow.
7467         * tree-ssa-forwprop.c (associate_plusminus): New function.
7468         (tree_ssa_forward_propagate_single_use_vars): Call it.
7469
7470 2010-08-12  Richard Guenther  <rguenther@suse.de>
7471
7472         * tree-flow.h (struct ptr_info_def): Add align and misalign fields.
7473         * tree-ssa-alias.c (get_ptr_info): Move ...
7474         * tree-ssanames.c (get_ptr_info): ... here.  Initialize
7475         align and misalign fields conservatively.
7476         * tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
7477         derive alignment information.
7478         (evaluate_stmt): Derive alignment information from memory
7479         allocation functions.
7480         * tree.h (get_pointer_alignment): Make unsigned.
7481         * builtins.c (get_object_alignment): Use alignment information we
7482         have computed for pointers.
7483         (get_pointer_alignment): Likewise.  Make conservative, return
7484         and unsigned value.
7485         (expand_builtin_strlen): Adjust.
7486         (expand_builtin_memcmp): Likewise.
7487         (expand_builtin_strcmp): Likewise.
7488         (expand_builtin_strncmp): Likewise.
7489         (get_builtin_sync_mem): Use at least mode alignment.
7490         (fold_builtin_memset): Adjust.
7491         (fold_builtin_memory_op): Likewise.
7492         * gimple-pretty-print.c (dump_gimple_phi): Alongside alias
7493         information also dump pointer alignment knowledge.
7494         (dump_gimple_stmt): Likewise.
7495
7496 2010-08-12  Uros Bizjak  <ubizjak@gmail.com>
7497
7498         * config/i386/i386.c (LONG_TYPE_SIZE): Remove.
7499         (EMPTY_FIELD_BOUNDARY): Remove.
7500         * config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.
7501
7502 2010-08-12  Jakub Jelinek  <jakub@redhat.com>
7503
7504         PR debug/45259
7505         * caller-save.c (save_call_clobbered_regs): Only swap notes with
7506         DEBUG_INSNs if n_regs_saved.
7507
7508 2010-08-12  Wei Guozhi  <carrot@google.com>
7509
7510         PR target/44999
7511         * config/arm/arm.md (andsi3): Change to zero extension if possible.
7512         * config/arm/thumb2.md (thumb2_zero_extendqisi2_v6): Change the name.
7513
7514 2010-08-11  Vladimir Makarov  <vmakarov@redhat.com>
7515
7516         * ira-int.h (ira_remove_allocno_copy_from_list): Remove.
7517
7518         * ira-build.c (ira_remove_allocno_copy_from_list): Remove.
7519
7520 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7521
7522         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add back
7523         the case removed in the previous patch, when the only phi argument
7524         is defined in the same loop as the phi node itself.  Handle it
7525         separately from the invariant case by both propagating it outside
7526         the region and replacing the phi node with an assign.
7527
7528 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7529
7530         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): The only
7531         constant phi nodes with one argument are is_gimple_min_invariant
7532         and SSA_NAME_IS_DEFAULT_DEF.
7533
7534 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7535
7536         * graphite-cloog-util.c (oppose_constraint):
7537         Extend loop counter's value range (CLOOG_ORG).
7538         (cloog_matrix_to_ppl_constraint): Same.
7539         (new_Constraint_System_from_Cloog_matrix): Same.
7540         * graphite-cloog-compat.h (matrix_num_type): New.
7541
7542 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7543
7544         * graphite.c (graphite_initialize): Do not initialize
7545         CLooG and initialize the Parma Polyhedra Library
7546         manually when using CLOOG_ORG.
7547         (graphite_finalize): Do not finalize CLooG and finalize
7548         the Parma Polyhedra Library manually when using CLOOG_ORG.
7549         * graphite-cloog-compat.h (cloog_initialize): Hide function
7550         when using CLOOG_ORG.
7551         (cloog_finalize): Same.
7552
7553 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7554
7555         * graphite-clast-to-gimple.c (free_scattering): Change
7556         CloogDomainList/CloogDomain to CloogScatteringList/CloogScattering
7557         (CLOOG_ORG).
7558         (build_cloog_prog): Same.
7559         * graphite-cloog-compat.h (cloog_domain): Removed.
7560         (cloog_scattering): New.
7561         (cloog_set_domain): Removed.
7562         (cloog_set_scattering): New.
7563         (cloog_next_domain): Removed.
7564         (cloog_next_scattering): New.
7565         (cloog_set_next_domain): Removed.
7566         (cloog_set_next_scattering): New.
7567         (CloogScatteringList): New.
7568         (CloogScattering): New.
7569         (cloog_scattering_free): New.
7570         (new_Cloog_Scattering_from_ppl_Polyhedron): New.
7571         * graphite-cloog-util.c (new_Cloog_Scattering_from_ppl_Polyhedron):
7572         New.
7573
7574 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7575
7576         * graphite-clast-to-gimple.c (build_cloog_prog): Extend with
7577         CloogState.
7578         (set_cloog_options): Same.
7579         (print_clast_stmt): Same.
7580         (scop_to_clast): Same.
7581         (print_generated_program): Same.
7582         (gloog): Same.
7583         * graphite-clast-to-gimple.h: Include graphite-cloog-util.h.
7584         (scop_to_clast): Extend with CloogState.
7585         * graphite-cloog-util.c: Include graphite-cloog-compat.h
7586         (new_Cloog_Domain_from_ppl_Polyhedron):
7587         Extend with CloogState.  Use cloog_domain_from_cloog_matrix (CLOOG_ORG).
7588         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Extend with CloogState.
7589         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
7590         * graphite-cloog-util.h (build_cloog_prog): Same.
7591         * graphite-cloog-copat.h (build_cloog_prog): New.
7592         (CloogState): New.
7593         (cloog_state_malloc): New.
7594         (cloog_state_free): New.
7595         (cloog_loop_malloc): New.
7596         (cloog_options_malloc): New.
7597         (cloog_statement_alloc): New.
7598         (cloog_domain_from_cloog_matrix): New.
7599         (new_Cloog_Domain_from_ppl_Pointset_Powerset): New.
7600         (new_Cloog_Domain_from_ppl_Polyhedron): New.
7601
7602 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7603
7604         * graphite-clast-to-gimple.c (clast_name_to_gcc): Parameter
7605         type of NAME now depends on used CLooG version.
7606         (clast_to_gcc_expression): Replace expr_* with clast_expr_*.
7607         (gcc_type_for_clast_expr): Same.
7608         (print_clast_stmt): Replace pprint with clast_pprint.
7609         * graphite-cloog-compat.h: Provide compatibility macros for
7610         CLooG Legacy.
7611         (clast_name_p): New.
7612         (clast_expr_term): New.
7613         (clast_expr_red): New.
7614         (clast_expr_bin): New.
7615         (clast_pprint): New.
7616
7617 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7618
7619         * graphite-clast-to-gimple.c (set_cloog_options): Make CLooG options
7620         compatible to newer CLooG releases (CLOOG_ORG).
7621         (build_cloog_prog): Pass CloogOptions to more functions (CLOOG_ORG).
7622         (scop_to_clast): Pass CloogOptions to build_cloog_prog (CLOOG_ORG).
7623         * graphite-cloog-compat.h: Add compatibility macros for CLooG Legacy.
7624         (build_cloog_prog) : New.
7625         (cloog_program_extract_scalars): New.
7626         (cloog_program_scatter): New.
7627
7628 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7629
7630         * graphite-clast-to-gimple.c: Include graphite-cloog-compat.h
7631         conditionally (CLOOG_ORG).
7632         * graphite-cloog-compat.h: New.  Include graphite-cloog-compat.h.
7633         (cloog_statement_usr): New.
7634         (cloog_domain): Same.
7635         (cloog_set_domain): Same.
7636         (cloog_next_domain): Same.
7637         (cloog_set_next_domain): Same.
7638         (cloog_program_nb_scattdims): Same.
7639         (cloog_program_set_nb_scattdims): Same.
7640         (cloog_program_names): Same.
7641         (cloog_program_set_names): Same.
7642         (cloog_program_set_context): Same.
7643         (cloog_program_set_loop): Same.
7644         (cloog_program_blocklist): Same.
7645         (cloog_program_set_blocklist): Same.
7646         (cloog_program_scaldims): Same.
7647         (cloog_program_set_scaldims): Same.
7648         (cloog_names_nb_parameters): Same.
7649         (cloog_names_set_nb_parameters): Same.
7650         (cloog_names_parameters): Same.
7651         (cloog_names_set_parameters): Same.
7652         (cloog_names_set_nb_iterators): Same.
7653         (cloog_names_set_iterators): Same.
7654         (cloog_names_set_nb_scattering): Same.
7655         (cloog_names_set_scattering): Same.
7656         (cloog_statement_set_usr): Same.
7657         (cloog_loop_set_next): Same.
7658         (cloog_loop_set_domain): Same.
7659         (cloog_loop_set_block): Same.
7660         (cloog_block_list_next): Same.
7661         (cloog_block_list_set_next):
7662         (cloog_block_list_set_block): Same.
7663
7664 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7665
7666         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Returns
7667         a bool.
7668         (rewrite_commutative_reductions_out_of_ssa_close_phi): Same.
7669         (rewrite_commutative_reductions_out_of_ssa_loop): Same.
7670         (rewrite_cross_bb_scalar_deps_out_of_ssa): Call scev_reset_htab
7671         when something has been changed.
7672         (rewrite_commutative_reductions_out_of_ssa): Same.
7673
7674 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7675
7676         * graphite-sese-to-poly.c (propagate_expr_outside_region): Also
7677         handle the case when def is in the sese region.
7678         (rewrite_close_phi_out_of_ssa): Call propagate_expr_outside_region
7679         for invariant expressions.
7680         (rewrite_cross_bb_phi_deps): Removed.
7681         (rewrite_cross_bb_scalar_deps): Also handle GIMPLE_PHI nodes.
7682         (rewrite_cross_bb_scalar_deps_out_of_ssa): Do not call
7683         rewrite_cross_bb_phi_deps.
7684
7685 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7686
7687         * graphite-sese-to-poly.c
7688         (rewrite_commutative_reductions_out_of_ssa_loop): Call
7689         scev_analyzable_p only on is_gimple_reg
7690
7691 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7692
7693         * graphite-sese-to-poly.c (propagate_expr_outside_region): New.
7694         (rewrite_close_phi_out_of_ssa): Propagate constant values or
7695         parametric expressions outside the scop region.
7696         (rewrite_cross_bb_scalar_deps): Same.
7697         * sese.c (rename_uses): Use NULL_TREE instead of NULL for trees.
7698
7699 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7700
7701         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Use
7702         SSA_NAME_DEF_STMT only on SSA_NAMEs.
7703
7704 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7705
7706         * tree-scalar-evolution.c (instantiate_scev_name): Do not
7707         instantiate default definitions.
7708
7709 2010-08-11  Vladimir Kargov  <kargov@gmail.com>
7710             Sebastian Pop  <sebastian.pop@amd.com>
7711
7712         * cfgloop.c (is_loop_exit): Renamed loop_exits_to_bb_p.
7713         (loop_exits_from_bb_p): New.
7714         * cfgloop.h (is_loop_exit): Renamed loop_exits_to_bb_p.
7715         (loop_exits_from_bb_p): Declared.
7716         * graphite-scop-detection.c (scopdet_basic_block_info): Call
7717         loop_exits_to_bb_p.
7718
7719 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7720
7721         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Add an
7722         extra parameter for the region.  Call scev_analyzable_p.
7723         (rewrite_reductions_out_of_ssa): Update call to
7724         rewrite_close_phi_out_of_ssa.
7725         (rewrite_cross_bb_phi_deps): Same.
7726         (rewrite_commutative_reductions_out_of_ssa_loop): Add an extra
7727         parameter for the region.  Call scev_analyzable_p.
7728         (rewrite_commutative_reductions_out_of_ssa): Update call to
7729         rewrite_commutative_reductions_out_of_ssa_loop.
7730
7731 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7732
7733         * sese.c (rename_uses): Call unshare_expr before force_gimple_operand.
7734
7735 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7736
7737         * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of
7738         SSA scalar phi nodes that can be scev_analyzable_p.
7739
7740 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7741
7742         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Correctly
7743         handle SSA_NAME_IS_DEFAULT_DEF.
7744
7745 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7746
7747         * sese.c (rename_uses): Handl unconditionally gimple_debug statements.
7748
7749 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7750
7751         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Special
7752         case non close-phi nodes with one argument.
7753
7754 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7755
7756         * sese.h (scev_analyzable_p): Scevs could be expressions without
7757         chrecs and still be scev_analyzable_p.
7758
7759 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7760
7761         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
7762
7763 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7764
7765         * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
7766         * cfgloop.h (struct loop): Remove single_iv field.
7767         * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
7768         (scop_canonicalize_loops): Removed.
7769         (scop_ivs_can_be_represented): Do not use loop->single_iv.  Iterate
7770         over all the loop phi nodes in loop->header.
7771         (build_poly_scop): Remove use of scop_canonicalize_loops.
7772
7773 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7774
7775         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Also
7776         handle GIMPLE_CALL.
7777
7778 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7779
7780         * tree-chrec.c (chrec_apply): Should only apply to the specified
7781         variable.  Also handle multivariate chains of recurrences that
7782         satisfy evolution_function_is_affine_p.  Also handle CASE_CONVERT.
7783
7784 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7785
7786         * graphite-clast-to-gimple.c (debug_clast_name_index): Removed.
7787         (debug_clast_name_indexes_1): Removed.
7788         (debug_clast_name_indexes): Removed.
7789         (pbb_to_depth_to_oldiv): Removed.
7790         (build_iv_mapping): Replace the use of rename_map with iv_map.
7791         (translate_clast_user): Remove uses of rename_map.  Allocate and
7792         free iv_map.
7793         (translate_clast_for_loop): Remove uses of rename_map.
7794         (translate_clast_for): Same.
7795         (translate_clast_guard): Same.
7796         (translate_clast): Same.
7797         (gloog): Same.
7798         * graphite-clast-to-gimple.h (debug_clast_name_indexes): Removed.
7799         * graphite-sese-to-poly.c (scev_analyzable_p): Moved...
7800         * sese.c (set_rename): Now static.
7801         (rename_variables_in_stmt): Removed.
7802         (rename_uses): New.
7803         (is_parameter): Removed.
7804         (is_iv): Removed.
7805         (expand_scalar_variables_call): Removed.
7806         (expand_scalar_variables_ssa_name): Removed.
7807         (expand_scalar_variables_expr): Removed.
7808         (expand_scalar_variables_stmt): Removed.
7809         (expand_scalar_variables): Removed.
7810         (rename_variables): Removed.
7811         (remove_condition): Removed.
7812         (get_true_edge_from_guard_bb): Removed.
7813         (get_false_edge_from_guard_bb): Removed.
7814         (struct igp): Removed.
7815         (default_before_guard): Removed.
7816         (convert_for_phi_arg): Removed.
7817         (add_guard_exit_phis): Removed.
7818         (insert_guard_phis): Removed.
7819         (graphite_copy_stmts_from_block): Now also uses iv_map and a
7820         region.  Do not copy conditions.  Do not copy induction variables.
7821         Call rename_uses.
7822         (copy_bb_and_scalar_dependences): Allocate a local rename_map for
7823         the translated statement.  Use the iv_map for the induction
7824         variable renaming.
7825         * sese.h (copy_bb_and_scalar_dependences): Update declaration.
7826         (set_rename): Removed declaration.
7827         (scev_analyzable_p): ...here.
7828         * tree-chrec.c (chrec_apply_map): New.
7829         * tree-chrec.h (chrec_apply_map): Declared.
7830
7831 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7832
7833         * graphite-clast-to-gimple.c (translate_clast_for_loop): Do not call
7834         insert_loop_close_phis.
7835         * sese.c (name_defined_in_loop_p): Removed.
7836         (expr_defined_in_loop_p): Removed.
7837         (alive_after_loop): Removed.
7838         (close_phi_not_yet_inserted_p): Removed.
7839         (struct alep): Removed.
7840         (add_loop_exit_phis): Removed.
7841         (insert_loop_close_phis): Removed.
7842
7843 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7844
7845         * graphite-cloog-util.c
7846         (cloog_matrix_to_ppl_constraint): Fix flipped condition.
7847         * graphite-poly.c
7848         (psct_scattering_dim_for_loop_depth): Same.
7849
7850 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7851
7852         * graphite-cloog-util.h: Added cloog.h.
7853         * graphite-blocking.c: Removed cloog.h.
7854         * graphite-dependences.c: Same.
7855         * graphite-interchange.c: Same.
7856         * graphite-poly.c: Same.
7857         * graphite-ppl.c: Same.
7858         * graphite-scop-detection.c: Same.
7859         * graphite-sese-to-poly.c:
7860         Removed cloog.h.
7861         Removed graphite-clast-to-gimple.h.
7862         (check_poly_representation): Removed (unused).
7863         * graphite-sese-to-poly.h
7864         (check_poly_representation): Removed (unused).
7865
7866 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7867
7868         * Makefile.in (OBJS-common): Added graphite-cloog-util.o.
7869         (graphite-clast-to-gimple.o): Added graphite-cloog-util.h.
7870         (graphite-cloog-util.o): New.
7871         (graphite-ppl.o): Added graphite-cloog-util.h.
7872         * graphite-clast-to-gimple.c:
7873         Added graphite-cloog-util.h to include statements.
7874         * graphite-cloog-util.c: New.
7875         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.c.
7876         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
7877         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
7878         (new_C_Polyhedron_from_Cloog_Matrix): Same.
7879         (insert_constraint_into_matrix): Same.
7880         (ppl_Constrain_System_number_of_constraints): Same.
7881         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
7882         (oppose_constraint): Same.
7883         (cloog_matrix_to_ppl_constraint): Same.
7884         (new_Constraint_System_from_Cloog_Matrix): Same.
7885         * graphite-cloog-util.h: New.
7886         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved from graphite-ppl.h.
7887         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
7888         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
7889         (new_C_Polyhedron_from_Cloog_Matrix): Same.
7890         (insert_constraint_into_matrix): Same.
7891         * graphite-ppl.c:
7892         Added graphite-cloog-util.h to include statements.
7893         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to graphite-cloog-util.c.
7894         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
7895         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
7896         (new_C_Polyhedron_from_Cloog_Matrix): Same.
7897         (insert_constraint_into_matrix): Same.
7898         (ppl_Constrain_System_number_of_constraints): Same.
7899         (new_Cloog_Matrix_from_ppl_Constraint_System): Same.
7900         (oppose_constraint): Same.
7901         (cloog_matrix_to_ppl_constraint): Same.
7902         (new_Constraint_System_from_Cloog_Matrix): Same.
7903         * graphite-ppl.h:
7904         (new_Cloog_Matrix_from_ppl_Polyhedron): Moved to
7905         graphite-cloog-util.h.
7906         (new_Cloog_Domain_from_ppl_Polyhedron): Same.
7907         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
7908         (new_C_Polyhedron_from_Cloog_Matrix): Same.
7909         (insert_constraint_into_matrix): Same.
7910
7911 2010-08-11  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
7912
7913         * graphite-clast-to-gimple.c
7914         (precision_for_value): Resolve value_* calls to matching mpz_* calls.
7915         (precision_for_interval): Same.
7916         (gcc_type_for_interval): Same.
7917         (compute_type_for_level): Same.
7918         * graphite-interchange.c
7919         (lst_interchange_profitable_p): Same.
7920         * graphite-poly.c
7921         (psct_scattering_dim_for_loop_depth): Same.
7922         * graphite-ppl.c
7923         (ppl_max_for_le_pointset): Same.
7924         (ppl_min_for_le_pointset): Same.
7925
7926 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7927
7928         * graphite-sese-to-poly.c (rewrite_degenerate_phi): New.
7929         (rewrite_reductions_out_of_ssa): Call it for degenerate_phi_result.
7930
7931 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7932
7933         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Call
7934         rewrite_close_phi_out_of_ssa.
7935
7936 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7937
7938         * graphite-sese-to-poly.c (rewrite_cross_bb_phi_deps): Remove dead code.
7939
7940 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7941
7942         * graphite-clast-to-gimple.c (build_iv_mapping): Rename map with
7943         rename_map.
7944         * sese.c (debug_rename_map): Same.
7945         (get_rename): Same.
7946         (set_rename): Same.
7947         (rename_variables_in_stmt): Same.
7948         (expand_scalar_variables_call): Same.
7949         (expand_scalar_variables_ssa_name): Same.
7950         (expand_scalar_variables_expr): Same.
7951         (expand_scalar_variables_stmt): Same.
7952         (expand_scalar_variables): Same.
7953         (rename_variables): Same.
7954         (graphite_copy_stmts_from_block): Same.
7955         (copy_bb_and_scalar_dependences): Same.
7956
7957 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7958
7959         * graphite-clast-to-gimple.c (copy_renames): Removed.
7960         (translate_clast_for): Do not call copy_renames.
7961         (translate_clast_guard): Same.
7962
7963 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7964
7965         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Moved up.
7966         (rewrite_cross_bb_phi_deps): Split out of rewrite_cross_bb_scalar_deps.
7967         (rewrite_cross_bb_scalar_deps_out_of_ssa): Run rewrite_cross_bb_phi_deps
7968         before rewrite_cross_bb_scalar_deps.
7969
7970 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7971
7972         * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa):
7973         Early return in when flag_associative_math is not set.
7974
7975 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7976
7977         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Always insert out
7978         of SSA copies on edges except for loop->latch.
7979
7980 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7981
7982         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps_out_of_ssa):
7983         Split out of rewrite_reductions_out_of_ssa.
7984         * graphite-sese-to-poly.h (rewrite_cross_bb_scalar_deps_out_of_ssa):
7985         Declared.
7986         * graphite.c (graphite_transform_loops): Call it.
7987
7988 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
7989
7990         * graphite.c (graphite_transform_loops): Add two more dbg_cnt calls.
7991
7992 2010-08-11  Alexander Monakov  <amonakov@ispras.ru>
7993
7994         * dbgcnt.def (graphite_scop): New counter.
7995         * graphite.c: Include dbgcnt.h.
7996         (graphite_transform_loops): Use new counter to limit transformations.
7997         * Makefile.in (graphite.o): Depend on DBGCNT_H.
7998
7999 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
8000
8001         * passes.c (init_optimization_passes): Add pass_graphite.
8002         Schedule a pass_copy_prop before pass_graphite_transforms.
8003         * timevar.def (TV_GRAPHITE): Declared.
8004         * tree-pass.h (pass_graphite): Declared.
8005         * tree-ssa-loop.c (pass_graphite): New.
8006
8007 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
8008
8009         * graphite-clast-to-gimple.c (gloog): Do not pass scops in parameter.
8010         Remove calls to rename_nb_iterations and rename_sese_parameters.
8011         * graphite-clast-to-gimple.h (gloog): Update declaration.
8012         * graphite.c (graphite_transform_loops): Update call to gloog.
8013         * sese.c (rename_variables_in_expr): Removed.
8014         (rename_nb_iterations): Removed.
8015         (rename_sese_parameters): Removed.
8016         * sese.h (rename_nb_iterations): Removed.
8017         (rename_sese_parameters): Removed.
8018
8019 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
8020
8021         * graphite-clast-to-gimple.c (gloog): Remove call to
8022         sese_adjust_liveout_phis.
8023         * graphite-sese-to-poly.c (scev_analyzable_p): When scev returns an
8024         SSA_NAME, allow it to be handled by rewrite_cross_bb_scalar_deps.
8025         (rewrite_cross_bb_scalar_deps): Handle GIMPLE_PHI nodes: call
8026         rewrite_phi_out_of_ssa.
8027         * sese.c (get_vdef_before_sese): Removed.
8028         (sese_adjust_vphi): Removed.
8029         (sese_adjust_liveout_phis): Removed.
8030         * sese.h (sese_adjust_liveout_phis): Removed.
8031
8032 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
8033
8034         * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Pass an extra
8035         argument for the place after which to insert the out of SSA copy.
8036         (rewrite_close_phi_out_of_ssa): Update calls to insert_out_of_ssa_copy.
8037         (rewrite_phi_out_of_ssa): Same.
8038         (rewrite_cross_bb_scalar_deps): Same.
8039         (insert_copyout): Removed.
8040         (insert_copyin): Removed.
8041         (translate_scalar_reduction_to_array): Call insert_out_of_ssa_copy and
8042         insert_out_of_ssa_copy_on_edge instead of insert_copyout and
8043         insert_copyin.
8044
8045 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
8046
8047         * graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
8048         (rewrite_reductions_out_of_ssa): Same.
8049         (rewrite_commutative_reductions_out_of_ssa): Same.
8050         (build_poly_scop): Do not call these functions.
8051         * graphite-sese-to-poly.h (build_poly_scop): Declared.
8052         (rewrite_reductions_out_of_ssa): Declared.
8053         (rewrite_commutative_reductions_out_of_ssa): Declared.
8054         * graphite.c (graphite_transform_loops): Call on every scop
8055         rewrite_commutative_reductions_out_of_ssa before calling
8056         rewrite_reductions_out_of_ssa and build_scop_bbs.
8057
8058 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
8059
8060         * graphite-dependences.c (dot_deps): Make system call to dotty run
8061         in background.
8062         (dot_deps_stmt): Same.
8063         * graphite-poly.c (dot_lst): Same.
8064
8065 2010-08-11  Sebastian Pop  <sebastian.pop@amd.com>
8066
8067         * graphite-sese-to-poly.c (loop_entry_phi_arg): Renamed
8068         phi_arg_in_outermost_loop.
8069         (remove_simple_copy_phi): Call phi_arg_in_outermost_loop.
8070         (remove_invariant_phi): Same.
8071
8072 2010-08-11  Anatoly Sokolov  <aesok@post.ru>
8073
8074         * target.def (output_addr_const_extra): New hook.
8075         * doc/tm.texi.in (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Document.
8076         * doc/tm.texi: Regenerate.
8077         * targhooks.c (default_asm_output_addr_const_extra): New function.
8078         * targhooks.h (default_asm_output_addr_const_extra): Declare.
8079         * final.c (output_addr_const): Use TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
8080         target hook.
8081
8082         * config/i386/i386.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
8083         * config/i386/i386-protos.h (output_addr_const_extra): Remove.
8084         * config/i386/i386.h (output_addr_const_extra): Rename to...
8085         (i386_asm_output_addr_const_extra): ...this. Make static.
8086         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
8087
8088 2010-08-11  Richard Henderson  <rth@redhat.com>
8089
8090         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): New.
8091
8092 2010-08-11  Nick Clifton  <nickc@redhat.com>
8093
8094         * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
8095         * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
8096         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
8097         stormy16-lib2-cmpsi.c.
8098
8099         * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
8100         -O2.
8101
8102 2010-08-11  Joseph Myers  <joseph@codesourcery.com>
8103
8104         * opts.h (struct cl_option_handler_func): Make handler take
8105         cl_decoded_option structure as parameter, not individual elements.
8106         (struct cl_option_handlers): Make callbacks take cl_decoded_option
8107         structure as parameter, not individual elements.
8108         (handle_option): Take cl_decoded_option structure as parameter,
8109         not individual elements.
8110         (handle_generated_option): Declare.
8111         * opts-common.c (handle_option): Take cl_decoded_option structure
8112         as parameter, not individual elements.  Update calls to callback
8113         and handler functions.
8114         (handle_generated_option): New.
8115         (read_cmdline_option): Update calls to callback functions and
8116         handle_option.
8117         * opts.c (common_handle_option, complain_wrong_lang,
8118         unknown_option_callback, post_handling_callback,
8119         lang_handle_option, target_handle_option): Take cl_decoded_option
8120         structure as parameter, not individual elements.
8121         (lang_handle_option, target_handle_option, common_handle_option):
8122         Assert option has at most one argument.
8123         (enable_warning_as_error): Call handle_generated_option instead of
8124         handle_option.  Do not pass -Werror argument as argument of
8125         generated option.
8126
8127 2010-08-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8128
8129         * config/pa/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
8130         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
8131         (SUBWORD_BOOL_CAS): Likewise.
8132         (SUBWORD_SYNC_OP): Likewise.
8133         (SUBWORD_TEST_AND_SET): Likewise.
8134         (FETCH_AND_OP_WORD): Parenthesise INF_OP
8135         (SUBWORD_SYNC_OP): Likewise.
8136         (OP_AND_FETCH_WORD): Likewise.
8137
8138 2010-08-10  Xinliang David Li  <davidxl@google.com>
8139
8140         * tree-ssa-loop-ivopts.c (get_address_cost): Properly
8141         compute max/min offset in address.
8142
8143 2010-08-10  Vladimir Makarov  <vmakarov@redhat.com>
8144
8145         * ira-live.c: Include sbitmap.h.
8146         (remove_some_program_points_and_update_live_ranges): Use sbitmaps.
8147         Compress live ranges even more.
8148
8149 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
8150
8151         * coverage.c (ctr_labels): Delete.
8152
8153 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
8154
8155         PR bootstrap/45177
8156         * config/arm/arm.c (multiple_operation_profitable_p): Move xscale
8157         test here from arm_gen_load_multiple_1.
8158         (arm_gen_load_multiple_1, arm_gen_store_multiple_1): Use
8159         multiple_operation_profitable_p.
8160
8161 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
8162
8163         * tree-ssa-pre.c (init_pre): Call alloc_aux_for_blocks.
8164         (fini_pre): Call free_aux_for_blocks.  Delete unused bb variable.
8165
8166 2010-08-10  Richard Henderson  <rth@redhat.com>
8167
8168         * config/i386/i386.c (ix86_compute_frame_layout): Re-align stack
8169         after saving registers.  Assert that SSE registers are only saved
8170         with a sufficiently aligned frame.
8171         (ix86_emit_save_reg_using_mov): Assert realigned only with DRAP;
8172         remove stack_realign_fp handling.
8173         (ix86_expand_prologue): Save int registers before stack_realign_fp,
8174         and do not mark the stack alignment as frame related.
8175         (ix86_expand_epilogue): SP is now invalid with stack_realign_fp.
8176
8177         * dwarf2out.c (dwarf2out_frame_debug_expr): Flush queued register
8178         saves when re-aligning the stack.
8179
8180 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
8181
8182         * basic-block.h (alloc_aux_for_block, alloc_aux_for_edge): Delete.
8183         * cfg.c (alloc_aux_for_block, alloc_aux_for_edge): Make static.
8184         (alloc_aux_for_blocks, clear_aux_for_blocks): Use FOR_ALL_BB.
8185
8186 2010-08-10  Nathan Froyd  <froydnj@codesourcery.com>
8187
8188         * dwarf2out.c (struct die_struct): Move die_tag to the end.
8189
8190 2010-08-09  Sofiane Naci  <sofiane.naci@arm.com>
8191
8192         * config/arm/iterators.md: New file.
8193         * config/arm/arm.md: Include iterators.md.
8194         (QHSI): Move to new file.
8195         (LTUGEU, cnb, optab, ior_xor): Likewise.
8196         * config/arm/iwmmxt.md (VMMX): Move to new file.
8197         (VSHFT, MMX_char): Likewise.
8198         * config/arm/neon.md (VD): Move to new file.
8199         (VDX, VDI, VQ, VQX, VQI, VQXMOV, VSTRUCT, VTAB, V_TAB_n, VW): Likewise.
8200         (VN, VDQ, VDQW, VDQIW, VCVTF, VCVTI, VMD, VMQ, VMDQ, VMDI): Likewise.
8201         (VMDQI, VX, VE, V64, V32, V_CVTTO, V_elem, V_ext): Likewise.
8202         (V_two_elem, V_three_elem, V_four_elem, V_req, V_widen): Likewise.
8203         (V_narrow, V_HALF, V_half,V_DOUBLE, V_double): Likewise.
8204         (V_double_width, V_cmp_result, V_if_elem, V_s_elem): Likewise.
8205         (V_u_elem, V_uf_sclr, V_sz_elem, VD_dup): Likewise.
8206         (V_PAIR, vqh_ops, vqhs_ops, VQH_mnem, VQH_sign, V_suf64): Likewise.
8207         (scalar_mul_constraint,Is_float_mode, Scalar_mul_8_16): Likewise.
8208         (Is_d_reg, V_mode_nunits): Likewise.
8209         * config/arm/vec-common.md (VALL): Move to new file.
8210         (VALLW, VINT, VINTW): Likewise.
8211
8212 2010-08-10  Bernd Schmidt  <bernds@codesourcery.com>
8213
8214         PR middle-end/45182
8215         * combine.c (make_compound_operation): Don't try to convert
8216         shifts into multiplications for modes that aren't SCALAR_INT_MODE_P.
8217
8218 2010-08-10  Richard Guenther  <rguenther@suse.de>
8219
8220         * tree.h (get_object_alignment): Adjust prototype.
8221         * builtins.c (get_object_alignment): Return unsigned int,
8222         drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
8223         and TARGET_MEM_REF properly.
8224         (get_pointer_alignment): Adjust.
8225         * emit-rtl.c (get_mem_align_offset): Adjust comment.
8226         (set_mem_attributes_minus_bitpos): Adjust.
8227         * tree-ssa-ccp.c (get_value_from_alignment): Adjust.
8228
8229 2010-08-10  Richard Guenther  <rguenther@suse.de>
8230
8231         * tree-ssa-copy.c (set_copy_of_val): Use operand_equal_p.
8232         (copy_prop_visit_assignment): Simplify.
8233         (copy_prop_visit_stmt): Also visit assignments from
8234         constants.
8235         (copy_prop_visit_phi_node): Use operand_equal_p.
8236
8237 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
8238
8239         * ipa-split.c (find_split_points): Free stack.
8240
8241 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
8242
8243         * tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
8244         * tree.c (tree_node_kind): Delete corresponding entries.
8245
8246 2010-08-09  H.J. Lu  <hongjiu.lu@intel.com>
8247
8248         * alias.c (may_alias_p): Remove unused ret.
8249
8250 2010-08-09  Bingfeng Mei  <bmei@broadcom.com>
8251
8252         * ddg.c (walk_mems_2): Moved from alias.c, use may_alias_p instead of
8253         alias_sets_conflict_p.
8254         (walk_mems_1): Moved from alias.c.
8255         (insns_may_alias_p): New function, originally insn_alias_sets_conflict_p
8256         in alias.c.
8257         (add_inter_loop_mem_dep): Use insns_may_alias_p now.
8258         * cse.c (cse_insn): New argument in calling nonoverlapping_memrefs_p.
8259         * alias.c (walk_mems_2): Moved to ddg.c.
8260         (walk_mems_1): Ditto.
8261         (insn_alias_sets_conflict_p): Renamed to insns_may_alias_p and moved
8262         to ddg.c.
8263         (nonoverlapping_memrefs_p): Add flag to guard offset-based memory
8264         disambiguation.
8265         *(may_alias_p): New function to check whether two memory expression
8266         may alias or not. Currently used in buidling inter-iteration memory
8267         dependence.
8268         *alias.h (nonoverlapping_memrefs_p): New flag as third argument.
8269         (insn_alias_sets_conflict_p): Removed
8270         *rtl.h (may_alias_p): New function prototype.
8271
8272 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
8273
8274         * tree.c (nreverse): Assert that we don't have a BLOCK.
8275
8276 2010-08-09  Nathan Froyd  <froydnj@codesourcery.com>
8277
8278         * builtins.c (fold_builtin_next_arg): Use stdarg_p.
8279         * config/arm/arm.c (arm_get_pcs_model): Likewise.
8280         * config/avr/avr.c (init_cumulative_args): Likewise.
8281         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
8282         * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
8283         * config/m68k/m68k.c (m68k_return_pops_args): Likewise.
8284         * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise.
8285         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
8286         * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
8287         * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
8288         * dwarf2out.c (gen_subprogram_die): Likewise.
8289         * function.c (allocate_struct_function): Likewise.
8290         * c-aux-info.c (gen_formal_list_for_func_dec): Likewise.
8291         (deserves_ellipsis): Delete.
8292
8293 2010-08-09  Richard Guenther  <rguenther@suse.de>
8294
8295         * tree-ssa-copy.c (cached_last_copy_of): Remove.
8296         (valueize_val): New function.
8297         (get_last_copy_of): Remove.
8298         (set_copy_of_val): Simplify.
8299         (dump_copy_of): Likewise.
8300         (copy_prop_visit_cond_stmt): Use valueize_val.
8301         (copy_prop_visit_phi_node): Properly handle unvisited names.
8302         Drop code managing copy-of chains.
8303         (init_copy_prop): Adjust.
8304         (fini_copy_prop): Likewise.
8305         (execute_copy_prop): Remove obsolete comment.
8306
8307 2010-08-09  Richard Guenther  <rguenther@suse.de>
8308
8309         PR middle-end/44632
8310         * function.c (gimplify_parameters): Do not clear addressable
8311         bit of the original parameter.
8312
8313 2010-08-09  Richard Guenther  <rguenther@suse.de>
8314
8315         PR middle-end/45212
8316         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust
8317         alignment from MEM_REF offset only if we took it from the
8318         base object.
8319
8320 2010-08-09  Eric Fisher  <joefoxreal@gmail.com>
8321
8322         * doc/sourcebuild.texi (vect_int_mult): Remove duplicate entry.
8323
8324 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
8325
8326         * c-tree.h (build_arg_info): Declare.
8327         * c-decl.c (build_arg_info): Define.
8328         (get_parm_info): Call it.  Delete initialization code.
8329         * c-parser.c (c_parser_parms_declarator): Likewise.
8330         (c_parser_parms_list_declaractor): Likewise.
8331
8332 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
8333
8334         * c-tree.h (c_arg_tag): Define.  Define a VEC containing it.
8335         (struct c_arg_info): Change type of tags field.
8336         * c-decl.c (grokdeclarator): Update for changed type of tags field.
8337         (get_parm_info): Likewise.
8338         (store_parm_decls_newstyle): Likewise.
8339
8340 2010-08-08  Nathan Froyd  <froydnj@codesourcery.com>
8341
8342         * config/rs6000/rs6000.c (branch_island): Define.  Define a VEC of it.
8343         (branch_island_list): Delete.
8344         (branch_islands): Declare.
8345         (add_compiler_branch_island): Adjust for branch_islands instead of
8346         branch_island_list.
8347         (macho_branch_islands): Likewise.
8348         (no_previous_def): Likewise.
8349         (get_prev_label): Likewise.
8350
8351 2010-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8352
8353         PR boehm-gc/34544
8354         * gthr-posix.h (__gthread_start): Delete.
8355         (__gthread_active_init): Use pthread_default_stacksize_np instead of
8356         pthread_create to determine if hpux pthreads are active.
8357         * gthr-posix95.h (__gthread_start): Delete.
8358         (__gthread_active_init): Likewise use pthread_default_stacksize_np.
8359
8360 2010-08-08  Kai Tietz  <kai.tietz@onevision.com>
8361
8362         * config/i386/mingw32.h ((EXTRA_OS_CPP_BUILTINS): Define
8363         _WIN64 not expanded.
8364
8365 2010-08-07  Uros Bizjak  <ubizjak@gmail.com>
8366             H.J. Lu  <hongjiu.lu@intel.com>
8367
8368         PR target/45213
8369         * config/i386/i386.c (ix86_print_operand): Handle 'q' operand modifier
8370         to output 32bit SFmode immediate as 8 byte sign extended value.
8371
8372 2010-08-07  Marcus Shawcroft  <marcus.shawcroft@arm.com>
8373
8374         * config/arm/linux-atomic.c (SUBWORD_VAL_CAS): Instantiate with
8375         'unsigned short' and 'unsigned char' instead of 'short' and 'char'.
8376         (SUBWORD_BOOL_CAS): Likewise.
8377         (SUBWORD_SYNC_OP): Likewise.
8378         (SUBWORD_TEST_AND_SET): Likewise.
8379         (FETCH_AND_OP_WORD): Parenthesise INF_OP
8380         (SUBWORD_SYNC_OP): Likewise.
8381         (OP_AND_FETCH_WORD): Likewise.
8382
8383 2010-08-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8384
8385         * config/arm/cortex-a9.md: Rewrite VFP Pipeline description.
8386         * config/arm/arm.c (arm_xscale_tune): Initialize sched_adjust_cost.
8387         (arm_fastmul_tune,arm_slowmul_tune, arm_9e_tune): Likewise.
8388         (arm_adjust_cost): Split into xscale_sched_adjust_cost and a
8389         generic part.
8390         (cortex_a9_sched_adjust_cost): New function.
8391         (xscale_sched_adjust_cost): New function.
8392         * config/arm/arm-protos.h (struct tune_params): New field
8393         sched_adjust_cost.
8394         * config/arm/arm-cores.def: Adjust costs for cortex-a9.
8395
8396 2010-08-06  Eric Botcazou  <ebotcazou@adacore.com>
8397
8398         PR target/44942
8399         * config/sparc/sparc.c (function_arg_advance): Always take into account
8400         the padding, if any.
8401
8402 2010-08-06  Richard Guenther  <rguenther@suse.de>
8403
8404         * tree-ssa-ccp.c (struct prop_value_d): Add mask member.
8405         (dump_lattice_value): Dump it.
8406         (get_default_value): Adjust.
8407         (get_constant_value): Likewise.
8408         (set_value_varying): Likewise.
8409         (set_lattice_value): Make sure to not go up the lattice
8410         with bitwise constant values.
8411         (get_value_for_expr): Handle ADDR_EXPRs.
8412         (value_to_double_int): New function.
8413         (get_value_from_alignment): Likewise.
8414         (do_dbg_cnt): Adjust.
8415         (ccp_lattice_meet): Handle partially constant values.
8416         (bit_value_unop_1): New function.
8417         (bit_value_binop_1): Likewise.
8418         (bit_value_unop): Likewise.
8419         (bit_value_binop): Likewise.
8420         (evaluate_stmt): Track partially constant values if
8421         flag_tree_bit_ccp is set.
8422         (ccp_fold_stmt): Dump if we folded a predicate.
8423         (ccp_visit_stmt): Adjust.
8424         * common.opt (ftree-bit-ccp): New flag.
8425         * doc/invoke.texi (ftree-bit-ccp): Document.
8426         * opts.c (decode_options): Enable bit-CCP at -O1.
8427
8428 2010-08-06  Alan Modra  <amodra@gmail.com>
8429
8430         * doc/invoke.texi (RS/6000 and PowerPC Options): Rewrite -mrelocatable
8431         and -mrelocatable-lib description.
8432
8433 2010-08-05  Bernd Schmidt  <bernds@codesourcery.com>
8434
8435         From Martin Thuresson  <martint@google.com>
8436         * postreload.c (reload_cse_simplify_operands): Use
8437         SET_REGNO_RAW instead of SET_REGNO.
8438         * caller-save.c (reg_save_code): Use SET_REGNO_RAW instead of
8439         SET_REGNO.
8440         * ira.c (setup_prohibited_mode_move_regs): Use SET_REGNO_RAW
8441         instead of SET_REGNO.
8442         * rtl.h (SET_REGNO_RAW): New macro.
8443
8444 2010-08-05  Eric Botcazou  <ebotcazou@adacore.com>
8445
8446         * rtlanal.c (nonzero_bits1): Use unsigned HOST_WIDE_INT in all mask
8447         computations.  Fix formatting issues.
8448         (num_sign_bit_copies1): Likewise.
8449         (canonicalize_condition): Likewise.
8450
8451 2010-08-05  Richard Henderson  <rth@redhat.com>
8452
8453         * toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
8454         (floor_log2): Use clz_hwi.
8455         (exact_log2): Use ctz_hwi.
8456         * toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
8457         * builtins.c (fold_builtin_bitop): Use them.
8458         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
8459         * combine.c (get_pos_from_mask): Use ctz_hwi.
8460         * double-int.c (double_int_ctz): Likewise.
8461         * explow.c (force_reg): Likewise.
8462         * tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
8463
8464 2010-08-05  Richard Henderson  <rth@redhat.com>
8465
8466         PR target/45189
8467         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Make sure
8468         the alignment constant is properly sign-extended.
8469
8470 2010-08-05  Richard Guenther  <rguenther@suse.de>
8471
8472         * expr.c (store_expr): Use emit_block_move only if both
8473         source and target are MEMs.  Use store_bit_field if only
8474         the target is a MEM.
8475
8476 2010-08-05  Richard Henderson  <rth@redhat.com>
8477
8478         PR debug/45188
8479         * dwarf2out.c (DWARF2_UNWIND_INFO): Provide default definition.
8480         (INCOMING_RETURN_ADDR_RTX): Likewise.
8481         (dwarf2out_do_frame): Remove conditional compilation.
8482         (dwarf2out_frame_init): Likewise.
8483
8484 2010-08-05  Nicolas Setton  <setton@adacore.com>
8485
8486         * gcov.c (flag_display_progress): New static variable.
8487         (main): Display progress info on standard output if requested.
8488         (options): Add -d/--display-progress.
8489         (print_usage): Print them.
8490         (process_args): Handle them.
8491         * doc/gcov.texi: Document them.
8492
8493 2010-08-05  Martin Jambor  <mjambor@suse.cz>
8494
8495         * ipa-cp.c (ipcp_discover_new_direct_edges): New function.
8496         (ipcp_insert_stage): Redirect only edges not flagged with
8497         indirect_inlining_edge.  Call ipcp_discover_new_direct_edges for all
8498         discovered constants.
8499
8500 2010-08-05  Martin Jambor  <mjambor@suse.cz>
8501
8502         * ipa-prop.h (enum ipa_lattice_type): Changed comments.
8503         (struct ipa_param_descriptor): New fields types and
8504         cannot_devirtualize.
8505         (ipa_param_cannot_devirtualize_p): New function.
8506         (ipa_param_types_vec_empty): Likewise.
8507         (ipa_make_edge_direct_to_target): Declare.
8508         * ipa-cp.c: Fixed first stage driver name in initial comment,
8509         described devirtualization there too.
8510         (ipcp_analyze_node): Call ipa_analyze_params_uses.
8511         (ipcp_print_all_lattices): Print devirtualization info.
8512         (ipa_set_param_cannot_devirtualize): New function.
8513         (ipcp_initialize_node_lattices): Set cannot_devirtualize when setting
8514         lattice to BOTTOM.
8515         (ipcp_init_stage): Merged into...
8516         (ipcp_generate_summary): ...its caller.
8517         (ipcp_change_tops_to_bottom): Also process type lists.
8518         (ipcp_add_param_type): New function.
8519         (ipcp_copy_types): Likewise.
8520         (ipcp_propagate_types): Likewise.
8521         (ipcp_propagate_stage): Also propagate types.
8522         (ipcp_need_redirect_p): Variable jump_func moved to its scope block.
8523         Also return true if propagated types require it.
8524         (ipcp_update_callgraph): Dump redirection info.
8525         (ipcp_process_devirtualization_opportunities): New function.
8526         (ipcp_const_param_count): Include known type information.
8527         (ipcp_insert_stage): Call ipcp_process_devirtualization_opportunities
8528         on new node.  Fixed formatting.
8529         * ipa-prop.c (make_edge_direct_to_target): Renamed to
8530         ipa_make_edge_direct_to_target and changed all callers.  Made
8531         externally visible.
8532         (ipa_node_duplication_hook): Duplicate types vector.
8533         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Also try to
8534         redirect outgoing calls for which we can't get a decl from the
8535         statement.  Check that we can get a decl from the call statement.
8536         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
8537         ipa_analyze_params_uses only when ipa-cp is disabled.
8538         * tree-inline.c (get_indirect_callee_fndecl): Removed.
8539         (expand_call_inline): Do not call get_indirect_callee_fndecl.
8540         * params.def (PARAM_DEVIRT_TYPE_LIST_SIZE): New parameter.
8541         * Makefile.in (ipa-cp.o): Add gimple.h to dependencies.
8542
8543 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
8544
8545         * expmed.c (expand_mult_const) <case alg_shift>: Expand shift into
8546         temporary. Emit move from temporary to accum, so REG_EQUAL note will
8547         be attached to this insn in correct mode.
8548
8549 2010-08-05  Uros Bizjak  <ubizjak@gmail.com>
8550
8551         * config/i386/i386.c (ix86_decompose_address): Check for SI_REG
8552         using REGNO of base_reg directly.
8553
8554 2010-08-05  Jie Zhang  <jie@codesourcery.com>
8555
8556         PR tree-optimization/45144
8557         * tree-sra.c (type_consists_of_records_p): Return false
8558         if the record contains bit-field.
8559
8560 2010-08-04  Richard Henderson  <rth@redhat.com>
8561
8562         * config/i386/i386.c (struct ix86_frame): Remove padding and
8563         to_allocate members.
8564         (ix86_compute_frame_layout): Don't store them.
8565         (ix86_can_use_return_insn_p): Use a more direct and more obviously
8566         correct condition for the position of the stack pointer.
8567         (ix86_expand_prologue): Compute remaining stack allocation based
8568         on the ultimate stack pointer offset.
8569         (ix86_expand_epilogue): Use more obvious expressions testing for
8570         the stack pointer already pointing to the saved registers.
8571
8572         * config/i386/i386.c (ix86_expand_epilogue): Eliminate code
8573         duplication deconstructing the frame pointer.  Simplify
8574         deallocation of the local stack frame.
8575
8576         * reg-notes.def (CFA_EXPRESSION): New.
8577         * dwarf2out.c (dwarf2out_frame_debug): Handle it.
8578         (dwarf2out_frame_debug_cfa_expression): New.
8579         (dwarf2out_frame_debug_def_cfa): Handle simple MEMs.
8580
8581         * config/i386/i386.h (struct machine_frame_state): Add realigned flag.
8582         * config/i386/i386.c (ix86_expand_prologue): Set it.
8583         (ix86_expand_epilogue): Clear it.
8584         (ix86_emit_save_reg_using_mov): For registers saved in a realigned
8585         context, add REG_CFA_EXPRESSION notes.
8586
8587         * config/i386/i386.h (struct machine_frame_state): Rename from
8588         machine_cfa_state.  Add members tracking SP and FP regardless
8589         of the current CFA register.
8590         (ix86_cfa_state): Remove.
8591         * config/i386/i386.c (struct ix86_frame): Add reg_save_offset
8592         and sse_reg_save_offset members.
8593         (ix86_compute_frame_layout): Set them.
8594         (gen_push): Increment sp_offset too.
8595         (choose_baseaddr_len, choose_baseaddr): New.
8596         (ix86_emit_save_reg_using_mov): New.
8597         (ix86_emit_save_regs_using_mov): Use it.
8598         (ix86_emit_save_sse_regs_using_mov): Likewise.
8599         (ix86_add_cfa_restore_note): Take cfa_offset not red_offset argument;
8600         compare vs the saved red_zone_offset.
8601         (pro_epilogue_adjust_stack): Adjust sp_offset.
8602         (ix86_adjust_stack_and_probe): Likewise.
8603         (ix86_expand_prologue): Set up, use, and validate the new
8604         frame_state_info members.  Use gen_frame_mem.
8605         (ix86_emit_restore_regs_using_pop): Remove red_offset parameter.
8606         (ix86_emit_restore_reg_using_pop): Likewise.  Use and update the
8607         new frame_state_info members.
8608         (ix86_emit_leave): Likewise.
8609         (ix86_emit_restore_regs_using_mov): Likewise.  Don't check for
8610         out-of-range stack pointer offsets here.
8611         (ix86_emit_restore_sse_regs_using_mov): Likewise.
8612         (ix86_expand_epilogue): Use and validate the new frame_state_info
8613         members.  Break up and simplify the logic selecting the
8614         restore_regs_via_mov code path.  Ensure that there will be no
8615         out-of-range stack pointer offsets.
8616
8617         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Remove.
8618
8619         * config/i386/i386.c (ix86_function_ms_hook_prologue): Fix
8620         argument name to reflect the expected tree; fix indentation.
8621         (ix86_asm_output_function_label): Output the entire 32-bit
8622         ms_hook here as bytes ...
8623         (ix86_expand_prologue): ... not here as insns.  Attach the
8624         unwind info for the ms_hook to a blockage insn.
8625         (ix86_handle_fndecl_attribute): Don't check HAVE_AS_IX86_SWAP.
8626         (ix86_ms_bitfield_layout_p): Fix indentation.
8627         * config/i386/i386.md (UNSPECV_VSWAPMOV, vswapmov): Remove.
8628
8629         * config/i386/i386.c (ix86_using_red_zone): New.
8630         (ix86_compute_frame_layout, ix86_add_cfa_restore_note,
8631         ix86_expand_prologue, ix86_force_to_memory): Use it.
8632
8633         * config/i386/i386.c (ix86_expand_prologue): Simplify logic
8634         saving the int registers.
8635
8636         * dwarf2out.c: Remove most of the DWARF2_DEBUGGING_INFO
8637         and DWARF2_UNWIND_INFO conditional compilation.
8638
8639 2010-08-04  Richard Henderson  <rth@redhat.com>
8640
8641         PR debug/45171
8642         * dwarf2out.c (gen_typedef_die): Don't re-generate the die of
8643         an is_naming_typedef_decl.
8644
8645 2010-08-04  Bernd Schmidt  <bernds@codesourcery.com>
8646
8647         PR rtl-optimization/45162
8648         * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
8649         * dce.c (word_dce_process_block): Likewise.
8650
8651 2010-08-04  Steve Ellcey  <sje@cup.hp.com>
8652
8653         PR target/44583
8654         * config/ia64/constraints.md (Z): New.
8655         * config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
8656         (xfreg_or_signed_fp01_operand): New.
8657         * config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
8658         with fr_reg_or_signed_fp01_operand and constraint G with Z.
8659         (subsf3): Ditto.
8660         (*maddsf4): Ditto.
8661         (*msubsf4): Ditto.
8662         (adddf3): Ditto.
8663         (adddf3_trunc): Ditto.
8664         (subdf3): Ditto.
8665         (*subdf3_trunc): Ditto.
8666         (*madddf4): Ditto.
8667         (*madddf4_trunc): Ditto.
8668         (*msubdf4): Ditto.
8669         (*msubdf4_trunc): Ditto.
8670         (addxf3): Replace xfreg_or_fp01_operand with
8671         xfreg_or_signed_fp01_operand and constraint G with Z.
8672         (*addxf3_truncsf): Ditto.
8673         (*addxf3_truncdf): Ditto.
8674         (subxf3): Ditto.
8675         (*subxf3_truncsf): Ditto.
8676         (*subxf3_truncdf): Ditto.
8677         (*maddxf4): Ditto.
8678         (*maddxf4_truncsf): Ditto.
8679         (*maddxf4_truncdf): Ditto.
8680         (*msubxf4): Ditto.
8681         (*msubxf4_truncsf): Ditto.
8682         (*msubxf4_truncdf): Ditto.
8683
8684 2010-08-04  Richard Guenther  <rguenther@suse.de>
8685
8686         * alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
8687         if either alias-set is zero.
8688
8689 2010-08-04  Richard Guenther  <rguenther@suse.de>
8690
8691         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
8692         * tree-ssa-ccp.c: ... here.
8693         * tree-ssa-copy.c: ... and here.
8694         * tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
8695         value_range_t): Move ...
8696         * tree-vrp.c: ... here.
8697         * tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
8698         (substitute_and_fold): Adjust prototype.
8699         * tree-ssa-propagate.c (replace_uses_in): Adjust.
8700         (replace_phi_args_in): Likewise.
8701         (substitute_and_fold): Take callback to query lattice instead
8702         of pointer to lattice.  Replace SSA name defs with lattice
8703         values first.
8704         * tree-ssa-ccp.c (ccp_finalize): Adjust.
8705         * tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
8706         (get_value): New function.
8707         (fini_copy_prop): Adjust.
8708         * tree-vrp.c (vrp_finalize): Adjust.
8709
8710 2010-08-04  Richard Guenther  <rguenther@suse.de>
8711
8712         PR middle-end/45176
8713         * expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
8714         points-to set for original MEM_REF.
8715
8716 2010-08-04  Richard Guenther  <rguenther@suse.de>
8717
8718         * tree-ssa-ccp.c (get_constant_value): New function.
8719         (get_rhs_assign_op_for_ccp): Remove.
8720         (valueize_op): New function.
8721         (ccp_fold): Use get_constant_value and valueize_op.
8722         (fold_const_aggregate_ref): Likewise.
8723         (ccp_fold_stmt): Likewise.
8724         (visit_assignment): Simplify.
8725
8726 2010-08-04  Richard Guenther  <rguenther@suse.de>
8727
8728         * Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
8729         * double-int.h (double_int_ctz): Declare.
8730         * double-int.c (double_int_ctz): New function.
8731
8732 2010-08-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
8733
8734         * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
8735         Define.
8736         picochip_expand_movmemhi : Expand movmem pattern.
8737         * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
8738         Declare.
8739         * config/picochip/picochip.md (movmemhi) : New pattern.
8740
8741 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
8742
8743         * config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
8744
8745 2010-08-03  Bernd Schmidt  <bernds@codesourcery.com>
8746
8747         * simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
8748         NEG as operand of a MULT by merging it with the other operand.
8749         * combine.c (make_compound_operation): Use trunc_int_for_mode when
8750         generating a MULT with constant.  Canonicalize PLUS and MINUS involving
8751         MULT.
8752         * config/arm/constraints.md (M): Examine only 32 bits of a
8753         HOST_WIDE_INT.
8754         * config/arm/predicates.md (power_of_two_operand): Likewise.
8755
8756 2010-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
8757
8758         * config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
8759         non-NOTE insns.
8760
8761 2010-08-03  Jan Hubicka  <jh@suse.cz>
8762
8763         * ipa-split.c (struct split_point): Add split_part_set_retval.
8764         (find_retval): Forward declare.
8765         (test_nonssa_use, mark_nonssa_use): Special case return by reference.
8766         (consider_split): Compute current->split_part_set_retval.
8767         (visit_bb): Do not look into return value.
8768         (split_function): Handle !split_part_set_retval
8769
8770 2010-08-03  Martin Jambor  <mjambor@suse.cz>
8771
8772         * tree-sra.c (completely_scalarize_record): New parameter REF, create
8773         its own access->expr intead of using build_ref_for_offset.
8774
8775 2010-08-03  Joseph Myers  <joseph@codesourcery.com>
8776
8777         * config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
8778         * config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
8779         * config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G* options.
8780         * config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
8781         * config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
8782         * config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
8783         * config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
8784         DEFAULT_SWITCH_TAKES_ARG.
8785         * config/rx/rx.opt (-patch=): Remove option.
8786         * config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
8787         * defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
8788         * doc/invoke.texi (RX Options): Remove -patch=.
8789         * gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
8790         (option_map): Remove --profile-blocks, --quiet and --silent.
8791
8792 2010-08-03  Uros Bizjak  <ubizjak@gmail.com>
8793
8794         * config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
8795         * config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
8796         (ix86_expand_branch): Add op0 and op1 arguments.  Do not access
8797         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
8798         Update calls to ix86_expand_compare and ix86_expand_branch.
8799         (ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
8800         ix86_expand_compare.
8801         (ix86_expand_compare): Add op0 and op1 arguments.  Do not access
8802         ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
8803         Make static.
8804         (ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
8805         and ix86_compare_op1.  Update calls to ix86_expand_compare.
8806         (ix86_expand_int_movcc): Ditto.
8807         (ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
8808         * config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
8809         (ix86_expand_setcc): Ditto.
8810         (ix86_expand_compare): Remove prototype.
8811         * config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
8812         ix86_compare_op0 and ix86_compare_op1.  Update calls
8813         to ix86_expand_branch to directly pass operands[1] and operands[2].
8814         (cbranchxf4): Ditto.
8815         (cbranch<MODEF:mode>4): Ditto.
8816         (cbranchcc4): Ditto.
8817         (cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
8818         Update calls to ix86_expand_setcc to directly pass operands[2] and
8819         operands[3].
8820         (cstorexf4): Ditto.
8821         (cstore<MODEF:mode>4): Ditto.
8822         (cstorecc4): Ditto.
8823
8824 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
8825
8826         PR target/45063
8827         * caller-save.c (save_call_clobbered_regs): Remove regs from
8828         hard_regs_saved when they are set.
8829
8830 2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
8831
8832         PR target/41089
8833         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
8834         as volatile.
8835
8836 2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>
8837
8838         * common.opt (ftree-loop-distribute-patterns): New.
8839         * invoke.texi (-ftree-loop-distribute-patterns): Documented.
8840         * opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
8841         at -O3.
8842         * tree-data-ref.c (stores_zero_from_loop): New.
8843         * tree-data-ref.h (stores_zero_from_loop): Declared.
8844         * tree-loop-distribution.c (tree_loop_distribution): Call
8845         stores_zero_from_loop.
8846         (tree_loop_distribution): Check flag_tree_loop_distribute_patterns.
8847
8848 2010-08-02  Bernd Schmidt  <bernds@codesourcery.com>
8849
8850         * postreload.c (reload_cse_simplify_operands): Take attribute enabled
8851         into account.
8852
8853         * final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
8854         * config/arm/arm.c (thumb1_code): New variable.
8855         (arm_override_options): Set it.
8856         (thumb1_final_prescan_insn): Keep track of condition code status.
8857         (arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
8858         jumps that depend on them.
8859         * config/arm/arm.h (thumb1_code): Declare variable.
8860         (struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
8861         members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
8862         thumb1_cc_mode.
8863         (CC_STATUS_INIT): New macro.
8864         * config/arm/constraints.md (Pd): New constraint.
8865         * config/arm/predicates.md (noov_comparison_operator): New predicate.
8866         * config/arm/arm.md (is_thumb1): New define_attr.
8867         (conds): Set default to "clob" when generating Thumb1 code.
8868         (thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
8869         code are set.  Use two-operand assembly syntax.
8870         (thumb1_subsi3_insn): Condition codes are set.  Now a properly named
8871         pattern.
8872         (thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
8873         codes are set.  Use two-operand assembly syntax.
8874         (zero_extendhisi splitter): Remove constraints.
8875         (thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
8876         thumb1_movsf_insn): Set conds attribute as appropriate.
8877         (cbranchsi4_insn): Use condition code status from struct
8878         machine_function to determine whether the comparison can be eliminated.
8879         Discourage the alternative using high registers.
8880         (movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
8881         orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
8882         bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
8883         subsi3_cbranch): Delete.
8884         (movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
8885         one subtract and one cbranch insn.
8886
8887         * config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
8888         thumb2_movdf_soft_insn): Delete patterns.
8889         * config/arm/arm.md (arm_pool_range, thumb2_pool_range,
8890         arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
8891         (pool_range, neg_pool_range): Use them to define defaults.
8892         (movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
8893         and allow for TARGET_32BIT.
8894
8895         PR target/40457
8896         * config/arm/arm.h (arm_regs_in_sequence): Declare.
8897         * config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
8898         load_multiple_sequence, store_multiple_sequence): Delete
8899         declarations.
8900         (arm_gen_load_multiple, arm_gen_store_multiple): Adjust
8901         declarations.
8902         * config/arm/ldmstm.md: New file.
8903         * config/arm/arm.c (arm_regs_in_sequence): New array.
8904         (load_multiple_sequence): Now static.  New args SAVED_ORDER,
8905         CHECK_REGS.  All callers changed.
8906         If SAVED_ORDER is nonnull, copy the computed order into it.
8907         If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
8908         (store_multiple_sequence): Now static.  New args NOPS_TOTAL,
8909         SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
8910         If SAVED_ORDER is nonnull, copy the computed order into it.
8911         If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
8912         like REGS.  Handle Thumb mode.
8913         (arm_gen_load_multiple_1): New function, broken out of
8914         arm_gen_load_multiple.
8915         (arm_gen_store_multiple_1): New function, broken out of
8916         arm_gen_store_multiple.
8917         (arm_gen_multiple_op): New function, with code from
8918         arm_gen_load_multiple and arm_gen_store_multiple moved here.
8919         (arm_gen_load_multiple, arm_gen_store_multiple): Now just
8920         wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
8921         changed.
8922         (gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
8923         * config/arm/predicates.md (commutative_binary_operator): New.
8924         (load_multiple_operation, store_multiple_operation): Handle more
8925         variants of these patterns with different starting offsets.  Handle
8926         Thumb-1.
8927         * config/arm/arm.md: Include "ldmstm.md".
8928         (ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
8929         ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
8930         stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
8931         peepholes): Delete.
8932         * config/arm/ldmstm.md: New file.
8933         * config/arm/arm-ldmstm.ml: New file.
8934
8935         * config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
8936         if statement which adds extra costs to frame-related expressions.
8937
8938 2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8939
8940         * config/arm/arm.c (COSTS_N_INSNS): Remove definition.
8941
8942 2010-08-01  Uros Bizjak  <ubizjak@gmail.com>
8943
8944         PR target/45142
8945         * config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
8946         alternative 2.
8947         (vec_set<mode>_0 splitter): Use SSEMODE4S mode iterator to also
8948         split V4SI operands.
8949
8950 2010-08-01  Anatoly Sokolov  <aesok@post.ru>
8951
8952         * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
8953         * config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
8954         * config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
8955         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
8956
8957 2010-07-31  Kai Tietz  <kai.tietz@onevision.com>
8958
8959         * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
8960         LOCAL_INCLUDE_DIR.
8961
8962 2010-07-31  Richard Sandiford  <rdsandiford@googlemail.com>
8963
8964         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
8965         used in the call to optab_for_tree_code.  Fix the second
8966         is_widening_mult_p call.  Check that both unwidened operands
8967         have the same sign.
8968
8969 2010-07-31  John Tytgat  <John.Tytgat@aaug.net>
8970
8971         * config/arm/arm.c (arm_function_arg): Remove superfluous test.
8972
8973 2010-07-31  Anatoly Sokolov  <aesok@post.ru>
8974
8975         * config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
8976
8977 2010-07-30  DJ Delorie  <dj@redhat.com>
8978
8979         * config/rx/predicates.md (rx_constshift_operand): New.
8980         * config/rx/rx.md (zs_cond): New.
8981         (cbranchsi4): Remove mode.
8982         (*cbranchsi4_<code>): Likewise.
8983         (*tstbranchsi4_<code>): New.
8984         (*tstbranchsi4r_<code>): New.
8985         (*tstbranchsi4m_eq): New.
8986         (*tstbranchsi4m_ne): New.
8987         (cbranchsf4): Remove mode.
8988         (*cbranchsf4_<code>): Likewise.
8989
8990 2010-07-30  Bernd Schmidt  <bernds@codesourcery.com>
8991
8992         * rtlanal.c (simplify_subreg_regno): Don't treat
8993         HARD_FRAME_POINTER_REGNUM specially.
8994
8995 2010-07-30  Joseph Myers  <joseph@codesourcery.com>
8996
8997         * common.opt (-G): Don't define option here.
8998         * config/g.opt: New.
8999         * config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
9000         rs6000/powerpc and score targets.
9001         * opts.c (common_handle_option): Don't handle -G here.
9002         * config/alpha/alpha.c (alpha_handle_option): Handle -G.
9003         * config/frv/frv.c (frv_handle_option): Handle -G.
9004         * config/ia64/ia64.c (ia64_handle_option): Handle -G.
9005         * config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION): New.
9006         * config/m32r/m32r.c (m32r_handle_option): Handle -G.
9007         * config/mips/mips.c (mips_handle_option): Handle -G.
9008         * config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
9009         * config/score/score.c (score_handle_option): Handle -G.
9010
9011 2010-07-30  Anatoly Sokolov  <aesok@post.ru>
9012
9013         * config/mmix/mmix.c: Include basic-block.h.
9014
9015 2010-07-30  Jakub Jelinek  <jakub@redhat.com>
9016
9017         PR debug/45055
9018         PR rtl-optimization/45137
9019         * rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
9020         prototypes.
9021         * emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
9022         New functions.
9023         * combine.c (next_nonnote_nondebug_insn): Removed.
9024         * ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
9025         * haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
9026         * sched-deps.c (sched_analyze_insn): Likewise.
9027         (fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
9028         * rtlanal.c (canonicalize_condition): Likewise.
9029         * postreload.c (reload_combine_recognize_pattern): Likewise.
9030         (reload_cse_move2add): Use next_nonnote_nondebug_insn.
9031
9032 2010-07-29  Uros Bizjak  <ubizjak@gmail.com>
9033
9034         * config/i386/i386.md (int_cond): Remove code iterator.
9035         (fp_cond): Ditto.
9036         (cbranch<mode>4): Use ordered_comparison_operator predicate
9037         for operator0.
9038         (cstore<mode>4): Ditto for operator1.
9039         (mov<SWIM:mode>cc and corresponding splitter): Ditto.
9040         (add<mode>cc): ditto.
9041
9042 2010-07-30  Richard Guenther  <rguenther@suse.de>
9043
9044         PR middle-end/45141
9045         * expr.c (expand_expr_real_1): Check for not handled base address.
9046
9047 2010-07-30  Richard Guenther  <rguenther@suse.de>
9048
9049         * ipa-prop.c (ipa_modify_formal_parameters): Use
9050         build_distinct_type_copy.
9051
9052 2010-07-30  Anthony Green  <green@moxielogic.com>
9053
9054         * config/moxie/rtems.h: New file.
9055         * config.gcc: Add moxie-rtems support.
9056
9057 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
9058
9059         * dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
9060         df flags as in run_fast_df_dce.
9061
9062 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
9063
9064         Revert:
9065         2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
9066
9067         * rtl.def (NOTE): Swap operands 4 and 5.
9068         * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
9069         NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
9070         Adjust accordingly.
9071         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.
9072
9073 2010-07-29  Jakub Jelinek  <jakub@redhat.com>
9074
9075         PR debug/45110
9076         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
9077         (gen_formal_types_die): Add DW_AT_object_pointer in methods.
9078         (gen_subprogram_die): Likewise.  Remove it when removing declaration's
9079         formal parameters.
9080         (gen_decl_die): Change return type to dw_die_ref, return what
9081         gen_formal_parameter_die returned.
9082
9083 2010-07-29  Martin Jambor  <mjambor@suse.cz>
9084
9085         * dbgcnt.def (eipa_sra): New counter.
9086         * tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.
9087
9088 2010-07-29  Xinliang David Li  <davidxl@google.com>
9089
9090         PR bootstrap/45119
9091         * tree-ssa-loop-ivopts.c (get_address_cost): Revert change
9092         in revision 162652.
9093
9094 2010-07-29  Richard Guenther  <rguenther@suse.de>
9095
9096         * timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
9097         (TV_TREE_STORE_CCP): Likewise.
9098         (TV_TREE_REDPHI): Likewise.
9099
9100 2010-07-29  Richard Guenther  <rguenther@suse.de>
9101
9102         * double-int.h (double_int_and_not): New function.
9103         * combine.c (try_combine): Use it.
9104         * tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.
9105
9106 2010-07-29  Bernd Schmidt  <bernds@codesourcery.com>
9107
9108         PR rtl-optimization/42575
9109         * dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
9110         Argument AU removed.  All callers changed.  Ignore artificial refs.
9111         Use return value of df_word_lr_simulate_defs to decide whether an insn
9112         is necessary.
9113         (fast_dce): Rename arg to WORD_LEVEL.
9114         (run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
9115         static.
9116         (pass_fast_rtl_byte_dce): Delete.
9117         * dce.h (run_word_dce): Declare.
9118         * df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
9119         All callers changed.  Simplify code to only deal with two-word regs.
9120         * df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
9121         (DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
9122         (DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
9123         (DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
9124         (struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
9125         (df_word_lr_mark_ref): Declare.
9126         (df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
9127         df_word_lr_simulate_uses): Declare or rename from byte variants.
9128         (df_byte_lr_simulate_artificial_refs_at_top,
9129         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
9130         df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
9131         declarations.
9132         (df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
9133         (enum df_mm): Delete.
9134         * df-byte-scan.c: Delete file.
9135         * df-problems.c (df_word_lr_problem_data): Renamed from
9136         df_byte_lr_problem_data, all members deleted except for
9137         WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
9138         (df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
9139         df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
9140         df_byte_lr_get_regno_len, df_byte_lr_check_regs,
9141         df_byte_lr_confluence_0): Delete functions.
9142         (df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
9143         callers changed.
9144         (df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
9145         Don't initialize members that were deleted, don't try to discover data
9146         about registers.  Ignore hard regs.
9147         (df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
9148         (df_word_lr_mark_ref): New function.
9149         (df_word_lr_bb_local_compute): Renamed from
9150         df_byte_bb_lr_local_compute; all callers changed.  Use
9151         df_word_lr_mark_ref.  Assert that artificial refs don't include
9152         pseudos.  Ignore hard registers.
9153         (df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
9154         Assert that exit block uses don't contain pseudos.
9155         (df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
9156         (df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
9157         callers changed.  Ignore hard regs.
9158         (df_word_lr_transfer_function): Renamed from
9159         df_byte_lr_transfer_function; all callers changed.
9160         (df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
9161         (df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
9162         changed.
9163         (df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
9164         callers changed.
9165         (problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
9166         confluence operator 0 set to NULL.
9167         (df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
9168         callers changed.
9169         (df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
9170         Return bool, true if bitmap changed or insn otherwise necessary.
9171         All callers changed.  Simplify using df_word_lr_mark_ref.
9172         (df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
9173         all callers changed.  Simplify using df_word_lr_mark_ref.
9174         * lower-subreg.c: Include "dce.h"
9175         (decompose_multiword_subregs): Call run_word_dce if df available.
9176         * Makefile.in (lower-subreg.o): Adjust dependencies.
9177         (df-byte-scan.o): Delete.
9178         * timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.
9179
9180 2010-07-29  Richard Guenther  <rguenther@suse.de>
9181
9182         * tree.c (build_vector): Assert that the vector constant
9183         has enough elements.
9184         (build_vector_from_ctor): Pad with trailing zeros.
9185
9186 2010-07-29  Richard Guenther  <rguenther@suse.de>
9187
9188         PR tree-optimization/45120
9189         * tree-ssa-structalias.c (get_constraint_for_component_ref):
9190         Handle offset in DEREFs properly.
9191         (get_constraint_for_1): Handle MEM_REF offset properly.
9192
9193 2010-07-29  Richard Guenther  <rguenther@suse.de>
9194
9195         PR middle-end/45034
9196         * convert.c (convert_to_integer): Always use an unsigned
9197         type for narrowed negate and bitwise not.
9198
9199 2010-07-29  Ira Rosen  <irar@il.ibm.com>
9200
9201         * tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
9202         to outer loop when creating reduction epilogue for double reduction,
9203         and switch back to the inner loop when updating the phi nodes.
9204         Update uses of outer loop exit phi nodes in double reduction (instead
9205         of uses of reduction).
9206
9207 2010-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
9208
9209         * config/rs6000/rs6000.c (rs6000_rtx_costs): Update costs for
9210         popcount on power7 and parity on power6 systems.
9211         (rs6000_emit_popcount): Rename gen_popcntwsi2 to gen_popcntddi2.
9212         (rs6000_emit_parity): Add support for power6 prtyd/prtyw
9213         instructions.
9214
9215         * config/rs6000/rs6000.md (UNSPEC_COPYSIGN): New unspec.
9216         (UNSPEC_PARITY): Ditto.
9217         (SFDF): New iterator for SF/DF.
9218         (rreg2): New mode attribute for floating register constraint.
9219         (TARGET_FLOAT): New mode attribute for whether single/double float
9220         is supported.
9221         (popcntd<mode>2): Combine popcntwsi2 and popcntddi2 into one
9222         pattern.
9223         (parity<mode>2_cmpb): New insn for parity on power6 and newer
9224         machines.
9225         (copysign<mode>3): Combine copysignsf3, copysigndf3 into one
9226         pattern.  Add support for fcpsgn instruction added in power6.
9227         (copysignsf3): Delete.
9228         (copysigndf3): Delete.
9229         (copysign<mode>3_fcpsgn): New insn to generate fcpsgn.  Use UNSPEC
9230         instead of if_then_else in RTL to avoid problems with -0.
9231
9232         * config/rs6000/vsx.md (vsx_copysign<mode>3): Use UNSPEC instead
9233         of if_then_else to mirror scalar code.
9234         (vsx_copysignsf3): Delete, use copysign<mode>3_fcpsgn in
9235         rs6000.md.
9236
9237         * config/rs6000/vector.md (vector_copysign<mode>3): Use UNSPEC
9238         instead of if_then_else.
9239
9240 2010-07-28  Xinliang David Li  <davidxl@google.com>
9241
9242         * tree-ssa-loop-ivopts.c (avg_loop_niter): New function.
9243         (dump_cand): Dump var_before/after.
9244         (htab_inv_expr_eq): New function.
9245         (htab_inv_expr_hash): New function.
9246         (tree_ssa_iv_optimize_init): Support pseudo invariants.
9247         (add_candidate_1): consider base type precision.
9248         (set_use_iv_cost): New parameter.
9249         (adjust_setup_cost): Use profile information.
9250         (get_address_cost): Do not hard code width in computing address
9251         offset limits.
9252         (compare_aff_trees): New function.
9253         (get_loop_invariant_expr_id): New function.
9254         (get_computation_cost_at): New parameter and use profile information.
9255         (get_computation_cost): New parameter.
9256         (determine_use_iv_cost_generic): Pass new parameter.
9257         (determine_use_iv_cost_address): Ditto.
9258         (determine_use_iv_cost_condition): Ditto.
9259         (autoinc_possible_for_pair): Ditto.
9260         (determine_use_iv_costs): More dumps.
9261         (iv_ca_get_num_inv_exprs): New function.
9262         (iv_ca_recount_cost): Consider loop invariants in register pressure
9263         cost.
9264         (iv_ca_add_use): New parameter.
9265         (iv_ca_dump): Better dumping.
9266         (iv_ca_extend): New parameter.
9267         (try_add_cand_for): Attempt to get better partial solution.
9268         (try_improve_iv_set): Pass new parameter to iv_ca_extend.
9269         (create_new-ivs): More dumps.
9270         (rewrite_use_compare): Ditto.
9271         (free_loop_data): More cleanup.
9272         (treee_ssa_iv_optimize_finalize): Ditto.
9273
9274 2010-07-28  Kai Tietz  <kai.tietz@onevision.com>
9275
9276         * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
9277         * config/i386/i386.c (ix86_profile_before_prologue): New.
9278         (override_options): Add special handling for -mfentry.
9279         (ix86_function_regparm): Likewise.
9280         (ix86_function_sseregparm): Likewise.
9281         (ix86_frame_pointer_required): Likewise.
9282         (ix86_expand_prologue): Check for ms_hook_prologue.
9283         (x86_function_profiler): Adjust mcount output.
9284         (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
9285         * config/i386/i386.opt (mfentry): New.
9286         * doc/invoke.texi (mfentry): Add documentation.
9287         * doc/tm.texi: Regenerated..
9288         * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
9289         * final.c (final_start_function): Replace macro
9290         PROFILE_BEFORE_PROLOGUE by target hook.
9291         * function.c (thread_prologue_and_epilogue_insns): Likewise.
9292         * target.def (profile_before_prologue): New hook.
9293         * targhooks.c (default_profile_before_prologue): New.
9294         * targhooks.h (default_profile_before_prologue): New.
9295
9296 2010-07-28  Jakub Jelinek  <jakub@redhat.com>
9297
9298         PR debug/45105
9299         * gcse.c (hoist_code): Use FOR_BB_INSNS macro.
9300
9301         PR debug/45103
9302         * dwarf2out.c (dwarf2out_var_location): Always consider
9303         NOTE_DURING_CALL_P notes, even when not followed by real instructions.
9304
9305 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
9306
9307         PR rtl-optimization/45107
9308         * gcse.c (hash_scan_set): Use max_distance for gcse-las.
9309
9310 2010-07-28  Richard Guenther  <rguenther@suse.de>
9311
9312         * tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
9313         (set_lattice_value): Do not query an old default value.
9314         (get_value_for_expr): New function.  Properly canonicalize
9315         float values.
9316         (ccp_visit_phi_node): Use it.
9317
9318 2010-07-28  Chung-Lin Tang  <cltang@codesourcery.com>
9319
9320         * config/arm/arm.c (arm_pcs_default): Remove static.
9321         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
9322         __ARM_PCS_VFP to indicate soft/hard-float calling convention.
9323         (arm_pcs_default): Declare.
9324
9325 2010-07-28  Iain Sandoe  <iains@gcc.gnu.org>
9326
9327         * config/rs6000/rs6000.c (rs6000_override_options):
9328         Use TARGET_MACHO inline, move darwin_one_byte_bool from here...
9329         ... to darwin_rs6000_override_options.
9330         (rs6000_return_in_memory): Update preceding comment for darwin
9331         64 bit ABI.  Use TARGET_MACHO inline.
9332         (rs6000_darwin64_struct_check_p): New.
9333         (function_arg_advance): Use rs6000_darwin64_struct_check_p.
9334         (function_arg): Likewise.
9335         (rs6000_arg_partial_bytes): Likewise.
9336         (rs6000_function_value): Likewise.
9337
9338 2010-07-28  Andi Kleen  <ak@linux.intel.com>
9339
9340         * lto-opts.c (lto_file_read_options): Add loop over all inputs.
9341
9342 2010-07-28  Richard Guenther  <rguenther@suse.de>
9343
9344         PR middle-end/44903
9345         * builtins.c (fold_builtin_memory_op): On STRICT_ALIGNMENT
9346         targets try harder to not generate unaligned accesses.
9347
9348 2010-07-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
9349
9350         PR rtl-optimization/45101
9351         * gcse.c (hash_scan_set): Fix argument ordering of insert_expr_in_table
9352         for gcse-las.
9353
9354 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
9355
9356         PR tree-optimization/44885
9357         * tree-sra.c (find_param_candidates): Skip pointer types to arrays
9358         with non-aliased component.
9359
9360 2010-07-28  Joseph Myers  <joseph@codesourcery.com>
9361
9362         * config/darwin-driver.c (SWITCH_TAKES_ARG,
9363         WORD_SWITCH_TAKES_ARG): Remove.
9364         * cppspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Remove.
9365         * defaults.h (DEFAULT_SWITCH_TAKES_ARG,
9366         DEFAULT_WORD_SWITCH_TAKES_ARG): Move from gcc.h.
9367         (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move default
9368         definitions from gcc.c.
9369         * gcc.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG): Move to
9370         defaults.h.
9371         * gcc.h (DEFAULT_SWITCH_TAKES_ARG, DEFAULT_WORD_SWITCH_TAKES_ARG):
9372         Move to defaults.h.
9373         * opts-common.c: Include tm.h.
9374         (decode_cmdline_option): Use SWITCH_TAKES_ARG and
9375         WORD_SWITCH_TAKES_ARG to count arguments to unknown options.
9376         Handle more than one argument.  Set canonical_option_num_elements.
9377         (decode_cmdline_options_to_array): Set
9378         canonical_option_num_elements and trailing elements of
9379         canonical_option.
9380         * opts.h (struct cl_decoded_option): Allow four elements in
9381         canonical_option.  Add field canonical_option_num_elements.
9382         * Makefile.in (opts-common.o): Update dependencies.
9383
9384 2010-07-28  Eric Botcazou  <ebotcazou@adacore.com>
9385
9386         PR middle-end/44790
9387         PR middle-end/44993
9388         * expr.c (expand_expr_real_1) <MEM_REF>: Revert latest change.  Make
9389         sure the base has address_mode before adding the offset.
9390
9391 2010-07-27  Xinliang David Li  <davidxl@google.com>
9392
9393         * tree-flow.h (create_mem_ref): Add one new parameter.
9394         * tree-ssa-address.c (create_mem_ref): New parameter.
9395         (addr_to_parts): Ditto.
9396         (move_variant_to_index): New function.
9397         * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass new argument.
9398
9399 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
9400
9401         * rtl.def (DEBUG_INSN, INSN, JUMP_INSN, CALL_INSN, NOTE): Swap operands
9402         4 and 5.
9403         * rtl.h (PATTERN, INSN_LOCATOR, NOTE_DATA, NOTE_DELETED_LABEL_NAME,
9404         NOTE_BLOCK, NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION,
9405         NOTE_KIND, LABEL_NUSES, LABEL_REFS): Adjust accordingly.
9406         * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of
9407         CODE_LABELs and NOTEs.
9408         * caller-save.c (init_caller_save): Fix up gen_rtx_INSN call.
9409         * combine.c (try_combine): Likewise.
9410         * ira.c (setup_prohibited_mode_move_regs): Likewise.
9411         * print-rtl.c (print_rtx): Start REG_NOTES on a new line.
9412
9413 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
9414
9415         * coretypes.h (struct cl_option_handlers): Declare.
9416         * hooks.c (hook_int_size_t_constcharptr_int_0): Remove.
9417         * hooks.h (hook_int_size_t_constcharptr_int_0): Remove.
9418         * langhooks-def.h (lhd_handle_option): Declare.
9419         (LANG_HOOKS_HANDLE_OPTION): Use lhd_handle_option.
9420         * langhooks.c (lhd_handle_option): New.
9421         * langhooks.h (struct lang_hooks): Update prototype and return
9422         value type of handle_option hook.
9423         * optc-gen.awk: Generate target_flags_explicit definition for the
9424         driver.
9425         * opts-common.c: Include diagnostic.h.
9426         (handle_option): Move from opts.c.  Update prototype and return
9427         value type.  Use handlers structure.
9428         (read_cmdline_option): Move from opts.c.  Update prototype.  Use
9429         handlers structure.
9430         (set_option): Move from opts.c.
9431         * opts.c (common_handle_option): Update prototype and return value
9432         type.  Update calls to handle_option and enable_warning_as_error.
9433         (unknown_option_callback, post_handling_callback,
9434         lang_handle_option, target_handle_option): New.
9435         (handle_option, read_cmdline_option): Move to opts-common.c.
9436         (read_cmdline_options): Update prototype.  Update call to
9437         read_cmdline_option.
9438         (decode_options): Initialize and use handlers structure.
9439         (set_option): Move to opts-common.c.
9440         (enable_warning_as_error): Update prototype.  Update call to
9441         handle_option.
9442         * opts.h (struct cl_option_handler_func, struct
9443         cl_option_handlers): New.
9444         (handle_option, enable_warning_as_error): Update prototypes.
9445         (read_cmdline_option): Declare.
9446         * Makefile.in (opts-common.o): Update dependencies.
9447
9448 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
9449
9450         * config/arm/arm.c (params.h): Include.
9451         (arm_override_options): Tune gcse-unrestricted-cost.
9452         * config/arm/t-arm (arm.o): Define dependencies.
9453
9454 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
9455
9456         PR target/42495
9457         PR middle-end/42574
9458         * basic-block.h (get_dominated_to_depth): Declare.
9459         * dominance.c (get_dominated_to_depth): New function, use
9460         get_all_dominated_blocks as a base.
9461         (get_all_dominated_blocks): Use get_dominated_to_depth.
9462
9463         * gcse.c (occr_t, VEC (occr_t, heap)): Define.
9464         (hoist_exprs): Remove.
9465         (alloc_code_hoist_mem, free_code_hoist_mem): Update.
9466         (compute_code_hoist_vbeinout): Add debug print outs.
9467         (hoist_code): Partially rewrite, simplify.  Use get_dominated_to_depth.
9468
9469         * params.def (PARAM_MAX_HOIST_DEPTH): New parameter to avoid
9470         quadratic behavior.
9471         * params.h (MAX_HOIST_DEPTH): New macro.
9472         * doc/invoke.texi (max-hoist-depth): Document.
9473
9474 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
9475
9476         PR rtl-optimization/40956
9477         * config/arm/arm.c (thumb1_size_rtx_costs): Fix cost of simple
9478         constants.
9479
9480 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
9481
9482         PR target/42495
9483         PR middle-end/42574
9484         * config/arm/arm.c (legitimize_pic_address): Use
9485         gen_calculate_pic_address pattern to emit calculation of PIC address.
9486         (will_be_in_index_register): New function.
9487         (arm_legitimate_address_outer_p, thumb2_legitimate_address_p,)
9488         (thumb1_legitimate_address_p): Use it provided !strict_p.
9489         * config/arm/arm.md (calculate_pic_address): New expand and split.
9490
9491 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
9492
9493         PR target/42495
9494         PR middle-end/42574
9495         * config/arm/arm.c (thumb1_size_rtx_costs): Add cost for "J" constants.
9496         * config/arm/arm.md (define_split "J", define_split "K"): Make
9497         IRA/reload friendly.
9498
9499 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
9500
9501         * gcse.c (insert_insn_end_basic_block): Update signature, remove
9502         unused checks.
9503         (pre_edge_insert, hoist_code): Update.
9504
9505 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
9506
9507         PR target/42495
9508         PR middle-end/42574
9509         * gcse.c (hoist_expr_reaches_here_p): Remove excessive check.
9510
9511 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
9512
9513         * gcse.c (hoist_code): Generate new pseudo for every new set insn.
9514
9515 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
9516
9517         PR rtl-optimization/40956
9518         PR target/42495
9519         PR middle-end/42574
9520         * gcse.c (compute_code_hoist_vbeinout): Consider more expressions
9521         for hoisting.
9522         (hoist_code): Count occurences in current block too.
9523
9524 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
9525
9526         * gcse.c (struct expr:max_distance): New field.
9527         (doing_code_hoisting_p): New static variable.
9528         (want_to_gcse_p): Change signature.  Allow constrained hoisting of
9529         simple expressions, don't change behavior for PRE.  Set max_distance.
9530         (insert_expr_in_table): Set new max_distance field.
9531         (hash_scan_set): Update.
9532         (hoist_expr_reaches_here_p): Stop search after max_distance
9533         instructions.
9534         (find_occr_in_bb): New static function.  Use it in ...
9535         (hoist_code): Calculate sizes of basic block before any changes are
9536         done.  Pass max_distance to hoist_expr_reaches_here_p.
9537         (one_code_hoisting_pass): Set doing_code_hoisting_p.
9538
9539         * params.def (PARAM_GCSE_COST_DISTANCE_RATIO,)
9540         (PARAM_GCSE_UNRESTRICTED_COST): New parameters.
9541         * params.h (GCSE_COST_DISTANCE_RATIO, GCSE_UNRESTRICTED_COST): New
9542         macros.
9543         * doc/invoke.texi (gcse-cost-distance-ratio, gcse-unrestricted-cost):
9544         Document.
9545
9546 2010-07-27  Jeff Law  <law@redhat.com>
9547             Maxim Kuvyrkov  <maxim@codesourcery.com>
9548
9549         * gcse.c (compute_transpout, transpout): Remove, move logic
9550         to prune_expressions.
9551         (compute_pre_data): Move pruning of trapping expressions ...
9552         (prune_expressions): ... here.  New static function.
9553         (compute_code_hoist_data): Use it.
9554         (alloc_code_hoist_mem, free_code_hoist_mem, hoist_code): Update.
9555
9556 2010-07-27  Xinliang David Li  <davidxl@google.com>
9557
9558         * tree-ssa-loop-ivopts.c (adjust_iv_update_pos): New function.
9559         (rewrite_use_address): Adjust iv update position when needed.
9560
9561 2010-07-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
9562
9563         * dbgcnt.def (hoist_insn): New debug counter.
9564         * gcse.c (hoist_code): Use it.
9565
9566 2010-07-27  Xinliang David Li  <davidxl@google.com>
9567
9568         * tree-ssa-loop-ivopts.c (niter_for_exit): New parameter.
9569         (niter_for_single_dom_exit): Passes additional parameter.
9570         (iv_period): Fix comments.
9571         (may_eliminate_iv): Handles multiple exit loops properly.
9572         (free_tree_niter_desc): New function.
9573         (free_loop_data): Frees up loop iteration descriptors.
9574
9575 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
9576
9577         PR target/44542
9578         * cfgexpand.c (expand_one_stack_var_at): Limit align to maximum
9579         of max_used_stack_slot_alignment and PREFERRED_STACK_BOUNDARY
9580         instead of MAX_SUPPORTED_STACK_ALIGNMENT.
9581         (expand_one_var): Don't consider DECL_ALIGN for variables for
9582         which expand_one_stack_var_at has been already called.
9583
9584         PR testsuite/44701
9585         * doc/md.texi: Clarify m and es constraints on PowerPC and m and S
9586         constraints on IA-64.
9587
9588 2010-07-27  Jie Zhang  <jie@codesourcery.com>
9589
9590         PR target/44290
9591         Revert:
9592         2010-07-23  Jie Zhang  <jie@codesourcery.com>
9593
9594         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
9595         false if ! tree_versionable_function_p.
9596
9597 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
9598
9599         * dwarf2out.c (add_data_member_location_attribute): Use
9600         add_AT_unsigned instead of add_AT_int if offset is non-negative.
9601
9602 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
9603
9604         * postreload.c (try_replace_in_use): New static function.
9605         (reload_combine_recognize_const_pattern): Use it here.  Allow
9606         substituting into a final add insn, and substituting into a memory
9607         reference in an insn that sets the reg.
9608
9609 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
9610
9611         * common.opt (o): Add MissingArgError.
9612         * doc/options.texi (MissingArgError): Document.
9613         * hooks.c (hook_bool_constcharptr_size_t_false): Remove.
9614         * hooks.h (hook_bool_constcharptr_size_t_false): Remove.
9615         * langhooks-def.h (LANG_HOOKS_MISSING_ARGUMENT): Remove.
9616         (LANG_HOOKS_INITIALIZER): Remove missing_argument hook initializer.
9617         * langhooks.h (struct lang_hooks): Remove missing_argument.
9618         * optc-gen.awk: Handle MissingArgError and output new structure
9619         field initializers.
9620         * opts.c (read_cmdline_option): Use missing_argument_error field
9621         instead of missing_argument langhook.
9622         * opts.h (struct cl_option): Add missing_argument_error field.
9623         * system.h (LANG_HOOKS_MISSING_ARGUMENT): Poison.
9624
9625 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
9626
9627         PR target/29090
9628         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Special-case the
9629         Darwin64 ABI, for zero-sized objects.
9630
9631 2010-07-27  Iain Sandoe  <iains@gcc.gnu.org>
9632
9633         PR target/35491
9634         PR target/29090
9635
9636         Merge from Apple local 4.2.1.
9637         2005-05-11  Stan Shebs  <shebs@apple.com>
9638         Fix 64-bit varargs for Darwin (Radar 4028089).
9639         * config/rs6000/rs6000.h (rs6000_args): New field floats_in_gpr.
9640         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
9641         Add argument, add case for 8-byte register half-filled with a float.
9642         (rs6000_darwin64_record_arg_advance_recurse): Detect and handle
9643         single-precision floats specially.
9644
9645 2010-07-27  Ira Rosen  <irar@il.ibm.com>
9646
9647         PR tree-optimization/44152
9648         * tree-vect-slp.c (vect_build_slp_tree): Collect nodes with
9649         complex numbers for further check.
9650         (vect_supported_load_permutation_p): Check nodes with
9651         complex numbers.
9652
9653 2010-07-27  Joseph Myers  <joseph@codesourcery.com>
9654
9655         * langhooks-def.h (lhd_init_options, LANG_HOOKS_OPTION_LANG_MASK,
9656         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): New.
9657         (LANG_HOOKS_INIT_OPTIONS): Update default definition.
9658         (LANG_HOOKS_INITIALIZER): Add new hooks.
9659         * langhooks.c (lhd_init_options, lhd_complain_wrong_lang_p): New.
9660         * langhooks.h (struct lang_hooks): Add new hooks option_lang_mask
9661         and complain_wrong_lang_p.  Update init_options prototype.
9662         * c-objc-common.c (c_initialize_diagnostics): First call
9663         c_common_initialize_diagnostics.
9664         * c-objc-common.h (LANG_HOOKS_OPTION_LANG_MASK,
9665         LANG_HOOKS_COMPLAIN_WRONG_LANG_P): Define.
9666         * coretypes.h (struct cl_option, struct cl_decoded_option): Declare.
9667         * hooks.c (hook_uint_uint_constcharptrptr_0): Remove.
9668         (hook_uint_void_0): New.
9669         * hooks.h (hook_uint_uint_constcharptrptr_0): Remove.
9670         (hook_uint_void_0): New.
9671         * opts-common.c (decode_cmdline_option,
9672         decode_cmdline_options_to_array): Also fill in canonical_option field.
9673         * opts.c (complain_wrong_lang): Use langhook to determine whether
9674         to complain instead of special-casing LTO.
9675         (decode_options): Separate lang_mask determination with
9676         option_lang_mask hook from call of init_options hook.
9677         * opts.h (struct cl_decoded_option): Add canonical_option.
9678
9679 2010-07-27  Jakub Jelinek  <jakub@redhat.com>
9680
9681         PR tree-optimization/45083
9682         * tree-inline.c (add_local_variables): Also remap DECL_DEBUG_EXPR.
9683
9684 2010-07-27  Bernd Schmidt  <bernds@codesourcery.com>
9685
9686         * postreload.c (reload_combine_recognize_const_pattern): Move test
9687         for limiting the insn movement to the right scope.
9688
9689         PR rtl-optimization/45051
9690         * reload1.c (delete_output_reload): Use refers_to_regno_p rather
9691         than reg_mentioned_p.
9692
9693 2010-07-26  Richard Henderson  <rth@redhat.com>
9694
9695         PR target/44132
9696         * tree-emutls.c: New file.
9697         * Makefile.in (OBJS-common): Add it.
9698         * tree-pass.h (pass_ipa_lower_emutls): Declare.
9699         * passes.c (init_optimization_passes): Add it.
9700
9701         * dwarf2out.c (loc_list_from_tree): If emutls.debug_form_tls_address,
9702         pull the control variable from DECL_VALUE_EXPR, not emutls_decl.
9703         * expr.c (emutls_var_address): Delete.
9704         (expand_expr_addr_expr_1, expand_expr_real_1): Don't use it.
9705         * output.h (SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL): Delete.
9706         (emutls_finish): Delete.
9707         * toplev.c (compile_file): Don't call it.
9708         * tree.h (emutls_decl): Delete.
9709         * varasm.c (emutls_htab, DECL_EMUTLS_VAR_P): Delete.
9710         (emutls_finish, emutls_finalize_control_var): Delete.
9711         (emutls_object_type): Move to tree-emutls.c.
9712         (EMUTLS_SEPARATOR, prefix_name, get_emutls_object_name,
9713         default_emutls_var_fields, get_emutls_object_type,
9714         get_emutls_init_templ_addr, emutls_decl, emutls_common_1
9715         default_emutls_var_init): Likewise.
9716         (get_variable_section): Don't special case emutls.
9717         (assemble_variable, do_assemble_alias, categorize_decl_for_section,
9718         default_elf_select_section, default_unique_section,
9719         default_encode_section_info): Likewise.
9720         * varpool.c (decide_is_variable_needed): Likewise.
9721         * gimple-iterator.c (update_call_edge_frequencies): New
9722         (gsi_insert_on_edge_immediate): Use it.
9723         (gsi_insert_seq_on_edge_immediate): Likewise.
9724         (gsi_commit_one_edge_insert): Likewise.
9725
9726         * config/i386/i386.c (x86_64_elf_select_section): Don't handle
9727         SECCAT_EMUTLS_VAR, SECCAT_EMUTLS_TMPL.
9728         (x86_64_elf_unique_section): Likewise.
9729
9730 2010-07-26  Jan Hubicka  <jh@suse.cz>
9731
9732         * lto-streamer.h (struct lto_file_decl_data): Mark resolutions with
9733         GTY((skip)).
9734
9735 2010-07-26  Anatoly Sokolov  <aesok@post.ru>
9736
9737         * target.def (output_source_filename): New hook.
9738         * doc/tm.texi.in (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Document.
9739         * doc/tm.texi: Regenerate.
9740         * toplev.c (output_file_directive) Remove function.
9741         * toplev.h (output_file_directive) Remove.
9742         * output.h (default_asm_output_source_filename,
9743         output_file_directive): Declare.
9744         * varasm.h (default_asm_output_source_filename,
9745         output_file_directive): New functions.
9746
9747         * config/mips/mips.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
9748         * config/mips/mips-protos.h (mips_output_filename): Remove.
9749         * config/mips/mips.c (mips_output_filename): Make Static.
9750         (TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.
9751
9752 2010-07-26  Richard Guenther  <rguenther@suse.de>
9753
9754         PR tree-optimization/43784
9755         * tree-nrv.c (dest_safe_for_nrv_p): It's not safe to NRV
9756         if the destination is used by the call.
9757
9758 2010-07-26  Richard Guenther  <rguenther@suse.de>
9759
9760         PR middle-end/45073
9761         * gimple-fold.c (gimplify_and_update_call_from_tree): Conditionalize
9762         SSA updating on being in SSA form.
9763
9764 2010-07-26  Richard Guenther  <rguenther@suse.de>
9765
9766         PR middle-end/45056
9767         * gimple-fold.c (fold_stmt_1): Also fold references in debug stmts.
9768
9769 2010-07-26  Richard Guenther  <rguenther@suse.de>
9770
9771         PR tree-optimization/45071
9772         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Always
9773         adjust op->opcode.
9774
9775 2010-07-26  Naveen.H.S  <naveen.S@kpitcummins.com>
9776
9777         * config/v850/lib1funcs.asm (save_r2_r31, return_r2_r31,
9778         save_r20_r31, return_r20_r31, save_r21_r31, return_r21_r31,
9779         save_r22_r31, return_r22_r31, save_r23_r31, return_r23_r31,
9780         save_r24_r31, return_r24_r31, save_r25_r31, return_r25_r31,
9781         save_r26_r31, return_r26_r31, save_r27_r31, return_r27_r31,
9782         save_r28_r31, return_r28_r31, save_r29_r31, return_r29_r31,
9783         save_r31, return_r31, save_interrupt, return_interrupt,
9784         save_all_interrupt, return_all_interrupt, L_save_r2_r31,
9785         L_return_interrupt, callt_return_interrupt, L_restore_all_interrupt,
9786         L_save_##START##_r31c, L_callt_save_r31c): Updated as per the
9787         new ABI requirements.
9788         (save_r6_r9, L_callt_save_r6_r9): Remove.
9789         * config/v850/predicates.md (even_reg_operand, disp23_operand,
9790         const_float_1_operand const_float_0_operand): New Predicates.
9791         (pattern_is_ok_for_prepare, pattern_is_ok_for_prologue,
9792         pattern_is_ok_for_epilogue): Update as per the ABI requirements.
9793         * config/v850/t-v850: Update multilibs for new target variants.
9794         (save_varargs, callt_save_varargs, callt_save_r6_r9): Remove.
9795         * config/v850/t-v850e: Likewise.
9796         * config/v850/v850.c (v850_issue_rate): New.
9797         (v850_strict_argument_naming): New.
9798         (function_arg): Modify to generate a different ABI.
9799         (print_operand): Update case 'z' to support float modes.
9800         (output_move_single): Modify to generate appropriate and better
9801         assembly.
9802         (v850_float_z_comparison_operator, v850_select_cc_mode,
9803         v850_float_nz_comparison_operator,  v850_gen_float_compare,
9804         v850_gen_compare): New functions to support comparison of float values.
9805         (ep_memory_offset): Add support for V850E2 targets.
9806         (INTERRUPT_FIXED_NUM, INTERRUPT_ALL_SAVE_NUM): Update.
9807         (INTERRUPT_REGPARM_NUM): Remove.
9808         (compute_register_save_size): Add extra case to save/restore long call.
9809         (use_prolog_function): New function to support prologue.
9810         (expand_prologue): Add support for V850E2 targets and modified
9811         as per the current ABI requirements.
9812         (expand_epilogue): Likewise.
9813         (construct_restore_jr): Modify based on TARGET_LONG_CALLS.
9814         (construct_save_jarl): Likewise.
9815         (construct_dispose_instruction): Update as per the current ABI
9816         requirements.
9817         (construct_prepare_instruction): Likewise.
9818         * config/v850/v850.h (TARGET_CPU_DEFAULT): Add target predefines.
9819         (TARGET_CPU_v850e2, TARGET_CPU_v850e2v3): Define
9820         (CPP_SPEC): Updated to support v850e2 targets.
9821         (STRICT_ALIGNMENT): Modified.
9822         (FIRST_PSEUDO_REGISTER): Updated to add even registers.
9823         (FIXED_REGISTERS): Likewise.
9824         (CALL_USED_REGISTERS): Likewise.
9825         (CONDITIONAL_REGISTER_USAGE): Updated.
9826         (HARD_REGNO_MODE_OK): Updated.
9827         (reg_class): Updated to add even registers.
9828         (REG_CLASS_NAMES): Likewise.
9829         (REG_CLASS_CONTENTS): Likewise.
9830         (REGNO_REG_CLASS): Updated for CC registers.
9831         (REG_CLASS_FROM_LETTER): Added support for even registers.
9832         (REGNO_OK_FOR_BASE_P): Updated for CC registers.
9833         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, LINK_POINTER_REGNUM,
9834         ARG_POINTER_REGNUM): Updated.
9835         (FUNCTION_ARG_ADVANCE): Define.
9836         (REG_PARM_STACK_SPACE): Update as per the current ABI requirements.
9837         (OUTGOING_REG_PARM_STACK_SPACE): Remove.
9838         (EXTRA_CONSTRAINT): Add new constraint 'W' for 23-bit displacement.
9839         (GO_IF_LEGITIMATE_ADDRESS): Updated.
9840         (SELECT_CC_MODE): Define.
9841         (REGISTER_NAMES): Updated to add psw and fcc registers.
9842         (ADDITIONAL_REGISTER_NAMES): Updated.
9843         (ASM_OUTPUT_ADDR_DIFF_ELT): Updated to support new targets.
9844         (JUMP_TABLES_IN_TEXT_SECTION): Updated.
9845         * config/v850/v850.md (define_constants): Define new constants.
9846         (type): Update store,bit1,macc,div,fpu and single attributes.
9847         (cpu): New attribute.
9848         (cc): Add set_z attribute.
9849         (unsign23byte_load, sign23byte_load, unsign23hword_load,
9850         sign23hword_load, 23word_load, 23byte_store, 23hword_store,
9851         23word_store): New instructions for 23-bit displacement load and store.
9852         (movqi_internal, movhi_internal): Update the attributes.
9853         (movsi, movsi_internal_v850e): Updated to support v850e2 targets.
9854         (movsi_internal_v850e, movsi_internal, movsf_internal): Update
9855         the attributes.
9856         (v850_tst1): Modified using CC_REGNUM.
9857         (tstsi): Remove.
9858         (cmpsi): Modified as define_expand from define_insn.
9859         (cmpsi_insn, cmpsf, cmpdf): New instructions.
9860         (addsi3, subsi3, negsi2, divmodsi4, udivmodsi4, divmodhi4,
9861         udivmodhi4, v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3,
9862         v850_set1_1, v850_set1_3, iorsi3, v850_not1_1, v850_not1_3, xorsi3,
9863         one_cmplsi2): Clobber the CC_REGNUM register.
9864         (v850_clr1_1, v850_clr1_2, v850_clr1_3, andsi3, v850_set1_1,
9865         v850_set1_2, v850_set1_3, iorsi3, v850_not1_1, v850_not1_2,
9866         v850_not1_3, xorsi3, one_cmplsi2): Update the attributes accordingly.
9867         (setf_insn, set_z_insn, set_nz_insn): New instructions for
9868         v850e2v3 target.
9869         (movsicc_normal_cc, movsicc_reversed_cc): New instructions.
9870         (movsicc, movsicc_normal, movsicc_reversed): Add support for V850E2
9871         targets.
9872         (sasf_1, sasf_2): Remove.
9873         (sasf): New instruction.
9874         (rotlhi3, rotlhi3_8, rotlsi3, rotlsi3_16): Update to support V850E2
9875         targets. CC_REGNUM register is clobbered and attributes are
9876         updated.
9877         (branch_z_normal, branch_z_invert, branch_nz_normal,
9878         branch_nz_invert): New branch related instructions.
9879         (jump): Updated the attributes.
9880         (switch): Update to support new targets. CC_REGNUM register is
9881         clobbered and attributes are updated.
9882         (call_internal_short, call_internal_long, call_value_internal_short,
9883         call_value_internal_long): Updated the attributes.
9884         (zero_extendhisi2, zero_extendqisi2): CC_REGNUM register is
9885         clobbered and attributes are updated.
9886         (extendhisi_insn, extendhisi2, extendqisi_insn, extendqisi2):
9887         Update to support new targets. CC_REGNUM register is clobbered.
9888         (ashlsi3_v850e2, lshrsi3_v850e2, ashrsi3_v850e2): New shift
9889         instructions.
9890         (lshrsi3, ashrsi3): CC_REGNUM register is clobbered and attributes
9891         are updated.
9892         (ffssi2, addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, divsf3,
9893         divdf3, minsf3, mindf3, maxsf3, maxdf3, abssf2, absdf2, negsf2,
9894         negdf2, sqrtsf2, sqrtdf2, truncsfsi2, truncdfsi2, floatsisf2,
9895         floatsidf2, extendsfdf2, extenddfsf2, recipsf2, recipdf2,
9896         rsqrtsf2, rsqrtdf2, maddsf4, msubsf4, nmaddsf4, nmsubsf4,
9897         cmpsf_le_insn, cmpsf_lt_insn, cmpsf_ge_insn, cmpsf_gt_insn,
9898         cmpsf_eq_insn, cmpsf_ne_insn, cmpdf_le_insn, cmpdf_lt_insn,
9899         cmpdf_ge_insn, cmpdf_gt_insn, cmpdf_eq_insn, cmpdf_ne_insn, trfsr,
9900         movsfcc, movdfcc, movsfcc_z_insn, movsfcc_nz_insn, movdfcc_z_insn,
9901         movdfcc_nz_insn, movedfcc_z_zero, movedfcc_nz_zero): New floating
9902         point instructions defined for V850e2v3 target.
9903         (callt_save_interrupt, callt_return_interrupt, return_interrupt):
9904         Add support for V850E2 targets and CC_REGNUM register is clobbered.
9905         (callt_save_all_interrupt, callt_restore_all_interrupt): Add
9906         support for new targets.
9907         * config/v850/v850-modes.def: New file.
9908         * config/v850/v850.opt(mstrict-align): Remove.
9909         (mno-strict-align, mjump-tables-in-data-section, mv850e2,
9910         mv850e2v3): New command line options for V850.
9911         * config.gcc: Update the newly added files.
9912         * doc/invoke.texi: Update the newly added command line options for
9913         V850 target.
9914
9915 2010-07-26  Richard Guenther  <rguenther@suse.de>
9916
9917         PR tree-optimization/45052
9918         * ipa-pure-const.c (check_stmt): Check volatileness.
9919
9920 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
9921
9922         PR target/44707
9923         * config/sparc/sparc-protos.h (sparc_legitimize_reload_address): New.
9924         * config/sparc/sparc.c: Include reload.h.
9925         (legitimize_tls_address): Rename into...
9926         (sparc_legitimize_tls_address): ...this.
9927         (legitimize_pic_address): Rename into...
9928         (sparc_legitimize_pic_address): ...this.
9929         (sparc_expand_move): Adjust to above renaming.
9930         (sparc_tls_referenced_p): Likewise.
9931         (sparc_legitimize_tls_address): Likewise.
9932         (sparc_legitimize_pic_address): Likewise.
9933         (sparc_legitimize_address): Likewise.
9934         (sparc_output_mi_thunk): Likewise.
9935         (sparc_legitimize_reload_address): New global function.  Recognize
9936         (lo_sum (high ...) ...) patterns generated by earlier passes.
9937         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Use above function.
9938
9939 2010-07-25  Eric Botcazou  <ebotcazou@adacore.com>
9940
9941         PR target/44484
9942         * config/sparc/predicates.md (memory_reg_operand): Delete.
9943         * config/sparc/sync.md (sync_compare_and_swap): Minor tweaks.
9944         (*sync_compare_and_swap): Encode the address form in the pattern.
9945         (*sync_compare_and_swapdi_v8plus): Likewise.
9946
9947 2010-07-24  Gerald Pfeifer  <gerald@pfeifer.com>
9948
9949         * doc/install.texi (Specific, *-*-freebsd*): Adjust to recent changes.
9950         Streamline paragraph on compatibility with the system compiler.
9951
9952 2010-07-24  Steven Bosscher  <steven@gcc.gnu.org>
9953
9954         PR middle-end/45035
9955         * alias.c (true_dependence_1): Fix thinko in merge of old
9956         true_dependence and canon_true_dependence.
9957
9958 2010-07-23  Jan Hubicka  <jh@suse.cz>
9959
9960         * lto-streamer-out.c (write_symbol): Fix visibilities of external
9961         references.
9962
9963 2010-07-23  Le-Chun Wu  <lcwu@google.com>
9964
9965         * omega.c (omega_eliminate_redundant): Remove a self-assign statement.
9966         * tree-ssa-ccp.c (ccp_lattice_meet): Remove a self-assign statement
9967         and an unnecessary assignment.
9968         * dbxout.c (DEBUGGER_ARG_OFFSET): Change OFFSET to OFFSET+0 to avoid
9969         self-assign warning.
9970         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Remove
9971         unnecessary self-init.
9972
9973 2010-07-23  Richard Guenther  <rguenther@suse.de>
9974
9975         PR lto/43071
9976         * gcc.c (LINK_COMMAND_SPEC): Filter out -fcompare-debug
9977         for -flto and -fwhopr.
9978
9979 2010-07-23  Kai Tietz  <kai.tietz@onevision.com>
9980
9981         PR target/41943
9982         * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New.
9983         (stmp-int-hdrs): Prefix/postfix headers by include_next.
9984         * config.gcc (user_headers_inc_next_pre): New.
9985         (user_headers_inc_next_post): Likewise.
9986         (*-w64-mingw*): Use for float.h post-fixing, and for
9987         stddef.h/stdarg.h pre-fixing by include_next.
9988         * configure.ac (user_headers_inc_next_post): New.
9989         (user_headers_inc_next_pre): New.
9990         * configure: Regenerated.
9991
9992 2010-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9993
9994         * configure.ac: Don't disable TLS on Solaris 8/9 by default
9995         Set tga_func for Solaris 2/x86 resp. SPARC.
9996         Remove duplicate parts of sparc*-sun-solaris2.* TLS check.
9997         (LIB_THREAD_LDFLAGS_SPEC): Define.
9998         (LIB_TLS_SPEC): Define.  Check for required Sun ld version.
9999         * configure: Regenerate.
10000         * config.in: Regenerate.
10001         * config/sol2.h (LIB_SPEC): Use LIB_THREAD_LDFLAGS_SPEC with
10002         -pthread, -threads, LIB_TLS_SPEC with -pthread.
10003         * doc/install.texi (Specific, *-*-solaris2*): Document use of
10004         alternate thread libraries on Solaris 8.
10005         Document TLS patch requirements.
10006         * doc/sourcebuild.texi (Add Options): Sort alphabetically.
10007         Document tls.
10008
10009         PR target/18788
10010         * config/sol2.h (LIB_SPEC): Link with thread libraries even with
10011         -shared.
10012
10013 2010-07-23  Jakub Jelinek  <jakub@redhat.com>
10014
10015         * tree.h (struct tree_base): Add nameless_flag bitfield.
10016         (TYPE_NAMELESS, DECL_NAMELESS): Define.
10017         * omp-low.c (create_omp_child_function, scan_omp_parallel,
10018         scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
10019         DECL_ARTIFICIAL where needed.
10020         * dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
10021         (type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
10022         has DECL_NAMELESS set.
10023
10024 2010-07-23  Martin Jambor  <mjambor@suse.cz>
10025
10026         PR tree-optimization/44915
10027         * ipa-cp.c (cgraph_gate_cp): Also check that optimize is true.
10028         * ipa-inline.c (cgraph_mark_inline_edge): Likewise.
10029         (analyze_function): Likewise.
10030
10031 2010-07-23  Martin Jambor  <mjambor@suse.cz>
10032
10033         PR tree-optimization/44914
10034         * tree-sra.c (sra_modify_function_body): Return true if CFG was
10035         changed, add purging dead eh edges.
10036         (ipa_sra_modify_function_body): Return true if CFG was changed,
10037         simplify purging dead eh edges.
10038         (modify_function): Return true if CFG was changed.
10039         (perform_intra_sra): Add TODO_cleanup_cfg to the return value if CFG
10040         was changed.
10041         (ipa_early_sra): Likewise.
10042
10043 2010-07-23  Jie Zhang  <jie@codesourcery.com>
10044
10045         PR target/44290
10046         * attribs.c (decl_attributes): Insert "noinline" and "noclone"
10047         if "naked".
10048         * tree-sra.c (ipa_sra_preliminary_function_checks): Return
10049         false if ! tree_versionable_function_p.
10050
10051 2010-07-23  Nathan Froyd  <froydnj@codesourcery.com>
10052
10053         * builtins.def (BUILT_IN_ARGS_INFO): Remove.
10054         * ipa-pure-const.c (special_builtlin_state): Remove
10055         BUILT_IN_ARGS_INFO case.
10056         * tree-stdarg.c (execute_optimize_stdarg): Likewise.
10057         * builtins.c (expand_builtin): Likewise.
10058         (expand_builtin_args_info): Remove.
10059         * doc/tm.texi (__builtin_args_info): Remove.
10060         (__builtin_next_arg): Adjust to not refer to __builtin_args_info.
10061         * doc/tm.text.in: Likewise.
10062
10063 2010-07-23  Richard Guenther  <rguenther@suse.de>
10064
10065         * lto-symtab.c (lto_symtab_merge): Use gtc_mode enum values.
10066         (lto_symtab_merge_decls_2): Likewise.
10067         * tree-ssa.c (useless_type_conversion_p): Likewise.
10068         * lto-streamer-in.c (input_gimple_stmt): Likewise.
10069         * gimple.c (gtc_visited2, gtc_ob2): Remove.
10070         (struct type_pair_d): Make same_p an array indexed by mode.
10071         Update comment.
10072         (lookup_type_pair): Update initialization.
10073         (struct sccs): Adjust same_p type.
10074         (gimple_types_compatible_p_1, gtc_visit, gimple_types_compatible_p):
10075         Adjust.
10076         (print_gimple_types_stats): Likewise.
10077         * gimple.h (enum gtc_mode): New.
10078         (gimple_types_compatible_p): Adjust prototype.
10079
10080 2010-07-23  Daniel Jacobowitz  <dan@codesourcery.com>
10081
10082         * dwarf2out.c (dwarf2out_frame_debug): Check for queued saves
10083         again after processing insn.
10084
10085 2010-07-23  Jie Zhang  <jie@codesourcery.com>
10086
10087         * tree-sra.c (ipa_sra_preliminary_function_checks): Dump
10088         proper words when !tree_versionable_function_p.
10089
10090 2010-07-23  Richard Guenther  <rguenther@suse.de>
10091
10092         PR tree-optimization/45037
10093         * tree-ssa-loop-ivopts.c (copy_ref_info): Handle NULL base.
10094
10095 2010-07-23  Jie Zhang  <jie@codesourcery.com>
10096
10097         * doc/extend.texi: Remove IP2K from the description of naked attribute.
10098         Add MCORE instead.
10099
10100 2010-07-10  Andi Kleen  <ak@linux.intel.com>
10101
10102         PR lto/44992
10103         * lto-opts.c (lto_write_options): Add NULL file_data argument to
10104         lto_get_section_name.
10105         * lto-section-out.c (lto_destroy_simple_output_block): Likewise.
10106         * lto-streamer-out.c (produce_asm): Likewise.
10107         (copy_function): Likewise.
10108         (produce_symtab): Likewise.
10109         (produce_asm_for_decls): Likewise.
10110         * lto-streamer.c (lto_get_section_name): Add file_data argument.
10111         Rewrite to add random postfix to LTO sections.
10112         * lto-streamer.h (lto_file_decl_data): Add next, id, resolutions.
10113         (lto_get_section_name): Add file_data argument to prototype.
10114
10115 2010-07-10  Andi Kleen  <ak@linux.intel.com>
10116
10117         * lto-section-in.c (lto_section_name): Synchronize names
10118         with lto_get_section_name.
10119
10120 2010-07-10  Andi Kleen  <ak@linux.intel.com>
10121
10122         * lto-opts.c (lto_read_file_options): Check for missing section.
10123
10124 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
10125
10126         * ira.c (check_allocation): Correctly handle the case where an allocno
10127         with two objects was allocated to a single reg.
10128
10129 2010-07-22  Richard Sandiford  <rdsandiford@googlemail.com>
10130
10131         * tree-ssa-math-opts.c (is_widening_mult_rhs_p): New function.
10132         (is_widening_mult_p): Likewise.
10133         (convert_to_widen): Use them.
10134         (convert_plusminus_to_widen): Likewise.  Handle fixed-point types as
10135         well as integer ones.
10136
10137 2010-07-22  Steven Bosscher  <steven@gcc.gnu.org>
10138
10139         * alias.c (true_dependence_1): New function, merged version of
10140         true_dependence and canon_true_dependence.
10141         (true_dependence): Simplify.
10142         (canon_true_dependence): Simplify.
10143
10144 2010-07-22  Richard Henderson  <rth@redhat.com>
10145
10146         PR target/45027
10147         * config/i386/i386.c (setup_incoming_varargs_64): Force the use
10148         of V4SFmode for the SSE saves; increase stack alignment if needed.
10149         (ix86_gimplify_va_arg): Don't increase stack alignment here.
10150
10151 2010-07-22  Jakub Jelinek  <jakub@redhat.com>
10152
10153         PR bootstrap/45028
10154         * recgprop.c (copyprop_hardreg_forward_1): If changed is true,
10155         call cprop_find_used_regs again via note_uses.
10156
10157 2010-07-22  Eric Botcazou  <ebotcazou@adacore.com>
10158
10159         * alias.c (get_alias_set): Fix formatting issues.
10160
10161 2010-07-22  Steve Ellcey  <sje@cup.hp.com>
10162
10163         PR middle-end/44878
10164         * stmt.c (expand_value_return):  Call promote_function_mode with
10165         a for_return argument of 2 when returning by reference.
10166
10167 2010-07-22  Dodji Seketeli  <dodji@redhat.com>
10168
10169         PR debug/45024
10170         * dwarf2out.c (scope_die_for): Don't fall back to the compilation
10171         unit DIE if we can find the scope DIE.
10172
10173 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
10174
10175         * ira-build.c (ira_create_object): New arg SUBWORD; all callers
10176         changed.  Initialize OBJECT_SUBWORD.
10177         (ira_create_allocno): Clear ALLOCNO_NUM_OBJECTS.
10178         (ira_create_allocno_objects): Renamed from ira_create_allocno_object;
10179         all callers changed.
10180         (merge_hard_reg_conflicts): Iterate over allocno subobjects.
10181         (finish_allocno): Likewise.
10182         (move_allocno_live_ranges, copy_allocno_live_ranges): Likewise.
10183         (remove_low_level_allocnos): Likewise.
10184         (update_bad_spill_attribute): Likewise.
10185         (setup_min_max_allocno_live_range_point): Likewise.
10186         (sort_conflict_id_map): Likewise.
10187         (ira_flattening): Likewise.  Use ior_hard_reg_conflicts.
10188         (ior_hard_reg_conflicts): New function.
10189         (ior_allocate_object_conflicts): Renamed first argument to OBJ.
10190         (compress_conflict_vecs): Iterate over objects, not allocnos.
10191         (ira_add_live_range_to_object): New function.
10192         (object_range_compare_func): Renamed from allocno_range_compare_func.
10193         All callers changed.
10194         (setup_min_max_conflict_allocno_ids): For allocnos with multiple
10195         subobjects, widen the min/max range of the lowest-order object to
10196         potentially include all other such low-order objects.
10197         * ira.c (ira_bad_reload_regno_1): Iterate over allocno subobjects.
10198         (check_allocation): Likewise.  Use more fine-grained tests for register
10199         conflicts.
10200         * ira-color.c (allocnos_have_intersected_live_ranges_p): Iterate over
10201         allocno subobjects.
10202         (assign_hard_reg): Keep multiple sets of conflicts.  Make finer-grained
10203         choices about which bits to set in each set.  Don't use
10204         ira_hard_reg_not_in_set_p, perform a more elaborate test for conflicts
10205         using the multiple sets we computed.
10206         (push_allocno_to_stack): Iterate over allocno subobjects.
10207         (all_conflicting_hard_regs_coalesced): New static function.
10208         (setup_allocno_available_regs_num): Use it.
10209         (setup_allocno_left_conflicts_size): Likewise.  Iterate over allocno
10210         subobjects.
10211         (coalesced_allocno_conflict): Test subobject 0 in each allocno.
10212         (setup_allocno_priorities): Divide ALLOCNO_EXCESS_PRESSURE_POINTS_NUM
10213         by ALLOCNO_NUM_OBJECTS.
10214         (calculate_spill_cost): Likewise.
10215         (color_pass): Express if statement in a more normal way.
10216         (ira_reassign_conflict_allocnos): Iterate over allocno subobjects.
10217         (slot_coalesced_allocno_live_ranges_intersect_p): Likewise.
10218         (setup_slot_coalesced_allocno_live_ranges): Likewise.
10219         (allocno_reload_assign): Likewise.
10220         (ira_reassign_pseudos): Likewise.
10221         (fast_allocation): Likewise.
10222         * ira-conflicts.c (build_conflict_bit_table): Likewise.
10223         (print_allocno_conflicts): Likewise.
10224         (ira_build_conflicts): Likewise.
10225         (allocnos_conflict_for_copy_p): Renamed from allocnos_conflict_p.  All
10226         callers changed.  Test subword 0 of each allocno for conflicts.
10227         (build_object_conflicts): Renamed from build_allocno_conflicts.  All
10228         callers changed.  Iterate over allocno subobjects.
10229         * ira-emit.c (modify_move_list): Iterate over allocno subobjects.
10230         * ira-int.h (struct ira_allocno): New member: num_objects.
10231         Rename object to objects and change it into an array.
10232         (ALLOCNO_OBJECT): Add new argument N.
10233         (ALLOCNO_NUM_OBJECTS, OBJECT_SUBWORD): New macros.
10234         (ira_create_allocno_objects): Renamed from ira_create_allocno_object.
10235         (ior_hard_reg_conflicts): Declare.
10236         (ira_add_live_range_to_object): Declare.
10237         (ira_allocno_object_iterator): New.
10238         (ira_allocno_object_iter_init, ira_allocno_object_iter_cond): New.
10239         (FOR_EACH_ALLOCNO_OBJECT): New macro.
10240         * ira-lives.c (objects_live): Renamed from allocnos_live; all
10241         uses changed.
10242         (allocnos_processed): New sparseset.
10243         (make_object_born): Renamed from make_allocno_born; take an
10244         ira_object_t argument.  All callers changed.
10245         (make_object_dead): Renamed from make_allocno_dead; take an
10246         ira_object_t argument.  All callers changed.
10247         (update_allocno_pressure_excess_length): Take an ira_obejct_t argument.
10248         All callers changed.
10249         (mark_pseudo_regno_live): Iterate over allocno subobjects.
10250         (mark_pseudo_regno_dead): Likewise.
10251         (mark_pseudo_regno_subword_live, mark_pseudo_regno_subword_dead): New
10252         functions.
10253         (mark_ref_live): Detect subword accesses and call
10254         mark_pseudo_regno_subword_live as appropriate.
10255         (mark_ref_dead): Likewise for mark_pseudo_regno_subword_dead.
10256         (process_bb_nodes_live): Deal with object-related updates first; set
10257         and test bits in allocnos_processed to avoid computing allocno
10258         statistics more than once.
10259         (create_start_finish_chains): Iterate over objects, not allocnos.
10260         (print_object_live_ranges): New function.
10261         (print_allocno_live_ranges): Use it.
10262         (ira_create_allocno_live_ranges): Allocate and free allocnos_processed
10263         and objects_live.
10264
10265 2010-07-22  Richard Guenther  <rguenther@suse.de>
10266
10267         PR lto/42451
10268         * gimple.c (gtc_next_dfs_num): New global.
10269         (struct sccs): Make value a union, add integer same_p member.
10270         (gtc_visit): New function.
10271         (gimple_types_compatible_p_1): New function, split out from ...
10272         (gimple_types_compatible_p): ... here.  Start a DFS walk here.
10273         (iterative_hash_gimple_type): Adjust for sccs change.
10274
10275 2010-07-22  Martin Jambor  <mjambor@suse.cz>
10276
10277         PR tree-optimization/44891
10278         * tree-sra.c: Include gimple-pretty-print.h.
10279         (replace_uses_with_default_def_ssa_name): Renamed to
10280         get_repl_default_def_ssa_name, return the new SSA name instead of
10281         replacing the old one.
10282         (sra_modify_assign): Dump a message when removing a load, if the LHS
10283         is an SSA_NAME, do not do any propagation, just set the RHS to a
10284         default definition SSA NAME, type convert if necessary.
10285         * Makefile.in (tree-sra.o): Add gimple-pretty-print.h to dependencies.
10286
10287 2010-07-22  Richard Guenther  <rguenther@suse.de>
10288
10289         PR tree-optimization/45017
10290         * tree-ssa-sccvn.c (vn_reference_eq): Make sure we honor
10291         TYPE_PRECISION of integral types in addition to size.
10292
10293 2010-07-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
10294
10295         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Default to GLIBC
10296         when no C library is specified.
10297
10298 2010-07-22  Martin Jambor  <mjambor@suse.cz>
10299
10300         * ipa-prop.h (struct ipa_node_params): Updated comment.
10301         (struct ipa_edge_args): Likewise.
10302         * Makefile.in (ipa-prop.o): Remove bogus $(GIMPLE_FOLD_H) dependency.
10303
10304 2010-07-22  Martin Jambor  <mjambor@suse.cz>
10305
10306         * cgraphunit.c (verify_edge_count_and_frequency): New function.
10307         (verify_cgraph_node): Verify frequencies of indirect edges.
10308         * tree-inline.c (tree_function_versioning): Update frequencies of
10309         indirect edges.
10310
10311 2010-07-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10312
10313         PR target/43698
10314         * config/arm/arm.md: Split arm_rev into *arm_rev and *thumb1_rev.
10315         Set *arm_rev to be predicable.
10316
10317 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
10318
10319         * config/darwin.h (LINK_COMMAND_SPEC): Split into...
10320         (LINK_COMMAND_SPEC_A): New.
10321         (DSYMUTIL): New.
10322         (DSYMUTIL_SPEC): New.
10323         * config/darwin9.h (LINK_COMMAND_SPEC): Remove.
10324         (DSYMUTIL_SPEC): Update for darwin >= 9 requirements.
10325
10326 2010-07-22  Iain Sandoe  <iains@gcc.gnu.org>
10327
10328         * calls.c (load_register_parameters): Move check for zero
10329         sized items so that only the call to
10330         mem_overlaps_already_clobbered_arg_p () is protected.
10331
10332 2010-07-22  Jan Hubicka  <jh@suse.cz>
10333
10334         * ipa-pure-const.c (varying_state): Break out from ...
10335         (get_function_state): ... here; always return varying_state
10336         when state would be NULL otherwise.
10337         (remove_node_data): Do not free varying state.
10338
10339 2010-07-22  Bernd Schmidt  <bernds@codesourcery.com>
10340
10341         PR bootstrap/44970
10342         PR middle-end/45009
10343         * postreload.c: Include "target.h".
10344         (reload_combine_closest_single_use): Don't take DEBUG_INSNs
10345         into account.
10346         (fixup_debug_insns): Don't copy the rtx.
10347         (reload_combine_recognize_const_pattern): DEBUG_INSNs can't have uses.
10348         Don't copy when replacing.  Call fixup_debug_insns in the case where
10349         we merged one add with another.
10350         (reload_combine_recognize_pattern): Fail if there aren't any uses.
10351         Try harder to determine whether we're picking a valid index register.
10352         Don't set store_ruid for an insn we're going to scan in the
10353         next iteration.
10354         (reload_combine): Remove unused code.
10355         (reload_combine_note_use): When updating use information for
10356         an old insn, ignore a use that occurs after store_ruid.
10357         * Makefile.in (postreload.o): Update dependencies.
10358
10359         * function.c (record_hard_reg_sets): Restrict the previous change
10360         to cases where the incoming nominal mode is the same as the
10361         incoming promoted mode and everything happens in MODE_INT.
10362
10363 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
10364
10365         PR debug/45015
10366         * var-tracking.c (adjust_mems): Ignore ASM_OPERANDS with non-zero
10367         ASM_OPERANDS_OUTPUT_IDX.
10368         (adjust_insn): For inline asm with multiple sets ensure first
10369         ASM_OPERANDS vectors are used by all following ASM_OPERANDS in
10370         the insn.
10371
10372 2010-07-21  Richard Henderson  <rth@redhat.com>
10373
10374         * config/i386/i386.c (setup_incoming_varargs_64): Emit a simple
10375         comparison for avoiding xmm register saves.  Emit the xmm register
10376         saves explicitly.
10377         * config/i386/i386.md (UNSPEC_SSE_PROLOGUE_SAVE): Remove.
10378         (UNSPEC_SSE_PROLOGUE_SAVE_LOW): Remove.
10379         (sse_prologue_save, sse_prologue_save_insn1, sse_prologue_save_insn):
10380         Remove patterns and the associated splitters.
10381
10382 2010-07-21  Changpeng Fang  <changpeng.fang@amd.com>
10383
10384         * tree-ssa-loop-prefetch.c (analyze_ref): Strip off the real
10385         and imagine parts of a complex, so that they can have the same
10386         base and fall into the same group.
10387
10388 2010-07-21  Richard Guenther  <rguenther@suse.de>
10389
10390         PR lto/45018
10391         * tree.c (find_decls_types_r): Do not follow TREE_CHAIN
10392         of TYPE_DECLs.  Do not follow TYPE_NEXT_VARIANT,
10393         TYPE_NEXT_PTR_TO, nor TYPE_NEXT_REF_TO or TYPE_CANONICAL.
10394
10395 2010-07-21  Martin Jambor  <mjambor@suse.cz>
10396
10397         PR tree-optimization/44900
10398         * tree-sra.c (load_assign_lhs_subreplacements): Updated comments.
10399         (sra_modify_assign): Move gsi to the next statmenent unconditionally.
10400
10401 2010-07-21  Bernd Schmidt  <bernds@codesourcery.com>
10402
10403         PR middle-end/44738
10404         * tree-ssa.c (warn_uninit): Avoid emitting an unnecessary message.
10405
10406 2010-07-21  Richard Guenther  <rguenther@suse.de>
10407
10408         PR middle-end/45013
10409         * tree-ssa.c (useless_type_conversion_p): Dispatch to
10410         gimple_types_compatible_p only when in lto.
10411         * gimple.c (gimple_types_compatible_p): Use canonical types
10412         to speed up comparison.
10413
10414 2010-07-21  Richard Guenther  <rguenther@suse.de>
10415
10416         * tree-flow.h (referenced_var): Move define ...
10417         * tree-flow-inline.h (referenced_var): ... here as an inline
10418         function.  Assert here ...
10419         * tree-dfa.c (referenced_var_lookup): ... instead of here.
10420         * tree-ssa.c (maybe_optimize_var): Check if the variable
10421         is in referenced vars.
10422         (execute_update_addresses_taken): Remove old broken check.
10423         * gimple-pretty-print.c (pp_points_to_solution): Use
10424         referenced_var_lookup.
10425         * tree-into-ssa.c (dump_decl_set): Likewise.
10426
10427 2010-07-21  Jakub Jelinek  <jakub@redhat.com>
10428
10429         PR debug/45003
10430         * var-tracking.c (reverse_op): Also handle {SIGN,ZERO}_EXTEND of a MEM.
10431         * dwarf2out.c (loc_descriptor): Don't handle SIGN_EXTEND nor
10432         ZERO_EXTEND here.
10433
10434 2010-07-20  Richard Henderson  <rth@redhat.com>
10435
10436         * vxworks.c (vxworks_emutls_var_fields): Pass locus to build_decls.
10437
10438 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
10439
10440         * config/arm/arm.md (thumb1_addsi3): Add alternative and split for
10441         computing the sum of the stack pointer and a large constant.
10442         * config/arm/constraints.md (M): Remove superfluous parentheses.
10443         (Pc): New constraint.
10444
10445 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
10446
10447         PR debug/45006
10448         * cfgexpand.c (expand_debug_expr): Only look at TYPE_UNSIGNED of
10449         operand's type if exp is tcc_unary class tree.
10450
10451 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
10452
10453         * config/rs6000/rs6000.md (abs<mode>2_isel, nabs<mode>2_isel):
10454         Reverse sense of if_then_else condition.
10455
10456 2010-07-20  Nathan Froyd  <froydnj@codesourcery.com>
10457
10458         * config/rs6000/rs6000.opt (mblock-move-inline-limit): New option.
10459         * config/rs6000/rs6000.c (rs6000_override_options): Set
10460         rs6000_block_move_inline_limit appropriately.
10461         (expand_block_move): Use rs6000_block_move_inline_limit.
10462         * doc/invoke.texi (mblock-move-inline-limit): Document.
10463
10464 2010-07-20  Bernd Schmidt  <bernds@codesourcery.com>
10465
10466         * postreload.c (fixup_debug_insns): Remove arg REGNO.  New args
10467         FROM and TO.  All callers changed.  Don't look for tracked uses,
10468         just scan the RTL for DEBUG_INSNs and substitute.
10469         (reload_combine_recognize_pattern): Call fixup_debug_insns.
10470         (reload_combine): Ignore DEBUG_INSNs.
10471
10472 2010-07-20  Jakub Jelinek  <jakub@redhat.com>
10473
10474         * var-tracking.c (vt_expand_loc, vt_expand_loc_dummy): Bump maximum
10475         depth to 8 from 5.
10476
10477         PR debug/45003
10478         * cfgexpand.c (expand_debug_expr) <case NOP_EXPR>: Use ZERO_EXTEND
10479         or SIGN_EXTEND depending on TYPE_UNSIGNED of the operand's type
10480         instead of the result's type.
10481
10482 2010-07-20  Richard Guenther  <rguenther@suse.de>
10483
10484         PR tree-optimization/44977
10485         * tree-ssa-dom.c (propagate_rhs_into_lhs): Do not create invalid
10486         SSA form.
10487
10488 2010-07-20  Richard Guenther  <rguenther@suse.de>
10489
10490         * lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p.
10491         (lto_symtab_merge_decls_2): Likewise.
10492         * gimple.h (gimple_types_compatible_p): Declare.
10493         * gimple.c (gimple_queue_type_fixup): Remove.
10494         (gimple_fixup_complete_and_incomplete_subtype_p): Likewise.
10495         (gimple_compatible_complete_and_incomplete_type_p): New function.
10496         (gimple_types_compatible_p): Adjust.
10497         (gimple_register_type): Remove type fixup code.
10498         (print_gimple_types_stats): Adjust.
10499         (free_gimple_type_tables): Likewise.
10500         * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p.
10501         * tree-ssa.c (useless_type_conversion_p): Likewise.
10502
10503 2010-07-20  Richard Guenther  <rguenther@suse.de>
10504
10505         PR middle-end/44971
10506         PR middle-end/44988
10507         * tree-ssa.c (maybe_optimize_var): New function split out from ...
10508         (execute_update_addresses_taken): ... here.
10509         (non_rewritable_mem_ref_base): Likewise.
10510         (execute_update_addresses_taken): Do not iterate over all referenced
10511         vars but just all local decls and parms.
10512         Properly check call and asm arguments and rewrite call arguments.
10513
10514 2010-07-20  Maxim Kuvyrkov  <maxim@codesourcery.com>
10515
10516         * config.gcc (LIBC_GLIBC, LIBC_UCLIBC, LIBC_BIONIC): Move constants
10517         to top level.
10518         * config/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Move Android-specific
10519         definitions ...
10520         * config/linux-android.h (ANDROID_TARGET_OS_CPP_BUILTINS): ... here.
10521         New macro.
10522         * config/arm/linux-eabi.h (TARGET_OS_CPP_BUILTINS): Use it.
10523
10524 2010-07-19  Richard Sandiford  <rdsandiford@googlemail.com>
10525
10526         * gengtype.c (start_root_entry): New function, split out from
10527         write_root.  Check whether V is null and raise an error if so.
10528         (write_field_root): Check for V being null.  Don't raise an error here;
10529         set V to null instead.
10530         (write_root): Update comment above function.  Use start_root_entry.
10531
10532 2010-07-19  Xinliang David Li  <davidxl@google.com>
10533
10534         PR testsuite/44932
10535         * tree-ssa-uninit.c (collect_phi_def_edges): Fix bug collecting
10536         def edges.
10537         (find_uninit_use): Add dump.
10538         (is_use_properly_guarded): Ditto.
10539         (warn_uninitialized_phi): Ditto.
10540         (execute_late_warn_uninitialized): Ditto.
10541
10542 2010-07-19  Richard Guenther  <rguenther@suse.de>
10543
10544         PR middle-end/44941
10545         * expr.c (emit_block_move_hints): Move zero size check first.
10546         Move asserts to more useful places.
10547         * calls.c (load_register_parameters): Check for zero size.
10548
10549 2010-07-19  Richard Henderson  <rth@redhat.com>
10550
10551         * tree-optimize.c (execute_all_early_local_passes): New.  Change
10552         cgraph_state here ...
10553         (execute_early_local_optimizations): ... not here.  Remove.
10554         (pass_early_local_passes, pass_all_early_optimizations): Update.
10555
10556 2010-07-19  Bernd Schmidt  <bernds@codesourcery.com>
10557
10558         * postreload.c (reload_combine_closest_single_use): Ignore the
10559         number of uses for DEBUG_INSNs.
10560         (fixup_debug_insns): New static function.
10561         (reload_combine_recognize_const_pattern): Use it.  Don't let the
10562         main loop be affected by DEBUG_INSNs.
10563         Really disallow moving adds past a jump insn.
10564         (reload_combine_recognize_pattern): Don't update use_ruid here.
10565         (reload_combine_note_use): Do it here.
10566         (reload_combine): Use control_flow_insn_p rather than JUMP_P.
10567
10568 2010-07-19  Bingfeng Mei  <bmei@broadcom.com>
10569
10570         * ddg.c (create_ddg): Exclude nodes of debug_insn in counting nodes
10571         of a loop.
10572         * loop-doloop.c (doloop_condition_get): Skip possible debug_insn.
10573
10574 2010-07-19  Iain Sandoe  <iains@gcc.gnu.org>
10575
10576         * config/i386/darwin.h: Define darwin_emit_branch_islands.
10577         (TARGET_MACHO_BRANCH_ISLANDS): New.
10578         (FUNCTION_PROFILER): Use TARGET_MACHO_BRANCH_ISLANDS.
10579         * config/i386/i386.h (TARGET_MACHO_BRANCH_ISLANDS): Define a
10580         default value.
10581         * config/i386/i386.c (output_pic_addr_const): Do not emit
10582         branch islands unless TARGET_MACHO_BRANCH_ISLANDS is set.
10583         (x86_output_mi_thunk): Adjust symbol creation.
10584         * config/rs6000/darwin.h: Define darwin_emit_branch_islands.
10585         Remove out of date comment.
10586         * config/rs6000/rs6000.c (print_operand): Adjust symbol.
10587         (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
10588         (DARWIN_GENERATE_ISLANDS): Ditto.
10589         (output_call):  Do not emit branch islands unless
10590         darwin_emit_branch_islands is set.
10591         * config/darwin.c: Declare darwin_emit_branch_islands.
10592         (machopic_indirect_data_reference): Do not emit unless
10593         darwin_emit_branch_islands is set.
10594         (darwin_override_options): Set darwin_emit_branch_islands
10595         where it is needed.
10596         * config/darwin9.h (DARWIN_LINKER_GENERATES_ISLANDS): Remove.
10597
10598 2010-07-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10599
10600         * doc/sourcebuild.texi (Effective-Target Keywords): Document
10601         sse_runtime, sse2_runtime.
10602
10603 2010-07-18  Richard Sandiford  <rdsandiford@googlemail.com>
10604
10605         * config/mips/mips.c (mips16_build_call_stub): Zero-extend the
10606         low half of a single-register SCmode return value before ORing
10607         it with the high half.
10608         * config/mips/mips16.S (MERGE_GPRf): Likewise.
10609
10610 2010-07-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10611
10612         PR target/44805
10613         * config/pa/pa.h (CONSTANT_ALIGNMENT): Align strings to BITS_PER_WORD
10614         on all targets.
10615
10616 2010-07-17  Bernd Schmidt  <bernds@codesourcery.com>
10617
10618         PR target/42235
10619         * postreload.c (reload_cse_move2add): Return bool, true if anything.
10620         changed.  All callers changed.
10621         (move2add_use_add2_insn): Likewise.
10622         (move2add_use_add3_insn): Likewise.
10623         (reload_cse_regs): If reload_cse_move2add changed anything, rerun
10624         reload_combine.
10625         (RELOAD_COMBINE_MAX_USES): Bump to 16.
10626         (last_jump_ruid): New static variable.
10627         (struct reg_use): New members CONTAINING_MEM and RUID.
10628         (reg_state): New members ALL_OFFSETS_MATCH and REAL_STORE_RUID.
10629         (reload_combine_split_one_ruid, reload_combine_split_ruids,
10630         reload_combine_purge_insn_uses, reload_combine_closest_single_use
10631         reload_combine_purge_reg_uses_after_ruid,
10632         reload_combine_recognize_const_pattern): New static functions.
10633         (reload_combine_recognize_pattern): Verify that ALL_OFFSETS_MATCH
10634         is true for our reg and that we have available index regs.
10635         (reload_combine_note_use): New args RUID and CONTAINING_MEM.  All
10636         callers changed.  Use them to initialize fields in struct reg_use.
10637         (reload_combine): Initialize last_jump_ruid.  Be careful when to
10638         take PREV_INSN of the scanned insn.  Update REAL_STORE_RUID fields.
10639         Call reload_combine_recognize_const_pattern.
10640         (reload_combine_note_store): Update REAL_STORE_RUID field.
10641
10642 2010-07-16  Jason Merrill  <jason@redhat.com>
10643
10644         * Makefile.in (opts-common.o): Depend on options.h.
10645
10646 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
10647
10648         * tree.c (build_common_builtin_nodes): Use build_function_type_list
10649         instead of build_function_type.
10650         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise.
10651         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
10652
10653 2010-07-16  Nathan Froyd  <froydnj@codesourcery.com>
10654
10655         * config/rs6000/rs6000.c (rs6000_emit_sISEL): Let rs6000_emit_int_cmove
10656         do all the work.
10657         (rs6000_emit_int_cmove): Use function pointers for insn generation.
10658         Don't force values into registers unnecessarily.
10659         (output_isel): Assert that we're not given conditions we can't handle.
10660         Delete corresponding code.
10661         * config/rs6000/rs6000.md (isel_signed_<mode>): Use
10662         scc_comparison_operator constraint.  Permit 0 for the consequent
10663         operand.  Permit any GPR for the alternative operand.
10664         (isel_unsigned_<mode>): Likewise.
10665
10666 2010-07-16  Jakub Jelinek  <jakub@redhat.com>
10667
10668         PR target/44942
10669         * config/i386/i386-protos.h (ix86_function_arg_boundary): Change second
10670         argument to const_tree.
10671         * config/i386/i386.c (function_arg_advance): If padding needs to be
10672         inserted before argument, increment cum->words by number of padding
10673         words as well.
10674         (contains_aligned_value_p): Change argument to const_tree.
10675         (ix86_function_arg_boundary): Change second argument to const_tree.
10676
10677 2010-07-16  Bernd Schmidt  <bernds@codesourcery.com>
10678
10679         PR target/42235
10680         * function.c (record_hard_reg_sets): New static function.
10681         (assign_parm_setup_reg): If an optab for extending exists and the
10682         generated code clobbbers no hard regs, emit the insn directly and
10683         create a REG_EQUIV note.
10684
10685 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
10686
10687         * c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
10688         TREE_CHAIN.
10689         * c-typeck.c (push_init_level): Likewise.
10690         (process_init_element): Likewise.
10691
10692 2010-07-15  Anatoly Sokolov  <aesok@post.ru>
10693
10694         * tree.h (enum tree_index): Add TI_INTEGER_THREE.
10695         (integer_three_node): Add.
10696         * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
10697         NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
10698         * builtins.c (expand_builtin_prefetch): Use common tree nodes instead
10699         of call build_int_cst.
10700         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
10701         * tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
10702         (find_interesting_uses_address): Ditto.
10703         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
10704         * tree-eh.c (lower_eh_constructs_2): Ditto.
10705         * tree-vect-loop.c (get_initial_def_for_induction): Ditto.
10706         * c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
10707         * expmed.c (expand_divmod): Ditto.
10708         * tree-mudflap.c (mx_register_decls): Ditto.
10709         * varasm.c (array_size_for_constructor): Ditto.
10710         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
10711         * c-parser.c (c_parser_postfix_expression): Ditto.
10712
10713 2010-07-15  Bernd Schmidt  <bernds@codesourcery.com>
10714
10715         * postreload.c (last_label_ruid, first_index_reg, last_index_reg):
10716         New static variables.
10717         (reload_combine_recognize_pattern): New static function, broken out
10718         of reload_combine.
10719         (reload_combine): Use it.  Only initialize first_index_reg and
10720         last_index_reg once.
10721
10722 2010-07-15  Richard Henderson  <rth@redhat.com>
10723
10724         * cgraphunit.c (cgraph_build_static_cdtor): Clear current_function_decl
10725         when done.
10726
10727 2010-07-15  Jan Hubicka  <jh@suse.cz>
10728
10729         * lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling
10730         comdats for broken gold.
10731         (lto_sy mtab_merge_decls_1): Set used_from_object_file correctly.
10732
10733 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
10734
10735         * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
10736
10737 2010-07-15  Nathan Froyd  <froydnj@codesourcery.com>
10738
10739         * tree.h (DECL_CHAIN): Define.
10740         * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
10741         * c-decl.c: Likewise.
10742         * c-parser.c: Likewise.
10743         * c-typeck.c: Likewise.
10744         * cfgexpand.c: Likewise.
10745         * cgraph.c: Likewise.
10746         * cgraphunit.c: Likewise.
10747         * combine.c: Likewise.
10748         * config/alpha/alpha.c: Likewise.
10749         * config/arm/arm.c: Likewise.
10750         * config/frv/frv.c: Likewise.
10751         * config/i386/i386.c: Likewise.
10752         * config/i386/winnt-cxx.c: Likewise.
10753         * config/ia64/ia64.c: Likewise.
10754         * config/iq2000/iq2000.c: Likewise.
10755         * config/mep/mep.c: Likewise.
10756         * config/mips/mips.c: Likewise.
10757         * config/pa/som.h: Likewise.
10758         * config/rs6000/rs6000.c: Likewise.
10759         * config/s390/s390.c: Likewise.
10760         * config/sh/sh.c: Likewise.
10761         * config/sh/symbian-cxx.c: Likewise.
10762         * config/sparc/sparc.c: Likewise.
10763         * config/spu/spu.c: Likewise.
10764         * config/stormy16/stormy16.c: Likewise.
10765         * config/vxworks.c: Likewise.
10766         * config/xtensa/xtensa.c: Likewise.
10767         * coverage.c: Likewise.
10768         * dbxout.c: Likewise.
10769         * dwarf2out.c: Likewise.
10770         * emit-rtl.c: Likewise.
10771         * expr.c: Likewise.
10772         * function.c: Likewise.
10773         * gimple-low.c: Likewise.
10774         * gimple-pretty-print.c: Likewise.
10775         * gimplify.c: Likewise.
10776         * integrate.c: Likewise.
10777         * ipa-inline.c: Likewise.
10778         * ipa-prop.c: Likewise.
10779         * ipa-split.c: Likewise.
10780         * ipa-struct-reorg.c: Likewise.
10781         * ipa-type-escape.c: Likewise.
10782         * langhooks.c: Likewise.
10783         * lto-cgraph.c: Likewise.
10784         * omp-low.c: Likewise.
10785         * stor-layout.c: Likewise.
10786         * tree-cfg.c: Likewise.
10787         * tree-complex.c: Likewise.
10788         * tree-dfa.c: Likewise.
10789         * tree-dump.c: Likewise.
10790         * tree-inline.c: Likewise.
10791         * tree-mudflap.c: Likewise.
10792         * tree-nested.c: Likewise.
10793         * tree-object-size.c: Likewise.
10794         * tree-pretty-print.c: Likewise.
10795         * tree-sra.c: Likewise.
10796         * tree-ssa-live.c: Likewise.
10797         * tree-ssa-loop-niter.c: Likewise.
10798         * tree-ssa-math-opts.c: Likewise.
10799         * tree-ssa-reassoc.c: Likewise.
10800         * tree-ssa-sccvn.c: Likewise.
10801         * tree-ssa-structalias.c: Likewise.
10802         * tree-tailcall.c: Likewise.
10803         * tree-vrp.c: Likewise.
10804         * tree.c: Likewise.
10805         * var-tracking.c: Likewise.
10806         * varasm.c: Likewise.
10807
10808 2010-07-15  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10809
10810         PR target/44877
10811         * config/spu/spu.c (spu_expand_builtin_1): Allow references
10812         (as well as pointers) as argument to mask_for_load builtins.
10813
10814 2010-07-15  Richard Guenther  <rguenther@suse.de>
10815
10816         PR tree-optimization/44946
10817         * tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
10818         with accessing only padding properly.
10819
10820 2010-07-15  Jan Hubicka  <jh@suse.cz>
10821
10822         * ipa.c (function_and_variable_visibility): Variables marked as used
10823         should not be localized.
10824
10825 2010-07-15  Jan Hubicka  <jh@suse.cz>
10826
10827         * cgraph.c: Include lto-streamer.h
10828         (change_decl_assembler_name): Work when assembler name hash is at place.
10829         (cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage,
10830         be sure to rename it to avoid name clash.
10831         * ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
10832         Localize hidden symbols only when locally defined.
10833
10834 2010-07-15  Uros Bizjak  <ubizjak@gmail.com>
10835
10836         * config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
10837
10838 2010-07-15  Magnus Granberg  <zorry@gentoo.org>
10839             Kevin F. Quinn  <kevquinn@gentoo.org>
10840
10841         * builtins.c (expand_builtin_init_trampoline): Warn for -Wtrampolines.
10842         * common.opt: Add -Wtrampolines.
10843         * doc/invoke.texi: Add -Wtrampolines.
10844
10845 2010-07-15  Jie Zhang  <jie@codesourcery.com>
10846
10847         * config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
10848         cortex_a8_issue_ls.
10849
10850 2010-07-15  Dave Korn  <dave.korn.cygwin@gmail.com>
10851
10852         * config/i386/cygwin.h (LIBGCJ_SONAME): Update.
10853         * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
10854
10855 2010-07-14  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10856
10857         * config/spu/spu.c (reg_names): Remove prototype.
10858         (call_used_regs): Likewise.
10859
10860 2010-07-14  Dave Korn  <dave.korn.cygwin@gmail.com>
10861
10862         * config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
10863         "unused" with attribute "used".
10864         (__JCR_END__): Likewise.
10865         * config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
10866         "used" attribute.
10867         (__JCR_LIST__): Replace attribute "unused" with attribute "used".
10868
10869 2010-07-14  Richard Guenther  <rguenther@suse.de>
10870
10871         * lto-streamer-in.c (maybe_fixup_handled_component): Remove.
10872         (maybe_fixup_decls): Likewise.
10873         (input_gimple_stmt): Do not fixup anything.
10874         * lto-streamer-out.c (output_gimple_stmt): Make sure all
10875         non-automatic variable uses are wrapped inside a MEM_REF.
10876
10877 2010-07-14  Richard Henderson  <rth@redhat.com>
10878
10879         * passes.c (rest_of_decl_compilation): Do not call assemble_variable
10880         for functions.
10881         * varasm.c (assemble_variable): Remove early exit for functions;
10882         assert that we're given a variable.
10883
10884 2010-07-14  Jie Zhang  <jie@codesourcery.com>
10885
10886         * config/arm/cortex-a8.md (cortex_a8_alu): Don't use
10887         cortex_a8_default when neon_type is not none.
10888
10889 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
10890
10891         * lower-subreg.c (subreg_context): New static bitmap.
10892         (decompose_multiword_subregs): Allocate and free it.
10893         (find_decomposable_subregs): Set a bit in it for a register that
10894         occurs in a subreg that changes mode but not size.
10895         (can_decompose_p): Test it instead of non_decomposable_context.
10896
10897 2010-07-14  Richard Guenther  <rguenther@suse.de>
10898
10899         PR tree-optimization/44824
10900         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
10901         is_gimple_mem_ref_addr.
10902         (tree_ssa_forward_propagate_single_use_vars): Do not propagate
10903         non-decl_address_invariant_p addresses.
10904
10905 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
10906
10907         * reload.c (find_reloads): Revert code to penalize small register
10908         classes that was brought in with the IRA merge.
10909
10910 2010-07-14  Richard Guenther  <rguenther@suse.de>
10911
10912         * tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
10913         as base of ARRAY_REFs.
10914
10915 2010-07-14  Richard Guenther  <rguenther@suse.de>
10916
10917         PR middle-end/44930
10918         * tree-pretty-print.c (do_niy): Do not print a newline.
10919
10920 2010-07-14  Bernd Schmidt  <bernds@codesourcery.com>
10921
10922         * ira-int.h (struct ira_object): New.
10923         (ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P for it.
10924         (struct ira_allocno): Remove members min, max,
10925         conflict_allocno_array, conflict_id, conflict_allocno_array_size,
10926         conflict_allocnos_num and conflict_vec_p.  Add new member object.
10927         (OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
10928         OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
10929         OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
10930         OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
10931         ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
10932         ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
10933         ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
10934         ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
10935         an ira_object_t rather than ira_allocno_t.  All uses changed.
10936         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
10937         contains a vector of ira_object_t; all uses changed.
10938         (ira_objects_num): Declare variable.
10939         (ira_create_allocno_object): Declare function.
10940         (ira_conflict_vector_profitable_p): Adjust prototype.
10941         (ira_allocate_conflict_vec): Renamed from
10942         ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
10943         (ira_allocate_object_conflicts): Renamed from
10944         ira_allocate_allocno_conflicts; first arg now ira_object_t.
10945         (struct ira_object_iterator): New.
10946         (ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
10947         (ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
10948         to conflict_vec_p.  All uses changed.
10949         (ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
10950         Changed to take into account that conflicts are now tracked for
10951         objects.
10952         * ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from CONFLICT_ALLOCNO_P.
10953         Args changed to accept ira_object_t.  All uses changed.
10954         (allocnos_conflict_p): New static function.
10955         (collected_conflict_objects): Renamed from collected_allocno_objects;
10956         now a vector of ira_object_t.  All uses changed.
10957         (build_conflict_bit_table): Changed to take into account that
10958         conflicts are now tracked for objects.
10959         (process_regs_for_copy, propagate_copies, build_allocno_conflicts)
10960         (print_allocno_conflicts, ira_build_conflicts): Likewise.
10961         * ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
10962         setup_allocno_left_conflicts_size, allocno_reload_assign,
10963         fast_allocation): Likewise.
10964         * ira-lives.c (make_hard_regno_born, make_allocno_born)
10965         process_single_reg_class_operands, process_bb_node_lives): Likewise.
10966         * ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
10967         Likewise.
10968         * ira-build.c (ira_objects_num): New variable.
10969         (ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
10970         contains a vector of ira_object_t; all uses changed.
10971         (ira_object_id_map_vec): Corresponding change.
10972         (object_pool): New static variable.
10973         (initiate_allocnos): Initialize it.
10974         (finish_allocnos): Free it.
10975         (ira_create_object, ira_create_allocno_object, create_allocno_objects):
10976         New functions.
10977         (ira_create_allocno): Don't set members that were removed.
10978         (ira_set_allocno_cover_class): Don't change conflict hard regs.
10979         (merge_hard_reg_conflicts): Changed to take into account that
10980         conflicts are now tracked for objects.
10981         (ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
10982         allocate_conflict_bit_vec, ira_allocate_object_conflicts,
10983         compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
10984         setup_min_max_allocno_live_range_point, allocno_range_compare_func,
10985         setup_min_max_conflict_allocno_ids, ):  Likewise.
10986         (add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
10987         to ira_object_t; all callers changed.
10988         (ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
10989         to ira_object_t, all callers changed.
10990         (clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
10991         to ira_object_t, all callers changed.
10992         (conflict_check, curr_conflict_check_tick): Renamed from
10993         allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
10994         changed.
10995         (compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
10996         arg changed to ira_object_t, all callers changed.
10997         (create_cap_allocno): Call ira_create_allocno_object.
10998         (finish_allocno): Free the corresponding object.
10999         (sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
11000         callers changed.  Adjusted for dealing with objects.
11001         (ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
11002         dealing with objects.
11003         * ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.
11004
11005         * ira-int.h (struct live_range): Rename allocno member to object
11006         and change type to ira_object_t.
11007         (struct ira_object): New member live_ranges.
11008         (struct ira_allocno): Remove member live_ranges.
11009         (ALLOCNO_LIVE_RANGES): Remove.
11010         (OBJECT_LIVE_RANGES): New macro.
11011         (ira_create_live_range, ira_copy_live_range_list,
11012         ira_merge_live_range_list, ira_live_ranges_intersect_p,
11013         ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
11014         * ira-build.c (ira_create_object): Initialize live ranges here.
11015         (ira_create_allocno): Not here.
11016         (ira_create_live_range): Rename from ira_create_allocno_live_range, arg
11017         changed to ira_object_t, all callers changed.
11018         (copy_live_range): Rename from copy_allocno_live_range, all callers
11019         changed.
11020         (ira_copy_live_range_list): Rename from
11021         ira_copy_allocno_live_range_list, all callers changed.
11022         (ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
11023         all callers changed.
11024         (ira_live_ranges_intersect_p): Rename from
11025         ira_allocno_live_ranges_intersect_p, all callers changed.
11026         (ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
11027         callers changed.
11028         (ira_finish_live_range_list): Rename from
11029         ira_finish_allocno_live_range_list, all callers changed.
11030         (change_object_in_range_list): Rename from change_allocno_in_range_list,
11031         last arg changed to ira_object_t, all callers changed.
11032         (finish_allocno): Changed to expect live ranges in the allocno's object.
11033         (move_allocno_live_ranges, copy_allocno_live_ranges,
11034         update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
11035         ira_flattening, ira_build): Likewise.
11036         * ira-color.c (allocnos_have_intersected_live_ranges_p,
11037         slot_coalesced_allocno_live_ranges_intersect,
11038         setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
11039         * ira-conflicts.c (build_conflict_bit_table): Likewise.
11040         * ira-emit.c (add_range_and_copies_from_move_list): Likewise.
11041         * ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
11042         make_allocno_dead, create_start_finish_chains,
11043         remove_some_program_points_and_update_live_ranges,
11044         ira_debug_live_range_list): Likewise.
11045
11046         * ira-int.h (ira_object_conflict_iterator): Rename from
11047         ira_allocno_conflict_iterator.
11048         (ira_object_conflict_iter_init): Rename from
11049         ira_allocno_conflict_iter_init, second arg changed to
11050         * ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
11051         FOR_EACH_ALLOCNO_CONFLICT.
11052         * ira-color.c (assign_hard_reg, push_allocno_to_stack)
11053         setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
11054         ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
11055         * ira-conflicts.c (print_allocno_conflicts): Likewise.
11056
11057 2010-07-13  Joern Rennecke  <joern.rennecke@embecosm.com>
11058
11059         PR other/44874
11060         * tree-dump.c (dump_options): Add enumerate_locals entry.
11061         Add TDF_NOID exclusion to all entry.
11062         * tree-dump.h (dump_enumerated_decls): Declare.
11063         * tree-pretty-print.c (dump_generic_node): For TDF_NOID,
11064         Don't display type uid.
11065         (print_declaration): Don't crash on TREE_TYPE (t) == 0.
11066         * tree-pass.h (TDF_ENUMERATE_LOCALS): Define.
11067         * tree-ssa-live.c: Include gimple.h.
11068         (numbered_tree_d): New struct.
11069         (numbered_tree): New typedef.
11070         (DEF_VEC_O (numbered_tree): New.
11071         (DEF_VEC_ALLOC_O (numbered_tree, heap)): Likewise.
11072         (compare_decls_by_uid, dump_enumerated_decls_push): New functions.
11073         (dump_enumerated_decls): Likewise.
11074         * tree-optimize.c (execute_cleanup_cfg_post_optimizing): If comparing
11075         debug info and flag_dump_final_insns, call dump_enumerated_decls.
11076         * tree-cfg.c (dump_function_to_file): Call dump_enumerated_decls.
11077         * Makefile.in (tree-ssa-live.o): Depend on $(GIMPLE_H).
11078
11079 2010-07-13  Richard Sandiford  <rdsandiford@googlemail.com>
11080
11081         * expmed.h (MAX_BITS_PER_WORD): Move to...
11082         * defaults.h (MAX_BITS_PER_WORD): ...here.
11083
11084 2010-07-13  DJ Delorie  <dj@redhat.com>
11085
11086         * config/h8300/h8300.c (h8300_init_once): Default to
11087         -fstrict_volatile_bitfields.
11088
11089         * config/sh/sh.c (sh_override_options): Default to
11090         -fstrict_volatile_bitfields.
11091
11092         * config/rx/rx.c (rx_option_override): New.
11093
11094         * config/m32c/m32c.c (m32c_override_options): Default to
11095         -fstrict_volatile_bitfields.
11096
11097 2010-07-13  Nathan Froyd  <froydnj@codesourcery.com>
11098
11099         * tree.h (build_function_call_expr): Delete.
11100         (build_call_expr_loc_array): New function.
11101         (build_call_expr_loc_vec): New function.
11102         * tree-flow.h (struct omp_region): Change type of ws_args field
11103         to a VEC.
11104         * builtins.c (build_function_call_expr): Delete.
11105         (build_call_expr_loc_array): New function.
11106         (build_call_expr_loc): Call it.  Use XALLOCAVEC.
11107         (build_call_expr): Likewise.
11108         (build_call_expr_loc_vec): New function.
11109         * cgraphunit.c (build_cdtor): Call build_call_expr instead of
11110         build_function_call_expr.
11111         * expr.c (emutls_var_address): Likewise.
11112         * varasm.c (emutls_common_1): Likewise.
11113         * omp-low.c (expand_omp_atomic_mutex): Likewise.
11114         (expand_omp_taskreg): Adjust for new type of region->ws_args.
11115         (get_ws_args_for): Return a VEC instead of a tree.
11116         (expand_parallel_call): Call build_call_expr_loc_vec instead of
11117         build_function_call_expr.
11118         * stor-layout.c (self_referential_size): Likewise.
11119
11120 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
11121
11122         PR testsuite/44701
11123         * recog.c (constrain_operands): Allow side-effects in memory
11124         operands if either < or > constraint is used, rather than if
11125         both < and > is used.
11126
11127 2010-07-13  Richard Guenther  <rguenther@suse.de>
11128
11129         PR middle-end/44911
11130         * tree-pretty-print.c (dump_generic_node): Use TDF_SLIM for
11131         MEM_REF pointer type dumping.  Avoid recursing for TYPE_DECLs
11132         without name.
11133
11134 2010-07-13  Kaz Kojima  <kkojima@gcc.gnu.org>
11135
11136         PR target/44761
11137         * mode-switching.c (optimize_mode_switching): Add ATTRIBUTE_UNUSED
11138         to variable emited.
11139         * config/sh/sh.c (sh_expand_epilogue): Remove unused variable.
11140         * config/sh/sh.md (symGOT_load): Likewise.
11141         (symDTPOFF2reg): Likewise.
11142         (symTPOFF2reg): Likewise.
11143
11144 2010-07-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11145
11146         * expmed.c (MAX_BITS_PER_WORD): Moved to expmed.h.
11147         * expmed.h (MAX_BITS_PER_WORD): Moved from expmed.c.
11148
11149 2010-07-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11150
11151         * config/i386/sol2-unwind.h (x86_64_fallback_frame_state): Correct
11152         explanation.
11153         Find ucontext_t * on Solaris 11.
11154         (x86_fallback_frame_state): Handle Solaris 9 multi-threaded pattern.
11155         Handle new Solaris 11 __sighndlr patterns.
11156
11157 2010-07-13  Jakub Jelinek  <jakub@redhat.com>
11158
11159         PR debug/44901
11160         * vec.h (VEC_block_remove): Fix comment.
11161         * tree-ssa-live.c (remove_unused_locals): Don't use
11162         VEC_unordered_remove on local_decls, instead replace a single
11163         vector element in each iteration if at least one element had
11164         to be removed and VEC_truncate at the end.
11165         * omp-low.c (expand_omp_taskreg): Likewise.
11166
11167 2010-07-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11168
11169         * c-decl.c (finish_function): Fix typo in comment.
11170
11171 2010-07-12  H.J. Lu  <hongjiu.lu@intel.com>
11172
11173         PR bootstrap/44921
11174         * postreload.c (move2add_use_add3_insn): Silence gcc warning
11175         on min_regno.
11176
11177 2010-07-12  Jakub Jelinek  <jakub@redhat.com>
11178
11179         * tree-vrp.c (simplify_bit_ops_using_ranges): New function.
11180         (simplify_stmt_using_ranges): Use it.
11181
11182 2010-07-12  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
11183
11184         * config/spu/spu.h (struct spu_builtin_description): Remove FNDECL
11185         member.  Do not mark as GTY(()).
11186         * config/spu/spu.c (spu_builtins): Remove FNDECL initializer elements.
11187         (spu_builtin_decls): New static variable.
11188         (spu_builtin_decl): Use it instead of spu_builtins[].fndecl.
11189         (spu_init_builtins): Likewise.
11190         (spu_builtin_mul_widen_even): Likewise.
11191         (spu_builtin_mul_widen_odd): Likewise.
11192         (spu_builtin_mask_for_load): Likewise.
11193         (spu_builtin_vec_perm): Likewise.
11194         * config/spu/spu-c.c: Include "target.h".
11195         (spu_resolve_overloaded_builtin): Call targetm.builtin_decl instead
11196         of using spu_builtins[].fndecl.
11197
11198 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11199
11200         * config/mips/mips.c (mips_override_options): Make -mflip-mips16
11201         imply -minterlink-mips16.
11202
11203 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11204
11205         * config/mips/mips.h (mips16_globals): Declare.
11206         (SWITCHABLE_TARGET): Define.
11207         * config/mips/mips.c: Include target-globals.h.
11208         (mips16_globals): New variable.
11209         (mips_set_mips16_mode): Use save_target_globals and
11210         restore_target_globals instead of target_reinit.
11211
11212 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11213
11214         * reginfo.c (init_reg_sets): Don't zero globals here.  Update comment
11215         to say that the function can be called more than once.
11216         * target-globals.c (save_target_globals): Call init_reg_sets.
11217
11218 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11219
11220         * Makefile.in (bb-reorder.o, target-globals.o): Depend on bb-reorder.h
11221         * bb-reorder.h: New file.
11222         * bb-reorder.c (default_target_bb_reorder): New variable.
11223         (this_target_bb_reorder): New conditional variable.
11224         (uncond_jump_length): Redefine as a macro.
11225         * target-globals.h (this_target_bb_reorder): Declare.
11226         (target_globals): Add a bb_reorder field.
11227         (restore_target_globals): Copy the bb_reorder field to
11228         this_target_bb-reorder.
11229         * target-globals.c: Include bb-reorder.h.
11230         (default_target_globals): Initialize the bb_reorder field.
11231         (save_target_globals): Likewise.
11232
11233 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11234
11235         * Makefile.in (gcse.o, target-globals.o): Depend on gcse.h..
11236         * gcse.h: New file.
11237         * gcse.c: Include gcse.h.
11238         (default_target_gcse): New variable.
11239         (this_target_gcse): New conditional variable.
11240         (can_copy): Redefine as a macro.
11241         (can_copy_init_p): New macro.
11242         (can_copy_p): Remove can_copy_init_p.
11243         * target-globals.h (this_target_gcse): Declare.
11244         (target_globals): Add a gcse field.
11245         (restore_target_globals): Copy the gcse field to this_target_gcse.
11246         * target-globals.c: Include gcse.h.
11247         (default_target_globals): Initialize the gcse field.
11248         (save_target_globals): Likewise.
11249
11250 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11251
11252         * ira-int.h (target_ira_int): Add x_ira_prohibited_mode_move_regs
11253         and x_ira_prohibited_mode_move_regs_initialized_p.
11254         (ira_prohibited_mode_move_regs): Redefine as a macro.
11255         * ira.c (ira_prohibited_mode_move_regs): Delete.
11256         (ira_prohibited_mode_move_regs_initialized_p): Redefine as a macro.
11257
11258 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11259
11260         * reload.h (target_reload): Add x_cached_reg_save_code and
11261         x_cached_reg_restore_code.
11262         * caller-save.c (cached_reg_save_code, cached_reg_restore_code):
11263         Redefine as macros.
11264
11265 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11266
11267         * Makefile.in (target-globals.o): Depend on builtins.h.
11268         * builtins.h: New file.
11269         * builtins.c: Include builtins.h.
11270         (default_target_builtins): New variable.
11271         (this_target_builtins): New conditional variable.
11272         (apply_args_mode, apply_result_mode): Redefine as macros.
11273         * target-globals.h (this_target_builtins): Declare.
11274         (target_globals): Add a builtins field.
11275         (restore_target_globals): Copy the builtins field to
11276         this_target_builtins.
11277         * target-globals.c: Include builtins.h.
11278         (default_target_globals): Initialize the builtins field.
11279         (save_target_globals): Likewise.
11280
11281 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11282
11283         * expmed.h (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST)
11284         (algorithm, alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved
11285         from expmed.c.
11286         (target_expmed): Add x_alg_hash and x_alg_hash_used_p.
11287         (alg_hash, alg_hash_used_p): New macros.
11288         * expmed.c (init_expmed): Clear alg_hash if reinitializing.
11289         (alg_code, mult_cost, MULT_COST_LESS, CHEAPER_MULT_COST, algorithm)
11290         (alg_hash_entry, NUM_ALG_HASH_ENTRIES, alg_hash): Moved to expmed.h.
11291
11292 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11293
11294         * ira-int.h (target_ira_int): Add x_max_struct_costs_size, x_init_cost,
11295         x_temp_costs, x_op_costs, x_this_op_costs and x_cost_classes.
11296         * ira-costs.c (max_struct_costs_size, init_cost, temp_costs, op_costs)
11297         (this_op_costs, costs_classes): Redefine as macros.
11298         (record_reg_classes): Don't take op_costs as a parameter.
11299         (record_operand_costs): Likewise.  Update calls to record_reg_classes.
11300         (scan_one_insn): Update call to record_operand_costs.
11301
11302 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11303
11304         * Makefile.in (target-globals.o): Depend on $(IRA_INT_H).
11305         * ira-int.h (ira_max_nregs, ira_important_class_nums): Delete.
11306         (target_ira_int): New structure.
11307         (default_target_ira_int): Declare.
11308         (this_target_ira_int): Declare as a variable or define as a macro.
11309         (ira_reg_mode_hard_regset, ira_register_move_cost)
11310         (ira_may_move_in_cost, ira_may_move_out_cost, ira_class_subset_p)
11311         (ira_non_ordered_class_hard_regs, ira_class_hard_reg_index)
11312         (prohibited_class_mode_regs, ira_important_classes_num)
11313         (ira_important_classes, ira_reg_class_intersect)
11314         (ira_reg_classes_intersect_p, ira_reg_class_super_classes)
11315         (ira_reg_class_union): Redefine as macros.
11316         * ira.h (target_ira): New structure.
11317         (default_target_ira): Declare.
11318         (this_target_ira): Declare as a variable or define as a macro.
11319         (ira_available_class_regs, ira_hard_regno_cover_class)
11320         (ira_reg_class_cover_size, ira_reg_class_cover, ira_class_translate)
11321         (ira_reg_class_nregs, ira_memory_move_cost, ira_class_hard_regs)
11322         (ira_class_hard_regs_num): Redefine as macros.
11323         * ira.c (default_target_ira, default_target_ira_int): New variables.
11324         (this_target_ira, this_target_ira_int): New conditional variables.
11325         (ira_reg_mode_hard_regset, ira_memory_move_cost)
11326         (ira_register_move_cost, ira_may_move_in_cost, ira_may_move_out_cost)
11327         (ira_class_subset_p): Delete.
11328         (no_unit_alloc_regs): Redefine as a macro.
11329         (ira_class_hard_regs, ira_non_ordered_class_hard_regs)
11330         (ira_class_hard_regs_num, ira_class_hard_reg_index)
11331         (ira_available_class_regs): Delete.
11332         (alloc_reg_class_subclasses): Redefine as a macro.
11333         (ira_reg_class_cover_size, ira_reg_class_cover)
11334         (ira_important_classes_num, ira_important_classes)
11335         (ira_important_class_nums, ira_class_translate): Delete.
11336         (cover_class_order): Document the variable's lifetime.
11337         (reorder_important_classes): Don't set ira_important_class_nums.
11338         (ira_reg_class_intersect, ira_reg_classes_intersect_p)
11339         (ira_reg_class_super_classes, ira_reg_class_union)
11340         (ira_hard_regno_cover_class, ira_reg_class_nregs, ira_max_nregs):
11341         Delete.
11342         (setup_reg_class_nregs): Don't set ira_max_regs.
11343         (prohibited_class_mode_regs): Delete.
11344         * target-globals.h (this_target_ira, this_target_ira_int): Declare.
11345         (target_globals): Add ira and ira_int fields.
11346         (restore_target_globals): Copy the ira field to this_target_ira
11347         and the ira_int field to this_target_ira_int.
11348         * target-globals.c: Include ira-int.h.
11349         (default_target_globals): Initialize the ira and ira_int fields.
11350         (save_target_globals): Likewise.
11351
11352 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11353
11354         * Makefile.in (target-globals.o): Depend on $(CFGLOOP_H).
11355         * cfgloop.h (target_cfgloop): New structure.
11356         (default_target_cfgloop): Declare.
11357         (this_target_cfgloop): Declare as a variable or define as a macro.
11358         (target_avail_regs, target_clobbered_regs, target_res_regs)
11359         (target_reg_cost, target_spill_cost): Redefine as macros.
11360         * cfgloopanal.c (default_target_cfgloop): New variable.
11361         (this_target_cfgloop): New conditional variable.
11362         (target_avail_regs, target_clobbered_regs, target_res_regs)
11363         (target_reg_cost, target_spill_cost): Delete.
11364         * target-globals.h (this_target_cfgloop): Declare.
11365         (target_globals): Add a cfgloop field.
11366         (restore_target_globals): Copy the cfgloop field to
11367         this_target_cfgloop.
11368         * target-globals.c: Include cfgloop.h.
11369         (default_target_globals): Initialize the cfgloop field.
11370         (save_target_globals): Likewise.
11371
11372 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11373
11374         * regs.h (target_regs): Add x_direct_load, x_direct_store and
11375         x_float_extend_from_mem.
11376         (direct_load, direct_store, float_extend_from_mem): New macros.
11377         * expr.c (direct_load, direct_store, float_extend_from_mem): Delete.
11378
11379 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11380
11381         * Makefile.in (LIBFUNCS_H): Add $(HASHTAB_H).
11382         (target-globals.o): Depend on $(LIBFUNCS_H).
11383         * libfuncs.h: Include hashtab.h.
11384         (libfunc_entry): Moved from optabs.c.
11385         (target_libfuncs): New structure.
11386         (default_target_libfuncs): Declare.
11387         (this_target_libfuncs): Declare as a variable or define as a macro.
11388         (libfunc_table): Redefine as a macro.
11389         * optabs.c (default_target_libfuncs): New variable.
11390         (this_target_libfuncs): New conditional variable.
11391         (libfunc_table): Delete.
11392         (libfunc_entry): Moved to optabs.h.
11393         (libfunc_hash): Redefine as a macro.
11394         (hash_libfunc, eq_libfunc): Fix comments.
11395         (init_optabs): Use libfunc_hash to detect cases where the function
11396         has already been called.  Clear the hash table instead of
11397         recreating it.
11398         * target-globals.h (this_target_libfuncs): Declare.
11399         (target_globals): Add a libfuncs field.
11400         (restore_target_globals): Copy the libfuncs field to
11401         this_target_libfuncs.
11402         * target-globals.c: Include libfuncs.h.
11403         (default_target_globals): Initialize the libfuncs field.
11404         (save_target_globals): Likewise.
11405
11406 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11407
11408         * Makefile.in (LIBFUNCS_H): New variable.  Use instead of libfuncs.h
11409         in all dependency lists.
11410
11411 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11412
11413         * Makefile.in (target-globals.o): Depend on $(EXPR_H) and $(OPTABS_H).
11414         * optabs.h (target_optabs): New structure.
11415         (default_target_optabs): Declare.
11416         (this_target_optabs): Declare as a variable or define as a macro.
11417         (optab_table, convert_optab_table, direct_optab_table): Redefine
11418         as macros.
11419         * optabs.c (default_target_optabs): New variable.
11420         (this_target_optabs): New conditional variable.
11421         (optab_table, convert_optab_table, direct_optab_table): Delete.
11422         * target-globals.h (this_target_optabs): Declare.
11423         (target_globals): Add a optabs field.
11424         (restore_target_globals): Copy the optabs field to
11425         this_target_optabs.
11426         * target-globals.c: Include expr.h and optabs.h.
11427         (default_target_globals): Initialize the optabs field.
11428         (save_target_globals): Likewise.
11429
11430 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11431
11432         * flags.h (target_flagstate): Add x_flag_excess_precision.
11433         (flag_excess_precision): Redefine as a macro.
11434         * toplev.c (flag_excess_precision): Delete.
11435
11436 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11437
11438         * defaults.h (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Define if not defined.
11439         * libgcc2.c (MIN_UNITS_PER_WORD): Delete.
11440         * hard-reg-set.h (target_hard_regs): Add x_no_caller_save_reg_set.
11441         (no_caller_save_reg_set): Redefine as a macro.
11442         * reload.h (target_reload): Add x_caller_save_initialized_p and
11443         x_regno_save_mode.
11444         (caller_save_initialized_p): Redefine as a macro.
11445         * caller-save.c (caller_save_initialized_p, no_caller_save_reg_set)
11446         (MAX_MOVE_MAX, MIN_UNITS_PER_WORD): Delete.
11447         (regno_save_mode): Redefine as a macro.
11448
11449 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11450
11451         * Makefile.in (expmed.o, target-globals.o): Depend on expmed.h.
11452         * expmed.h: New file.
11453         * expmed.c (default_target_costs): New variable.
11454         (this_target_costs): New conditional variable.
11455         (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost, neg_cost)
11456         (shift_cost, shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost)
11457         (sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete.
11458         * target-globals.h (this_target_expmed): Declare.
11459         (target_globals): Add a expmed field.
11460         (restore_target_globals): Copy the expmed field to
11461         this_target_expmed.
11462         * target-globals.c: Include expmed.h.
11463         (default_target_globals): Initialize the expmed field.
11464         (save_target_globals): Likewise.
11465
11466 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11467
11468         * Makefile.in (target-globals.o): Depend on reload.h.
11469         * reload.h (target_reload): New structure.
11470         (default_target_reload): Declare.
11471         (this_target_reload): Declare as a variable or define as a macro.
11472         (indirect_symref_ok, double_reg_address_ok): Redefine as macros.
11473         * reload1.c (default_target_reload): New variable
11474         (this_target_reload): New conditional variable.
11475         (indirect_symref_ok, double_reg_address_ok): Delete.
11476         (spill_indirect_levels): Redefine as a macro.
11477         * target-globals.h (this_target_reload): Declare.
11478         (target_globals): Add a reload field.
11479         (restore_target_globals): Copy the reload field to
11480         this_target_reload.
11481         * target-globals.c: Include hard-reg-set.h.
11482         (default_target_globals): Initialize the reload field.
11483         (save_target_globals): Likewise.
11484
11485 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11486
11487         * rtl.h (target_rtl): Add x_static_reg_base_value.
11488         * alias.c (static_reg_base_value): Redefine as a macro.
11489
11490 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11491
11492         * Makefile.in (reginfo.o): Don't depend on $(GGC_H) or gt-reginfo.h.
11493         (GTFILES): Remove reginfo.c.
11494         * rtl.h (target_rtl): Add x_top_of_stack.
11495         (top_of_stack): New macro.
11496         * reginfo.c: Don't include ggc.h or gt-reginfo.h.
11497         (top_of_stack): Delete.
11498
11499 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11500
11501         * regs.h (target_regs): Add x_hard_regs_of_mode,
11502         x_contains_reg_of_mode, x_move_cost, x_may_move_in_cost,
11503         x_may_move_out_cost and x_last_mode_for_init_move_cost.
11504         (have_regs_of_mode, contains_reg_of_mode, move_cost)
11505         (may_move_in_cost, may_move_out_cost): Redefine as macros.
11506         * reginfo.c (have_regs_of_mode, contains_reg_of_mode, move_cost)
11507         (may_move_in_cost, may_move_out_cost): Delete.
11508         (last_mode_for_init_move_cost): Redefine as a macro.
11509
11510 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11511
11512         * hard-reg-set.h (target_hard_regs): New structure.
11513         (default_target_hard_regs): Declare.
11514         (this_target_hard_regs): Declare as a variable or define as a macro.
11515         (fixed_regs, fixed_reg_set, call_used_regs, call_really_used_regs)
11516         (call_used_reg_set, call_fixed_reg_set, regs_invalidated_by_call)
11517         (reg_alloc_order, inv_reg_alloc_order, reg_class_contents)
11518         (reg_class_size, reg_class_subclasses, reg_class_subunion)
11519         (reg_class_superunion, reg_names): Redefine as macros.
11520         * reginfo.c (fixed_regs, fixed_reg_set, call_used_regs)
11521         (call_used_reg_set, call_really_used_regs, call_fixed_reg_set)
11522         (regs_invalidated_by_call, reg_alloc_order, inv_reg_alloc_order)
11523         (reg_class_contents, reg_class_size, reg_class_subclasses)
11524         (reg_class_subunion, reg_class_superunion, reg_names): Delete.
11525         (default_target_hard_regs): New variable
11526         (this_target_hard_regs, initial_call_really_used_regs)
11527         (initial_reg_alloc_order): New conditional variables.
11528         (initial_reg_names): New variable.
11529         (init_reg_sets): Assert that initial_call_really_used_regs,
11530         initial_reg_alloc_order and initial_reg_names
11531         are all the same size as their variable counterparts.  Use them to
11532         initialize those counterparts.
11533         * target-globals.h (this_target_hard_regs): Declare.
11534         (target_globals): Add a hard_regs field.
11535         (restore_target_globals): Copy the hard_regs field to
11536         this_target_hard_regs.
11537         * target-globals.c: Include hard-reg-set.h.
11538         (default_target_globals): Initialize the hard_regs field.
11539         (save_target_globals): Likewise.
11540
11541 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11542
11543         * Makefile.in (target-globals.o): Depend on $(RTL_H).
11544         * rtl.h (target_rtl): New structure.
11545         (default_target_rtl): Declare.
11546         (this_target_rtl): Declare as a variable or define as a macro.
11547         (global_rtl, pic_offset_table_rtx, return_address_pointer_rtx):
11548         Redefine as macros.
11549         * emit-rtl.c (default_target_rtl): New variable.
11550         (this_target_rtl): New conditional variable.
11551         (global_rtl, static_regno_reg_rtx, pic_offset_table_rtx)
11552         (return_address_pointer_rtx): Delete.
11553         (initial_regno_reg_rtx): New macro.
11554         (init_emit): Use initial_regno_reg_rtx instead of static_regno_reg_rtx.
11555         (init_emit_regs): Likewise.
11556         * target-globals.h (this_target_rtl): Declare.
11557         (target_globals): Add a rtl field.
11558         (restore_target_globals): Copy the rtl field to this_target_rtl.
11559         * target-globals.c: Include rtl.h.
11560         (default_target_globals): Initialize the rtl field.
11561         (save_target_globals): Likewise.
11562
11563 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11564
11565         * Makefile.in (target-globals.o): Depend on $(REGS_H).
11566         * regs.h (target_reg_modes): New structure.
11567         (default_target_reg_modes): Declare.
11568         (this_target_reg_modes): Declare as a variable or define as a macro.
11569         (hard_regno_nregs, reg_raw_mode): Redefine as macros.
11570         * reginfo.c (default_target_reg_modes): New variable.
11571         (this_target_reg_modes): New conditional variable.
11572         (hard_regno_nregs, reg_raw_mode): Delete.
11573         * target-globals.h (this_target_regs): Declare.
11574         (target_globals): Add a regs field.
11575         (restore_target_globals): Copy the regs field to this_target_regs.
11576         * target-globals.c: Include regs.h.
11577         (default_target_globals): Initialize the regs field.
11578         (save_target_globals): Likewise.
11579
11580 2010-07-12  Richard Sandiford  <rdsandiford@googlemail.com>
11581
11582         * doc/tm.texi.in (SWITCHABLE_TARGET): Document.
11583         * doc/tm.texi: Regenerate.
11584         * Makefile.in (OBJS-common): Add target-globals.o.
11585         (gtype-desc.o): Depend on $(IPA_PROP_H), $(LTO_STREAMER_H)
11586         and target-globals.h.
11587         (target-globals.o): New rule.
11588         (GTFILES): Include $(srcdir)/target-globals.h.
11589         * defaults.h (SWITCHABLE_TARGET): Define.
11590         * gengtype.c (open_base_files): Add target-globals.h to the
11591         list of includes.
11592         * target-globals.h: New file.
11593         * target-globals.c: Likewise.
11594
11595         * Makefile.in (target-globals.o): Depend on $(FLAGS_H).
11596         * flags.h (target_flag_state): New structure.
11597         (default_target_flag_state): Declare.
11598         (this_target_flag_state): Declare as a variable or define as a macro.
11599         (align_loops_log): Redefine as a macro.
11600         (align_loops_max_skip, align_jumps_log): Likewise.
11601         (align_jumps_max_skip, align_labels_log): Likewise.
11602         (align_labels_max_skip, align_functions_log): Likewise.
11603         * toplev.c (default_target_flag_state): New variable.
11604         (this_target_flag_state): New conditional variable.
11605         (align_loops_log): Delete.
11606         (align_loops_max_skip, align_jumps_log): Likewise.
11607         (align_jumps_max_skip, align_labels_log): Likewise.
11608         (align_labels_max_skip, align_functions_log): Likewise.
11609         * target-globals.h (this_target_flag_state): Declare.
11610         (target_globals): Add a flag_state field.
11611         (restore_target_globals): Copy the flag_state field to
11612         this_target_flag_state.
11613         * target-globals.c: Include flags.h.
11614         (default_target_globals): Initialize the flag_state field.
11615         (save_target_globals): Likewise.
11616
11617 2010-07-12  Jie Zhang  <jie@codesourcery.com>
11618
11619         * postreload.c (reg_symbol_ref[]): New.
11620         (move2add_use_add2_insn): New.
11621         (move2add_use_add3_insn): New.
11622         (reload_cse_move2add): Handle SYMBOL + OFFSET case.
11623         (move2add_note_store): Likewise.
11624
11625 2010-07-12  Joern Rennecke  <joern.rennecke@embecosm.com>
11626
11627         PR rtl-optimization/44752
11628         * genautomata.c (main): Don't emit an empty file even if there
11629         is no automaton.
11630
11631 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11632
11633         * config/i386/i386.c (ix86_sol10_return_in_memory): Rename to
11634         ix86_solaris_return_in_memory.
11635         * config/i386-protos.h: Reflect this.
11636         * config/i386/vx-common.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
11637         * config/i386/sol2-10.h (SUBTARGET_RETURN_IN_MEMORY): Likewise.
11638         Move ...
11639         * config/i386/sol2.h (SUBTARGET_RETURN_IN_MEMORY): ... here.
11640
11641 2010-07-12  Jie Zhang  <jie@codesourcery.com>
11642
11643         * config/arm/arm.c (arm_get_frame_offsets): Don't use r3 to
11644         align the stack when it's going to be saved.
11645
11646 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11647
11648         PR pch/14940
11649         * config/host-solaris.c (mmap_fixed): New function.
11650         (sol_gt_pch_get_address): Use it.
11651         (sol_gt_pch_use_address): Likewise.
11652
11653 2010-07-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11654
11655         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
11656         pentiumpro on Solaris 8 and 9/x86.
11657         * doc/install.texi (Specific, i?86-*-solaris2.[89]): Recommend GNU as.
11658         Document SSE/SSE2 support.
11659         * doc/sourcebuild.texi (Effective-Target Keywords): Document sse.
11660
11661 2010-07-12  Andi Kleen  <ak@linux.intel.com>
11662
11663         * lto-symtab.c (lto_symtab_merge_decls_1): Use fatal_error
11664         instead of gcc_assert to print better error message for multiple
11665         prevailing defs.
11666
11667 2010-07-12  Uros Bizjak  <ubizjak@gmail.com>
11668
11669         * config/i386/i386.c (ix86_asm_output_function_label): Change format
11670         string placeholder from 0x%x to %#x.
11671         (ix86_code_end): Use putc to output '\n'.
11672         (ix86_print_operand) <case ';'>: Use putc to output ';'.
11673
11674 2010-07-11  Kai Tietz  <kai.tietz@onevision.com>
11675
11676         * config/i386/winnt.c (i386_pe_file_end): Quote symbol name
11677         in directive -export.
11678
11679 2010-07-10  Anatoly Sokolov  <aesok@post.ru>
11680
11681         * reginfo.h (reg_classes_intersect_p): Change arguments type to
11682         reg_class_t.
11683         * rtl.h (reg_classes_intersect_p): Adjust prototype.
11684
11685         * config/rs6000/rs6000.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
11686         Remove macros.
11687         * config/rs6000/rs6000-protos.h (rs6000_register_move_cost,
11688         rs6000_memory_move_cost): Remove
11689         * config/rs6000/rs6000.c (TARGET_REGISTER_MOVE_COST,
11690         TARGET_MEMORY_MOVE_COST): Define.
11691         (rs6000_register_move_cost): Make static. Change arguments type from
11692         enum reg_class to reg_class_t. Adjust rs6000_memory_move_cost calls.
11693         (rs6000_memory_move_cost): Make static. Change arguments type from
11694         'enum reg_class' to reg_class_t.
11695
11696 2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
11697
11698         PR middle-end/42505
11699         * tree-inline.c (estimate_num_insns): Refactor builtin complexity
11700         lookup code into....
11701         * builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
11702         new functions.
11703         * tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
11704         * cfgloopanal.c (target_clobbered_regs): Define.
11705         (init_set_costs): Initialize target_clobbered_regs.
11706         (estimate_reg_pressure_cost): Add call_p argument.  When true,
11707         adjust the number of available registers to exclude the
11708         call-clobbered registers.
11709         * cfgloop.h (target_clobbered_regs): Declare.
11710         (estimate_reg_pressure_cost): Adjust declaration.
11711         * tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
11712         (ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
11713         (determine_set_costs): Dump target_clobbered_regs.
11714         (loop_body_includes_call): New function.
11715         (tree_ssa_iv_optimize_loop): Use it to initialize new field.
11716         * loop-invariant.c (gain_for_invariant): Adjust arguments to pass
11717         call_p flag through.
11718         (best_gain_for_invariant): Likewise.
11719         (find_invariants_to_move): Likewise.
11720         (move_single_loop_invariants): Likewise, using already-computed
11721         has_call field.
11722
11723 2010-07-10  Richard Guenther  <rguenther@suse.de>
11724             Joern Rennecke  <joern.rennecke@embecosm.com>
11725
11726         PR debug/44832
11727         * tree-ssa-live.c (mark_all_vars_used_1): Set TREE_USED for LABEL_DECL.
11728         (remove_unused_scope_block_p): Don't drop TREE_USED LABEL_DECLs
11729         unless they have DECL_IGNORED_P set.
11730
11731 2010-07-10  Richard Guenther  <rguenther@suse.de>
11732
11733         PR lto/44889
11734         * gimple.c (gimple_fixup_complete_and_incomplete_subtype_p): New
11735         helper function.
11736         (gimple_types_compatible_p): Similar to pointed-to
11737         types allow and merge a mix of complete and incomplete aggregate.
11738         Use gimple_fixup_complete_and_incomplete_subtype_p for that.
11739         (iterative_hash_gimple_type): Adjust for that.
11740
11741 2010-07-10  Richard Sandiford  <r.sandiford@uk.ibm.com>
11742
11743         * tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
11744
11745 2010-07-10  Iain Sandoe  <iains@gcc.gnu.org>
11746
11747         PR objc/44140
11748         * config/darwin.c (output_objc_section_asm_op): Save and restore
11749         section when outputting ObjC section list.
11750
11751 2010-07-09  Jan Hubicka  <jh@suse.cz>
11752
11753         * lto-streamer-out.c (produce_symtab): Do not write alias
11754         cgraph/varpool nodes.
11755
11756 2010-07-09  Jan Hubicka  <jh@suse.cz>
11757
11758         * tree-inline.c (declare_return_variable): Fix ICE while
11759         inlining DECL_BY_VALUE function not in SSA form
11760
11761 2010-07-09  Changpeng Fang  <changpeng.fang@amd.com>
11762
11763         PR tree-optimization/44576
11764         * tree-ssa-loop-prefetch.c (trip_count_to_ahead_ratio_too_small_p):
11765         New.  Pull out from is_loop_prefetching_profitable to implement
11766         the trip count to ahead ratio heuristic.
11767         (mem_ref_count_reasonable_p): New.  Pull out from
11768         is_loop_prefetching_profitable to implement the instruction to
11769         memory reference ratio heuristic.  Also consider not reasonable if
11770         the memory reference count is above a threshold (to avoid
11771         explosive compilation time.
11772         (insn_to_prefetch_ratio_too_small_p): New.  Pull out from
11773         is_loop_prefetching_profitable to implement the instruction to
11774         prefetch ratio heuristic.
11775         (is_loop_prefetching_profitable): Removed.
11776         (loop_prefetch_arrays): Distribute the cost analysis across the
11777         function to allow early exit of the prefetch analysis.
11778         is_loop_prefetching_profitable is splitted into three functions,
11779         with each one called as early as possible.
11780         (PREFETCH_MAX_MEM_REFS_PER_LOOP): New.  Threshold above which the
11781         number of memory references in a loop is considered too many.
11782
11783 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
11784
11785         * reload.c (find_reloads): Don't clear badop if we have a winreg
11786         alternative, but not win, and the class only has fixed regs.
11787         * hard-reg-set.h (class_only_fixed_regs): Declare.
11788         * reginfo.c (class_only_fixed_regs): New array.
11789         (init_reg_sets_1): Initialize it.
11790         * config/arm/arm.md (arm_addsi3, thumb1_addsi3, arm_subsi3_insn): Don't
11791         discourage alternatives using the stack pointer.
11792
11793         * config/arm/arm.md (addsi3_cbranch): Switch alternatives 0 and 1.
11794
11795         * config/arm/arm.md (Thumb-1 ldrsb peephole): New.
11796
11797         * config/arm/arm.md (cbranchqi4): Fix array size.
11798         (addsi3_cbranch): Also andle alternative 2 like alternative 3 when
11799         calculating length.
11800
11801 2010-07-09  Richard Guenther  <rguenther@suse.de>
11802
11803         * gimple.c (struct type_fixup_s): New struct and VEC type.
11804         (gimple_register_type_fixups): New static global.
11805         (gimple_queue_type_fixup): New function.
11806         (gimple_types_compatible_p): Queue type fixups instead of
11807         applying them here.
11808         (gimple_register_type): Apply queued fixups for the
11809         canonical type.  Empty the type fixup queue.
11810
11811 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
11812
11813         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Fix test.
11814         * configure: Regenerate.
11815         * config.in: Ditto.
11816
11817 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
11818             Denys Vlasenko  <dvlasenk@redhat.com>
11819             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
11820
11821         PR tree-optimization/28632
11822         * tree-vrp.c (zero_nonzero_bits_from_vr): New function.
11823         (extract_range_from_binary_expr): Further optimize
11824         BIT_AND_EXPR and BIT_IOR_EXPR.
11825
11826 2010-07-09  Sebastian Pop  <sebastian.pop@amd.com>
11827
11828         * tree-if-conv.c (fold_or_predicates): New.
11829         (add_to_predicate_list): Call it.
11830
11831 2010-07-09  Richard Guenther  <rguenther@suse.de>
11832
11833         PR middle-end/44890
11834         * tree-ssa-address.c (create_mem_ref_raw): Only build a MEM_REF
11835         if base is a pointer.
11836         * tree-cfg.c (verify_expr): Update MEM_REF checking.
11837
11838 2010-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
11839
11840         PR target/44877
11841         * config/rs6000/rs6000.c (rs6000_expand_builtin): Use
11842         POINTER_TYPE_P instead of checking only for POINTER_TYPE for the
11843         builtin mask for load/store builtins.
11844
11845 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
11846
11847         * configure.ac (gcc_cv_as_ix86_rep_lock_prefix): Also check
11848         for "lock addl".
11849         * configure: Regenerate.
11850         * config/i386/i386.c (ix86_print_operand) <case ';'>:
11851         Remove TARGET_MACHO.
11852
11853 2010-07-09  Peter Bergner  <bergner@vnet.ibm.com>
11854
11855         * config/rs6000/rs6000.c (rs6000_override_options): Fix setting of
11856         default ISA flags.
11857         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mvsx.
11858
11859 2010-07-09  Tom de Vries  <tjvries@xs4all.nl>
11860
11861         * tree.c (type_hash_if_marked_p): Removed non-ggc_marked_p clause.
11862
11863 2010-07-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
11864
11865         * config/picochip/picochip.md (commsTestPort): Emit more
11866         efficient sequence for tstport instruction.
11867
11868 2010-07-09  Uros Bizjak  <ubizjak@gmail.com>
11869
11870         * config/i386/i386.c (ix86_veclib_handler): Make static.
11871
11872 2010-07-09  Richard Guenther  <rguenther@suse.de>
11873
11874         PR tree-optimization/44852
11875         * tree-ssa-alias.c: Include toplev.h for exact_log2.
11876         (indirect_ref_may_alias_decl_p): Properly handle negative offsets
11877         in MEM_REF.
11878         (indirect_refs_may_alias_p): Likewise.
11879         * Makefile.in (tree-ssa-alias.o): Add $(TOPLEV_H).
11880
11881 2010-07-09  Richard Guenther  <rguenther@suse.de>
11882
11883         PR tree-optimization/44882
11884         * tree-vect-stmts.c (vectorizable_store): Do not assert alias
11885         sets do conflict.
11886         (vectorizable_load): Likewise.
11887
11888 2010-07-09  Bernd Schmidt  <bernds@codesourcery.com>
11889
11890         PR target/40657
11891         * config/arm/arm.c (thumb1_extra_regs_pushed): New arg FOR_PROLOGUE.
11892         All callers changed.
11893         Handle the case when we're called for the epilogue.
11894         (thumb_unexpanded_epilogue): Use it.
11895         (thumb1_expand_epilogue): Likewise.
11896
11897 2010-07-09  Jakub Jelinek  <jakub@redhat.com>
11898
11899         * tree-vrp.c (extract_range_from_binary_expr) <BIT_AND_EXPR>: If
11900         both ranges are range_int_cst_p with non-negative minimum,
11901         try harder to derive smaller range.
11902
11903 2010-07-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11904
11905         * genrecog.c: Include diagnostic-core.h before toplev.h.
11906         * genoutput.c: Likewise.
11907         * genextract.c: Likewise.
11908         * genautomata.c: Likewise.
11909         * genemit.c: Likewise.
11910         * genpeep.c: Likewise.
11911         * genattrtab.c: Likewise.
11912         * genconditions.c: Likewise.
11913         * genpreds.c: Likewise.
11914
11915 2010-07-08  Andi Kleen  <ak@linux.intel.com>
11916
11917         * lto-section-in.c (lto_section_name): Add missing comma.
11918
11919 2010-07-08  Anatoly Sokolov  <aesok@post.ru>
11920
11921         * config/ia64/ia64.h (OVERRIDE_OPTIONS): Remove macros.
11922         * config/ia64/ia64-protos.h (ia64_override_options): Remove.
11923         * config/ia64/ia64.c (TARGET_OPTION_OVERRIDE): Define.
11924         (ia64_override_options): Rename to...
11925         (ia64_option_override): ... this one. Make static.
11926
11927 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
11928
11929         PR middle-end/44843
11930         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not rely on the
11931         pointed-to type of the offset in a MEM_REF to compute the alignment.
11932
11933 2010-07-08  Kai Tietz  <kai.tietz@onevision.com>
11934
11935         * final.c (final_scan_insn): Replace
11936         TARGET_UNWIND_INFO macro check by unwind_emit
11937         hook NULL check.
11938         * targhooks.c (default_unwind_emit): Removed.
11939         * targhooks.h (default_unwind_emit): Likewise.
11940         * target.def (unwind_emit): Set default value to NULL.
11941
11942         * config/i386/i386-protos.h (ix86_asm_output_function_label):
11943         New prototype.
11944         * config/i386/i386.c (ix86_function_ms_hook_prologue): Check
11945         for NULL fntype argument and allow 64-bit targets.
11946         (ix86_asm_output_function_label): New function.
11947         (ix86_expand_prologue): Handle 64-bit ms hook prologue.
11948         (ix86_handle_fndecl_attribute): Likewise.
11949         * doc/extend.texi (ms_hook_prologue): Adjust documentation.
11950         * doc/doc/tm.texi: Regenerated.
11951         * doc/doc/doc/tm.texi.in (ASM_OUTPUT_FUNCTION_LABEL): New.
11952         (ASM_DECLARE_FUNCTION_NAME): Adjust documentation.
11953         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): New macro.
11954         * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use
11955         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
11956         * config/elfos.h: Likewise.
11957         * config/i386/cygming.h: Likewise.
11958         * config/netbsd-aout.h: Likewise.
11959         * config/openbsd.h: Likewise.
11960         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_LABEL): Override
11961         by ix86_asm_output_function_label function call.
11962         * varasm.c (assemble_start_function): Use
11963         ASM_OUTPUT_FUNCTION_LABEL instead of ASM_OUTPUT_LABEL.
11964
11965 2010-07-08  Jan Hubicka  <jh@suse.cz>
11966
11967         * cgraph.c (cgraph_will_be_removed_from_program_if_no_direct_calls):
11968         New function.
11969         * cgraph.h (cgraph_will_be_removed_from_program_if_no_direct_calls):
11970         Declare.
11971         * ipa-cp.c (ipcp_estimate_growth): Use it.
11972         * ipa-inline.c (cgraph_estimate_growth, cgraph_decide_inlining):
11973         Likewise.
11974
11975 2010-07-08  Jan Hubicka  <jh@suse.cz>
11976
11977         * tree-inline.c (declare_return_variable): Allocate annotation for new
11978         temporary.
11979
11980 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
11981
11982         PR tree-optimization/44710
11983         * tree-if-conv.c (parse_predicate): New.
11984         (add_to_predicate_list): Call it, call maybe_fold_or_comparisons.
11985         Make sure that the predicates are either SSA_NAMEs or gimple_condexpr.
11986
11987 2010-07-08  Sebastian Pop  <sebastian.pop@amd.com>
11988
11989         * common.opt (ftree-loop-if-convert): New flag.
11990         * doc/invoke.texi (ftree-loop-if-convert): Documented.
11991         * tree-if-conv.c (gate_tree_if_conversion): Enable if-conversion
11992         when flag_tree_loop_if_convert is set.
11993
11994 2010-07-08  Uros Bizjak  <ubizjak@gmail.com>
11995
11996         * config/i386/i386.c: Use short syntax for function calls
11997         through function pointers.
11998         * config/i386/i386.md: Ditto.
11999
12000 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
12001
12002         * emit-rtl.c (set_mem_attributes_minus_bitpos): Fix formatting issues.
12003
12004 2010-07-08  Richard Guenther  <rguenther@suse.de>
12005
12006         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Fix
12007         stmt check for POINTER_PLUS_EXPRs, fix the pointer assignment.
12008
12009 2010-07-08  Jakub Jelinek  <jakub@redhat.com>
12010
12011         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_const[48]u
12012         instead of DW_OP_addr for DW_OP_GNU_push_tls_address operand.
12013         (loc_list_from_tree): Likewise.
12014         (output_loc_operands): Handle outputting DW_OP_const[48]u
12015         with loc->dtprel set.
12016         (resolve_addr_in_expr): Handle loc->dtprel like DW_OP_addr.
12017
12018 2010-07-08  Jan Hubicka  <jh@suse.cz>
12019
12020         * ipa.c: Include pointer-set.h
12021         (cgraph_externally_visible_p): New attribute ALIASED;
12022         when in LTO, hidden symbols are local unless they are aliased.
12023         (function_and_variable_visibility): Compute aliased nodes;
12024         handle LTO and hidden symbol on functions and vars.
12025         * cgraph.c (cgraph_make_decl_local): Clear NAMED_SECTION
12026         for COMDAT symbols; handle COMDAT_GROUPS also at vars.
12027
12028 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
12029
12030         * config/i386/cygming.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
12031         * config/i386/freebsd.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
12032         * config/i386/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
12033         * config/i386/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
12034         * config/i386/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
12035         * config/i386/i386.c (ix86_gen_adjust_stack_and_probe): New variable.
12036         (ix86_gen_probe_stack_range): Likewise.
12037         (override_options): Set them.
12038         (ix86_target_stack_probe): New function.
12039         (ix86_compute_frame_layout): Force use of push instructions to
12040         save registers if stack checking with probes is enabled.
12041         (get_scratch_register_on_entry): New function.
12042         (release_scratch_register_on_entry): Likewise.
12043         (ix86_adjust_stack_and_probe): Likewise.
12044         (output_adjust_stack_and_probe): Likewise.
12045         (ix86_emit_probe_stack_range): Likewise.
12046         (output_probe_stack_range): Likewise.
12047         (ix86_expand_prologue): Emit stack checking code if static built-in
12048         stack checking is enabled.
12049         Test ix86_target_stack_probe instead of TARGET_STACK_PROBE.
12050         * config/i386/i386-protos.h (ix86_target_stack_probe): Declare.
12051         (output_adjust_stack_and_probe): Likewise.
12052         (output_probe_stack_range): Likewise.
12053         * config/i386/i386.md (UNSPECV_PROBE_STACK_RANGE): New constant.
12054         (allocate_stack_worker_32): Test ix86_target_stack_probe instead of
12055         TARGET_STACK_PROBE.
12056         (allocate_stack_worker_64): Likewise.
12057         (allocate_stack): Likewise.
12058         (adjust_stack_and_probe): New insn.
12059         (probe_stack_range): Likewise.
12060
12061 2010-07-08  Richard Guenther  <rguenther@suse.de>
12062
12063         PR tree-optimization/44831
12064         * tree-ssa-phiprop.c (phiprop_insert_phi): Properly build
12065         a MEM_REF preserving TBAA info of the original dereference.
12066         Dereference the original pointer if the address is not invariant.
12067         (propagate_with_phi): Fixup type checks wrt MEM_REFs.  Require
12068         at least one invariant address that we are going to dereference.
12069
12070 2010-07-08  Richard Guenther  <rguenther@suse.de>
12071
12072         PR tree-optimization/44861
12073         * tree-vect-stmts.c (vectorizable_store): Preserve TBAA
12074         information when building MEM_REFs.
12075         (vectorizable_load): Likewise.
12076         * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
12077
12078 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
12079
12080         * config/sol2-c.c: Do not include diagnostic-core.h.
12081
12082 2010-07-08  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12083
12084         PR bootstrap/44768
12085         * cfgexpand.c (estimated_stack_frame_size): Make self-contained
12086         with respect to current_function_decl. Pass decl of the function.
12087         * tree-inline.h (estimated_stack_frame_size): Adjust prototype.
12088         * ipa-inline.c (compute_inline_parameters): Pass decl to
12089         estimated_stack_frame_size.
12090
12091 2010-07-08  Richard Guenther  <rguenther@suse.de>
12092
12093         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
12094         New function.
12095         (valueize_refs): Call it.
12096
12097 2010-07-08  Richard Guenther  <rguenther@suse.de>
12098
12099         PR rtl-optimization/44838
12100         * tree-ssa-alias.c (indirect_refs_may_alias_p): When not in
12101         SSA form do not use pointer equivalence.
12102
12103 2010-07-08  Eric Botcazou  <ebotcazou@adacore.com>
12104
12105         * dwarf2out.c (AT_linkage_name): Delete.
12106         (add_linkage_attr): New function.
12107         (add_linkage_name): Call it to emit the linkage attribute.
12108         (dwarf2out_finish): Likewise.
12109         (move_linkage_attr): Explicitly accept both attribute variants.
12110
12111 2010-07-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12112
12113         * toplev.h: Do not include diagnostic-core.h.
12114         Include diagnostic-core.h in every file that includes toplev.h.
12115         * c-tree.h: Do not include toplev.h.
12116         * pretty-print.h: Update comment.
12117         * Makefile.in: Update dependencies.
12118         * alias.c: Include diagnostic-core.h in every file that includes
12119         toplev.h.
12120         * attribs.c: Likewise.
12121         * auto-inc-dec.c: Likewise.
12122         * bb-reorder.c: Likewise.
12123         * bt-load.c: Likewise.
12124         * caller-save.c: Likewise.
12125         * calls.c: Likewise.
12126         * cfg.c: Likewise.
12127         * cfganal.c: Likewise.
12128         * cfgbuild.c: Likewise.
12129         * cfgcleanup.c: Likewise.
12130         * cfghooks.c: Likewise.
12131         * cfgloop.c: Likewise.
12132         * combine.c: Likewise.
12133         * config/alpha/alpha.c: Likewise.
12134         * config/arc/arc.c: Likewise.
12135         * config/arm/arm.c: Likewise.
12136         * config/arm/pe.c: Likewise.
12137         * config/avr/avr.c: Likewise.
12138         * config/bfin/bfin.c: Likewise.
12139         * config/cris/cris.c: Likewise.
12140         * config/crx/crx.c: Likewise.
12141         * config/darwin-c.c: Likewise.
12142         * config/darwin.c: Likewise.
12143         * config/fr30/fr30.c: Likewise.
12144         * config/frv/frv.c: Likewise.
12145         * config/h8300/h8300.c: Likewise.
12146         * config/host-darwin.c: Likewise.
12147         * config/i386/i386.c: Likewise.
12148         * config/i386/netware.c: Likewise.
12149         * config/i386/nwld.c: Likewise.
12150         * config/i386/winnt-cxx.c: Likewise.
12151         * config/i386/winnt-stubs.c: Likewise.
12152         * config/i386/winnt.c: Likewise.
12153         * config/ia64/ia64-c.c: Likewise.
12154         * config/ia64/ia64.c: Likewise.
12155         * config/iq2000/iq2000.c: Likewise.
12156         * config/lm32/lm32.c: Likewise.
12157         * config/m32c/m32c-pragma.c: Likewise.
12158         * config/m32c/m32c.c: Likewise.
12159         * config/m32r/m32r.c: Likewise.
12160         * config/m68hc11/m68hc11.c: Likewise.
12161         * config/m68k/m68k.c: Likewise.
12162         * config/mcore/mcore.c: Likewise.
12163         * config/mep/mep-pragma.c: Likewise.
12164         * config/mep/mep.c: Likewise.
12165         * config/mmix/mmix.c: Likewise.
12166         * config/mn10300/mn10300.c: Likewise.
12167         * config/moxie/moxie.c: Likewise.
12168         * config/pa/pa.c: Likewise.
12169         * config/pdp11/pdp11.c: Likewise.
12170         * config/picochip/picochip.c: Likewise.
12171         * config/rs6000/rs6000-c.c: Likewise.
12172         * config/rs6000/rs6000.c: Likewise.
12173         * config/rx/rx.c: Likewise.
12174         * config/s390/s390.c: Likewise.
12175         * config/score/score.c: Likewise.
12176         * config/score/score3.c: Likewise.
12177         * config/score/score7.c: Likewise.
12178         * config/sh/sh.c: Likewise.
12179         * config/sh/symbian-base.c: Likewise.
12180         * config/sh/symbian-c.c: Likewise.
12181         * config/sh/symbian-cxx.c: Likewise.
12182         * config/sol2-c.c: Likewise.
12183         * config/sol2.c: Likewise.
12184         * config/sparc/sparc.c: Likewise.
12185         * config/spu/spu.c: Likewise.
12186         * config/stormy16/stormy16.c: Likewise.
12187         * config/v850/v850-c.c: Likewise.
12188         * config/v850/v850.c: Likewise.
12189         * config/vax/vax.c: Likewise.
12190         * config/vxworks.c: Likewise.
12191         * config/xtensa/xtensa.c: Likewise.
12192         * convert.c: Likewise.
12193         * cse.c: Likewise.
12194         * cselib.c: Likewise.
12195         * dbgcnt.c: Likewise.
12196         * dbxout.c: Likewise.
12197         * ddg.c: Likewise.
12198         * dominance.c: Likewise.
12199         * emit-rtl.c: Likewise.
12200         * explow.c: Likewise.
12201         * expmed.c: Likewise.
12202         * fixed-value.c: Likewise.
12203         * fold-const.c: Likewise.
12204         * fwprop.c: Likewise.
12205         * gcse.c: Likewise.
12206         * ggc-common.c: Likewise.
12207         * ggc-page.c: Likewise.
12208         * ggc-zone.c: Likewise.
12209         * gimple-low.c: Likewise.
12210         * gimplify.c: Likewise.
12211         * graph.c: Likewise.
12212         * haifa-sched.c: Likewise.
12213         * ifcvt.c: Likewise.
12214         * implicit-zee.c: Likewise.
12215         * integrate.c: Likewise.
12216         * ira-build.c: Likewise.
12217         * ira-color.c: Likewise.
12218         * ira-conflicts.c: Likewise.
12219         * ira-costs.c: Likewise.
12220         * ira-lives.c: Likewise.
12221         * ira.c: Likewise.
12222         * lists.c: Likewise.
12223         * loop-doloop.c: Likewise.
12224         * loop-iv.c: Likewise.
12225         * lto-opts.c: Likewise.
12226         * lto-symtab.c: Likewise.
12227         * main.c: Likewise.
12228         * modulo-sched.c: Likewise.
12229         * optabs.c: Likewise.
12230         * params.c: Likewise.
12231         * plugin.c: Likewise.
12232         * postreload-gcse.c: Likewise.
12233         * postreload.c: Likewise.
12234         * predict.c: Likewise.
12235         * profile.c: Likewise.
12236         * real.c: Likewise.
12237         * regcprop.c: Likewise.
12238         * reginfo.c: Likewise.
12239         * regmove.c: Likewise.
12240         * reorg.c: Likewise.
12241         * resource.c: Likewise.
12242         * rtl.c: Likewise.
12243         * rtlanal.c: Likewise.
12244         * sched-deps.c: Likewise.
12245         * sched-ebb.c: Likewise.
12246         * sched-rgn.c: Likewise.
12247         * sdbout.c: Likewise.
12248         * sel-sched-dump.c: Likewise.
12249         * sel-sched-ir.c: Likewise.
12250         * simplify-rtx.c: Likewise.
12251         * stmt.c: Likewise.
12252         * stor-layout.c: Likewise.
12253         * store-motion.c: Likewise.
12254         * targhooks.c: Likewise.
12255         * tree-cfg.c: Likewise.
12256         * tree-cfgcleanup.c: Likewise.
12257         * tree-dump.c: Likewise.
12258         * tree-eh.c: Likewise.
12259         * tree-inline.c: Likewise.
12260         * tree-nomudflap.c: Likewise.
12261         * tree-object-size.c: Likewise.
12262         * tree-optimize.c: Likewise.
12263         * tree-outof-ssa.c: Likewise.
12264         * tree-phinodes.c: Likewise.
12265         * tree-profile.c: Likewise.
12266         * tree-ssa-ccp.c: Likewise.
12267         * tree-ssa-coalesce.c: Likewise.
12268         * tree-ssa-live.c: Likewise.
12269         * tree-ssa-loop-niter.c: Likewise.
12270         * tree-ssa-loop-prefetch.c: Likewise.
12271         * tree-ssa-loop.c: Likewise.
12272         * tree-ssa-structalias.c: Likewise.
12273         * tree-ssa-uninit.c: Likewise.
12274         * tree-ssa.c: Likewise.
12275         * tree-vect-data-refs.c: Likewise.
12276         * tree-vect-loop-manip.c: Likewise.
12277         * tree-vect-loop.c: Likewise.
12278         * tree-vect-patterns.c: Likewise.
12279         * tree-vect-stmts.c: Likewise.
12280         * tree-vrp.c: Likewise.
12281         * varasm.c: Likewise.
12282         * vec.c: Likewise.
12283         * web.c: Likewise.
12284         * xcoffout.c: Likewise.
12285
12286 2010-07-07  Richard Sandiford  <rdsandiford@googlemail.com>
12287
12288         * gengtype.c (write_field_root): New function.
12289         (write_root): Use it.
12290
12291 2010-07-07  Wei Guozhi  <carrot@google.com>
12292
12293         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
12294         of lowest bits to lshift/compare): Add a missing line.
12295
12296 2010-07-07  Wei Guozhi  <carrot@google.com>
12297
12298         * config/arm/thumb2.md (peephole2 to convert zero_extract/compare
12299         of lowest bits to lshift/compare): New.
12300
12301 2010-07-07  Tom Tromey  <tromey@redhat.com>
12302
12303         * doc/tm.texi: Update.
12304         * doc/tm.texi.in (SDB and DWARF) <TARGET_WANT_DEBUG_PUB_SECTIONS>:
12305         Add @hook.
12306         * target.def (want_debug_pub_sections): New hook.
12307         * config/darwin.h (TARGET_WANT_DEBUG_PUB_SECTIONS): Define.
12308         * dwarf2out.c (add_pubname_string): Check
12309         targetm.want_debug_pub_sections.
12310         (add_pubname): Likewise.
12311         (add_pubtype): Likewise.
12312
12313 2010-07-07  Jie Zhang  <jie@codesourcery.com>
12314
12315         * genautomata.c (output_automata_list_min_issue_delay_code):
12316         Correctly decompress min_issue_delay.
12317
12318 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
12319
12320         PR rtl-optimization/44404
12321         * auto-inc-dec.c (find_inc): Avoid calling count_occurrences if
12322         possible, use reg_overlap_mentioned_p instead.
12323
12324 2010-07-07  Duncan Sands  <baldrick@free.fr>
12325
12326         PR middle-end/41355
12327         * tree.c (build_function_type_skip_args): Copy the original type using
12328         build_distinct_type_copy rather than copy_node.
12329
12330 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
12331
12332         PR target/44850
12333         * config/i386/i386.c (ix86_function_ms_hook_prologue): Revert
12334         revision 161876.
12335         (ix86_expand_prologue): Likewise.
12336         (ix86_handle_fndecl_attribute): Likewise.
12337         (ix86_asm_declare_function_name): Likewise.
12338         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
12339         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
12340         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): Likewise.
12341         * config/i386/i386-protos.h (ix86_asm_declare_function_name): Likewise.
12342         * doc/extend.texi: Likewise.
12343
12344 2010-07-07  H.J. Lu  <hongjiu.lu@intel.com>
12345
12346         PR target/44844
12347         * config/i386/i386.md (rdrand<mode>): Changed to expand to
12348         retry if the carry flag isn't valid.
12349         (rdrand<mode>_1): New.
12350
12351 2010-07-07  Richard Guenther  <rguenther@suse.de>
12352
12353         PR middle-end/44790
12354         * expr.c (expand_expr_real_1): Go the POINTER_PLUS_EXPR path
12355         for expanding the constant offset for MEM_REFs.
12356
12357 2010-07-07  Richard Guenther  <rguenther@suse.de>
12358
12359         * tree-ssa-propagate.h (valid_gimple_call_p): Remove.
12360         * tree-ssa-propagate.c (valid_gimple_call_p): Make static.  Fix.
12361         * gimple.h (is_gimple_operand): Remove.
12362         * gimple.c (is_gimple_operand): Likewise.
12363         (walk_gimple_op): Fix wi->val_only setting for calls.
12364         * tree-cfg.c (verify_gimple_call): Fix argument validation.
12365         * tree-profile.c (tree_gen_ic_func_profiler): Do not create
12366         invalid gimple calls.
12367
12368 2010-07-06  Jan Hubicka  <jh@suse.cz>
12369
12370         * lto-cgraph.c (output_cgraph): Add missing declaration.
12371
12372 2010-07-06  Jan Hubicka  <jh@suse.cz>
12373
12374         * lto-cgraph.c (output_cgraph): Output toplevel asms only into first
12375         partition.
12376
12377 2010-07-06  Alexandre Oliva  <aoliva@redhat.com>
12378
12379         * doc/gimple.texi (GIMPLE_DEBUG): Document.
12380         * doc/rtl.texi (Debug Information): New node.
12381         (NOTE_INSN_VAR_LOCATION): Document.
12382         (debug_insn): Likewise.
12383         * doc/generic.texi (DEBUG_EXPR_DECL): Document.
12384
12385 2010-07-07  Jan Hubicka  <jh@suse.cz>
12386
12387         With parts by Richard Guenther.
12388
12389         PR middle-end/44813
12390         * tree-ssa-uninit.c (ssa_undefined_value_p): Result decl is defined
12391         for functions passed by reference.
12392         * tree.c (needs_to_live_in_memory): RESULT_DECL don't need to live
12393         in memory when passed by reference.
12394         * tree-ssa-ccp.c (get_default_value): Only VAR_DECL is undefined at
12395         beggining.
12396         * ipa-split.c (split_function): Cleanup way return value is passed;
12397         handle SSA DECL_BY_REFERENCE retvals.
12398         * tree-ssa.c (verify_def): Verify that RESULT_DECL is read only when
12399         DECL_BY_REFERENCE is set.
12400         * tree-ssa-structalias.c (get_constraint_for_ssa_var, get_fi_for_callee,
12401         find_what_p_points_to): Handle RESULT_DECL.
12402         * tree-inline.c (declare_return_variable): Get new entry_block argument;
12403         when passing by reference ensure that RESULT_DECL is gimple_val.
12404         (remap_gimple_op_r): Remap RESULT_DECL ssa name.
12405         (remap_gimple_stmt): Handle SSA DECL_BY_REFERENCE returns.
12406
12407 2010-07-07  Bernd Schmidt  <bernds@codesourcery.com>
12408
12409         PR rtl-optimization/44787
12410         * config/arm/arm.md (arith_shiftsi): Allow stack pointer in operand 2.
12411         * config/arm/thumb2.md (thumb2_arith_shiftsi): Likewise.
12412
12413 2010-07-06  Jan Hubicka  <jh@suse.cz>
12414
12415         * lto-symtab.c (lto_cgraph_replace_node): Handle aliases.
12416         (lto_symtab_resolve_can_prevail_p): Also alias of cgraph node
12417         with body can prevail.
12418         (lto_symtab_resolve_symbols): Use cgraph_get_node_or_alias.
12419         (lto_symtab_merge_cgraph_nodes_1): Do not remove nodes from aliases.
12420         * cgraph.c (cgraph_get_node_or_alias): New function.
12421         * cgraph.h (cgraph_get_node_or_alias): Declare.
12422
12423 2010-07-06  Kai Tietz  <kai.tietz@onevision.com>
12424
12425         * config/i386/i386.c (ix86_function_ms_hook_prologue): Enable x64
12426         support.
12427         (ix86_expand_prologue): Likewise.
12428         (ix86_handle_fndecl_attribute): Likewise.
12429         (ix86_asm_declare_function_name): New function for
12430         ASM_DECLARE_FUNCTION_NAME.
12431         * config/i386/i386.h (ASM_DECLARE_FUNCTION_NAME): New macro.
12432         * config/i386/cygming.h (ASM_DECLARE_FUNCTION_NAME): Removed.
12433         (SUBTARGET_ASM_DECLARE_FUNCTION_NAME): New macro.
12434         * config/i386/i386-protos.h (ix86_asm_declare_function_name): New.
12435         * doc/extend.texi: Adjust documentation about ms_hook_prologue
12436         attribute.
12437
12438 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
12439
12440         * config/i386/i386.md (immediate_operand): New mode attribute.
12441
12442         (pro_epilogue_adjust_stack_<mode>_1): Macroize insn from
12443         pro_epilogue_adjust_stack  and pro_epilogue_adjust_stack_rex64
12444         using P mode iterator.
12445         (pro_epilogue_adjust_stack_di_2): Rename from
12446         pro_epilogue_adjust_stack_rex64_2.
12447
12448         * config/i386/i386.c (pro_epilogue_adjust_stack): Update for rename.
12449
12450 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
12451
12452         * config/i386/i386.md (insv): Call gen_movdi_insv1 or gen_movsi_insv1
12453         through gen_mov_insv_1 function pointer.
12454         (fmod<mode>3): Call gen_truncxf<mode>2_i387_noop_unspec or
12455         gen_truncxf<mode>2 through gen_truncxf function pointer.
12456         (remainder<mode>3): Ditto.
12457         (cmpstrnsi): Rename cmp_insn function pointer to gen_cmp.
12458         (allocate_stack): Call gen_allocate_stack_worker_64 or
12459         gen_allocate_stack_worker_32 through gen_allocate_stack_worker
12460         function pointer.
12461         (probe_stack): Call gen_iordi3 or gen_iorsi3 through gen_ior3
12462         function pointer.
12463
12464 2010-07-06  Uros Bizjak  <ubizjak@gmail.com>
12465
12466         * config/i386/i386.md (*add<mode>3_cconly_overflow): Use <g>
12467         operand constraint instead of <r><i>m.
12468
12469 2010-07-06  Richard Guenther  <rguenther@suse.de>
12470
12471         PR middle-end/44828
12472         * convert.c (convert_to_integer): Watch out for overflowing
12473         MULT_EXPR as well.
12474
12475 2010-07-05  Jan Hubicka  <jh@suse.cz>
12476
12477         * lto-streamer.c (write_symbol_vec): Rename to ...
12478         (write_symbol) ... this one; write only symbol given and when
12479         present in cache. Sanity check that what is defined is present
12480         in cgraph/varpool with body/finalized decl.
12481         (write_symbols_of_kind): Remove.
12482         (produce_symtab): Take outputblock and sets; use cgraph/varpool/alias
12483         pairs to produce symtab.
12484         (produce_asm_for_decls): Update call of produce_symtab; don't do so
12485         when doing WPA streaming.
12486
12487 2010-07-05  Jan Hubicka  <jh@suse.cz>
12488
12489         * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Check that
12490         function is still available to fold into.
12491
12492 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
12493
12494         * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro.
12495         * function.h (struct_function): Change type of local_decls field
12496         to a VEC.
12497         (add_local_decl): New function.
12498         (FOR_EACH_LOCAL_DECL): New macro.
12499         * cfgexpand.c (init_vars_expansion): Adjust for new type of
12500         cfun->local_decls.
12501         (estimated_stack_frame_size): Likewise.
12502         (expand_used_vars): Likewise.
12503         * cgraphbuild.c (build_cgraph_edges): Likewise.
12504         * function.c (instantiate_decls_1): Likewise.
12505         * ipa-struct-reorg.c (build_data_structure): Likewise.
12506         * ipa-type-escape.c (analyze_function): Likewise.
12507         * lto-streamer-in.c (input_function): Likewise.
12508         * lto-streamer-out.c (output_function): Likewise.
12509         * tree-ssa-live.c (remove_unused_locals): Likewise.
12510         * tree.c (free_lang_data_in_decl): Likewise.
12511         (find_decls_types_in_node): Likewise.
12512         * omp-low.c (remove_exit_barrier): Likewise.
12513         (expand_omp_taskreg): Likewise.
12514         (list2chain): Rename to...
12515         (vec2chain): ...this.  Adjust.
12516         * cgraphunit.c (assemble_thunk): Call add_local_decl.
12517         * tree-cfg.c (replace_by_duplicate_decl): Likewise.
12518         * gimple-low.c (record_vars_into): Likewise.
12519         * tree-inline.c (remap_decls): Likewise.
12520         (declare_return_variable): Likewise.
12521         (declare_inline_vars): Likewise.
12522         (copy_forbidden): Adjust for new type of cfun->local_decls.
12523         (add_local_variables): New function.
12524         (expand_call_inline): Call it.
12525         (tree_function_versioning): Likewise.
12526
12527 2010-07-05  H.J. Lu  <hongjiu.lu@intel.com>
12528
12529         AVX Programming Reference (June, 2010)
12530         * config/i386/cpuid.h (bit_F16C): New.
12531         (bit_RDRND): Likewise.
12532         (bit_FSGSBASE): Likewise.
12533
12534         * config/i386/i386-builtin-types.def: Add
12535         "DEF_FUNCTION_TYPE (UINT16)", function types for
12536         float16 <-> float conversions and
12537         "DEF_FUNCTION_TYPE (VOID, UINT64)".
12538
12539         * config/i386/i386-c.c (ix86_target_macros_internal): Support
12540         OPTION_MASK_ISA_FSGSBASE, OPTION_MASK_ISA_RDRND and
12541         OPTION_MASK_ISA_F16C.
12542
12543         * config/i386/i386.c (OPTION_MASK_ISA_FSGSBASE_SET): New.
12544         (OPTION_MASK_ISA_RDRND_SET): Likewise.
12545         (OPTION_MASK_ISA_F16C_SET): Likewise.
12546         (OPTION_MASK_ISA_FSGSBASE_UNSET): Likewise.
12547         (OPTION_MASK_ISA_RDRND_UNSET): Likewise.
12548         (OPTION_MASK_ISA_F16C_UNSET): Likewise.
12549         (OPTION_MASK_ISA_AVX_UNSET): Add OPTION_MASK_ISA_F16C_UNSET.
12550         (ix86_handle_option): Handle OPT_mfsgsbase, OPT_mrdrnd and OPT_mf16c.
12551         (ix86_target_string): Support -mfsgsbase, -mrdrnd and -mf16c.
12552         (pta_flags): Add PTA_FSGSBASE, PTA_RDRND and PTA_F16C.
12553         (override_options): Handle them.
12554         (ix86_valid_target_attribute_inner_p): Handle fsgsbase, rdrnd and f16c.
12555         (ix86_builtins): Add IX86_BUILTIN_RDFSBASE32,
12556         IX86_BUILTIN_RDFSBASE64, IX86_BUILTIN_RDGSBASE32,
12557         IX86_BUILTIN_RDGSBASE64, IX86_BUILTIN_WRFSBASE32,
12558         IX86_BUILTIN_WRFSBASE64, IX86_BUILTIN_WRGSBASE32,
12559         IX86_BUILTIN_WRGSBASE64, IX86_BUILTIN_RDRAND16,
12560         IX86_BUILTIN_RDRAND32, IX86_BUILTIN_RDRAND64,
12561         IX86_BUILTIN_CVTPH2PS, IX86_BUILTIN_CVTPH2PS256,
12562         IX86_BUILTIN_CVTPS2PH and IX86_BUILTIN_CVTPS2PH256.
12563         (bdesc_args): Likewise.
12564         (ix86_expand_args_builtin): Handle V8SF_FTYPE_V8HI,
12565         V4SF_FTYPE_V8HI, V8HI_FTYPE_V8SF_INT and V8HI_FTYPE_V4SF_INT.
12566         (ix86_expand_special_args_builtin): Handle VOID_FTYPE_UINT64,
12567         VOID_FTYPE_UNSIGNED, UNSIGNED_FTYPE_VOID and UINT16_FTYPE_VOID.
12568         Handle non-memory store.
12569
12570         * config/i386/i386.h (TARGET_FSGSBASE): New.
12571         (TARGET_RDRND): Likewise.
12572         (TARGET_F12C): Likewise.
12573
12574         * config/i386/i386.md (UNSPEC_VCVTPH2PS): New.
12575         (UNSPEC_VCVTPS2PH): Likewise.
12576         (UNSPECV_RDFSBASE): Likewise.
12577         (UNSPECV_RDGSBASE): Likewise.
12578         (UNSPECV_WRFSBASE): Likewise.
12579         (UNSPECV_WRGSBASE): Likewise.
12580         (UNSPECV_RDRAND): Likewise.
12581         (rdfsbase<mode>): Likewise.
12582         (rdgsbase<mode>): Likewise.
12583         (wrfsbase<mode>): Likewise.
12584         (wrgsbase<mode>): Likewise.
12585         (rdrand<mode>): Likewise.
12586
12587         * config/i386/i386.opt: Add -mfsgsbase, -mrdrnd and -mf16c.
12588
12589         * config/i386/immintrin.h (_rdrand_u16): New.
12590         (_rdrand_u32): Likewise.
12591         (_readfsbase_u32): Likewise.
12592         (_readfsbase_u64): Likewise.
12593         (_readgsbase_u32): Likewise.
12594         (_readgsbase_u64): Likewise.
12595         (_writefsbase_u32): Likewise.
12596         (_writefsbase_u64): Likewise.
12597         (_writegsbase_u32): Likewise.
12598         (_writegsbase_u64): Likewise.
12599         (_rdrand_u64): Likewise.
12600         (_cvtsh_ss): Likewise.
12601         (_mm_cvtph_ps): Likewise.
12602         (_mm256_cvtph_ps): Likewise.
12603         (_cvtss_sh): Likewise.
12604         (_mm_cvtps_ph): Likewise.
12605         (_mm256_cvtps_ph): Likewise.
12606
12607         * config/i386/sse.md (vcvtph2ps): New.
12608         (*vcvtph2ps_load): Likewise.
12609         (vcvtph2ps256): Likewise.
12610         (vcvtps2ph): Likewise.
12611         (*vcvtps2ph): Likewise.
12612         (*vcvtps2ph_store): Likewise.
12613         (vcvtps2ph256): Likewise.
12614
12615         * doc/extend.texi: Document FSGSBASE and RDRND built-in functions.
12616
12617         * doc/invoke.texi: Document -mfsgsbase, -mrdrnd and -mf16c.
12618
12619 2010-07-05  Joern Rennecke  <joern.rennecke@embecosm.com>
12620
12621         PR bootstrap/44512
12622         * genenums.c (main): Output include of insn-constants.h
12623         * Makefile.in (insn-enums.o): Depend on insn-constants.h.
12624
12625 2010-07-05  Uros Bizjak  <ubizjak@gmail.com>
12626
12627         * config/i386/i386.c (ix86_gen_allocate_stack_worker): New.
12628         (override_options): Initialize it.
12629         (ix86_expand_prologue): Use it.
12630
12631 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
12632
12633         * tree-nrv.c (tree_nrv): Set DECL_VALUE_EXPR on found to result.
12634
12635 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
12636
12637         * double-int.h (fit_double_type): Remove declaration.
12638         * double-int.c (fit_double_type): Remove function.
12639         * tree.h (int_fits_type_p): Adjust prototype.
12640         * tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
12641         instead of fit_double_type.
12642         (build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
12643         instead of fit_double_type and build_int_cst_wide.
12644         * builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
12645         instead of fit_double_type and build_int_cst_wide.
12646         (fold_builtin_object_size): Use double_int_fits_to_tree_p instead
12647         of fit_double_type.
12648
12649 2010-07-05  Jan Hubicka  <jh@suse.cz>
12650
12651         * cgraph.h (cgraph_node, cgraph_varpool_node): Update docmentation of
12652         in_other_partition.
12653         * lto-cgraph.c (referenced_from_other_partition_p,
12654         reachable_from_other_partition_p): Use in_other_partition flags.
12655         (output_node, output_varpool_node): COMDAT nodes always have private
12656         copies and thus are never used from other partition.
12657
12658 2010-07-05  Anatoly Sokolov  <aesok@post.ru>
12659
12660         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
12661         * config/ia64/t-ia64 (ia64.o): Depend on reload.h.
12662         * config/ia64/ia64.c Include reload.h.
12663         (ia64_memory_move_cost): New function.
12664         (TARGET_MEMORY_MOVE_COST): Define.
12665         (ia64_register_move_cost): Replace MEMORY_MOVE_COST with
12666         memory_move_cost.
12667
12668 2010-07-05  Sandra Loosemore  <sandra@codesourcery.com>
12669
12670         PR middle-end/42505
12671         * tree-ssa-loop-ivopts.c (determine_set_costs): Delete obsolete
12672         comments about cost model.
12673         (try_add_cand_for):  Add second strategy for choosing initial set
12674         based on original IVs, controlled by ORIGINALP argument.
12675         (get_initial_solution): Add ORIGINALP argument.
12676         (find_optimal_iv_set_1): New function, split from find_optimal_iv_set.
12677         (find_optimal_iv_set): Try two different strategies for choosing
12678         the IV set, and return the one with lower cost.
12679
12680 2010-07-05  Richard Guenther  <rguenther@suse.de>
12681
12682         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Copy alias info.
12683
12684 2010-07-05  Richard Guenther  <rguenther@suse.de>
12685
12686         * tree.c (reference_alias_ptr_type): New function.
12687         * tree.h (reference_alias_ptr_type): Declare.
12688         * tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
12689         allow non-TARGET_MEM_REF new refs.
12690         (rewrite_use_address): Pass old alias pointer type to create_mem_ref.
12691         * tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
12692         Build a MEM_REF instead of a TARGET_MEM_REF if possible.
12693         (create_mem_ref): Get alias pointer type.  Adjust calls to
12694         create_mem_ref_raw.
12695         (maybe_fold_tmr): Likewise.
12696         * tree-flow.h (create_mem_ref): Adjust prototype.
12697
12698 2010-07-05  Jakub Jelinek  <jakub@redhat.com>
12699
12700         PR c++/44808
12701         * gimplify.c (gimplify_modify_expr): Only SET_DECL_DEBUG_EXPR if
12702         *from_p is VAR_DECL.
12703
12704 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
12705
12706         * tree.h (build_call_list): Remove.
12707         * tree.c (build_call_list): Remove.
12708
12709 2010-07-05  Richard Guenther  <rguenther@suse.de>
12710
12711         * double-int.h (double_int_sub): Declare.
12712         * double-int.c (double_int_sub): New function.
12713         * dwarf2out.c (field_byte_offset): Use it.
12714         * fixed-value.c (do_fixed_add): Likewise.
12715         (do_fixed_multiply): Likewise.
12716         (do_fixed_divide): Likewise.
12717         * tree-predcom.c (add_ref_to_chain): Likewise.
12718         (determine_roots_comp): Likewise.
12719         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
12720
12721 2010-07-05  Nathan Froyd  <froydnj@codesourcery.com>
12722
12723         * vec.h (VEC_splice, VEC_safe_splice): New macros.  Add function
12724         implementations.
12725
12726 2010-07-05  Bernd Schmidt  <bernds@codesourcery.com>
12727
12728         * config/arm/arm.c (get_arm_condition_code): Remove CC_NOTBmode case.
12729         * arm-modes.def (CC_NOTB): Don't define.
12730         * config/arm/arm.md (arm_adddi3): Generate canonical RTL.
12731         (adddi_sesidi_di, adddi_zesidi_di): Likewise.
12732         (LTUGEU): New code_iterator.
12733         (cnb, optab): New corresponding code_attrs.
12734         (addsi3_carryin_<optab>): Renamed from addsi3_carryin.  Change pattern
12735         to canonical form.  Operands 1 and 2 are commutative.  Parametrize
12736         using LTUGEU.
12737         (addsi3_carryin_shift_<optab>): Likewise.
12738         (addsi3_carryin_alt2_<optab>): Renamed from addsi3_carryin_alt2.
12739         Operands 1 and 2 are commutative.  Parametrize using LTUGEU.
12740         (addsi3_carryin_alt1, addsi3_carryin_alt3): Remove.
12741         (subsi3_compare): Renamed from subsi3_compare0_c.
12742         Change CC_NOTB to CC.
12743         (arm_subsi3_insn): Allow constants for operand 0.
12744         (compare_scc peephole for eq case): New.
12745         (compare_scc splitters): Change CC_NOTB to CC.
12746
12747 2010-07-05  Richard Guenther  <rguenther@suse.de>
12748
12749         * tree-ssa-loop-im.c (for_each_index): Do not handle
12750         ALIGN_INDIRECT_REF.
12751         (gen_lsm_tmp_name): Likewise.
12752         * tree-dump.c (dequeue_and_dump): Likewise.
12753         * tree-pretty-print.c (dump_generic_node): Likewise.
12754         (op_code_prio): Likewise.
12755         (op_symbol_code): Likewise.
12756         * tree.c (staticp): Likewise.
12757         (build1_stat): Likewise.
12758         * tree.h (INDIRECT_REF_P): Likewise.
12759         * fold-const.c (maybe_lvalue_p): Likewise.
12760         (operand_equal_p): Likewise.
12761         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
12762         (ao_ref_init_from_vn_reference): Likewise.
12763         * tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
12764         (find_interesting_uses_address): Likewise.
12765         * dwarf2out.c (loc_list_from_tree): Likewise.
12766         * gimplify.c (gimplify_expr): Likewise.
12767         * tree-eh.c (tree_could_trap_p): Likewise.
12768         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
12769         * cfgexpand.c (expand_debug_expr): Likewise.
12770         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
12771         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
12772         * tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
12773         * config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
12774         * tree-ssa-operands.c (get_expr_operands): Likewise.
12775         * expr.c (safe_from_p): Likewise.
12776         (expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
12777         * tree-vect-data-refs.c (vect_setup_realignment): Build
12778         BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
12779         * tree-vect-stmts.c (vectorizable_load): Likewise.
12780         * tree.def (ALIGN_INDIRECT_REF): Remove.
12781
12782 2010-07-05  Richard Guenther  <rguenther@suse.de>
12783
12784         PR tree-optimization/44784
12785         * tree-ssa-pre.c (bitmap_find_leader): Fix dominance check
12786         for inserted stmts.
12787         (find_or_generate_expression): Fix SCCVN insertion check.
12788
12789 2010-07-05  Nathan Sidwell  <nathan@codesourcery.com>
12790
12791         * config/rs6000/e500crtsavg64gprctr.asm: Correct done label name.
12792         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
12793         * config/rs6000/e500crtres64gprctr.asm: Likewise. Add FUNC_END
12794         directives.
12795
12796 2010-07-05  Ira Rosen  <irar@il.ibm.com>
12797
12798         * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Skip
12799         statements that are not vectorized.
12800         * tree-vect-stmts.c (vect_get_load_cost): Update the value stored
12801         in INSIDE_COST.
12802
12803 2010-07-05  Mikael Pettersson  <mikpe@it.uu.se>
12804
12805         PR bootstrap/44820
12806         * config/arm/arm.c (arm_attr_length_move_neon): Delete regno.
12807
12808 2010-07-05  Richard Guenther  <rguenther@suse.de>
12809
12810         * tree-cfg.c (verify_gimple_return): Handle DECL_BY_REFERENCE
12811         RESULT_DECLs properly.
12812
12813 2010-07-04  H.J. Lu  <hongjiu.lu@intel.com>
12814
12815         PR rtl-optimization/44695
12816         * config/i386/i386.md (extract_code): Removed.
12817         (<u>divmodqi4): Likewise.
12818         (divmodqi4): New.
12819         (udivmodqi4): Likewise.
12820         (divmodhiqi3): Change div/mod to HImode and extend operand 2 to HImode.
12821         (udivmodhiqi3): Likewise.
12822
12823 2010-07-04  Jan Hubicka  <jh@suse.cz>
12824
12825         * lto-cgraph.c (input_edge): Do not care about resolution decisions.
12826
12827 2010-07-04  Jan Hubicka  <jh@suse.cz>
12828
12829         * cgraphunit.c (init_cgraph): Only initialize dump file if it
12830         is not already initialized.
12831
12832 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
12833
12834         * optabs.h (reload_in_optab, reload_out_optab, code_to_optab)
12835         (vcond_gen_code, vcondu_gen_code, movmem_optab, setmem_optab)
12836         (cmpstr_optab, cmpstrn_optab, cmpmem_optab, sync_add_optab)
12837         (sync_sub_optab, sync_ior_optab, sync_and_optab, sync_xor_optab)
12838         (sync_nand_optab, sync_old_add_optab, sync_old_sub_optab)
12839         (sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab)
12840         (sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab)
12841         (sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab)
12842         (sync_new_nand_optab): Redefine as macros.
12843         (sync_compare_and_swap, sync_lock_test_and_set, sync_lock_release):
12844         Delete.
12845         (direct_optab_index): New enum.
12846         (direct_optab_d): New structure.
12847         (direct_optab): New typedef.
12848         (direct_optab_table): Declare.
12849         (direct_optab_handler, set_direct_optab_handler): New functions.
12850         (sync_compare_and_swap_optab, sync_lock_test_and_set_optab)
12851         (sync_lock_release_optab): New macros.
12852         * optabs.c (direct_optab_table): New variable.
12853         (movcc_gen_code, vcond_gen_code, vcondu_gen_code): Delete.
12854         (prepare_cmp_insn): Use direct_optab_handler for cmpmem_optab,
12855         cmpstr_optab and cmpstrn_optab.
12856         (emit_conditional_move): Likewise for movcc_optab.
12857         (can_conditionally_move_p): Likewise for movcc_gen_code.
12858         (init_insn_codes): Clear direct_optab_table.
12859         (init_optabs): Don't initialize the new "direct optabs" here.
12860         (get_vcond_icode): Use direct_optab_handler for vcondu_gen_code and
12861         vcond_gen_code.
12862         (expand_val_compare_and_swap): Likewise sync_compare_and_swap_optab.
12863         (expand_bool_compare_and_swap): Likewise sync_compare_and_swap_optab.
12864         (expand_compare_and_swap_loop): Likewise sync_compare_and_swap_optab.
12865         (expand_sync_operation): Likewise other sync_*_optabs.
12866         (expand_sync_fetch_operation): Likewise.  Rename sync_compare_and_swap
12867         to sync_compare_and_swap_optab.
12868         (expand_sync_lock_test_and_set): Use direct_optab_handler for
12869         sync_lock_test_and_set and sync_compare_and_swap, adding "_optab"
12870         to the names of both.
12871         * builtins.c (expand_builtin_strcmp): Use direct_optab_handler for
12872         cmpstr_optab and cmpstrn_optab.
12873         (expand_builtin_lock_release): Likewise sync_lock_release.
12874         * expr.c (movmem_optab, setmem_optab, cmpstr_optab, cmpstrn_optab)
12875         (cmpmem_optab, sync_add_optab, sync_sub_optab, sync_ior_optab)
12876         (sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab)
12877         (sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab)
12878         (sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab)
12879         (sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab)
12880         (sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap)
12881         (sync_lock_test_and_set, sync_lock_release): Delete.
12882         (emit_block_move_via_movmem): Use direct_optab_handler for movmem_optab.
12883         (emit_block_move_via_setmem): Use direct_optab_handler for setmem_optab.
12884         * genopinit.c (optabs): Use set_direct_optab_handler for the new
12885         macro optabs.
12886         * omp-low.c (expand_omp_atomic_fetch_op): Update the type of
12887         the "optab" local variable.  Use direct_optab_handler for optab and
12888         sync_compare_and_swap_optab.
12889         * reload1.c (reload_in_optab, reload_out_optab): Delete.
12890         * targhooks.c (default_secondary_reload): Use direct_optab_handler for
12891         reload_in_optab and reload_out_optab.
12892         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
12893         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
12894         * config/pa/pa.c (pa_secondary_reload): Likewise.
12895         * java/builtins.c (compareAndSwapInt_builtin): Use direct_optab_handler
12896         for sync_compare_and_swap, renaming it to sync_compare_and_swap_optab.
12897         (compareAndSwapLong_builtin, compareAndSwapObject_builtin): Likewise.
12898         (VMSupportsCS8_builtin): Likewise.
12899
12900 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
12901
12902         * optabs.h (optab_handlers): Change type of insn_code to int.
12903         (optab_handler, set_optab_handler, convert_optab_handler)
12904         (set_convert_optab_handler): Treat the insn_code field as "insn_code -
12905         CODE_FOR_nothing".
12906         * optabs.c (optab_table, convert_optab_table): Always zero-initialize.
12907         (init_insn_codes): Zero both the above arrays.
12908         (init_optabs): Never call init_insn_codes first time around.
12909
12910 2010-07-04  Richard Sandiford  <rdsandiford@googlemail.com>
12911
12912         * optabs.h (optab_handler, convert_optab_handler): Turn into
12913         inline functions that return an insn code.
12914         (set_optab_handler, set_convert_optab_handler): New functions.
12915         * builtins.c: Replace optab_handler(X)->insn_code with
12916         optab_handler or set_optab_handler thoughout.  Likewise
12917         convert_optab_handler(X)->insn_code with convert_optab_handler
12918         and set_convert_optab_handler.
12919         * expmed.c, expr.c, genopinit.c, ifcvt.c, optabs.c, reload.c,
12920         reload1.c, stmt.c, targhooks.c, tree-ssa-loop-prefetch.c,
12921         tree-ssa-math-opts.c, tree-vect-data-refs.c, tree-vect-generic.c,
12922         tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
12923         tree-vect-stmts.c, config/m32c/m32c.c, config/rs6000/rs6000.c,
12924         config/spu/spu.c: Likewise.
12925
12926 2010-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
12927
12928         PR target/44531
12929         * config.gcc (sh*-*-*): Use regular expressions instead of
12930         the 'i' modifier for sed substitutions.
12931
12932 2010-07-04  Jeremie Salvucci  <jeremie.salvucci@free.fr>
12933
12934         * gimple.c (gimple_body): Comments added.
12935
12936 2010-07-04  Richard Guenther  <rguenther@suse.de>
12937
12938         PR middle-end/44809
12939         * gimplify.c (gimplify_expr): Properly build a MEM_REF instead
12940         of an INDIRECT_REF.
12941
12942 2010-07-04  Richard Guenther  <rguenther@suse.de>
12943
12944         PR tree-optimization/44479
12945         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
12946         extra SSA name copy statements which preserves points-to
12947         information.
12948         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
12949         Copy points-to information for all pointers.  Properly handle
12950         MEM_REFs.
12951         (vect_create_data_ref_ptr): Likewise.  Avoid extra SSA name
12952         copy statements.
12953         * Makefile.in (tree-ssa-loop-ivopts.o): Add tree-ssa-propagate.h
12954         dependency.
12955
12956 2010-07-04  Richard Guenther  <rguenther@suse.de>
12957
12958         PR middle-end/44785
12959         * tree-inline.c (initialize_inlined_parameters): Do not
12960         re-use pointer-map slot over remap_type call.
12961
12962 2010-07-04  Richard Guenther  <rguenther@suse.de>
12963
12964         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
12965
12966 2010-07-04  Richard Guenther  <rguenther@suse.de>
12967
12968         PR tree-optimization/44656
12969         * tree-ssa-sccvn.c (vn_reference_lookup_3): Try disambiguation
12970         again after value-replacing in the defintions lhs.
12971
12972 2010-07-04  Ira Rosen  <irar@il.ibm.com>
12973             Revital Eres  <eres@il.ibm.com>
12974
12975         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST):
12976         Document new arguments.
12977         * doc/tm.texi: Regenerate.
12978         * targhooks.c (default_builtin_vectorization_cost): Add new arguments.
12979         Handle unaligned store.
12980         * targhooks.h (default_builtin_vectorization_cost): Add new arguments.
12981         * target.def (builtin_vectorization_cost): Add new arguments.
12982         * target.h (enum vect_cost_for_stmt): Add unaligned_store.
12983         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Take number
12984         of iterations of prolog loop directly from LOOP_PEELING_FOR_ALIGNMENT.
12985         (vect_vfa_segment_size): Fix indentation.
12986         * tree-vectorizer.h (struct _vect_peel_info): New.
12987         (struct _vect_peel_extended_info): New.
12988         (struct _loop_vec_info): Add new field for peeling hash table and a
12989         macro for its access.
12990         (VECT_MAX_COST): Define.
12991         (vect_get_load_cost): Declare.
12992         (vect_get_store_cost, vect_get_known_peeling_cost,
12993         vect_get_single_scalar_iteraion_cost): Likewise.
12994         (vect_supportable_dr_alignment): Add new argument.
12995         * tree-vect-loop.c (new_loop_vec_info): Initialize peeling hash table
12996         field.
12997         (destroy_loop_vec_info): Free peeling hash table.
12998         (vect_analyze_loop_form): Update call to builtin_vectorization_cost.
12999         (vect_analyze_loop): Move vect_enhance_data_refs_alignment before
13000         vect_analyze_slp. Fix indentation.
13001         (vect_get_single_scalar_iteraion_cost): New function.
13002         (vect_get_known_peeling_cost): Likewise.
13003         (vect_estimate_min_profitable_iters): Rename byte_misalign to npeel.
13004         Call vect_get_single_scalar_iteraion_cost instead of cost_for_stmt per
13005         statement. Move outside cost calculation inside unknown peeling case.
13006         Call vect_get_known_peeling_cost for known amount of peeling.
13007         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Add data
13008         reference to the print message of forced alignment.
13009         (vect_verify_datarefs_alignment): Update call to
13010         vect_supportable_dr_alignment.
13011         (vect_get_data_access_cost): New function.
13012         (vect_peeling_hash, vect_peeling_hash_eq, vect_peeling_hash_insert,
13013         vect_peeling_hash_get_most_frequent, vect_peeling_hash_get_lowest_cost,
13014         vect_peeling_hash_choose_best_peeling): Likewise.
13015         (vect_enhance_data_refs_alignment): Fix documentation. Use hash table
13016         to store all the accesses in the loop and find best possible access to
13017         align using peeling for known alignment case. For unknown alignment
13018         check if stores are preferred or if peeling is worthy.
13019         (vect_find_same_alignment_drs): Analyze pairs of loads too.
13020         (vect_supportable_dr_alignment): Add new argument and check aligned
13021         accesses according to it.
13022         * tree-vect-stmts.c (vect_get_stmt_cost): New function.
13023         (cost_for_stmt): Call vect_get_stmt_cost.
13024         (vect_model_simple_cost): Likewise.
13025         (vect_model_store_cost): Call vect_get_stmt_cost. Call
13026         vect_get_store_cost to calculate the cost of the statement.
13027         (vect_get_store_cost): New function.
13028         (vect_model_load_cost): Call vect_get_stmt_cost. Call
13029         vect_get_load_cost to calculate the cost of the statement.
13030         (vect_get_load_cost): New function.
13031         (vectorizable_store): Update call to vect_supportable_dr_alignment.
13032         (vectorizable_load): Likewise.
13033         * config/spu/spu.c (spu_builtin_vectorization_cost): Add new arguments.
13034         * config/i386/i386.c (ix86_builtin_vectorization_cost): Add new
13035         arguments. Handle unaligned store.
13036         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): New.
13037         (rs6000_builtin_support_vector_misalignment): Return true for word and
13038         double word alignments for VSX.
13039         * tree-vect-slp.c (vect_build_slp_tree): Update calls to
13040         vect_supportable_dr_alignment and builtin_vectorization_cost.
13041
13042 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13043
13044         PR target/44597
13045         * config/pa/predicates.md (prefetch_cc_operand): Remove.
13046         (prefetch_nocc_operand): Likewise.
13047         * config/pa/pa.md (prefetch): Revise expander to use prefetch_20.
13048         (prefetch_20): New insn.
13049         (prefetch_cc): Remove.
13050         (prefetch_nocc): Likewise.
13051
13052 2010-07-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13053
13054         * expr.c (vector_mode_valid_p): Move to c-common.c.
13055         * expr.h (vector_mode_valid_p): Do not declare here.
13056         * system.h: Poison GCC_EXPR_H in front-ends.
13057         * Makefile.in: Update dependencies.
13058
13059 2010-07-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13060
13061         PR target/44705
13062         * config/pa/pa.h (GO_IF_LEGITIMATE_ADDRESS): Reject LABEL_REF.
13063
13064 2010-07-03  Jan Hubicka  <jh@suse.cz>
13065
13066         * timevar.def (TV_OUT_OF_SSA, TV_VAR_EXPAND, TV_POST_EXPAND,
13067         TV_VAR_TRACKING_DATAFLOW, TV_VAR_TRACKING_EMIT): New timevars.
13068         * cfgexpand.c (gimple_expand_cfg): Use new timevars.
13069         * var-tracking.c (vt_find_locations, variable_tracking_main_1):
13070         Likewise.
13071
13072         * lto-stramer-out.c (pass_ipa_lto_gimple_out, pass_ipa_lto_finish_out):
13073         Update timevars.V
13074         * timevar.def (TV_IPA_LTO_GIMPLE_IO, TV_IPA_LTO_DECL_IO): Remove.
13075         (TV_IPA_LTO_GIMPLE_IN, TV_IPA_LTO_GIMPLE_OUT, TV_IPA_LTO_DECL_IN,
13076         TV_IPA_LTO_DECL_OUT): New.
13077         * lto.c (read_cgraph_and_symbols, materialize_cgraph): Update timevars.
13078
13079 2010-07-03  Jan Hubicka  <jh@suse.cz>
13080
13081         * ipa-inline.c (update_edge_key): Break out from ...
13082         update_callers_keys): ... here;
13083         (update_callee_keys): Update only the edges from caller to callee.
13084         (update_all_calle_keys): Do what update_calle_keys did.
13085         (decide_inlining_of_small_functions): Avoid recomputing of all
13086         callees when badness increase.
13087
13088 2010-07-03  Jie Zhang  <jie@codesourcery.com>
13089
13090         * config/arm/arm.c (arm_attr_length_move_neon): New.
13091         * config/arm/arm-protos.h (arm_attr_length_move_neon): Declare.
13092         * config/arm/neon.md (define_mode_attr V_slen): Remove.
13093         (neon_mov<mode> for VSTRUCT): Use arm_attr_length_move_neon
13094         to compute length attribute.
13095
13096 2010-07-03  Jie Zhang  <jie@codesourcery.com>
13097
13098         * config/arm/vfp.md (*push_multi_vfp): Use vfp_register_operand
13099         as predicate for operand 1 and remove its constraint.
13100         * config/arm/predicates.md (vfp_register_operand): New.
13101         * config/arm/arm.md (*push_multi): Remove the constraint of operand 1.
13102         (*push_fp_multi): Likewise.
13103
13104 2010-07-03  Eric Botcazou  <ebotcazou@adacore.com>
13105
13106         * gimplify.c (mostly_copy_tree_r): Deal with BIND_EXPR.
13107
13108 2010-07-03  Jan Hubicka  <jh@suse.cz>
13109
13110         * config/i386/i386.c (override_options): Revert accidental commit.
13111
13112 2010-07-02  Le-Chun Wu  <lcwu@google.com>
13113
13114         PR c++/44128
13115         * doc/invoke.texi: Update documentation of -Wshadow.
13116
13117 2010-07-02  Daniel Jacobowitz  <dan@codesourcery.com>
13118             Julian Brown  <julian@codesourcery.com>
13119             Sandra Loosemore  <sandra@codesourcery.com>
13120
13121         * config/arm/arm.c (arm_canonicalize_comparison): Canonicalize DImode
13122         comparisons.  Adjust to take both operands.
13123         (arm_select_cc_mode): Handle DImode comparisons.
13124         (arm_gen_compare_reg): Generate a scratch register for DImode
13125         comparisons which require one.  Use xor for Thumb equality checks.
13126         (arm_const_double_by_immediates): New.
13127         (arm_print_operand): Allow 'Q' and 'R' for constants.
13128         (get_arm_condition_code): Handle new CC_CZmode and CC_NCVmode.
13129         * config/arm/arm.h (CANONICALIZE_COMPARISON): Always use
13130         arm_canonicalize_comparison.
13131         * config/arm/arm-modes.def: Add CC_CZmode and CC_NCVmode.
13132         * config/arm/arm-protos.h (arm_canonicalize_comparison): Update
13133         prototype.
13134         (arm_const_double_by_immediates): Declare.
13135         * config/arm/constraints.md (Di): New constraint.
13136         * config/arm/predicates.md (arm_immediate_di_operand)
13137         (arm_di_operand, cmpdi_operand): New.
13138         * config/arm/arm.md (cbranchdi4): Handle non-Cirrus also.
13139         (*arm_cmpdi_insn, *arm_cmpdi_unsigned)
13140         (*arm_cmpdi_zero, *thumb_cmpdi_zero): New insns.
13141         (cstoredi4): Handle non-Cirrus also.
13142
13143 2010-07-02  Julian Brown  <julian@codesourcery.com>
13144             Sandra Loosemore  <sandra@codesourcery.com>
13145
13146         PR target/43703
13147         * config/arm/vec-common.md (add<mode>3, sub<mode>3, smin<mode>3)
13148         (smax<mode>3): Disable for NEON float modes when
13149         flag_unsafe_math_optimizations is false.
13150         * config/arm/neon.md (*add<mode>3_neon, *sub<mode>3_neon)
13151         (*mul<mode>3_neon)
13152         (mul<mode>3add<mode>_neon, mul<mode>3neg<mode>add<mode>_neon)
13153         (reduc_splus_<mode>, reduc_smin_<mode>, reduc_smax_<mode>): Disable
13154         for NEON float modes when flag_unsafe_math_optimizations is false.
13155         (quad_halves_<code>v4sf): Only enable if
13156         flag_unsafe_math_optimizations is true.
13157         * doc/invoke.texi (ARM Options): Add note about floating point
13158         vectorization requiring -funsafe-math-optimizations.
13159
13160 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
13161             Julian Brown  <julian@codesourcery.com>
13162
13163         * config/arm/neon.md (UNSPEC_VABA): Delete.
13164         (UNSPEC_VABAL): Delete.
13165         (UNSPEC_VABS): Delete.
13166         (UNSPEC_VMUL_N): Delete.
13167         (adddi3_neon): New.
13168         (subdi3_neon): New.
13169         (mul<mode>3add<mode>_neon): Make the pattern named.
13170         (mul<mode>3neg<mode>add<mode>_neon): Likewise.
13171         (neon_vadd<mode>): Replace with define_expand, and move the remaining
13172         unspec parts...
13173         (neon_vadd<mode>_unspec): ...to this.
13174         (neon_vmla<mode>, neon_vmla<mode>_unspec): Likewise.
13175         (neon_vlms<mode>, neon_vmls<mode>_unspec): Likewise.
13176         (neon_vsub<mode>, neon_vsub<mode>_unspec): Likewise.
13177         (neon_vaba<mode>): Rewrite in terms of vabd.
13178         (neon_vabal<mode>): Rewrite in terms of vabdl.
13179         (neon_vabs<mode>): Rewrite without unspec.
13180         * config/arm/arm.md (*arm_adddi3): Disable for TARGET_NEON.
13181         (*arm_subdi3): Likewise.
13182         * config/arm/neon.ml (Vadd, Vsub): Split out 64-bit variants and add
13183         No_op attribute to disable assembly output checks.
13184         * config/arm/arm_neon.h: Regenerated.
13185         * doc/arm-neon-intrinsics.texi: Regenerated.
13186
13187 2010-07-02  Jan Hubicka  <jh@suse.cz>
13188
13189         * ipa-split.c (split_function): For aggregate values, set the return
13190         slot optimization bit.  When passing DECL_BY_REFERENCE, produce
13191         *<retval> = fncall.part ().
13192         (execute_split_functions): Do not care about DECL_BY_REFERENCE.
13193
13194 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
13195
13196         * config/arm/neon.md (UNSPEC_VAND): Delete.
13197         (UNSPEC_VBIC): Delete.
13198         (UNSPEC_VCLZ): Delete.
13199         (UNSPEC_VCNT): Delete.
13200         (UNSPEC_VEOR): Delete.
13201         (UNSPEC_VORN): Delete.
13202         (UNSPEC_VORR): Delete.
13203         (iordi3_neon): Rewrite RTL without unspec.  Add alternatives to handle
13204         core registers too.
13205         (anddi3_neon): Likewise.
13206         (orndi3_neon): Likewise.
13207         (bicdi3_neon): Likewise.
13208         (xordi3_neon): Likewise.
13209         (neon_vclz<mode>): Rewrite as define_expand and clz<mode>2 to get
13210         rid of unspec and handle unused operand.
13211         (neon_vcnt<mode>): Similarly, with popcount<mode>2.
13212         * config/arm/predicates.md (imm_for_neon_logic_operand):
13213         Require TARGET_NEON.
13214         (imm_for_neon_inv_logic_operand): Likewise.
13215         * config/arm/arm.md (define_split for logical_binary_operator):
13216         Disable for NEON registers.
13217         (anddi3): Add new define_expand, and rename the insn.  Disable
13218         this insn for NEON, where anddi3_neon now applies.
13219         (*anddi_notdi_di): Disable for TARGET_NEON, where bicdi3_neon applies.
13220         (iordi3): As for anddi3.
13221         (xordi3): Likewise.
13222         * config/arm/neon.ml (Vand): Split DImode variants and mark them
13223         as No_op to disable testing for exact instruction match.
13224         (Vorr): Likewise.
13225         (Veor): Likewise.
13226         (Vbic): Likewise.
13227         (Vorn): Likewise.
13228         * config/arm/arm_neon.h: Regenerated.
13229         * doc/arm-neon-intrinsics.texi: Regenerated.
13230
13231 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
13232
13233         * expr.h (emit_stack_probe): Declare.
13234         * explow.c (emit_stack_probe): Make global.
13235         (anti_adjust_stack_and_probe): Fix comments.
13236         * config/sparc/linux.h (STACK_CHECK_STATIC_BUILTIN): Define to 1.
13237         * config/sparc/linux64.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13238         * config/sparc/sol2.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
13239         * config/sparc/sparc.c: Include except.h.
13240         (sparc_emit_probe_stack_range): New function.
13241         (output_probe_stack_range): Likewise.
13242         (sparc_expand_prologue): Invoke sparc_emit_probe_stack_range if static
13243         built-in stack checking is enabled.
13244         * config/sparc/sparc-protos.h (output_probe_stack_range): Declare.
13245         * config/sparc/sparc.md (UNSPECV_PROBE_STACK_RANGE): New constant.
13246         (probe_stack_range): New insn.
13247
13248 2010-07-02  Richard Guenther  <rguenther@suse.de>
13249
13250         PR target/43958
13251         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Use pointer arithmetic
13252         for argument alignment.
13253
13254 2010-07-02  Jan Hubicka  <jh@suse.cz>
13255
13256         * ipa-split.c (verify_non_ssa_vars): Break out from ...; perform DFS
13257         walk backwards from entry_bb to check only those basic block of header
13258         that might lead to execution of split part.
13259         (consider_split) ... here.
13260         (find_return_bb): Allow assignment in return BB.
13261         (find_retval): New.
13262         (split_function): Fix name of cloned function; take care of updating
13263         return value in return_bb containing move.
13264
13265 2010-07-02  Andreas Schwab  <schwab@linux-m68k.org>
13266
13267         PR target/44771
13268         * config/m68k/m68k.c (m68k_expand_prologue): Remove set but not
13269         used variable insn.
13270
13271 2010-07-02  Eric Botcazou  <ebotcazou@adacore.com>
13272
13273         * implicit-zee.c (combine_reaching_defs): Fix long lines.
13274         (is_set_with_extension_DI): Delete.
13275         (struct zero_extend_info): New structure.
13276         (add_removable_zero_extend): New function.
13277         (find_removable_zero_extends): Use note_stores to find SETs.
13278         (find_and_remove_ze): Fix long line, remove superfluous parentheses.
13279
13280 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
13281
13282         * tree-ssa-loop-prefetch.c (compute_miss_rate): Rename to
13283         is_miss_rate_acceptable. Pull total_positions computation
13284         out of the loops.  Early return if miss_positions exceeds
13285         the acceptable threshold.
13286         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Call
13287         is_miss_rate_acceptable after renaming of compute_miss_rate.
13288
13289 2010-07-02  Changpeng Fang  <changpeng.fang@amd.com>
13290
13291         PR middle-end/44576
13292         * tree-ssa-loop-prefetch.c (compute_miss_rate): Return 1000 (out
13293         of 1000) for miss rate if the address diference is greater than or
13294         equal to the cache line size (the two reference will never hit the
13295         same cache line).
13296
13297 2010-07-02  Bernd Schmidt  <bernds@codesourcery.com>
13298
13299         PR target/42835
13300         * config/arm/arm-modes.def (CC_NOTB): New mode.
13301         * config/arm/arm.c (get_arm_condition_code): Handle it.
13302         * config/arm/thumb2.md (thumb2_compare_scc): Delete pattern.
13303         * config/arm/arm.md (subsi3_compare0_c): New pattern.
13304         (compare_scc): Now a define_and_split.  Add a number of extra
13305         splitters before it.
13306
13307         PR target/42172
13308         * config/arm/arm.c (thumb1_rtx_costs): Improve support for SIGN_EXTEND
13309         and ZERO_EXTEND.
13310         (arm_rtx_costs_1): Likewise.
13311         (arm_size_rtx_costs): Use arm_rtx_costs_1 for these codes.
13312         * config/arm/arm.md (is_arch6): New attribute.
13313         (zero_extendhisi2, zero_extendqisi2, extendhisi2,
13314         extendqisi2): Tighten the code somewhat, avoiding invalid
13315         RTL to occur in the expander patterns.
13316         (thumb1_zero_extendhisi2): Merge with thumb1_zero_extendhisi2_v6.
13317         (thumb1_zero_extendhisi2_v6): Delete.
13318         (thumb1_extendhisi2): Merge with thumb1_extendhisi2_v6.
13319         (thumb1_extendhisi2_v6): Delete.
13320         (thumb1_extendqisi2): Merge with thumb1_extendhisi2_v6.
13321         (thumb1_extendqisi2_v6): Delete.
13322         (zero_extendhisi2 for register input splitter): New.
13323         (zero_extendqisi2 for register input splitter): New.
13324         (thumb1_extendhisi2 for register input splitter): New.
13325         (extendhisi2 for register input splitter): New.
13326         (extendqisi2 for register input splitter): New.
13327         (TARGET_THUMB1 extendqisi2 for memory input splitter): New.
13328         (arm_zero_extendhisi2): Allow nonimmediate_operand for operand 1,
13329         and add support for a register alternative requiring a split.
13330         (thumb1_zero_extendqisi2): Likewise.
13331         (arm_zero_extendqisi2): Likewise.
13332         (arm_extendhisi2): Likewise.
13333         (arm_extendqisi2): Likewise.
13334
13335 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
13336
13337         * config/arm/arm.c (neon_vdup_constant): Expand into canonical RTL
13338         instead of an unspec.
13339         (neon_expand_vector_init): Likewise.
13340         * config/arm/neon.md (UNSPEC_VCOMBINE): Delete.
13341         (UNSPEC_VDUP_LANE): Delete.
13342         (UNSPEC VDUP_N): Delete.
13343         (UNSPEC_VGET_HIGH): Delete.
13344         (UNSPEC_VGET_LANE): Delete.
13345         (UNSPEC_VGET_LOW): Delete.
13346         (UNSPEC_VMVN): Delete.
13347         (UNSPEC_VSET_LANE): Delete.
13348         (V_double_vector_mode): New.
13349         (vec_set<mode>_internal): Make code emitted match that for the
13350         corresponding intrinsics.
13351         (vec_setv2di_internal): Likewise.
13352         (neon_vget_lanedi): Rewrite to expand into emit_move_insn.
13353         (neon_vget_lanev2di): Rewrite to expand into vec_extractv2di.
13354         (neon_vset_lane<mode>): Combine double and quad patterns and
13355         expand into vec_set<mode>_internal instead of UNSPEC_VSET_LANE.
13356         (neon_vset_lanedi): Rewrite to expand into emit_move_insn.
13357         (neon_vdup_n<mode>): Rewrite RTL without unspec.
13358         (neon_vdup_ndi): Rewrite as define_expand and use emit_move_insn.
13359         (neon_vdup_nv2di): Rewrite RTL without unspec and merge with
13360         with neon_vdup_lanev2di, adjusting the pattern from the latter
13361         to be predicable for consistency.
13362         (neon_vdup_lane<mode>_internal): New.
13363         (neon_vdup_lane<mode>): Turn into a define_expand and rewrite
13364         to avoid using an unspec.
13365         (neon_vdup_lanedi): Rewrite RTL pattern to avoid unspec.
13366         (neon_vdup_lanev2di): Turn into a define_expand.
13367         (neon_vcombine): Rewrite pattern to eliminate UNPSEC_VCOMBINE.
13368         (neon_vget_high<mode>): Replace with....
13369         (neon_vget_highv16qi): New pattern using canonical RTL.
13370         (neon_vget_highv8hi): Likewise.
13371         (neon_vget_highv4si): Likewise.
13372         (neon_vget_highv4sf): Likewise.
13373         (neon_vget_highv2di): Likewise.
13374         (neon_vget_low<mode>): Replace with....
13375         (neon_vget_lowv16qi): New pattern using canonical RTL.
13376         (neon_vget_lowv8hi): Likewise.
13377         (neon_vget_lowv4si): Likewise.
13378         (neon_vget_lowv4sf): Likewise.
13379         (neon_vget_lowv2di): Likewise.
13380
13381         * config/arm/neon.ml (Vget_lane): Add No_op attribute to suppress
13382         test for this emitting vmov.
13383         (Vset_lane): Likewise.
13384         (Vdup_n): Likewise.
13385         (Vmov_n): Likewise.
13386
13387         * doc/arm-neon-intrinsics.texi: Regenerated.
13388
13389 2010-07-02  Sandra Loosemore  <sandra@codesourcery.com>
13390
13391         * config/arm/neon.md (vec_extractv2di): Correct error in register
13392         numbering to reconcile with neon_vget_lanev2di.
13393
13394 2010-07-02  Richard Guenther  <rguenther@suse.de>
13395
13396         * tree-ssa-structalias.c (pt_solution_set_var): New function.
13397         * tree-ssa-alias.h (pt_solution_set_var): Declare.
13398         * tree-ssa-loop-ivopts.c (copy_ref_info): Also copy or create
13399         points-to information.
13400
13401 2010-07-02  Christian Borntraeger  <borntraeger@de.ibm.com>
13402
13403         * config/s390/s390.c (override_options): Adopt prefetching
13404         at -O3 to handle flag_prefetch_loop_arrays as a tristate.
13405
13406 2010-07-02  Jan Hubicka  <jh@suse.cz>
13407
13408         * df-problems.c (df_kill_notes): Do not collect dead  notes.
13409         (df_set_note): Just call add_reg_note.
13410         (df_set_unused_notes_for_mw, df_set_dead_notes_for_mw,
13411         df_create_unused_note): Do not deal with lists of old notes.
13412         (df_note_bb_compute): Likewise.
13413
13414 2010-07-02  Richard Guenther  <rguenther@suse.de>
13415
13416         * tree-ssa-structalias.c (find_func_aliases): Handle
13417         pointer alignment via BIT_AND_EXPR.
13418         * tree-vrp.c (extract_range_from_binary_expr): Likewise.
13419
13420 2010-07-02  Richard Guenther  <rguenther@suse.de>
13421
13422         * tree-data-ref.c (initialize_data_dependence_relation): Handle
13423         mismatching number of dimensions properly.
13424
13425 2010-07-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
13426
13427         PR target/44707
13428         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Recognize
13429         (lo_sum (high ...) ...) patterns generated by earlier passes.
13430
13431 2010-07-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13432
13433         * doc/install.texi (Prerequisites): Document Perl requirement on
13434         Solaris 2.
13435         (Specific, *-*-solaris2*): Document GNU c++filt requirement.
13436
13437 2010-07-02  Richard Guenther  <rguenther@suse.de>
13438
13439         PR middle-end/44777
13440         * tree-cfg.c (gimple_block_ends_with_call_p): Handle empty BBs.
13441
13442 2010-07-02  Jan Hubicka  <jh@suse.cz>
13443
13444         PR middle-end/44706
13445         * predict.c (predict_paths_for_bb): Handle case when control dependence
13446         BB has only abnormal edges.
13447
13448 2010-07-02  Richard Guenther  <rguenther@suse.de>
13449
13450         PR tree-optimization/44748
13451         * tree-ssa-ccp.c (fold_const_aggregate_ref): Properly handle
13452         the embedded conversion in MEM_REFs.
13453
13454 2010-07-01  López-Ibáñez  <manu@gcc.gnu.org>
13455
13456         * reload.c: Include toplev.h.
13457         * recog.c:  Likewise.
13458         * Makefile.in: Adjust dependencies.
13459
13460 2010-07-01  Jakub Jelinek  <jakub@redhat.com>
13461
13462         PR debug/44694
13463         * dwarf2out.c (reg_loc_descriptor): For eliminated arg_pointer_rtx
13464         or frame_pointer_rtx use DW_OP_fbreg offset DW_OP_stack_value.
13465
13466 2010-07-01  Richard Guenther  <rguenther@suse.de>
13467
13468         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use unsigned
13469         types for offsets.
13470
13471 2010-07-01  Joern Rennecke  <joern.rennecke@embecosm.com>
13472
13473         PR target/44732
13474         * config/ia64/ia64.c (ia64_register_move_cost): Remove stray '{'.
13475         Fix argument types.
13476
13477 2010-07-01  Bernd Schmidt  <bernds@codesourcery.com>
13478
13479         PR target/44727
13480         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
13481         Make sure operand 0 dies.
13482
13483 2010-07-01  Richard Guenther  <rguenther@suse.de>
13484
13485         PR middle-end/42834
13486         PR middle-end/44468
13487         * doc/gimple.texi (is_gimple_mem_ref_addr): Document.
13488         * doc/generic.texi (References to storage): Document MEM_REF.
13489         * tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
13490         (print_call_name): Likewise.
13491         * tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
13492         (build_simple_mem_ref_loc): New function.
13493         (mem_ref_offset): Likewise.
13494         * tree.h (build_simple_mem_ref_loc): Declare.
13495         (build_simple_mem_ref): Define.
13496         (mem_ref_offset): Declare.
13497         * fold-const.c: Include tree-flow.h.
13498         (operand_equal_p): Handle MEM_REF.
13499         (build_fold_addr_expr_with_type_loc): Likewise.
13500         (fold_comparison): Likewise.
13501         (fold_unary_loc): Fold
13502         VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
13503         (fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
13504         fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
13505         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
13506         (ptr_deref_may_alias_ref_p_1): Likewise.
13507         (ao_ref_base_alias_set): Properly differentiate base object for
13508         offset and TBAA.
13509         (ao_ref_init_from_ptr_and_size): Use MEM_REF.
13510         (indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
13511         (indirect_refs_may_alias_p): Likewise.
13512         (refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
13513         chasing code.
13514         (ref_maybe_used_by_call_p_1): Handle MEM_REF.
13515         (call_may_clobber_ref_p_1): Likewise.
13516         * dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
13517         * expr.c (expand_assignment): Handle MEM_REF.
13518         (store_expr): Handle MEM_REFs from STRING_CSTs.
13519         (store_field): If expanding a MEM_REF of a non-addressable
13520         decl use bitfield operations.
13521         (get_inner_reference): Handle MEM_REF.
13522         (expand_expr_addr_expr_1): Likewise.
13523         (expand_expr_real_1): Likewise.
13524         * tree-eh.c (tree_could_trap_p): Handle MEM_REF.
13525         * alias.c (ao_ref_from_mem): Handle MEM_REF.
13526         (get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
13527         * tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
13528         (dr_analyze_indices): Likewise.
13529         (dr_analyze_alias): Likewise.
13530         (object_address_invariant_in_loop_p): Likewise.
13531         * gimplify.c (mark_addressable): Handle MEM_REF.
13532         (gimplify_cond_expr): Build MEM_REFs.
13533         (gimplify_modify_expr_to_memcpy): Likewise.
13534         (gimplify_init_ctor_preeval_1): Handle MEM_REF.
13535         (gimple_fold_indirect_ref): Adjust.
13536         (gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
13537         * tree.def (MEM_REF): New tree code.
13538         * tree-dfa.c: Include toplev.h.
13539         (get_ref_base_and_extent): Handle MEM_REF.
13540         (get_addr_base_and_unit_offset): New function.
13541         * emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
13542         * gimple-fold.c (may_propagate_address_into_dereference): Handle
13543         MEM_REF.
13544         (maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
13545         accesses if the array has just one dimension.  Remove always true
13546         parameter.  Do not require type compatibility here.
13547         (maybe_fold_offset_to_component_ref): Remove.
13548         (maybe_fold_stmt_indirect): Remove.
13549         (maybe_fold_reference): Remove INDIRECT_REF handling.
13550         Fold back to non-MEM_REF.
13551         (maybe_fold_offset_to_address): Simplify.  Deal with type
13552         mismatches here.
13553         (maybe_fold_reference): Likewise.
13554         (maybe_fold_stmt_addition): Likewise.  Also handle
13555         &ARRAY + I in addition to &ARRAY[0] + I.
13556         (fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
13557         (gimple_get_relevant_ref_binfo): Handle MEM_REF.
13558         * cfgexpand.c (expand_debug_expr): Handle MEM_REF.
13559         * tree-ssa.c (useless_type_conversion_p): Make most pointer
13560         conversions useless.
13561         (warn_uninitialized_var): Handle MEM_REF.
13562         (maybe_rewrite_mem_ref_base): New function.
13563         (execute_update_addresses_taken): Implement re-writing of MEM_REFs
13564         to SSA form.
13565         * tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
13566         INDIRECT_REF handling.
13567         (copy_tree_body_r): Handle MEM_REF.
13568         * gimple.c (is_gimple_addressable): Adjust.
13569         (is_gimple_address): Likewise.
13570         (is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
13571         invariant base are invariant.
13572         (is_gimple_min_lval): Adjust.
13573         (is_gimple_mem_ref_addr): New function.
13574         (get_base_address): Handle MEM_REF.
13575         (count_ptr_derefs): Likewise.
13576         (get_base_loadstore): Likewise.
13577         * gimple.h (is_gimple_mem_ref_addr): Declare.
13578         (gimple_call_fndecl): Handle invariant MEM_REF addresses.
13579         * tree-cfg.c (verify_address): New function, split out from ...
13580         (verify_expr): ... here.  Use for verifying ADDR_EXPRs and
13581         the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
13582         INDIRECT_REFs.
13583         (verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
13584         INDIRECT_REF.  Allow conversions.
13585         (verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
13586         a register does not change its size.
13587         (verify_types_in_gimple_reference): Verify MEM_REF.
13588         (verify_gimple_assign_single): Disallow INDIRECT_REF.
13589         Handle MEM_REF.
13590         * tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
13591         New.
13592         (mark_address_taken): Handle MEM_REF.
13593         (get_indirect_ref_operands): Pass through opf_not_non_addressable.
13594         (get_asm_expr_operands): Pass opf_not_non_addressable.
13595         (get_expr_operands): Handle opf_[not_]non_addressable.
13596         Handle MEM_REF.  Remove INDIRECT_REF handling.
13597         * tree-vrp.c (check_array_ref): Handle MEM_REF.
13598         (search_for_addr_array): Likewise.
13599         (check_array_bounds): Likewise.
13600         (vrp_stmt_computes_nonzero): Adjust for MEM_REF.
13601         * tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
13602         (ref_always_accessed_p): Likewise.
13603         (gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
13604         * tree-complex.c (extract_component): Do not handle INDIRECT_REF.
13605         Handle MEM_REF.
13606         * cgraphbuild.c (mark_load): Properly check for NULL result
13607         from get_base_address.
13608         (mark_store): Likewise.
13609         * tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
13610         * tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
13611         handling for MEM_REF.
13612         * tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
13613         &MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
13614         * builtins.c (stabilize_va_list_loc): Use the function ABI
13615         valist type if we couldn't canonicalize the argument type.
13616         Always dereference with the canonical va-list type.
13617         (maybe_emit_free_warning): Handle MEM_REF.
13618         (fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
13619         memmove to memcpy.
13620         * builtins.c (fold_builtin_memory_op): Use ref-all types
13621         for all memcpy foldings.
13622         * omp-low.c (build_receiver_ref): Adjust for MEM_REF.
13623         (build_outer_var_ref): Likewise.
13624         (scan_omp_1_op): Likewise.
13625         (lower_rec_input_clauses): Likewise.
13626         (lower_lastprivate_clauses): Likewise.
13627         (lower_reduction_clauses): Likewise.
13628         (lower_copyprivate_clauses): Likewise.
13629         (expand_omp_atomic_pipeline): Likewise.
13630         (expand_omp_atomic_mutex): Likewise.
13631         (create_task_copyfn): Likewise.
13632         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
13633         Remove old union trick.  Initialize constant offsets.
13634         (ao_ref_init_from_vn_reference): Likewise.  Do not handle
13635         INDIRECT_REF.  Init base_alias_set properly.
13636         (vn_reference_lookup_3): Replace INDIRECT_REF handling with MEM_REF.
13637         (vn_reference_fold_indirect): Adjust for MEM_REFs.
13638         (valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
13639         for ARRAY_REFs.
13640         (may_insert): Remove.
13641         (visit_reference_op_load): Do not test may_insert.
13642         (run_scc_vn): Remove parameter, do not fiddle with may_insert.
13643         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
13644         a field to store the constant offset this op applies.
13645         (run_scc_vn): Adjust prototype.
13646         * cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
13647         * tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
13648         MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
13649         bother about volatile qualifiers on pointers.
13650         (fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
13651         * tree-ssa-loop-ivopts.c
13652         * tree-ssa-loop-ivopts.c (determine_base_object): Adjust for MEM_REF.
13653         (strip_offset_1): Likewise.
13654         (find_interesting_uses_address): Replace INDIRECT_REF handling with
13655         MEM_REF handling.
13656         (get_computation_cost_at): Likewise.
13657         * ipa-pure-const.c (check_op): Handle MEM_REF.
13658         * tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
13659         * tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
13660         and constants.
13661         * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
13662         * tree-parloops.c (take_address_of): Adjust for MEM_REF.
13663         (eliminate_local_variables_1): Likewise.
13664         (create_call_for_reduction_1): Likewise.
13665         (create_loads_for_reductions): Likewise.
13666         (create_loads_and_stores_for_name): Likewise.
13667         * matrix-reorg.c (may_flatten_matrices_1): Sanitize.
13668         (ssa_accessed_in_tree): Handle MEM_REF.
13669         (ssa_accessed_in_assign_rhs): Likewise.
13670         (update_type_size): Likewise.
13671         (analyze_accesses_for_call_stmt): Likewise.
13672         (analyze_accesses_for_assign_stmt): Likewise.
13673         (transform_access_sites): Likewise.
13674         (transform_allocation_sites): Likewise.
13675         * tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
13676         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
13677         not handle INDIRECT_REF.
13678         * tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
13679         (cond_store_replacement): Likewise.
13680         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
13681         MEM_REF, no not handle INDIRECT_REFs.
13682         (insert_into_preds_of_block): Properly initialize avail.
13683         (phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
13684         for ARRAY_REFs.  Properly handle reference lookups that
13685         require a bit re-interpretation.
13686         (can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
13687         * tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
13688         (build_ref_for_offset_1): Remove.
13689         (build_ref_for_offset): Build MEM_REFs.
13690         (gate_intra_sra): Disable for now.
13691         (sra_ipa_modify_expr): Handle MEM_REF.
13692         (ipa_early_sra_gate): Disable for now.
13693         * tree-sra.c (create_access): Swap INDIRECT_REF handling for
13694         MEM_REF handling.
13695         (disqualify_base_of_expr): Likewise.
13696         (ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
13697         MEM_REF handling.
13698         (sra_ipa_modify_expr): Remove INDIRECT_REF handling.
13699         Use mem_ref_offset.  Remove bogus folding.
13700         (build_access_from_expr_1): Properly handle MEM_REF for non IPA-SRA.
13701         (make_fancy_name_1): Add support for MEM_REF.
13702         * tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
13703         * tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
13704         * ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
13705         (compute_complex_ancestor_jump_func): Likewise.
13706         (ipa_analyze_virtual_call_uses): Likewise.
13707         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
13708         INDIRECT_REF folding with more generalized MEM_REF folding.
13709         (tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
13710         (forward_propagate_addr_into_variable_array_index): Also handle
13711         &ARRAY + I in addition to &ARRAY[0] + I.
13712         * tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
13713         * tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
13714         creates assignments with overlap.
13715         * tree-nested.c (get_static_chain): Adjust for MEM_REF.
13716         (get_frame_field): Likewise.
13717         (get_nonlocal_debug_decl): Likewise.
13718         (convert_nonlocal_reference_op): Likewise.
13719         (struct nesting_info): Add mem_refs pointer-set.
13720         (create_nesting_tree): Allocate it.
13721         (convert_local_reference_op): Insert to be folded mem-refs.
13722         (fold_mem_refs): New function.
13723         (finalize_nesting_tree_1): Perform defered folding of mem-refs
13724         (free_nesting_tree): Free the pointer-set.
13725         * tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
13726         (vectorizable_load): Likewise.
13727         * tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
13728         (propagate_with_phi): Likewise.
13729         * tree-object-size.c (addr_object_size): Handle MEM_REFs
13730         instead of INDIRECT_REFs.
13731         (compute_object_offset): Handle MEM_REF.
13732         (plus_stmt_object_size): Handle MEM_REF.
13733         (collect_object_sizes_for): Dispatch to plus_stmt_object_size
13734         for &MEM_REF.
13735         * tree-flow.h (get_addr_base_and_unit_offset): Declare.
13736         (symbol_marked_for_renaming): Likewise.
13737         * Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
13738         (fold-const.o): Add $(TREE_FLOW_H).
13739         * tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
13740         (find_func_clobbers): Likewise.
13741         * ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
13742         (decompose_access): Likewise.
13743         (replace_field_acc): Likewise.
13744         (replace_field_access_stmt): Likewise.
13745         (insert_new_var_in_stmt): Likewise.
13746         (get_stmt_accesses): Likewise.
13747         (reorg_structs_drive): Disable.
13748         * config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
13749         (ix86_canonical_va_list_type): Likewise.
13750
13751 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
13752
13753         PR other/44566
13754         * coretypes.h [!USED_FOR_TARGET] (reg_class_t): Define.
13755         * target.def (struct gcc_target): Replace enum reg_class with
13756         reg_class_t in hook argument / return types.
13757         * doc/tm.texi.in (TARGET_SECONDARY_RELOAD): Likewise.
13758         (TARGET_IRA_COVER_CLASSES, TARGET_MEMORY_MOVE_COST): Likewise.
13759         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise.
13760         * targhooks.h (default_branch_target_register_class): Likewise.
13761         (default_ira_cover_classes, default_secondary_reload): Likewise.
13762         (default_memory_move_cost, default_register_move_cost): Likewise.
13763         * targhooks.c (default_branch_target_register_class): Likewise.
13764         (default_ira_cover_classes, default_secondary_reload): Likewise.
13765         (default_memory_move_cost, default_register_move_cost): Likewise.
13766         * reload.c (push_secondary_reload, secondary_reload_class): Likewise.
13767         * bt-load.c (branch_target_load_optimize): Likewise.
13768         * ira.c (setup_cover_and_important_classes): Likewise.
13769         * ira-costs.c (copy_cost): Likewise.
13770         * reload1.c (emit_input_reload_insns): Likewise.
13771         * config/alpha/alpha.c (alpha_secondary_reload): Likewise.
13772         * config/frv/frv.c (frv_secondary_reload): Likewise.
13773         * config/s390/s390.c (s390_secondary_reload): Likewise.
13774         * config/i386/i386.c (i386_ira_cover_classes): Likewise.
13775         (ix86_secondary_reload, ix86_memory_move_cost): Likewise.
13776         (ix86_register_move_cost): Likewise.
13777         * config/sh/sh-protos.h (sh_secondary_reload): Likewise.
13778         * config/sh/sh.c (sh_target_reg_class, sh_secondary_reload): Likewise.
13779         * config/xtensa/xtensa.c (xtensa_secondary_reload): Likewise.
13780         * config/xtensa/xtensa-protos.h (xtensa_secondary_reload): Likewise.
13781         * config/rs6000/rs6000.c (rs6000_secondary_reload): Likewise.
13782         (rs6000_ira_cover_classes): Likewise.
13783         * config/picochip/picochip.c (picochip_secondary_reload): Likewise.
13784         * config/picochip/picochip-protos.h (picochip_secondary_reload):
13785         Likewise.
13786         * config/pa/pa.c (pa_secondary_reload): Likewise.
13787         * config/mips/mips.c (mips_ira_cover_classes): Likewise.
13788         * config/bfin/bfin.c (bfin_secondary_reload): Likewise.
13789         * config/ia64/ia64.c (ia64_register_move_cost): Likewise.
13790         * doc/tm.texi: Regenerate.
13791
13792 2010-06-30  Sebastian Pop  <sebastian.pop@amd.com>
13793
13794         PR bootstrrap/44726
13795         * graphite-sese-to-poly.c (build_poly_dr): Avoid uninitialized
13796         use.
13797         (build_alias_set_optimal_p): Likewise.
13798         (build_base_obj_set_for_drs): Likewise.
13799
13800 2010-06-30  Joern Rennecke  <joern.rennecke@embecosm.com>
13801
13802         * target.def: Remove comment about licensing problems of function
13803         declarations.
13804
13805         * target.def (declare_constant_name): Change exp to expr.  Use DEFHOOK.
13806         * doc/tm.texi.in (TARGET_ASM_DECLARE_CONSTANT_NAME): Use @hook.
13807         * doc/tm.texi: Regenerate.
13808
13809         * target.def (builtin_reciprocal): Change tm_fn to md_fn.  Use DEFHOOK.
13810         * doc/tm.texi.in (TARGET_BUILTIN_RECIPROCAL): Use @hook.
13811
13812         * target.def (enum_va_list_p): Use DEFHOOK.
13813         * doc/tm.texi.in (TARGET_ENUM_VA_LIST_P): Use @hook.
13814         Rename ptype to ptree.
13815         * doc/tm.texi: Regenerate.
13816
13817         * target.def (fold_builtin): Rename nargs to n_args.  Use DEFHOOK.
13818         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Use @hook.
13819         * doc/tm.texi: Regenerate.
13820
13821         * target.def (memory_move_cost): Use DEFHOOK.
13822         * doc/tm.texi.in (TARGET_MEMORY_MOVE_COST): Use @hook.
13823         Rename regclass AKA class to rclass.
13824         * doc/tm.texi: Regenerate.
13825
13826         * target.def (pragma_parse): Use DEFHOOK.
13827         * doc/tm.texi.in (TARGET_OPTION_PRAGMA_PARSE): Use @hook.
13828         s/TARGET_VALID_OPTION_ATTRIBUTE_P/TARGET_OPTION_VALID_ATRIBUTE_P/ .
13829         * doc/tm.texi: Regenerate.
13830
13831         * target.def (pass_by_reference): Use DEFHOOK.
13832         * doc/tm.texi.in (TARGET_PASS_BY_REFERENCE): Use @hook.
13833         * doc/tm.texi: Regenerate.
13834
13835         * target.def (resolve_overloaded_builtin): Rename params to arglist.
13836         Use DEFHOOK.
13837         * doc/tm.texi.in (TARGET_RESOLVE_OVERLOADED_BUILTIN): Use @hook.
13838         * doc/tm.texi: Regenerate.
13839
13840         * target.def (return_pops_args): Use DEFHOOK.
13841         * doc/tm.texi.in (TARGET_RETURN_POPS_ARGS): Use @hook.
13842         Rename stack-size to size.
13843         * doc/tm.texi: Regenerate.
13844
13845         * target.def (dfa_new_cycle): Use DEFHOOK.  Rename dump_file to dump,
13846         last-sched_cycle to last_clock, cur_cycle to clock.
13847         * doc/tm.texi.in: Use @hook.
13848         * doc/tm.texi: Regenerate.
13849
13850         * target.def (print_operand, print_operand_address): Update comment.
13851         (print_operand_punct_valid_p): Likewise.
13852
13853 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13854
13855         * toplev.h (_fatal_insn_not_found, _fatal_insn): Move declarations
13856         to rtl.h.
13857         (error_for_asm, warning_for_asm): Move declarations to rtl-error.h.
13858         * rtl.h (_fatal_insn_not_found, _fatal_insn): Move declarations here.
13859         * rtl-error.h: New.
13860         * regrename.c: Do not include toplev.h. Include rtl-error.h.
13861         * rtl-error.c: Likewise.
13862         * reload.c: Likewise.
13863         * recog.c:  Likewise.
13864         * sel-sched.c: Likewise.
13865         * function.c: Likewise.
13866         * reg-stack.c: Likewise.
13867         * cfgrtl.c: Likewise.
13868         * reload1.c: Likewise.
13869         * final.c: Include rtl-error.
13870         * Makefile.in: Adjust dependencies.
13871
13872 2010-06-30  Jan Hubicka  <jh@suse.cz>
13873
13874         PR middle-end/PR44706
13875         * ipa-split (split_function): Refine conditions when to use DECL_RESULT
13876         to return the value.
13877
13878 2010-06-30  Michael Matz  <matz@suse.de>
13879
13880         PR bootstrap/44699
13881         * tree-vrp.c (vrp_finalize): Deal with changing num_ssa_names.
13882         * gimple-fold.c (gimplify_and_update_call_from_tree): If LHS is
13883         a gimple reg, attach the original VDEF to the last store in the
13884         sequence.
13885
13886 2010-06-30  Iain Sandoe  <iains@gcc.gnu.org>
13887
13888         PR other/44034
13889         * config/darwin.c (darwin_override_options): Use renamed
13890         targetm.asm_out.emit_unwind_label.
13891
13892 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
13893
13894         PR tree-optimization/39799
13895         * tree-inline.c (remap_ssa_name): Initialize variable only if
13896         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
13897
13898 2010-06-30  Nathan Froyd  <froydnj@codesourcery.com>
13899
13900         * c-parser.c (c_parser_omp_for_loop): Use a VEC for for_block.
13901
13902 2010-06-30  Richard Guenther  <rguenther@suse.de>
13903
13904         PR target/44722
13905         * config/i386/i386.md (peephole2 for fix:SSEMODEI24): Guard
13906         against oscillation with reverse peephole2.
13907
13908 2010-06-30  H.J. Lu  <hongjiu.lu@intel.com>
13909
13910         PR target/44721
13911         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
13912         Fix last commit.
13913
13914 2010-06-30  Nick Clifton  <nickc@redhat.com>
13915
13916         * config/rx/rx-modes.def: New file.
13917         * config/rx/rx.h (FIRST_PSEUDO_REGISTER): Increase to 17.
13918         (CC_REGNUM): Define.
13919         (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add cc
13920         register.
13921         (CC_NO_CARRY, NOTICE_UPDATE_CC): Delete.
13922         (SELECT_CC_MODE): Define.
13923         * config/rx/rx.md (CC_REG): Define.  Update all patterns to use
13924         (reg:CC CC_REG) instead of (cc0).
13925         (attr "cc"): Delete.
13926         (cbranchsi4): Do not split compare and branch here. Instead move
13927         it to...
13928         (cbranchsi4_<code>): ... here.  New patterns.
13929         (cmpsi): Call rx-compare_redundant to find out if it is necessary
13930         to emit the compare instruction.
13931         * config/rx/rx.c (rx_gen-cond_branch_template): Remove tests of
13932         cc_status flags.
13933         (rx_get_stack_layout): Iterate up to before CC_REGNUM not
13934         FIRST_PSEUDO_REGNUM.
13935         (rx_expand_prologue, rx_expand_epilogue): Likewise.
13936         (rx_notice_update_cc): Delete.
13937         (rx_cc_modes_compatible): New function.
13938         (flags_needed_for_conditional): New function.
13939         (flags_from_mode): New function.
13940         (rx_compare_redundant): New function - scans backwards through
13941         insn list to find out if condition flags are already set correctly.
13942         (TARGET_CC_MODES_COMPATIBLE): Define.
13943         * config/rx/rx-protos.h (rx_compare_redundant): Prototype.
13944
13945         * config/rx/rx.h (BRANCH_COST): Define.
13946         (REGISTER_MOVE_COST): Define.
13947         * config/rx/predicates (rx_source_operand): Allow all constant types.
13948         * config/rx/rx.md (addsi3): Add alternative for swapped operands.
13949         (tstsi4): New pattern.
13950         * config/rx/rx.c (rx_memory_move_cost): Define.
13951         (TARGET_MEMORY_MOVE_COST): Define.
13952
13953 2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13954
13955         * tree.h (block_may_fallthru): Declare here.
13956         * tree-flow.h (block_may_fallthru): Do not declare here.
13957         * c-typeck.c: Do not include tree-flow.h. Include gimple.h and
13958         bitmap.h
13959         * Makefile.in (c-typeck.o): Update dependencies.
13960
13961 2010-06-30  Jakub Jelinek  <jakub@redhat.com>
13962
13963         PR debug/44694
13964         * cselib.h (cselib_preserve_cfa_base_value): Add regno argument.
13965         * cselib.c (cfa_base_preserved_regno): New static variable.
13966         (cselib_reset_table): Don't reset cfa_base_preserved_regno instead
13967         of REGNO (cfa_base_preserved_val->locs->loc).
13968         (cselib_preserve_cfa_base_value): Add regno argument, set
13969         cfa_base_preserved_regno to it.
13970         (cselib_invalidate_regno): Allow removal of registers other than
13971         cfa_base_preserved_regno from cfa_base_preserved_val.
13972         (cselib_finish): Set cfa_base_preserved_regno to INVALID_REGNUM.
13973         * var-tracking.c (adjust_mems): Replace sp or hfp even outside
13974         of MEM addresses, if not on LHS.
13975         (reverse_op): Don't add reverse ops for cfa_base_rtx.
13976         (vt_init_cfa_base): Adjust cselib_preserve_cfa_base_value caller.
13977
13978 2010-06-30  Bernd Schmidt  <bernds@codesourcery.com>
13979
13980         * recog.c (peep2_do_rebuild_jump_labels, peep2_do_cleanup_cfg): New
13981         static variables.
13982         (peep2_buf_position): New static function.
13983         (peep2_regno_dead_p, peep2_reg_dead_p, peep2_find_free_register,
13984         peephole2_optimize): Use it.
13985         (peep2_attempt, peep2_update_life): New static functions, broken out
13986         of peephole2_optimize.
13987         (peep2_fill_buffer): New static function.
13988         (peephole2_optimize): Change the main loop to try to fill the buffer
13989         with the maximum number of insns before matching them against
13990         peepholes.  Use a forward scan.  Remove special case for targets with
13991         conditional execution.
13992         * genrecog.c (change_state): Delete dead code.
13993         * config/i386/i386.md (peephole2 for arithmetic ops with memory):
13994         Rewrite so as not to expect the second insn to have had a peephole
13995         applied yet.
13996
13997 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
13998
13999         * genhooks.c (emit_findices): Cast field precision to int.
14000         (emit_documentation): Likewise.
14001
14002 2010-06-29  Jakub Jelinek  <jakub@redhat.com>
14003
14004         PR tree-optimization/43801
14005         * cgraph.c (cgraph_create_virtual_clone): Clear DECL_SECTION_NAME
14006         if old_decl was DECL_ONE_ONLY.
14007
14008         PR debug/44668
14009         * dwarf2out.c (add_accessibility_attribute): New function.
14010         (gen_subprogram_die, gen_variable_die, gen_field_die): Use it
14011         instead of adding DW_AT_accessibility manually.
14012         (gen_enumeration_type_die, gen_struct_or_union_type_die,
14013         gen_typedef_die): Use it.
14014
14015 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
14016
14017         * vmsdbgout.c (full_name): Just output the file name if not native.
14018
14019 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
14020
14021         * vmsdbgout.c (func_table): Replace with VEC func{nam,num}_tables.
14022         (funcnam_table): New static table.
14023         (funcnum_table): New static table.
14024         (write_rtnbeg): Write value saved in funcnum_table.
14025         (write_rtnend): Write value saved in funcnum_table.
14026         (vmsdbgout_begin_function): Save current function info in
14027         (vmsdbgout_init): Initialize func{nam,num}_tables. Minor reformatting.
14028         (vmsdbgout_finish): Iterate over funcnum_table.
14029
14030 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
14031
14032         * vmsdbgout.c (vmsdbgout_begin_epilogue): Declare
14033         (vmsdbgout_type_decl): Declare
14034         (vmsdbg_debug_hooks): Add entry for type_decl and begin_epilogue.
14035         (FUNC_EPILOGUE_LABEL): New macro
14036         (vmsdbgout_begin_epilogue): New function.
14037         (vmsdbgout_type_decl): New function.
14038
14039 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
14040
14041         * vmsdbg.h: Update copyright.
14042
14043 2010-06-29  Douglas B Rupp  <rupp@gnat.com>
14044
14045         * vmsdbg.h (DST_K_TBG): New DST constant.
14046         * vmsdbgout.c (addr_const_to_string): Removed, not referenced.
14047         (write_modbeg): Cast module_language to avoid warning.
14048         (write_rtnbeg): Use DST_K_TBG vice magic mystery number.
14049
14050 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
14051
14052         PR other/44034
14053         * target.def, doc/tm.texi.in, genhooks.c: New files.
14054         * target.h: Instead of defining individual hook members,
14055         define DEFHOOKPOD / DEFHOOK / DEFHOOK_UNDOC / HOOKSTRUCT and
14056         include target.def.
14057         * target-def.h: Instead of defining individual hook initializers,
14058         include target-hooks-def.h.
14059         * df-scan.c, haifa-sched.c, sel-sched.c: Rename targetm members:
14060         targetm.live_on_entry -> targetm.extra_live_on_entry
14061         targetm.sched.md_finish ->targetm.sched.finish
14062         targetm.sched.md_init -> targetm.sched.init
14063         targetm.sched.md_init_global -> targetm.sched.init_global
14064         targetm.asm_out.unwind_label -> targetm.asm_out.emit_unwind_label
14065         targetm.asm_out.except_table_label ->
14066           targetm.asm_out.emit_except_table_label
14067         targetm.asm_out.visibility -> targetm.asm_out.assemble_visibility
14068         targetm.target_help -> targetm.help
14069         targetm.vectorize.builtin_support_vector_misalignment ->
14070           targetm.vectorize.support_vector_misalignment
14071         targetm.file_start_app_off -> targetm.asm_file_start_app_off
14072         targetm.file_start_file_directive ->
14073          targetm.asm_file_start_file_directive
14074         * dwarf2out.c, opts.c, tree-vect-data-refs.c, except.c: Likewise.
14075         * varasm.c, config/alpha/alpha.c, config/cris/cris.c: Likewise.
14076         * config/spu/spu.c, config/ia64/ia64.c: Rename target macros:
14077         TARGET_VECTOR_ALIGNMENT_REACHABLE ->
14078           TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE
14079         TARGET_SUPPORT_VECTOR_MISALIGNMENT ->
14080           TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT
14081         TARGET_UNWIND_EMIT -> TARGET_ASM_UNWIND_EMIT
14082         * config/rs6000/rs6000.c, config/arm/arm.c: Likewise.
14083         * Makefile.in (TARGET_H): Depend on target.def.
14084         (TARGET_DEF_H): Depend on target-hooks-def.h.
14085         (target-hooks-def.h, tm.texi, s-target-hooks-def-h): New rules.
14086         (s-tm-texi, build/genhooks.o, build/genhooks): Likewise.
14087         * doc/tm.texi: Regenerate.
14088
14089         * Makefile.in (s-tm-texi): Remove stray tab / rule.
14090
14091         * config/m68k/m68k.c (targetm.sched.init_global): Update comment.
14092         (targetm.sched.init): Likewise.
14093
14094 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
14095
14096         PR bootstrap/44713
14097         * config/i386/i386.c (type_natural_mode): Const-ify CUM parameter.
14098         (function_arg_advance_32): Const-ify TYPE parameter.
14099         (function_arg_advance_64): Likewise.  Change type of NAMED to bool.
14100         (ix86_function_arg_advance): Change type of NAMED to bool.
14101         (function_arg_32): Const-ify CUM and TYPE parameters.
14102         (function_arg_64): Likewise.  Change type of NAMED to bool.
14103         (function_arg_ms_64): Const-ify CUM parameter. Change type of NAMED
14104         to bool.
14105         (ix86_function_arg): Change type of NAMED to bool.
14106         (ix86_setup_incoming_varargs): Call ix86_function_arg_advance.  Pass
14107         last argument as a bool.
14108
14109 2010-06-29  Joern Rennecke  <joern.rennecke@embecosm.com>
14110
14111         * doc/tm.texi (TARGET_OPTION_OVERRIDE): Document.
14112         (OVERRIDE_OPTIONS): Add note of obsolescence.
14113         Replace references with references to TARGET_OPTION_OVERRIDE.
14114         (Except for C_COMMON_OVERRIDE_OPTIONS, which remains similar to
14115          the macro).
14116         * targhooks.c (default_target_option_override): New function.
14117         * targhooks.h (default_target_option_override): Declare.
14118         * target.h (struct gcc_target): Add override member to
14119         target_option member.
14120         * toplev.c (process_options): Replace OVERRIDE_OPTIONS use with
14121         targetm.target_option.override call.
14122         * target-def.h (TARGET_OPTION_OVERRIDE): Define.
14123         (TARGET_OPTION_HOOKS): Add TARGET_OPTION_OVERRIDE.
14124
14125 2010-06-29  Jan Hubicka  <jh@suse.cz>
14126
14127         * tree-inline.c: Replace incomming by incomin and clonning by cloning.
14128
14129 2010-06-29  Jan Hubicka  <jh@suse.cz>
14130
14131         * predict.c (propagate_freq): Clear EXIT_BLOCK_PTR frequency if it is
14132         unreachable.
14133         (rebuild_frequencies): New function.
14134         * predict.h (rebuild_frequencies): Declare.
14135         * tree-inline.c (copy_cfg_body): Compute properly count & frequency of
14136         entry block and edge reaching new_entry.
14137         (tree_function_versioning): When doing partial cloning, rebuild
14138         frequencies when done.
14139         * passes.c (execute_function_todo): Use rebild_frequencies.
14140
14141 2010-06-29  Richard Guenther  <rguenther@suse.de>
14142
14143         * tree-dfa.c (dump_variable): Remove noalias_state dumping.
14144         * tree-flow.h (enum noalias_state): Remove.
14145         (struct var_ann_d): Remove noalias_state member.
14146
14147 2010-06-29  Bernd Schmidt  <bernds@codesourcery.com>
14148
14149         PR target/43902
14150         * config/arm/arm.md (maddsidi4, umaddsidi4): New expanders.
14151         (maddhisi4): Renamed from mulhisi3addsi.  Operands renumbered.
14152         (maddhidi4): Likewise.
14153
14154         Revert parts of the change for PR25130.
14155         * cse.c (exp_equiv_p): For MEMs, if for_gcse, only compare
14156         MEM_ALIAS_SET.
14157
14158 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
14159
14160         * calls.c, dse.c, expr.c, function.c: Call targetm.calls.function_arg,
14161         targetm.calls.function_incoming_arg, and
14162         targetm.calls.function_arg_advance instead of FUNCTION_ARG,
14163         FUNCTION_INCOMING_ARG, and FUNCTION_ARG_ADVANCE, respectively.
14164         * target.h (struct gcc_target): Add function_arg_advance,
14165         function_arg, and function_incoming_arg fields.
14166         * target-def.h (TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG):
14167         (TARGET_FUNCTION_INCOMING_ARG): Define.
14168         (TARGET_CALLS): Add TARGET_FUNCTION_ARG_ADVANCE, TARGET_FUNCTION_ARG,
14169         and TARGET_FUNCTION_INCOMING_ARG.
14170         * targhooks.h (default_function_arg_advance): Declare.
14171         (default_function_arg, default_function_incoming_arg): Declare.
14172         * targhooks.c (default_function_arg_advance): New function.
14173         (default_function_arg, default_function_incoming_arg): New function.
14174         * config/i386/i386.c (function_arg_advance): Rename to...
14175         (ix86_function_arg_advance): ...this.  Make static.
14176         (function_arg): Rename to...
14177         (ix86_function_arg): ...this.  Make static.
14178         (TARGET_FUNCTION_ARG_ADVANCE): Define.
14179         (TARGET_FUNCTION_ARG): Define.
14180         * config/i386/i386.h (FUNCTION_ARG_ADVANCE): Delete.
14181         (FUNCTION_ARG): Delete.
14182         * config/i386/i386-protos.h (function_arg_advance): Delete prototype.
14183         (function_arg): Delete prototype.
14184
14185 2010-06-29  Nathan Froyd  <froydnj@codesourcery.com>
14186
14187         * reginfo.c (init_reg_sets_1): Adjust comments.
14188         * combine-stack-adj.c (rest_of_handle_stack_adjustments): Likewise.
14189         * calls.c (prepare_call_address): Likewise.
14190         (emit_call_1): Use targetm.calls.return_pops_args.
14191         (expand_call): Likewise.
14192         * function.c (assign_parms): Likewise.
14193         * system.h (RETURN_POPS_ARGS): Add to #pragma poison list.
14194         * target.h (struct gcc_target) [struct calls]: Add
14195         return_pops_args field.
14196         * targhooks.h (default_return_pops_args): Declare.
14197         * targhooks.c (default_return_pops_args): Define.
14198         * target-def.h (TARGET_RETURN_POPS_ARGS): Define.
14199         (TARGET_CALLS): Add TARGET_RETURN_POPS_ARGS.
14200         * doc/tm.texi (RETURN_POPS_ARGS): Rename to...
14201         (TARGET_RETURN_POPS_ARGS): ...this.  Use deftypefn.  Adjust
14202         documentation.
14203         * config/alpha/alpha.h (RETURN_POPS_ARGS): Delete.
14204         * config/arc/arc.h (RETURN_POPS_ARGS): Likewise.
14205         * config/arm/arm.h (RETURN_POPS_ARGS): Likewise.
14206         * config/avr/avr.h (RETURN_POPS_ARGS): Likewise.
14207         * config/bfin/bfin.h (RETURN_POPS_ARGS): Likewise.
14208         * config/cris/cris.h (RETURN_POPS_ARGS): Likewise.
14209         * config/crx/crx.h (RETURN_POPS_ARGS): Likewise.
14210         * config/fr30/fr30.h (RETURN_POPS_ARGS): Likewise.
14211         * config/frv/frv.h (RETURN_POPS_ARGS): Likewise.
14212         * config/h8300/h8300.h (RETURN_POPS_ARGS): Likewise.
14213         * config/ia64/ia64.h (RETURN_POPS_ARGS): Likewise.
14214         * config/iq2000/iq2000.h (RETURN_POPS_ARGS): Likewise.
14215         * config/lm32/lm32.h (RETURN_POPS_ARGS): Likewise.
14216         * config/m32c/m32c.h (RETURN_POPS_ARGS): Likewise.
14217         * config/m32r/m32r.h (RETURN_POPS_ARGS): Likewise.
14218         * config/m68hc11/m68hc11.h (RETURN_POPS_ARGS): Likewise.
14219         * config/mcore/mcore.h (RETURN_POPS_ARGS): Likewise.
14220         * config/mep/mep.h (RETURN_POPS_ARGS): Likewise.
14221         * config/mips/mips.h (RETURN_POPS_ARGS): Likewise.
14222         * config/mmix/mmix.h (RETURN_POPS_ARGS): Likewise.
14223         * config/mn10300/mn10300.h (RETURN_POPS_ARGS): Likewise.
14224         * config/moxie/moxie.h (RETURN_POPS_ARGS): Likewise.
14225         * config/pa/pa.h (RETURN_POPS_ARGS): Likewise.
14226         * config/pdp11/pdp11.h (RETURN_POPS_ARGS): Likewise.
14227         * config/picochip/picochip.h (RETURN_POPS_ARGS): Likewise.
14228         * config/rs6000/rs6000.h (RETURN_POPS_ARGS): Likewise.
14229         * config/rx/rx.h (RETURN_POPS_ARGS): Likewise.
14230         * config/s390/s390.h (RETURN_POPS_ARGS): Likewise.
14231         * config/score/score.h (RETURN_POPS_ARGS): Likewise.
14232         * config/sh/sh.h (RETURN_POPS_ARGS): Likewise.
14233         * config/sparc/sparc.h (RETURN_POPS_ARGS): Likewise.
14234         * config/spu/spu.h (RETURN_POPS_ARGS): Likewise.
14235         * config/stormy16/stormy16.h (RETURN_POPS_ARGS): Likewise.
14236         * config/v850/v850.h (RETURN_POPS_ARGS): Likewise.
14237         * config/xtensa/xtensa.h (RETURN_POPS_ARGS): Likewise.
14238         * config/i386/i386-protos.h (ix86_return_pops_args): Delete.
14239         * config/i386/i386.h (RETURN_POPS_ARGS): Delete.
14240         * config/i386/i386.c (ix86_return_pops_args): Make static.
14241         Constify arguments.
14242         (TARGET_RETURN_POPS_ARGS): Define.
14243         * config/m68k/m68k.h (RETURN_POPS_ARGS): Move to...
14244         * config/m68k/m68k.c (m68k_return_pops_args): ...here.  New function.
14245         (TARGET_RETURN_POPS_ARGS): Define.
14246         * config/vax/vax.h (RETURN_POPS_ARGS): Move to...
14247         * config/vax/vax.c (vax_return_pops_args): ...here.  New function.
14248         (TARGET_RETURN_POPS_ARGS): Define.
14249
14250 2010-06-29  Richard Guenther  <rguenther@suse.de>
14251
14252         PR middle-end/44667
14253         * tree-inline.c (initialize_inlined_parameters): Make sure
14254         to remap the inlined parameter variable substitutions types.
14255
14256 2010-06-29  Eric Botcazou  <ebotcazou@adacore.com>
14257
14258         PR rtl-optimization/44659
14259         * combine.c (make_compound_operation) <SUBREG>: Do not return the
14260         result of force_to_mode if it partially re-expanded the compound.
14261
14262 2010-06-28  Jan Hubicka  <jh@suse.cz>
14263
14264         PR middle-end/44671
14265         * ipa-split.c (test_nonssa_use, mark_nonssa_use): Check also uses of
14266         RESULT_DECL.
14267
14268 2010-06-28  Anatoly Sokolov  <aesok@post.ru>
14269
14270         * double-int.h (force_fit_type_double): Remove declaration.
14271         * double-int.c (force_fit_type_double): Move to tree.c.
14272         * tree.h (force_fit_type_double): Declare.
14273         * tree.h (force_fit_type_double): Moved from double-int.c. Use
14274         double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
14275         double_int_to_tree instead of fit_double_type and build_int_cst_wide.
14276         * convert.c (convert_to_pointer): Adjust call to
14277         force_fit_type_double.
14278         * tree-vrp.c (extract_range_from_assert,
14279         extract_range_from_unary_expr): Adjust call to force_fit_type_double.
14280         * fold-const.c: Update comment.
14281         (int_const_binop, fold_convert_const_int_from_int,
14282         fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
14283         extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
14284         fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
14285         round_up_loc): Adjust call to force_fit_type_double.
14286
14287 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
14288
14289         * config/rs6000/rs6000.h (PROCESSOR_TITAN): Declare.
14290
14291 2010-06-28  Martin Jambor  <mjambor@suse.cz>
14292
14293         * tree-sra.c (convert_callers): New parameter, change fndecls of
14294         recursive calls.
14295         (modify_function): Pass the old decl to convert_callers.
14296
14297 2010-06-28  Martin Jambor  <mjambor@suse.cz>
14298
14299         * ipa-cp.c (ipcp_init_cloned_node): Replace calls to
14300         ipa_check_create_node_params and ipa_initialize_node_params with
14301         checking asserts they are not necessary.
14302
14303 2010-06-28  Jan Hubicka  <jh@suse.cz>
14304
14305         PR tree-optimization/44687
14306         * ipa-split.c (split_function): Use DECL_RESULT to store return value.
14307
14308 2010-06-28  Martin Jambor  <mjambor@suse.cz>
14309
14310         PR c++/44535
14311         * gimple-fold.c (get_first_base_binfo_with_virtuals): New function.
14312         (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals
14313         instead of BINFO_BASE_BINFO.
14314
14315 2010-06-28  Michael Matz  <matz@suse.de>
14316
14317         PR middle-end/44592
14318         * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain
14319         proper VDEF chain for intermediate stores in the sequence.
14320
14321 2010-06-28  Jan Hubicka  <jh@suse.cz>
14322
14323         PR tree-optimization/44357
14324         * ipa-inline.c (add_new_edges_to_heap): Do not add edges to
14325         uninlinable functions.
14326
14327 2010-06-28  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
14328
14329         * config.gcc (powerpc*-*-*): Handle titan.
14330         * config/rs6000/rs6000.c (titan_cost): New costs.
14331         (rs6000_override_options): Add "titan" to processor_target_table.
14332         Add Titan to branch alignment logic.
14333         Correctly set rs6000_cost for titan.
14334         * config/rs6000/rs6000.md (cpu): Add titan.  Include "titan.md".
14335         * config/rs6000/titan.md: New file.
14336         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan.
14337
14338 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
14339
14340         * tree-browser.c (TB_history_stack): Convert to a VEC.
14341         (TB_SET_HEAD): Adjust for new type of TB_history_stack.
14342         (TB_history_prev): Likewise.
14343
14344 2010-06-28  Nathan Froyd  <froydnj@codesourcery.com>
14345
14346         * vec.h (vec_heap_free): Add parentheses around free.
14347
14348 2010-06-28  Steven Bosscher  <steven@gcc.gnu.org>
14349
14350         * system.h: Poison GCC_EXCEPT_H for front-end files.
14351
14352         * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions
14353         langhook.
14354         * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New.
14355         Define to NULL by default.
14356         * except.h: Define GCC_EXCEPT_H.
14357         (doing_eh): Remove prototype.
14358         (init_eh, init_eh_for_function): Move prototypes to toplev.h.
14359         (lang_protect_cleanup_actions): Remove.
14360         * except.c (lang_protect_cleanup_actions): Remove.
14361         (doing_eh): Remove.
14362         (gen_eh_region): Don't check doing_eh here.
14363         * toplev.h (init_eh, init_eh_for_function_): Moved from except.h.
14364         * tree-eh.c (honor_protect_cleanup_actions): Use new langhook
14365         instead of lang_protect_cleanup_actions.
14366         * omp-low.c (maybe_catch_exception): Likewise.
14367         * Makefile.in: Update dependencies.
14368
14369 2010-06-28  Bingfeng Mei  <bmei@broadcom.com>
14370
14371         * cgraph.h (struct varpool_node): new used_from_object_file flag.
14372         (struct cgraph_local_info): new used_from_object_file flag.
14373         * cgraph.c (dump_cgraph_node): dump used_from_object_file flag.
14374         (cgraph_clone_node): initialize used_from_object_file.
14375         (cgraph_create_virtual_clone): initialize used_from_object_file.
14376         * lto-symbtab.c (lto_symtab_merge_decls_1): Set
14377         used_from_object_file flags for symbols of LDPR_PREVAILING_DEF
14378         when compiling with -fwhole-program.
14379         (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for
14380         internal resolver.
14381         * ipa.c (function_and_variable_visibility): Set externally_visible
14382         flag of varpool_node if used_from_object_file flag is set.
14383         (cgraph_externally_visible_p): check used_from_object_file flag.
14384         * doc/invoke.texi (-fwhole-program option): Change description of
14385         externally_visible attribute accordingly.
14386         * doc/extend.texi (externally_visible): Ditto.
14387
14388 2010-06-27  Jan Hubicka  <jh@suse.cz>
14389
14390         * params.def (max-inline-insns-auto): Default to 40.
14391         * doc/invoke.texi (max-inline-insns-auto): Document the change.
14392
14393 2010-06-27  Jan Hubicka  <jh@suse.cz>
14394
14395         PR middle-end/44671
14396         PR middle-end/44686
14397         * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on
14398         signature change.
14399         * ipa-split.c (split_function): Always clear DECL_BUILT_IN.
14400         * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
14401
14402 2010-06-27  Anatoly Sokolov  <aesok@post.ru>
14403
14404         * target.h (struct gcc_target): Add register_move_cost field.
14405         * target-def.h (TARGET_REGISTER_MOVE_COST): New.
14406         (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST.
14407         * targhooks.c (default_register_move_cost): New function.
14408         * targhooks.h (default_register_move_cost): Declare function.
14409         * defaults.h (REGISTER_MOVE_COST): Delete.
14410         * ira-int.h (ira_register_move_cost): Update comment.
14411         * ira.c (ira_register_move_cost): Update comment.
14412         * reload.h (register_move_cost): Declare.
14413         * reginfo.c (register_move_cost): New function.
14414         (move_cost): Update comment.
14415         (init_move_cost, memory_move_secondary_cost): Replace
14416         REGISTER_MOVE_COST with register_move_cost.
14417         * postreload.c (reload_cse_simplify_set): (Ditto.).
14418         * reload.c (find_valid_class, find_reloads): (Ditto.).
14419         * reload1.c (choose_reload_regs): (Ditto.).
14420         * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New.
14421         (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation.
14422         * doc/md.texi (can_create_pseudo_p): Update documentation.
14423
14424         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
14425         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
14426         * config/i386/i386.h (ix86_memory_move_cost): Make static.
14427         (TARGET_MEMORY_MOVE_COST): Define.
14428
14429         * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro.
14430         * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove.
14431         * config/ia64/ia64.h (ia64_memory_move_cost): Make static.
14432         (TARGET_MEMORY_MOVE_COST): Define.
14433
14434 2010-06-27  Richard Guenther  <rguenther@suse.de>
14435
14436         PR tree-optimization/44683
14437         * tree-ssa-dom.c (record_edge_info): Record equivalences for the
14438         false edge from the inverted condition.
14439
14440 2010-06-27  Richard Guenther  <rguenther@suse.de>
14441
14442         PR middle-end/44684
14443         * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs.
14444         (stmt_may_clobber_ref_p_1): Do not bother to call the oracle
14445         for register LHS.  Or non-store assignments.
14446
14447 2010-06-26  Eric Botcazou  <ebotcazou@adacore.com>
14448
14449         * config/sparc/sparc.c (sparc_emit_set_const32): Make static.
14450         (sparc_emit_set_const64): Likewise.  Remove disabled code.
14451         * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete.
14452         (sparc_emit_set_const64): Likewise.
14453
14454 2010-06-26  Catherine Moore  <clm@codesourcery.com>
14455
14456         * config/mips/mips.md (alu_type): New attribute.
14457         (type): Infer type from alu_type.
14458         (*add<mode>3, *add<mode>3_mips16, *addsi3_extended,
14459         *baddu_si_eb, *baddu_si_el, *baddu_di, sub<mode>3,
14460         *subsi3_extended, negsi2, negdi2, *low<mode>,
14461         *low<mode>_mips16, *ior<mode>3, *ior<mode>3_mips16,
14462         xor<mode>3, *nor<mode>3,
14463         *zero_extend<GPR:mode>_trunc<SHORT:mode>,
14464         *zero_extendhi_truncqi):  Set alu_type instead of type.
14465
14466 2010-06-26  Douglas B Rupp  <rupp@gnat.com>
14467
14468         * config/alpha/alpha.c (alpha_need_linkage): Adjust
14469         splay_tree_new_ggc call.
14470         (alpha_use_linkage): Likewise.
14471
14472 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
14473
14474         * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional.
14475         * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document.
14476         * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove.
14477         (static_specs): Remove switches_need_spaces.
14478         (process_command, do_self_spec): Hardcode handling "-o" instead of
14479         checking switches_need_spaces.
14480         * system.h (SWITCHES_NEED_SPACES): Poison.
14481
14482 2010-06-26  Richard Guenther  <rguenther@suse.de>
14483
14484         PR tree-optimization/44393
14485         * tree-loop-distribution.c (generate_loops_for_partition): Fix
14486         stmt removal and VOP renaming.
14487         (generate_memset_zero): Remove redundant stmt updating.
14488         * tree-flow.h (mark_virtual_ops_in_bb): Remove.
14489         * tree-cfg.c (mark_virtual_ops_in_bb): Likewise.
14490
14491 2010-06-26  Jan Hubicka  <jh@suse.cz>
14492
14493         * ipa-split.c (consider_split): PHI in entry block is OK as long as all
14494         edges comming from header are equivalent.
14495         (visit_bb): Handle PHIs correctly.
14496         * tree-inline.c (copy_phis_for_bb): Be able to copy
14497         PHI from entry edge.
14498         (copy_cfg_body): Produce edge from entry BB before copying PHIs.
14499
14500 2010-06-26  Richard Guenther  <rguenther@suse.de>
14501
14502         PR middle-end/44674
14503         * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of
14504         decls.  Handle LABEL_DECLs like FUNCTION_DECLs.
14505
14506 2010-06-26  Joseph Myers  <joseph@codesourcery.com>
14507
14508         * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile,
14509         add_infile, alloc_switch): New.
14510         (process_command): Remove variable lang_n_infiles.  Process
14511         options in a single pass.  Use new functions for allocating
14512         infiles and switches arrays.  Properly skip operands of
14513         -Xpreprocessor and -Xassembler.
14514
14515 2010-06-26  Jan Hubicka  <jh@suse.cz>
14516
14517         PR middle-end/44671
14518         * cgraphunit.c (cgraph_function_versioning): Remove wrong
14519         cgraph_make_decl_local call; fix typo copying RTL data.
14520
14521 2010-06-25  DJ Delorie  <dj@redhat.com>
14522
14523         * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare.
14524         (m32c_output_aligned_common): Likewise.
14525         * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
14526         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
14527         * config/m32c/m32c-pragma.c (m32c_pragma_address): New.
14528         (m32c_register_pragmas): Register it.
14529         * config/m32c/m32c.c (m32c_get_pragma_address): New.
14530         (m32c_insert_attributes): Set #pragma address decls volatile.
14531         (pragma_entry_eq): New.
14532         (pragma_entry_hash): New.
14533         (m32c_note_pragma_address): New.
14534         (m32c_get_pragma_address): New.
14535         (m32c_output_aligned_common): New.
14536         * doc/extend.texi: Document the new pragma.
14537
14538         * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs
14539         also.
14540         * config/m32c/predicates.md (m32c_any_operand): Check the code
14541         instead of memory_operand so as to allow matching volatile MEMs.
14542         (m32c_nonimmediate_operand): Likewise.
14543         (mra_operand): Allow volatiles.
14544
14545 2010-06-25  Alexandre Oliva  <aoliva@redhat.com>
14546
14547         PR debug/44610
14548         * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base
14549         address if the offset is unknown.
14550
14551 2010-06-25  Douglas B Rupp  <rupp@gnat.com>
14552
14553         * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function.
14554         * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function.
14555         * config/ia64/ia64-protos.h (ia64_start_function): Declare.
14556         * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents
14557         to ia64_start_function. Invoke it.
14558         * config/ia64/ia64.c (ia64_start_function): Call new function
14559         dwarf2out_vms_debug_main_pointer.
14560
14561 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
14562
14563         * tree-if-conv.c (insert_gimplified_predicates): Do not insert
14564         statements computing the true predicate.
14565
14566 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
14567
14568         * tree-if-conv.c (init_bb_predicate): Initialize the predicate
14569         to boolean_true_node.
14570         (reset_bb_predicate): New.
14571         (predicate_bbs): Call reset_bb_predicate.
14572
14573 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
14574
14575         * tree-if-conv.c (combine_blocks): Remove FIXME comment.
14576         (tree_if_conversion): Returns true when something has been changed.
14577         (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion
14578         changed something.
14579
14580 2010-06-25  Sebastian Pop  <sebastian.pop@amd.com>
14581
14582         * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H.
14583         * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER.
14584         * tree-if-conv.c: Include dbgcnt.h.
14585         (tree_if_conversion): Use if_conversion_tree to count the number of
14586         if-convertible loops.
14587
14588 2010-06-25  Changpeng Fang  <changpeng.fang@amd.com>
14589
14590         * common.opt (fprefetch-loop-arrays): Re-define
14591         -fprefetch-loop-arrays as a tri-state option with the initial
14592         value of -1.
14593         * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch
14594         pass only when flag_prefetch_loop_arrays > 0.
14595         * toplev.c (process_options): Note that, with tri-states,
14596         flag_prefetch_loop_arrays>0 means prefetching is enabled.
14597         * config/i386/i386.c (override_options): Enable prefetching at -O3
14598         for a set of CPUs that sw prefetching is helpful.
14599         (software_prefetching_beneficial_p): New.  Return TRUE if software
14600         prefetching is beneficial for the given CPU.
14601
14602 2010-06-25  H.J. Lu  <hongjiu.lu@intel.com>
14603
14604         PR rtl-optimization/44326
14605         * implicit-zee.c (find_removable_zero_extends): Replace
14606         INSN_P with NONDEBUG_INSN_P.
14607
14608 2010-06-25  Martin Jambor  <mjambor@suse.cz>
14609
14610         * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag.
14611         (struct ipa_node_params): Removed the modification_analysis_done flag.
14612         (ipa_is_param_modified): Removed.
14613         (ipa_analyze_node): Declare.
14614         (ipa_compute_jump_functions): Remove declaration.
14615         (ipa_count_arguments): Likewise.
14616         (ipa_detect_param_modifications): Likewise.
14617         (ipa_analyze_params_uses): Likewise.
14618         * ipa-prop.c (struct param_analysis_info): New type.
14619         (visit_store_addr_for_mod_analysis): Removed.
14620         (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis,
14621         moved down in the file.
14622         (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses.
14623         (ipa_count_arguments): Made static.
14624         (mark_modified): New function.
14625         (is_parm_modified_before_call): New function.
14626         (compute_pass_through_member_ptrs): New parameter parms_info, call
14627         is_parm_modified_before_call instead of ipa_is_param_modified.
14628         (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass
14629         it to compute_pass_through_member_ptrs.
14630         (ipa_compute_jump_functions): New parameter parms_info, pass it to
14631         ipa_compute_jump_functions_for_edge.  Call ipa_initialize_node_params
14632         on the callee if it is analyzed.  Made static.
14633         (ipa_analyze_indirect_call_uses): New parameter parms_info, call
14634         is_parm_modified_before_call instead of ipa_is_param_modified.
14635         (ipa_analyze_call_uses): New parameter parms_info, pass it to
14636         ipa_analyze_indirect_call_uses.
14637         (ipa_analyze_stmt_uses): New parameter parms_info, pass it to
14638         ipa_analyze_call_uses.
14639         (ipa_analyze_params_uses): New parameter parms_info, pass it to
14640         ipa_analyze_stmt_uses.  Also perform the used analysis.  Made static.
14641         (ipa_analyze_node): New function.
14642         (ipa_print_node_params): Do not dump the modified flag.
14643         (ipa_write_node_info): Assert uses_analysis_done rather than streaming
14644         it.  Do not stream the modified parameter flag.
14645         (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming
14646         it.  Do not stream the modified parameter flag.
14647         * ipa-cp.c (ipcp_analyze_node): Removed.
14648         (ipcp_init_stage): Iterate only once over the nodes, analyze each one
14649         with only a call to ipa_analyze_node.
14650         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the
14651         node with only a call to ipa_analyze_node.
14652
14653 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14654
14655         * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn.
14656
14657 2010-06-25  Jan Hubicka  <jh@suse.cz>
14658
14659         * tree-pass.h (pass_split_functions): Declare.
14660         * opts.c (decode_options): Enable function splitting at -O2
14661         * timevar.def (TV_IPA_FNSPLIT): New macro.
14662         * ipa-split.c: New file.
14663         * common.opt (-fpartial-inlining): New flag.
14664         * Makefile.in (ipa-split.o): New object file.
14665         * passes.c (init_optimization_passes): Add ipa-split.
14666         * params.def (partial-inlining-entry-probability): New parameters.
14667         * doc/invoke.texi (-fpartial-inlining): New.
14668
14669 2010-06-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14670
14671         PR 44665
14672         * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment.
14673         * gimplify.c (is_gimple_reg_rhs_or_call): Likewise.
14674         (gimplify_expr): Likewise.
14675
14676 2010-06-25  Martin Jambor  <mjambor@suse.cz>
14677
14678         * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering
14679         statements instead of bailing out on them.
14680         (ipa_analyze_indirect_call_uses): Do not require that loads from the
14681         parameter are in the same BB as the condition.  Update comments.
14682
14683 2010-06-25  Jakub Jelinek  <jakub@redhat.com>
14684
14685         PR middle-end/43866
14686         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always
14687         true or always false, return NULL_TREE.
14688         (tree_unswitch_single_loop): Optimize conditions even when reaching
14689         max-unswitch-level parameter.  If num > 0, optimize first all conditions
14690         using entry checks, then do still reachable block discovery and consider
14691         only conditions in still reachable basic blocks in the loop.
14692
14693         PR tree-optimization/44539
14694         * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when
14695         the call doesn't have LHS, but has VDEF.
14696
14697 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
14698
14699         * config/pa/pa.h (MODIFY_TARGET_NAME): Remove.
14700         * doc/tm.texi (MODIFY_TARGET_NAME): Don't document.
14701         * gcc.c (enum add_del, struct modify_target, modify_target): Remove.
14702         (process_command): Remove code conditional on MODIFY_TARGET_NAME.
14703         * system.h (MODIFY_TARGET_NAME): Poison.
14704
14705 2010-06-25  Alan Modra  <amodra@gmail.com>
14706
14707         * doc/invoke.texi: Delete mcmodel=medium from powerpc options.
14708         * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM.
14709         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
14710         CMODEL_LARGE as default.
14711         * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium.
14712         (offsettable_ok_by_alignment): Delete.
14713         (rs6000_emit_move): Remove mcmodel=medium optimization.
14714
14715 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
14716
14717         With large parts from Jim Wilson:
14718         PR target/43902
14719         * tree-pretty-print.c (dump_generic_node, op_code_prio): Add
14720         WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
14721         * optabs.c (optab_for_tree_code): Likewise.
14722         (expand_widen_pattern_expr): Likewise.
14723         * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
14724         out of execute_optimize_widening_mul.
14725         (convert_plusminus_to_widen): New function.
14726         (execute_optimize_widening_mul): Use the two new functions.
14727         * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
14728         Remove code to generate widening multiply-accumulate.  Add support
14729         for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
14730         * gimple-pretty-print.c (dump_ternary_rhs): New function.
14731         (dump_gimple_assign): Call it when appropriate.
14732         * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
14733         * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
14734         (expand_gimple_stmt_1): Likewise.
14735         (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
14736         WIDEN_MULT_MINUS_EXPR.
14737         * tree-ssa-operands.c (get_expr_operands): Likewise.
14738         * tree-inline.c (estimate_operator_cost): Likewise.
14739         * gimple.c (extract_ops_from_tree_1): Renamed from
14740         extract_ops_from_tree.  Add new arg for a third operand; fill it.
14741         (gimple_build_assign_stat): Support operations with three operands.
14742         (gimple_build_assign_with_ops_stat): Likewise.
14743         (gimple_assign_set_rhs_from_tree): Likewise.
14744         (gimple_assign_set_rhs_with_ops_1): Renamed from
14745         gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
14746         (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
14747         (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
14748         WIDEN_MULT_MINUS_EXPR.
14749         * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
14750         (extract_ops_from_tree_1): Adjust declaration.
14751         (gimple_assign_set_rhs_with_ops_1): Likewise.
14752         (gimple_build_assign_with_ops): Pass NULL for last operand.
14753         (gimple_build_assign_with_ops3): New macro.
14754         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
14755         gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
14756         functions.
14757         * tree-cfg.c (verify_gimple_assign_ternary): New static function.
14758         (verify_gimple_assign): Call it.
14759         * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
14760         (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
14761         functions for dealing with three-operand statements.
14762         * tree.c (commutative_ternary_tree_code): New function.
14763         * tree.h (commutative_ternary_tree_code): Declare it.
14764         * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for
14765         ternary statements.
14766         (gimple_assign_nonzero_warnv_p): Likewise.
14767         * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
14768         * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
14769         (ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
14770         * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
14771         (struct hashtable_expr): New member ternary in the union.
14772         (initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
14773         (hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
14774         (iterative_hash_hashable_expr): Likewise.
14775         (print_expr_hash_elt): Handle EXPR_TERNARY.
14776         * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
14777         * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
14778         statements.  Handle GIMPLE_TERNARY_RHS.
14779
14780 2010-06-25  Jan Hubicka  <jh@suse.cz>
14781
14782         * doc/invoke.texi (-Wsuggest-attribute): Add noreturn.
14783
14784 2010-06-25  Shujing Zhao  <pearly.zhao@oracle.com>
14785
14786         PR c/44517
14787         * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of
14788         parameters are not good.
14789         (c_parser_parameter_declaration): Error unknown type name if the type
14790         name can't start declaration specifiers.
14791
14792 2010-06-25  Joseph Myers  <joseph@codesourcery.com>
14793
14794         * gcc.c (translate_options): Don't mention +e in comment.
14795         (process_command): Don't handle +e specially.
14796
14797 2010-06-25  Bernd Schmidt  <bernds@codesourcery.com>
14798
14799         * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete.
14800
14801         * ira-build.c (merge_hard_reg_conflicts): New function.
14802         (create_cap_allocno, copy_info_to_removed_store_destinations,
14803         propagate_some_info_from_allocno, propagate_allocno_info): Use it.
14804         (move_allocno_live_ranges, copy_allocno_live_ranges): New functions.
14805         (remove_unnecessary_allocnos, remove_low_level_allocnos)
14806         copy_nifo_to_removed_store_destination): Use them.
14807         * ira-lives.c (make_hard_regno_born): New function, split out of
14808         make_regno_born.
14809         (make_allocno_born): Likewise.
14810         (make_hard_regno_dead): New function, split out of make_regno_dead.
14811         (make_allocno_dead): Likewise.
14812         (inc_register_pressure): New function, split out of set_allocno_live.
14813         (dec_register_pressure): New function, split out of clear_allocno_live.
14814         (mark_pseudo_regno_live): New function, split out of mark_reg_live.
14815         (mark_hard_reg_live): Likewise.  Use inc_register_pressure.
14816         (mark_pseudo_regno_dead): New function, split out of mark_reg_dead.
14817         (mark_hard_reg_dead): Likewise.  Use dec_register_pressure.
14818         (make_pseudo_conflict): Use mark_pseudo_regno_dead and
14819         mark_pseudo_regno_live.
14820         (process_bb_node_lives): Use mark_pseudo_regno_live,
14821         make_hard_regno_born and make_allocno_dead.
14822         (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead,
14823         set_allocno_live, clear_allocno_live): Delete functions.
14824
14825         * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare.
14826         * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New
14827         functions.
14828         (ira_flattening): Use ira_parent_allocno.
14829         * ira-conflicts.c (process_regs_for_copy, propagate_copies)
14830         build_allocno_conflicts): Use ira_parent_or_cap_allocno.
14831
14832         * ira-color.c (assign_hard_reg): Improve formatting of multi-line for
14833         statement.
14834
14835         * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT,
14836         TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init,
14837         minmax_set_iter_cond, minmax_set_iter_next,
14838         FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT,
14839         CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator,
14840         ira_allocno_set_iter_init, ira_allocno_set_iter_cond,
14841         ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET.  All
14842         uses changed.
14843
14844         * ira-int.h (struct live_range, live_range_t): Renamed from struct
14845         ira_allocno_live_range and allocno_live_range_t; all uses changed.
14846         * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool.
14847         All uses changed.
14848
14849 2010-06-24  Richard Earnshaw  <rearnsha@arm.com>
14850
14851         * thumb2.md (thumb2_tlobits_cbranch): Delete.
14852         (peephole2 to convert zero_extract/compare of single bit to
14853          lshift/compare): New.
14854
14855 2010-06-24  Anatoly Sokolov  <aesok@post.ru>
14856
14857         * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust
14858         recursive call and call to 'int_const_binop'.
14859         (build_range_check, fold_cond_expr_with_comparison, unextend,
14860         fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc,
14861         multiple_of_p): Adjust call to const_binop.
14862
14863 2010-06-24  Uros Bizjak  <ubizjak@gmail.com>
14864
14865         * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to
14866         determine size of XFmode operand.
14867         (XFmode extended DFmode push splitter): Ditto.
14868         (XFmode extended SFmode push splitter): Ditto.
14869
14870 2010-06-24  H.J. Lu  <hongjiu.lu@intel.com>
14871
14872         PR target/44588
14873         * config/i386/i386.md (extract_code): New.
14874         (<u>divmodqi4): Likewise.
14875         (divmodhiqi3): Likewise.
14876         (udivmodhiqi3): Likewise.
14877         (<u>divqi3): Remvoved.
14878
14879 2010-06-24  Jakub Jelinek  <jakub@redhat.com>
14880
14881         PR middle-end/44492
14882         * recog.h (struct recog_data): Add is_asm field.
14883         * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is
14884         present in constraints of inline-asm operand and memory operand
14885         contains {PRE,POST}_{INC,DEC,MODIFY}, return 0.
14886         (extract_insn): Initialize recog_data.is_asm.
14887         * doc/md.texi (Constraints): Document operand side-effect rules.
14888
14889 2010-06-24  Andi Kleen  <ak@linux.intel.com>
14890
14891         * c-parser.c (c_parser_conditional_expression): Call
14892         warn_for_omitted_condop.
14893         * doc/invoke.texi: Document omitted condop warning.
14894
14895 2010-06-24  Nick Clifton<nickc@redhat.com>
14896
14897         * loop-unswitch.c (compare_and_jump_seq): Assert that the last
14898         insn in the sequence is a jump insn before setting its label.
14899
14900 2010-06-24  Alan Modra  <amodra@gmail.com>
14901
14902         * collect2.c (main): Match exactly --version and --help.
14903
14904 2010-06-24  DJ Delorie  <dj@redhat.com>
14905
14906         * config/m32c/m32c-pragma.c: Don't include rtl.h.
14907
14908 2010-06-23  Uros Bizjak  <ubizjak@gmail.com>
14909
14910         * config/i386/i386.md (mov<mode>): Macroize expander from mov{sf,df,xf}
14911         using X87MODEF mode iterator.
14912         (pushsf splitter): Macroize splitter using P mode iterator.
14913         (*swap<mode>): Macroize insn from *swap{sf,df} using MODEF
14914         mode iterator.
14915
14916         (*movxf_internal): Rename from *movxf_integer.
14917         (*movxf_internal_nointeger): Rename from *movxf_nointeger.
14918         (*movdf_internal_rex64): Rename from *movdf_integer_rex64.
14919         (*movdf_internal): Rename from *movdf_integer.
14920         (*movdf_internal_nointeger): Rename from *movdf_nointeger.
14921         (*movsf_internal): Rename from *movdf_1.
14922
14923 2010-06-23  Basile Starynkevitch  <basile@starynkevitch.net>
14924
14925         * coretypes.h (gimple_seq_node_d, gimple_seq_node)
14926         (const_gimple_seq_node): Removed typedefs.
14927
14928         * gimple.h (gimple_seq_node_d, gimple_seq_node)
14929         (const_gimple_seq_node): Added typedefs moved from coretypes.h.
14930
14931 2010-06-23  H.J. Lu  <hongjiu.lu@intel.com>
14932
14933         * config/i386/i386.c (bdesc_args): Replace CODE_FOR_avx_si_si256,
14934         CODE_FOR_avx_ps_ps256 and CODE_FOR_avx_pd_pd256 with
14935         CODE_FOR_vec_extract_lo_v8si, CODE_FOR_vec_extract_lo_v8sf
14936         and CODE_FOR_vec_extract_lo_v4df.
14937
14938         * config/i386/sse.md (vec_extract_lo_<AVX256MODE4P:mode>):
14939         Changed to define_insn_and_split.
14940         (vec_extract_lo_<AVX256MODE8P:mode>): Likewise.
14941         (vec_extract_lo_v16hi): Likewise.
14942         (vec_extract_lo_v32qi): Likewise.
14943         (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>): Likewise.
14944         (avx_<avxmodesuffixp>_<avxmodesuffixp><avxmodesuffix>): Removed.
14945
14946 2010-06-23  Joern Rennecke  <joern.rennecke@embecosm.com>
14947
14948         PR target/44640
14949         * config/spu/spu-protos.h (spu_expand_epilogue) Use bool.
14950         * config/spu/spu.c (spu_scalar_mode_supported_p): Declare with bool.
14951         (spu_vector_mode_supported_p, spu_handle_fndecl_attribute): Likewise.
14952         (spu_handle_vector_attribute, spu_pass_by_reference): Likewise.
14953         (spu_rtx_costs, spu_function_ok_for_sibcall): Likewise.
14954
14955         PR target/44640
14956         * config/spu/spu.c (ea_load_store_inline): Use add_reg_note.
14957
14958         PR other/44644
14959         * df-core.c (struct df): Rename to df_d.
14960         * df.h (struct df): Likewise.
14961         * dse.h (struct df): Remove forward declaration.
14962         * recog.h (struct insn_data): Rename to:
14963         (struct_insn_data_d).  Adjusted all users.
14964
14965 2010-06-23  Arnaud Charlet  <charlet@adacore.com
14966
14967         PR ada/22220
14968         * doc/install.texi: Update requirements to build GNAT.
14969
14970 2010-06-22  Andreas Schwab  <schwab@linux-m68k.org>
14971
14972         * config/m68k/m68k.c (m68k_output_addr_const_extra): Add cast to
14973         enum type.
14974         (m68k_sched_attr_opx_type): Remove unreachable return.
14975         (m68k_sched_attr_opy_type): Likewise.
14976         (m68k_sched_attr_size): Likewise.
14977         (sched_get_opxy_mem_type): Likewise.
14978         (m68k_sched_attr_op_mem): Likewise.
14979
14980 2010-06-22  Eric Botcazou  <ebotcazou@adacore.com>
14981
14982         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Chain the
14983         new statement and adjust VDEF only if necessary.  Remove superfluous
14984         call to maybe_clean_or_replace_eh_stmt.
14985         * gimple.c (gimple_call_copy_skip_args): Use gimple_call_copy_flags to
14986         copy the flags.
14987         * gimple-iterator.c (gsi_replace): Clear BB of old statement here...
14988         * tree-inline.c (copy_bb): ...and not there.
14989
14990 2010-06-22  Cary Coutant  <ccoutant@google.com>
14991
14992         * dwarf2out.c (is_nested_in_subprogram): New function.
14993         (should_move_die_to_comdat): Use it.
14994         (copy_ancestor_tree): Don't mark DIEs here.
14995         (copy_decls_walk): Start walk from root of newly-added tree;
14996         mark DIEs here instead.
14997
14998 2010-06-22  H.J. Lu  <hongjiu.lu@intel.com>
14999
15000         * config/i386/i386.md (unit): Also check sseishft1.
15001
15002 2010-06-22  Jan Hubicka  <jh@suse.cz>
15003
15004         * gimple.h (gimple_expr_code): Do checking on when gimple checking is
15005         enabled.
15006
15007 2010-06-22  Jan Hubicka  <jh@suse.cz>
15008
15009         * df-problems.c (df_rd_confluence_n, df_lr_confluence_n,
15010         df_live_confluence_n, df_byte_lr_confluence_n, df_md_confluence_n):
15011         Return true if something changed.
15012         * df.h (df_confluence_function_n): Return bool.
15013         * df-core.c (df_worklist_propagate_forward,
15014         df_worklist_propagate_backward): Track changes and ages.
15015         (df_worklist_dataflow_doublequeue): Use bitmap iterator for main walk;
15016         track ages.
15017         * dse.c (dse_confluence_n): Return always true.
15018
15019 2010-06-22  Jan Hubicka  <jh@suse.cz>
15020
15021         * bitmap.c (bitmap_clear_bit): Micro optimize.
15022
15023 2010-06-22  Uros Bizjak  <ubizjak@gmail.com>
15024
15025         * config/i386/i386.md (SWI1248x): New mode iterator.
15026         (SWI48x): Ditto.
15027         (SWI12): Ditto.
15028         (SWI24): Ditto.
15029
15030         (mov<mode>): Macroize expander from mov{qi,hi,si,di} using
15031         SWI1248x mode iterator.
15032         (*push<mode>2_rex64): Macroize insn from *push{qi,hi,si}_rex64
15033         using SWI124 mode iterator.
15034         (*push<mode>2): Macroize insn from *push{qi,hi} using SWI12
15035         mode iterator.
15036         (*push<mode>2_prologue): Macroize insn from  *pushsi2_prologue and
15037         *pushdi2_prologue_rex64 using P mode iterator.
15038         (*mov<mode>_xor): Macroize insn from *movsi_xor and *movdi_xor_rex64
15039         using SWI48 mode iterator.
15040         (*mov<mode>_or): Ditto from *movsi_or and *movdi_or_rex64.
15041         (*movabs<mode>_1): Macroize insn from *movabs{qi,hi,si,di}_1_rex64
15042         using SWI1248x mode iterator.
15043         (*movabs<mode>_2): Ditto from *movabs{qi,hi,si,di}_1_rex64.
15044         (*swap<mode>): Macroize insn from *swapsi and *swapdi_rex64 using
15045         SWI48 mode iterator.
15046         (*swap<mode>_1): Macroize insn from *swap{qi,hi}_1 using SWI12 mode
15047         iterator.
15048         (*swap<mode>_2): Ditto from *swap{qi,hi}_2.
15049         (movstrict<mode>): Macroize expander from movstrict{qi,hi} using
15050         SWI12 mode iterator.
15051         (*movstrict<mode>_1): Macroize insn from *movstrict{qi,hi}_1 using
15052         SWI12 mode iterator.
15053         (*movstrict<mode>_xor): Ditto from *movstrict{qi,hi}_xor.
15054         (*mov<mode>_extv_1): Macroize insn from *mov{hi,si}_extv_1 using
15055         SWI24 mode iterator.
15056         (*mov<mode>_extzv_1): Macroize insn from *mov{si,di}_extzv_1 using
15057         SWI48 mode iterator.
15058         (mov<mode>_insn_1): New expander.
15059         (*mov<mode>_insv_1_rex64): Macroize insn from *mov{si,di}_insv_1_rex64
15060         using SWI48x mode iterator.
15061
15062         (*movoi_internal_avx): Rename from *movoi_internal.
15063         (*movti_internal_rex64): Rename from *movti_rex64.
15064         (*movti_internal_sse): Rename from *movti_sse.
15065         (*movdi_internal_rex64): Rename from *movdi_1_rex64.
15066         (*movdi_internal): Rename from *movdi_2.
15067         (*movsi_internal): Rename from *movsi_1.
15068         (*movhi_internal): Rename from *movhi_1.
15069         (*movqi_internal): Rename from *movqi_1.
15070
15071         (insv): Update the call to gen_movsi_insv_1 for rename.
15072         * config/i386/i386.c (promote_duplicated_reg): Ditto.
15073
15074 2010-06-22  Jan Hubicka  <jh@suse.cz>
15075
15076         * passes.c (execute_function_todo): Move call of statistics_fini_pass
15077         to ...
15078         (execute_todo) ... this one.
15079
15080 2010-06-22  Alan Modra  <amodra@gmail.com>
15081
15082         PR target/44364
15083         * config/rs6000/e500.h (HARD_REGNO_CALLER_SAVE_MODE): Define.
15084         * caller-save.c (insert_restore, insert_save): Use non-validate
15085         form of adjust_address.
15086
15087 2010-06-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15088
15089         PR target/39690
15090         * config/pa/pa.c (override_options): Disable
15091         -freorder-blocks-and-partition.
15092
15093 2010-06-21  H.J. Lu  <hongjiu.lu@intel.com>
15094
15095         PR target/44615
15096         * config/i386/atom.md (atom_sseishft_2): Also check sseishft1.
15097
15098         * config/i386/i386.md (type): Add sseishft1
15099
15100         * config/i386/ppro_insn (ppro_insn): Also check sseishft1.
15101         (ppro_insn_load): Likewise.
15102         (ppro_insn_store): Likewise.
15103         (ppro_insn_both): Likewise.
15104
15105         * config/i386/sse.md (sse2_lshrv1ti3): Add atom_unit.
15106         (*vec_extractv2di_1_rex64_avx): Replace sseishft with sseishft1
15107         for type.
15108         (*vec_extractv2di_1_avx): Likewise.
15109         (*vec_extractv2di_1_rex64): Replace sseishft with sseishft1 for
15110         type.  Remove atom_unit.
15111         (*vec_extractv2di_1_sse2): Likewise.
15112
15113 2010-06-21  DJ Delorie  <dj@redhat.com>
15114
15115         * diagnostic.h (diagnostic_classification_change_t): New.
15116         (diagnostic_context): Add history and push/pop list.
15117         (diagnostic_push_diagnostics): Declare.
15118         (diagnostic_pop_diagnostics): Declare.
15119         * diagnostic.c (diagnostic_classify_diagnostic): Store changes
15120         from pragmas in a history chain instead of the global table.
15121         (diagnostic_push_diagnostics): New.
15122         (diagnostic_pop_diagnostics): New.
15123         (diagnostic_report_diagnostic): Scan history chain to find state
15124         of diagnostics as of the diagnostic location.
15125         * opts.c (set_option): Pass UNKNOWN_LOCATION to
15126         diagnostic_classify_diagnostic.
15127         (enable_warning_as_error): Likewise.
15128         * diagnostic-core.h (DK_POP): Add after "real" diagnostics, for
15129         use in the history chain.
15130         * doc/extend.texi: Document pragma GCC diagnostic changes.
15131
15132 2010-06-21  Jakub Jelinek  <jakub@redhat.com>
15133
15134         * dwarf2out.c (add_linkage_name): New function.  Don't add
15135         anything to DW_TAG_member DIEs.
15136         (add_name_and_src_coords_attributes): Use it.
15137         (gen_variable_die): Call it for C++ static data members if
15138         specification is DW_TAG_member.
15139
15140         * dwarf2out.c (base_type_die): Use DW_ATE_UTF for
15141         C++ char16_t and char32_t.
15142
15143         * Makefile.in (build/genattrtab.o): Depend on vecprim.h.
15144         * genattrtab.c: Include vecprim.h.
15145         (cached_attrs, cached_attr_count, attrs_seen_once,
15146         attrs_seen_more_than_once, attrs_to_cache, attrs_cached_inside,
15147         attrs_cached_after): New variables.
15148         (find_attrs_to_cache): New function.
15149         (FLG_BITWISE, FLG_AFTER, FLG_INSIDE, FLG_OUTSIDE_AND): Define.
15150         (write_test_expr): Add attrs_cached argument, return it too,
15151         attempt to cache non-const attributes used more than once in
15152         a single case handling.
15153         (write_attr_get): Use find_attrs_to_cache, for caching candidates
15154         emit cached_* variables.  Adjust write_attr_set callers.
15155         (write_attr_set): Add attrs_cached attribute, use find_attrs_to_cache
15156         to find attributes that should be cached in this block.  Adjust
15157         write_test_expr callers.
15158         (write_attr_case): Clear attrs_to_cache.  Adjust write_attr_set
15159         callers.
15160         (make_automaton_attrs): Adjust write_test_expr caller.
15161
15162         * Makefile.in (cfgexpand.o): Depend on $(INSN_ATTR_H).
15163         * genattrtab.c (check_tune_attr, find_tune_attr): New functions.
15164         (make_automaton_attrs): If find_tune_attr returns non-NULL,
15165         write separate internal_dfa_insn_code_* and insn_default_latency_*
15166         functions for each attribute's value and emit init_sched_attrs
15167         function and function pointers.
15168         * genattr.c (const_attrs, reservations): New variables.
15169         (gen_attr): Add const attributes to const_attrs vector.
15170         (check_tune_attr, find_tune_attr): New functions.
15171         (main): Add reservations to reservations vector.  If find_tune_attr
15172         returns true, add prototype for init_sched_attrs and make
15173         internal_dfa_insn_code and insn_default_latency function pointers,
15174         otherwise define init_sched_attrs as dummy macro.
15175         * cfgexpand.c: Include insn-attr.h.
15176         (gimple_expand_cfg): Call init_sched_attrs.
15177
15178         * stmt.c (resolve_asm_operand_names): Fix handling of %%.
15179
15180         PR target/44575
15181         * config/i386/i386.c (ix86_gimplify_va_arg): When copying
15182         va_arg from a set of register save slots into a temporary,
15183         if the container is bigger than type size, do the copying
15184         using smaller mode or using memcpy.
15185
15186         PR bootstrap/44426
15187         * sel-sched-dump.h (sel_prepare_string_for_dot_label): Remove
15188         prototype.
15189         (sel_print_to_dot): Remove macro.
15190         (sel_print): Likewise.  New prototype.
15191         * sel-sched-dump.c (sel_prepare_string_for_dot_label): Make static.
15192         (sel_print): New function.
15193
15194 2010-06-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15195
15196         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define
15197         __STDC_VERSION__=199901L, _XOPEN_SOURCE=600 for C++.
15198
15199 2010-06-21  Nick Clifton  <nickc@redhat.com>
15200
15201         * config/rx/rx.h (PTRDIFF_TYPE): Define.
15202         (SMALL_REGISTER_CLASS): Define (to zero).
15203         (PRINT_OPERAND): Delete.
15204         (PRINT_OPERAND_ADDRESS): Delete.
15205         * config/rx/rx-protos.h (rx_print_operand): Delete prototype.
15206         (rx_print_operand_address): Delete prototype.
15207         * config/rx/rx.c (rx_print_operand): Make static.
15208         Allow %H and %L to handle CONST_DOUBLEs.
15209         (rx_print_operand_address): Make static.
15210         (rx_gen_move_template): Rename local variable 'template' to
15211         out_template.
15212         (rx_function_arg): Do not pass unknown sized objects in registers.
15213         (TARGET_PRINT_OPERAND): Define.
15214         (TARGET_PRINT_OPERAND_ADDRESS): Define.
15215
15216 2010-06-21  Jan Kratochvil  <jan.kratochvil@redhat.com>
15217
15218         * Makefile.in (POD2MAN): Provide --date from $(DATESTAMP).
15219
15220 2010-06-21  Kai Tietz  <kai.tietz@onevision.com>
15221
15222         * config/i386/i386.c (ix86_compute_frame_layout): Avoid
15223         stack-alignment for simple leaf-functions.
15224
15225 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
15226
15227         * doc/install.texi: Document bootstrap-lto.
15228
15229 2010-06-20  Alexandre Oliva  <aoliva@redhat.com>
15230
15231         PR debug/44248
15232         * lto-streamer-in.c (input_bb): Leave debug stmts alone.
15233         (input_function): Drop them here, if VTA is disabled.
15234
15235 2010-06-20  Uros Bizjak  <ubizjak@gmail.com>
15236
15237         PR target/44546
15238         * config/i386/predicates.md (ix86_swapped_fp_comparsion_operator):
15239         New predicate.
15240         * config/i386/i386.md (*fp_jcc_8<mode>_387 and splitters): Use
15241         ix86_swapped_fp_comparsion_operator instead of
15242         ix86_fp_comparison_operator.
15243
15244         (*fp_jcc_1_387): Rename from *fp_jcc_3_387.
15245         (*fp_jcc_1r_387): Rename from *fp_jcc_4_387.
15246         (*fp_jcc_2_387): Rename from *fp_jcc_5_387.
15247         (*fp_jcc_2r_387): Rename from *fp_jcc_6_387.
15248         (*fp_jcc_3_387): Rename from *fp_jcc_7_387.
15249         (*fp_jcc_4_<mode>_387): Rename from *fp_jcc_8<mode>_387.
15250
15251 2010-06-20  Joseph Myers  <joseph@codesourcery.com>
15252
15253         PR other/32998
15254         * opth-gen.awk: Generate definitions of OPT_SPECIAL_unknown,
15255         OPT_SPECIAL_program_name and OPT_SPECIAL_input_file.
15256         * opts-common.c (find_opt): Return OPT_SPECIAL_unknown on failure.
15257         (decode_cmdline_option): Update for this return value.  Set
15258         orig_option_with_args_text field.  Set arg field for unknown
15259         options.  Make static.
15260         (decode_cmdline_options_to_array): New.
15261         (prune_options): Update handling of find_opt return value.
15262         * opts.c (read_cmdline_option): Take decoded option.  Return void.
15263         (read_cmdline_options): Take decoded options.
15264         (decode_options): Add parameters for decoded options.  Use
15265         decode_cmdline_options_to_array.  Use decoded options for -O
15266         scan.  Use integral_argument for -O parameters.  Update call to
15267         read_cmdline_options.
15268         (enable_warning_as_error): Update handling of find_opt return value.
15269         * opts.h: Update comment on unknown options.
15270         (struct cl_decoded_option): Update comments on opt_index and arg.
15271         Add orig_option_with_args_text.
15272         (decode_cmdline_option): Remove.
15273         (decode_cmdline_options_to_array): Declare.
15274         (decode_options): Update prototype.
15275         * toplev.c (save_argv): Remove.
15276         (save_decoded_options, save_decoded_options_count): New.
15277         (read_integral_parameter): Remove.
15278         (print_switch_values): Use decoded options.
15279         (toplev_main): Don't set save_argv.  Update call to decode_options.
15280         * toplev.h (read_integral_parameter): Remove.
15281         * varasm.c (elf_record_gcc_switches): Don't handle holding back names.
15282
15283 2010-06-19  Richard Earnshaw  <rearnsha@arm.com>
15284
15285         PR target/44072
15286         * arm.md (cmpsi2_addneg): Prefer emitting adds to subs with a negative
15287         immediate.
15288         * constraints.md (Pw, Px): New constraints.
15289         * thumb2.md (cmpsi2_addneg peephole2): New peepholes.
15290
15291 2010-06-19  H.J. Lu  <hongjiu.lu@intel.com>
15292
15293         * config/i386/sse.md (fma4modesuffixf4): Removed.
15294         (ssemodesuffixf2s): Likewise.
15295         (ssemodesuffixf4): Likewise.
15296         (ssemodesuffixf2c): Likewise.
15297         (ssescalarmodesuffix2s): Likewise.
15298         (avxmodesuffixf2c): Likewise.
15299         (ssemodesuffix): New.
15300         (ssescalarmodesuffix): Likewise.
15301         Update patterns with ssemodesuffix and ssescalarmodesuffix.
15302
15303 2010-06-19  Philip Herron  <herron.philip@googlemail.com>
15304
15305         * c-decl.c (c_write_global_declarations): Don't check flag_syntax_only.
15306
15307 2010-06-18  H.J. Lu  <hongjiu.lu@intel.com>
15308
15309         * stor-layout.c (debug_rli): Remove unused local variables.
15310
15311 2010-06-18  Eric Botcazou  <ebotcazou@adacore.com>
15312
15313         PR rtl-optimization/40900
15314         * expr.c (expand_expr_real_1) <SSA_NAME>: Fix long line.  Save the
15315         original expression for later reuse.
15316         <expand_decl_rtl>: Use promote_function_mode to compute the signedness
15317         of the promoted RTL for a SSA_NAME on the LHS of a call statement.
15318
15319 2010-06-18  Anatoly Sokolov  <aesok@post.ru>
15320
15321         * double-int.h (double_int_to_shwi, double_int_to_uhwi,
15322         double_int_fits_in_uhwi_p): Implement as static inline.
15323         (double_int_xor): New inline function.
15324         (double_int_lrotate, double_int_rrotate, double_int_max,
15325         double_int_umax, double_int_smax, double_int_min, double_int_umin,
15326         double_int_smin): Declare.
15327         (lrotate_double, rrotate_double): Remove declaration.
15328         * double-int.c (double_int_fits_in_uhwi_p, double_int_to_shwi,
15329         double_int_to_uhwi, lrotate_double, rrotate_double): Remove function.
15330         (double_int_lrotate, double_int_rrotate, double_int_max,
15331         double_int_umax, double_int_smax, double_int_min, double_int_umin,
15332         double_int_smin): New function.
15333         * fold-const.c (int_const_binop): Clean up, use double_int_*
15334         functions.
15335         * simplify-rtx.c (simplify_const_binary_operation): Clean up, use
15336         double_int_* and immed_double_int_const functions.
15337
15338 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
15339
15340         * function.h (types_used_by_cur_var_decl): Change type to a VEC.
15341         * function.c (types_used_by_cur_var_decl): Likewise.
15342         (used_types_insert): Adjust for new type of types_used_by_cur_var_decl.
15343
15344 2010-06-18  Nathan Froyd  <froydnj@codesourcery.com>
15345
15346         * tree.h (record_layout_info): Change type of pending_statics field
15347         to a VEC.
15348         * stor-layout.c (start_record_layout): Store NULL into
15349         pending_statics.
15350         (debug_rli): Call debug_vec_tree instead of debug_tree.
15351         (place_field): Likewise.
15352         (finish_record_layout): Likewise.
15353
15354 2010-06-18  Alan Modra  <amodra@gmail.com>
15355
15356         * config/rs6000/linux64.h (SET_CMODEL): Don't expand to empty.
15357
15358 2010-06-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15359
15360         PR target/43740
15361         * config/pa/pa.c (emit_move_sequence): Don't infer REG_POINTER flag
15362         for SET source operand from SET destination operand.
15363
15364 2010-06-17  Bernd Schmidt  <bernds@codesourcery.com>
15365
15366         PR rtl-optimization/39871
15367         * reload1.c (init_eliminable_invariants): For flag_pic, disable
15368         equivalences only for constants that aren't LEGITIMATE_PIC_OPERAND_P.
15369         (function_invariant_p): Rule out a plus of frame or arg pointer with
15370         a SYMBOL_REF.
15371         * ira.c (find_reg_equiv_invariant_const): Likewise.
15372
15373 2010-06-17  Gunther Nikl  <gnikl@users.sourceforge.net>
15374
15375         * config/rs6000/rs6000.c (print_operand) <'K'>: Also use
15376         print_operand_address and puts to output the operand for CONST.
15377
15378 2010-06-17  Jakub Jelinek  <jakub@redhat.com>
15379
15380         PR debug/44572
15381         * dwarf2out.c (dwarf2out_debug_hooks): Add entry for begin_epilogue
15382         hook.
15383
15384 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
15385
15386         * v850-protos.h (print_operand): Delete.
15387         (print_operand_address): Delete.
15388         * v850.h (PRINT_OPERAND): Delete.
15389         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
15390         (PRINT_OPERAND_ADDRESS): Delete.
15391         * v850.c (print_operand_address): Rename to...
15392         (v850_print_operand_address): ...this.  Make static. Call
15393         v850_print_operand.
15394         (print_operand): Rename to...
15395         (v850_print_operand): ...this.  Make static.  Call
15396         v850_print_operand_address.
15397         (v850_print_operand_punct_valid_p): New function.
15398         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
15399         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
15400
15401 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
15402
15403         * config/sh/sh-protos.h (print_operand): Delete.
15404         (print_operand_address): Delete.
15405         * config/sh/sh.h (PRINT_OPERAND): Delete.
15406         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
15407         (PRINT_OPERAND_ADDRESS): Delete.
15408         * config/sh/sh.c (sh_print_operand_address): Make static.
15409         (sh_print_operand): Make static.  Call sh_print_operand_address
15410         and sh_print_operand.
15411         (sh_print_operand_punct_valid_p): New function.
15412         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
15413         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
15414
15415 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
15416
15417         * config/mcore/mcore-protos.h (mcore_print_operand): Delete.
15418         (mcore_print_operand_address): Delete.
15419         * config/mcore/mcore.h (PRINT_OPERAND): Delete.
15420         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
15421         (PRINT_OPERAND_ADDRESS): Delete.
15422         * config/mcore/mcore.c (mcore_print_operand_address): Make static.
15423         (mcore_print_operand): Make static.
15424         (mcore_print_operand_punct_valid_p): New function.
15425         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define
15426         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
15427
15428 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
15429
15430         * config/m68hc11/m68hc11-protos.h (print_operand): Delete.
15431         (print_operand_address): Delete.
15432         * config/m68hc11/m68hc11.h (PRINT_OPERAND): Delete.
15433         (PRINT_OPERAND_ADDRESS): Delete.
15434         * config/m68hc11/m68hc11.c (m68hc11_print_operand_address): Make
15435         static.
15436         (m68hc11_print_operand): Make static.
15437         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
15438
15439 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
15440
15441         * config/m32r/m32r-protos.h (m32r_print_operand): Delete.
15442         (m32r_print_operand_address): Delete.
15443         * config/m32r/m32r.h (m32r_punct_chars): Delete.
15444         (PRINT_OPERAND): Delete.
15445         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
15446         (PRINT_OPERAND_ADDRESS): Delete.
15447         * config/m32r/m32r.c (m32r_punct_chars): Make static.
15448         (m32r_print_operand_address): Make static.
15449         (m32r_print_operand): Make static.
15450         (m32r_print_operand_punct_valid_p): New function.
15451         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
15452         (TARGET_PRINT_OPERAND_ADDRESS): Define.
15453
15454 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
15455
15456         * config/iq2000/iq2000-protos.h (print_operand): Delete.
15457         (print_operand_address): Delete.
15458         * config/iq2000/iq2000.h (PRINT_OPERAND): Delete.
15459         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
15460         (PRINT_OPERAND_ADDRESS): Delete.
15461         (iq2000_print_operand_punct): Delete.
15462         * config/iq2000/iq2000.c (iq2000_print_operand_punct): Make static.
15463         (iq2000_print_operand_address): Make static.
15464         (iq2000_print_operand): Make static.
15465         (iq2000_print_operand_punct_valid_p): New function.
15466         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
15467         (TARGET_PRINT_OPERAND_ADDRESS): Define.
15468
15469 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
15470
15471         * config/frv/frv-protos.h (frv_print_operand): Delete.
15472         (frv_print_operand_address): Delete.
15473         * config/frv/frv.h (PRINT_OPERAND): Delete.
15474         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
15475         (PRINT_OPERAND_ADDRESS): Delete.
15476         * config/frv/frv.c (frv_print_operand_address): Make static.
15477         (frv_print_operand): Make static.
15478         (frv_print_operand_punct_valid_p): New function.
15479         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
15480         (TARGET_PRINT_OPERAND_ADDRESS): Define.
15481
15482 2010-06-17  Nathan Froyd  <froydnj@codesourcery.com>
15483
15484         * tree.h (vec_member): Declare.
15485         * tree.c (vec_member): Define.
15486
15487 2010-06-17  Richard Guenther  <rguenther@suse.de>
15488
15489         * tree-flow-inline.h (array_ref_contains_indirect_ref): Remove.
15490         * tree-flow.h (array_ref_contains_indirect_ref): Likewise.
15491
15492 2010-06-17  Richard Guenther  <rguenther@suse.de>
15493
15494         * tree-inline.c (declare_return_variable): Remove bogus code.
15495
15496 2010-06-17  Richard Guenther  <rguenther@suse.de>
15497
15498         * gimplify.c (gimplify_bind_expr): Always promote complex
15499         and vector variables to registers if possible.
15500
15501 2010-06-17  Richard Guenther  <rguenther@suse.de>
15502
15503         * expr.c (get_inner_reference): Use double_int for bit_offset
15504         calculation.
15505
15506 2010-06-16  DJ Delorie  <dj@redhat.com>
15507
15508         * common.opt (-fstrict-volatile-bitfields): new.
15509         * doc/invoke.texi: Document it.
15510         * fold-const.c (optimize_bit_field_compare): For volatile
15511         bitfields, use the field's type to determine the mode, not the
15512         field's size.
15513         * expr.c (expand_assignment): Likewise.
15514         (get_inner_reference): Likewise.
15515         (expand_expr_real_1): Likewise.
15516         * expmed.c (store_fixed_bit_field): Likewise.
15517         (extract_bit_field_1): Likewise.
15518         (extract_fixed_bit_field): Likewise.
15519
15520 2010-06-16  Richard Guenther  <rguenther@suse.de>
15521
15522         * tree-inline.c (remap_gimple_op_r): Recurse using remap_gimple_op_r.
15523
15524 2010-06-16  Douglas B Rupp  <rupp@gnat.com>
15525
15526         * config/ia64/vms.h (ASM_OUTPUT_DWARF_DELTA_UNITS): Remove.
15527         (ASM_OUTPUT_DWARF_VMS_DELTA: Define new macro.
15528         * dbxout.c (gcc_debug_hooks): New entry begin_epilogue.
15529         * debug.c: Likewise.
15530         * sdbout.c: Likewise.
15531         * vmsdbgout.c: Likewise.
15532         * debug.h: Likewise. (dwarf2out_vms_{begin,end}_prologue): Declare.
15533         * doc/tm.texi (ASM_OUTPUT_DWARF_VMS_DELTA): Document.
15534         * dwarf2asm.c (dw2_asm_output_vms_delta): New function.
15535         (ASM_OUTPUT_DWARF_VMS_DELTA): Call it.
15536         * dwarf2asm.h (dw2_asm_output_vms_delta): Declare.
15537         * dwarf2out.c (dw_fde_struct): New fields
15538         dw_fde_vms_{end,begin}_prologue.
15539         (PROLOGUE_END_LABEL, EPILOGUE_BEGIN_LABEL): New macros.
15540         (dwarf2out_begin_prologue): Set dw_fde_struct defaults for above.
15541         (dwarf2out_vms_end_prologue): New function.
15542         (dwarf2out_vms_begin_epilogue): New function.
15543         (dw_val_struct): New value dw_val_class_vms_delta.
15544         (gcc_debug_hooks): New entry begin_epilogue. Set end_prologue,
15545         begin_epilogue for VMS.
15546         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): Declare
15547         new static functions.
15548         (dwarf_attr_name): New cases DW_AT_HP_{prologue,epilogue}.
15549         (AT_vms_delta1, AT_vms_delta2, add_AT_vms_delta): New
15550         static functions.
15551         (print_die): New case dw_val_class_vms_delta.
15552         (attr_checksum): Likewise.
15553         (same_dw_val_p: Likewise.
15554         (size_of_die): Likewise.
15555         (value_format): Likewise.
15556         (output_die): Likewise.
15557         (gen_subprogram_die): Call add_AT_vms_delta on VMS.
15558         (dwarf2out_begin_epilogue): Rename to dwarf2out_cfi_begin_epilogue
15559         * dwarf2out.h (dwarf2out_begin_epilogue): Rename to
15560         dwarf2out_cfi_begin_epilogue
15561         * final.c (final_scan_insn): Likewise. Call begin_epilogue.
15562
15563 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
15564
15565         * config/cris/cris-protos.h (cris_print_operand): Delete.
15566         (cris_print_operand_address): Delete.
15567         * config/cris/cris.h (PRINT_OPERAND): Delete.
15568         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
15569         (PRINT_OPERAND_ADDRESS): Delete.
15570         * config/cris/cris.c (cris_print_operand_address): Make static.
15571         (cris_print_operand): Make static.
15572         (cris_print_operand_punct_valid_p): New function.
15573         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
15574         (TARGET_PRINT_OPERAND_ADDRESS): Define.
15575
15576 2010-06-16  Nathan Froyd  <froydnj@codesourcery.com>
15577
15578         * config/arm/arm-protos.h (arm_print_operand): Delete.
15579         (arm_print_operand_address): Delete.
15580         * config/arm/arm.h (PRINT_OPERAND): Delete.
15581         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
15582         (PRINT_OPERAND_ADDRESS, ARM_PRINT_OPERAND_ADDRESS):
15583         (THUMB_PRINT_OPERAND_ADDRESS): Delete and move code to...
15584         * config/arm/arm.c (arm_print_operand_address): ...here.  New function.
15585         (arm_print_operand): Make static.
15586         (arm_print_operand_punct_valid_p): New function.
15587         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS):
15588         (TARGET_PRINT_OPERAND_ADDRESS): Define.
15589
15590 2010-06-16  Nick Clifton  <nickc@redhat.com>
15591
15592         * config/rx/constraints.md (NEGint4): New constraint.
15593         * config/rx/rx.md (attr cc): Add set_zsc.
15594         (cbranchsf4): Only test for -fnon-call-exceptions if cfun has been
15595         initialised.
15596         (cmpsf): Likewise.
15597         (call_internal): Clobber the cc0 register.
15598         (call_value_internal): Likewise.
15599         (cstoresi4): Likewise.
15600         (movsieq): Likewise.
15601         (movsine): Likewise.
15602         (addsi3): Add alternative to handle small negative constants.
15603         (sunsi3): Likewise.
15604         (addsi3): Do not set the O bit in the cc0 register.
15605         (adddi3): Likewise.
15606         (subsi3): Likewise.
15607         (subdi3): Likewise.
15608         (andsi3): Reorder alternatives to prefer shorter forms.
15609         (mulsi3): Likewise.
15610         (iorsi3): Likewise.
15611         (negsi2): Note that the cc0 flags are set.
15612         (rotlsi3): Note that only the Z and S bits are set in cc0.
15613         (lshrsi3): Likewise.
15614         (ashlsi3): Likewise.
15615         (subsf3): Use %Q for the MEM operand.
15616         (fix_truncsfsi2): Likewise.
15617         (floatsisf2): Likewise.
15618         (bitset): Remove early clobber from destination.
15619         (bitset_in_memory): Likewise.
15620         (lrintsf2): Clobber the cc0 register.
15621         * config/rx/rx.c (rx_notice_update_cc): Handle CC_SET_ZSC.
15622         (rx_print_operand): Handle %N.
15623
15624 2010-06-16  Jan Hubicka  <jh@suse.cz>
15625
15626         * df-core.c (df_compact_blocks): Free problem_temps vector.
15627
15628 2010-06-16  Martin Jambor  <mjambor@suse.cz>
15629
15630         PR tree-optimization/43905
15631         * tree-sra.c: Include tree-inline.h.
15632         (create_abstract_origin): Removed.
15633         (modify_function): Version the call graph node instead of creating
15634         abstract origins and dealing with same_body aliases.
15635         * tree-sra.c (ipa_sra_preliminary_function_checks): Check whether the
15636         function is versionable.
15637         * Makefile.in (tree-sra.o): Add TREE_INLINE_H to dependencies.
15638
15639 2010-06-16  Maxim Kuvyrkov  <maxim@codesourcery.com>
15640
15641         * config/mips/linux64.h (BIONIC_DYNAMIC_LINKERN32): Define.
15642         (CHOOSE_DYNAMIC_LINKER): Update.
15643
15644 2010-06-15  Uros Bizjak  <ubizjak@gmail.com>
15645
15646         * config/i386/i386.c (*prefetch_sse_<mode>):  Macroize insn from
15647         *prefetch_sse and *prefetch_sse_rex using P mode iterator.
15648         (*prefetch_3dnow_<mode>): Ditto from *prefetch_3dnow and
15649         *prefetch_3dnow_rex.
15650
15651 2010-06-15  Anatoly Sokolov  <aesok@post.ru>
15652
15653         * target.h (struct asm_out):Add declare_constant_name field.
15654         * target-def.h (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
15655         (TARGET_INITIALIZER): Use TARGET_ASM_DECLARE_CONSTANT_NAME.
15656         * output.h (default_asm_declare_constant_name): Declare.
15657         (assemble_label): Update prototype.
15658         * varasm.c (assemble_constant_contents): Use
15659         targetm.asm_out.declare_constant_name target hook.
15660         (assemble_label): Add 'file' argument.
15661         (default_asm_declare_constant_name): New function.
15662         * system.h (ASM_DECLARE_CONSTANT_NAME): Poison.
15663         * doc/tm.texi (ASM_DECLARE_CONSTANT_NAME): Remove.
15664         (TARGET_ASM_DECLARE_CONSTANT_NAME): Document it.
15665
15666         * config/darwin-protos.h (darwin_asm_declare_constant_name): Declare.
15667         * config/darwin.c (darwin_asm_declare_constant_name): New function.
15668         (machopic_output_indirection): Update assemble_label argument list.
15669         * config/darwin.h (ASM_DECLARE_CONSTANT_NAME): Remove.
15670         (TARGET_ASM_DECLARE_CONSTANT_NAME): Define.
15671
15672 2010-06-15  Sebastian Pop  <sebastian.pop@amd.com>
15673
15674         PR middle-end/44391
15675         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
15676         size_one_node for pointer types.  Do not call gmp_cst_to_tree.
15677
15678 2010-06-15  Richard Guenther  <rguenther@suse.de>
15679
15680         * tree-ssa-pre.c (eliminate): Handle PHI elimination to constants.
15681
15682 2010-06-15  Paul Brook  <paul@codesourcery.com>
15683
15684         * config/arm/arm.c (use_vfp_abi): Add sorry() for Thumb-1
15685         hard-float ABI.
15686
15687 2010-06-15  Alexandre Oliva  <aoliva@redhat.com>
15688
15689         * tree-vect-patterns.c (vect_pattern_recog_1): Bail out if we
15690         don't get a vector type for output.
15691
15692 2010-06-15  Jakub Jelinek  <jakub@redhat.com>
15693
15694         PR fortran/44536
15695         * langhooks.h (struct lang_hooks_for_decls): Add omp_report_decl.
15696         * langhooks-def.h (LANG_HOOKS_OMP_REPORT_DECL): Define.
15697         (LANG_HOOKS_DECLS): Add it.
15698         * gimplify.c (omp_notice_variable): Call
15699         lang_hooks.decls.omp_report_decl.
15700
15701 2010-06-15  Martin Jambor  <mjambor@suse.cz>
15702
15703         PR lto/44464
15704         * tree-sra.c (replace_removed_params_ssa_names): Call release_ssa_name
15705         on the newly dead SSA name.
15706
15707 2010-06-15  Alan Modra  <amodra@gmail.com>
15708
15709         * doc/invoke.texi: Add mcmodel to powerpc options.
15710         * configure.ac: Add HAVE_LD_LARGE_TOC test.
15711         * configure: Regenerate.
15712         * config.in: Regenerate.
15713         * config/rs6000/linux64.opt (mcmodel): New.
15714         * config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
15715         (TARGET_CMODEL, SET_CMODEL): Define.
15716         (SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
15717         select CMODEL_MEDIUM default.
15718         * config/rs6000/rs6000.h (enum rs6000_cmodel): New.
15719         (TARGET_CMODEL): Define default.
15720         * config/rs6000/rs6000.c (cmodel): New variable.
15721         (rs6000_explicit_options): Add cmodel field.
15722         (rs6000_handle_option): Handle -mcmodel.
15723         (create_TOC_reference): Add largetoc_reg param.  Generate high,
15724         lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE.  Update all callers.
15725         (rs6000_delegitimize_address): Recognise new toc reference rtl
15726         and minimal-toc rtl.
15727         (rs6000_legitimize_reload_address): Handle new toc references.
15728         (print_operand_address): Handle legitimate_constant_pool_address_p
15729         match before lo_sum.
15730         (rs6000_eliminate_indexed_memrefs): Tidy.
15731         (rs6000_emit_move): Tweak threshold for inlining constants.
15732         Keep rs6000_emit_allocate_stack large stack frame offsets
15733         loaded into r0 inline.
15734         (rs6000_generate_compare <cmptf_internal2>): One more clobber.
15735         (tocrel_base, tocrel_offset): New variables.
15736         (toc_relative_expr_p): Set them here.
15737         (print_operand_address): Skip over any offset on constant pool address.
15738         (rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
15739         (rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
15740         (offsettable_ok_by_alignment): New function.
15741         (rs6000_emit_move): Address suitably aligned local symbol_refs
15742         relative to the toc pointer for -mcmodel=medium.
15743         (legitimate_constant_pool_address_p): Make param const_rtx.  Add
15744         strict param.  Allow lo_sum version of addressing.  Verify reg
15745         used for -mminimal-toc and -mcmodel != small.  Update all callers.
15746         * config/rs6000/constraints.md: Update for above change.
15747         * config/rs6000/predicates.md: Likewise.
15748         * config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
15749         code.
15750         (tls_gd): Split for -mcmodel=medium/large.
15751         (tls_gd_high, tls_gd_low): New.
15752         (tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
15753         (tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
15754         (tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
15755         (largetoc_high, largetoc_low): New.
15756         (cmptf_internal2): Add clobber.
15757         * config/rs6000/rs6000-protos.h: Update.
15758
15759 2010-06-14  Changpeng Fang  <changpeng.fang@amd.com>
15760
15761         * tree-ssa-loop-prefetch.c (nothing_to_prefetch_p): New.  Return
15762         true if no prefetch is going to be generated for a given group.
15763         (estimate_prefetch_count): Use prefetch_mod and unroll_factor to
15764         estimate the prefetch_count.
15765         (loop_prefetch_arrays): Call nothing_to_prefetch_p; estimate the
15766         prefetch count by considering the unroll_factor and prefetch_mod
15767         for is_loop_prefetching_profitable.
15768
15769 2010-06-14  Andreas Schwab  <schwab@linux-m68k.org>
15770
15771         * config/m68k/m68k.c (m68k_delegitimize_address): Don't do
15772         anything if the argument is not a MEM.
15773
15774 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
15775
15776         PR debug/43650
15777         PR debug/44181
15778         PR debug/44247
15779         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Skip
15780         debug stmts.
15781         (canonicalize_loop_ivs): Likewise.
15782
15783 2010-06-14  Alexandre Oliva  <aoliva@redhat.com>
15784
15785         PR debug/43656
15786         * haifa-sched.c (setup_insn_reg_pressure_info,
15787         update_register_pressure): Reject debug insns.
15788         (ready_sort): Don't setup reg pressure for debug insns.
15789         (schedule_insn): Don't update reg pressure for debug insns.
15790
15791 2010-06-14  Richard Guenther  <rguenther@suse.de>
15792
15793         * lto-streamer.c (cached_bp): Remove.
15794         (bitpack_delete): Likewise.
15795         (bitpack_create): Likewise.
15796         (bp_get_next_word): Likewise.
15797         (bp_pack_value, bp_unpack_value): Move ...
15798         * lto-streamer.h (bp_pack_value, bp_unpack_value): ... here.
15799         Re-implement.
15800         (struct bitpack_d): Likewise.
15801         (bitpack_create, lto_output_bitpack, lto_input_bitpack):
15802         New inline functions.
15803         * lto-streamer-out.c (lto_output_bitpack): Remove.
15804         (pack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
15805         (pack_value_fields): Adjust.
15806         (lto_write_tree): Likewise.
15807         (output_gimple_stmt): Likewise.
15808         (output_function): Likewise.
15809         * lto-streamer-in.c (input_gimple_stmt): Adjust.
15810         (input_function): Likewise.
15811         (unpack_ts_base_value_fields): Adjust.  Avoid conditional bitpacking.
15812         (lto_input_bitpack): Remove.
15813         (lto_materialize_tree): Adjust.
15814         * Makefile.in (ipa-prop.o): Add $(LTO_STREAMER_H) dependency.
15815         * lto-cgraph.c (lto_output_edge): Adjust.
15816         (lto_output_node): Likewise.
15817         (lto_output_varpool_node): Likewise.
15818         (lto_output_ref): Likewise.
15819         (input_node): Likewise.
15820         (input_varpool_node): Likewise.
15821         (input_ref): Likewise.
15822         (input_edge): Likewise.
15823         (output_node_opt_summary): Likewise.
15824         (input_node_opt_summary): Likewise.
15825         * ipa-pure-const.c (pure_const_write_summary): Likewise.
15826         (pure_const_read_summary): Likewise.
15827         * ipa-prop.c (ipa_write_indirect_edge_info): Likewise.
15828         (ipa_read_indirect_edge_info): Likewise.
15829         (ipa_write_node_info): Likewise.
15830         (ipa_read_node_info): Likewise.
15831
15832 2010-06-14  H.J. Lu  <hongjiu.lu@intel.com>
15833
15834         PR target/44534
15835         * config/i386/sse.md (vec_extract_lo_<mode>): Replace 0x1 with 0x0.
15836         (vec_extract_lo_v16hi): Likewise.
15837         (vec_extract_lo_v32qi): Likewise.
15838
15839 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
15840
15841         PR bootstrap/44426
15842         * tree.h (build_call_expr): Don't define as vararg macro, instead
15843         add a prototype.
15844         * builtins.c (build_call_nofold): Remove.
15845         (expand_builtin_int_roundingfn, expand_builtin_pow,
15846         expand_builtin_mempcpy_args, expand_builtin_stpcpy,
15847         expand_builtin_memset_args, expand_builtin_strcmp,
15848         expand_builtin_strncmp, expand_builtin_memory_chk): Use
15849         build_call_nofold_loc instead of build_call_nofold.
15850         (build_call_expr): New function.
15851
15852         PR tree-optimization/44508
15853         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE argument.
15854         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
15855         don't eliminate trivially dead stmts.
15856         * tree-vrp.c (vrp_finalize): Pass false as last argument
15857         to substitute_and_fold.
15858         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
15859         to substitute_and_fold.
15860         * tree-ssa-ccp.c (ccp_finalize): Likewise.
15861
15862         PR bootstrap/44509
15863         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
15864
15865 2010-06-14  Ira Rosen  <irar@il.ibm.com>
15866
15867         PR tree-optimization/44507
15868         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
15869         to build initial vector for BIT_AND_EXPR.
15870         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
15871
15872 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
15873
15874         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
15875         adjust z10prop set_attr.
15876
15877 2010-06-13  Jan Hubicka  <jh@suse.cz>
15878
15879         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
15880         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
15881         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
15882         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
15883         datastructure checks into checking asserts.
15884         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
15885         * tree-ssa-sccvn.c (VN_INFO): Likewise.
15886         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
15887         df_ref_create_structure): Likewise.
15888         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
15889         pool_free): Use gcc_checking_assert.
15890         * alias.c (get_alias_set): Likewise.
15891         * var-tracking.c (variable_htab_free, shared_hash_copy,
15892         canonicalize_values_mark, variable_merge_over_cur): Likewise.
15893         * lto-streamer.c (bp_unpack_value): Likewise.
15894
15895 2010-06-13  Richard Guenther  <rguenther@suse.de>
15896
15897         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
15898         Do not stream but initialize TYPE_CANONICAL to NULL.
15899         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
15900         * gimple.c (gimple_types_compatible_p): Disregard
15901         TYPE_STRUCTURAL_EQUALITY_P.
15902         (gimple_register_type): Use TYPE_CANONICAL as cache.
15903         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
15904         before registering common types.
15905         * config/i386/i386.c (ix86_function_arg_boundary): Do not
15906         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
15907         * tree.h (TYPE_CANONICAL): Clarify documentation.
15908
15909 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
15910
15911         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
15912         LIBCALL_VALUE): Remove macros.
15913         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
15914         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
15915         TARGET_FUNCTION_VALUE_REGNO_P): Define.
15916         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
15917         (ia64_function_value): Make static. Handle receiving the function
15918         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
15919
15920 2010-06-12  Jan Hubicka  <jh@suse.cz>
15921
15922         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
15923         at correct place.
15924
15925 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
15926
15927         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
15928
15929 2010-06-12  Jan Hubicka  <jh@suse.cz>
15930
15931         * df-core.c (df_clear_bb_info): New function.
15932         (df_set_blocks): bb_info is always allocated.
15933         (df_get_bb_info): Use block_info_elt_size.
15934         (df_set_bb_info): Likewise.
15935         (df_compact_blocks): Update for new block_info.
15936         (grow_bb_info): New function.
15937         * df-problems.c (df_grow_bb_info): Move to df-core.c
15938         (df_rd_set_bb_info): Remove.
15939         (df_rd_free_bb_info): Do not free block pool.
15940         (df_rd_alloc): Do not create pool, use check for
15941         obstack presence instead of NULL pointer for new blocks.
15942         (df_rd_free): DO not free alloc pool; clear block_info.
15943         (problem_RD): Add size of block info structure.
15944         (df_lr_set_bb_info): Remove.
15945         (df_lr_free_bb_info): Do not free block pool.
15946         (df_lr_alloc): Do not create pool, use check for
15947         obstack presence instead of NULL pointer for new blocks.
15948         (df_lr_free): DO not free alloc pool; clear block_info.
15949         (problem_LR): Add size of block info structure.
15950         (df_live_set_bb_info): Remove.
15951         (df_live_free_bb_info): Do not free block pool.
15952         (df_live_alloc): Do not create pool, use check for
15953         obstack presence instead of NULL pointer for new blocks.
15954         (df_live_free): DO not free alloc pool; clear block_info.
15955         (problem_LIVE): Add size of block info structure.
15956         (problem_CHAIN): Add size of block info structure.
15957         (df_byte_lr_set_bb_info): Remove.
15958         (df_byte_lr_free_bb_info): Do not free block pool.
15959         (df_byte_lr_alloc): Do not create pool, use check for
15960         obstack presence instead of NULL pointer for new blocks.
15961         (df_byte_lr_free): DO not free alloc pool; clear block_info.
15962         (problem_BYTE_LR): Add size of block info structure.
15963         (problem_NOTE): Add size of block info structure.
15964         (df_byte_MD_set_bb_info): Remove.
15965         (df_byte_MD_free_bb_info): Do not free block pool.
15966         (df_byte_MD_alloc): Do not create pool, use check for
15967         obstack presence instead of NULL pointer for new blocks.
15968         (df_byte_MD_free): DO not free alloc pool; clear block_info.
15969         (problem_BD): Add size of block info structure.
15970         * df-scan.c (df_scan_free_internal): Free block pool.
15971         (df_scan_set_bb_info): Remove.
15972         (df_scan_free_bb_info): Check for artificial_defs instead
15973         of bb_info being non-NULL.
15974         (df_scan_alloc): DO not create df_scan_block pool.
15975         (problem_SCAN): Set size of block info.
15976         (df_bb_refs_record): Do not allocate bb_info.
15977         * df.h (df_problem): Add block_info_elt_size.
15978         (struct dataflow): Change block_info to void *.
15979         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
15980         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
15981         in-line structures.
15982
15983 2010-06-12  Jan Hubicka  <jh@suse.cz>
15984
15985         PR tree-optimize/44485
15986         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
15987         containing use of return value of noreturn function.
15988
15989 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
15990
15991         * targhooks.c (default_function_value): Don't use
15992         FUNCTION_OUTGOING_VALUE.
15993         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
15994         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
15995
15996 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
15997
15998         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*, mips*-*-linux*):
15999         Add crtfastmath.o to extra_parts.
16000         * config/mips/crtfastmath.c: New.
16001         * config/mips/linux.h (ENDFILE_SPEC): New.
16002
16003 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
16004
16005         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
16006         old_type in parameter.
16007         (gcc_type_for_value): Update call to gcc_type_for_interval.
16008         (compute_type_for_level_1): Renamed compute_type_for_level.
16009         Update call to gcc_type_for_interval.
16010
16011 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
16012
16013         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
16014         flto-compression-level=, ftree-parallelize-loops=): Add RejectNegative.
16015
16016 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
16017
16018         * opts-common.c: Include options.h.
16019         (integral_argument): Move from opts.c.
16020         (decode_cmdline_option): New.  Based on read_cmdline_option.
16021         * opts.c (integral_argument): Move to opts-common.c.
16022         (read_cmdline_option): Move most contents to
16023         decode_cmdline_option.  Use %qs in diagnostics.
16024         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
16025         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
16026         decode_cmdline_option): New.
16027
16028 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
16029
16030         PR target/44481
16031         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
16032         (paritydi2_cmp): Use UNSPEC_PARITY unspec instead of parity RTX.
16033         (partiysi2_cmp): Ditto.
16034         (*partiyhi2_cmp): Ditto.
16035         (*parityqi2_cmp): Remove.
16036
16037 2010-06-11  Jan Hubicka  <jh@suse.cz>
16038
16039         * bitmap.h (bmp_iter_next_bit): New.
16040         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
16041
16042 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
16043             Eric Botcazou  <ebotcazou@adacore.com>
16044
16045         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
16046         computed cost.
16047
16048 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
16049
16050         * config/i386/i386.md (unspec): New define_c_enum.
16051         (unspecv): Ditto.
16052
16053 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
16054
16055         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
16056
16057 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
16058
16059         PR middle-end/44483
16060         * tree-if-conv.c (bb_predicate_s): New struct.
16061         (bb_predicate_p): New.
16062         (bb_has_predicate): New.
16063         (bb_predicate): New.
16064         (set_bb_predicate): New.
16065         (bb_predicate_gimplified_stmts): New.
16066         (set_bb_predicate_gimplified_stmts): New.
16067         (add_bb_predicate_gimplified_stmts): New.
16068         (init_bb_predicate): New.
16069         (free_bb_predicate): New.
16070         (is_predicated): Use bb_predicate.
16071         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
16072         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
16073         before processing their successors.
16074         (clean_predicate_lists): Removed.
16075         (find_phi_replacement_condition): Use bb_predicate.
16076         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
16077         computations.
16078         (insert_gimplified_predicates): New.
16079         (combine_blocks): Call insert_gimplified_predicates.
16080         (tree_if_conversion): Call free_bb_predicate instead of
16081         clean_predicate_lists.
16082
16083 2010-10-11  Paul Brook  <paul@codesourcery.com>
16084
16085         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
16086         * config/arm/arm.c (all_architectures): Change v7e-m default to
16087         cortexm4.
16088         * config/arm/arm-cores.def: Add cortex-m4.
16089         * config/arm/arm-tune.md: Regenerate.
16090
16091 2010-06-11  Jan Hubicka  <jh@suse.cz>
16092
16093         * ipa-pure-const.c (special_builtlin_state): New function.
16094         (check_call): Use it instead of special casign BUILT_IN_RETURN.
16095         (propagate_pure_const): Use it.
16096
16097 2010-06-11  Jan Hubicka  <jh@suse.cz>
16098
16099         * df-problems.c (df_live_scratch): Convert to bitmap_head.
16100         (df_live_alloc): Initialize df_live_scratch when initializing
16101         problem_data.
16102         (df_live_transfer_function): Update uses of df_live_scratch.
16103         (df_live_free): Free problem_data; clear df_live_scratch before
16104         releasing the obstack.
16105         (df_md_free): Free problem data.
16106
16107 2010-06-11  Jan Hubicka  <jh@suse.cz>
16108
16109         * doc/invoke.texi (Wsuggest-attribute): Document.
16110         (Wmissing-noreturn): Remove.
16111         * ipa-pure-const.c (warn_function_noreturn): New function.
16112         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
16113         warn_missing_noreturn.
16114         * common.opt (Wsuggest-attribute=noreturn): New.
16115         * tree-flow.h (warn_function_noreturn): Declare.
16116         * tree-cfg.c (execute_warn_function_noreturn): Use
16117         warn_function_noreturn.
16118         (gate_warn_function_noreturn): New.
16119         (pass_warn_function_noreturn): Update.
16120
16121 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
16122
16123         * c-typeck.c (handle_warn_cast_qual): Add loc
16124         parameter. Improve warning message.
16125         (build_c_cast): Pass location to handle_warn_cast_qual.
16126
16127 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
16128
16129         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
16130         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
16131         insn mnemonic.
16132         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
16133
16134 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
16135
16136         Fix bootstap on mips
16137         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
16138         be naming typedefs.
16139
16140 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
16141
16142         * system.h (helper_const_non_const_cast): New inline for
16143         gcc version <= 4.0.
16144         (CONST_CAST2): For gcc version <= 4.0 use
16145         new helper to do const/non-const casting.
16146
16147 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
16148
16149         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
16150         * Makefile.in (OBJS-common): Include insn-enums.o.
16151         (insn-enums.o): New rule.
16152         (simple_generated_c): Add insn-enums.c.
16153         (build/genenums.o): New rule.
16154         (genprogmd): Add "enums".
16155         * genconstants.c (print_enum_type): Declare a C string array
16156         for each enum.
16157         * genenums.c: New file.
16158         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
16159         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
16160         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
16161
16162 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
16163
16164         * doc/md.texi (define_enum_attr): Document.
16165         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
16166         * read-md.h (lookup_enum_type): Declare.
16167         * read-md.c (lookup_enum_type): New function.
16168         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
16169         * genattrtab.c (attr_desc): Add an enum_name field.
16170         (evaluate_eq_attr): Take the associated attribute as argument.
16171         Get the enum prefix from the enum_name field, if defined.
16172         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
16173         (simplify_test_exp): Pass attr to evaluate_eq_attr.
16174         (add_attr_value): New function, split out from...
16175         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
16176         (write_test_expr): Pass attr to evaluate_eq_attr.
16177         (write_attr_get): Use the enum_name as the enum tag, if defined.
16178         (write_attr_valueq): Use the enum_name as a prefix, if defined.
16179         (find_attr): Initialize enum_name.
16180         (main): Handle DEFINE_ENUM_ATTR.
16181         * gensupport.c (process_rtx): Likewise.
16182         * config/mips/mips.h (mips_tune_attr): Delete.
16183         * config/mips/mips.md (cpu): Use define_attr_enum.
16184
16185 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
16186
16187         * doc/md.texi (define_c_enum, define_enum): Document.
16188         * read-md.h (md_constant): Add a parent_enum field.
16189         (enum_value, enum_type): New structures.
16190         (upcase_string, traverse_enum_types): Declare.
16191         * read-md.c (enum_types): New variable.
16192         (upcase_string, add_constant): New functions.
16193         (handle_constants): Don't create the hash table here.
16194         Use add_constant.
16195         (traverse_md_constants): Don't check for a null md_constants.
16196         (decimal_string, handle_enum, traverse_enum_types): New functions.
16197         (read_md_files): Initialize md_constants and md_enums.
16198         * genconstants.c (print_md_constant): Ignore info argument.
16199         Only print constants that belong to no enum.
16200         (print_enum_type): New function.
16201         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
16202         for each defined enum type.
16203         * config/mips/mips.md (processor): New define_enum.
16204         (unspec): New define_c_enum.
16205         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
16206         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
16207         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
16208         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
16209         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
16210         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
16211         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
16212         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
16213         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
16214         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
16215         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
16216         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
16217         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
16218         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
16219         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
16220         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
16221         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
16222         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
16223         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
16224         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
16225         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
16226         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
16227         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
16228         (UNSPEC_RDDSP): Move to mips-dsp.md.
16229         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
16230         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
16231         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
16232         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
16233         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
16234         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
16235         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
16236         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
16237         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
16238         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
16239         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
16240         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
16241         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
16242         Moved to mips-dspr2.md.
16243         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
16244         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
16245         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
16246         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
16247         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
16248         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
16249         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
16250         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
16251         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
16252         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
16253         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
16254         UNSPEC_LOONGSON_PSADBH)
16255         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
16256         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
16257         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
16258         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
16259         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
16260         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
16261         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
16262         (cpu): Update comment.
16263         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
16264         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
16265         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
16266         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
16267         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
16268         UNSPEC_LOONGSON_PCMPEQ)
16269         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
16270         UNSPEC_LOONGSON_PINSR_0)
16271         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
16272         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
16273         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
16274         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
16275         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
16276         UNSPEC_LOONGSON_PSADBH)
16277         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
16278         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
16279         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
16280         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
16281         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
16282         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
16283         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
16284         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
16285         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
16286         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
16287         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
16288         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
16289         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
16290         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
16291         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
16292         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
16293         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
16294         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
16295         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
16296         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
16297         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
16298         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
16299         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
16300         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
16301         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
16302         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
16303         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
16304         (UNSPEC_RDDSP): Moved from mips.md.
16305         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
16306         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
16307         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
16308         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
16309         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
16310         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
16311         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
16312         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
16313         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
16314         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
16315         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
16316         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
16317         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
16318         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
16319         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
16320         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
16321         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
16322         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
16323         (UNSPEC_SCC): Moved from mips.md.
16324         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
16325         "processor_type" to "processor".
16326         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
16327         * config/mips/mips.h (processor_type): Delete.
16328         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
16329         "processor_type" to "processor".
16330
16331 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
16332
16333         * configure.ac (tm_include_list): Add insn-constants.h.
16334         * configure: Regenerate.
16335         * Makefile.in (GTM_H): Move insn-constants.h here from...
16336         (TM_H): ...here.
16337         * mkconfig.sh: Remove special handling for insn-constants.h.
16338
16339 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
16340
16341         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
16342         (BUILD_MD): ...this new variable.
16343         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
16344         that include the old contents of simple_generated_h and
16345         simple_generated_c.
16346         (simple_generated_h, simple_generated_c): Include them.  Add
16347         insn-constants.h.
16348         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
16349         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
16350         Remove these dependencies from the main rule and include
16351         insn-conditions.md in the command line only if it appears
16352         in the dependency list.
16353         (insn-constants.h, s-constants): Delete.
16354         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
16355         or gensupport.h.
16356         (build/genmddeps.o): Likewise.
16357         (genprogrtl): New variable that contains everything from genprogmd
16358         except mddeps and constants.
16359         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
16360         depend on $(BUILD_MD)
16361         (genprog): New variable.  Make these programs depend on
16362         $(BUILD_ERRORS).
16363         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
16364         (main): Use read_md_files instead of init_rtx_reader_args.
16365         * genconstants.c: As for genmddeps.c.
16366         * read-md.h (read_skip_construct): Declare.
16367         * read-md.c (read_skip_construct): New function.
16368         (handle_file): Allow a null handle_directive, skipping the
16369         construct if so.
16370         (parse_include): Update the comment accordingly.
16371
16372 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
16373
16374         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
16375         * genmddeps.c: Include read-md.h.
16376         (main): Call init_rtx_reader_args instead of init_md_reader_args.
16377         * genattr.c (main): Likewise.
16378         * genattrtab.c (main): Likewise.
16379         * genautomata.c (main): Likewise.
16380         * gencodes.c (main): Likewise.
16381         * genconditions.c (main): Likewise.
16382         * genconfig.c (main): Likewise.
16383         * genconstants.c (main): Likewise.
16384         * genemit.c (main): Likewise.
16385         * genextract.c (main): Likewise.
16386         * genflags.c (main): Likewise.
16387         * genopinit.c (main): Likewise.
16388         * genoutput.c (main): Likewise.
16389         * genpeep.c (main): Likewise.
16390         * genrecog.c (main): Likewise.
16391         * genpreds.c (main): Likewise.
16392         * gensupport.h (in_fname): Move to read-md.h.
16393         (init_md_reader_args_cb): Rename to...
16394         (init_rtx_reader_args_cb): ...this and return a bool.
16395         (init_md_reader_args): Rename to...
16396         (init_rtx_reader_args): ...this and return a bool.
16397         (include_callback): Move to read-md.h.
16398         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
16399         (file_name_list, first_dir_md_include): Move to read-md.c
16400         (first_bracket_include): Delete unused variable.
16401         (last_dir_md_include): Move to read-md.c.
16402         (process_include): Delete, moving code to read-md.c:handle_include.
16403         (process_rtx): Don't handle INCLUDE.
16404         (save_string): Delete.
16405         (rtx_handle_directive): New function.
16406         (init_md_reader_args_cb): Rename to...
16407         (init_rtx_reader_args_cb): ...this and return a boolean success value.
16408         Use read_md_args.
16409         (init_md_reader_args): Rename to...
16410         (init_rtx_reader_args): ...this and return a boolean success value.
16411         * rtl.def (INCLUDE): Delete.
16412         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
16413         argument.
16414         * read-rtl.c (read_conditions): Don't gobble ')' here.
16415         (read_mapping): Likewise.
16416         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
16417         Handle top-level non-rtx constructs here rather than in read_rtx_1.
16418         Store the whole queue in *X.  Remove call to init_md_reader.
16419         (read_rtx_1): Rename to...
16420         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
16421         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
16422         here.
16423         (read_nested_rtx): New function.  Handle (nil) here rather than
16424         in read_rtx_code.
16425         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
16426         gobble ')' here.
16427         * read-md.h (directive_handler_t): New type.
16428         (in_fname, include_callback): Moved from read-md.h.
16429         (read_constants, init_md_reader): Delete.
16430         (read_md_files): Declare.
16431         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
16432         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
16433         from gensupport.c.
16434         (read_constants): Rename to...
16435         (handle_constants): ...this.  Don't gobble ')' here.
16436         (handle_include, handle_file, handle_toplevel_file)
16437         (parse_include): New functions, mostly taken from gensupport.c.
16438         (init_md_reader): Subsume into...
16439         (read_md_files): ...this new function.
16440
16441 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
16442
16443         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
16444         (unread_char): Decrement read_md_lineno after putting back '\n'.
16445         * read-md.c (fatal_with_file_and_line): Push back any characters
16446         that we decide not to add to the context.
16447         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
16448         fatal_expected_char in cases where '/' ends a line (for example).
16449         (read_name): Don't increment read_md_lineno here.
16450         (read_escape): Likewise.
16451         (read_quoted_string): Likewise.
16452         (read_braced_string): Likewise.
16453
16454 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
16455
16456         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
16457         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
16458         * genconstants.c: Include read-md.h.
16459         * read-rtl.c (md_constants): Move to read-md.c.
16460         (md_name): Move to read-md.h.
16461         (initialize_iterators): Use leading_string_hash instead of def_hash
16462         and leading_string_eq_p instead of def_name_eq_p.
16463         (read_name): Move to read-md.c.
16464         (def_hash, def_name_eq_p): Delete.
16465         (read_constants, traverse_md_constants): Move to read-md.c.
16466         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
16467         * read-md.h: Include hashtab.h.
16468         (md_name): Moved from read-rtl.c.
16469         (md_constant): Moved from read-md.h.
16470         (leading_string_hash, leading_string_eq_p, read_name)
16471         (read_constants, traverse_md_constants): Declare.
16472         * read-md.c (md_constants): Moved from read-rtl.c.
16473         (leading_string_hash, leading_string_eq_p): New functions.
16474         (read_name, read_constants, traverse_md_constants): Moved from
16475         read-rtl.c.
16476
16477 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
16478
16479         * read-rtl.c (md_name): New structure.
16480         (read_name): Take an md_name instead of a buffer pointer.
16481         Use the "string" field instead of strcpy when expanding constants.
16482         (read_constants): Remove the tmp_char argument.  Update the calls
16483         to read_name, using two local name buffers instead of the tmp_char
16484         argument.  Merge the constant-creation code.
16485         (read_conditions): Remove the tmp_char argument.  Update the calls
16486         to read_name, using a local name buffer instead of the tmp_char
16487         argument.
16488         (read_mapping): Replace tmp_char variable with a local name buffer.
16489         Update the calls to read_name.
16490         (read_rtx_1): Likewise.  Update the calls to read_constants and
16491         read_conditions.
16492
16493 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
16494
16495         * Makefile.in (build/read-md.o): Depend on errors.h.
16496         * read-md.h (error_with_line): Declare.
16497         * read-md.c: Include errors.h.
16498         (message_with_line_1): New function, extracted from...
16499         (message_with_line): ...here.
16500         (error_with_line): New function.
16501         * genattrtab.c: If a call to message_with_line is followed by
16502         "have_error = 1;", replace both statements with a call to
16503         error_with_line.
16504         * genoutput.c: Likewise.
16505         * genpreds.c: Likewise.
16506         * genrecog.c: If a call to message_with_line is followed by
16507         "error_count++;", replace both statements with a call to
16508         error_with_line.
16509         (errorcount): Delete.
16510         (main): Don't check it.
16511         * gensupport.c: If a call to message_with_line is followed by
16512         "errors = 1;", replace both statements with a call to error_with_line.
16513         (errors): Delete.
16514         (process_define_cond_exec): Check have_error instead of errors.
16515         (init_md_reader_args_cb): Likewise.  Don't set errors.
16516
16517 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
16518
16519         * read-md.h (read_md_file): Declare.
16520         (read_char, unread_char): New functions.
16521         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
16522         (read_quoted_string, read_string): Remove FILE * argument.
16523         * read-md.c (read_md_file): New variable.
16524         (read_md_filename, read_md_lineno): Update comments and remove
16525         unnecessary initialization.
16526         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
16527         (read_escape, read_quoted_string, read_braced_string, read_string):
16528         Remove FILE * argument.  Update calls accordingly, using read_char
16529         and unread_char instead of getc and ungetc.
16530         * rtl.h (read_rtx): Remove FILE * argument.
16531         * read-rtl.c (iterator_group): Remove FILE * argument from
16532         "find_builtin".
16533         (iterator_traverse_data): Remove "infile" field.
16534         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
16535         (add_mapping, read_name, read_constants, read_conditions)
16536         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
16537         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
16538         Remove file arguments from all calls, using read_char and unread_char
16539         instead of getc and ungetc.
16540         * gensupport.c (process_include): Preserve read_md_file around
16541         the include.  Set read_md_file to the handle of the included file.
16542         Update call to read_rtx.
16543         (init_md_reader_args_cb): Set read_md_file to the handle of the file
16544         and remove local FILE *.  Update calls to read_rtx.
16545
16546 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
16547
16548         * read-md.h (read_rtx_lineno): Rename to...
16549         (read_md_lineno): ...this.
16550         (read_rtx_filename): Rename to...
16551         (read_md_filename): ...this.
16552         (copy_rtx_ptr_loc): Rename to...
16553         (copy_md_ptr_loc): ...this.
16554         (print_rtx_ptr_loc): Rename to...
16555         (print_md_ptr_loc): ...this.
16556         * read-md.c: Likewise.  Update references after renaming.
16557         (string_obstack): Replace RTL with MD in comment.
16558         (set_rtx_ptr_loc): Rename to...
16559         (set_md_ptr_loc): ...this.
16560         (get_rtx_ptr_loc): Rename to...
16561         (get_md_ptr_loc): ...this.
16562         * genconditions.c: Update references after renaming.
16563         * genemit.c: Likewise.
16564         * genoutput.c: Likewise.
16565         * genpreds.c: Likewise.
16566         * gensupport.c: Likewise.
16567         * read-rtl.c: Likewise.
16568
16569 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
16570
16571         * Makefile.in (READ_MD_H): New variable.
16572         (BUILD_RTL): Add build/read-md.o.
16573         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
16574         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
16575         (build/genattrtab.o, build/genconditions.o build/genemit.o)
16576         (build/genextract.o, build/genflags.o, build/genoutput.o)
16577         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
16578         (build/read-md.o): New rule.
16579         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
16580         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
16581         * coretypes.h: ...here.
16582         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
16583         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
16584         * genattr.c: Include read-md.h.
16585         * genattrtab.c: Likewise.
16586         * genconditions.c: Likewise.
16587         * genemit.c: Likewise.
16588         * genextract.c: Likewise.
16589         * genflags.c: Likewise.
16590         * genoutput.c: Likewise.
16591         * genpreds.c: Likewise.
16592         * genrecog.c: Likewise.
16593         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
16594         (join_c_conditions, print_c_condition, read_rtx_filename)
16595         (read_rtx_lineno): Move to read-md.h.
16596         * read-rtl.c: Include read-md.h.
16597         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
16598         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
16599         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
16600         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
16601         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
16602         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
16603         (read_braced_string, read_string): Move to read-md.c.
16604         (read_rtx): Move some initialization to init_md_reader and call
16605         init_md_reader here.
16606         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
16607         Move to read-md.h.
16608         * gensupport.c: Include read-md.h.
16609         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
16610         * read-md.h, read-md.c: New files.
16611
16612 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
16613
16614         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
16615         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
16616         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
16617         * config/moxie/moxie.c (moxie_function_value): Make static.
16618         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
16619         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
16620
16621 2010-06-10  Martin Jambor  <mjambor@suse.cz>
16622
16623         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
16624         * dbgcnt.def (tree_sra): New counter.
16625         * tree-sra.c: Include dbgcnt.h.
16626         (gate_intra_sra): Check tree_sra debug counter.
16627
16628 2010-06-10  Martin Jambor  <mjambor@suse.cz>
16629
16630         PR tree-optimization/44258
16631         * tree-sra.c (build_access_subtree): Return false iff there is a
16632         partial overlap.
16633         (build_access_trees): Likewise.
16634         (analyze_all_variable_accesses): Disqualify candidates if
16635         build_access_trees returns true for them.
16636
16637 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
16638
16639         PR debug/41371
16640         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
16641         tail-recurse into canonical node.  Fast-forward over
16642         non-canonical VALUEs.
16643
16644 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
16645
16646         PR boostrap/44470
16647         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
16648         (*addsi_1_zext) <TYPE_LEA>: Likewise.
16649         (add lea splitter): Likewise.
16650         (add_zext lea splitter): Likewise.
16651
16652 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
16653
16654         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
16655
16656 2010-06-10  Jan Hubicka  <jh@suse.cz>
16657
16658         * df-problems.c (df_live_problem_data): Add live_bitmaps.
16659         (df_live_alloc): Initialize problem data and live_osbtacks.
16660         (df_live_finalize): Remove obstack, problem data; do not
16661         clear all bitmaps.
16662         (df_live_top_dump, df_live_bottom_dump): Do not dump old
16663         data when not allocated.
16664         (df_live_verify_solution_start): Do not allocate problem data.
16665         (df_live_verify_solution_end): Check if out is allocated.
16666         (struct df_md_problem_data): New structure.
16667         (df_md_alloc): Allocate problem data.
16668         (df_md_free): Free problem data; do not clear bitmaps.
16669
16670 2010-06-10  Jan Beulich  <jbeulich@novell.com>
16671
16672         PR bootstrap/37304
16673         * configure.ac: Replace $() with ${} when intending to expand
16674         variables rather than invoking commands.
16675         * configure: Re-generate.
16676
16677 2010-06-10  Jan Hubicka  <jh@suse.cz>
16678
16679         PR rtl-optimization/44460
16680         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
16681         TYPE_NEEDS_CONSTRUCTING sanity check.
16682
16683 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
16684
16685         * doc/include/fdl.texi: Move to GFDL version 1.3.
16686
16687         * doc/cpp.texi: Move to GFDL version 1.3.
16688         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
16689         * doc/gccint.texi: Move to GFDL version 1.3.
16690         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
16691         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
16692         * doc/invoke.texi: Move to GFDL version 1.3.
16693
16694 2010-06-09  Jan Hubicka  <jh@suse.cz>
16695
16696         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
16697         Break out from ...
16698         (propagate) ... here; swap the order.
16699
16700 2010-06-09  Jan Hubicka  <jh@suse.cz>
16701
16702         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
16703         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
16704         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
16705         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
16706
16707 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
16708
16709         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
16710         Do not the gather memory reference in the outer loop if the step
16711         is not a constant.
16712
16713 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
16714
16715         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
16716         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
16717         8 to 4.  Minor change of the related comments.
16718
16719 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
16720
16721         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
16722         the scev analysis when the variable is not used outside the loop
16723         in a close phi node: call compute_overall_effect_of_inner_loop.
16724
16725 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
16726
16727         * graphite-sese-to-poly.c (single_pred_cond): Renamed
16728         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
16729         (build_sese_conditions_before): Renamed call to single_pred_cond.
16730         (build_sese_conditions_after): Same.
16731
16732 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
16733
16734         * graphite-poly.h: Fix comments and indentation.
16735         * graphite-sese-to-poly.c: Same.
16736         (build_sese_conditions_before): Compute stmt and gbb only when needed.
16737         * tree-chrec.c: Fix comments and indentation.
16738         (tree-ssa-loop-niter.c): Same.
16739
16740 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
16741
16742         PR rtl-optimization/42461
16743         * dce.c (deletable_insn_p): Return true for const or pure calls again.
16744         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
16745
16746 2010-06-09  Jan Hubicka  <jh@suse.cz>
16747
16748         * bitmap.c (bitmap_and): Walk array forward.
16749         (bitmap_and_compl_into): Likewise.
16750         (bitmap_xor): Likewise.
16751         (bitmap_xor_into):  Likewise.
16752         (bitmap_equal_p): Likewise.
16753         (bitmap_intersect_p): Likewise.
16754         (bitmap_intersect_compl_p): Likewise.
16755         (bitmap_ior_and_into): Likewise.
16756         (bitmap_elt_copy): Likewise.
16757         (bitmap_and_compl): Likewise.
16758         (bitmap_elt_ior): Likewise.
16759
16760 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
16761
16762         * opts-common.c (prune_options): Ensure replacement argv array
16763         is correctly terminated by a NULL entry.
16764
16765 2010-06-09  Jan Hubicka  <jh@suse.cz>
16766
16767         * cgraph.h (varpool_first_static_initializer,
16768         varpool_next_static_initializer): Make checking only when
16769         checking enabled.
16770         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
16771         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
16772         gcc_assert to gcc_checking_assert.
16773         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
16774         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
16775         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
16776         op_iter_init_phiuse, op_iter_init_phidef,
16777         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
16778         gcc_checking_assert.
16779         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
16780         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
16781         partition_is_global, live_on_entry, live_on_exit,
16782         live_merge_and_clear): Likewise.
16783         * system.h (gcc_checking_assert): New macro.
16784         * gimple.h (set_bb_seq): Use gcc_checking_assert.
16785
16786 2010-06-09  Jason Merrill  <jason@redhat.com>
16787
16788         * Makefile.in (TAGS): Collect tags info from c-family.
16789
16790 2010-06-09  Jan Hubicka  <jh@suse.cz>
16791
16792         * gimple.h (gcc_gimple_checking_assert): New macro.
16793         (gimple_set_def_ops, gimple_set_use_ops,
16794         gimple_set_vuse, gimple_set_vdef,
16795         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
16796         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
16797         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
16798         gimple_asm_output_op, gimple_asm_output_op_ptr,
16799         gimple_asm_set_output_op, gimple_asm_clobber_op,
16800         gimple_asm_set_clobber_op, gimple_asm_label_op,
16801         gimple_asm_set_label_op, gimple_try_set_kind,
16802         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
16803         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
16804         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
16805         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
16806         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
16807         gimple_omp_for_set_initial, gimple_omp_for_final,
16808         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
16809         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
16810         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
16811         conditional with ENABLE_GIMPLE_CHECKING.
16812         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
16813
16814 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
16815
16816         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
16817         (get_computation_cost_at): Use it.
16818         (determine_use_iv_cost_condition): Likewise.
16819         (determine_iv_cost): Likewise.
16820
16821 2010-06-09  Richard Guenther  <rguenther@suse.de>
16822
16823         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
16824         replace constants.
16825
16826 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
16827
16828         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
16829
16830 2010-06-09  Martin Jambor  <mjambor@suse.cz>
16831
16832         PR tree-optimization/44423
16833         * tree-sra.c (dump_access): Dump also grp_assignment_read.
16834         (analyze_access_subtree): Pass negative allow_replacements to children
16835         if the current type is scalar.
16836
16837 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
16838
16839         PR testsuite/42843
16840         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
16841         * doc/plugins.texi (Plugin license check): Update information
16842         on type of plugin_is_GPL_compatible.
16843         * Makefile.in (PLUGINCC): Define as $(COMPILER).
16844         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
16845
16846 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
16847
16848         * config/arm/arm.c (thumb2_reorg): New function.
16849         (arm_reorg): Call it.
16850         * config/arm/thumb2.md (define_peephole2 for flag clobbering
16851         arithmetic operations): Delete.
16852
16853 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
16854
16855         PR target/44067
16856         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
16857         e500v2 target.
16858
16859 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
16860
16861         PR plugins/44459
16862         * gcc-plugin.h: Encapsulate all declarations in extern "C".
16863
16864 2010-06-08  Jan Hubicka  <jh@suse.cz>
16865
16866         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
16867         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
16868
16869 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
16870
16871         PR tree-optimization/39874
16872         PR middle-end/28685
16873         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
16874         Declare.
16875         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
16876         same_bool_result_p): New.
16877         (and_var_with_comparison, and_var_with_comparison_1,
16878         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
16879         (or_var_with_comparison, or_var_with_comparison_1,
16880         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
16881         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
16882         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
16883         of combine_comparisons.
16884         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
16885
16886 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
16887
16888         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
16889         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
16890         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
16891         pdp11_function_value_regno_p): New functions.
16892         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
16893         TARGET_FUNCTION_VALUE_REGNO_P): Define.
16894
16895 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
16896
16897         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
16898         Thumb-2 in the MINUS case.
16899
16900 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
16901
16902         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
16903
16904         * doc/gty.texi (GTY Options): Document typed GC allocation and
16905         variable_size GTY option.
16906
16907         * ggc-internal.h: New.
16908
16909         * ggc.h: Update copyright year.
16910         (digit_string): Move to stringpool.c.
16911         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
16912         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
16913         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
16914         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
16915         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
16916         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
16917         (ggc_force_collect, ggc_get_size, ggc_statistics)
16918         (ggc_print_common_statistics): Move to ggc-internal.h.
16919         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
16920         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
16921         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
16922         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
16923         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
16924         (ggc_alloc_zone_pass_stat): Remove.
16925         (ggc_internal_alloc_stat, ggc_internal_alloc)
16926         (ggc_internal_cleared_alloc_stat): New.
16927         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
16928         (ggc_internal_vec_alloc_stat)
16929         (ggc_internal_cleared_vec_alloc_stat)
16930         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
16931         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
16932         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
16933         (ggc_cleared_alloc_ptr_array_two_args): New.
16934         (htab_create_ggc, splay_tree_new_ggc): Redefine.
16935         (ggc_splay_alloc): Change the type of the first argument to
16936         enum gt_types_enum.
16937         (ggc_alloc_string): Make macro.
16938         (ggc_alloc_string_stat): New.
16939         (ggc_strdup): Redefine.
16940         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
16941         (ggc_alloc_rtvec_sized): New.
16942         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
16943         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
16944         (ggc_internal_cleared_alloc_zone_stat)
16945         (ggc_internal_zone_alloc_stat)
16946         (ggc_internal_zone_cleared_alloc_stat)
16947         (ggc_internal_zone_vec_alloc_stat)
16948         (ggc_alloc_zone_rtx_def_stat)
16949         (ggc_alloc_zone_tree_node_stat)
16950         (ggc_alloc_zone_cleared_tree_node_stat)
16951         (ggc_alloc_cleared_gimple_statement_d_stat): New.
16952
16953         * ggc-common.c: Include ggc-internal.h.
16954         (ggc_internal_cleared_alloc_stat): Rename from
16955         ggc_alloc_cleared_stat.
16956         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
16957         (ggc_calloc): Remove.
16958         (ggc_cleared_alloc_htab_ignore_args): New.
16959         (ggc_cleared_alloc_ptr_array_two_args): New.
16960         (ggc_splay_alloc): Add obj_type parameter.
16961         (init_ggc_heuristics): Formatting fixes.
16962
16963         * ggc-none.c: Update copyright year.
16964         (ggc_alloc_stat): Rename to ggc_alloc_stat.
16965         (ggc_alloc_cleared_stat): Rename to
16966         ggc_internal_cleared_alloc_stat.
16967         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
16968
16969         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
16970         Remove references to ggc_alloc in comments.
16971         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
16972         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
16973         (new_ggc_zone, destroy_ggc_zone): Remove.
16974         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
16975
16976         * ggc-zone.c: Include ggc-internal.h.  Remove references to
16977         ggc_alloc in comments.
16978         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
16979         (ggc_internal_alloc_zone_pass_stat): New.
16980         (ggc_internal_cleared_alloc_zone_stat): New.
16981         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
16982         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
16983         (new_ggc_zone, destroy_ggc_zone): Remove.
16984
16985         * stringpool.c: Update copyright year.  Include ggc-internal.h
16986         (digit_vector): Make static.
16987         (digit_string): Moved from ggc.h.
16988         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
16989         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
16990
16991         * Makefile.in (GGC_INTERNAL_H): New.
16992         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
16993         $(GGC_INTERNAL_H) to dependencies.
16994
16995         * gentype.c: Update copyright year.
16996         (walk_type): Accept variable_size GTY option.
16997         (USED_BY_TYPED_GC_P): New macro.
16998         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
16999         whitespace at the end of strings.
17000         (get_type_specifier, variable_size_p): New functions.
17001         (alloc_quantity, alloc_zone): New enums.
17002         (write_typed_alloc_def): New function.
17003         (write_typed_struct_alloc_def): Likewise.
17004         (write_typed_typed_typedef_alloc_def): Likewise.
17005         (write_typed_alloc_defns): Likewise.
17006         (output_typename, write_splay_tree_allocator_def): Likewise.
17007         (write_splay_tree_allocators): Likewise.
17008         (main): Call write_typed_alloc_defns and
17009         write_splay_tree_allocators.
17010
17011         * lto-streamer.h (lto_file_decl_data_ptr): New.
17012
17013         * passes.c (order): Define using cgraph_node_ptr.
17014
17015         * strinpool.c (struct string_pool_data): Declare nested_ptr using
17016         ht_identifier_ptr.
17017
17018         * gimple.h (union gimple_statement_d): Likewise.
17019
17020         * rtl.h (struct rtx_def): Likewise.
17021         (struct rtvec_def): Likewise.
17022
17023         * tree.h (union tree_node): Likewise.
17024
17025         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
17026
17027         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
17028
17029         * tree-scalar-evolution.c (scev_initialize): Likewise.
17030
17031         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
17032
17033         * dwarf2asm.c (dw2_force_const_mem): Likewise.
17034
17035         * omp-low.c (lower_omp_critical): Likewise.
17036
17037         * bitmap.h (struct bitmap_head_def): Update comment to not
17038         reference ggc_alloc.
17039
17040         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
17041
17042         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
17043
17044         * ipa-prop.c (duplicate_ggc_array): Rename to
17045         duplicate_ipa_jump_func_array.  Use typed GC allocation.
17046         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
17047
17048         * gimple.c (gimple_alloc_stat): Use
17049         ggc_alloc_cleared_gimple_statement_d_stat.
17050
17051         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
17052
17053         * tree.c (make_node_stat): Use
17054         ggc_alloc_zone_cleared_tree_node_stat.
17055         (make_tree_vec_stat): Likewise.
17056         (build_vl_exp_stat): Likewise.
17057         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
17058         (make_tree_binfo_stat): Likewise.
17059         (tree_cons_stat): Likewise.
17060
17061         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
17062         (shallow_copy_rtx_stat): Likewise.
17063         (make_node_stat): Likewise.
17064
17065         * lto-symtab.c: Fix comment.
17066
17067         * tree-cfg.c (create_bb): Update comment to not reference
17068         ggc_alloc_cleared.
17069         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
17070
17071         * varpool.c (varpool_node): Use typed GC allocation.
17072         (varpool_extra_name_alias): Likewise.
17073
17074         * varasm.c (emutls_decl): Likewise.
17075         (get_unnamed_section): Likewise.
17076         (get_noswitch_section): Likewise.
17077         (get_section): Likewise.
17078         (get_block_for_section): Likewise.
17079         (build_constant_desc): Likewise.
17080         (create_constant_pool): Likewise.
17081         (force_const_mem): Likewise.
17082
17083         * tree.c (build_vl_exp_stat): Likewise.
17084         (build_real): Likewise.
17085         (build_string): Likewise.
17086         (decl_debug_expr_insert): Likewise.
17087         (decl_value_expr_insert): Likewise.
17088         (type_hash_add): Likewise.
17089         (build_omp_clause): Likewise.
17090
17091         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
17092
17093         * tree-ssa.c (init_tree_ssa): Likewise.
17094
17095         * tree-ssa-structalias.c (heapvar_insert): Likewise.
17096
17097         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
17098
17099         * tree-ssa-loop-niter.c (record_estimate): Likewise.
17100
17101         * tree-ssa-alias.c (get_ptr_info): Likewise.
17102
17103         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
17104
17105         * tree-phinodes.c (allocate_phi_node): Likewise.
17106
17107         * tree-iterator.c (tsi_link_before): Likewise.
17108         (tsi_link_after): Likewise.
17109
17110         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
17111
17112         * tree-dfa.c (create_var_ann): Likewise.
17113
17114         * tree-cfg.c (create_bb): Likewise.
17115
17116         * toplev.c (alloc_for_identifier_to_locale): Likewise.
17117         (general_init): Likewise.
17118
17119         * stringpool.c (stringpool_ggc_alloc): Likewise.
17120         (gt_pch_save_stringpool): Likewise.
17121
17122         * sese.c (if_region_set_false_region): Likewise.
17123
17124         * passes.c (do_per_function_toporder): Likewise.
17125
17126         * optabs.c (set_optab_libfunc): Likewise.
17127         (set_conv_libfunc): Likewise.
17128
17129         * lto-symtab.c (lto_symtab_register_decl): Likewise.
17130
17131         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
17132         (input_eh_region): Likewise.
17133         (input_eh_lp): Likewise.
17134         (make_new_block): Likewise.
17135         (unpack_ts_real_cst_value_fields): Likewise.
17136
17137         * lto-section-in.c (lto_new_in_decl_state): Likewise.
17138
17139         * lto-cgraph.c (input_node_opt_summary): Likewise.
17140
17141         * loop-init.c (loop_optimizer_init): Likewise.
17142
17143         * lambda.h (lambda_vector_new): Likewise.
17144
17145         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
17146
17147         * ira.c (update_equiv_regs): Likewise.
17148
17149         * ipa.c (cgraph_node_set_new): Likewise.
17150         (cgraph_node_set_add): Likewise.
17151         (varpool_node_set_new): Likewise.
17152         (varpool_node_set_add): Likewise.
17153
17154         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
17155         (duplicate_ipa_jump_func_array): Likewise.
17156         (ipa_read_node_info): Likewise.
17157
17158         * ipa-cp.c (ipcp_create_replace_map): Likewise.
17159
17160         * integrate.c (get_hard_reg_initial_val): Likewise.
17161
17162         * gimple.c (gimple_alloc_stat): Likewise.
17163         (gimple_build_omp_for): Likewise.
17164         (gimple_seq_alloc): Likewise.
17165         (gimple_copy): Likewise.
17166
17167         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
17168         (gsi_insert_after_without_update): Likewise.
17169
17170         * function.c (add_frame_space): Likewise.
17171         (insert_temp_slot_address): Likewise.
17172         (assign_stack_temp_for_type): Likewise.
17173         (allocate_struct_function): Likewise.
17174         (types_used_by_var_decl_insert): Likewise.
17175
17176         * except.c (init_eh_for_function): Likewise.
17177         (gen_eh_region): Likewise.
17178         (gen_eh_region_catch): Likewise.
17179         (gen_eh_landing_pad): Likewise.
17180         (add_call_site): Likewise.
17181
17182         * emit-rtl.c (get_mem_attrs): Likewise.
17183         (get_reg_attrs): Likewise.
17184         (start_sequence): Likewise.
17185         (init_emit): Likewise.
17186
17187         * dwarf2out.c (new_cfi): Likewise.
17188         (queue_reg_save): Likewise.
17189         (dwarf2out_frame_init): Likewise.
17190         (new_loc_descr): Likewise.
17191         (find_AT_string): Likewise.
17192         (new_die): Likewise.
17193         (add_var_loc_to_decl): Likewise.
17194         (clone_die): Likewise.
17195         (clone_as_declaration): Likewise.
17196         (break_out_comdat_types): Likewise.
17197         (new_loc_list): Likewise.
17198         (loc_descriptor): Likewise.
17199         (add_loc_descr_to_each): Likewise.
17200         (add_const_value_attribute): Likewise.
17201         (tree_add_const_value_attribute): Likewise.
17202         (add_comp_dir_attribute): Likewise.
17203         (add_name_and_src_coords_attributes): Likewise.
17204         (lookup_filename): Likewise.
17205         (store_vcall_insn): Likewise.
17206         (dwarf2out_init): Likewise.
17207
17208         * dbxout.c (dbxout_init): Likewise.
17209
17210         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
17211
17212         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
17213
17214         * config/score/score7.c (score7_output_external): Likewise.
17215
17216         * config/score/score3.c (score3_output_external): Likewise.
17217
17218         * config/s390/s390.c (s390_init_machine_status): Likewise.
17219
17220         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
17221         (rs6000_init_machine_status): Likewise.
17222         (output_toc): Likewise.
17223
17224         * config/pa/pa.c (pa_init_machine_status): Likewise.
17225         (get_deferred_plabel): Likewise.
17226
17227         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
17228
17229         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
17230
17231         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
17232
17233         * config/mep/mep.c (mep_init_machine_status): Likewise.
17234         (mep_note_pragma_flag): Likewise.
17235
17236         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
17237
17238         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
17239
17240         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
17241
17242         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
17243         (i386_pe_maybe_record_exported_symbol): Likewise.
17244
17245         * config/i386/i386.c (get_dllimport_decl): Likewise.
17246         (ix86_init_machine_status): Likewise.
17247         (assign_386_stack_local): Likewise.
17248
17249         * config/frv/frv.c (frv_init_machine_status): Likewise.
17250
17251         * config/darwin.c (machopic_indirection_name): Likewise.
17252
17253         * config/cris/cris.c (cris_init_machine_status): Likewise.
17254
17255         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
17256
17257         * config/avr/avr.c (avr_init_machine_status): Likewise.
17258
17259         * config/arm/arm.c (arm_init_machine_status): Likewise.
17260
17261         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
17262         (alpha_need_linkage): Likewise.
17263         (alpha_use_linkage): Likewise.
17264
17265         * cgraph.c (cgraph_allocate_node): Likewise.
17266         (cgraph_create_edge_1): Likewise.
17267         (cgraph_create_indirect_edge): Likewise.
17268         (cgraph_add_asm_node): Likewise.
17269
17270         * cfgrtl.c (init_rtl_bb_info): Likewise.
17271
17272         * cfgloop.c (alloc_loop): Likewise.
17273         (rescan_loop_exit): Likewise.
17274
17275         * cfg.c (init_flow): Likewise.
17276         (alloc_block): Likewise.
17277         (unchecked_make_edge): Likewise.
17278
17279         * c-parser.c (c_parse_init): Likewise.
17280         (c_parse_file): Likewise.
17281
17282         * c-decl.c (bind): Likewise.
17283         (record_inline_static): Likewise.
17284         (push_scope): Likewise.
17285         (make_label): Likewise.
17286         (lookup_label_for_goto): Likewise.
17287         (finish_struct): Likewise.
17288         (finish_enum): Likewise.
17289         (c_push_function_context): Likewise.
17290
17291         * bitmap.c (bitmap_element_allocate): Likewise.
17292         (bitmap_gc_alloc_stat): Likewise.
17293
17294         * alias.c (record_alias_subset): Likewise.
17295         (init_alias_analysis): Likewise.
17296
17297 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
17298
17299         * fold-const.c (fold_comparison): Remove redundant parenthesis.
17300         * tree-inline.c (expand_call_inline): Pass translated return value of
17301         cgraph_inline_failed_string to diagnostic function.
17302
17303 2010-06-08  Andrew Pinski  <pinskia@gmail.com>
17304             Shujing Zhao  <pearly.zhao@oracle.com>
17305
17306         PR c/37724
17307         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
17308         implicit bad conversions is initialization.
17309         (error_init): Use gmsgid instead of msgid for argument name and change
17310         the call for error.
17311         (pedwarn_init): Use gmsgid instead of msgid for argument name and
17312         change the call for pedwarn.
17313         (warning_init): Use gmsgid instead of msgid for argument name and
17314         change the call for warning.
17315
17316 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
17317
17318         * config/mips/mips-protos.h (mips_print_operand): Delete.
17319         (mips_print_operand_address): Delete.
17320         * config/mips/mips.h (mips_print_operand_punct): Delete.
17321         (PRINT_OPERAND): Delete.
17322         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17323         (PRINT_OPERAND_ADDRESS): Delete.
17324         * config/mips/mips.c (mips_print_operand_punct): Make static.
17325         (mips_print_operand_address): Make static.
17326         (mips_print_operand): Make static.  Call
17327         mips_print_operand_punct_valid_p.
17328         (mips_print_operand_punct_valid_p): New function.
17329         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
17330         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17331
17332 2010-06-07  Jan Hubicka  <jh@suse.cz>
17333
17334         PR middle-end/44454
17335         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
17336         are allocated.
17337
17338 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
17339
17340         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
17341         name of RECORD.
17342
17343 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17344
17345         * doc/sourcebuild.texi (Effective-Target Keywords, Other
17346         attributes): Document gas.
17347
17348 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
17349
17350         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
17351         <TYPE_LEA>: Split instruction.
17352         <default>: Remove alternative 2 handling.
17353         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
17354         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
17355         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
17356
17357         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
17358         (ashift_zext lea splitter): Use DImode for multiplication.
17359
17360         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
17361         to generate addition.
17362
17363 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
17364
17365         * common.opt (fira-verbose): Use Var.
17366         (fpcc-struct-return): Use Init instead of VarExists.
17367         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
17368         toplev.c.
17369         * flags.h (flag_signed_char, flag_short_enums,
17370         flag_pcc_struct_return, flag_ira_verbose,
17371         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
17372         * toplev.c (flag_detailed_statistics, flag_signed_char,
17373         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
17374         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
17375         * toplev.h (flag_crossjumping, flag_if_conversion,
17376         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
17377         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
17378         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
17379         flag_cprop_registers, time_report, flag_ira_loop_pressure,
17380         flag_ira_coalesce, flag_ira_move_spills,
17381         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
17382
17383 2010-06-07  Jan Hubicka  <jh@suse.cz>
17384
17385         * df-core.c (df_analyze_problem): Do verification after allocation.
17386
17387         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
17388         (df_lr_alloc): Initialize problem data; move bitmaps to
17389         lr_bitmaps obstack.
17390         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
17391         (df_lr_verify_solution_start): Do not initialize problem data;
17392         allocate bitmaps in lr_bitmaps.
17393         (df_lr_verify_solution_end): Do not free problem data.
17394
17395 2010-06-07  Jan Hubicka  <jh@suse.cz>
17396
17397         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
17398         if caller is noreturn.
17399         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
17400         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
17401         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
17402         * ipa-pure-const.c (check_decl): Add IPA parameter.
17403         (state_from_flags): New function.
17404         (better_state, worse_state): New functions.
17405         (check_call): When in IPA mode, do not care about callees.
17406         (check_load, check_store): Update.
17407         (check_ipa_load, check_ipa_store): New.
17408         (check_stmt): When in IPA mode, use IPA checkers.
17409         (analyze_function): Use state_from_flags.
17410         (propagate): Check indirect edges and references.
17411
17412 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
17413
17414         PR rtl-optimization/44404
17415         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
17416         of count_occurrences to see if it's safe to modify mem_insn.
17417
17418 2010-06-07  Richard Guenther  <rguenther@suse.de>
17419
17420         * gimplify.c (gimplify_cleanup_point_expr): For empty body
17421         and EH-only cleanup drop the cleanup instead of inserting it
17422         unconditionally.
17423
17424 2010-06-07  Ira Rosen  <irar@il.ibm.com>
17425
17426         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
17427         documentation.
17428         * targhooks.c (default_builtin_vectorization_cost): New function.
17429         * targhooks.h (default_builtin_vectorization_cost): Declare.
17430         * target.h (enum vect_cost_for_stmt): Define.
17431         (builtin_vectorization_cost): Change argument and comment.
17432         * tree-vectorizer.h: Remove cost model macros.
17433         * tree-vect-loop.c: Include target.h.
17434         (vect_get_cost): New function.
17435         (vect_estimate_min_profitable_iters): Replace cost model macros with
17436         calls to vect_get_cost.
17437         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
17438         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
17439         default implementation.
17440         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
17441         calls to target hook builtin_vectorization_cost.
17442         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
17443         Likewise.
17444         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
17445         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
17446         implementation to return costs.
17447         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
17448         * config/spu/spu.h: Remove vectorizer cost model macros.
17449         * config/i386/i386.h: Likewise.
17450         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
17451         a call to target hook builtin_vectorization_cost.
17452
17453 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
17454
17455         PR target/44319
17456         * config/i386/i386.c (override_options): Turn zee pass on for level 2
17457         and above and defer till target is known.
17458         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
17459         turn off otherwise.
17460
17461 2010-05-25  Jan Hubicka  <jh@suse.cz>
17462
17463         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
17464         (df_compact_blocks): Likewise.
17465         * df.h (struct df): Turn hardware_regs_used,
17466         regular_block_artificial_uses, eh_block_artificial_uses,
17467         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
17468         bitmap_head.
17469         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
17470         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
17471         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
17472         df_scan_blocks, df_insn_delete, df_insn_rescan,
17473         df_insn_rescan_debug_internal, df_insn_rescan_all,
17474         df_process_deferred_rescans, df_process_deferred_rescans,
17475         df_notes_rescan, df_get_call_refs, df_get_call_refs,
17476         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
17477         df_record_entry_block_defs, df_record_exit_block_uses,
17478         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
17479         df_scan_verify): Update.
17480
17481 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
17482
17483         PR c++/44188
17484         * c-common.c (is_typedef_decl): Move this definition ...
17485         * tree.c (is_typedef_decl): ... here.
17486         (typdef_variant_p): Move definition here from cp/tree.c.
17487         * c-common.h (is_typedef_decl): Move this declaration ...
17488         * tree.h (is_typedef_decl): ... here.
17489         (typedef_variant_p): Move declaration here from cp/cp-tree.h
17490         * dwarf2out.c (is_naming_typedef_decl): New function.
17491         (gen_tagged_type_die): Split out of ...
17492         (gen_type_die_with_usage): ... this function. When an anonymous
17493         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
17494         is emitted for the typedef.
17495         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
17496         anonymous tagged types.
17497
17498 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17499
17500         PR c/20000
17501         * c-decl.c (grokdeclarator): Delete warning.
17502
17503 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
17504
17505         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
17506         newly built CALL_EXPR.
17507         * tree-profile.c (tree_profiling): Don't profile functions produced
17508         for built-in stuff.
17509
17510 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
17511
17512         PR bootstrap/44427
17513         PR bootstrap/44428
17514         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
17515         endianness-independent.
17516
17517 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
17518
17519         * c-common.c: Move to c-family/.
17520         * c-common.def: Likewise.
17521         * c-common.h: Likewise.
17522         * c-cppbuiltin.c: Likewise.
17523         * c-dump.c: Likewise.
17524         * c-format.c: Likewise.
17525         * c-format.h : Likewise.
17526         * c-gimplify.c: Likewise.
17527         * c-lex.c: Likewise.
17528         * c-omp.c: Likewise.
17529         * c.opt: Likewise.
17530         * c-opts.c: Likewise.
17531         * c-pch.c: Likewise.
17532         * c-ppoutput.c: Likewise.
17533         * c-pragma.c: Likewise.
17534         * c-pragma.h: Likewise.
17535         * c-pretty-print.c: Likewise.
17536         * c-pretty-print.h: Likewise.
17537         * c-semantics.c: Likewise.
17538         * stub-objc.c: Likewise.
17539
17540         * gengtype.c (get_file_langdir): Special-case files in c-family/.
17541         (get_output_file_with_visibility): Fix name for c-common.h.
17542         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
17543
17544         * c-tree.h: Update include path for moved files.
17545         * c-lang.c: Likewise.
17546         * c-lang.h: Likewise.
17547         * c-parser.c: Likewise.
17548         * c-convert.c: Likewise.
17549         * c-decl.c: Likewise.
17550         * c-objc-common.c: Likewise.
17551         * configure.ac: Make sure c-family/ exists in the build directory.
17552         * configure: Regenerate.
17553         * Makefile.in: Update paths for moved files.  Regroup files per
17554         location and update dependencies.  Move generated_files down after
17555         ALL_GTFILES_H.
17556
17557         * config/spu/spu-c.c: Update paths for moved files.
17558         * config/mep/mep-pragma.c: Likewise.
17559         * config/darwin-c.c: Likewise.
17560         * config/i386/msformat-c.c: Likewise.
17561         * config/i386/i386-c.c: Likewise.
17562         * config/avr/avr-c.c: Likewise.
17563         * config/sol2-c.c: Likewise.
17564         * config/ia64/ia64-c.c: Likewise.
17565         * config/rs6000/rs6000-c.c: Likewise.
17566         * config/arm/arm.c: Likewise.
17567         * config/arm/arm-c.c: Likewise.
17568         * config/h8300/h8300.c: Likewise.
17569         * config/v850/v850-c.c: Likewise.
17570
17571         * config/t-darwin: Fix dependencies for moved files.
17572         * config/t-sol2: Fix dependencies for moved files.
17573         * config/mep/t-mep: Fix dependencies for moved files.
17574         * config/ia64/t-ia64: Fix dependencies for moved files.
17575         * config/rs6000/t-rs6000: Fix dependencies for moved files.
17576         * config/v850/t-v850: Fix dependencies for moved files.
17577         * config/v850/t-v850e: Fix dependencies for moved files.
17578
17579         * config/m32c/m32c-pragma.c
17580
17581         * po/exgettext: Look in c-family/ also.
17582
17583 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
17584
17585         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
17586         (mark_control_dependent_edges_necessary): Call it instead of marking
17587         the last statement manually.
17588         (propagate_necessity): Likewise.
17589
17590 2010-06-05  Jan Hubicka  <jh@suse.cz>
17591
17592         * basic-block.h (compute_dominance_frontiers): Updated.
17593         (compute_idf): Likewise.
17594
17595         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
17596         for dominance frontiers.
17597         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
17598         (insert_updated_phi_nodes_for): Likewise.
17599         (update_ssa): Likewise.
17600         * cfganal.c (compute_dominance_frontiers_1): Likewise.
17601         (compute_dominance_frontiers): Likewise.
17602         (compute_idf): Likewise.
17603         * df-problems.c (df_md_local_compute): Likewise.
17604
17605 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
17606
17607         * target.h (struct gcc_target): Add memory_move_cost field.
17608         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
17609         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
17610         * targhooks.c (default_memory_move_cost): New function.
17611         * targhooks.h (default_memory_move_cost): Declare function.
17612         * reload.h (memory_move_cost): Declare.
17613         (memory_move_secondary_cost): Change type of 'in' argument to bool.
17614         * reginfo.c (memory_move_cost): New function.
17615         (memory_move_secondary_cost): Change type of 'in' argument to bool.
17616         * ira.h (ira_memory_move_cost): Update comment.
17617         * ira.c (ira_memory_move_cost): Update comment.
17618         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
17619         with memory_move_cost.
17620         * postreload.c (reload_cse_simplify_set): (Ditto.).
17621         * reload1.c (choose_reload_regs): (Ditto.).
17622         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
17623         (MEMORY_MOVE_COST):  Revise documentation.
17624
17625         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
17626         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
17627         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
17628         type of 'in' argument to bool.
17629         (TARGET_MEMORY_MOVE_COST): Define.
17630
17631 2010-06-05  Jan Hubicka  <jh@suse.cz>
17632
17633         * ipa-pure-const.c (propagate): Fix typo in handling of functions
17634         that cannot return.  Be more careful when merging the results with
17635         previously known ones.
17636
17637 2010-06-05  Matthias Klose  <doko@ubuntu.com>
17638
17639         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
17640         function to add the -iplugindir option.
17641         (find_plugindir_spec_function): Add new declaration and function.
17642         (static_spec_func): Use it for "find-plugindir".
17643
17644 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
17645
17646         PR c++/44361
17647         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
17648         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
17649         statement expression.
17650
17651 2010-06-05  Jan Hubicka  <jh@suse.cz>
17652
17653         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
17654         (df_rd_problem_data): Convert sparse_invalidated_by_call,
17655         dense_invalidated_by_call to bitmap head.
17656         (df_rd_alloc, df_rd_bb_local_compute_process_def,
17657         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
17658         df_rd_start_dump, df_lr_verify_transfer_functions,
17659         df_live_verify_transfer_functions, df_chain_create_bb,
17660         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
17661         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
17662         df_simulate_one_insn_forwards, df_md_alloc,
17663         df_md_bb_local_compute_process_def,
17664         df_md_bb_local_compute_process_def, df_md_local_compute,
17665         df_md_transfer_function df_md_free): Update.
17666
17667 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
17668
17669         PR c/44322
17670         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
17671         target type for ADDR_EXPR; require no changes to qualifiers except
17672         for function types.
17673         * c-tree.h (c_build_type_variant): Remove.
17674
17675 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
17676
17677         * genautomata.c (get_excl_set): Do work per element, not per char.
17678         (check_presence_pattern_sets): Similar.
17679         (check_absence_pattern_sets): Similar.
17680
17681 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
17682
17683         * genautomata.c (curr_state_pass_num): Delete.
17684         (min_issue_delay_pass_states): Delete.
17685         (min_issue_delay): Delete.
17686         (initiate_min_issue_delay_pass_states): Delete.
17687         (output_min_issue_delay_table): Compute min_issue_delay_vect
17688         using a breadth-first search variant.
17689         (output_tables): Don't call initiate_min_issue_delay_pass_states.
17690
17691 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
17692
17693         PR boostrap/44421
17694         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
17695         (df_byte_lr_bb_local_compute): Likewise.
17696
17697 2010-06-03  Jason Merrill  <jason@redhat.com>
17698
17699         Implement noexcept operator (5.3.7)
17700         * c-common.c (c_common_reswords): Add noexcept.
17701         * c-common.h (enum rid): Add RID_NOEXCEPT.
17702
17703 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
17704
17705         * config/darwin-driver.c (darwin_default_min_version): Use
17706         GCC-specific formats in diagnostics.
17707         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
17708         diagnostics.
17709         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
17710         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
17711         eval_spec_function, handle_braces, process_brace_body, main,
17712         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
17713         getenv_spec_function, compare_version_strings,
17714         version_compare_spec_function): Use GCC-specific formats in
17715         diagnostics.
17716
17717 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
17718
17719         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
17720         that operand 0 and operand 1 are equal.
17721         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
17722         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
17723         and operand 1 are equal.
17724         <default>: Ditto.  Remove ??? comment.
17725         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
17726         and operand 1 are equal.
17727         <default>: Ditto.  Remove ??? comment.
17728         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
17729         are equal.
17730         (*add<mode>_4) <default>: Ditto.
17731         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
17732
17733 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
17734
17735         * config/i386/i386-protos.h (ix86_print_operand): Declare.
17736         * config/i386/i386.c (ix86_print_operand): Make non-static.
17737         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
17738         * output.h (output_operand): Declare.
17739         * final.c (output_operand): Make non-static.
17740
17741 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
17742
17743         PR rtl-optimization/44013
17744         * sched-deps.c (add_dependence_list_and_free): Don't free lists
17745         when processing debug insns.
17746
17747         PR debug/41371
17748         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
17749         recursing.  Check that recursion is bounded.  Rename inner var
17750         to avoid hiding incoming argument.
17751
17752 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
17753
17754         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
17755         operands[2] == 255.
17756         (*addqi_3): Ditto.
17757         (*addqi_4): Ditto.
17758         (*addqi_5): Ditto.
17759         (*addqi_ext_1_rex64): Ditto.
17760         (*addqi_ext_1): Ditto.
17761
17762         (*addqi_4): Check for incdec_operand in QImode.
17763
17764         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
17765         using SWI mode iterator.
17766         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
17767         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
17768         mode iterator.
17769         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
17770         using SWI mode iterator.
17771
17772 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17773
17774         PR c/25880
17775         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
17776         * c-format.c (gcc_diag_flag_specs): Add hash.
17777         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
17778         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
17779         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
17780         pp_c_cv_qualifiers. Handle qualifiers spelling here.
17781         (pp_c_type_qualifier_list): Call the function above.
17782         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
17783         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
17784         (WARN_FOR_QUALIFIERS): New macro.
17785         (convert_for_assignment): Use it.
17786
17787 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
17788
17789         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
17790
17791 2010-06-04  Jan Hubicka  <jh@suse.cz>
17792
17793         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
17794         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
17795         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
17796         DF_BYTE_LR_OUT): Update for embedded bitmaps.
17797         * fwprop.c (single_def_use_enter_block): Likewise.
17798         * ddg.c (create_ddg_dep_from_intra_loop_link,
17799         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
17800         * loop-iv.c (latch_dominating_def): Likewise.
17801         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
17802         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
17803         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
17804         df_rd_transfer_function, df_rd_top_dump,
17805         df_rd_bottom_dump): Update.
17806         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
17807         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
17808         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
17809         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
17810         df_lr_verify_solution_start, df_lr_verify_solution_end,
17811         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
17812         df_live_free_bb_info, df_live_alloc, df_live_reset,
17813         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
17814         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
17815         df_live_verify_solution_start, df_live_verify_solution_end,
17816         df_live_verify_transfer_functions, df_chain_create_bb,
17817         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
17818         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
17819         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
17820         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
17821         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
17822         df_byte_lr_transfer_function, df_byte_lr_top_dump,
17823         df_byte_lr_bottom_dump, df_create_unused_note,
17824         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
17825         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
17826         df_md_transfer_function, df_md_init, df_md_confluence_0,
17827         df_md_confluence_n,
17828         df_md_top_dump, df_md_bottom_dump): Update.
17829         (struct df_lr_problem_data): Embedd bitmap headers.
17830
17831 2010-06-04  Jan Hubicka  <jh@suse.cz>
17832
17833         * dce.c (dce_process_block): Do not re-scan already marked
17834         instructions.
17835
17836 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
17837
17838         PR rtl-optimization/39871
17839         PR rtl-optimization/40615
17840         PR rtl-optimization/42500
17841         PR rtl-optimization/42502
17842         * ira.c (init_reg_equiv_memory_loc: New function.
17843         (ira): Call it twice.
17844         * reload.h (calculate_elim_costs_all_insns): Declare.
17845         * ira-costs.c: Include "reload.h".
17846         (regno_equiv_gains): New static variable.
17847         (init_costs): Allocate it.
17848         (finish_costs): Free it.
17849         (ira_costs): Call calculate_elim_costs_all_insns.
17850         (find_costs_and_classes): Take estimated elimination costs
17851         into account.
17852         (ira_adjust_equiv_reg_cost): New function.
17853         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
17854         * reload1.c (init_eliminable_invariants, free_reg_equiv,
17855         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
17856         (elim_bb): New static variable.
17857         (reload): Move code out of here into init_eliminable_invariants and
17858         free_reg_equiv.  Call them.
17859         (calculate_elim_costs_all_insns): New function.
17860         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
17861         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
17862         but call note_reg_elim_costly if we turned a valid memory address
17863         into an invalid one.
17864         * Makefile.in (ira-costs.o): Depend on reload.h.
17865
17866 2010-06-04  Julian Brown  <julian@codesourcery.com>
17867
17868         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
17869         for pool ranges.
17870
17871 2010-06-04  Richard Guenther  <rguenther@suse.de>
17872
17873         PR lto/41584
17874         * cgraph.h (struct varpool_node): Add lto_file_data field.
17875         * lto-cgraph.c (input_varpool_node): Initialize it.
17876
17877 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
17878
17879         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
17880         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
17881         predicate in "type" attribute calculation.
17882         (*addsi_1_zext): Ditto.
17883         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
17884         (*addsi_2_zext): Ditto.
17885         (*add<mode>_3): Ditto.
17886         (*addsi_3_zext): Ditto.
17887         (*add<mode>_5): Ditto.
17888
17889 2010-06-03  Jan Hubicka  <jh@suse.cz>
17890
17891         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
17892         of bitmap_bit_p.
17893         * cfganal.c (compute_dominance_frontiers_1): Likewise.
17894
17895 2010-06-03  Jan Hubicka  <jh@suse.cz>
17896
17897         * df-problems.c (df_create_unused_note, df_note_bb_compute):
17898         micro-optimize the checks when to add new note.
17899
17900 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
17901
17902         * final.c (output_asm_insn): Call
17903         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
17904         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
17905         (output_address): Call targetm.asm_out.print_operand_address.
17906         Update comments.
17907         * target.h (struct gcc_target): Add print_operand,
17908         print_operand_address, and print_operand_punct_valid_p fields.
17909         * targhooks.h (default_print_operand): Declare.
17910         (default_print_operand_address): Declare.
17911         (default_print_operand_punct_valid_p): Declare.
17912         * targhooks.c (default_print_operand): Define.
17913         (default_print_operand_address): Define.
17914         (default_print_operand_punct_valid_p): Define.
17915         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
17916         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
17917         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
17918         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
17919         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
17920         * vmsdbgout.c (addr_const_to_string): Update comment.
17921         * config/i386/i386.c (print_operand): Rename to...
17922         (ix86_print_operand): ...this.  Make static.
17923         (print_operand_address): Rename to...
17924         (ix86_print_operand_address): ...this.  Make static.  Call
17925         ix86_print_operand instead of PRINT_OPERAND.
17926         (ix86_print_operand_punct_valid_p): New function.
17927         (TARGET_PRINT_OPERAND): Define.
17928         (TARGET_PRINT_OPERAND_ADDRESS): Define.
17929         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
17930         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
17931         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
17932         (PRINT_OPERAND): Delete.
17933         (PRINT_OPERAND_ADDRESS): Delete.
17934         * config/i386/i386-protos.h (print_operand): Delete prototype.
17935         (print_operand_address): Delete prototype.
17936
17937 2010-06-03  Richard Guenther  <rguenther@suse.de>
17938
17939         PR tree-optimization/44403
17940         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
17941         Preserve pointer qualifiers.
17942         (vect_create_data_ref_ptr): Likewise.
17943
17944 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
17945
17946         PR c++/44294
17947         * defaults.h (MAX_FIXED_MODE_SIZE): New.
17948
17949         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
17950
17951 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
17952
17953         PR debug/44375
17954         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
17955         return false if merging the bbs would lead to goto_locus
17956         location being lost from the IL.
17957
17958 2010-06-03  Jan Hubicka  <jh@suse.cz>
17959             Jakub Jelinek  <jakub@redhat.com>
17960
17961         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
17962         set->regs[i] is NULL or has just one entry.
17963
17964 2010-06-03  Jan Hubicka  <jh@suse.cz>
17965
17966         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
17967         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
17968
17969 2010-06-03  Paul Brook  <paul@codesourcery.com>
17970
17971         * config/arm/arm.c (FL_TUNE): Define.
17972         (arm_default_cpu, arm_cpu_select): Remove.
17973         (all_cores): Populate core field.
17974         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
17975         (arm_find_cpu): New function.
17976         (arm_handle_option): Lookup cpu/architecture names.
17977         (arm_override_options): Cleanup mcpu/march/mtune handling.
17978         (arm_file_start): Ditto.
17979
17980 2010-06-03  Alan Modra  <amodra@gmail.com>
17981
17982         PR target/44169
17983         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
17984         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
17985         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
17986         (rs6000_emit_load_toc_table): Likewise.
17987
17988 2010-06-02  Jan Hubicka  <jh@suse.cz>
17989
17990         * passes.c (init_optimization_passes): Put ipa reference
17991         after ipa pure-const.
17992
17993 2010-06-02  Jan Hubicka  <jh@suse.cz>
17994
17995         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
17996         calls_read_all and calls_write_all.
17997         (get_reference_optimization_summary): Fix formatting.
17998         (is_proper_for_analysis): Check that decl is not readonly.
17999         (propagate_bits): Check CONST/PURE/noreturn flags.
18000         (ipa_init): Move all_module_statics to optimization_summary_obstack.
18001         (analyze_function): Ignore indirect edges.
18002         (copy_global_bitmap): For all module statics, do nothing.
18003         (generate_summary): Do not print calls_read_all/calls_write_all.
18004         (read_write_all_from_decl): Take node as argument; check
18005         cgraph_node_cannot_return.
18006         (propagate): Reorganize read_all/write_all computation;
18007         check indirect edges; check ecf flags; use all_module_statics
18008         in the results; do not free all_module_statics.
18009         (stream_out_bitmap): Handle all_module_statics.
18010         (ipa_reference_write_optimization_summary): Likewise; use
18011         varpool/cgraph encoders to get boundaries.
18012         (ipa_reference_read_optimization_summary): Read in all_module_statics;
18013         use it when possible.
18014
18015 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
18016
18017         PR target/44218
18018         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
18019         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
18020
18021         * doc/extend.texi (powerpc builtins): Document vec_recip,
18022         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
18023
18024         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
18025         (rs6000_emit_swrsqrt): Ditto.
18026         (rs6000_emit_swdivsf): Delete.
18027         (rs6000_emit_swdivdf): Ditto.
18028         (rs6000_emit_swrsqrtsf): Ditto.
18029
18030         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
18031         describe the reciprocal estimate support for each type.
18032         (recip_options): Map -mrecip=<opt> into option bits.
18033         (gen_2arg_fn_t): New typedef for binary rtx gen function.
18034         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
18035         reciprocal estimate instructions.
18036         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
18037         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
18038         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
18039         cost information if -mdebug=cost or -mdebug=reg.
18040         (rs6000_override_options): Set -mrecip-precision for power6, and
18041         power7 machines.  If -mvsx or -mdfp, enable various options that
18042         came in previous instruction set ISAs, unless the option was
18043         explicitly disabled by the command line option.  Parse
18044         -mrecip=<opt> options.
18045         (rs6000_builtin_vectorized_function): Add support for vectorizing
18046         the reciprocal estimate builtins and expansions.
18047         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
18048         (bdesc_2arg): Add reciprocal estimate builtins.
18049         (bdesc_1arg): Add reciprocal square root estimate builtins.
18050         (rs6000_expand_builtin): Rewrite to use a switch statement,
18051         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
18052         (rs6000_init_builtins): Create declarations for reciprocal
18053         estimate builtins.
18054         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
18055         sized, prefer traditional floating point registers, if integer
18056         vector types, prefer altivec registers.  Don't actually look at
18057         the memory address any more.
18058         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
18059         builtins.
18060         (rs6000_load_constant_and_splat): New helper function to load up
18061         the constant for reciprocal estimate instructions.
18062         (rs6000_emit_madd): New helper function for generating
18063         multiply/add type instructions, based on the current switches.
18064         (rs6000_emit_msub): Ditto.
18065         (rs6000_emit_mnsub): Ditto.
18066         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
18067         replace a divide with a reciprocal estimate and fixup, adding
18068         support for machines with high precision and vectors.
18069         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
18070         low precision machines.
18071         (rs6000_emit_swdiv): New common function to be called to replace a
18072         division with reciprocal estimate and fixup.
18073         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
18074         for double and vector types.  Add support for high precision machines.
18075
18076         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
18077         the reciprocal estimate instructions can be generated.
18078         (TARGET_FRE): Ditto.
18079         (TARGET_FRSQRTES): Ditto.
18080         (TARGET_FRSQRTE): Ditto.
18081         (RS6000_RECIP_*): New macros for reciprocal estimate support.
18082
18083         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
18084         square root estimate on vectors.
18085         (re<mode>2): New insn for reciprocal division estimate on vectors.
18086
18087         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
18088         New builtin.
18089         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
18090         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
18091         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
18092         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
18093         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
18094         (RS6000_BUILTIN_RSQRT): Ditto.
18095         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
18096         floating point builtin.
18097
18098         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
18099         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
18100         __RECIP_PRECISION__ based on the command line switches.
18101         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
18102
18103         * config/rs6000/rs6000.opt (-mrecip): Document add support for
18104         replacing division instructions with reciprocal estimate and fixup.
18105         (-mrecip=<opt>): New option.
18106         (-mrecip-precision): Ditto.
18107
18108         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
18109         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
18110         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
18111         precision scalar.
18112
18113         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
18114         (UNSPEC_VREFP): Ditto.
18115         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
18116         conterparts with regard to support of -mno-fused-madd and -ffast-math.
18117         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
18118         reciprocal estimate instructions to be generated.
18119         (altivec_vrefp): Ditto.
18120
18121         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
18122         estimate support.
18123         (rreg): New mode attribute for reciprocal estimate support.
18124         (recip<mode>3): New insn for division using reciprocal estimate
18125         and fixup builtins.
18126         (divide define_split): New define_split to convert floating point
18127         division to use reciprocal estimate if the user used the
18128         appropriate options and the split is run when we can add new
18129         pseudo registers for the fixup.
18130         (rsqrt<mode>2): New insn for reciprocal square root support.
18131         (recipsf3): Move into recip<mode>3.
18132         (recipdf3): Ditto.
18133         (fres): Use TARGET_FRES.
18134         (rsqrtsf2): Move into rsqrt<mode>2.
18135         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
18136         (copysignsf3): Add support for VSX.
18137         (fred): Use TARGET_FRE.
18138         (fred_fpr): Ditto.
18139         (rsqrtdf_internal1): New function for frsqrte instruciton.
18140
18141         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
18142         (vec_rsqrt): Ditto.
18143
18144 2010-06-03  Richard Guenther  <rguenther@suse.de>
18145
18146         PR middle-end/44291
18147         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
18148         (set_user_assembler_libfunc): Likewise.
18149
18150 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
18151
18152         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
18153         defaults.h.
18154         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
18155         to defaults.h
18156         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
18157         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
18158         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
18159         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
18160         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
18161         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
18162         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
18163         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
18164         * defaults.h: Updated for above mentioned changes.
18165
18166 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
18167
18168         * c-common.c: Remove header include of tm_p.h.
18169         * Makefile.in (c-common.o): Remove TM_P_H dependency.
18170
18171 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
18172
18173         * tree.h (struct tree_decl_map): New type.
18174         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
18175         (tree_decl_map_hash): New prototype.
18176         (debug_expr_for_decl, value_expr_for_decl): Change into
18177         tree_decl_map hashtab from tree_map.
18178         (init_ttree): Adjust initialization.
18179         (tree_decl_map_hash): New function.
18180         (decl_debug_expr_lookup, decl_debug_expr_insert,
18181         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
18182
18183 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
18184
18185         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
18186         linker emulations.
18187         * configure: Regenerate.
18188         * config.in: Regenerate.
18189
18190         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
18191         (X86_64_EMULATION): Define.
18192         (TARGET_LD_EMULATION): Use them.
18193
18194         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
18195         (SPARC64_EMULATION): Define.
18196         (LINK_ARCH_SPEC): Use them.
18197
18198 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
18199
18200         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
18201         smallest_mode_for_size for computing the precision types of new
18202         graphite IVs.  Do not call lang_hooks.types.type_for_size.
18203
18204 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
18205
18206         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
18207         information.
18208         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
18209
18210 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
18211
18212         PR middle-end/44363
18213         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
18214         return false instead.
18215
18216 2010-06-02  Jan Hubicka  <jh@suse.cz>
18217
18218         PR middle-end/44295
18219         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
18220         create new cgraph node to check callee.
18221
18222 2010-06-02  Richard Guenther  <rguenther@suse.de>
18223
18224         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
18225
18226 2010-06-02  Richard Guenther  <rguenther@suse.de>
18227
18228         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
18229         (lto_wrapper_cleanup): ... this.  Do not exit.
18230         (fatal): Adjust.  Exit here.
18231         (fatal_perror): Likewise.
18232         (fatal_signal): New function.
18233         (main): Set up signal handlers to cleanup temporary files.
18234         * Makefile.in (lto-wrapper.o): Adjust dependencies.
18235
18236 2010-06-02  Richard Guenther  <rguenther@suse.de>
18237
18238         PR tree-optimization/44377
18239         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
18240
18241 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
18242
18243         * config/s390/2097.md (z10_fhex): Remove insn reservation.
18244         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
18245         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
18246         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
18247         instruction.
18248         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
18249
18250 2010-06-02  Jan Hubicka  <jh@suse.cz>
18251
18252         * bitmap.c (bitmap_descriptor): Add search_iter.
18253         (bitmap_find_bit): Increment it.
18254         (print_statistics): Print it.
18255
18256 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
18257
18258         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
18259         instead of gimple_build_call_vec.  Delete unnecessary local variable.
18260
18261 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
18262
18263         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
18264         change from yesterday.
18265
18266 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
18267
18268         * c-ada-spec.c: Clean up redundant includes.
18269
18270 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
18271
18272         * gimplify.c: Do not include except.h and optabs.h.
18273         (gimplify_body): Do not initialize RTL profiling.
18274         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
18275         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
18276         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
18277         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
18278         langhooks.h.
18279
18280         * tree-pretty-print.h: Include pretty-print.h.
18281         * gimple-pretty-print.h: Include pretty-print.h.
18282
18283         * tree-pretty-print.c: Do not include diagnostic.h.
18284         * tree-vrp.c: Likewise.
18285         * tree-tailcall.c: Likewise
18286         * tree-scalar-evolution.c: Likewise
18287         * tree-ssa-dse.c: Likewise
18288         * tree-chrec.c: Likewise
18289         * tree-ssa-sccvn.c: Likewise
18290         * tree-ssa-copyrename.c: Likewise
18291         * tree-nomudflap.c: Likewise
18292         * tree-call-cdce.c: Likewise
18293         * tree-stdarg.c: Likewise
18294         * tree-ssa-math-opts.c: Likewise
18295         * tree-nrv.c: Likewise
18296         * tree-ssa-sink.c: Likewise
18297         * tree-browser.c: Likewise
18298         * tree-ssa-loop-ivcanon.c: Likewise
18299         * tree-ssa-loop.c: Likewise
18300         * tree-parloops.c: Likewise
18301         * tree-ssa-address.c: Likewise
18302         * tree-ssa-ifcombine.c: Likewise
18303         * tree-if-conv.c: Likewise
18304         * tree-data-ref.c: Likewise
18305         * tree-affine.c: Likewise
18306         * tree-ssa-phiopt.c: Likewise
18307         * tree-ssa-coalesce.c: Likewise
18308         * tree-ssa-pre.c: Likewise
18309         * tree-ssa-live.c: Likewise
18310         * tree-predcom.c: Likewise
18311         * tree-ssa-forwprop.c: Likewise
18312         * tree-ssa-dce.c: Likewise
18313         * tree-ssa-ter.c: Likewise
18314         * tree-ssa-loop-prefetch.c: Likewise
18315         * tree-optimize.c: Likewise
18316         * tree-ssa-phiprop.c: Likewise
18317         * tree-object-size.c: Likewise
18318         * tree-outof-ssa.c: Likewise
18319         * tree-ssa-structalias.c: Likewise
18320         * tree-switch-conversion.c: Likewise
18321         * tree-ssa-reassoc.c: Likewise
18322         * tree-ssa-operands.c: Likewise
18323         * tree-vectorizer.c: Likewise
18324         * tree-vect-data-refs.c: Likewise
18325         * tree-vect-generic.c: Likewise
18326         * tree-vect-stmts.c: Likewise
18327         * tree-vect-patterns.c: Likewise
18328         * tree-vect-slp.c: Likewise
18329         * tree-vect-loop.c: Likewise
18330         * tree-ssa-loop-ivopts.c: Likewise
18331         * tree-ssa-loop-im.c: Likewise
18332         * tree-ssa-loop-niter.c: Likewise
18333         * tree-ssa-loop-unswitch.c: Likewise
18334         * tree-ssa-loop-manip.c: Likewise
18335         * tree-ssa-loop-ch.c: Likewise
18336         * tree-dump.c: Likewise
18337         * tree-complex.c: Likewise
18338
18339         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
18340         * tree-ssa-uninit.c: Likewise
18341         * tree-ssa-threadupdate.c: Likewise
18342         * tree-ssa-uncprop.c: Likewise
18343         * tree-ssa-ccp.c: Likewise
18344         * tree-ssa-dom.c: Likewise
18345         * tree-ssa-propagate.c: Likewise
18346         * tree-ssa-alias.c: Likewise
18347         * tree-dfa.c: Likewise
18348         * tree-cfgcleanup.c: Likewise
18349         * tree-sra.c: Likewise
18350         * tree-ssa-copy.c: Likewise
18351         * tree-ssa.c: Likewise
18352         * tree-profile.c: Likewise
18353         * tree-cfg.c: Likewise
18354         * tree-ssa-threadedge.c: Likewise
18355         * tree-vect-loop-manip.c: Likewise
18356
18357         * tree-inline.c: Do not include diagnostic.h and expr.h.
18358         Include rtl.h.
18359         (copy_decl_for_dup_finish): Do not use NULL_RTX.
18360
18361         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
18362         * tree-loop-distribution.c: Likewise.
18363
18364 2010-06-01  Jan Hubicka  <jh@suse.cz>
18365
18366         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
18367
18368 2010-06-01  Jan Hubicka  <jh@suse.cz>
18369
18370         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
18371         remove return value.
18372         (split_bbs_on_noreturn_calls) .... here.
18373         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
18374         * tree-flow.h (fixup_noreturn_call): New.
18375
18376 2010-06-01  Jan Hubicka  <jh@suse.cz>
18377
18378         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
18379
18380 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
18381
18382         * tree.h (build_nt_call_list): Delete.
18383         * tree.c (build_nt_call_list): Delete.
18384
18385 2010-06-01  Jan Hubicka  <jh@suse.cz>
18386
18387         * fwprop.c: Make emit-rtl.h include last.
18388         * rtlanal.c: Include emit-rtl.h.
18389         * genautomata.c: Output emit-rtl include into insn-automata.c
18390         * df-scan.c: Include emit-rtl.h.
18391         * haifa-sched.c: Indlude emit-rtl.h.
18392         * mode-switching.c: Indlude emit-rtl.h.
18393         * graph.c: Indlude emit-rtl.h.
18394         * sel-sched.c: Include emit-rtl.h.
18395         * sel-sched-ir.c: Include emit-rtl.h.
18396         * ira-build.c: Include emit-rtl.h.
18397         * emit-rtl.c (first_insn, last_insn): Remove defines.
18398         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
18399         Move to emit-rtl.h.
18400         (set_new_first_and_last_insn, get_last_insn_anywhere,
18401         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
18402         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
18403         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
18404         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
18405         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
18406         Use accessor functions.
18407         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
18408          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
18409         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
18410         mem_expr_equal_p): Move here from rtl.h.
18411         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
18412         Move here from emit-rtl.c; make inline.
18413         * cfglayout.h: Include emit-rtl.h.
18414         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
18415          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
18416         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
18417         mem_expr_equal_p, get_insns, set_first-insn,
18418         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
18419         * reg-stack.c: Include emit-rtl.h.
18420         * dce.c: Likewise.
18421
18422 2010-06-01  Jan Hubicka  <jh@suse.cz>
18423
18424         * cgraph.h (tree_function_versioning): Update prototype.
18425         (cgraph_function_versioning): Update prototype.
18426         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
18427         bitmap.
18428         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
18429         (cgraph_materialize_clone, save_inline_function_body): Update use of
18430         tree_function_versioning.
18431         * tree-inline.c (copy_bb): Look for previous copied block to link
18432         after; fix debug output.
18433         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
18434         (copy_body): Likewise.
18435         (expand_call_inline): Update use of copy_body.
18436         (tree_function_versioning): Update use of copy body; accept
18437         blocks_to_copy and new_entry.
18438
18439 2010-06-01  Jan Hubicka  <jh@suse.cz>
18440
18441         * gegenrtl.c: Remove unnecesary prototypes.
18442         (gendecl): Remove.
18443         (gendef): Produce static inline.
18444         (gencode): Remove.
18445         (main): Do not decode parameters; generate header only.
18446         * Makefile.in (genrtl.c): Remove.
18447
18448 2010-06-01  Jan Hubicka  <jh@suse.cz>
18449
18450         * tree-switch-conversion.c (build_one_array): Make it readonly.
18451
18452 2010-06-01  Richard Guenther  <rguenther@suse.de>
18453
18454         * optabs.c (init_optabs): Guard all accesses to reinit.
18455         * ipa-pure-const.c (propagate): Fix another typo.
18456         * opts.c (common_handle_option): Split assignment to bool.
18457         * c-opts.c (c_common_handle_option): Likewise.
18458
18459 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
18460             Matthew Gingell  <gingell@adacore.com>
18461
18462         * doc/invoke.texi: Mention -fdump-ada-spec.
18463         * tree-dump.c (dump_files): Add ada-spec.
18464         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
18465         * tree-pass.h (tree_dump_index): Add TDI_ada.
18466         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
18467         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
18468         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
18469         * c-decl.c: Include c-ada-spec.h.
18470         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
18471         functions.
18472         (c_write_global_declarations): Add handling of -fdump-ada-spec.
18473         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
18474         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
18475         * c-ada-spec.h, c-ada-spec.c: New files.
18476
18477 2010-06-01  Richard Guenther  <rguenther@suse.de>
18478
18479         PR lto/43853
18480         * ipa-pure-const.c (get_function_state): Hand back varying state
18481         if we do not have one.
18482         (has_function_state): New function.
18483         (duplicate_node_data): Adjust.
18484         (remove_node_data): Likewise.
18485         (pure_const_write_summary): Likewise.
18486         (propagate): Likewise.  Fix typo.
18487
18488 2010-06-01  Jan Hubicka  <jh@suse.cz>
18489
18490         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
18491         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
18492         (execute_all_ipa_transforms): Do not play with the states.
18493
18494 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
18495
18496         * config/arm/t-linux-androideabi: New.
18497         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
18498
18499 2010-06-01  Jan Hubicka  <jh@suse.cz>
18500
18501         * tree-inline.c (estimate_num_insns): For stdarg functions look
18502         into call statement to count cost of argument passing.
18503
18504 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
18505
18506         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
18507         argument for fprintf.
18508         (ix86_output_addr_diff_elt): Likewise.
18509         (x86_function_profiler): Likewise.
18510         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
18511         (LPREFIX): Likewise.
18512         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
18513
18514 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
18515
18516         PR target/44338
18517         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
18518         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
18519         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
18520         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
18521         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
18522         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
18523         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
18524         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
18525         TARGET_FUSED_MADD.
18526
18527 2010-05-31  Jan Hubicka  <jh@suse.cz>
18528
18529         * tree.h (tree_range_check_failed): Declare noreturn.
18530
18531 2010-05-31  Jan Hubicka  <jh@suse.cz>
18532
18533         * gimple.c (gimple_call_builtin_p): New function.
18534         * gimple.h (gimple_call_builtin_p): Declare.
18535         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
18536         to exit.
18537         (execute_warn_function_return): BUILT_IN_RETURN is return.
18538         (split_critical_edges): Return edges are not critical.
18539         (is_ctrl_altering_stmt): Builtin_in_return is altering.
18540         (gimple_verify_flow_info): Handle built_in_return.
18541         (execute_warn_function_return): Handle built_in_return.
18542         * ipa-pure-const.c (check_call): Ignore builtin_return.
18543
18544 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
18545
18546         PR middle-end/44337
18547         * expr.c (expand_assignment): Don't store anything for out-of-bounds
18548         array accesses with non-MEM.
18549
18550         PR tree-optimization/44182
18551         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
18552         newly needs to end a bb is followed by debug stmts, instead return
18553         true from the function at the end.
18554         (maybe_move_debug_stmts_to_successors): New function.
18555         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
18556
18557 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
18558
18559         PR target/44161
18560         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
18561
18562 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
18563
18564         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
18565         for nested functions in non-optimized compilation.
18566
18567 2010-05-31  Richard Guenther  <rguenther@suse.de>
18568
18569         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
18570
18571 2010-05-30  Jan Hubicka  <jh@suse.cz>
18572
18573         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
18574
18575 2010-05-30  Richard Guenther  <rguenther@suse.de>
18576
18577         PR lto/42975
18578         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
18579         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
18580         no longer needed.
18581
18582 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
18583
18584         * config/darwin.c (output_objc_section_asm_op): Add comment.
18585         (name_needs_quotes): Add '_' to list of valid comment chars.
18586         (machopic_output_function_base_name): Remove unneeded quotes.
18587         (darwin_encode_section_info): Adjust asm whitespace.
18588         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
18589         (ASM_OUTPUT_LOCAL): Ditto.
18590         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
18591         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
18592         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
18593
18594 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
18595
18596         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
18597         RS6000_OUTPUT_BASENAME unconditionally.
18598         (rs6000_output_function_epilogue): Likewise.
18599
18600 2010-05-30  Jan Hubicka  <jh@suse.cz>
18601
18602         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
18603         nodes.
18604
18605 2010-05-30  Richard Guenther  <rguenther@suse.de>
18606
18607         * tree-cfg.c (verify_gimple_assign_single): Implement
18608         verification for COND_EXPR rhs.
18609
18610 2010-05-30  Jan Hubicka  <jh@suse.cz>
18611
18612         * cgraph.h (cgraph_dump_file): Declare.
18613         * cgraphunit.c (cgraph_dump_file): Export.
18614         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
18615
18616 2010-05-30  Jan Hubicka  <jh@suse.cz>
18617
18618         * dwarf2out.c (reference_to_unused,
18619         premark_types_used_by_global_vars_helper): Avoid creation of new
18620         varpool nodes.
18621
18622 2010-05-30  Jan Hubicka  <jh@suse.cz>
18623
18624         * cgraph.h (cgraph_node_cannot_return,
18625         cgraph_edge_cannot_lead_to_return): New functions.
18626         * cgraph.c (cgraph_node_cannot_return,
18627         cgraph_edge_cannot_lead_to_return): Use them.
18628         * ipa-pure-const.c (pure_const_names): New static var.
18629         (check_call): Handle calls not leading to return.
18630         (pure_const_read_summary): Dump info read.
18631         (propagate): Dump info about propagation process; ignore side effects
18632         of functions not leading to exit; fix handling of pure functions.
18633
18634 2010-05-30  Jan Hubicka  <jh@suse.cz>
18635
18636         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
18637         for tail call epilogues.
18638
18639 2010-05-30  Jan Hubicka  <jh@suse.cz>
18640
18641         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
18642         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
18643         dump files.
18644
18645 2010-05-29  Jan Hubicka  <jh@suse.cz>
18646
18647         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
18648         node; remove references in node we no longer keep in cgrpah but need
18649         body of.
18650
18651 2010-05-29  Jan Hubicka  <jh@suse.cz>
18652
18653         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
18654
18655 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18656
18657         PR target/44165
18658         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
18659
18660 2010-05-29  Jan Hubicka  <jh@suse.cz>
18661
18662         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
18663         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
18664         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
18665         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
18666         debug_names_replaced_by, debug_update_ssa): Likewise.
18667         * sbitmap.c (debug_sbitmap): Likewise.
18668         * genrecog.c (debug_decision, debug_decision_list): Likewise.
18669         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
18670         debug_tree_chain): Likewise.
18671         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
18672         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
18673         * optabs.c (debug_optab_libfuncs): Likewise.
18674         (verify_loop_closed_ssa): Likewise.
18675         * value-prof.c (verify_histograms): Likewise.
18676         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
18677         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
18678         * cfghooks.c (verify_flow_info): Likewise.
18679         * fold-const.c (debug_fold_checksum): Likewise.
18680         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
18681         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
18682         Likewise.
18683         * omega.c (debug_omega_problem): Likewise.
18684         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
18685         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
18686         * dominance.c (verify_dominators, debug_dominance_info,
18687         debug_dominance_tree): Likewise.
18688         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
18689         * df_regno_debug, df_ref_debug,
18690         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
18691         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
18692         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
18693         * sel-sched.c (debug_state): Likewise.
18694         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
18695         Likewise.
18696         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
18697         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
18698         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
18699         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
18700         Likewise.
18701         * c-pretty-print.c (debug_c_tree): Likewise.
18702         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
18703         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
18704         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
18705         * ebitmap.c (debug_ebitmap): Likewise.
18706         * function.c (debug_find_var_in_block_tree): Likewise.
18707         * print-rtl.c (debug_rtx): Likewise.
18708         (debug_rtx_count): Likewise.
18709         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
18710         * stor-layout.c (debug_rli): Likewise.
18711         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
18712         * tree-data-ref.c (debug_data_references,
18713         debug_data_dependence_relations, debug_data_reference,
18714         debug_data_dependence_relation, debug_rdg_vertex,
18715         debug_rdg_component, debug_rdg): Likewise.
18716         * tree-affine.c (debug_aff): Likewise.
18717         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
18718         Likewise.
18719         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
18720         * emit-rtl.c (verify_rtl_sharing): Likewise.
18721         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
18722         debug_value_expressions): Likewise.
18723         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
18724         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
18725         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
18726         * cfglayout.c (verify_insn_chain): Likewise.
18727         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
18728         debug_clast_stmt, debug_generated_program): Likewise.
18729         * ggc-page.c (debug_print_page_list): Likewise.
18730         * tree-ssa-ter.c (debug_ter): Likewise.
18731         * graphite-dependences.c (debug_pddr): Likewise.
18732         * sched-deps.c (debug_ds): Likewise.
18733         * tree-ssa.c (verify_ssa): Likewise.
18734         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
18735         debug_scattering_functions, debug_iteration_domains, debug_pdr,
18736         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
18737         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
18738         * tree-inline.c (debug_find_tree): Likewise.
18739         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
18740         debug_ppl_powerset_matrix): Likewise.
18741         * var-tracking.c (debug_dv): Likewise.
18742         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
18743         * cfgloop.c (verify_loop_structure): Likewise.
18744         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
18745         * c-common.c (verify_sequence_points): Likewise.
18746         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
18747         debug_candidates, debug_rgn_dependencies): Likewise.
18748         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
18749         * debug_constraint_graph, debug_solution_for_var,
18750         debug_sa_points_to_info): Likewise.
18751         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
18752         Likewie.
18753         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
18754         debug_loops, debug_loop, debug_loop_num): Likewise.
18755         * passes.c (debug_pass): Likewise.
18756         (dump_properties): Likewise; add cfglayout property.
18757         (debug_properties): Likewise.
18758         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
18759         * varpool.c (debug_varpool): Likewise.
18760         * regcprop.c (debug_value_data): Likewise.
18761         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
18762         debug_immediate_uses_for): Likewise.
18763
18764 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
18765
18766         PR bootstrap/44315
18767         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
18768         Filter out insn-flags.h.
18769
18770 2010-05-29  Jan Hubicka  <jh@suse.cz>
18771
18772         * cgraph.h (struct varpool_node_set_def,
18773         struct cgraph_node_set_def): Remove unused AUX pointer.
18774         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
18775         VEC_empty macro.
18776
18777 2010-05-29  Jan Hubicka  <jh@suse.cz>
18778
18779         PR middle-end/44324
18780         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
18781
18782 2010-05-29  Richard Guenther  <rguenther@suse.de>
18783
18784         * lto-streamer.c (cached_bp): New global variable.
18785         (bitpack_create): Return the cached bitpack, if available.
18786         (bitpack_delete): Clear and cache the bitpack, if appropriate.
18787         (bp_pack_value): Remove redundant asserts.
18788
18789 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
18790
18791         PR middle-end/44306
18792         * tree-if-conv.c (is_true_predicate): New.
18793         (is_predicated): Use is_true_predicate.
18794         (add_to_predicate_list): Same.  Do not use unshare_expr.
18795         (add_to_dst_predicate_list): Same.
18796
18797 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
18798
18799         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
18800         field on edges.
18801         (predicate_bbs): Same.
18802         (clean_predicate_lists): Same.
18803         (find_phi_replacement_condition): Do not AND the predicate from
18804         edge->aux.
18805
18806 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
18807
18808         PR bootstrap/44315
18809         * Makefile.in (build/gencondmd.o): Add a missing `\'.
18810
18811 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18812
18813         PR target/44261
18814         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
18815         (negdf2): Adjust expander pattern and use negdf2_slow.
18816         (negsf2): Likewise.
18817
18818 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
18819
18820         * basic-block.h (struct control_flow_graph): Move last_label_uid field
18821         up.
18822         * df.h (struct df_base_ref): Move regno field up.
18823         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
18824         * expr.h (struct separate_ops): Move location field up.
18825         * optabs.h (struct optab_d): Move libcall_basename field down.
18826         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
18827         * config/i386/i386.h (struct machine_function): Convert call_abi field
18828         into a bitfield.  Move cfa field to the end of the structure.
18829
18830 2010-05-29  Jan Hubicka  <jh@suse.cz>
18831
18832         * varpool.c (varpool_get_node): Fix lookup.
18833
18834 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
18835
18836         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
18837         RTL specific prototypes with #ifdef RTX_CODE.
18838         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
18839         * config/spu/t-spu-elf: Fix dependencies.
18840
18841         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
18842
18843 2010-05-29  Mike Stump  <mikestump@comcast.net>
18844
18845         PR bootstrap/44315
18846         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
18847         TM_H when building to avoid dependency loops.
18848
18849 2010-05-29  Jan Hubicka  <jh@suse.cz>
18850
18851         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
18852         refs and body; not the whole node for masters of materialized clones.
18853
18854 2010-05-29  Mike Stump  <mikestump@comcast.net>
18855
18856         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
18857
18858 2010-05-29  Jan Hubicka  <jh@suse.cz>
18859
18860         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
18861         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
18862         use of clone_function_name.
18863         * cgraph.h (cgraph_create_virtual_clone,
18864         cgraph_function_versioning): update prototypes.
18865         (clone_function_name): Declare.
18866         * ipa-cp.c (ipcp_insert_stage): Update call of
18867         cgraph_create_virtual_clone.
18868         * omp-low.c (create_omp_child_function_name): Use
18869         cgraph_create_virtual_clone.
18870         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
18871         (cgraph_function_versioning): Take SUFFIX argument; produce new name
18872         and make decl local.
18873
18874 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
18875
18876         * vec.h: Include statistics.h
18877         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
18878         with VEC_H.
18879
18880 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
18881
18882         * c-lex.c: Do not include c-tree.h.
18883         * c-pretty-print.c: Likewise.
18884         * c-opts.c: Likewise.
18885         * c-gimplify.c: Likewise.
18886         * c-common.c: Likewise.
18887         * c-dump.c: Likewise.  Include c-common.h.
18888
18889 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
18890
18891         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
18892         before including diagnostic-core.h.
18893         (c_cpp_error): New prototype moved from c-tree.h.
18894         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
18895         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
18896         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
18897         (c_cpp_error): Prototype moved to c-common.h.
18898         * Makefile.in: Update dependency for C_COMMON_H.
18899
18900 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
18901
18902         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
18903         * c-common.c (c_register_addr_space): Remove here.
18904         * c-decl.c (c_register_addr_space): Re-add here.
18905
18906 2010-05-28  Mike Stump  <mikestump@comcast.net>
18907
18908         * config/darwin-c.c: Remove c-tree.h include.
18909
18910 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
18911
18912         * gcc.c: Include diagnostic.h.
18913         (error_count): Remove.  All users changed to use errorcount.
18914         (programname): Remove.  All users changed to use progname.
18915         (fancy_abort, internal_error, fatal_error, error, warning, inform,
18916         fnotice): Remove.
18917         (execute): Don't include "Internal error" and bug reporting
18918         information in argument of internal_error call.
18919         (process_command): Don't increment error_count after calling
18920         perror_with_name.
18921         (input_filename): Rename to gcc_input_filename.  All users
18922         changed.
18923         (main): Call diagnostic_initialize.  Register delete_temp_files
18924         with atexit.  Use seen_error to test for errors.
18925         * gcc.h: Include diagnostic-core.h.
18926         (fatal_error, error, warning): Remove.
18927         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
18928         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
18929         (gcc.o): Update dependencies.
18930
18931 2010-05-28  Jeff Law  <law@redhat.com>
18932
18933         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
18934         functions.
18935         * ira.h (ira_bad_reload_regno): Declare
18936         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
18937
18938         * ira-color.c (update_curr_costs): Free updated hard reg costs.
18939         (ira_reassign_conflict_allocnos): Remove bogus asserts.
18940         (allocno_reload_assign): Likewise.
18941
18942 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
18943
18944         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
18945         build1_stat.
18946
18947 2010-05-28  Richard Guenther  <rguenther@suse.de>
18948
18949         PR lto/44312
18950         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
18951         Stream fixed-point constants mode.
18952         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
18953         and TYPE_PRECISION.
18954         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
18955         Stream fixed-point constants mode.
18956         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
18957         and TYPE_PRECISION.
18958
18959 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
18960
18961         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
18962         only place it was called from.
18963         (number_of_latch_executions): Do not return chrec_dont_know when the
18964         may_be_zero is a runtime condition: instead, return a COND_EXPR
18965         including the may_be_zero condition.
18966         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
18967         of nb_iterations.
18968         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
18969         COND_EXPRs.
18970
18971 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
18972
18973         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
18974         generate COND_EXPRs for degenerate_phi_result.
18975
18976 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
18977
18978         PR middle-end/44293
18979         * tree-if-conv.c (if_convertible_loop_p): Check the
18980         if-convertibility of phi nodes in non predicated BBs.
18981
18982 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
18983
18984         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
18985
18986 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
18987
18988         PR driver/15303
18989         * gcc.c (inform, warning, inform): New functions.
18990         (fatal_ice): Rename to internal_error; change cmsgid parameter to
18991         gmsgid.  All callers changed.
18992         (notice): Rename to fnotice; add parameter fp.  All callers changed.
18993         (fatal_error): Rename to fatal_signal.  All users changed.
18994         (fatal): Rename to fatal_error; change cmsgid parameter to
18995         gmsgid.  All callers changed.
18996         (process_command): Use warning instead of error for warnings.
18997         (end_going_arg): Don't use _() around argument of error.
18998         (do_spec_1): Use inform for message from %n specs.  Use warning
18999         instead of error for warnings.
19000         (main): Use inform for comparison messages.  Use warning for
19001         message about unused linker input.
19002         (error): Increment error_count.  Print "error: ".
19003         * gcc.h (fatal): Change to fatal_error.
19004         (warning): Declare.
19005         * config/darwin-driver.c (darwin_default_min_version): Use warning
19006         instead of fprintf for warnings.
19007         * cppspec.c (lang_specific_driver): Use fatal_error instead of fatal.
19008
19009 2010-05-28  Julian Brown  <julian@codesourcery.com>
19010
19011         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
19012         (*thumb2_addsi3_compare0_scratch): New.
19013         * config/arm/constraints.md (Pv): New.
19014         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
19015         for ARM mode only.
19016         (*addsi3_compare0_scratch): Likewise.
19017
19018 2010-05-28  Jan Hubicka  <jh@suse.cz>
19019
19020         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
19021         check.
19022         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
19023         only on local statics.
19024
19025 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
19026
19027         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
19028
19029 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
19030
19031         PR bootstrap/44314
19032         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
19033         (OPTION_GLIBC): Define.
19034
19035 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
19036
19037         PR debug/41048
19038         * dwarf2out.c (double_int_type_size_in_bits): New function.
19039         (round_up_to_align): Change first argument and return value to
19040         double_int.
19041         (field_byte_offset): Work internally on double_ints.
19042
19043         PR target/43636
19044         * builtins.c (expand_movstr): Use a temporary pseudo instead
19045         of target even when target is not NULL and not const0_rtx, but
19046         fails movstr predicate.
19047         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
19048
19049 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
19050
19051         * final.c (rest_of_clean_state): Use %m in errors instead of
19052         strerror (errno).
19053         * gengtype.c (read_input_list, close_output_files): Use xstrerror
19054         instead of strerror.
19055         * toplev.c (process_options): Use %m in errors instead of strerror
19056         (errno).
19057         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
19058         (errno).
19059
19060 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
19061
19062         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
19063         (ix86_canonical_va_list_type): Make static.  Add declaration.
19064         (ix86_enum_va_list): Make static.  Reindent.
19065         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
19066         (ix86_canonical_va_list_type): Ditto.
19067         (ix86_enum_va_list): Ditto.
19068
19069 2010-05-28  Richard Guenther  <rguenther@suse.de>
19070
19071         * lto-wrapper.c (run_gcc): With -save-temps generate a
19072         user-visible ltrans filename.  Fixup ltrans unit numbering.
19073
19074 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
19075
19076         * c-common.c (c_common_nodes_and_builtins): Replace use
19077         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
19078         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
19079         to ix86_enum_va_list.
19080         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
19081         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
19082         (TARGET_ENUM_VA_LIST_P): Add hook description.
19083         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
19084         * target.h (gcc_target): Add enum_va_list hook.
19085
19086         PR bootstrap/44299
19087         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
19088         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
19089         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
19090
19091 2010-05-28  Alan Modra  <amodra@gmail.com>
19092
19093         PR target/44266
19094         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
19095         emit_library_call machinery to set up __tls_get_addr calls.
19096
19097 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19098
19099         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
19100
19101 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
19102
19103         Revert fix for PR c++/44188
19104         * c-common.c (is_typedef_decl): Revert the moving of  this
19105         definition ...
19106         * tree.c (is_typedef_decl): ... here.
19107         (typdef_variant_p): Revert the moving of this  definition
19108         here from cp/tree.c.
19109         * c-common.h (is_typedef_decl): Revert the moving of this
19110         declaration ...
19111         * tree.h (is_typedef_decl): ... here.
19112         (typedef_variant_p): Revert the moving of this  declaration here
19113         from cp/cp-tree.h
19114         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
19115         (gen_tagged_type_die): Revert the splitting out of ...
19116         (gen_type_die_with_usage): ... this function. Revert the anonymous
19117         tagged type handling.
19118         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
19119         typedefs naming anonymous tagged types.
19120
19121 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
19122
19123         * config/rs6000/rs6000-modes.def (PSImode): Delete.
19124
19125 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
19126
19127         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
19128         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
19129         throughout.
19130         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
19131         "xer" to "ca".
19132         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
19133         XER_REGS to CA_REGS throughout.
19134         * config/rs6000/rs6000.h: Same.
19135         (ADDITIONAL_REGISTER_NAMES): Add "xer".
19136         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
19137         that mode_iterator "P" is the size for arithmetic carries as well.
19138         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
19139
19140 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
19141
19142         PR bootstrap/44255
19143         * combine.c (struct rtx_subst_pair): Define unconditionally.
19144         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
19145         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
19146         Call make_compound_operation on pair->to.
19147         (propagate_for_debug): Don't call make_compound_operation here.
19148         Always use simplify_replace_fn_rtx.
19149
19150 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
19151
19152         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
19153         * config/xtensa/xtensa.c (override_options): Check
19154           TARGET_FORCE_NO_PIC and set flag_pic.
19155         * config/xtensa/xtensa.opt: Document -mforce-no-pic
19156
19157 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
19158
19159         PR bootstrap/44299
19160         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
19161         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
19162
19163 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
19164
19165         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
19166         toplev.h.
19167         * diagnostic.c: Don't include toplev.h.
19168         (progname): Define.  Moved from toplev.c.
19169         (seen_error): New function.
19170         * diagnostic.h: Include diagnostic-core.h.
19171         (diagnostic_t, emit_diagnostic): Don't declare here.
19172         * toplev.c (progname): Move to toplev.c.
19173         (emit_debug_global_declarations, compile_file, finalize,
19174         do_compile, toplev_main): Use seen_error.
19175         * toplev.h: Include diagnostic-core.h.
19176         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
19177         internal_error, warning, warning_at, error, error_n, error_at,
19178         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
19179         verbatim, fnotice, progname): Move to diagnostic-core.h.
19180         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
19181         (expand_builtin_expect): Use seen_error.
19182         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
19183         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
19184         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
19185         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
19186         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
19187         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
19188         errorcount for errors.
19189         * c-opts.c (c_common_finish): Use seen_error.
19190         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
19191         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
19192         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
19193         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
19194         (get_coverage_counts): Use seen_error.
19195         * dwarf2out.c (dwarf2out_finish): Use seen_error.
19196         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
19197         gimplify_body): Use seen_error.
19198         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
19199         * ipa-pure-const.c (gate_pure_const): Use seen_error.
19200         * ipa-reference.c (gate_reference): Use seen_error.
19201         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
19202         * lambda-code.c: Include diagnostic-core.h instead of
19203         diagnostic.h.
19204         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
19205         * lto-compress.c: Include diagnostic-core.h instead of
19206         diagnostic.h.
19207         * lto-section-in.c: Include diagnostic-core.h instead of
19208         diagnostic.h.
19209         * lto-streamer-out.c: Include diagnostic-core.h instead of
19210         diagnostic.h.
19211         * lto-streamer.c: Include diagnostic-core.h instead of
19212         diagnostic.h.
19213         (gate_lto_out): Use seen_error.
19214         * matrix-reorg.c: Include diagnostic-core.h instead of
19215         diagnostic.h.
19216         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
19217         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
19218         (gate_expand_omp, lower_omp_1): Use seen_error.
19219         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
19220         (rest_of_decl_compilation, rest_of_type_compilation,
19221         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
19222         * tree-cfg.c (label_to_block_fn): Use seen_error.
19223         * tree-inline.c (optimize_inline_calls): Use seen_error.
19224         * tree-mudflap.c (mudflap_finish_file): Use
19225         seen_error.
19226         * tree-optimize.c (gate_all_optimizations,
19227         gate_all_early_local_passes, gate_all_early_optimizations): Use
19228         seen_error.
19229         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
19230         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
19231         (varpool_remove_unreferenced_decls,
19232         varpool_assemble_pending_decls): Use seen_error.
19233         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
19234         (TOPLEV_H, DIAGNOSTIC_H): Update.
19235         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
19236         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
19237         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
19238         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
19239         coverage.o, lambda-code.o): Update dependencies.
19240
19241 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
19242
19243         PR c++/44188
19244         * c-common.c (is_typedef_decl): Move this definition ...
19245         * tree.c (is_typedef_decl): ... here.
19246         (typdef_variant_p): Move definition here from cp/tree.c.
19247         * c-common.h (is_typedef_decl): Move this declaration ...
19248         * tree.h (is_typedef_decl): ... here.
19249         (typedef_variant_p): Move declaration here from cp/cp-tree.h
19250         * dwarf2out.c (is_naming_typedef_decl): New function.
19251         (gen_tagged_type_die): Split out of ...
19252         (gen_type_die_with_usage): ... this function. When an anonymous
19253         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
19254         is emitted for the typedef.
19255         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
19256         anonymous tagged types.
19257
19258 2010-05-27  Jason Merrill  <jason@redhat.com>
19259
19260         * print-tree.c (debug_vec_tree): New fn.
19261         (print_vec_tree): New fn.
19262         * tree.h: Declare them.
19263         * gdbinit.in (pvt): New command.
19264
19265         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
19266
19267         * gdbinit.in (pdd): New command.
19268
19269 2010-05-27  Jan Hubicka  <jh@suse.cz>
19270
19271         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
19272         (update_caller_keys): Return early if there are no callers;
19273         only update fibheap when decresing the key.
19274         (update_callee_keys): Avoid recursion.
19275         (decide_inlining_of_small_functions): When badness does not match;
19276         re-insert into fibheap.
19277
19278 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
19279
19280         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
19281         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
19282         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
19283         (ALL_HOST_OBJS): Now a union of the above two.
19284         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
19285         all files in ALL_HOST_FRONTEND_OBJS.
19286         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
19287
19288         * c-common.c: Pretend to be a backend file by undefining
19289         IN_GCC_FRONTEND (still need rtl.h here).
19290
19291 2010-05-27  Jan Hubicka  <jh@suse.cz>
19292
19293         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
19294         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
19295
19296 2010-05-27  Jan Hubicka  <jh@suse.cz>
19297
19298         * sched-ebb.c: Rename struct deps to struct deps_desc.
19299         * ddg.c: Likewise.
19300         * sel-sched-ir.c: Likewise.
19301         * sched-deps.c: Likewise.
19302         * sched-int.h: Likewise.
19303         * sched-rgn.c: Likewise.
19304
19305 2010-05-27  Jon Beniston  <jon@beniston.com>
19306
19307         PR 43726
19308         * config/lm32/lm32.h: Remove definition of
19309         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
19310
19311 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
19312
19313         PR lto/44230
19314         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
19315
19316 2010-05-27  Richard Guenther  <rguenther@suse.de>
19317
19318         PR tree-optimization/44284
19319         * tree-vect-stmts.c (vectorizable_assignment): Handle
19320         sign-changing conversions as simple copy.
19321
19322 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19323
19324         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
19325         Bionic C library.
19326         (__gthread_active_p): Check for pthread_create if compiling against
19327         Bionic C library.
19328
19329 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19330
19331         Support compilation for Android platform.  Reimplement -mandroid.
19332
19333         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
19334         (*android*): Set ANDROID_DEFAULT.
19335         (arm*-*-linux*): Include linux-android.h.
19336         (arm*-*-eabi*): Don't include previous -mandroid implementation.
19337         * config/arm/eabi.h: Remove, move Android-specific parts ...
19338         * config/linux-android.h: ... here.  New file.
19339         * config/arm/eabi.opt: Rename to ...
19340         * config/linux-android.opt: ... this.
19341         (mandroid): Allow -mno-android option.  Initialize based on
19342         ANDROID_DEFAULT.
19343         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
19344         Move logic to corresponding LINUX_TARGET_* macros.
19345         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
19346         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
19347         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
19348         Android definitions.
19349         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
19350         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
19351         Document.
19352
19353 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
19354
19355         Add support for Bionic C library
19356
19357         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
19358         macro.
19359         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
19360         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
19361
19362         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
19363         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
19364         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
19365         to support multiple C libraries.  Handle Bionic.
19366         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
19367         (BIONIC_DYNAMIC_LINKER64): Define.
19368         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
19369         Update.
19370         (TARGET_HAS_SINCOS): Enable for Bionic.
19371
19372         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
19373         the last option specified on command line take effect.
19374         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
19375         (mbionic): New.
19376         (mglibc, muclibc): Update.
19377
19378         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
19379         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
19380         DEFAULT_LIBC.
19381
19382         * doc/invoke.texi (-mglibc, -muclibc): Update.
19383         (-mbionic): Document.
19384
19385 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19386
19387         * c-common.h (c_register_addr_space): Add prototype.
19388         (ADDR_SPACE_KEYWORD): Remove.
19389         * c-common.c (c_register_addr_space): New function.
19390         (c_addr_space_name): Reimplement.
19391         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
19392
19393         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
19394         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
19395
19396         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
19397         Remove TARGET_ADDR_SPACE_KEYWORDS.
19398
19399 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
19400
19401         * input.c: New file.
19402         * input.h (main_input_filename): Move declaration to toplev.h.
19403         * toplev.c (input_location, line_table): Move to input.c
19404         * toplev.h (main_input_filename): Move declaration from input.h.
19405         * tree.c (expand_location): Move to input.c.
19406         * Makefile.in (OBJS-common): Add input.o.
19407         (input.o): Add dependencies.
19408
19409 2010-05-27  Richard Guenther  <rguenther@suse.de>
19410
19411         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
19412         for non-existant files.
19413         (fork_execute): Mark args_name file as deleted.
19414
19415 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
19416
19417         PR bootstrp/44287
19418         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
19419         (narrow_signed_type): Likewise.
19420
19421 2010-05-26  Jan Hubicka  <jh@suse.cz>
19422
19423         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
19424         edge only when checking is enabled; check using former_clone_of;
19425         check inline clones too.
19426         (cgraph_materialize_clone): Record former_clone_of pointer.
19427         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
19428         combining redirections; dump args_to_skip bitmap
19429         (cgraph_materialize_all_clones): Do no redirection here.
19430         * ipa-inline.c (inline_transform): Do redirection here.
19431         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
19432         cheking only).
19433
19434 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
19435
19436         * config/avr/avr-c.c: Do not include regs.h.
19437         Include cpplib.h for cpp_define and tree.h for c-common.h.
19438         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
19439         * config/avr/t-avr: Fix dependencies for avr-c.o.
19440
19441 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
19442
19443         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
19444         string instead of SYMBOL_REF rtx.
19445         * rtl.h (set_stack_check_libfunc): Move prototype from here...
19446         * libfuncs.h: ...to here.  Adjust for explow.c change.
19447
19448 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
19449
19450         * pretty-print.c: Don't include ggc.h.
19451         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
19452         (identifier_to_locale): Use them for allocation.
19453         * pretty-print.h (identifier_to_locale_alloc,
19454         identifier_to_locale_free): Declare.
19455         * toplev.c (alloc_for_identifier_to_locale): New.
19456         (general_init): Set identifier_to_locale_alloc and
19457         identifier_to_locale_free.
19458         * Makefile.in (pretty-print.o): Update dependencies.
19459
19460 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
19461
19462         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
19463         pointer types if they have different alignment or mode.
19464
19465 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
19466
19467         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
19468         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
19469         * config/sparc/sparc-protos.h (function_value): Remove declaration.
19470         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
19471         sparc_function_value_regno_p): New functions.
19472         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
19473         TARGET_FUNCTION_VALUE_REGNO_P): Define.
19474         (function_value): Rename to...
19475         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
19476         argument to 'outgoing'.
19477         (function_arg_record_value, function_arg_union_value,
19478         function_arg_vector_value): Update comment.
19479
19480 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
19481
19482         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
19483         (fde_needed_for_eh_p): New predicate.
19484         (output_call_frame_info): Use it throughout to decide whether FDEs
19485         are needed for EH purpose.
19486         (dwarf2out_begin_prologue): Reorder assignments.
19487
19488 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
19489
19490         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
19491         special case loop->header.
19492         (is_predicated): New.
19493         (if_convertible_loop_p): Call it.
19494
19495 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
19496
19497         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
19498         iterator in parameter.  Do not generate code during the analysis.
19499         (tree_if_convert_cond_stmt): Removed.
19500         (tree_if_convert_stmt): Removed.
19501         (predicate_bbs): New.
19502         (if_convertible_loop_p): Call predicate_bbs.
19503         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
19504         now contains all the analysis part.
19505
19506 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
19507
19508         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
19509         statements in the analysis part.
19510         (tree_if_convert_stmt): Update comment.
19511         (remove_conditions_and_labels): New.
19512         (combine_blocks): Call remove_conditions_and_labels.
19513         (tree_if_conversion): Update comment.
19514
19515 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
19516
19517         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
19518         than 2 predecessors or more than 2 successors.
19519
19520 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
19521
19522         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
19523         of loops in which the data dependence analysis fails.
19524
19525 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
19526
19527         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
19528         CDI_POST_DOMINATORS.
19529         (tree_if_conversion): Same.
19530
19531 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
19532
19533         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
19534
19535 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
19536
19537         * tree-if-conv.c: Update copyright years.  Fix comments.
19538         Fix indentation.
19539
19540 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
19541
19542         * builtin-types.def (BT_INT128): New primitive type.
19543         (BT_UINT128): Likewise.
19544         * c-common.c (c_common_r): Add __int128 keyword.
19545         (c_common_type_for_size): Handle __int128.
19546         (c_common_type_for_mode): Likewise.
19547         (c_common_signed_or_unsigned_type): Likewise.
19548         (c_common_nodes_and_builtins): Add builtin type
19549         if target supports 128-bit integer scalar.
19550         * c-common.h (enum rid): Add RID_INT128.
19551         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
19552         if target supports 128-bit integer scalar.
19553         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
19554         (finish_declspecs): Likewise.
19555         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
19556         (c_token_starts_declspecs): Likewise.
19557         (c_parser_declspecs): Likewise.
19558         (c_parser_attributes): Likewise.
19559         (c_parser_objc_selector): Likewise.
19560         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
19561         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
19562         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
19563         * tree.c (make_or_reuse_type): Likewise.
19564         (make_unsigned_type): Likewise.
19565         (build_common_tree_nodes_2): Likewise.
19566         * tree.h (enum integer_type_kind): Add itk_int128 and
19567         itk_unsigned_int128.
19568         (int128_integer_type_node): New define.
19569         (int128_unsigned_type_node): New define.
19570         * doc/extend.texi: Add documentation about __int128 type.
19571
19572 2010-05-26  Richard Guenther  <rguenther@suse.de>
19573
19574         * tree-ssa-sccvn.c (copy_nary): Adjust.
19575         (copy_phis): Rename to ...
19576         (copy_phi): ... this.  Adjust.
19577         (copy_references): Rename to ...
19578         (copy_reference): ... this.  Adjust.
19579         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
19580         result into the valid table.
19581
19582 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
19583
19584         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
19585         insn-config.h, insn-codes.h, recog.h, and optabs.h.
19586
19587 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
19588
19589         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
19590
19591 2010-05-26  Richard Guenther  <rguenther@suse.de>
19592
19593         * opts.c (common_handle_option): Handle OPT_Ofast.
19594
19595 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
19596
19597         * diagnostic.c: Don't include opts.h.
19598         (permissive_error_option): Define.
19599         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
19600         for classify_diagnostic.  Don't use memset for
19601         classify_diagnostic.  Initialize new and recently added fields.
19602         (diagnostic_classify_diagnostic): Use context->n_opts instead of
19603         N_OPTS.
19604         (diagnostic_report_diagnostic): Pass context parameter to
19605         diagnostic_report_warnings_p.  Use option_enabled and option_name
19606         hooks from context.
19607         (emit_diagnostic): Use permissive_error_option.
19608         (permerror): Likewise.
19609         * diagnostic.h: Don't include options.h.
19610         (struct diagnostic_context): Add n_opts, opt_permissive,
19611         inhibit_warnings, warn_system_headers, option_enabled and
19612         option_name fields.  Change classify_diagnostic to a pointer.
19613         * opts-diagnostic.h: New file.
19614         * opts.c: Include opts-diagnostic.h.
19615         (common_handle_option): Set global_dc fields for -Wfatal-errors,
19616         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
19617         (option_name): New function.
19618         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
19619         (c_common_handle_option): Set global_dc->permissive for
19620         -fpermissive.
19621         * c-common.c (c_cpp_error): Save and restore
19622         global_dc->warn_system_headers, not variable warn_system_headers.
19623         * toplev.c: Include opts-diagnostic.h.
19624         (general_init): Update call to diagnostic_initialize.  Set
19625         global_dc->show_column, global_dc->option_enabled and
19626         global_dc->option_name.
19627         (process_options): Don't set global_dc fields here.
19628         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
19629         (diagnostic.o, opts.o, toplev.o): Update dependencies.
19630
19631 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
19632
19633         * config/picochip/picochip.md (movsi): Split a movsi from a
19634         const after reload.
19635
19636 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
19637
19638         * ggc-zone.c: Update copyright year.
19639         (poison_region): Mark memory for Valgrind as undefined before
19640         memset () call and inaccessible afterwards.
19641         (ggc_pch_total_size): Change type of i to int.
19642
19643 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
19644
19645         * ggc-common.c (ggc_free_overhead): Allow empty slot.
19646
19647 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
19648
19649         * ggc-common.c: Update copyright year.
19650         (ggc_rlimit_bound): Remove prototype.  Compile only if
19651         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
19652         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
19653         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
19654         (ggc_min_heapsize_heuristic): Likewise.
19655
19656 2010-05-26  Richard Guenther  <rguenther@suse.de>
19657
19658         PR rtl-optimization/44164
19659         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
19660         no-common access-path disambiguation.
19661         (indirect_ref_may_alias_decl_p): Adjust.
19662         (indirect_refs_may_alias_p): Likewise.
19663         (refs_may_alias_p_1): Likewise.
19664
19665 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
19666
19667         * c-typeck.c: Do not include expr.h.
19668
19669 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
19670
19671         * rtl.h (decl_default_tls_model): Move prototype from here...
19672         * output.h: ...to here.
19673         * c-decl.c: Do not include rtl.h.
19674         * c-pragma.c: Likewise.
19675         * c-parser.c: Likewise.
19676         * c-gimplify.c: Likewise.  And also not hard-reg-set.
19677         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
19678         FIXME note for it.  Add a FIXME note for expr.h.
19679         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
19680         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
19681         defined.
19682
19683 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
19684
19685         PR target/44199
19686         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
19687         or total_size is larger than red zone size for non-V4 ABI, emit a
19688         stack_tie resp. frame_tie insn before stack pointer restore.
19689         * config/rs6000/rs6000.md (frame_tie): New insn.
19690
19691 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
19692
19693         * function.h (struct function): Add can_throw_non_call_exceptions bit.
19694         * lto-streamer-in.c (input_function): Stream it in.
19695         * lto-streamer-out.c (output_function): Stream it out.
19696         * function.c (allocate_struct_function): Set it.
19697         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
19698         for flag_non_call_exceptions.
19699         * cfgbuild.c (control_flow_insn_p): Likewise.
19700         (make_edges): Likewise.
19701         * cfgexpand.c (expand_stack_alignment): Likewise.
19702         * combine.c (distribute_notes): Likewise.
19703         * cse.c (cse_extended_basic_block): Likewise.
19704         * except.c (insn_could_throw_p): Likewise.
19705         * gcse.c (simple_mem): Likewise.
19706         * ipa-pure-const.c (check_call): Likewise.
19707         (check_stmt ): Likewise.
19708         * lower-subreg.c (lower-subreg.c): Likewise.
19709         * optabs.c (emit_libcall_block): Likewise.
19710         (prepare_cmp_insn): Likewise.
19711         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
19712         * postreload.c (rest_of_handle_postreload): Likewise.
19713         * reload1.c (reload_as_needed): Likewise.
19714         (emit_input_reload_insns): Likewise.
19715         (emit_output_reload_insns): Likewise.
19716         (fixup_abnormal_edges): Likewise.
19717         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
19718         * store-motion.c (find_moveable_store): Likewise.
19719         * tree-eh.c (stmt_could_throw_p): Likewise.
19720         (tree_could_throw_p): Likewise.
19721         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
19722         * config/arm/arm.c (arm_expand_prologue): Likewise.
19723         (thumb1_expand_prologue): Likewise.
19724         * config/rx/rx.md (cbranchsf4): Likewise.
19725         (cmpsf): Likewise.
19726         * config/s390/s390.c (s390_emit_prologue): Likewise.
19727         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
19728         (inline_forbidden_into_p): New predicate.
19729         (expand_call_inline): Use it to forbid inlining.
19730         (tree_can_inline_p): Likewise.
19731
19732 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
19733
19734         * config/i386/i386-c.c: Do not include rtl.h.
19735         * config/i386/t-i386: Update dependencies.
19736
19737 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
19738
19739         * attribs.c: Do not include rtl.h.
19740         * Makefile.in: Update dependencies.
19741
19742 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
19743
19744         * double-int.h (double_int_and): New.
19745         * combine.c (try_combine): Clean up, use double_int_* and
19746         immed_double_int_const functions.
19747
19748 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19749
19750         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
19751         stderr to /dev/null instead of grep -q.
19752         * configure: Regenerate.
19753
19754 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
19755
19756         * Makefile.in (EXCEPT_H): Fix typo.
19757
19758 2010-05-25  Vladimir Makarov  <vmakarov@redhat.com>
19759
19760         * ira-build.c (update_conflict_hard_reg_costs): New.
19761         (ira_build): Call update_conflict_hard_reg_costs.
19762
19763 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
19764
19765         PR debug/41371
19766         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
19767         ENABLE_CHECKING.
19768         (intersect_loc_chains): Walk the s2var's loc_chain together
19769         with s1node chain as long as the locations are equal, don't
19770         call find_loc_in_1pdv in that case.
19771
19772         PR debug/42801
19773         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
19774         (copy_bind_expr): ... instead of here.
19775         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
19776         if the block hasn't been remapped.
19777         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
19778         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
19779
19780 2010-05-25  Richard Guenther  <rguenther@suse.de>
19781
19782         PR middle-end/44069
19783         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
19784         out-of-bounds array accesses.
19785
19786 2010-05-25  Richard Guenther  <rguenther@suse.de>
19787
19788         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
19789         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
19790         (run_gcc): Re-organize to make cleanup easier.
19791
19792 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
19793
19794         * config/s390/s390.c (optimization_options): Fix and move the
19795         flag_prefetch_loop_arrays override ...
19796         (override_options): ... here.
19797
19798 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
19799
19800         * diagnostic.c: Don't include plugin.h.
19801         (diagnostic_report_diagnostic): Don't handle plugins specially
19802         here.  Pass context to internal_error callback.
19803         * diagnostic.h (struct diagnostic_context): Add context parameter
19804         to internal_error callback.
19805         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
19806         * plugin.h (struct diagnostic_context): Declare.
19807         (warn_if_plugins, plugins_internal_error_function): Declare.
19808         * toplev.c (general_init): Set global_dc->internal_error.
19809         * Makefile.in (diagnostic.o): Update dependencies.
19810
19811 2010-05-25  Iain Sandoe  <iains@gcc.gnu.org>
19812
19813         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
19814         * config/rs6000/t-darwin64: New.
19815         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
19816         build crt2.
19817
19818 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
19819
19820         PR 44203
19821         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
19822         match the original (and intended) behaviour before r159557.  This
19823         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
19824         in two ways.
19825
19826 2010-05-25  Richard Guenther  <rguenther@suse.de>
19827
19828         * doc/invoke.texi: Document -Ofast.
19829         * target.h (struct gcc_target): Add handle_ofast.
19830         * target-def.h (TARGET_HANDLE_OFAST): Add.
19831         (TARGET_INITIALIZER): Adjust.
19832         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
19833         * common.opt (Ofast): Add.
19834
19835 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
19836
19837         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
19838         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
19839
19840 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
19841
19842         PR target/43610
19843         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
19844         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
19845         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
19846         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
19847
19848 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
19849
19850         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
19851         DW_OP_minus with negated offset instead of DW_OP_plus.
19852         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
19853
19854 2010-05-25  Wei Guozhi  <carrot@google.com>
19855
19856         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
19857         tst instruction and a new alternative.
19858         * config/arm/constraints.md (Pu): New constraint.
19859
19860 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
19861
19862         * function.c (assign_stack_local_1): Initialize variable
19863         to avoid warning when bootstrapping at -O3.
19864
19865 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
19866
19867         * configure.ac (all_lang_makefiles): Remove everything related to it.
19868         * configure: Regenerate.
19869         * Makefile.in: Fix reference to ada Make-lang.in.
19870         Remove support for LANG_MAKEFILES.
19871
19872 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
19873             Sandra Loosemore  <sandra@codesourcery.com>
19874
19875         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
19876         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
19877         description.  Add arm_neon_fp16_ok.
19878         (Add Options): Add arm_neon and arm_neon_fp16.
19879
19880 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
19881
19882         * diagnostic.c: Don't include flags.h.
19883         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
19884         context parameters.  Check flags in the context passed as a parameter.
19885         (diagnostic_build_prefix): Add context parameter.  Check
19886         show_column flag in context.
19887         (diagnostic_action_after_output): Check fatal_errors flag in context.
19888         (diagnostic_report_current_module): Check show_column flag in context.
19889         (default_diagnostic_starter): Update call to
19890         diagnostic_build_prefix.
19891         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
19892         (emit_diagnostic): Pass context to permissive_error_kind.
19893         (permerror): Pass context to permissive_error_kind.
19894         * diagnostic.h (struct diagnostic_context): Add show_column,
19895         pedantic_errors, permissive and fatal_errors fields.
19896         (diagnostic_build_prefix): Update prototype.
19897         * langhooks.c
19898         * toplev.c (process_options): Set flags in global_dc from
19899         flag_show_column, flag_pedantic_errors, flag_permissive,
19900         flag_fatal_errors.
19901         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
19902         to diagnostic_build_prefix.
19903         * Makefile.in (diagnostic.o): Update dependencies.
19904
19905 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
19906
19907         * config/i386/ia32intrin.h (__crc32q): Define only if
19908         __SSE4_2__ is defined.
19909
19910 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
19911
19912         PR target/44132
19913         PR middle-end/43602
19914         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
19915         DECL_VISIBILITY_SPECIFIED.
19916         (emutls_decl): Set DECL_PRESERVE_P and copy
19917         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
19918         (emutls_finalize_control_var): New callback.
19919         (emutls_finish): Finalize emutls control variables.
19920         * toplev.c (compile_file): Move the call to emutls_finish ()
19921         before varpool_assemble_pending_decls ().
19922
19923 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
19924
19925         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
19926         added to the preprocessor condition.
19927
19928 2010-05-24  Paul Brook  <paul@codesourcery.com>
19929
19930         * gengtype-lex.l: Add HARD_REG_SET.
19931         * expr.c (expand_expr_real_1): Record writes to hard registers.
19932         * function.c (rtl_data): Add asm_clobbers.
19933         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
19934         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
19935         Use crtl->asm_clobbers.
19936
19937 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19938
19939         * doc/makefile.texi (Makefile): Mention stages 'profile'
19940         and 'feedback' for profiledbootstrap.
19941
19942 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
19943
19944         PR target/44245
19945         * config/i386/i386.c (def_builtin): Properly check
19946         OPTION_MASK_ISA_64BIT.
19947
19948 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
19949
19950         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
19951         typedefs with different but compatible types.  Allow duplicate
19952         typedefs with the same type except for pedantic non-C1X, but give
19953         warning for variably modified types.
19954         * c-typeck.c (tagged_types_tu_compatible_p,
19955         function_types_compatible_p, type_lists_compatible_p,
19956         comptypes_internal): Add parameter different_types_p; set
19957         *different_types_p for different but compatible types.  All
19958         callers changed.
19959         (comptypes_check_different_types): New.
19960         * c-tree.h (comptypes_check_different_types): Declare.
19961
19962 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
19963
19964         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
19965         * jump.c: Include basic-block.h.
19966         * profile.c: Likewise.
19967         * tree-profile.c: Likewise.
19968         * coverage.c: Likewise.
19969         * basic-block.h (optimize_function_for_size_p): Move to function.h.
19970         (optimize_function_for_speed_p): Likewise.
19971         * function.h (optimize_function_for_size_p,
19972         optimize_function_for_speed_p): Moved here from basic-block.h.
19973         * Makefile.in: Update dependencies.
19974
19975 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
19976
19977         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
19978         before calling make; allow override through $MAKE.
19979         * doc/invoke.texi (Optimize Options): Document override.
19980
19981 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
19982
19983         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
19984         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
19985         (rs6000_mode_dependent_address_ptr): Make static.
19986         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
19987         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
19988         Remove.
19989
19990 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
19991
19992         PR target/43869
19993         * config/i386/i386.c: Make sure that the correct regparm is passed.
19994
19995 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
19996
19997         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
19998         * sbitmap.c: ...to here to internalize sbitmap element access.
19999         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
20000         Explain why basic-block.h is included.
20001         * function.h: Include tm.h for CUMULATIVE_ARGS.
20002         * Makefile.in: Update dependencies.
20003
20004 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
20005
20006         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
20007         New core types.
20008         * sbitmap.h (struct sbitmap_def): Do not typedef here.
20009         * sbitmap.c: Include sbitmap.h.
20010         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
20011         hard-reg-set.h.  Split everything related to regsets out from here...
20012         * regset.h: ...to here.  New file.
20013         * df.h: Include regset.h and sbitmap.h.
20014         * tree-flow.h: Likewise.
20015         * cfgloop.h: Likewise.
20016         * except.h: Do not include sbitmap.h.  Include hashtab.h.
20017         * cgraph.h: Include vec.h and function.h.
20018         * reload.h (struct insn_chain): Change types of live_throughout
20019         and dead_or_set from regset_head to bitmap_head.
20020         (compute_use_by_pseudos): Be defined also if regset.h is not included.
20021         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
20022         spilled_regs from regset_head to bitmap_head to avoid dependency
20023         in regset.h.
20024         * sel-sched-ir.h: Include regset.h.
20025         * reload.c: Include df.h before reload.h.
20026         * caller-save.c: Likewise.
20027         * reload1.c: Likewise.
20028         * ira.c: Likewise.
20029         (mark_elimination): Update type of r to bitmap, consistent with
20030         DF_LR_IN.
20031         * dominance.c: Include bitmap.h.
20032         * modulo-sched.c: Include df.h.
20033         * cfganal.c: Include bitmap.h and sbitmap.h.
20034         * cfgbuild.c: Include sbitmap.h.
20035         * lcm.c: Include sbitmap.h.
20036         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
20037         * domwalk.c: Include sbitmap.h, exclude ggc.h.
20038         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
20039         * cselib.c: Include bitmap.h.
20040         * tree-optimize.c: Include regset.h.
20041         * stmt.c: Include bitmap.h.
20042         * Makefile.in: Update dependencies.
20043
20044 2010-05-22  Jan Hubicka  <jh@suse.cz>
20045
20046         * cgraph.h (struct varpool_node): Add same_comdat_group.
20047         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
20048         pointer.
20049         (output_varpool): Update call of lto_output_varpool_node.
20050         (input_varpool): Read same_comdat_group pointer.
20051         (input_varpool_1): Fixup same_comdat_group pointer.
20052         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
20053         group is needed, all are.
20054         * varpool.c (varpool_remove_node): Remove node from same comdat group
20055         linklist too.
20056         (varpool_analyze_pending_decls): Walk same comdat groups.
20057
20058 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
20059
20060         * rtl.h (union rtunion_def): Remove rt_bit member.
20061         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
20062         * print-rtl (print_rtx): Do not print the member.
20063         * gengtype.c (adjust_field_rtx_def): Do not handle it.
20064         * gengenrtl.c (type_from_format): Likewise.
20065         (accessor_from_format): Likewise.
20066
20067 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
20068
20069         * dbgcnt.c: Include toplev.h instead of errors.h.
20070         * ira-emit.c: Don't include errors.h.
20071         * ira.c: Include toplev.h instead of errors.h.
20072         * lto-compress.c: Include toplev.h instead of errors.h.
20073         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
20074         ira.o, dbgcnt.o): Update dependencies.
20075
20076 2010-05-22  Richard Guenther  <rguenther@suse.de>
20077
20078         * gimple.c (gimple_types_compatible_p): Check type qualifications
20079         before merging pointer to complete and pointer to incomplete type.
20080         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
20081         we use our own resolution algorithm.  The gold linker plugin
20082         doesn't do the job we want it to do here.
20083
20084 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
20085
20086         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
20087         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
20088         (sparc_mode_dependent_address_p): New function.
20089
20090 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
20091
20092         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
20093
20094         * timevar.c: Do not include any core headers.
20095         (timevar_print): De-i18n-ize.
20096         (print_time): Likewise.
20097         * timevar.h (timevar_push, timevar_pop): Make inline functions.
20098
20099 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
20100
20101         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
20102         langhooks-def.h.
20103         (diagnostic_initialize): Initialize x_data not last_function.
20104         (diagnostic_report_current_function): Move to tree-diagnostic.c.
20105         (default_diagnostic_starter): Call
20106         diagnostic_report_current_module not
20107         diagnostic_report_current_function.
20108         (diagnostic_report_diagnostic): Initialize x_data not
20109         abstract_origin.
20110         (verbatim): Likewise.
20111         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
20112         x_data.
20113         (struct diagnostic_context): Change last_function to x_data.
20114         (diagnostic_auxiliary_data): Replace with
20115         diagnostic_context_auxiliary_data and
20116         diagnostic_info_auxiliary_data.
20117         (diagnostic_last_function_changed, diagnostic_set_last_function,
20118         diagnostic_report_current_function): Move to tree-diagnostic.h.
20119         (print_declaration, dump_generic_node, print_generic_stmt,
20120         print_generic_stmt_indented, print_generic_expr,
20121         print_generic_decl, debug_c_tree, dump_omp_clauses,
20122         print_call_name, debug_generic_expr, debug_generic_stmt,
20123         debug_tree_chain, default_tree_printer): Move to
20124         tree-pretty-print.h.
20125         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
20126         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
20127         gimple-pretty-print.h.
20128         * pretty-print.c: Don't include tree.h
20129         (pp_base_format): Don't handle %K here.
20130         (pp_base_tree_identifier): Move to tree-pretty-print.c.
20131         * pretty-print.h (text_info): Change abstract_origin to x_data.
20132         (pp_tree_identifier, pp_unsupported_tree,
20133         pp_base_tree_identifier): Move to tree-pretty-print.h.
20134         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
20135         tree-pretty-print.h: New files.
20136         * tree-pretty-print.c: Include tree-pretty-print.h.
20137         (percent_K_format): New.  Moved from pretty-print.c.
20138         (pp_base_tree_identifier): Move from pretty-print.c.
20139         * c-objc-common.c: Include tree-pretty-print.h.
20140         (c_tree_printer): Handle %K here.
20141         * langhooks.c: Include tree-diagnostic.h.
20142         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
20143         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
20144         (default_tree_printer): Handle %K using percent_K_format.
20145         (general_init): Use default_tree_diagnostic_starter.
20146         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
20147         (free_lang_data): Use default_tree_diagnostic_starter.
20148         * c-pretty-print.c: Include tree-pretty-print.h.
20149         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
20150         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
20151         * dwarf2out.c: Include tree-pretty-print.h.
20152         * except.c: Include tree-pretty-print.h.
20153         * gimple-pretty-print.c: Include tree-pretty-print.h and
20154         gimple-pretty-print.h.
20155         * gimplify.c: Include tree-pretty-print.h.
20156         * graphite-poly.c: Include tree-pretty-print.h and
20157         gimple-pretty-print.h.
20158         * ipa-cp.c: Include tree-pretty-print.h.
20159         * ipa-inline.c: Include gimple-pretty-print.h.
20160         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
20161         * ipa-pure-const.c: Include gimple-pretty-print.h.
20162         * ipa-struct-reorg.c: Include tree-pretty-print.h and
20163         gimple-pretty-print.h.
20164         * ipa-type-escape.c: Include tree-pretty-print.h.
20165         * print-rtl.c: Include tree-pretty-print.h.
20166         * print-tree.c: Include gimple-pretty-print.h.
20167         * sese.c: Include tree-pretty-print.h.
20168         * tree-affine.c: Include tree-pretty-print.h.
20169         * tree-browser.c: Include tree-pretty-print.h.
20170         * tree-call-cdce.c: Include gimple-pretty-print.h.
20171         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
20172         * tree-chrec.c: Include tree-pretty-print.h.
20173         * tree-data-ref.c: Include tree-pretty-print.h and
20174         gimple-pretty-print.h.
20175         * tree-dfa.c: Include tree-pretty-print.h.
20176         * tree-if-conv.c: Include tree-pretty-print.h and
20177         gimple-pretty-print.h.
20178         * tree-inline.c: Include tree-pretty-print.h.
20179         * tree-into-ssa.c: Include tree-pretty-print.h and
20180         gimple-pretty-print.h.
20181         * tree-nrv.c: Include tree-pretty-print.h.
20182         * tree-object-size.c: Include tree-pretty-print.h and
20183         gimple-pretty-print.h.
20184         * tree-outof-ssa.c: Include tree-pretty-print.h and
20185         gimple-pretty-print.h.
20186         * tree-parloops.c: Include tree-pretty-print.h and
20187         gimple-pretty-print.h.
20188         * tree-predcom.c: Include tree-pretty-print.h and
20189         gimple-pretty-print.h.
20190         * tree-scalar-evolution.c: Include tree-pretty-print.h and
20191         gimple-pretty-print.h.
20192         * tree-sra.c: Include tree-pretty-print.h.
20193         * tree-ssa-address.c: Include tree-pretty-print.h.
20194         * tree-ssa-alias.c: Include tree-pretty-print.h.
20195         * tree-ssa-ccp.c: Include tree-pretty-print.h and
20196         gimple-pretty-print.h.
20197         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
20198         * tree-ssa-copy.c: Include tree-pretty-print.h and
20199         gimple-pretty-print.h.
20200         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
20201         * tree-ssa-dce.c: Include tree-pretty-print.h and
20202         gimple-pretty-print.h.
20203         * tree-ssa-dom.c: Include tree-pretty-print.h and
20204         gimple-pretty-print.h.
20205         * tree-ssa-dse.c: Include gimple-pretty-print.h.
20206         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
20207         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
20208         * tree-ssa-live.c: Include tree-pretty-print.h and
20209         gimple-pretty-print.h.
20210         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
20211         gimple-pretty-print.h.
20212         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
20213         gimple-pretty-print.h.
20214         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
20215         gimple-pretty-print.h.
20216         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
20217         gimple-pretty-print.h.
20218         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
20219         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
20220         * tree-ssa-operands.c: Include tree-pretty-print.h and
20221         gimple-pretty-print.h.
20222         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
20223         gimple-pretty-print.h.
20224         * tree-ssa-pre.c: Include tree-pretty-print.h and
20225         gimple-pretty-print.h.
20226         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
20227         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
20228         gimple-pretty-print.h.
20229         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
20230         gimple-pretty-print.h.
20231         * tree-ssa-sink.c: Include gimple-pretty-print.h.
20232         * tree-ssa-ter.c: Include tree-pretty-print.h and
20233         gimple-pretty-print.h.
20234         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
20235         * tree-ssa.c: Include tree-pretty-print.h and
20236         gimple-pretty-print.h.
20237         * tree-stdarg.c: Include gimple-pretty-print.h.
20238         * tree-switch-conversion.c: Include gimple-pretty-print.h.
20239         * tree-tailcall.c: Include tree-pretty-print.h and
20240         gimple-pretty-print.h.
20241         * tree-vect-data-refs.c: Include tree-pretty-print.h and
20242         gimple-pretty-print.h.
20243         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
20244         gimple-pretty-print.h.
20245         * tree-vect-loop.c: Include tree-pretty-print.h and
20246         gimple-pretty-print.h.
20247         * tree-vect-patterns.c: Include gimple-pretty-print.h.
20248         * tree-vect-slp.c: Include tree-pretty-print.h and
20249         gimple-pretty-print.h.
20250         * tree-vect-stmts.c: Include tree-pretty-print.h and
20251         gimple-pretty-print.h.
20252         * tree-vectorizer.c: Include tree-pretty-print.h.
20253         * tree-vrp.c: Include tree-pretty-print.h and
20254         gimple-pretty-print.h.
20255         * value-prof.c: Include tree-pretty-print.h and
20256         gimple-pretty-print.h.
20257         * var-tracking.c: Include tree-pretty-print.h.
20258         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
20259         (tree-diagnostic.o): New dependencies.
20260         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
20261         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
20262         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
20263         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
20264         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
20265         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
20266         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
20267         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
20268         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
20269         tree-ssa-address.o, tree-ssa-loop-niter.o,
20270         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
20271         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
20272         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
20273         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
20274         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
20275         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
20276         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
20277         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
20278         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
20279         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
20280         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
20281         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
20282         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
20283         tree-switch-conversion.o, var-tracking.o, value-prof.o,
20284         cfgexpand.o, pretty-print.o): Update dependencies.
20285
20286 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
20287
20288         * tree-ssa-structalias.c: Remove tm_p.h from include.
20289
20290 2010-05-21  Jeff Law  <law@redhat.com>
20291
20292         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
20293
20294 2010-05-21  Jason Merrill  <jason@redhat.com>
20295
20296         * tree-eh.c (cleanup_is_dead_in): New.
20297         (lower_try_finally): Don't generate a dead cleanup region.
20298         (lower_cleanup): Likewise.
20299
20300 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
20301
20302         PR debug/44223
20303         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
20304         unchain each use from the cyclic next_regno_use chain first.
20305
20306 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
20307
20308         * real: Do not include gmp.h, mpfr.h, and mpc.h.
20309         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
20310         (real_value_negate, real_value_abs): New prototypes.
20311         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
20312         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
20313         new include file for interface between MPFR and REAL_VALUE_TYPE.
20314         * real.c: Include realmpfr.h.
20315         (real_arithmetic2): Remove legacy function.
20316         (real_value_negate): New.
20317         (real_value_abs): New.
20318         (mfpr_from_real, real_from_mpfr): Move from here...
20319         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
20320         * builtins.c: Include realmpfr.h.
20321         * fold-const.c: Include realmpfr.h.
20322         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
20323         (fold_negate_const): Likewise.
20324         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
20325         * toplev.c: Include realmpfr.h.
20326         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
20327         and real_value_negate.
20328         * fixed-value.c (check_real_for_fixed_mode): Likewise.
20329         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
20330         (vfp3_const_double_index): Likewise.
20331         (arm_print_operand): Likewise.
20332         * Makefile.in: Update dependencies.
20333
20334 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
20335
20336         * config/s390/s390.c (override_options): Increase the default
20337         of max-completely-peel-times.
20338
20339 2010-05-21  Julian Brown  <julian@codesourcery.com>
20340             Mark Mitchell  <mark@codesourcery.com>
20341
20342         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
20343         sibling calls for Thumb-1.
20344         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
20345         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
20346         Thumb-2.
20347         (*call_insn, *call_value_insn): Don't use for Thumb-2.
20348         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
20349         for Thumb-2.
20350         (return): New expander.
20351         (*arm_return): New name for ARM return insn.
20352         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
20353
20354 2010-05-19  Joel Sherrill  <joel.sherrill@oarcorp.com>
20355
20356         * config.gcc (sparc64-*-rtems*): New target.
20357
20358 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
20359
20360         * tree.c (build_function_decl_skip_args): Fix grammar.
20361         (build_function_type_list_1): Fix typos, adjust formatting.
20362
20363 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
20364
20365         * tree.h: Include real.h and fixed-value.h as basic datatypes.
20366         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
20367         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
20368         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
20369         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
20370         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
20371         tree-pretty-print.c, tree-loop-distribution.c,
20372         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
20373         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
20374         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
20375         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
20376         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
20377         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
20378         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
20379         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
20380         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
20381         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
20382         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
20383         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
20384         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
20385         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
20386         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
20387         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
20388         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
20389         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
20390         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
20391         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
20392         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
20393         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
20394         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
20395         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
20396         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
20397         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
20398         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
20399         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
20400         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
20401         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
20402         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
20403         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
20404         config/score/score7.c, config/score/score.c, config/arm/arm.c,
20405         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
20406         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
20407         config/bfin/bfin.c: Clean up redundant includes.
20408         * Makefile.in: Update accordingly.
20409
20410 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
20411
20412         PR middle-end/44204
20413         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
20414         statement has no arguments.
20415
20416 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
20417
20418         PR/44139
20419         * varasm.c (emutls_decl): Merge attributes to new decl.
20420
20421 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
20422
20423         PR middle-end/44101
20424         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
20425         around the uniquized constructor if its type requires a conversion.
20426
20427 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
20428
20429         PR debug/44205
20430         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
20431         at -O0 goto_locus of any of the incoming edges differs from
20432         goto_locus of outgoing edge, or gimple_location of any of the
20433         labels differs.
20434
20435 2009-09-14  Vladimir Makarov  <vmakarov@redhat.com>
20436
20437         * ira.c (ira_non_ordered_class_hard_regs): Define.
20438         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
20439         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
20440         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
20441         cost of unaligned hard regs when allocating multi-reg pseudos.
20442
20443 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
20444
20445         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
20446         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
20447         for TARGET_NO_FLOAT.
20448         * config/mips/mips.c (mips_file_start): Expand conditional expression
20449         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
20450         (mips_override_options): Move -mno-float override -msoft-float and
20451         -mhard-float.
20452         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
20453         Condition(TARGET_SUPPORTS_NO_FLOAT).
20454         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
20455         __mips_no_float here.
20456         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
20457         (TARGET_SUPPORTS_NO_FLOAT): Define.
20458         * config/mips/sdemtk.opt: Delete.
20459
20460 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
20461
20462         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
20463
20464 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
20465
20466         PR target/43733
20467         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
20468         * configure: Regenerate.
20469         * config.in: Regenerate.
20470         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
20471         instead of sahf only for 64bit targets.
20472
20473 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
20474
20475         PR debug/44178
20476         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
20477         setup_ref_regs for DEBUG_INSNs.
20478
20479 2010-05-20  Jan Hubicka  <jh@suse.cz>
20480
20481         PR middle-end/44197
20482         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
20483
20484 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
20485
20486         PR bootstrap/43870
20487         * df-scan.c (df_ref_compare): Stabilize sort.
20488
20489 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
20490
20491         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
20492         argument.  Don't use DW_OP_piece if offset is non-zero,
20493         put offset into second DW_OP_bit_piece argument.
20494         (dw_sra_loc_expr): Adjust callers.  For memory expressions
20495         compute offset.
20496
20497 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
20498
20499         PR target/44202
20500         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
20501         settings for 16-bit-constant "addo" alternative.
20502
20503 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
20504
20505         * config/mips/mips-dsp.md (add<DSPV:mode>3,
20506         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
20507
20508         PR target/43764
20509         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
20510         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
20511         Use it.
20512
20513 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
20514
20515         * diagnostic.c (FLOAT, FFS): Don't undefine.
20516         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
20517         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
20518         include ordering.
20519
20520 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
20521
20522         * combine.c (propagate_for_debug): Call make_compound_operation
20523         on the source value.
20524         (try_combine): When implementing a split chosen by find_split_point,
20525         either copy i2src or set it to null.  Assert that i2src is not null
20526         before substituting into CALL_INSN_FUNCTION_USAGE.
20527
20528 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
20529
20530         * double-int.h (double_int_ior): New function.
20531         * tree.h (build_int_cst_wide_type): Remove.
20532         * tree.c (build_int_cst_wide_type): Remove.
20533         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
20534         of build_int_cst_wide_type.
20535         * stor-layout.c (set_sizetype): (Ditto.).
20536         * dojump.c (do_jump): Use build_int_cstu instead of
20537         build_int_cst_wide_type.
20538
20539 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
20540
20541         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
20542         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
20543         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
20544         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
20545         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
20546         propagate the 'data' argument to copy_tree_r.
20547         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
20548         Propagate 'data' argument to walk_tree.
20549         (copy_if_shared): New function.
20550         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
20551         (unmark_visited): New function.
20552         (unshare_body): Call copy_if_shared instead of doing it manually.
20553         (unvisit_body): Call unmark_visited instead of doing it manually.
20554
20555 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
20556
20557         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
20558         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
20559         * hooks.c: Likewise.
20560         * target-def.h (TARGET_FOLD_BUILTIN): Define to
20561         hook_tree_tree_int_treep_bool_null.
20562         * target.h (struct gcc_target): Update signature of fold_builtin
20563         field.
20564         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
20565         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
20566         instead of the call expression.
20567         (fold_builtin_call_array): Pass n and argarray directly.
20568         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
20569         consing a list.
20570         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
20571         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
20572         `i' and use it in place of `arity'.
20573         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
20574         Dereference `args' directly.
20575         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
20576
20577 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20578
20579         * doc/sourcebuild.texi (Effective-Target Keywords): Document
20580         3dnow, sse3, sse2.
20581         (Directives): Document optional dg-require-effective-target
20582         selector.
20583
20584 2010-05-19  Richard Guenther  <rguenther@suse.de>
20585
20586         PR lto/44196
20587         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
20588
20589 2010-05-19  Richard Guenther  <rguenther@suse.de>
20590
20591         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
20592         * common.opt (fwhopr=): New.
20593         * opts.c (common_handle_option): Handle OPT_fwhopr.
20594         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
20595         * collect2.c (main): Match -fwhopr*.
20596         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
20597         Execute ltrans stage in parallel when jobs is bigger than 1.
20598
20599 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20600
20601         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
20602         pentiumpro on Solaris 8/x86 with Sun as.
20603         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
20604         hidden alias bug.
20605         (gcc_cv_as_ix86_quad): Check for .quad directive.
20606         * configure: Regenerate.
20607         * config.in: Regenerate.
20608         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
20609
20610 2010-05-19  Martin Jambor  <mjambor@suse.cz>
20611
20612         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
20613         also for indirect edges.  Actual printing moved...
20614         (ipa_print_node_jump_functions_for_edge): ...here.
20615         (ipa_compute_jump_functions): Renamed to
20616         ipa_compute_jump_functions_for_edge and made static.
20617         (ipa_compute_jump_functions): New function.
20618         (make_edge_direct_to_target): Check if the number of arguments on
20619         the newly direct edge is the same as the number of parametrs of
20620         the callee.
20621         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
20622         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
20623         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
20624         analysis functions unconditionally, call the new
20625         ipa_analyze_params_uses on the node instead of every edge.
20626
20627 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
20628
20629         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
20630         to tree.
20631         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
20632         also checks for a constant int vs.  non-constant but
20633         loop-invariant steps.
20634         (find_or_create_group): Change the sort algorithm to only consider
20635         steps that are constant ints.
20636         (idx_analyze_ref): Adopt code to handle a tree instead of a
20637         HOST_WIDE_INT for step.
20638         (gather_memory_references_ref): Handle tree instead of int and be
20639         prepared to see a NULL_TREE.
20640         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
20641         prefetches if the step cannot be calculated at compile time.
20642         (issue_prefetch_ref): Issue prefetches for non-constant but
20643         loop-invariant steps.
20644
20645 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
20646
20647         Revert:
20648         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
20649
20650         * tree.h (build_call_list): Remove.
20651         * tree.c (build_call_list): Remove.
20652
20653 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
20654
20655         * tree.h (build_call_list): Remove.
20656         * tree.c (build_call_list): Remove.
20657
20658 2010-05-18  Jan Hubicka  <jh@suse.cz>
20659
20660         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
20661
20662 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
20663
20664         PR rtl-optimization/43332
20665         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
20666
20667 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
20668
20669         * tree.h (build_int_cstu): Implement as static inline.
20670         * tree.c (build_int_cstu): Remove function.
20671         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
20672         sign extended.
20673
20674 2010-05-18  Richard Guenther  <rguenther@suse.de>
20675
20676         PR lto/44143
20677         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
20678         (debug): Initialize from -save-temps.
20679         (collect_execute): Print command-line when verbose.
20680         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
20681         for ltrans invocation.  Produce -dumpbase flag again.
20682         (process_args): Remove.
20683         (main): Simplify.
20684         * collect2.c (maybe_run_lto_and_relink): Only pass object
20685         files to lto-wrapper.
20686         * gcc.c (LINK_COMMAND_SPEC): Likewise.
20687
20688 2010-05-18  Jan Hubicka  <jh@suse.cz>
20689
20690         * opts.c (decode_options): Do not disable whopr at ipa_cp.
20691         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
20692
20693 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
20694
20695         PR lto/44184
20696         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
20697         in a GIMPLE_ASM.
20698         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
20699         in a GIMPLE_ASM.
20700
20701 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
20702
20703         PR debug/41371
20704         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
20705         rtx_equal_p inline.
20706
20707 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
20708
20709         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
20710         lto-macho as lto_binary_reader.
20711
20712         * darwin.c (darwin_asm_named_section): Do not add assembler comment
20713         after .section directive; just print it before the directive instead.
20714
20715 2010-05-17  Jan Hubicka  <jh@suse.cz>
20716
20717         * cgraph.c (cgraph_create_virtual_clone): Only check
20718         versionable_function_p when not in wpa and checking is enabled.
20719         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
20720         there are no more functions to materialize.
20721
20722 2010-05-17  Jan Hubicka  <jh@suse.cz>
20723
20724         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
20725         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
20726         New functions.
20727         (output_cgraph): Call output_cgraph_opt_summary.
20728         (input_cgrpah): Call input_cgraph_opt_summary.
20729         (output_cgraph_opt_summary_p, output_node_opt_summary,
20730         input_node_opt_summary, input_cgraph_opt_section): New functions.
20731         * lto-section-in.c (lto_section_name): Add cgraphopt.
20732         * tree-inline.c (tree_function_versioning): Handle parm_num.
20733         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
20734         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
20735
20736 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
20737
20738         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
20739         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
20740         the insn to prefetch ratio heuristic to loops with known trip count.
20741
20742 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
20743
20744         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
20745         (schedule_prefetches): Do not generate a prefetch if the unroll factor
20746         is far from what is required by the prefetch.
20747
20748 2010-05-17  Jan Hubicka  <jh@suse.cz>
20749
20750         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
20751         (ipcp_estimate_growth): Likewise.
20752         (ipcp_const_param_count): Likewise.
20753         (ipcp_insert_stage): Likewise.
20754         * ipa-prop.c (visit_load_for_mod_analysis): New function.
20755         (visit_store_addr_for_mod_analysis): Set used flag.
20756         (ipa_detect_param_modifications): Set used flag for SSE params;
20757         update use of walk_stmt_load_store_addr_ops.
20758         (ipa_print_node_params): Print used flag.
20759         (ipa_write_node_info): Stream used flag.
20760         (ipa_read_node_info): Likewise.
20761         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
20762         (ipa_is_param_used): New function.
20763         (lto_ipa_fixup_call_notes): Remove unused declaration.
20764
20765 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20766
20767         PR target/44074
20768         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
20769         * configure: Regenerate.
20770         * config.in: Regenerate.
20771         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
20772         !HAVE_AS_IX86_REP_LOCK_PREFIX.
20773         Don't emit whitespace.
20774         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
20775         (*rep_movsi): Likewise.
20776         (*rep_movsi_rex64): Likewise.
20777         (*rep_movqi): Likewise.
20778         (*rep_movqi_rex64): Likewise.
20779         (*rep_stosdi_rex64): Likewise.
20780         (*rep_stossi): Likewise.
20781         (*rep_stossi_rex64): Likewise.
20782         (*rep_stosqi): Likewise.
20783         (*rep_stosqi_rex64): Likewise.
20784         (*cmpstrnqi_nz_1): Use {%;} after repz.
20785         (*cmpstrnqi_nz_rex_1): Likewise.
20786         (*cmpstrnqi_1): Likewise.
20787         (*cmpstrnqi_rex_1): Likewise.
20788         (*strlenqi_1): Use {%;} after repnz.
20789         (*strlenqi_rex_1): Likewise.
20790         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
20791         (*sync_compare_and_swap<mode>): Likewise.
20792         (sync_double_compare_and_swap<mode>): Likewise.
20793         (*sync_double_compare_and_swapdi_pic): Likewise.
20794         (sync_old_add<mode>): Likewise.
20795         (sync_add<mode>): Likewise.
20796         (sync_sub<mode>): Likewise.
20797         (sync_<code><mode>): Likewise.
20798
20799 2010-05-17  Martin Jambor  <mjambor@suse.cz>
20800
20801         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
20802         otr_token and polymorphic.
20803         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
20804         (cgraph_clone_edge): Copy the above fields.
20805         * tree.c (get_binfo_at_offset): New function.
20806         * tree.h (get_binfo_at_offset): Declare.
20807         * ipa-prop.h (enum jump_func_type): Added known_type jump function
20808         type, reordered items, updated comments.
20809         (union jump_func_value): Added base_type field, reordered fields.
20810         (enum ipa_lattice_type): Moved down in the file.
20811         (struct ipa_param_descriptor): New field polymorphic.
20812         (ipa_is_param_polymorphic): New function.
20813         * ipa-prop.c: Include gimple.h and gimple-fold.h.
20814         (ipa_print_node_jump_functions): Print known type jump functions.
20815         (compute_complex_pass_through): Renamed to...
20816         (compute_complex_assign_jump_func): this.
20817         (compute_complex_ancestor_jump_func): New function.
20818         (compute_known_type_jump_func): Likewise.
20819         (compute_scalar_jump_functions): Create known type and complex ancestor
20820         jump functions.
20821         (ipa_note_param_call): New parameter polymorphic, set the corresponding
20822         flag in the call note accordingly.
20823         (ipa_analyze_call_uses): Renamed to...
20824         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
20825         variable var only in the block where it is used.
20826         (ipa_analyze_virtual_call_uses): New function.
20827         (ipa_analyze_call_uses): Likewise.
20828         (combine_known_type_and_ancestor_jfs): Likewise.
20829         (update_jump_functions_after_inlining): Implemented handling of a
20830         number of new jump function types combination.
20831         (print_edge_addition_message): Removed.
20832         (make_edge_direct_to_target): New function.
20833         (try_make_edge_direct_simple_call): Likewise.
20834         (try_make_edge_direct_virtual_call): Likewise.
20835         (update_call_notes_after_inlining): Renamed to...
20836         (update_indirect_edges_after_inlining): this.  Moved edge creation for
20837         indirect calls to try_make_edge_direct_simple_call, also calls
20838         try_make_edge_direct_virtual_call for virtual calls.
20839         (ipa_print_node_params): Changed the header message.
20840         (ipa_write_jump_function): Stream also known type jump functions.
20841         (ipa_read_jump_function): Likewise.
20842         (ipa_write_indirect_edge_info): Stream new fields in
20843         cgraph_indirect_call_info.
20844         (ipa_read_indirect_edge_info): Likewise.
20845         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
20846         GIMPLE_FOLD_H.
20847
20848 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
20849
20850         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
20851
20852 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
20853
20854         * tree.h (CALL_EXPR_ARGS): Delete.
20855         (call_expr_arglist): Delete.
20856         * tree.c (call_expr_arglist): Delete.
20857         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
20858         targetm.fold_builtin.
20859         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
20860         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
20861         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
20862         arglist parameter.  Use CALL_EXPR_ARG.
20863         (picochip_expand_builtin_3op): Likewise.
20864         (picochip_expand_builtin_2opvoid): Likewise.
20865         (picochip_expand_array_get): Likewise.
20866         (picochip_expand_array_put): Likewise.
20867         (picochip_expand_array_testport): Likewise.
20868         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
20869         rather than arglist.
20870         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
20871         CALL_EXPR_ARGS.
20872         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
20873         than TREE_VALUE and TREE_CHAIN.
20874         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
20875         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
20876         the arglist.
20877
20878 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
20879
20880         PR bootstrap/42347
20881         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
20882         to have no fallthru edge.
20883
20884         PR middle-end/44102
20885         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
20886         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
20887         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
20888         add BARRIER after previous bb if needed.
20889
20890 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
20891
20892         * tree.c (build_function_type_list_1): Remove bogus assert condition.
20893
20894 2010-05-17  Alan Modra  <amodra@gmail.com>
20895
20896         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
20897         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
20898         with copy_reg rtx param.
20899         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
20900         Correct cases where code for ABI_V4 did not initialise the reg
20901         used to access frame.  Also leave frame_reg_rtx as sp for large
20902         frames that save no regs.
20903
20904 2010-05-17  Martin Jambor  <mjambor@suse.cz>
20905
20906         PR middle-end/44133
20907         * tree-sra.c (create_access_replacement): New parameter rename, mark
20908         the replaement for renaming only when it is true.
20909         (get_access_replacement): Pass true in the rename parameter of
20910         create_access_replacement.
20911         (get_unrenamed_access_replacement): New function.
20912         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
20913         replacement declaration from it.
20914
20915 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
20916
20917         * function.c (try_fit_stack_local, add_frame_space): New static
20918         functions.
20919         (assign_stack_local_1): Use them.  Look for opportunities to use
20920         space previously wasted on alignment.
20921         * function.h (struct frame_space): New.
20922         (struct rtl_data): Add FRAME_SPACE_LIST member.
20923         * reload1.c (something_was_spilled): New static variable.
20924         (alter_reg): Set it.
20925         (reload): Test it in addition to testing if the frame size changed.
20926
20927 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
20928
20929         * config/s390/s390.c: Define sane prefetch settings and activate
20930         flag_prefetch_loop_arrays on -O3.
20931         * config/s390/s390.h: Declare that read can use write prefetch.
20932
20933 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
20934
20935         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
20936         build.
20937
20938 2010-05-16  Jan Hubicka  <jh@suse.cz>
20939
20940         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
20941         function body; do not check stdarg field of struct function.
20942
20943 2010-05-16  Jan Hubicka  <jh@suse.cz>
20944
20945         * cgraph.c (dump_cgraph_node): Dump versionable flag.
20946         * cgraph.h (cgraph_local_info): Add versionable flag.
20947         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
20948         (ipcp_versionable_function_p): Use it.
20949         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
20950         versionable flag.
20951
20952 2010-05-16  Jan Hubicka  <jh@suse.cz>
20953
20954         * cgraph.c (cgraph_clone_node): Take decl argument and insert
20955         clone into hash when it is different from orig.
20956         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
20957         * cgraph.h (cgraph_clone_node): Update prototype.
20958         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
20959         (lto_cgraph_encoder_delete): Delete body map.
20960         (lto_cgraph_encoder_size): Move to header.
20961         (lto_cgraph_encoder_encode_body_p,
20962         lto_set_cgraph_encoder_encode_body): New.
20963         (lto_output_node): Do not take written_decls argument; output clone_of
20964         pointer.
20965         (add_node_to): Add include_body_argument; call
20966         lto_set_cgraph_encoder_encode_body on master of the clone.
20967         (add_references): Update use of add_node_to.
20968         (compute_ltrans_boundary): Likewise.
20969         (output_cgraph): Do not create written_decls bitmap.
20970         (input_node): Take nodes argument; stream in clone_of correctly.
20971         (input_cgraph_1): Update use of input_node.
20972         * lto-streamer-out.c (lto_output): Use encoder info to decide
20973         what bodies to output.
20974         * ipa-inline.c (cgraph_clone_inlined_nodes,
20975         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
20976         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
20977         (lto_cgraph_encoder_size): Define here.
20978         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
20979         Declare.
20980
20981 2010-05-16  Richard Guenther  <rguenther@suse.de>
20982
20983         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
20984         -fipa-type-escape.
20985         * ipa-type-escape.c (gate_type_escape_vars): Run when
20986         -fipa-struct-reorg runs.
20987         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
20988         * common.opt (fipa-type-escape): Remove.
20989
20990 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
20991
20992         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
20993         (decode_options): Likewise.
20994         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
20995
20996 2010-05-16  Jan Hubicka  <jh@suse.cz>
20997
20998         * ipa.c (function_and_variable_visibility): Also bring local all
20999         aliases.
21000
21001 2010-05-16  Richard Guenther  <rguenther@suse.de>
21002
21003         * alias.c (nonoverlapping_memrefs_p): Remove use of
21004         IPA type-escape information.
21005
21006 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
21007
21008         * c-common.c (c_common_reswords): Add _Static_assert for C.
21009         * c-parser.c (c_token_starts_declaration,
21010         c_parser_next_token_starts_declaration,
21011         c_parser_static_assert_declaration_no_semi,
21012         c_parser_static_assert_declaration): New.
21013         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
21014         Handle static assertions if static_assert_ok.
21015         (c_parser_external_declaration, c_parser_declaration_or_fndef,
21016         c_parser_compound_statement_nostart, c_parser_label,
21017         c_parser_for_statement, c_parser_objc_methodprotolist,
21018         c_parser_omp_for_loop): All callers of
21019         c_parser_declaration_or_fndef changed.
21020         (c_parser_struct_declaration): Handle static assertions.
21021         (c_parser_compound_statement_nostart): Use
21022         c_parser_next_token_starts_declaration and
21023         c_token_starts_declaration to detect start of declarations.
21024         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
21025         Likewise.
21026
21027 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
21028
21029         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
21030         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
21031         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
21032         TARGET_FUNCTION_VALUE_REGNO_P): Define.
21033         (mmix_function_outgoing_value): Rename to...
21034         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
21035         (mmix_function_value_regno_p): Make static.
21036         (mmix_libcall_value): New function.
21037         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
21038         mmix_function_value_regno_p): Remove declaration.
21039
21040 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
21041
21042         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
21043         BUILT_IN_ALLOCA if stack checking is enabled.
21044
21045 2010-05-16  Richard Guenther  <rguenther@suse.de>
21046
21047         * var-tracking.c (vars_copy_1): Inline ...
21048         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
21049         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
21050         (variable_merge_over_cur): Adjust.  Merge asserts.
21051         (variable_merge_over_src): Likewise.
21052         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
21053         (variable_post_merge_new_vals): Merge asserts.
21054         (variable_post_merge_perm_vals): Likewise.
21055         (find_mem_expr_in_1pdv): Likewise.
21056         (dataflow_set_different_value): Remove.
21057         (onepart_variable_different_p): Merge asserts.
21058         (variable_different_p): Likewise.
21059         (dataflow_set_different_1): Inline ...
21060         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
21061         (emit_notes_for_differences_1): Merge asserts.
21062
21063 2010-05-16  Richard Guenther  <rguenther@suse.de>
21064
21065         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
21066         * optabs.c (libfunc_decl_hash): Likewise.
21067         * varasm.c (emutls_decl): Likewise.
21068
21069 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
21070
21071         * c-decl.c: Don't include gimple.h.
21072         (merge_decls): Do not copy gimple_body.
21073
21074 2010-05-15  Jason Merrill  <jason@redhat.com>
21075
21076         * c.opt: Add -fnothrow-opt.
21077
21078 2010-05-15  Jan Hubicka  <jh@suse.cz>
21079
21080         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
21081         analyzed.
21082         * passes.c (ipa_write_summaries): Write all analyzed nodes.
21083
21084 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
21085
21086         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
21087         * Makefile.in: Add it.
21088         Fix all other Makefile dependencies for changes below.
21089         * tree.h: Include it instead of defining VEC primitives here.
21090         * gimple.h: Likewise.
21091         * rtl.h: Likewise.
21092         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
21093         * except.h: Include vecir.h, break dependence on tree.h.
21094
21095         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
21096         Move from here...
21097         * tree-iterator.c: ...to here.
21098         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
21099
21100         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
21101         tm_p.h.
21102         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
21103         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
21104         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
21105         tree-mudflap.h, and target.h.
21106         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
21107         predict.h, tree-inline.h, gimple.h, and langhooks.h.
21108         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
21109         Add FIXME for why gimple.h is still included (should be unnecessary
21110         since GCC 4.5 gimplification unit-at-a-time).
21111         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
21112         * c-pragma.c: Add FIXME for why function.h needs to be included just
21113         for cfun, at front-end level.
21114         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
21115         Do not include ggc.h, but include vecprim.h for VEC(char).
21116         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
21117         Explain why target.h is included.
21118         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
21119         Explain why gimple.h is included.
21120         * c-ppoutput.c: Do not include tm.h.
21121         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
21122         * c-parses.c: Explain why rtl.h is included, and that this (and only
21123         this) is also why tm.h must be included.
21124         Do not include except.h.
21125         * c-lang.c: Do not include ggc.h.
21126
21127 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
21128
21129         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
21130
21131 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
21132
21133         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
21134         unions by default if those structs and unions have no tags.  Do
21135         not condition anonymous struct and unions handling on flag_iso.
21136         Allow anonymous structs and unions for C1X.
21137         (finish_struct): Do not diagnose lack of named fields when
21138         anonymous structs and unions present for C1X.  Accept flexible
21139         array members in structure with anonymous structs or unions but no
21140         directly named fields.
21141         * doc/extend.texi (Unnamed Fields): Update.
21142
21143 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
21144
21145         * gimple.h (compare_field_offset): Rename into...
21146         (gimple_compare_field_offset): ...this.
21147         * gimple.c (compare_field_offset): Rename into...
21148         (gimple_compare_field_offset): ...this.  Compare the full access if
21149         the offset is self-referential.
21150         (gimple_types_compatible_p): Adjust for above renaming.
21151         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
21152         DECL_NONADDRESSABLE_P flag of fields before merging them.
21153
21154 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
21155
21156         * tree.h (ctor_to_list): Delete.
21157         * tree.c (ctor_to_list): Delete.
21158
21159 2010-05-15  Jan Hubicka  <jh@suse.cz>
21160
21161         * ipa-reference.c: Include toplev.h
21162         (is_proper_for_analysis): Only add to all_module_statics
21163         if it is allocated.
21164         (write_node_summary_p, stream_out_bitmap,
21165         ipa_reference_write_optimization_summary,
21166         ipa_reference_read_optimization_summary): New.
21167         (struct ipa_opt_pass_d pass_ipa_reference): Add
21168         optimization summary streaming.
21169         * lto-cgraph.c (referenced_from_this_partition_p,
21170         reachable_from_this_partition_p): New functions.
21171         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
21172         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
21173         * opts.c (decode_options): Enable ipa_reference.
21174         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
21175         * lto-streamer.h (referenced_from_this_partition_p,
21176         reachable_from_this_partition_p): Declare.
21177
21178 2010-05-15  Richard Guenther  <rguenther@suse.de>
21179
21180         PR tree-optimization/44038
21181         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
21182         taking the address of a V_C_E of a constant.
21183
21184 2010-05-14  Jan Hubicka  <jh@suse.cz>
21185
21186         * tree.h (memory_identifier_string): Remove.
21187         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
21188         (ipa_reference_global_vars_info_d): Remove statics_not_read and
21189         statics_not_written.
21190         (ipa_reference_optimization_summary_d): New structure.
21191         (ipa_reference_optimization_summary_t): New type and vector.
21192         (ipa_reference_vars_info_d): Embedd structures instead of using
21193         pointers.
21194         (reference_vars_to_consider): Remove out of GGC space.
21195         (module_statics_escape): Remove.
21196         (global_info_obstack): Rename to ...
21197         (optimization_summary_obstack): ... this one.
21198         (initialization_status_t): Remove.
21199         (memory_identifier_string): Remove.
21200         (get_reference_vars_info): Fix indenting.
21201         (set_reference_vars_info): Likewise.
21202         (get_reference_optimization_summary): New.
21203         (set_reference_optimization_summary): New.
21204         (get_global_reference_vars_info): Remove.
21205         (ipa_reference_get_read_global): Remove.
21206         (ipa_reference_get_written_global): Remove.
21207         (ipa_reference_get_not_read_global): Update.
21208         (ipa_reference_get_not_written_global): Update.
21209         (is_proper_for_analysis): Outlaw addressable.
21210         (propagate_bits): Update for new datastructures.
21211         (analyze_variable): Remove.
21212         (init_function_info): Update for new datastructures.
21213         (clean_function_local_data): Remove.
21214         (clean_function): Remove.
21215         (copy_global_bitmap): Use optimizations_summary_obstack.
21216         (duplicate_node_data): Duplicate optimization summary only.
21217         (remove_node_data): Remove optimization summary only.
21218         (generate_summary): Do not analyze variables; do not compute
21219         module_statics_escape; do not prune solutions by it.
21220         (read_write_all_from_decl): Fix typos in comments.
21221         (propagate): Doscover readonly and nonaddressable first;
21222         update for new datastructures; share global bitmaps.
21223         * ipa-reference.h (ipa_reference_get_read_global,
21224         ipa_reference_get_written_global): Remove.
21225         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
21226         * Makefile.in: Remove ipa-refereference from GT files.
21227
21228 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
21229
21230         PR debug/44112
21231         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
21232         for all SYMBOL_REF_DECLs.
21233
21234 2010-05-14  Jan Hubicka  <jh@suse.cz>
21235
21236         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
21237         (varpool_all_refs_explicit_p): New inline function.
21238         * ipa-reference.c: Update comment.
21239         (module_statics_written): Remove.
21240         (get_static_decl): Remove.
21241         (ipa_init): Do not initialize module_statics_written.
21242         (analyze_function): Likewise.
21243         (generate_summary): Likewise; do not compute module_statics_readonly
21244         and do not update variable flags.
21245         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
21246         * ipa.c: Inlucde flags.h
21247         (cgraph_local_node_p): New.
21248         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
21249         promote functions to local.
21250         (ipa_discover_readonly_nonaddressable_vars): New function.
21251         (function_and_variable_visibility): Use cgraph_local_node_p.
21252         * varpool.c (varpool_finalize_decl): Set force_output for
21253         DECL_PRESERVE_P vars.
21254
21255 2010-05-14  Jan Hubicka  <jh@suse.cz>
21256
21257         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
21258
21259 2010-05-14  Richard Guenther  <rguenther@suse.de>
21260
21261         PR tree-optimization/44119
21262         * tree-ssa-pre.c (eliminate): Properly mark replacement of
21263         a PHI node necessary.
21264
21265 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
21266
21267         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
21268
21269 2010-05-14  Jason Merrill  <jason@redhat.com>
21270
21271         PR c++/44127
21272         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
21273         (gimple_call_set_nothrow): New.
21274         * gimple.c (gimple_build_call_from_tree): Call it.
21275         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
21276
21277         PR c++/44127
21278         * gimplify.c (gimplify_seq_add_stmt): No longer static.
21279         * gimple.h: Declare it.
21280         * gimple.c (gimple_build_eh_filter): No ops.
21281
21282 2010-05-14  Jan Hubicka  <jh@suse.cz>
21283
21284         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
21285         nodes already in queue.
21286         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
21287         re-enqueueing node.
21288
21289 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
21290
21291         PR debug/44136
21292         * cfgexpand.c (expand_debug_expr): If non-memory op0
21293         has BLKmode, return NULL.
21294
21295 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
21296
21297         * config.gcc: Add support for --with-cpu option for bdver1.
21298         * config/i386/i386.h (TARGET_BDVER1): New macro.
21299         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
21300         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
21301         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
21302         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
21303         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
21304         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
21305         (processor_type): Add PROCESSOR_BDVER1.
21306         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
21307         processor_type in config/i386/i386.h.
21308         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
21309         movaps <reg, reg> instead of movapd <reg, reg> when replacing
21310         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
21311         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
21312         to emit packed xor instead of packed double/packed integer
21313         xor for SSE and AVX when moving a zero value.
21314         * config/i386/sse.md: Add check for
21315         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
21316         movapd/movdqa for SSE and AVX.
21317         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
21318         single logical operations i.e and, or and xor instead of packed double
21319         logical operations for SSE and AVX.
21320         * config/i386/i386-c.c (ix86_target_macros_internal):
21321         Add PROCESSOR_BDVER1.
21322         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
21323         (has_fma4, has_xop): New.
21324         * config/i386/i386.c (bdver1_cost): New variable.
21325         (m_BDVER1): New macro.
21326         (m_AMD_MULTIPLE): Add m_BDVER1.
21327         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
21328         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
21329         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
21330         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
21331         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
21332         x86_tune_sse_partial_reg_dependency,
21333         x86_tune_sse_unaligned_load_optimal,
21334         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
21335         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
21336         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
21337         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
21338         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
21339         Enable/disable for bdver1.
21340         (processor_target_table): Add bdver1_cost.
21341         (cpu_names): Add bdver1.
21342         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
21343          processor_alias_table.
21344         (ix86_expand_vector_move_misalign): Change.
21345         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
21346         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
21347         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
21348         of movupd/movdqu for SSE and AVX.
21349         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
21350         (ix86_tune_adjust_cost): Add code for bdver1.
21351         (standard_sse_constant_opcode): Add check for
21352         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
21353         of packed double xor for SSE and AVX.
21354
21355 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
21356
21357         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
21358         result to unsigned.
21359
21360 2010-05-14  Tristan Gingold  <gingold@adacore.com>
21361
21362         * toplev.c (default_debug_hooks): Remove this variable.
21363         (process_options): Remove assignments to default_debug_hooks.
21364
21365 2010-05-14  Martin Jambor  <mjambor@suse.cz>
21366
21367         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
21368         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
21369         * langhooks.h (struct lang_hooks_for_decls): Removed field
21370         fold_obj_type_ref.
21371         * tree.c (free_lang_data): Remove assignment to
21372         lang_hooks.fold_obj_type_ref.
21373         * tree.def (OBJ_TYPE_REF): Update comment.
21374
21375 2010-05-14  Richard Guenther  <rguenther@suse.de>
21376
21377         PR tree-optimization/44124
21378         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
21379
21380 2010-05-14  Alan Modra  <amodra@gmail.com>
21381
21382         PR target/44075
21383         * config/rs6000/rs6000.c (struct machine_function): Reorder
21384         fields for better packing.  Add lr_save_state.
21385         (rs6000_ra_ever_killed): Return lr_save_state if set.
21386         (rs6000_emit_eh_reg_restore): Set lr_save_state.
21387
21388 2010-05-13  Jan Hubicka  <jh@suse.cz>
21389
21390         * varpool.c (decide_is_variable_needed): Drop code checking
21391         TREE_SYMBOL_REFERENCED.
21392
21393 2010-05-13  Jan Hubicka  <jh@suse.cz>
21394
21395         * final.c (output_addr_const): Do not call mark_decl_referenced.
21396         * cgraphunit.c (process_function_and_variable_attributes): Use
21397         mark_needed_node dirrectly.
21398         (assemble_thunk): Do not call mark_decl_referenced.
21399
21400 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
21401
21402         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
21403
21404 2010-05-13  Jeff Law  <law@redhat.com>
21405
21406         * ira-conflicts.c (print_allocno_conflicts): New function broken out
21407         from...
21408         (print_conflicts): Call print_allocno_conflicts.
21409
21410 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
21411
21412         PR debug/44104
21413         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
21414         if it is NULL.
21415
21416 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
21417
21418         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
21419         t-mingw-w64 or t-mingw-w32 for multilib configuration.
21420         * config/i386/t-mingw-w32: New.
21421         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
21422
21423 2010-05-13  Martin Jambor  <mjambor@suse.cz>
21424
21425         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
21426         gimple-fold.c).
21427         * gimple-fold.c (get_base_binfo_for_type): New function.
21428         (gimple_get_relevant_ref_binfo): Likewise.
21429         (gimple_fold_obj_type_ref_known_binfo): Likewise.
21430         (gimple_fold_obj_type_ref): Likewise.
21431         (fold_gimple_call): Simplify condition for folding virtual calls
21432         and call gimple_fold_obj_type_ref.
21433         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
21434         (gimple_fold_obj_type_ref_known_binfo): Likewise.
21435
21436 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
21437
21438         * config/rs6000/rs6000-protos.h
21439         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
21440         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
21441         (rs6000_debug_mode_dependent_address)
21442         (rs6000_mode_dependent_address_ptr): Likewise.
21443
21444 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
21445
21446         PR debug/43983
21447         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
21448         by SRA.
21449         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
21450         * tree-sra.c (create_access_replacement): Call unshare_expr before
21451         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
21452         * dwarf2out.c: Include tree-flow.h.
21453         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
21454         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
21455         Handle DW_OP_bit_piece.
21456         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
21457         construct_piece_list, adjust_piece_list): New functions.
21458         (add_var_loc_to_decl): Handle SRA optimized variables.
21459         Adjust for var_loc_note to loc field renaming.
21460         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
21461         in VAR_LOCATION note.
21462         (new_loc_descr_op_bit_piece): New function.
21463         (dw_sra_loc_expr): New function.
21464         (dw_loc_list): Use it.  Don't handle the last range after the
21465         loop, handle it inside of the loop.  Adjust for var_loc_note
21466         to loc field renaming.
21467         (add_location_or_const_value_attribute): Only special case
21468         single entry loc lists if loc is NOTE_P.  Adjust for
21469         var_loc_note to loc field renaming.
21470         (dwarf2out_var_location): Don't set newloc->var_loc_note
21471         and newloc->next here.
21472
21473 2010-05-12  Jan Hubicka  <jh@suse.cz>
21474
21475         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
21476         flag.
21477         * cgraph.h (cgraph_only_called_directly_p,
21478         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
21479         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
21480         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
21481         (assemble
21482         * ipa.c (cgraph_remove_unreachable_nodes): Use
21483         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
21484         flags.
21485         * tree-inline.c (copy_bb): Check address_taken flag.
21486         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
21487         externally_visible flag.
21488
21489 2010-05-12  Jason Merrill  <jason@redhat.com>
21490
21491         PR bootstrap/44048
21492         PR target/44099
21493         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
21494         * sdbout.c (plain_type_1): Likewise.
21495         * dwarf2out.c (is_base_type): Likewise.
21496         (gen_type_die_with_usage): Likewise.  Generate
21497         DW_TAG_unspecified_type for any LANG_TYPE.
21498
21499 2010-05-12  Jan Hubicka  <jh@suse.cz>
21500
21501         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
21502         indrect edges too.
21503         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
21504         (cgraph_clone_edge): Update.
21505         (cgraph_node_remove_callees): Remove indirect calls too.
21506         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
21507         (cgraph_create_indirect_edge): Update prototype.
21508         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
21509         is_proper_for_analysis.
21510         (add_new_function, visited_nodes, function_insertion_hook_holder,
21511         get_local_reference_vars_info, mark_address_taken, mark_address,
21512         mark_load, mark_store, check_asm_memory_clobber, check_call,
21513         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
21514         (ipa_init): Do not initialize visited_nodes;
21515         function_insertion_hook_holder.
21516         (analyze_variable): Rewrite.
21517         (analyze_function): Rewrite.
21518         (copy_local_bitmap): Remove.
21519         (duplicate_node_dat): Do not duplicate local info.
21520         (generate_summary): Simplify to only walk cgraph.
21521         (write_node_summary_p, ipa_reference_write_summary,
21522         ipa_reference_read_summary): Remove.
21523         (propagate): Do not remove function insertion;
21524         generate summary.
21525         (pass_ipa_reference): NULLify summary handling fields.
21526         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
21527         (input_edge): Input ecf_flags.
21528         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
21529         (update_indirect_edges_after_inlining): Ignore edges with unknown
21530         param.
21531
21532 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
21533
21534         * implicit-zee.c: New file.
21535         * tree-pass.h (pass_implicit_zee): Declare.
21536         * passes.c (init_optimization_passes): Add zee pass.
21537         * common.opt (fzee): New flag.
21538         * timevar.def (TV_ZEE): Define.
21539         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
21540         and beyond.
21541         * Makefile.in (implicit-zee.o): Add new build file.
21542
21543 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
21544             Nathan Froyd  <froydnj@codesourcery.com>
21545
21546         * c-common.c (sync_resolve_params): Remove write-only variable.
21547
21548 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
21549
21550         * target.h (struct gcc_target): Add mode_dependent_address_p field.
21551         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
21552         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
21553         * targhooks.c (default_mode_dependent_address_p): New function.
21554         * targhooks.h (default_mode_dependent_address_p): Declare function.
21555         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
21556         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
21557         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
21558         target hook. Change return type to bool.
21559         * recog.h (mode_dependent_address_p): Change return type to bool.
21560
21561 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
21562             Nathan Froyd  <froydnj@codesourcery.com>
21563
21564         * tree-mudflap.c (build_function_type_0, build_function_type_1,
21565         build_function_type_2, build_function_type_3): Remove.
21566         (mudflap_init): Use build_function_type_list.
21567
21568 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
21569             Nathan Froyd  <froydnj@codesourcery.com>
21570
21571         * coverage.c (build_fn_info_value): Call build_constructor instead of
21572         build_constructor_from_list.
21573         (build_ctr_info_value): Likewise.
21574         (build_gcov_info): Likewise.
21575
21576 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
21577
21578         * tree.c (build_constructor): Compute TREE_CONSTANT for the
21579         resultant constructor.
21580         (build_constructor_single): Don't set TREE_CONSTANT.
21581         (build_constructor_from_list): Don't compute TREE_CONSTANT.
21582
21583 2010-05-12  Jan Hubicka  <jh@suse.cz>
21584
21585         * cgraph.h (struct varpool_node): Add aux.
21586         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
21587         * varpool.c (varpool_remove_node): Do not remove initializer.
21588         (varpool_reset_queue): Export.
21589         (varpool_finalize_decl): Volatile vars are forced to be output.
21590         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
21591         replaced decl.
21592         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
21593         process_references, varpool_can_remove_if_no_refs): New functions.
21594         (cgraph_remove_unreachable_nodes): Handle variables too.
21595
21596 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
21597
21598         PR target/44088
21599         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
21600
21601 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
21602
21603         PR middle-end/44085
21604         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
21605         change value of ORT_TASK.
21606         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
21607         (omp_notice_threadprivate_variable): New function.
21608         (omp_notice_variable): Call it for threadprivate variables.
21609         If enclosing ctx is a task, print enclosing task rather than
21610         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
21611         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
21612         if task has untied clause.
21613
21614         PR debug/42278
21615         * dwarf2out.c (base_type_die): Don't add name attribute here.
21616         (modified_type_die): Instead of sizetype use
21617         its underlying original type.  If a DW_TAG_base_type doesn't
21618         have name added, add __unknown__.
21619         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
21620         always call force_type_die instead.
21621
21622 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
21623
21624         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
21625         for __stack_chk_guard.
21626
21627 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
21628
21629         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
21630         don't call start_source_file debug hook here...
21631         (finish_options): ... but here, after outputting predefined and
21632         command line defines and undefs.
21633
21634         PR middle-end/44071
21635         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
21636         no fallthru edge.
21637         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
21638         optimizing away empty bb with no successors, move over its
21639         footer chain to fallthru predecessor.
21640         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
21641         (rtl_split_edge): For asm goto call patch_jump_insn even if
21642         splitting fallthru edge.
21643
21644         PR c++/44059
21645         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
21646         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
21647         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
21648         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
21649         on DW.ref.* decls.
21650
21651         PR c++/44062
21652         * c-parser.c (c_parser_expression): Mark LHS of a comma
21653         expression as read if it is a decl, handled component or
21654         COMPOUND_EXPR with that on the RHS.
21655         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
21656         if it is a decl or handled component.
21657
21658 2010-05-11  Jan Hubicka  <jh@suse.cz>
21659
21660         * lto-symtab.c (lto_symtab_free): New function.
21661         * lto-streamer.h (lto_symtab_free): Declare.
21662
21663 2010-05-11  Jan Hubicka  <jh@suse.cz>
21664
21665         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
21666         that if function is needed it is reachable.
21667         (lto_output_node): See if it the function is reachable or referenced.
21668         (output_cgraph): Update call of lto_output_node.
21669         * lto-streamer.h (reachable_from_other_partition_p): Declare.
21670
21671 2010-05-11  Jan Hubicka  <jh@suse.cz>
21672
21673         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
21674         Mark as used.
21675
21676 2010-05-11  Jan Hubicka  <jh@suse.cz>
21677
21678         PR tree-optimize/44063
21679         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
21680         queue.
21681         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
21682         limits.
21683         (estimate_function_body_sizes): Compute sizes even when disregarding.
21684
21685 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
21686
21687         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
21688
21689 2010-05-11  Jan Hubicka  <jh@suse.cz>
21690
21691         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
21692         into every boundary.
21693
21694 2010-05-11  Jan Hubicka  <jh@suse.cz>
21695
21696         * matrix-reorg.c (matrix_reorg): Rebuild edges.
21697
21698 2010-05-11  Jan Hubicka  <jh@suse.cz>
21699
21700         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
21701         lto_streamer_cache_delete): Put nodes into heap.
21702         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
21703         heap.
21704
21705 2010-05-11  Jan Hubicka  <jh@suse.cz>
21706
21707         * cgraphbuild.c (cgraph_rebuild_references): New.
21708         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
21709         out extern inlines.
21710         * cgraph.h (cgraph_rebuild_references): Declare.
21711         * tree-inline.c (tree_function_versioning): Use it.
21712         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
21713
21714 2010-05-11  Jan Hubicka  <jh@suse.cz>
21715
21716         * cgraph.c: Include ipa-utils.h
21717         (cgraph_create_virtual_clone): Update references.
21718         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
21719
21720 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
21721
21722         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
21723         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
21724         cache size.
21725
21726 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
21727
21728         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
21729
21730 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
21731
21732         * gcc.c (execute): For -### don't quote arguments that
21733         contain just alphanumerics and _/-. characters.
21734         * doc/invoke.texi: Document that change for -###.
21735
21736         PR debug/44023
21737         * df-problems.c (struct dead_debug): Add to_rescan field.
21738         (dead_debug_init): Clear to_rescan field.
21739         (dead_debug_finish): Rescan all debug insns in to_rescan
21740         bitmap and free the bitmap.
21741         (dead_debug_insert_before): Instead of rescanning debug insns
21742         immediately queue their rescanning until dead_debug_finish.
21743         (df_note_bb_compute): After dead_debug_add do continue instead
21744         of break.
21745
21746 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
21747
21748         PR debug/44028
21749         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
21750         clear also INSN_REG_USE_LIST.
21751
21752 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21753
21754         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
21755
21756 2010-05-10  Jan Hubicka  <jh@suse.cz>
21757
21758         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
21759         commited change.
21760
21761 2010-05-10  Jan Hubicka  <jh@suse.cz>
21762
21763         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
21764         Allocate encoders.
21765         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
21766         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
21767         (lto_streamer_cache_create): Init alloc pool.
21768         (lto_streamer_cache_delete): Free alloc pool.
21769         * lto-streamer.h: Include alloc pool.
21770         (lto_streamer_cache_d): Use alloc pool.
21771         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
21772
21773 2010-05-10  Jan Hubicka  <jh@suse.cz>
21774
21775         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
21776         * cgraphbuild.c: Include except.h
21777         (record_type_list, record_eh_tables): New function.
21778         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
21779
21780 2010-05-10  Jan Hubicka  <jh@suse.cz>
21781
21782         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
21783         __frame_dummy_init_array_entry, force_to_data): Attribute as used
21784         rather than unused.
21785
21786 2010-05-10  Michael Matz  <matz@suse.de>
21787
21788         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
21789         (can_reassociate_p): Use FLOAT_TYPE_P.
21790         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
21791         (vect_force_simple_reduction): ... this.
21792         * tree-parloops.c (gather_scalar_reductions): Use
21793         vect_force_simple_reduction.
21794         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
21795         vect_is_simple_reduction, add modify argument, if true rewrite
21796         "a-b" into "a+(-b)".
21797         (vect_is_simple_reduction, vect_force_simple_reduction): New
21798         functions.
21799         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
21800
21801 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
21802             Vladimir Makarov  <vmakarov@redhat.com>
21803
21804         PR rtl-optimization/44012
21805         * ira-build.c (remove_unnecessary_allocnos): Nullify
21806         regno_allocno_map of the removed allocno.
21807
21808 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21809
21810         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
21811         to /dev/null.
21812         * configure: Regenerate.
21813
21814 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
21815
21816         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
21817         unused.
21818         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
21819         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
21820         support in Sun ld.
21821         * configure: Regenerate.
21822
21823 2010-05-10  Richard Guenther  <rguenther@suse.de>
21824
21825         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
21826         marked if the entry identifier is marked.
21827
21828 2010-05-10  Richard Guenther  <rguenther@suse.de>
21829
21830         * c-common.c (struct c_common_attributes): Add fnspec attribute.
21831         (handle_fnspec_attribute): New function.
21832         * gimple.h (gimple_call_return_flags): Declare.
21833         (gimple_call_arg_flags): Likewise.
21834         * gimple.c (gimple_call_arg_flags): New function.
21835         (gimple_call_return_flags): Likewise.
21836         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
21837         New argument flags.
21838         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
21839         return value flags.
21840         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
21841         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
21842         main work to ...
21843         (make_heapvar_for): ... this new function.
21844         (handle_rhs_call): Handle fnspec attribute argument specifiers.
21845         (handle_lhs_call): Likewise.
21846         (find_func_aliases): Adjust.
21847
21848 2010-05-10  Richard Guenther  <rguenther@suse.de>
21849
21850         PR tree-optimization/44050
21851         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
21852
21853 2010-05-10  Wei Guozhi  <carrot@google.com>
21854
21855         PR target/42879
21856         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
21857
21858 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
21859
21860         PR c/10676
21861         * c-typeck.c (lookup_field): Take a type directly.  Update
21862         recursive calls.
21863         (build_component_ref): Update call to lookup_field.
21864         (set_init_label): Use lookup_field to find initialized field.
21865         Handle returned list of fields like a sequence of designators.
21866
21867 2010-05-09  Richard Guenther  <rguenther@suse.de>
21868
21869         PR middle-end/44024
21870         * fold-const.c (tree_single_nonzero_warnv_p): Properly
21871         handle &FUNCTION_DECL.
21872
21873 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
21874
21875         PR c/4784
21876         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
21877         structures and unions recursively.
21878         (detect_field_duplicates): Move duplicate detection with a hash to
21879         detect_field_duplicates_hash.  Always use a hash if anonymous
21880         structures or unions are present.
21881         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
21882         give errors.
21883
21884 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
21885
21886         PR target/44046
21887         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
21888         detect Atom, Core 2 and Core i7.
21889
21890 2010-05-09  Richard Guenther  <rguenther@suse.de>
21891
21892         * gcc.c (store_arg): Handle temporary file deletion for
21893         joined arguments.
21894
21895 2010-05-09  Richard Guenther  <rguenther@suse.de>
21896
21897         PR middle-end/44043
21898         * ipa-inline.c (estimate_function_body_sizes): Return after
21899         disregarding inline limits.
21900
21901 2010-05-09  Richard Guenther  <rguenther@suse.de>
21902
21903         * gcc.c (store_arg): Revert last change.
21904
21905 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
21906
21907         PR middle-end/28685
21908         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
21909         (optimize_ops_list): Call it.
21910
21911 2010-05-08  Richard Guenther  <rguenther@suse.de>
21912
21913         PR tree-optimization/44030
21914         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
21915         NECESSARY flag if we propagate from a inserted expression.
21916
21917 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
21918
21919         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
21920         domain types as equal if they are both PLACEHOLDER_EXPRs.
21921
21922 2010-05-08  Richard Guenther  <rguenther@suse.de>
21923
21924         * lto-wrapper.c (run_gcc): Remove linker output from
21925         command line for LTRANS invocation.
21926
21927 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
21928
21929         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
21930         lto-macho as lto_binary_reader.
21931         * target.h (struct gcc_target): New hooks lto_start and lto_end.
21932         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
21933         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
21934         in lto_start and lto_end calls.
21935         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
21936         magic numbers.
21937         (scan_prog_file): Update is_elf_or_coff call.
21938         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
21939
21940         * collect2.c (main): Fix enum comparison.
21941
21942         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
21943         Add prototypes.
21944         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
21945         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
21946         and TARGET_ASM_LTO_END.
21947         * darwin.c: Include obstack.h and lto-streamer.h.
21948         (lto_section_names_offset, lto_section_names_obstack,
21949         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
21950         global variables.
21951         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
21952         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
21953         to a temporary file.
21954         (darwin_asm_lto_end): New function.  Restore asm_out_file.
21955         (darwin_asm_named_section): For LTO sections, replace the name with
21956         the offset of the section name in a string table, and build this
21957         table.
21958         (darwin_file_start): Initialize global vars for LTO support.
21959         (darwin_file_end): If output to asm_out_file was redirected, append it
21960         to the proper asm_out_file here.  Add the section names section.
21961
21962 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
21963
21964         * c-pragma.c (pending_weak_d, pending_weak): New.
21965         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
21966         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
21967         handle_pragma_weak): Update the uses of pending_weaks.
21968
21969 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
21970
21971         PR documentation/44016
21972         * doc/standards.texi (Standards): Link to unversioned
21973         cxx0x_status.html page.
21974
21975 2010-05-07  Iain Sandoe  <iains@gcc.gnu.org>
21976
21977         PR target/43708
21978         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
21979         in addition to TREE_USED, to avoid "set but unused" warnings.
21980
21981 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
21982
21983         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
21984         (is_loop_prefetching_profitable): Do not insert prefetches
21985         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
21986         times the prefetch ahead distance.
21987
21988 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
21989
21990         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
21991         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
21992         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
21993         the unroll_factor.
21994
21995 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
21996
21997         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
21998         a diagnostic info when the insn-to-mem ratio is too small.
21999
22000 2010-05-07  Richard Guenther  <rguenther@suse.de>
22001
22002         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
22003         the linker plugin.
22004         (store_arg): Queue temp_filename for deletion instead of
22005         the whole argument.
22006
22007 2010-05-07  Richard Guenther  <rguenther@suse.de>
22008
22009         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
22010         (run_gcc): Handle LTRANS phase invocation.
22011         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
22012
22013 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
22014
22015         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
22016         this is also meaningful on PARM_DECLs and RESULT_DECLs.
22017
22018 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22019
22020         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
22021
22022 2010-05-07  Richard Guenther  <rguenther@suse.de>
22023
22024         PR tree-optimization/44020
22025         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
22026         code when PRE is not yet initialized.
22027
22028 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22029
22030         * config/mips/dbxmdebug.h: Remove.
22031         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
22032
22033 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
22034
22035         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
22036         with null pointer and also warn about ordered comparison of zero with
22037         pointer if -Wextra.
22038
22039 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
22040
22041         * graphite-blocking.c
22042         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
22043         * graphite-clast-to-gimple.c
22044         (clast_to_gcc_expression): Same.
22045         (precision_for_value): Same.
22046         (precision_for_interval): Same.
22047         (gcc_type_for_interval): Same.
22048         (graphite_create_new_guard): Same.
22049         (compute_bounds_for_level): Same.
22050         (graphite_create_new_loop_guard): Same.
22051         * graphite-interchange.c
22052         (build_linearized_memory_access): Same.
22053         (pdr_stride_in_loop): Same.
22054         (memory_strides_in_loop_1): Same.
22055         (memory_strides_in_loop): Same.
22056         (extend_scattering): Same.
22057         (psct_scattering_dim_for_loop_depth): Same.
22058         (pbb_number_of_iterations): Same.
22059         * graphite-poly.h
22060         (debug_iteration_domains): Same.
22061         * graphite-ppl.c
22062         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
22063         (ppl_set_inhomogeneous_gmp): Same.
22064         (ppl_strip_loop): Same.
22065         (ppl_lexico_compare_linear_expressions): Same.
22066         (ppl_read_polyhedron_matrix): Same.
22067         (ppl_max_for_le_pointset): Same.
22068         * graphite-ppl.h
22069         (ppl_read_polyhedron_matrix): Same.
22070         (tree_int_to_gmp): Same.
22071         (gmp_cst_to_tree): Same.
22072         (ppl_set_inhomogeneous): Same.
22073         (ppl_set_inhomogeneous_tree): Same.
22074         (ppl_set_coef): Same.
22075         (ppl_set_coef_tree): Same.
22076         * graphite-sese-to-poly.c
22077         (build_pbb_scattering_polyhedrons): Same.
22078         (build_scop_scattering): Same.
22079         (scan_tree_for_params_right_scev): Same.
22080         (scan_tree_for_params): Same.
22081         (find_params_in_bb): Same.
22082         (find_scop_parameters): Same.
22083         (add_upper_bounds_from_estimated_nit): Same.
22084         (build_loop_iteration_domains): Same.
22085         (add_condition_to_domain): Same.
22086         (pdr_add_memory_accesses): Same.
22087
22088 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
22089
22090         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
22091         CLooG's value_* macros to their respective mpz_* counterparts.
22092         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
22093         (graphite_create_new_loop_guard): Same.
22094         * graphite-interchange.c (build_linearized_memory_access): Same.
22095         (pdr_stride_in_loop): Same.
22096         (memory_strides_in_loop_1): Same.
22097         (1st_interchange_profitable_p): Same.
22098         * graphite-poly.c (extend_scattering): Same.
22099         (psct_scattering_dim_for_loop_depth): Same.
22100         (pbb_number_of_iterations): Same.
22101         (pbb_number_of_iterations_at_time): Same.
22102         * graphite-poly.h (new_1st_loop): Same.
22103         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
22104         (oppose_constraint): Same.
22105         (insert_constraint_into_matrix): Same.
22106         (ppl_set_inhomogeneous_gmp): Same.
22107         (ppl_set_coef_gmp): Same.
22108         (ppl_strip_loop): Same.
22109         (ppl_lexico_compare_linear_expressions): Same.
22110         (ppl_max_for_le_pointset): Same.
22111         (ppl_min_for_le_pointset): Same.
22112         (ppl_build_realtion): Same.
22113         * graphite-ppl.h (gmp_cst_to_tree): Same.
22114         (ppl_set_inhomogeneous): Same.
22115         (ppl_set_inhomogeneous_tree): Same.
22116         (ppl_set_coef): Same.
22117         (ppl_set_coef_tree): Same.
22118         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
22119         (build_scop_scattering): Same.
22120         (add_value_to_dim): Same.
22121         (scan_tree_for_params_right_scev): Same.
22122         (scan_tree_for_params_int): Same.
22123         (scan_tree_for_params): Same.
22124         (find_params_in_bb): Same.
22125         (find_scop_parameters): Same.
22126         (add_upper_bounds_from_estimated_nit): Same.
22127         (build_loop_iteration_domains): Same.
22128         (create_linear_expr_from_tree): Same.
22129         (add_condition_to_domain): Same.
22130         (pdr_add_memory_accesses): Same.
22131
22132 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
22133             Jason Merrill  <jason@redhat.com>
22134
22135         * c-common.c (c_common_reswords): Add nullptr.
22136         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
22137         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
22138         (gen_type_die_with_usage): Likewise.
22139         * dbxout.c (dbxout_type): Likewise.
22140         * sdbout.c (plain_type_1): Likewise.
22141
22142 2010-05-06  Jason Merrill  <jason@redhat.com>
22143
22144         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
22145         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
22146         ret appropriately.
22147         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
22148
22149         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
22150         stripping WITH_SIZE_EXPR.
22151         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
22152         change.
22153
22154 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
22155
22156         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
22157         list of obsolete configurations.
22158         Disabled check for obsolete configurations.
22159         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
22160         Removed support for previous versions.
22161         * config/mips/iris.h: Removed.
22162         * config/mips/iris5.h: Removed.
22163         * config/mips/iris6.h: Merged old iris.h contents.
22164         (TARGET_IRIX): Removed.
22165         (DRIVER_SELF_SPECS): Removed mabi=32.
22166         (IDENT_ASM_OP): Removed undef.
22167         (STARTFILE_SPEC): Removed mabi=32.
22168         (ENDFILE_SPEC): Likewise.
22169         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
22170         (MACHINE_TYPE): Update for IRIX 6.5.
22171         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
22172         TARGET_IRIX by TARGET_IRIX6.
22173         (mips_file_start): Likewise.
22174         (mips_output_external): Remove IRIX 5/6 O32 support.
22175         (mips_output_function_prologue): Likewise.
22176         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
22177         TARGET_IRIX6.
22178         (TARGET_CPU_CPP_BUILTINS): Likewise.
22179         (TARGET_IRIX): Removed.
22180         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
22181         (MULTILIB_DIRNAMES): Removed 32.
22182         (MULTILIB_OSDIRNAMES): Removed ../lib.
22183         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
22184         (Specific, mips-sgi-irix5): Document removal.
22185         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
22186         Remove references to older IRIX 6 releases and the O32 ABI.
22187
22188 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
22189
22190         PR bootstrap/43994
22191         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
22192         instead of DF_REF_REAL_REG.
22193
22194 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
22195
22196         PR target/43888
22197         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
22198         handling to still return true for x64 targets.
22199
22200 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
22201
22202         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
22203
22204 2010-05-06  Jan Hubicka  <jh@suse.cz>
22205
22206         PR tree-optimization/43791
22207         * ipa-inline.c (update_caller_keys): Remove bogus
22208         disregard_inline_limits check.
22209
22210 2010-05-06  Michael Matz  <matz@suse.de>
22211
22212         PR tree-optimization/43984
22213         * tree-ssa-pre.c (inserted_phi_names): Remove.
22214         (inserted_exprs): Change to bitmap.
22215         (create_expression_by_pieces): Set bits, don't append to vector.
22216         (insert_into_preds_of_block): Don't handle inserted_phi_names.
22217         (eliminate): Don't look at inserted_phi_names, remove deleted
22218         insns from inserted_exprs.
22219         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
22220         (init_pre, fini_pre): Allocate and free bitmaps.
22221         (execute_pre): Insert insns on edges before elimination.
22222
22223 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
22224
22225         * tree.c (initializer_zerop): Handle STRING_CST.
22226
22227 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22228
22229         PR 40989
22230         * doc/invoke.texi (Wimplicit): Document as C only.
22231         * opts.c (common_handle_option): Add argument kind.
22232         (handle_option): Rename as read_cmdline_option. Factor out code to...
22233         (handle_option): ... here. New.
22234         (handle_options): Rename as read_cmdline_options.
22235         (decode_options): Update call.
22236         (set_option): Use option index instead of option pointer. Classify
22237         diagnostics correctly.
22238         (enable_warning_as_error): Call handle_option.
22239         * opts.h (set_option): Update declaration.
22240         (handle_option): Declare.
22241         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
22242         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
22243         * c-opts.c (set_Wimplicit): Delete.
22244         (c_family_lang_mask): New static constant.
22245         (c_common_handle_option): Add argument kind. Use handle_option
22246         instead of set_Wimplicit.
22247         (c_common_post_options): warn_implicit and warn_implicit_int
22248         are disabled by default.
22249         * c-common.c (warn_implicit): Do not define here.
22250         * c-common.h (warn_implicit): Do not declare here.
22251         (c_common_handle_option): Update declaration.
22252         * lto-opts.c (lto_reissue_options): Update call to set_option.
22253
22254 2010-05-06  Richard Guenther  <rguenther@suse.de>
22255
22256         PR tree-optimization/43571
22257         * domwalk.c (walk_dominator_tree): Walk the dominator
22258         sons in more optimal order.
22259
22260 2010-05-06  Richard Guenther  <rguenther@suse.de>
22261
22262         PR tree-optimization/43934
22263         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
22264         (stmt_cost): Likewise.
22265         (extract_true_false_args_from_phi): New helper.
22266         (determine_max_movement): For PHI nodes verify we can hoist them
22267         and compute their cost.
22268         (determine_invariantness_stmt): Handle PHI nodes.
22269         (move_computations_stmt): Likewise.  Hoist PHI nodes in
22270         if-converted form using COND_EXPRs.
22271         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
22272         (tree_ssa_lim): Likewise.
22273         * tree-flow.h (tree_ssa_lim): Adjust prototype.
22274         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
22275
22276 2010-05-06  Richard Guenther  <rguenther@suse.de>
22277
22278         PR tree-optimization/43987
22279         * tree-ssa-structalias.c (could_have_pointers): For possibly
22280         address-taken variables force pointers to be recorded.
22281         (create_variable_info_for_1): Likewise.
22282         (push_fields_onto_fieldstack): Pass in wheter all fields
22283         must have pointers.
22284         (find_func_aliases): Query types instead of vars whether
22285         they contain pointers where appropriate.
22286
22287 2010-05-06  Jan Hubicka  <jh@suse.cz>
22288
22289         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
22290         (record_reference, mark_address, mark_load, mark_store): Record
22291         references.
22292         (record_references_in_initializer): Update call of record_references.
22293         (rebuild_cgraph_edges): Remove all references before rebuiding.
22294         * cgraph.c (cgraph_create_node): Clear ref list.
22295         (cgraph_remove_node): Remove references.
22296         (dump_cgraph_node): Dump references.
22297         (cgraph_clone_node): Clone references.
22298         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
22299         (struct cgraph_node, varpool_node): Add ref_lst.
22300         * ipa-ref.c: New file.
22301         * ipa-ref.h: New file.
22302         * ipa-ref-inline.h: New file.
22303         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
22304         (referenced_from_other_partition_p): New function.
22305         (lto_output_varpool_node): Take set arugment; call
22306         referenced_from_other_partition.
22307         (lto_output_ref): New.
22308         (add_references): New.
22309         (output_refs): New.
22310         (output_cgraph): Compute boundary based on references; output refs.
22311         (output_varpool): Accept cgraph_node_set argument.
22312         (input_ref): New.
22313         (input_refs): New.
22314         (input_cgraph): Call input_refs.
22315         * lto-section-in.c (lto_section_name): Add refs.
22316         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
22317         (ipa-ref.o): New file.
22318         * varpool.c (varpool_node): Clear ipa ref list.
22319         (varpool_remove_node): Remove references.
22320         (dump_varpool_node): Dump references.
22321         (varpool_assemble_decl): Only compile finalized ones.
22322         (varpool_extra_name_alias): Initialize ref list.
22323         * lto-streamer.c (lto-get_section_name): Add .refs section.
22324         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
22325         (referenced_from_other_partition_p): Declared.
22326
22327 2010-05-06  Ira Rosen  <irar@il.ibm.com>
22328
22329         PR tree-optimization/43901
22330         * tree-vect-stmts.c (vectorizable_call): Assert that vector
22331         type is not NULL if it's transformation phase, and return
22332         FALSE if it's analysis.
22333         (vectorizable_conversion, vectorizable_operation,
22334         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
22335
22336 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
22337
22338         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
22339         Delete.
22340         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
22341         New define.
22342         * config/mips/mips-protos.h
22343         (mips_small_register_classes_for_mode_p): Delete prototype.
22344
22345 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
22346
22347         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
22348         * config/arm/arm.c (multiple_operation_profitable_p,
22349         compute_offset_order): New static functions.
22350         (load_multiple_sequence, store_multiple_sequence): Use them.
22351         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
22352         memory offsets, not register numbers.
22353         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
22354
22355 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
22356
22357         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
22358         (get_pending_sizes, put_pending_size, put_pending_sizes):
22359         Update the uses of pending_sizes.
22360         * c-decl.c (store_parm_decls): Likewise.
22361         * c-tree.h (struct c_arg_info): Likewise.
22362         * tree.h: Update the prototype for get_pending_sizes and
22363         put_pending_sizes.
22364
22365 2010-05-05  Jason Merrill  <jason@redhat.com>
22366
22367         PR debug/43370
22368         * c-common.c (handle_aligned_attribute): Respect
22369         ATTR_FLAG_TYPE_IN_PLACE.
22370
22371         PR testsuite/43758
22372         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
22373         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
22374         (TARGET_INITIALIZER): Use it.
22375         * c-common.c (attribute_takes_identifier_p): Call it.
22376         * c-common.h: Update prototype.
22377         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
22378         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
22379
22380 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
22381
22382         PR debug/43950
22383         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
22384         DW_ID_down_case for Fortran compilation units.
22385
22386 2010-05-05  Jan Hubicka  <jh@suse.cz>
22387
22388         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
22389         handle aliases.
22390
22391 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
22392
22393         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
22394         a variable-sized RESULT_DECL.
22395
22396 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
22397
22398         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
22399
22400 2010-05-05  Jason Merrill  <jason@redhat.com>
22401
22402         PR c++/43787
22403         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
22404         returns GS_OK.
22405         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
22406
22407 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
22408             Jakub Jelinek  <jakub@redhat.com>
22409
22410         PR debug/43478
22411         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
22412         (dead_debug_init, dead_debug_finish): New functions.
22413         (dead_debug_add, dead_debug_insert_before): Likewise.
22414         (df_note_bb_compute): Initialize a dead_debug object, add dead
22415         debug uses to it, insert debug bind insns before death insns,
22416         reset debug insns that refer to pending uses at the end.
22417         * rtl.h (make_debug_expr_from_rtl): New prototype.
22418         * varasm.c (make_debug_expr_from_rtl): New function.
22419
22420 2010-05-05  Jan Hubicka  <jh@suse.cz>
22421
22422         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
22423         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
22424         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
22425         lto_varpool_encoder_deref, lto_varpool_encoder_size,
22426         lto_varpool_encoder_encode_initializer_p,
22427         lto_set_varpool_encoder_encode_initializer): New functions.
22428         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
22429         call output_varpool.
22430         (input_varpool_node): Do not always set analyzed.
22431         (input_cgraph_1): Return vector of cgraph nodes.
22432         (input_varpool_1): Return vector of varpools.
22433         (input_cgraph): Free the vectors.
22434         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
22435         output only initializers needed.
22436         (lto_output): Only call output_cgraph.
22437         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
22438         * lto-section-out.c (lto_new_out_decl_state): Initialize
22439         state->varpool_node_encoder.
22440         * lto-streamer.h (lto_varpool_encoder_d): New.
22441         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
22442         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
22443         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
22444         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
22445         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
22446         Declare.
22447         (output_varpool, input_varpool): Remove declarations.
22448
22449 2010-05-05  Jan Hubicka  <jh@suse.cz>
22450
22451         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
22452         with body can prevail.
22453
22454 2010-05-05  Jan Hubicka  <jh@suse.cz>
22455
22456         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
22457         size.
22458
22459 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
22460
22461         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
22462
22463         * gengtype.h (erro_at_line): Constify pos argument.
22464
22465         * gengtype.c: Include hashtab.h.
22466         (enum gc_used): Document GC_MAYBE_POINTED_TO.
22467         (error_at_line): Constify pos argument.
22468         (do_typedef): Initialize p->opt field.
22469         (get_file_gtfilename): Fix comment typo.
22470         (struct walk_type_data): Constify line field.
22471         (get_output_file_for_structure): New function.
22472         (write_local_func_for_structure): Constify orig_s argument.
22473         Use get_output_file_for_structure.
22474         (write_func_for_structure): Use get_output_file_for_structure.
22475         (INDENT): New define.
22476         (dump_pair, dump_type, dump_type_list, dump_typekind)
22477         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
22478         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
22479         functions.
22480         (seen_types): New variable.
22481         (main): New variable do_dump.  Process "-d" command line option.
22482         Call dump_everything if dump requested.
22483
22484 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
22485
22486         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
22487         in a temporary instead of invoking the macro multiple times.
22488         (track_expr_p): Likewise.
22489
22490 2010-05-04  Neil Vachharajani  <nvachhar@google.com>
22491
22492         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
22493         per new semantics.
22494         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
22495         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
22496         conditions for printing notes.
22497         * common.opt (-Wcoverage-mismatch): Allow negative, default to
22498         true, update documentation.
22499         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
22500
22501 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
22502
22503         PR c/43981
22504         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
22505         on dimen.
22506
22507 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
22508
22509         PR target/43799
22510         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
22511         (*sse_prologue_save_insn1): Likewise.
22512         (SSE prologue save splitter): Likewise.
22513
22514 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
22515
22516         * tree.c (free_lang_data_in_one_sizepos): New inline function.
22517         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
22518         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
22519         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
22520         all decls.  Call it on DECL_FIELD_OFFSET of fields.
22521         (find_decls_types_r): Follow DECL_VALUE_EXPR.
22522         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
22523
22524 2010-05-04  Martin Jambor  <mjambor@suse.cz>
22525
22526         * tree-sra.c (build_access_from_expr_1): The first parameter type
22527         changed to simple tree.
22528         (build_access_from_expr): Likewise, gsi parameter was eliminated.
22529         (scan_assign_result): Renamed to assignment_mod_result, enum elements
22530         renamed as well.
22531         (build_accesses_from_assign): Removed all parameters except for a
22532         simple gimple statement.  Now returns a simple bool.
22533         (scan_function): All non-analysis parts moved to separate functions
22534         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
22535         parameters and updated both callers.
22536         (sra_modify_expr): Removed parameter data.
22537         (sra_modify_function_body): New function.
22538         (perform_intra_sra): Call sra_modify_function_body to modify the
22539         function body.
22540         (replace_removed_params_ssa_names): Parameter data changed into
22541         adjustments vector.
22542         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
22543         changed the parameter dont_convert to convert with the opposite
22544         meaning.
22545         (sra_ipa_modify_assign): Parameter data changed into adjustments
22546         vector, return value changed to bool.
22547         (ipa_sra_modify_function_body): New function.
22548         (sra_ipa_reset_debug_stmts): Updated a comment.
22549         (modify_function): Use ipa_sra_modify_function_body to modify function
22550         body.
22551
22552 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
22553
22554         PR middle-end/43671
22555         * alias.c (true_dependence): Handle the same VALUE in x and mem.
22556         (canon_true_dependence): Likewise.
22557         (write_dependence_p): Likewise.
22558
22559 2010-05-04  Jan Hubicka  <jh@suse.cz>
22560
22561         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
22562         * cgraphbuild.c: Include ipa-utils.h
22563         (record_reference_ctx): New struct.
22564         (record_reference): Simplify to work on initializers; not statements.
22565         (mark_address, mark_load, mark_store): New.
22566         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
22567         walk PHI nodes too.
22568         (record_references_in_initializer): Update use of record_reference.
22569         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
22570         walk PHI nodes too.
22571
22572 2010-05-04  Jan Hubicka  <jh@suse.cz>
22573
22574         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
22575         node will be removed anyway.
22576         (lto_varpool_replace_node): Allow also unanalyzed nodes;
22577         relink aliases of node into prevailing node.
22578         * varpool.c (varpool_remove_node): Remove aliases properly;
22579         when removing node, remove all its aliases too; remove DECL_INITIAL
22580         of removed node; ggc_free the varpool node.
22581
22582 2010-05-04  Richard Guenther  <rguenther@suse.de>
22583
22584         PR tree-optimization/43879
22585         * tree-ssa-structalias.c (alias_get_name): Use
22586         DECL_ASSEMBLER_NAME if available.
22587         (create_function_info_for): Return the varinfo node.
22588         (ipa_pta_execute): Associate same-body aliases and extra names
22589         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
22590
22591 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
22592
22593         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
22594
22595 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
22596
22597         PR bootstrap/43964
22598         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
22599         only if HONOR_REG_ALLOC_ORDER is not defined.
22600
22601 2010-05-04  Richard Guenther  <rguenther@suse.de>
22602
22603         PR tree-optimization/43949
22604         * tree-vrp.c (extract_range_from_binary_expr): Only handle
22605         TRUNC_MOD_EXPR.
22606
22607 2010-04-26  Jason Merrill  <jason@redhat.com>
22608
22609         * c.opt (-fstrict-enums): New.
22610         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
22611
22612 2010-05-03  David Ung  <davidu@mips.com>
22613             James E. Wilson  <wilson@codesourcery.com>
22614
22615         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
22616         emit the trap instruction before the divide for TUNE_74K.
22617
22618 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
22619
22620         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
22621         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
22622         based on the above, for new target hook.
22623
22624         * hooks.c (hook_bool_mode_true): New generic hook.
22625         * hooks.h (hook_bool_mode_true): Add prototype.
22626
22627         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
22628         target hook.
22629         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
22630         target hook, set to hook_bool_mode_false.
22631         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
22632         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
22633         with targetm.small_register_classes_for_mode_p.
22634         (find_reusable_reload): Likewise.
22635         (combine_reloads): Likewise.
22636         * reload1.c (reload_as_needed): Likewise.
22637         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
22638         * ifcvt.c (noce_process_if_block, check_cond_move_block,
22639         dead_or_predicable): Likewise.
22640         * regmove.c (optimize_reg_copy_1): Likewise.
22641         * calls.c (prepare_call_address): Likewise.
22642         (precompute_register_parameters): Likewise.
22643
22644         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
22645         hook definition.
22646         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
22647         implementation of the hook that considers all register classes
22648         small except for SH64.
22649         (sh_override_options): Use the new hook.
22650         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
22651         Add prototype.
22652
22653         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
22654         hook definition.
22655         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
22656         implementation of the hook that considers all register classes
22657         small for THUMB1.
22658         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
22659         Add prototype.
22660
22661         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
22662         hook definition.
22663         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
22664         implementation of the hook that considers all register classes
22665         small for MIPS16.
22666         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
22667         Add prototype.
22668
22669         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
22670         hook definition.
22671         * config/m32c/m32c.h: Likewise.
22672         * config/pdp11/pdp11.h: Likewise.
22673         * config/avr/avr.h: Likewise.
22674         * config/xtensa/xtensa.h: Likewise.
22675         * config/m68hc11/m68hc11.h: Likewise.
22676         * config/mn10300/mn10300.h: Likewise.
22677         * config/mcore/mcore.h: Likewise.
22678         * config/h8300/h8300.h: Likewise.
22679         * config/bfin/bfin.h: Likewise.
22680
22681         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
22682         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
22683
22684 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
22685
22686         * double-int.h (tree_to_double_int): Remove macro.
22687         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
22688         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
22689         (tree_to_double_int): New function.
22690         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
22691         Move ...
22692         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
22693
22694 2010-05-03  Richard Guenther  <rguenther@suse.de>
22695
22696         PR tree-optimization/43971
22697         * tree-ssa-structalias.c (get_constraint_for_1): Fix
22698         constraints in the !flag_delete_null_pointer_checks case.
22699
22700 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
22701
22702         PR debug/43972
22703         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
22704         result mode matches original rtl mode.
22705
22706 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
22707
22708         PR target/43888
22709         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
22710
22711 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
22712
22713         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
22714         when processing flag options.
22715
22716 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
22717
22718         * gcov-iov.c (main): Change format string placeholder
22719         from %#08x to 0x%08x.
22720         * genchecksum.c (dosum): Change format string placeholder
22721         from %#02x to 0x%02x.
22722
22723 2010-05-02  Richard Guenther  <rguenther@suse.de>
22724
22725         PR tree-optimization/43879
22726         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
22727
22728 2010-05-02  Bruno Haible  <bruno@clisp.org>
22729
22730         * doc/extend.texi (Function Attributes): Fix a typo.
22731
22732 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
22733
22734         Revert:
22735         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
22736         placeholder from 0x%x to %#x.
22737         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
22738         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
22739         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
22740         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
22741         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
22742         * config/i386/i386.c (ix86_target_string): Ditto.
22743         * config/i386/i386.c (output_pic_addr_const): Ditto.
22744         (print_operand): Ditto.
22745
22746 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
22747
22748         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
22749         placeholder from 0x%x to %#x.
22750         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
22751         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
22752         (ASM_OUTPUT_DEBUG_DATA): Ditto.
22753         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
22754         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
22755         * optc-gen.awk: Ditto.
22756         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
22757         (HOST_WIDE_INT_PRINT_HEX): Ditto.
22758         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
22759         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
22760
22761 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
22762
22763         * target.h (struct calls): Add function_value_regno_p field.
22764         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
22765         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
22766         * targhooks.c (default_function_value_regno_p): New function.
22767         * targhooks.h (default_function_value_regno_p): Declare function.
22768         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
22769         * builtins.c. (apply_result_size): (Ditto.).
22770         * combine.c. (likely_spilled_retval_p): (Ditto.).
22771         * mode-switching.c. Include 'target.h'.
22772         (create_pre_exit): Use function_value_regno_p hook.
22773         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
22774         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
22775         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
22776
22777         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
22778         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
22779         (ix86_function_value_regno_p): Declare as static, change argument
22780         type to const unsigned int.
22781         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
22782
22783 2010-05-01  Richard Guenther  <rguenther@suse.de>
22784
22785         PR tree-optimization/43949
22786         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
22787         types.
22788         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
22789
22790 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
22791
22792         * rtl.h (CONST_DOUBLE_P): Define.
22793         (rtx_to_double_int): Declare.
22794         * emit-rtl.c (rtx_to_double_int): New function.
22795         * dwarf2out.c (insert_double): New function.
22796         (loc_descriptor, add_const_value_attribute): Clean up, use
22797         rtx_to_double_int and insert_double functions.
22798
22799 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
22800
22801         * doc/extend.texi (Inline): Add missing return keyword to examples.
22802         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
22803         "command-line".
22804
22805 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
22806
22807         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
22808         the variable part of the offset as well.  Use highest_pow2_factor for
22809         all alignment checks.
22810
22811 2010-04-30  Richard Guenther  <rguenther@suse.de>
22812
22813         PR tree-optimization/43879
22814         * tree-ssa-structalias.c (type_could_have_pointers): Functions
22815         can have pointers.
22816
22817 2010-04-30  Jan Hubicka  <jh@suse.cz>
22818
22819         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
22820         varpool.
22821         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
22822
22823 2010-04-30  Jan Hubicka  <jh@suse.cz>
22824
22825         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
22826         New.
22827         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
22828         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
22829         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
22830         cgraph_node_set_needs_ltrans_p): Remove.
22831
22832 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
22833
22834         * sdbout.c: Include vec.h, do not include varray.h.
22835         (deferred_global_decls, sdbout_global_decl,
22836         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
22837         * toplev.c: Do not include varray.h.
22838         (dump_memory_report): Do not dump VARRAY statistics.
22839         * gengtype.c (open_base_file): Ignore varray.h.
22840         * Makefile.in: Update for abovementioned changes.
22841         Remove all traces of varray.c and varray.h.
22842         * varray.c: Remove file.
22843         * varray.h: Remove file.
22844
22845 2010-04-30  Jan Hubicka  <jh@suse.cz>
22846
22847         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
22848         references.
22849
22850 2010-04-30  Jan Hubicka  <jh@suse.cz>
22851
22852         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
22853         needed.
22854
22855 2010-04-30  Richard Guenther  <rguenther@suse.de>
22856
22857         * tree-ssa-structalias.c (get_constraint_for_1): Generate
22858         constraints for CONSTRUCTOR.
22859
22860 2010-04-30  Richard Guenther  <rguenther@suse.de>
22861
22862         PR lto/43946
22863         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
22864         first after all lowering passes.
22865
22866 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
22867
22868         * toplev.c: Include varray.h for statistics dumping.
22869         * tree.h: Do not declare varray_head_tag.
22870         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
22871         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
22872         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
22873         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
22874         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
22875         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
22876         c-common.c, c-common.h, reg-stack.c, basic-block.h,
22877         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
22878         include varray.h.
22879         * Makefile.in: Update for abovementioned changes.
22880
22881 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
22882
22883         PR debug/43942
22884         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
22885
22886 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
22887
22888         * config/picochip/picochip.c (picochip_legitimize_address): Define.
22889         Use this function to do machine-specific conversion.
22890         (picochip_legitimize_reload_address): Likewise.
22891         (picochip_legitimate_address_p): Check valid base register only if
22892         strict.
22893         (picochip_check_conditional_copy): Check for modw only if opnd is
22894         register.
22895         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
22896         to call the function in c.
22897         * config/picochip/picochip-protos.h
22898         (picochip_legitimize_reload_address): Define.
22899         * config/picochip/picochip.md (supported_compare1): Define.
22900
22901 2010-04-30  Jan Hubicka  <jh@suse.cz>
22902
22903         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
22904         (cgraph_global_info): Remove inlined.
22905         (LTO_cgraph_tag_names): Remove.
22906         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
22907         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
22908         simplify cgraph tags and document.
22909         (lto_output_node): Use only LTO_cgraph_unavail_node and
22910         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
22911         for_functions_valid, global info, process and output flags.
22912         (input_overwrite_node): Initialize estimated stack size and
22913         estimated growth.  Do not read flags we no longer store.
22914         (input_node): Likewise do not read info no longer stored.
22915         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
22916         flag.
22917
22918 2010-04-30  Richard Guenther  <rguenther@suse.de>
22919
22920         PR tree-optimization/43879
22921         * tree-ssa-structalias.c (get_constraint_for_1): Properly
22922         handle non-zero initializers.
22923
22924 2010-04-30  Richard Guenther  <rguenther@suse.de>
22925
22926         * builtins.c (fold_builtin_1): Delete free (0).
22927
22928 2010-04-29  Jan Hubicka  <jh@suse.cz>
22929
22930         * gengtype.c (open_base_files): Add lto-streamer.h
22931         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
22932         (pass_ipa_cp): GGC collect.
22933         * toplev. (compile_file): Do not output symbols.
22934         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
22935         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
22936         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
22937         * lto-section-in.c: Include ggc.h
22938         (lto_new_in_decl_state): Alloc in GGC.
22939         (lto_delete_in_decl_state): Likewise.
22940         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
22941         Collect.
22942
22943 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
22944
22945         PR target/42895
22946         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
22947         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
22948         (HONOR_REG_ALLOC_ORDER): Describe new macro.
22949         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
22950         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
22951         account only if HONOR_REG_ALLOC_ORDER is not defined.
22952         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
22953         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
22954
22955 2010-04-29  Jon Grant  <04@jguk.org>
22956
22957         * collect2.c (vflag): Change type from int to bool.
22958         (debug): Likewise.
22959         (helpflag): New global bool.
22960         (main): Set vflag and debug with boolean, not integer truth values.
22961         Accept new "--help" option and output usage text if found.
22962         * collect2.h (vflag): Update prototype.
22963         (debug): Likewise.
22964
22965 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
22966
22967         PR bootstrap/43936
22968         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
22969
22970 2010-04-29  Richard Guenther  <rguenther@suse.de>
22971
22972         PR bootstrap/43935
22973         * plugin.h (invoke_plugin_callbacks): Annotate arguments
22974         with ATTRIBUTE_UNUSED.
22975
22976 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
22977
22978         PR target/43921
22979         * config/i386/i386.c (get_some_local_dynamic_name): Replace
22980         INSN_P with NONDEBUG_INSN_P.
22981         (distance_non_agu_define): Likewise.
22982         (distance_agu_use): Likewise.
22983
22984 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
22985
22986         From Dominique d'Humieres  <dominiq@lps.ens.fr>
22987         PR bootstrap/43858
22988         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
22989         test_set.
22990
22991 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
22992
22993         * plugin.h (invoke_plugin_callbacks): New inline function.
22994         * plugin.c (flag_plugin_added): New global flag.
22995         (add_new_plugin): Initialize above flag.
22996         (invoke_plugin_callbacks): Rename to ...
22997         (invoke_plugin_callbacks_full): ... this.
22998
22999 2010-04-28  Jan Hubicka  <jh@suse.cz>
23000
23001         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
23002         (lto_varpool_replace_node): New.
23003         (lto_symtab_resolve_symbols): Resolve varpool nodes.
23004         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
23005         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
23006         * cgraph.h (varpool_node_ptr): New type.
23007         (varpool_node_ptr): New vector.
23008         (varpool_node_set_def): New structure.
23009         (varpool_node_set): New type.
23010         (varpool_node_set): New vector.
23011         (varpool_node_set_element_def): New structure.
23012         (varpool_node_set_element, const_varpool_node_set_element): New types.
23013         (varpool_node_set_iterator): New type.
23014         (varpool_node): Add prev pointers, add used_from_other_partition,
23015         in_other_partition.
23016         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
23017         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
23018         varpool_get_node, varpool_remove_node): Declare.
23019         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
23020         varpool_node_set_size): New inlines.
23021         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
23022         * tree-pass.h (varpool_node_set_def): Forward declare.
23023         (ipa_opt_pass_d): Summary writting takes vnode sets too.
23024         (ipa_write_optimization_summaries): Update prototype.
23025         * ipa-cp.c (ipcp_write_summary): Update.
23026         * ipa-reference.c (ipa_reference_write_summary): Update.
23027         * lto-cgraph.c (lto_output_varpool_node): New static function.
23028         (output_varpool): New function.
23029         (input_varpool_node): New static function.
23030         (input_varpool_1): New function.
23031         (input_cgraph): Input varpool.
23032         * ipa-pure-const.c (pure_const_write_summary): Update.
23033         * lto-streamer-out.c (lto_output): Update, output varpool too.
23034         (write_global_stream): Kill WPA hack.
23035         (produce_asm_for_decls): Update.
23036         (output_alias_pair_p): Handle variables.
23037         (output_unreferenced_globals): Output only needed partition of varpool.
23038         * ipa-inline.c (inline_write_summary): Update.
23039         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
23040         cgraph.
23041         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
23042         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
23043         varpool_node_set_new, varpool_node_set_add,
23044         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
23045         debug_varpool_node_set): New functions.
23046         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
23047         (execute_one_pass): Process new decls too.
23048         (ipa_write_summaries_2): Pass around vsets.
23049         (ipa_write_summaries_1): Likewise.
23050         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
23051         to add.
23052         (ipa_write_optimization_summaries_1): Pass around vsets.
23053         (ipa_write_optimization_summaries): Likewise.
23054         * varpool.c (varpool_get_node): New.
23055         (varpool_node): Update doubly linked lists.
23056         (varpool_remove_node): New.
23057         (dump_varpool_node): More dumping.
23058         (varpool_enqueue_needed_node): Update doubly linked lists.
23059         (decide_is_variable_needed): Kill ltrans hack.
23060         (varpool_finalize_decl): Kill lto hack.
23061         (varpool_assemble_decl): Skip decls in other partitions.
23062         (varpool_assemble_pending_decls): Update doubly linkes lists.
23063         (varpool_empty_needed_queue): Likewise.
23064         (varpool_extra_name_alias): Likewise.
23065         * lto-streamer.c (lto_get_section_name): Add vars section.
23066         * lto-streamer.h (lto_section_type): Update.
23067         (output_varpool, input_varpool): Declare.
23068
23069 2010-04-28  Mike Stump  <mikestump@comcast.net>
23070
23071         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
23072
23073 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
23074
23075         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
23076         record or union type with RECORD_OR_UNION_TYPE_P predicate.
23077         (lto_input_ts_type_tree_pointers): Likewise.
23078         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
23079         (lto_output_ts_type_tree_pointers): Likewise.
23080
23081 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
23082
23083         Uniquization of constants at the Tree level
23084         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
23085         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
23086         bit to the end.
23087         (tree_output_constant_def): Declare.
23088         * gimplify.c (gimplify_init_constructor): When using block copy, first
23089         uniquize the constant constructor on the RHS.
23090         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
23091         DECL_IN_CONSTANT_POOL flag.
23092         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
23093         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
23094         constant pool.
23095         (assemble_variable): Deal with symbols belonging to the tree constant
23096         pool.
23097         (get_constant_section): Add ALIGN parameter and simplify.
23098         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
23099         (assemble_constant_contents): Use the expression of the VAR_DECL.
23100         (output_constant_def_contents): Use the alignment of the VAR_DECL.
23101         (tree_output_constant_def): New global function.
23102         (mark_constant): Use the expression of the VAR_DECL.
23103         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
23104         its expression.
23105         (output_object_block): Likewise and assemble the expression.
23106
23107 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
23108
23109         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
23110         hash_tree, eq_tree): New tree hash table.
23111         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
23112         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
23113         lto_orig_address_remove): Reimplement.
23114
23115 2010-04-28  Xinliang David Li  <davidxl@google.com>
23116
23117         PR c/42643
23118         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
23119         (compute_uninit_opnds_pos): New function.
23120         (is_non_loop_exit_postdominating): New function.
23121         (compute_control_dep_chain): New function.
23122         (find_pdom): New function.
23123         (convert_control_dep_chain_into_preds): New function.
23124         (find_predicates): New function.
23125         (find_control_equiv_block): New function.
23126         (collect_phi_def_edges): New function.
23127         (find_def_preds): New function.
23128         (find_dom): New function.
23129         (dump_predicates): New function.
23130         (get_cmp_code): New function.
23131         (is_value_included_in): New function.
23132         (find_matching_predicate_in_rest_chains): New function.
23133         (use_pred_not_overlap_with_undef_path_pred): New function.
23134         (is_use_properly_guarded): New function.
23135         (normalize_cond_1): New function.
23136         (is_and_or_or): New function.
23137         (normalize_cond): New function.
23138         (is_gcond_subset_of): New function.
23139         (is_subset_of_any): New function.
23140         (is_or_set_subset_of): New function.
23141         (is_and_set_subset_of): New function.
23142         (is_norm_cond_subset_of): New function.
23143         (is_pred_expr_subset_of): New function.
23144         (is_pred_chain_subset_of): New function.
23145         (is_included_in): New function.
23146         (is_superset_of): New function.
23147         (find_uninit_use): New function.
23148         (warn_uninitialized_phi): New function.
23149         (compute_possibly_undefined_names): New function.
23150         (ssa_undefined_value_p): New function.
23151         (execute_late_warn_uninitialized): New function.
23152         * tree-ssa.c (ssa_undefined_value_p): Removed.
23153         (warn_uninit): Changed to extern.
23154         (warn_uninitialized_phi): Removed.
23155         (warn_uninitialized_vars): Changed to extern.
23156         (execute_late_warn_uninitialized): Removed
23157         * tree-flow.h: Add new prototypes.
23158         * timevar.def: Add new time variable.
23159         * Makefile.in: Add new build file.
23160
23161 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
23162
23163         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
23164         type if available.
23165
23166 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
23167
23168         PR target/22224
23169         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
23170
23171 2010-04-28  Martin Jambor  <mjambor@suse.cz>
23172
23173         * cgraph.h (struct cgraph_node): New field indirect_calls.
23174         (struct cgraph_indirect_call_info): New type.
23175         (struct cgraph_edge): Removed field indirect_call. New fields
23176         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
23177         (cgraph_create_indirect_edge): Declare.
23178         (cgraph_make_edge_direct): Likewise.
23179         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
23180         * ipa-prop.h (struct ipa_param_call_note): Removed.
23181         (struct ipa_node_params): Removed field param_calls.
23182         (ipa_create_all_structures_for_iinln): Declare.
23183         * cgraph.c: Described indirect edges and uids in initial comment.
23184         (cgraph_add_edge_to_call_site_hash): New function.
23185         (cgraph_edge): Search also among the indirect edges, use
23186         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
23187         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
23188         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
23189         site hash.
23190         (initialize_inline_failed): Assign a reason to indirect edges.
23191         (cgraph_create_edge_1): New function.
23192         (cgraph_create_edge): Moved some functionality to
23193         cgraph_create_edge_1.
23194         (cgraph_create_indirect_edge): New function.
23195         (cgraph_edge_remove_callee): Add an assert checking for
23196         non-indirectness.
23197         (cgraph_edge_remove_caller): Special-case indirect edges.
23198         (cgraph_remove_edge): Likewise.
23199         (cgraph_set_edge_callee): New function.
23200         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
23201         (cgraph_make_edge_direct): New function.
23202         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
23203         the declaration of the call statement matches.
23204         (cgraph_node_remove_callees): Special-case indirect edges.
23205         (cgraph_clone_edge): Likewise.
23206         (cgraph_clone_node): Clone also the indirect edges.
23207         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
23208         indirect_call, dump count of indirect_calls edges.
23209         * ipa-prop.c (iinlining_processed_edges): New variable.
23210         (ipa_note_param_call): Create indirect edges instead of
23211         creating notes.  New parameter node.
23212         (ipa_analyze_call_uses): New parameter node, pass it on to
23213         ipa_note_param_call.
23214         (ipa_analyze_stmt_uses): Likewise.
23215         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
23216         (print_edge_addition_message): Work on edges rather than on notes.
23217         (update_call_notes_after_inlining): Likewise, renamed to
23218         update_indirect_edges_after_inlining.
23219         (ipa_create_all_structures_for_iinln): New function.
23220         (ipa_free_node_params_substructures): Do not free notes.
23221         (ipa_edge_duplication_hook): Propagate bits within
23222         iinlining_processed_edges bitmap.
23223         (ipa_node_duplication_hook): Do not duplicate notes.
23224         (free_all_ipa_structures_after_ipa_cp): Renamed to
23225         ipa_free_all_structures_after_ipa_cp.
23226         (free_all_ipa_structures_after_iinln): Renamed to
23227         ipa_free_all_structures_after_iinln.
23228         (ipa_write_param_call_note): Removed.
23229         (ipa_read_param_call_note): Removed.
23230         (ipa_write_indirect_edge_info): New function.
23231         (ipa_read_indirect_edge_info): Likewise.
23232         (ipa_write_node_info): Do not stream notes, do stream information
23233         in indirect edges.
23234         (ipa_read_node_info): Likewise.
23235         (lto_ipa_fixup_call_notes): Removed.
23236         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
23237         * ipa-inline.c (pass_ipa_inline): Likewise.
23238         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
23239         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
23240         * tree-inline.c (copy_bb): Removed an unnecessary double check for
23241         is_gimple_call.
23242         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
23243         edges.
23244         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
23245         (output_cgraph): Stream also indirect edges.
23246         (lto_output_edge): Added capability to stream indirect edges.
23247         (input_edge): Likewise.
23248         (input_cgraph_1): Likewise.
23249         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
23250         of indirect edges.
23251
23252 2010-04-28  Richard Guenther  <rguenther@suse.de>
23253
23254         PR tree-optimization/43879
23255         PR tree-optimization/43909
23256         * tree-ssa-structalias.c (struct variable_info): Add
23257         only_restrict_pointers flag.
23258         (new_var_info): Initialize it.  Increment stats.total_vars here.
23259         (create_function_info_for): Do not increment stats.total_vars here.
23260         (get_function_part_constraint): Fix build with C++.
23261         (insert_into_field_list): Remove.
23262         (push_fields_onto_fieldstack): Properly merge fields.
23263         (create_variable_info_for): Split and simplify.
23264         (create_variable_info_for_1): New piece.
23265         (intra_create_variable_infos): Properly make restrict constraints
23266         from parameters.
23267
23268 2010-04-28  Richard Guenther  <rguenther@suse.de>
23269
23270         PR c++/43880
23271         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
23272
23273 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23274             Jan Hubicka  <hubicka@ucw.cz>
23275
23276         * doc/invoke.texi (-Wsuggest-attribute=const,
23277         -Wsuggest-attribute=pure): Document.
23278         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
23279         (function_always_visible_to_compiler_p,
23280         suggest_attribute, warn_function_pure, warn_function_const):
23281         New functions.
23282         (check_call): Improve debug info.
23283         (analyze_function): Do not check availability.
23284         (add_new_function): Check availability.
23285         (propagate): Output warnings.
23286         (skip_function_for_local_pure_const): New function.
23287         (local_pure_const): Use it; output warnings.
23288         * common.opt (Wsuggest-attribute=const,
23289         Wsuggest-attribute=pure): New.
23290
23291 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
23292
23293         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
23294         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
23295         or DW_CFA_def_cfa_offset{,_sf}.
23296
23297 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
23298
23299         * tree.h: Fix truncated long macros.
23300
23301 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
23302
23303         * collect2.c (TARGET_64BIT): Redefine to target's default.
23304         * tlink.c: Likewise.
23305         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
23306         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
23307         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
23308         for underscoring __USER_LABEL_PREFIX__.
23309         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
23310         (SUB_LINK_ENTRY32): New.
23311         (SUB_LINK_ENTRY64): New.
23312         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
23313         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
23314         (SUB_LINK_ENTRY64): New.
23315         (SUB_LINK_ENTRY): New.
23316         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
23317         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
23318         x64 target is choosen.
23319         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
23320         * configure: Regenerated.
23321         * configure.ac (leading-mingw64-underscores): Option added.
23322
23323 2010-04-27  Jan Hubicka  <jh@suse.cz>
23324
23325         * doc/invoke.texi (-fipa-profile): Document.
23326         * opts.c (decode_options): Enable ipa-profile at -O1.
23327         * timevar.def (TV_IPA_PROFILE): Define.
23328         * common.opt (fipa-profile): Add.
23329         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
23330         flag for clones.
23331         (cgraph_propagate_frequency): Handle only local ones.
23332         * tree-pass.h (pass_ipa_profile): Declare.
23333         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
23334         (pass_ipa_profile): Use TV_IPA_PROFILE.
23335         * ipa.c (ipa_profile): New function.
23336         (gate_ipa_profile): Likewise.
23337         (pass_ipa_profile): New global variable.
23338         * passes.c (pass_ipa_profile): New.
23339
23340 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
23341
23342         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
23343
23344 2010-04-27  Martin Jambor  <mjambor@suse.cz>
23345
23346         PR middle-end/43812
23347         * ipa.c (dissolve_same_comdat_group_list): New function.
23348         (function_and_variable_visibility): Call
23349         dissolve_same_comdat_group_list when comdat group contains external or
23350         newly local nodes.
23351         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
23352         lists are circular and that they contain only DECL_ONE_ONLY nodes.
23353
23354 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
23355
23356         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
23357         (const_hash_1) <VECTOR_CST>: New case.
23358         (compare_constant) <VECTOR_CST>: Likewise.
23359         <ADDR_EXPR>: Deal with LABEL_REFs.
23360         (copy_constant) <VECTOR_CST>: New case.
23361
23362 2010-04-27  Jan Hubicka  <jh@suse.cz>
23363
23364         * cgraph.c (cgraph_propagate_frequency): New function.
23365         * cgraph.h (cgraph_propagate_frequency): Declare.
23366         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
23367         cgraph_propagate_frequency.
23368
23369 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
23370
23371         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
23372
23373 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
23374
23375         PR target/40657
23376         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
23377         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
23378         here to determine which regs to push and how much stack to reserve.
23379
23380 2010-04-27  Jie Zhang  <jie@codesourcery.com>
23381
23382         * doc/gimple.texi (gimple_statement_with_ops): Remove
23383         addresses_taken field.
23384         (gimple_statement_with_memory_ops): Likewise.
23385
23386 2010-04-27  Jan Hubicka  <jh@suse.cz>
23387
23388         * tree-inline.c (eni_inlining_weights): Remove.
23389         (estimate_num_insns): Special case more builtins.
23390
23391 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
23392
23393         PR c/32207
23394         * c-typeck.c (build_binary_op): Move forward check for comparison
23395         pointer with null pointer constant and adjust the diagnostic message.
23396
23397 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
23398
23399         PR lto/42776
23400         * configure.ac (gcc_cv_as_section_has_align): Set if installed
23401         binutils supports extended .section directive needed by LTO, or
23402         warn if older binutils found.
23403         (LTO_BINARY_READER): New AC_SUBST'd variable.
23404         (LTO_USE_LIBELF): Likewise.
23405         * config.gcc (lto_binary_reader): New target-specific configure
23406         variable.
23407         * Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
23408         (LTO_USE_LIBELF): Likewise.
23409         * configure: Regenerate.
23410
23411         * collect2.c (is_elf): Rename from this ...
23412         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
23413          object files in addition to ELF-formatted ones.
23414         (scan_prog_file): Caller updated.  Also allow for LTO info marker
23415         symbol to be prefixed or not by an extra underscore.
23416
23417         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
23418         * config/i386/winnt.c: Also #include lto-streamer.h
23419         (i386_pe_asm_named_section): Specify 1-byte section alignment for
23420         LTO named sections.
23421         (i386_pe_asm_output_aligned_decl_common): Add comment.
23422         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
23423
23424 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
23425
23426         PR target/43889
23427         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
23428         Add missing earlyclobber for second alternative.
23429
23430 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
23431
23432         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
23433         bits for artificial defs at the top of the block.
23434         * fwprop.c (single_def_use_enter_block): Don't call it.
23435
23436 2010-04-26  Jack Howarth  <howarth@bromo.med.uc.edu>
23437
23438         PR 43715
23439         * configure.ac: Use "$gcc_cv_nm -g" on darwin
23440         instead of "$gcc_cv_objdump -T".
23441         Use "-undefined dynamic_lookup" on darwin.
23442         * configure: Regenerate.
23443
23444 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
23445
23446         PR c/43893
23447         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
23448
23449 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
23450
23451         * c-parser.c (struct c_token): Move location field up.
23452         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
23453         (struct c_declspecs): Convert typespec_word, storage_class, and
23454         default_int_p into bitfields.
23455         (struct c_declarator): Move loc field up.
23456
23457 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
23458
23459         * cfgloop.h (struct loop): Move can_be_parallel field up.
23460         * ipa-prop.h (struct ip_node_params): Move bitfields up.
23461         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
23462         down.
23463         (struct iv_cand): Convert pos field into a bitfield.
23464         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
23465         field up.
23466         (struct _stmt_vec_info): Shuffle fields for better packing.
23467
23468 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
23469
23470         * varasm.c (IN_NAMED_SECTION): Remove guard.
23471         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
23472         (IN_NAMED_SECTION_P): ...this.
23473         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
23474         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
23475
23476 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
23477
23478         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
23479         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
23480         of shadowing it.  Fix comments.
23481
23482 2010-04-26  Jan Hubicka  <jh@suse.cz>
23483
23484         * cgraph.c (cgraph_create_node): Set node frequency to normal.
23485         (cgraph_clone_node): Copy function frequency.
23486         * cgraph.h (node_frequency): New enum
23487         (struct cgraph_node): Add.
23488         * final.c (rest_of_clean_state): Update.
23489         * lto-cgraph.c (lto_output_node): Output node frequency.
23490         (input_overwrite_node): Input node frequency.
23491         * tre-ssa-loop-ivopts (computation_cost): Update.
23492         * lto-streamer-out.c (output_function): Do not output function
23493         frequency.
23494         * predict.c (maybe_hot_frequency_p): Update and handle functions
23495         executed once.
23496         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
23497         attribute lookup.
23498         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
23499         (compute_function_frequency): Set noreturn functions to be executed
23500         once.
23501         (choose_function_section): Update.
23502         * lto-streamer-in.c (input_function): Do not input function frequency.
23503         * function.c (allocate_struct_function): Do not initialize function
23504         frequency.
23505         * function.h (function_frequency): Remove.
23506         (struct function): Remove function frequency.
23507         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
23508         (try_update): Update.
23509         * tree-inline.c (initialize_cfun): Do not update function frequency.
23510         * passes.c (pass_init_dump_file): Update.
23511         * i386.c (ix86_compute_frame_layout): Update.
23512         (ix86_pad_returns): Update.
23513
23514 2010-04-26  Jie Zhang  <jie@codesourcery.com>
23515
23516         PR tree-optimization/43833
23517         * tree-vrp.c (range_int_cst_p): New.
23518         (range_int_cst_singleton_p): New.
23519         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
23520         when both operands are constants.  Use range_int_cst_p in
23521         BIT_IOR_EXPR case.
23522
23523 2010-04-26  Jan Hubicka  <jh@suse.cz>
23524
23525         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
23526
23527 2010-04-26  Richard Guenther  <rguenther@suse.de>
23528
23529         PR lto/43080
23530         * gimple.c (gimple_decl_printable_name): Deal gracefully
23531         with a NULL DECL_NAME.
23532
23533 2010-04-26  Richard Guenther  <rguenther@suse.de>
23534
23535         PR lto/42425
23536         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
23537         if emitting debug information and it is either a function
23538         or a namespace decl.
23539
23540 2010-04-26  Ira Rosen  <irar@il.ibm.com>
23541
23542         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
23543         determine if the statement is vectorizable, and a macro to access it.
23544         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
23545         Skip statements that can't be vectorized. If the analysis fails,
23546         mark the statement as unvectorizable if vectorizing basic block.
23547         (vect_compute_data_refs_alignment): Likewise.
23548         (vect_verify_datarefs_alignment): Skip statements marked as
23549         unvectorizable. Add print.
23550         (vect_analyze_group_access): Skip statements that can't be
23551         vectorized. If the analysis fails, mark the statement as
23552         unvectorizable if vectorizing basic block.
23553         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
23554         * tree-vect-stmts.c (vectorizable_store): Fix the number of
23555         generated stmts for SLP.
23556         (new_stmt_vec_info): Initialize the new field.
23557         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
23558         statements marked as unvectorizable.
23559
23560 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
23561
23562         * c-common.c (flag_isoc1x): New.
23563         (flag_isoc99): Update comment.
23564         * c-common.h (flag_isoc1x): New.
23565         (flag_isoc99): Update comment.
23566         * c-cppbuiltin.c (builtin_define_float_constants): Also define
23567         __<type>_DECIMAL_DIG__.
23568         * c-opts.c (set_std_c1x): New.
23569         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
23570         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
23571         * c.opt (-std=c1x, -std=gnu1x): New options.
23572         * doc/cpp.texi: Mention -std=c1x.
23573         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
23574         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
23575         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
23576         * doc/standards.texi: Mention C1X.
23577         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
23578         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
23579         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
23580         Define for C1X.
23581
23582 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
23583
23584         * config/i386/gmon-sol2.c (_mcleanup): Change format string
23585         placeholder from 0x%x to %#x.
23586         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
23587         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
23588         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
23589         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
23590         * config/i386/i386.c (ix86_target_string): Ditto.
23591         (output_pic_addr_const): Ditto.
23592         (print_operand): Ditto.
23593
23594 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
23595
23596         * combine.c (find_split_point): Add third argument.  Use it
23597         to find nested multiply-accumulate instructions.  Adjust calls.
23598         (try_combine): Adjust call to find_split_point.
23599
23600 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
23601
23602         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
23603
23604 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
23605
23606         PR tree-optimization/41442
23607         * fold-const.c (merge_truthop_with_opposite_arm): New function.
23608         (fold_binary_loc): Call it.
23609
23610 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23611
23612         * toplev.c (general_init): Set default for fdiagnostics-show-option.
23613         * opts.c (common_handle_option): Allow disabling it.
23614         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
23615
23616 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
23617
23618         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
23619         between modes if both types are integral.
23620
23621 2010-04-23  Richard Guenther  <rguenther@suse.de>
23622
23623         PR tree-optimization/43572
23624         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
23625
23626 2010-04-23  Richard Guenther  <rguenther@suse.de>
23627
23628         PR lto/43455
23629         * tree-inline.c (tree_can_inline_p): Also check compatibility
23630         of return types.
23631
23632 2010-04-23  Martin Jambor  <mjambor@suse.cz>
23633
23634         PR tree-optimization/43846
23635         * tree-sra.c (struct access): New flag grp_assignment_read.
23636         (build_accesses_from_assign): Set grp_assignment_read.
23637         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
23638         (enum mark_read_status): New type.
23639         (analyze_access_subtree): Propagate grp_assignment_read, create
23640         accesses also if both direct_read and root->grp_assignment_read.
23641
23642 2010-04-23  Martin Jambor  <mjambor@suse.cz>
23643
23644         PR middle-end/43835
23645         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
23646         function does not have type attributes.
23647
23648 2010-04-23  Richard Guenther  <rguenther@suse.de>
23649
23650         PR lto/42653
23651         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
23652         of FUNCTION_DECLs.
23653
23654 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
23655
23656         * sese.h (create_if_region_on_edge): Remove.
23657
23658         * sese.c (create_if_region_on_edge): Make static.
23659
23660         * tree-inline.c: Do not include ggc.h.
23661
23662         * expr.c: Do not include ggc.h.
23663
23664         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
23665         dependencies.
23666
23667 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
23668
23669         PR target/43744
23670         * config/sh/sh.c (find_barrier): Don't emit a constant pool
23671         in the middle of insns for casesi_worker_2.
23672
23673 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
23674
23675         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
23676
23677 2010-04-22  Ira Rosen  <irar@il.ibm.com>
23678
23679         PR tree-optimization/43842
23680         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
23681         loop unrolling in update of exit phis. Fix comment.
23682         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
23683         least two reduction statements in the loop before starting SLP
23684         analysis.
23685
23686 2010-04-22  Nick Clifton  <nickc@redhat.com>
23687
23688         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
23689
23690 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
23691
23692         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
23693         to simplify a + ~a.
23694
23695 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
23696
23697         * tree-parloops.c (loop_parallel_p): New argument
23698         parloop_obstack.  Pass it down.
23699         (parallelize_loops): New variable parloop_obstack.  Initialize it,
23700         pass it down, free it.
23701
23702         * tree-loop-linear.c (linear_transform_loops): Pass down
23703         lambda_obstack.
23704
23705         * tree-data-ref.h (lambda_compute_access_matrices): New argument
23706         of type struct obstack *.
23707
23708         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
23709         scratch_obstack.  Initialize it, pass down, free it.
23710
23711         * lambda.h (lambda_loop_new): Remove.
23712         (lambda_matrix_new, lambda_matrix_inverse)
23713         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
23714         argument of type struct obstack *.
23715
23716         * lambda-trans.c (lambda_trans_matrix_new): New argument
23717         lambda_obstack.  Pass it down, use obstack allocation for ret.
23718         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
23719         it down.
23720
23721         * lambda-mat.c (lambda_matrix_get_column)
23722         (lambda_matrix_project_to_null): Remove.
23723         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
23724         allocation for mat.
23725         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
23726         lambda_obstack.
23727
23728         * lambda-code.c (lambda_loop_new): New function.
23729         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
23730         (lambda_compute_auxillary_space, lambda_compute_target_space)
23731         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
23732         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
23733         (build_access_matrix): New argument lambda_obstack.  Use obstack
23734         allocation for am.
23735         (lambda_compute_step_signs, lambda_compute_access_matrices): New
23736         argument lambda_obstack.  Pass it down.
23737
23738 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
23739
23740         * optabs.h (expand_widening_mult): Declare.
23741
23742 2010-04-22  Richard Guenther  <rguenther@suse.de>
23743
23744         PR tree-optimization/43845
23745         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
23746         lookup the CALL_EXPR function and arguments.
23747
23748 2010-04-22  Nick Clifton  <nickc@redhat.com>
23749
23750         * config/stormy16/stormy16.c
23751         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
23752         * config/stormy16/stormy16.h: Tidy up formatting.
23753         (DONT_USE_BUILTIN_SETJMP): Remove definition.
23754         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
23755         (ineqbranchsi): Delete pattern.
23756         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
23757         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
23758         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
23759         stormy16-lib2-ucmpsi2.c.
23760
23761 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
23762
23763         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
23764         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
23765         extra set merge_set_noclobber, and use it to relax the final test
23766         slightly.
23767         * df.h (df_simulate_find_noclobber_defs): Declare.
23768         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
23769         conditional defs.
23770         (df_simulate_find_noclobber_defs): New function.
23771
23772 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
23773
23774         * config/i386/i386.md: Use {} around multi-line preparation statements.
23775
23776 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
23777
23778         * c-tree.h (push_init_level, pop_init_level, set_init_index)
23779         (process_init_element): New argument of type struct obstack *.
23780
23781         * c-typeck.c (push_init_level, pop_init_level, set_designator)
23782         (set_init_index, set_init_label, set_nonincremental_init)
23783         (set_nonincremental_init_from_string, find_init_member)
23784         (output_init_element, output_pending_init_elements)
23785         (process_init_element): New argument braced_init_obstack.  Pass it
23786         down.
23787         (push_range_stack, add_pending_init): New argument
23788         braced_init_obstack.  Use obstack allocation.
23789
23790         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
23791         braced_init_obstack.  Pass it down.
23792         (c_parser_braced_init): New variables ret, braced_init_obstack.
23793         Initialize obstack, pass it down and finally free it.
23794
23795 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
23796
23797         PR middle-end/29274
23798         * tree-pass.h (pass_optimize_widening_mul): Declare.
23799         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
23800         gate_optimize_widening_mul): New static functions.
23801         (pass_optimize_widening_mul): New.
23802         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
23803         <case MULT_EXPR>: Remove support for widening multiplies.
23804         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
23805         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
23806         simplify_gen_unary rather than directly building extensions.
23807         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
23808         WIDEN_MULT_EXPR.
23809         * expmed.c (expand_widening_mult): New function.
23810         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
23811
23812 2010-04-21  Jan Hubicka  <jh@suse.cz>
23813
23814         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
23815         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
23816         * lto-wpa-fixup.c: Remove.
23817         * Makefile.in (lto-wpa-fixup.o): Remove.
23818         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
23819         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
23820         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
23821
23822 2010-04-21  Jan Hubicka  <jh@suse.cz>
23823
23824         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
23825         add write_optimization_summary, read_optimization_summary.
23826         (ipa_write_summaries_of_cgraph_node_set): Remove.
23827         (ipa_write_optimization_summaries): Declare.
23828         (ipa_read_optimization_summaries): Declare.
23829         * ipa-cp.c (pass_ipa_cp): Update.
23830         * ipa-reference.c (pass_ipa_reference): Update.
23831         * ipa-pure-const.c (pass_ipa_pure_const): Update.
23832         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
23833         Update.
23834         * ipa-inline.c (pass_ipa_inline): Update.
23835         * ipa.c (pass_ipa_whole_program): Update.
23836         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
23837         * passes.c (ipa_write_summaries_1): Do not test wpa.
23838         (ipa_write_optimization_summaries_1): New.
23839         (ipa_write_optimization_summaries): New.
23840         (ipa_read_summaries): Do not test ltrans.
23841         (ipa_read_optimization_summaries_1): New.
23842         (ipa_read_optimization_summaries): New.
23843
23844 2010-04-21  Jan Hubicka  <jh@suse.cz>
23845
23846         * lto-cgraph.c (lto_output_node): Do not output comdat groups
23847         for boundary nodes.
23848         (output_cgraph): Do not arrange comdat groups for boundary nodes.
23849
23850 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
23851
23852         PR debug/40040
23853         * dwarf2out.c (add_name_and_src_coords_attributes): Add
23854         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
23855
23856 2010-04-21  Jan Hubicka  <jh@suse.cz>
23857
23858         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
23859
23860 2010-04-21  Jan Hubicka  <jh@suse.cz>
23861
23862         * varpool.c (decide_is_variable_needed): Variable is always needed
23863         during ltrans.
23864
23865 2010-04-21  Jan Hubicka  <jh@suse.cz>
23866
23867         * opts.c (decode_options): Enable pure-const pass for whopr.
23868
23869 2010-04-21  Jan Hubicka  <jh@suse.cz>
23870
23871         * cgraph.c (dump_cgraph_node): Dump also assembler name.
23872         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
23873         at WPA dumping.
23874         (cgraph_decide_inlining): Do not expect callee to be removed in all
23875         cases.
23876
23877 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
23878
23879         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
23880
23881 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
23882
23883         * config/i386/i386.md (x86_shrd): Add athlon_decode and
23884         amdfam10_decode attributes.
23885
23886 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
23887
23888         PR middle-end/43570
23889         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
23890         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
23891         (lower_copyprivate_clauses): Use private var in outer
23892         context instead of original var.  Make sure the types
23893         are correct for VLAs.
23894
23895 2010-04-21  Richard Guenther  <rguenther@suse.de>
23896
23897         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
23898         to non-pointer objects.
23899
23900 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
23901
23902         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
23903         last chain entry if it starts with the still current label.
23904         (add_location_or_const_value_attribute): Check that
23905         loc_list->first->next is NULL instead of comparing ->first with ->last.
23906         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
23907         to add_var_loc_to_decl.
23908
23909         * dwarf2out.c (output_call_frame_info): For dw_cie_version
23910         >= 4 add also address size and segment size fields into CIE header.
23911
23912         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
23913         long as address size is the same as sizeof (void *) and
23914         segment size is 0.
23915         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
23916         address size or segment size is unexpected, return DW_EH_PE_omit.
23917         (classify_object_over_fdes): If get_cie_encoding returned
23918         DW_EH_PE_omit, return -1.
23919         (init_object): If classify_object_over_fdes returned -1,
23920         pretend there were no FDEs at all.
23921
23922 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
23923
23924         * config/i386/i386.md (bswap<mode>2): Macroize expander from
23925         bswap{si,di}2 using SWI48 mode iterator.
23926         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
23927         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
23928         set modrm attribute of bswap insn to 0 and remove length attribute.
23929         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
23930         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
23931         set mode attribute to <MODE> and remove length attribute.
23932
23933 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
23934
23935         PR rtl-optimization/43520
23936         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
23937         zero available registers.
23938
23939 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23940
23941         * builtins.c (fold_builtin_cproj): Fold more cases.
23942
23943 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23944
23945         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
23946         (fold_builtin_1): Fold builtin cproj.
23947         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
23948         Use ATTR_CONST_NOTHROW_LIST.
23949
23950 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
23951
23952         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
23953         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
23954         ffsi2_no_cmove for !TARGET_CMOVE.
23955         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
23956         (ffssi2): Remove expander.
23957         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
23958         mode iterator.
23959         (ctz<mode>2): Ditto from ctz{si,di}2.
23960         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
23961         mode iterator.
23962         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
23963         mode iterator.
23964
23965 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
23966
23967         * dwarf2out.c (AT_linkage_name): Define.
23968         (clone_as_declaration): Handle DW_AT_linkage_name.
23969         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
23970         of DW_AT_MIPS_linkage_name.
23971         (move_linkage_attr): Likewise.
23972         (dwarf2out_finish): Likewise.
23973
23974 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
23975
23976         PR middle-end/41952
23977         * fold-const.c (fold_comparison): New folding rule.
23978
23979 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
23980
23981         * double-int.h (double_int_setbit): Declare.
23982         * double-int.c (double_int_setbit): New function.
23983         * rtl.h (immed_double_int_const): Declare.
23984         * emit-rtl.c (immed_double_int_const): New function.
23985         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
23986         and immed_double_int_const functions.
23987         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
23988         expand_copysign_bit): (Ditto.).
23989         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
23990         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
23991         * dojump.c (prefer_and_bit_test): (Ditto.).
23992         * expr.c (convert_modes, reduce_to_bit_field_precision,
23993         const_vector_from_tree): (Ditto.).
23994         * expmed.c (mask_rtx, lshift_value): (Ditto.).
23995
23996 2010-04-20  Jan Hubicka  <jh@suse.cz>
23997
23998         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
23999         (dump_cgraph_node): Dump new flags.
24000         * cgraph.h (struct cgraph_node): Add flags
24001         reachable_from_other_partition and in_other_partition.
24002         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
24003         other partition can not be removed.
24004         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
24005         the other partition must be output; silence sanity checking on
24006         leaking functions bodies from other paritition.
24007         * lto-cgraph.c (reachable_from_other_partition_p): New function.
24008         (lto_output_node): Output new flags; do not sanity check that inline
24009         clones are output; drop lto_forced_extern_inline_p code; do not mock
24010         visibility flags at partition boundaries.
24011         (add_node_to): New function.
24012         (output_cgraph): Use it to sort functions so masters appear before
24013         clones.
24014         (input_overwrite_node): Input new flags.
24015         * passes.c (ipa_write_summaries): Do not call
24016         lto_new_extern_inline_states.
24017         * lto-section-out.c (forced_extern_inline,
24018         lto_new_extern_inline_states lto_delete_extern_inline_states,
24019         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
24020         * lto-streamer.h (lto_new_extern_inline_states,
24021         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
24022         lto_forced_extern_inline_p): Kill.
24023
24024 2010-04-20  Richard Guenther  <rguenther@suse.de>
24025
24026         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
24027         from vars that can have pointers.
24028         (process_constraint): Dump useless constraints.
24029
24030 2010-04-20  Richard Guenther  <rguenther@suse.de>
24031
24032         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
24033         (dump_sa_points_to_info): Remove asserts.
24034         (init_base_vars): nothing_id isn't an escape point nor does it
24035         have pointers.
24036
24037 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
24038
24039         * tree.h (TYPE_REF_IS_RVALUE): Define.
24040         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
24041         should_move_die_to_comdat, prune_unused_types_walk): Handle
24042         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
24043         (modified_type_die, gen_reference_type_die): Emit
24044         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
24045         if TYPE_REF_IS_RVALUE and -gdwarf-4.
24046
24047 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24048
24049         PR target/43635
24050         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
24051         calls for -fpic -m31 if they have been sibcall optimized.
24052
24053 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
24054
24055         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
24056         ar.lc fixed and call-used.
24057
24058         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
24059
24060 2010-04-19  Jan Hubicka  <jh@suse.cz>
24061
24062         * opts.c (decode_options): Disable whpr incompatible passes.
24063         * lto/lto.c (lto_1_to_1_map): Skip clones.
24064         (read_cgraph_and_symbols): Do not mark everything as needed.
24065         (do_whole_program_analysis): Do map only after optimizing;
24066         set proper cgraph_state; use passmanager.
24067
24068 2010-04-19  DJ Delorie  <dj@redhat.com>
24069
24070         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
24071         POINTER_PLUS_EXPR and fix them.
24072
24073 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
24074
24075         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
24076         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
24077         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
24078         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
24079         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
24080         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
24081         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
24082         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
24083         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
24084         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
24085         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
24086
24087 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
24088
24089         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
24090         (check_cond_move_block): Likewise.
24091         (cond_move_process_if_block): Likewise.
24092         (noce_find_if_block): Improve formatting.
24093         (find_if_header): Pass 0 to memset and tweak conditions.
24094         (cond_exec_find_if_block): Fix long lines and tweak conditions.
24095
24096 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
24097
24098         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
24099         for -gdwarf-4.
24100
24101         PR middle-end/43337
24102         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
24103         with non-local decl doesn't need chain.
24104
24105 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
24106
24107         * ira-color.c (allocno_reload_assign): Avoid accumulating
24108         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
24109
24110 2010-04-19  Martin Jambor  <mjambor@suse.cz>
24111
24112         * gimple.h (create_tmp_reg): Declare.
24113         * gimplify.c (create_tmp_reg): New function.
24114         (gimplify_return_expr): Use create_tmp_reg.
24115         (gimplify_omp_atomic): Likewise.
24116         (gimple_regimplify_operands): Likewise.
24117         * tree-dfa.c (make_rename_temp): Likewise.
24118         * tree-predcom.c (predcom_tmp_var): Likewise.
24119         (reassociate_to_the_same_stmt): Likewise.
24120         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
24121         (get_replaced_param_substitute): Likewise.
24122         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
24123         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
24124         * tree-ssa-pre.c (get_representative_for): Likewise.
24125         (create_expression_by_pieces): Likewise.
24126         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
24127         (create_tailcall_accumulator): Likewise.
24128
24129 2010-04-19  Martin Jambor  <mjambor@suse.cz>
24130
24131         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
24132         new_stmt.
24133         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
24134
24135 2010-04-19  Richard Guenther  <rguenther@suse.de>
24136
24137         PR tree-optimization/43796
24138         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
24139         from SCEV in the lattice.
24140         (vrp_visit_phi_node): Dump change.
24141
24142 2010-04-19  Richard Guenther  <rguenther@suse.de>
24143
24144         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
24145         * configure: Re-generated.
24146
24147 2010-04-19  Richard Guenther  <rguenther@suse.de>
24148
24149         PR tree-optimization/43783
24150         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
24151         constant ARRAY_REF operands two and three if possible.
24152
24153 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
24154
24155         PR target/43766
24156         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
24157
24158 2010-04-19  Jie Zhang  <jie@codesourcery.com>
24159
24160         PR target/43662
24161         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
24162
24163 2010-04-19  Ira Rosen  <irar@il.ibm.com>
24164
24165         PR tree-optimization/37027
24166         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
24167         and macro to access it.
24168         (vectorizable_reduction): Add argument.
24169         (vect_get_slp_defs): Likewise.
24170         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
24171         statements for possible use in SLP.
24172         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
24173         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
24174         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
24175         add new argument.
24176         (vectorizable_reduction): Likewise.
24177         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
24178         vect_get_slp_defs.
24179         (vectorizable_type_demotion, vectorizable_type_promotion,
24180         vectorizable_store): Likewise.
24181         (vect_analyze_stmt): Update call to vectorizable_reduction.
24182         (vect_transform_stmt): Likewise.
24183         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
24184         (vect_build_slp_tree): Fix indentation. Check that there are no loads
24185         from different interleaving chains in same node.
24186         (vect_slp_rearrange_stmts): New function.
24187         (vect_supported_load_permutation_p): Allow load permutations for
24188         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
24189         inside SLP nodes if necessary.
24190         (vect_analyze_slp_instance): Handle reductions.
24191         (vect_analyze_slp): Try to build SLP instances originating from groups
24192         of reductions.
24193         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
24194         (vect_get_constant_vectors): Create initial vectors for reductions
24195         according to reduction code. Add new argument.
24196         (vect_get_slp_defs): Add new argument, pass it to
24197         vect_get_constant_vectors.
24198         (vect_schedule_slp_instance): Remove SLP tree root statements.
24199
24200 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
24201
24202         * tree.h (ENUM_IS_SCOPED): Define.
24203         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
24204         for ENUM_IS_SCOPED enums.
24205
24206 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
24207
24208         * fold-const.c (fold_comparison): Use ssizetype.
24209         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
24210         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
24211         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
24212         * tree-object-size.c (compute_object_sizes): Use size_type_node.
24213
24214         * tree.h (initialize_sizetypes): Remove parameter.
24215         (build_common_tree_nodes): Remove second parameter.
24216         * stor-layout.c (initialize_sizetypes): Remove parameter.
24217         Always create an unsigned type.
24218         (set_sizetype): Assert that the passed type is unsigned and simplify.
24219         * tree.c (build_common_tree_nodes): Remove second parameter.
24220         Adjust call to initialize_sizetypes.
24221         * c-decl.c (c_init_decl_processing): Remove second argument in call to
24222         build_common_tree_nodes.
24223
24224 2010-04-18  Matthias Klose  <doko@ubuntu.com>
24225
24226         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
24227
24228 2010-04-18  Ira Rosen  <irar@il.ibm.com>
24229
24230         PR tree-optimization/43771
24231         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
24232         load permutation doesn't have gaps.
24233
24234 2010-04-18  Jan Hubicka  <jh@suse.cz>
24235
24236         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
24237         (sse_prologue_save_insn expander): Use new pattern.
24238         (sse_prologue_save_insn1): New pattern and splitter.
24239         (sse_prologue_save_insn): Update to deal also with 64bit aligned
24240         blocks.
24241         * i386.c (setup_incoming_varargs_64): Do not compute jump
24242         destination here.
24243         (ix86_gimplify_va_arg): Update alignment needed.
24244         (ix86_local_alignment): Do not align all local arrays to 128bit.
24245
24246 2010-04-17  Jan Hubicka  <jh@suse.cz>
24247
24248         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
24249
24250 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
24251
24252         * arm.md (negdi2): Remove redundant code to force values into a
24253         register.
24254
24255 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
24256
24257         * arm/bpabi.S: Add EABI alignment attributes to objects.
24258         * arm/bpabi-v6m.S: Likewise.
24259         * arm/crti.asm: Likewise.
24260         * arm/crtn.asm: Likewise.
24261         * arm/lib1funcs.asm: Likewise.
24262         * arm/libunwind.S: Likewise.
24263
24264 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
24265
24266         * arm-protos.h (tune_params): New structure.
24267         * arm.c (current_tune): New variable.
24268         (arm_constant_limit): Delete.
24269         (struct processors): Add pointer to the tune parameters.
24270         (arm_slowmul_tune): New tuning option.
24271         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
24272         (all_cores): Adjust to pick up the tuning model.
24273         (arm_constant_limit): New function.
24274         (arm_override_options): Select the appropriate tuning model.  Delete
24275         initialization of arm_const_limit.
24276         (arm_split_constant): Use the new constant-limit model.
24277         (arm_rtx_costs): Pick up the current tuning model.
24278         * arm.md (is_strongarm, is_xscale): Delete.
24279         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
24280         for Xscale variant architectures.
24281         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
24282
24283 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24284
24285         * config/arm/arm.c (arm_gen_constant): Remove unused variable
24286         can_shift.
24287         (arm_rtx_costs_1): Remove unused variable extra_cost.
24288         (arm_unwind_emit_set): Use variable offset.
24289         (thumb1_output_casesi): Remove unused variable flags.
24290
24291 2010-04-16  Jeff Law  <law@redhat.com>
24292
24293         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
24294         needing assignment rather than doing a two-phase assignment.  Remove
24295         unused variable 'm'.
24296
24297 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
24298
24299         PR bootstrap/43767
24300         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
24301
24302 2010-04-16  Doug Kwan  <dougkwan@google.com>
24303
24304         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
24305         (next_operand_entry_id): New static variable.
24306         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
24307         (add_to_ops_vec): Assigned unique ID to operand entry.
24308         (struct oecount_s): New field ID.
24309         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
24310         (undistribute_ops_list): Assign unique IDs to oecounts.
24311         (init_reassoc): reset next_operand_entry_id.
24312
24313 2010-04-16  Doug Kwan  <dougkwan@google.com>
24314
24315         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
24316         missing left parenthesis.
24317
24318 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
24319
24320         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
24321         *btdi_rex64 using SWI48 mode iterator.
24322         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
24323         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
24324         *jcc_btdi_mask_rex64.
24325
24326 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
24327
24328         * double-int.h (tree_to_double_int): Convert to macro.
24329         * double-int.c (tree_to_double_int): Remove.
24330
24331 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
24332
24333         PR debug/43762
24334         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
24335         with want_address 2 and in case a single element list might be
24336         possible, call it again with want_address 0.
24337
24338 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
24339
24340         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
24341         case 'W' print operands for HI mode.
24342         * config/h8300/h8300.h (Y0, Y2) : New constraints.
24343         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
24344         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
24345         * config/h8300/predicate.md (bit_register_indirect_operand): New.
24346
24347         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
24348
24349         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
24350         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
24351         #xx:3 and #xx:4 mode.
24352
24353         * config/h8300/h8300.md (inverted load with HImode dest): Add
24354         support for H8300SX.
24355
24356         * config/h8300/predicate.md (bit_operand): Allow immediate values that
24357         satisfy 'U' constraint.
24358
24359 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24360
24361         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
24362         * configure: Regenerate.
24363         * config.in: Regenerate.
24364         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
24365         works.
24366
24367 2010-04-16  Richard Guenther  <rguenther@suse.de>
24368
24369         * tree.h (struct tree_decl_minimal): Move pt_uid ...
24370         (struct tree_decl_common): ... here.
24371         (DECL_PT_UID): Adjust.
24372         (SET_DECL_PT_UID): Likewise.
24373         (DECL_PT_UID_SET_P): Likewise.
24374
24375 2010-04-16  Richard Guenther  <rguenther@suse.de>
24376
24377         PR tree-optimization/43572
24378         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
24379         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
24380         * tree-flow.h (is_call_clobbered): Remove.
24381         * tree-flow-inline.h (is_call_clobbered): Likewise.
24382         * tree-dfa.c (dump_variable): Do not dump call clobber state.
24383         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
24384         (execute_return_slot_opt): Adjust.
24385         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
24386         check for call clobbered vars here.
24387         (find_tail_calls): Move tailcall verification to the
24388         proper place.
24389
24390 2010-04-16  Diego Novillo  <dnovillo@google.com>
24391
24392         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
24393
24394 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
24395
24396         PR target/40603
24397         * config/arm/arm.md (cbranchqi4): New pattern.
24398         * config/arm/predicates.md (const0_operand,
24399         cbranchqi4_comparison_operator): New predicates.
24400
24401 2010-04-16  Richard Guenther  <rguenther@suse.de>
24402
24403         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
24404         (dump_gimple_stmt): Likewise.
24405
24406 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
24407
24408         * recog.h (struct recog_data): New field is_operator.
24409         (struct insn_operand_data): New field is_operator.
24410         * recog.c (extract_insn): Set recog_data.is_operator.
24411         * genoutput.c (output_operand_data): Emit code to set the
24412         is_operator field.
24413         * reload.c (find_reloads): Use it rather than testing for an
24414         empty constraint string.
24415
24416         PR target/41514
24417         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
24418         If the previous insn is a cbranchsi4_insn with the same arguments,
24419         omit the compare instruction.
24420
24421         * config/arm/arm.md (addsi3_cbranch): If destination is a high
24422         register, inputs must be low registers and we need a low register
24423         scratch.  Handle alternative 2 like alternative 3.
24424
24425 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
24426
24427         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
24428         don't call get_addr on both.  If one expression is a VALUE and
24429         the other a REG, check VALUE's locs if the REG isn't among them.
24430
24431 2010-04-16  Christian Bruel  <christian.bruel@st.com>
24432
24433         * config/sh/sh.h (sh_frame_pointer_required): New function.
24434         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
24435         (flag_omit_frame_pointer) Set.
24436         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
24437         (rounded_frame_size): Adjust size with outgoing_args_size.
24438         (sh_set_return_address): Must return from stack pointer.
24439         * config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
24440         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
24441         (ACCUMULATE_OUTGOING_ARGS): Define.
24442         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
24443         * config/sh/sh.opt (maccumulate-outgoing-args): New option.
24444
24445 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
24446
24447         PR target/43471
24448         * config/sh/sh.c (sh_legitimize_reload_address): Use
24449         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
24450         Remove a unneeded check for offset_base.
24451
24452 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
24453
24454         * configure: Regenerated.
24455
24456 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24457
24458         * config/s390/s390.c (s390_call_save_register_used): Switch back
24459         to HARD_REGNO_NREGS.
24460
24461 2010-04-15  Richard Guenther  <rguenther@suse.de>
24462
24463         * alias.c (alias_set_subset_of): Handle alias-set zero
24464         child properly.
24465
24466 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
24467             Julian Brown  <julian@codesourcery.com>
24468
24469         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
24470         alternatives according to use of high and low regs.
24471         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
24472         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
24473         optimizing for size on Thumb-2.
24474
24475 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
24476
24477         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
24478
24479 2010-04-15  Richard Guenther  <rguenther@suse.de>
24480
24481         * tree-ssa-structalias.c (struct variable_info): Add
24482         is_fn_info flag.
24483         (new_var_info): Initialize it.
24484         (dump_constraints): Support printing last added constraints.
24485         (debug_constraints): Adjust.
24486         (dump_constraint_graph): Likewise.
24487         (make_heapvar_for): Check for NULL cfun.
24488         (get_function_part_constraint): New function.
24489         (get_fi_for_callee): Likewise.
24490         (find_func_aliases): Properly implement IPA PTA constraints.
24491         (process_ipa_clobber): New function.
24492         (find_func_clobbers): Likewise.
24493         (insert_into_field_list_sorted): Remove.
24494         (create_function_info_for): Properly allocate vars for IPA mode.
24495         Do not use insert_into_field_list_sorted.
24496         (create_variable_info_for): Properly generate constraints for
24497         global vars in IPA mode.
24498         (dump_solution_for_var): Always dump the solution.
24499         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
24500         (find_what_var_points_to): Adjust.
24501         (pt_solution_set): Change.
24502         (pt_solution_ior_into): New function.
24503         (pt_solution_empty_p): Export.
24504         (pt_solution_includes_global): Adjust.
24505         (pt_solution_includes_1): Likewise.
24506         (pt_solutions_intersect_1): Likewise.
24507         (dump_sa_points_to_info): Check some invariants.
24508         (solve_constraints): Move constraint dumping ...
24509         (compute_points_to_sets): ... here.
24510         (ipa_pta_execute): ... and here.
24511         (compute_may_aliases): Do not re-compute points-to info
24512         locally if IPA info is available.
24513         (ipa_escaped_pt): New global var.
24514         (ipa_pta_execute): Properly implement IPA PTA.
24515         * tree-into-ssa.c (dump_decl_set): Support dumping
24516         decls not in referenced-vars.
24517         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
24518         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
24519         (dump_points_to_solution): Likewise.
24520         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
24521         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
24522         (remap_gimple_stmt): Reset call clobber/use information if necessary.
24523         (copy_decl_to_var): Copy DECL_PT_UID.
24524         (copy_result_decl_to_var): Likewise.
24525         * tree.c (make_node_stat): Initialize DECL_PT_UID.
24526         (copy_node_stat): Copy it.
24527         * tree.h (DECL_PT_UID): New macro.
24528         (SET_DECL_PT_UID): Likewise.
24529         (DECL_PT_UID_SET_P): Likewise.
24530         (struct tree_decl_minimal): Add pt_uid member.
24531         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
24532         (pt_solution_empty_p): Declare.
24533         (pt_solution_set): Adjust.
24534         (ipa_escaped_pt): Declare.
24535         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
24536         * gimple-pretty-print.c (pp_points_to_solution): New function.
24537         (dump_gimple_call): Dump call clobber/use information.
24538         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
24539         * tree-pass.h (TDF_ALIAS): New dump option.
24540         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
24541         * doc/invoke.texi (-fipa-pta): Update documentation.
24542
24543 2010-04-15  Richard Guenther  <rguenther@suse.de>
24544
24545         * Makefile.in (OBJS-common): Add gimple-fold.o.
24546         (gimple-fold.o): New rule.
24547         * tree.h (maybe_fold_offset_to_reference,
24548         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
24549         prototypes ...
24550         * gimple.h: ... here.
24551         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
24552         may_propagate_address_into_dereference): Move prototypes ...
24553         * gimple.h: ... here.
24554         * tree-ssa-ccp.c (get_symbol_constant_value,
24555         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
24556         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
24557         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
24558         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
24559         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
24560         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
24561         gimplify_and_update_call_from_tree): Move ...
24562         * gimple-fold.c: ... here.  New file.
24563         (ccp_fold_builtin): Rename to ...
24564         (gimple_fold_builtin): ... this.
24565         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
24566
24567 2010-04-15  Richard Guenther  <rguenther@suse.de>
24568
24569         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
24570         fit_double_type, force_fit_type_double, add_double_with_sign,
24571         neg_double, mul_double_with_sign, lshift_double, rshift_double,
24572         lrotate_double, rrotate_double, div_and_round_double): Move ...
24573         * double-int.c: ... here.
24574         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
24575         add_double, neg_double, mul_double_with_sign, mul_double,
24576         lshift_double, rshift_double, lrotate_double, rrotate_double,
24577         div_and_round_double): Move prototypes ...
24578         * double-int.h: ... here.
24579
24580 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
24581
24582         PR target/43742
24583         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
24584         matching constraints to ensure inputs match the output.
24585
24586 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
24587
24588         PR target/43742
24589         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
24590         in an input-only operand.
24591
24592 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
24593
24594         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
24595         (double_int_not, double_int_lshift, double_int_rshift): Declare.
24596         (double_int_negative_p): Convert to static inline function.
24597         * double-int.c (double_int_lshift, double_int_lshift): New functions.
24598         (double_int_negative_p): Remove.
24599         * tree.h (lshift_double, rshift_double):
24600         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
24601         * fold-const.c (fold_convert_const_int_from_real,
24602         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
24603         (lshift_double): Change type of arith argument to bool.
24604         (rshift_double): Change type of arith argument to bool. Correct
24605         comment.
24606         * expmed.c (mask_rtx, lshift_value): (Ditto.).
24607
24608 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
24609
24610         PR target/21803
24611         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
24612         at the start and end of the then/else blocks, and omit them from the
24613         conversion.
24614         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
24615         argument; all callers changed.  Pass zero to old_insns_match_p instead.
24616         (flow_find_head_matching_sequence): New function.
24617         (old_insns_match_p): Check REG_EH_REGION notes for calls.
24618         * basic-block.h (flow_find_cross_jump,
24619         flow_find_head_matching_sequence): Declare functions.
24620
24621 2010-04-14  Jason Merrill  <jason@redhat.com>
24622
24623         PR c++/36625
24624         * c-common.c (attribute_takes_identifier_p): New fn.
24625         * c-common.h: Declare it.
24626
24627 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
24628
24629         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
24630         splitter condition.
24631         (*udivmod<mode>4): Ditto.
24632
24633 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
24634
24635         * config/i386/i386.md (maxmin_int): Rename code attribute from
24636         maxminiprefix and update all users.
24637         (maxmin_float): Ditto from maxminfprefix.
24638         (logic): Ditto from logicprefix.
24639         (absneg_mnemonic): Ditto from absnegprefix.
24640         * config/i386/mmx.md: Update all users of maxminiprefix,
24641         maxminfprefix and logicprefix for rename.
24642         * config/i386/sse.md: Ditto.
24643         * config/i386/sync.md (sync_<code><mode>): Update for
24644         logicprefix rename.
24645
24646 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24647
24648         PR 42966
24649         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
24650         warnings converted to errors.
24651
24652 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
24653
24654         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
24655         used insn_type variable.
24656         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
24657         to avoid set-but-not-used warning.
24658
24659 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
24660
24661         * df-core.c (df_ref_debug): Change format string placeholder
24662         from 0x%x to %#x.
24663         * dwarf2asm.c (dw2_asm_output_data_raw,
24664         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
24665         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
24666         * dwarf2out.c (output_cfi, output_cfi_directive,
24667         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
24668         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
24669         Ditto.
24670         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
24671         * print-rtl.c (print_rtx): Ditto.
24672
24673 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
24674
24675         PR middle-end/42694
24676         * builtins.c (expand_builtin_pow_root): New function to expand pow
24677         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
24678         series of sqrt and cbrt calls under -ffast-math.
24679         (expand_builtin_pow): Call it.
24680
24681 2010-04-14  Michael Matz  <matz@suse.de>
24682
24683         PR tree-optimization/42963
24684         * tree-cfg.c (touched_switch_bbs): New static variable.
24685         (group_case_labels_stmt): New function broken out from ...
24686         (group_case_labels): ... here, use the above.
24687         (start_recording_case_labels): Allocate touched_switch_bbs.
24688         (end_recording_case_labels): Deallocate it, call
24689         group_case_labels_stmt.
24690         (gimple_redirect_edge_and_branch): Remember index of affected BB.
24691
24692 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
24693
24694         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
24695         from insn template.
24696
24697 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
24698
24699         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
24700
24701 2010-04-13  Jan Hubicka  <jh@suse.cz>
24702
24703         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
24704         of optimized out static functions.
24705         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
24706         cost computation.  Also sanity check for overflows.
24707         (update_caller_keys): Update cgraph_edge_badness call; properly
24708         update fibheap and sanity check that it is up to date.
24709         (add_new_edges_to_heap): Update cgraph_edge_badness.
24710         (cgraph_decide_inlining_of_small_function): Likewise;
24711         add sanity checking that badness in heap is up to date;
24712         improve dumping of reason; Update badness of calls to the
24713         offline copy of function currently inlined; dump badness
24714         of functions not inlined because of unit growth limits.
24715
24716 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
24717
24718         PR middle-end/32628
24719         * c-common.c (pointer_int_sum): Disregard overflow that occured only
24720         because of sign-extension change when converting to sizetype here...
24721         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
24722
24723         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
24724         the folding to constants.  Remove redundant final conversion.
24725         (fold_binary) <associate>: Do not associate if the re-association of
24726         constants alone overflows.
24727         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
24728         to the end of the list.
24729         (multiple_of_p) <COND_EXPR>: New case.
24730
24731 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24732
24733         * opt-functions.awk (opt_sanitized_name): New.
24734         (opt_enum): New.
24735         * optc-gen.awk: Use it
24736         * opth-gen.awk: Use it.
24737
24738 2010-04-13  Martin Jambor  <mjambor@suse.cz>
24739
24740         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
24741         (sra_modify_assign): Delete stmts loading dead data even if racc has no
24742         children.  Call replace_uses_with_default_def_ssa_name to handle
24743         SSA_NAES on lhs.
24744
24745 2010-04-13  Michael Matz  <matz@suse.de>
24746
24747         PR middle-end/43730
24748         * builtins.c (expand_builtin_interclass_mathfn): Also create
24749         a register if the predicate doesn't match.
24750
24751 2010-04-13  Diego Novillo  <dnovillo@google.com>
24752
24753         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
24754         * c-pch.c: Include timevar.h.
24755         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
24756         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
24757         * ggc-common.c: Include timevar.h.
24758         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
24759         * timevar.def (TV_PCH_SAVE): Define.
24760         (TV_PCH_CPP_SAVE): Define.
24761         (TV_PCH_PTR_REALLOC): Define.
24762         (TV_PCH_PTR_SORT): Define.
24763         (TV_PCH_RESTORE): Define.
24764         (TV_PCH_CPP_RESTORE): Define.
24765
24766 2010-04-13  Michael Matz  <matz@suse.de>
24767
24768         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
24769         into MINUS_EXPRs.
24770         (can_reassociate_p): New function.
24771         (break_up_subtract_bb, reassociate_bb): Use it.
24772
24773 2010-04-13  Richard Guenther  <rguenther@suse.de>
24774
24775         PR bootstrap/43737
24776         * builtins.c (c_readstr): Fix assert.
24777
24778 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
24779
24780         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
24781         when generating cltd insn.
24782
24783         (*ashl<mode>3_1): Remove special handling for register operand 2.
24784         (*ashlsi3_1_zext): Ditto.
24785         (*ashlhi3_1): Ditto.
24786         (*ashlhi3_1_lea): Ditto.
24787         (*ashlqi3_1): Ditto.
24788         (*ashlqi3_1_lea): Ditto.
24789         (*<shiftrt_insn><mode>3_1): Ditto.
24790         (*<shiftrt_insn>si3_1_zext): Ditto.
24791         (*<shiftrt_insn>qi3_1_slp): Ditto.
24792         (*<rotate_insn><mode>3_1): Ditto.
24793         (*<rotate_insn>si3_1_zext): Ditto.
24794         (*<rotate_insn>qi3_1_slp): Ditto.
24795
24796 2010-04-13  Richard Guenther  <rguenther@suse.de>
24797
24798         * tree-ssa-structalias.c (callused_id): Remove.
24799         (call_stmt_vars): New.
24800         (get_call_vi): Likewise.
24801         (lookup_call_use_vi): Likewise.
24802         (lookup_call_clobber_vi): Likewise.
24803         (get_call_use_vi): Likewise.
24804         (get_call_clobber_vi): Likewise.
24805         (make_transitive_closure_constraints): Likewise.
24806         (handle_const_call): Adjust to do per-call call-used handling.
24807         (handle_pure_call): Likewise.
24808         (find_what_var_points_to): Remove general callused handling.
24809         (init_base_vars): Likewise.
24810         (init_alias_vars): Initialize call_stmt_vars.
24811         (compute_points_to_sets): Process call-used and call-clobbered
24812         vars for call statements.
24813         (delete_points_to_sets): Free call_stmt_vars.
24814
24815 2010-04-13  Richard Guenther  <rguenther@suse.de>
24816
24817         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
24818         Only add RW dependence for dependence distance zero.
24819         Adjust maximal vectorization factor according to dependences.
24820         Move alignment handling ...
24821         (vect_find_same_alignment_drs): ... here.  New function.
24822         (vect_analyze_data_ref_dependences): Adjust.
24823         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
24824         (vect_analyze_data_refs): Adjust minimal vectorization factor
24825         according to data references.
24826         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
24827         dependences before determining the vectorization factor.
24828         Analyze alignment after determining the vectorization factor.
24829         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
24830         dependences before alignment.
24831         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
24832         Adjust prototype.
24833         (vect_analyze_data_refs): Likewise.
24834         (MAX_VECTORIZATION_FACTOR): New define.
24835
24836 2010-04-13  Duncan Sands  <baldrick@free.fr>
24837
24838         * except.h (lang_eh_type_covers): Remove.
24839         * except.c (lang_eh_type_covers): Likewise.
24840
24841 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
24842             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
24843
24844         * config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
24845         * config/s390/s390.c: Replace UNTIS_PER_WORD with
24846         UNITS_PER_LONG where it is ABI relevant.
24847         (s390_return_addr_rtx): Likewise.
24848         (s390_back_chain_rtx): Likewise.
24849         (s390_frame_area): Likewise.
24850         (s390_frame_info): Likewise.
24851         (s390_initial_elimination_offset): Likewise.
24852         (save_gprs): Likewise.
24853         (s390_emit_prologue): Likewise.
24854         (s390_emit_epilogue): Likewise.
24855         (s390_function_arg_advance): Likewise.
24856         (s390_function_arg): Likewise.
24857         (s390_va_start): Likewise.
24858         (s390_gimplify_va_arg): Likewise.
24859         (s390_function_profiler): Likewise.
24860         (s390_optimize_prologue): Likewise.
24861         (s390_rtx_costs): Likewise.
24862         (s390_secondary_reload): Likewise.
24863         (s390_promote_function_mode): Likewise.
24864         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
24865         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
24866         registers available.
24867         (s390_unwind_word_mode): New function.
24868         (s390_function_value): Split 64 bit values into register pair if
24869         used as return value.
24870         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
24871         function call parameters.  Handle parallels.
24872         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
24873         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
24874         (DWARF_CIE_DATA_ALIGNMENT): New macro.
24875         (s390_expand_setmem): Remove unused variable src_addr.
24876         * longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
24877         deal with 64 bit registers.
24878         * config/s390/s390.h: Define __zarch__ predefined macro.
24879         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
24880         (UNITS_PER_LONG): New macro.
24881         * libjava/include/s390-signal.h: Define extended ucontext
24882         structure containing the upper halfs of the 64 bit registers.
24883
24884 2010-04-13  Simon Baldwin  <simonb@google.com>
24885
24886         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
24887
24888 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
24889
24890         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
24891         rvalue on the RHS if the LHS is of a non-renamable type.
24892         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
24893
24894 2010-04-13  Matthias Klose  <doko@ubuntu.com>
24895
24896         * gcc.c (cc1_options): Handle -iplugindir before processing
24897         the cc1 spec. Only add -iplugindir once.
24898         (cpp_unique_options): Add -iplugindir option if -fplugin* options
24899         found.
24900         * common.opt (iplugindir): Remove `Separate' property, initialize.
24901         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
24902         option.
24903         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
24904         (distclean): Remove plugin dir.
24905         * doc/invoke.texi: Document -iplugindir.
24906
24907 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
24908
24909         * doc/plugins.texi (Loading Plugins): Document short
24910         -fplugin=foo option.
24911         (Plugin API): Mention default_plugin_dir_name function.
24912
24913         * gcc.c (find_file_spec_function): Add new declaration.
24914         (static_spec_func): Use it for "find-file".
24915         (find_file_spec_function): Add new function.
24916         (cc1_options): Add -iplugindir option if -fplugin* options found.
24917
24918         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
24919
24920         * plugin.c (add_new_plugin): Updated comment, and handle short
24921         plugin name.
24922         (default_plugin_dir_name): Added new function.
24923
24924         * common.opt (iplugindir): New option to set the plugin directory.
24925
24926 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
24927
24928         * config/i386/i386.md (any_rotate): New code iterator.
24929         (rotate_insn): New code attribute.
24930         (rotate): Ditto.
24931         (SWIM124): New mode iterator.
24932         (<rotate_insn>ti3): New expander.
24933         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
24934         any_rotate code iterator.
24935         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
24936         using any_rotate code iterator and SWIM124 mode iterator.
24937         (ix86_rotlti3): New insn_and_split pattern.
24938         (ix86_rotrti3): Ditto.
24939         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
24940         ix86_rotl{di,ti}3 patterns.
24941         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
24942         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
24943         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
24944         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
24945         code iterator and SWI mode iterator.
24946         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
24947         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
24948         code iterator.
24949         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
24950         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
24951         (bswap rotatert splitter): Add splitter.
24952         (bswap splitter): Macroize splitter using any_rotate code iterator.
24953         Add insn predicate to split only for TARGET_USE_XCHGB or when
24954         optimizing function for size.
24955
24956 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
24957
24958         * config/pa/pa.c (emit_move_sequence): Remove use of
24959         deleted variable flag_argument_noalias.
24960
24961 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24962
24963         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
24964         configurations.
24965         Add to unsupported targets list.
24966         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
24967         sparc*-sun-solaris2.[567]* from target lists.
24968         * configure: Regenerate.
24969         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
24970         removal.
24971         Remove Solaris 7 patch references.
24972         (Specific, sparc-sun-solaris2.7): Removed.
24973         (sparc-sun-solaris2*): Update Solaris 7 example.
24974         (sparc64-*-solaris2*): Likewise.
24975
24976 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24977
24978         * config.build (alpha*-dec-osf4*): Remove.
24979         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
24980         of obsolete configurations.
24981         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
24982         support.
24983         * config/alpha/t-osf4: Renamed to ...
24984         * config/alpha/t-osf5: ... this.
24985         * config/alpha/osf.h: Renamed to ...
24986         * config/alpha/osf5.h: ... this.
24987         Merged old osf5.h contents.
24988         Update comments.
24989         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
24990         (EXTRA_SPECS): Removed.
24991         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
24992         reflect removal of Tru64 UNIX V4.0/V5.0 support.
24993         Document that.
24994
24995 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
24996
24997         * doc/contrib.texi (Contributors, Rainer Orth): Update.
24998
24999 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
25000
25001         PR/43702
25002         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
25003         __thiscall convention.
25004
25005 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
25006
25007         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
25008         orig_base.
25009         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
25010
25011 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
25012
25013         * function.c (assign_parms_initialize_all): Add unused attribute
25014         to fntype.
25015
25016 2010-04-12  Richard Guenther  <rguenther@suse.de>
25017
25018         * gsstruct.def (GSS_CALL): New.
25019         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
25020         * gimple.h: Include tree-ssa-alias.h.
25021         (struct gimple_statement_call): New.
25022         (union gimple_statement_struct_d): Add gimple_call member.
25023         (gimple_call_reset_alias_info): Declare.
25024         (gimple_call_use_set): New function.
25025         (gimple_call_clobber_set): Likewise.
25026         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
25027         * gimple.c (gimple_call_reset_alias_info): New function.
25028         (gimple_build_call_1): Call it.
25029         * lto-streamer-in.c (input_gimple_stmt): Likewise.
25030         * tree-inline.c (remap_gimple_stmt): Likewise.
25031         (expand_call_inline): Remove callused handling.
25032         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
25033         * tree-dfa.c (dump_variable): Likewise.
25034         * tree-parloops.c (parallelize_loops): Likewise.
25035         * tree-ssa.c (init_tree_ssa): Likewise.
25036         (delete_tree_ssa): Likewise.
25037         * tree-flow-inline.h (is_call_used): Remove.
25038         * tree-flow.h (struct gimple_df): Remove callused member.
25039         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
25040         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
25041         (ref_maybe_used_by_call_p_1): Simplify.
25042         (call_may_clobber_ref_p_1): Likewise.
25043         * tree-ssa-structalias.c (compute_points_to_sets): Set
25044         the call stmt used and clobbered sets.
25045         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
25046         (find_tail_calls): Verify the tail call.
25047
25048 2010-04-12  Richard Guenther  <rguenther@suse.de>
25049
25050         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
25051         single-iteration always-inline inlining.
25052         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
25053         (cgraph_decide_inlining): Do not handle always-inline specially.
25054         (try_inline): Remove always-inline cycle detection special case.
25055         Do not recurse on always-inlines.
25056         (cgraph_early_inlining): Do not iterate if not optimizing.
25057         (cgraph_gate_early_inlining): remove.
25058         (pass_early_inline): Run unconditionally.
25059         (gate_cgraph_decide_inlining): New function.
25060         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
25061         not inlining or optimizing.
25062         (cgraph_decide_inlining_of_small_functions): Also consider
25063         always-inline functions.
25064         (cgraph_default_inline_p): Return true for nodes which should
25065         disregard inline limits.
25066         (estimate_function_body_sizes): Assume zero size and time for
25067         nodes which are marked as disregarding inline limits.
25068         (cgraph_decide_recursive_inlining): Do not perform recursive
25069         inlining on always-inline nodes.
25070
25071 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
25072
25073         PR bootstrap/43699
25074         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
25075         for exprs satisfying handled_component_p.
25076
25077 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
25078
25079         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
25080         non-constant aggregate elements.
25081
25082         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
25083         is a real initialization.
25084
25085 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
25086
25087         PR c/36774
25088         * c-decl.c (start_function): Move forward check for nested function.
25089
25090 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
25091
25092         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
25093         * config/sh/sh.c: Include reload.h.
25094         (sh_legitimize_reload_address): New.
25095         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
25096         sh_legitimize_reload_address.
25097
25098 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
25099
25100         * config/sh/sh.md (*movqi_pop): New insn pattern.
25101         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
25102
25103 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
25104
25105         * config/i386/i386.md (any_shiftrt): New code iterator.
25106         (shiftrt_insn): New code attribute.
25107         (shiftrt): Ditto.
25108         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
25109         using any_shiftrt code iterator.
25110         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
25111         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
25112         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
25113         pattern from corresponding peephole2 patterns.
25114         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
25115         using any_shiftrt code iterator.
25116         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
25117         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
25118         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
25119         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
25120         *{ashr,lshr}<mode>3_cmp_zext.
25121         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
25122
25123 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
25124
25125         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
25126         scratch register.
25127         (*lshr<mode>3_cconly): Ditto.
25128
25129 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
25130
25131         * config/i386/i386.md (lshr<mode>3): Macroize expander from
25132         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
25133         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
25134         pattern from *lshr{di,ti}3_1 and corresponding splitters using
25135         DWI mode iterator.
25136         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
25137         from corresponding peephole2 patterns.
25138         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
25139         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
25140         and *lshrdi3_1_rex64 using SWI mode iterator.
25141         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
25142         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
25143         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
25144         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
25145         and *lshrdi3_cmp_rex64 using SWI mode iterator.
25146         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
25147         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
25148         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
25149         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
25150         SWI mode iterator.
25151
25152 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
25153
25154         * config/i386/i386.md (ashr<mode>3): Macroize expander from
25155         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
25156         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
25157         pattern from *ashr{di,ti}3_1 and corresponding splitters using
25158         DWI mode iterator.
25159         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
25160         from corresponding peephole2 patterns.
25161         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
25162         (ashrsi3_cvt): Rename from ashrsi3_31.
25163         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
25164         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
25165         and x86_64_shift_adj_3 using SWI48 mode iterator.
25166         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
25167         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
25168         and *ashrdi3_1_rex64 using SWI mode iterator.
25169         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
25170         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
25171         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
25172         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
25173         and *ashrdi3_cmp_rex64 using SWI mode iterator.
25174         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
25175         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
25176         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
25177         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
25178         SWI mode iterator.
25179         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
25180         * config/i386/i386.c (ix86_split_ashr): Update for renamed
25181         x86_shift<mode>_adj_3 expanders.
25182
25183 2010-04-10  Wei Guozhi  <carrot@google.com>
25184
25185         PR target/42601
25186         * config/arm/arm.c (arm_pic_static_addr): New function.
25187         (legitimize_pic_address): Call arm_pic_static_addr when it detects
25188         a static symbol.
25189         (arm_output_addr_const_extra): Output expression for new pattern.
25190         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
25191
25192 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
25193
25194         * ira-costs.c (record_reg_classes): Ignore alternatives that are
25195         not enabled.
25196
25197         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
25198         * web.c: Include "insn-config.h" and "recog.h".
25199         (union_match_dups): New function.
25200         (web_main): Call it.
25201         (union_defs): Don't try to recognize match_dups.
25202
25203         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
25204         if doing so would replace the entire pattern.
25205
25206 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
25207
25208         PR target/43707
25209         PR target/43709
25210         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
25211         and splitter pattern.  Change splitter operand 1 predicate to
25212         nonmemory_operand.
25213
25214 2010-04-09  Martin Jambor  <mjambor@suse.cz>
25215
25216         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
25217         lattices are addresses of CONST_DECLs with the same initial value.
25218         (ipcp_print_all_lattices): Print values of CONST_DECLs.
25219         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
25220
25221 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
25222             Bernd Schmidt  <bernds@codesourcery.com>
25223
25224         * loop-invariant.c (replace_uses): New static function.
25225         (move_invariant_reg): Use it to ensure we can replace the uses.
25226
25227 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
25228
25229         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
25230         function template.
25231         (picochip_override_options): Enable section anchors only above -O1.
25232         (picochip_reorg): Fixed a couple of build warnings.
25233
25234 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25235
25236         * configure.ac (plugin -rdynamic test): Log result.
25237         * configure: Regenerate.
25238         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
25239         (RDYNAMIC_SPEC): Define.
25240         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
25241
25242 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25243
25244         * configure.ac: Determine Sun ld version numbers.
25245         (comdat_group): Restrict GNU ld version checks to gld.
25246         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
25247         (enable_comdat): Support --enable-comdat.
25248         * configure: Regenerate.
25249         * doc/install.texi (Configuration): Document --enable-comdat.
25250
25251 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25252
25253         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
25254         * config/sol2-gld.h: ... here.
25255         * config.gcc (sparc*-*-solaris2*): Reflect this.
25256         (i[34567]86-*-solaris2*): Use it.
25257
25258 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
25259
25260         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
25261         setup_clocks_p.
25262         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
25263
25264 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25265
25266         PR 42965
25267         * diagnostic.c (diagnostic_initialize): Initialize
25268         some_warnings_are_errors.
25269         (diagnostic_finish): New.
25270         (diagnostic_action_after_output): Call it before exiting.
25271         (diagnostic_report_diagnostic): Do not print message here. Set
25272         some_warnings_are_errors.
25273         * diagnostic.h (diagnostic_context): Delete
25274         issue_warnings_are_errors_message. Add some_warnings_are_errors.
25275         (diagnostic_finish): Declare.
25276         * toplev.c (toplev_main): Call it before exit.
25277
25278 2010-04-09  Jason Merrill  <jason@redhat.com>
25279
25280         PR c++/42623
25281         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
25282         for incomplete type.
25283
25284         PR c++/41788
25285         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
25286         based on a warning flag.
25287
25288 2010-04-09  Richard Guenther  <rguenther@suse.de>
25289
25290         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
25291
25292 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
25293
25294         PR bootstrap/43684
25295         * varasm.c (default_assemble_visibility): Wrap vars that are
25296         set, but unused, by targets without GAS.
25297         * config/rs6000/rs6000.c (paired_emit_vector_compare):
25298         Remove set, but unused, vars.
25299         (rs6000_legitimize_tls_address): Likewise.
25300         (altivec_expand_dst_builtin): Likewise.
25301         * config/darwin.c (machopic_classify_symbol): Likewise.
25302         (machopic_indirection_name): Likewise.
25303
25304 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
25305
25306         * config/i386/i386.md (DWI): New mode iterator.
25307         (S): New mode attribute.
25308         (shift_operand): Ditto.
25309         (shift_immediate_operand): Ditto.
25310         (ashl_input_operand): Ditto.
25311         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
25312         using SDWIM mode iterator.
25313         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
25314         pattern from *ashl{di,ti}3_1 and corresponding splitters using
25315         DWI mode iterator.
25316         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
25317         from corresponding peephole2 patterns.
25318         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
25319         and x86_64_shift_adj_1 using SWI48 mode iterator.
25320         (x86_shift<mode>_adj_2): Ditto.
25321         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
25322         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
25323         using SWI48 mode iterator.
25324         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
25325         *ashldi3_cmp_rex64 using SWI mode iterator.
25326         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
25327         *ashldi3_cconly_rex64 using SWI mode iterator.
25328         * config/i386/i386.c (ix86_split_ashl): Update for renamed
25329         x86_shift<mode>_adj_{1,2}.
25330         (ix86_split_ashr): Ditto.
25331         (ix86_split_lshr): Ditto.
25332
25333 2010-04-09  Richard Guenther  <rguenther@suse.de>
25334
25335         * target.h (builtin_conversion): Pass in input and output types.
25336         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
25337         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
25338         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
25339         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
25340
25341         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
25342         Handle AVX modes.
25343         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
25344
25345 2010-04-09  Richard Guenther  <rguenther@suse.de>
25346
25347         PR target/43152
25348         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
25349
25350 2010-04-09  Richard Guenther  <rguenther@suse.de>
25351
25352         * tree-vectorizer.h (struct _stmt_vec_info): Document
25353         that vectype is the type of the LHS.
25354         (supportable_widening_operation, supportable_narrowing_operation):
25355         Get both input and output vector types as arguments.
25356         (vect_is_simple_use_1): Declare.
25357         (get_same_sized_vectype): Likewise.
25358         * tree-vect-loop.c (vect_determine_vectorization_factor):
25359         Set STMT_VINFO_VECTYPE to the vector type of the def.
25360         (vectorizable_reduction): Adjust.
25361         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
25362         Adjust.  Specify the output vector type.
25363         (vect_pattern_recog_1): Adjust.
25364         * tree-vect-stmts.c (get_same_sized_vectype): New function.
25365         (vectorizable_call): Adjust.
25366         (vectorizable_conversion): Likewise.
25367         (vectorizable_operation): Likewise.
25368         (vectorizable_type_demotion): Likewise.
25369         (vectorizable_type_promotion): Likewise.
25370         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
25371         the def.
25372         (vect_is_simple_use_1): New function.
25373         (supportable_widening_operation): Get both input and output
25374         vector types.
25375         (supportable_narrowing_operation): Likewise.
25376         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
25377
25378 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
25379
25380         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
25381         __thiscall and _thiscall as predefined macros.
25382         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
25383         thiscall attribute handling.
25384         (ix86_comp_type_attributes): Likewise.
25385         (ix86_function_regparm): Likewise.
25386         (ix86_return_pops_args): Likewise.
25387         (init_cumulative_args): Likewise.
25388         (find_drap_reg): Likewise.
25389         (ix86_static_chain): Likewise.
25390         (x86_this_parameter): Likewise.
25391         (x86_output_mi_thunk): Likewise.
25392         (ix86_attribute_table): Add description for thiscall attribute.
25393         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
25394         * doc/extend.texi: Add documentation for thiscall.
25395
25396 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25397
25398         PR c++/28584
25399         * c.opt (Wint-to-pointer-cast): Available in C++.
25400         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
25401
25402 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
25403
25404         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
25405         * calls.c (expand_call): Pass the function type to aggregate_value_p.
25406         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
25407         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
25408         function type instead.  Reorder and simplify checks.
25409
25410         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
25411
25412 2010-04-08  Jing Yu  <jingyu@google.com>
25413             Zdenek Dvorak  <ook@ucw.cz>
25414
25415         PR tree-optimization/42720
25416         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
25417         loop unswitch conditions here from ...
25418         (tree_unswitch_single_loop): ... here.
25419
25420 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
25421
25422         * tree-if-conv.c: Fix comments and simplify logic.
25423
25424 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
25425
25426         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
25427         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
25428         (main_tree_if_conversion): Update call to tree_if_conversion.
25429
25430 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
25431
25432         PR 42485
25433         * doc/invoke.texi (-b,-V): Delete.
25434         * doc/tm.texi: Do not mention -b.
25435         * gcc.c (display_help): Delete -b and -V.
25436         (process_command): Delete -b and -V.
25437         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
25438
25439 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
25440             Wolfgang Gellerich  <gellerich@de.ibm.com>
25441
25442         Implement target hook for loop unrolling
25443         * target.h (loop_unroll_adjust): Add a new target hook function.
25444         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
25445         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
25446         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
25447         (s390_loop_unroll_adjust): Implement the new target hook for s390.
25448         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
25449         target hook.
25450         (decide_unroll_stupid): Likewise.
25451
25452 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25453
25454         PR target/43643
25455         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
25456
25457 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25458
25459         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
25460         (Specific, *-*-solaris2*): Likewise.
25461         Don't prefer Sun as over GNU as.
25462
25463 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
25464
25465         * config/s390/s390.c (override_options): Adjust the z10 defaults
25466         for max-unroll-times, max-completely-peeled-insns
25467         and max-completely-peel-times.
25468
25469 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25470
25471         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
25472         instructions for z10.
25473         (s390_expand_setmem): Likewise.
25474         (s390_expand_cmpmem): Likewise.
25475
25476 2010-04-08  Richard Guenther  <rguenther@suse.de>
25477
25478         PR tree-optimization/43679
25479         * tree-ssa-pre.c (eliminate): Only propagate copies.
25480
25481 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
25482
25483         PR bootstrap/43681
25484         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
25485         set but not used variable warning.
25486
25487 2010-04-08  Wei Guozhi  <carrot@google.com>
25488
25489         PR target/41653
25490         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
25491         (arm_size_rtx_costs): Call the new function when optimized for size.
25492
25493 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
25494
25495         PR debug/43670
25496         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
25497         op0 is not a MEM, just return NULL instead of assertion
25498         failure.
25499         (discover_nonconstant_array_refs): Don't walk debug stmts.
25500
25501 2010-04-08  Doug Kwan  <dougkwan@google.com>
25502
25503         * configure.ac: Recognize gold and do not use its version number
25504         to test ld features.
25505         * configure: Regenerate.
25506
25507 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
25508
25509         PR middle-end/40815
25510         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
25511         (negate_value): Move code to push elements to broken_up_substracts ...
25512         (eliminate_plus_minus_pair): ... here.  Push operands that have no
25513         negative pair to plus_negates.
25514         (repropagate_negates, init_reassoc, fini_reassoc): Update.
25515
25516 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25517
25518         * doc/install.texi (Configuration): Move description of
25519         --enable-lto, --with-libelf*, --enable-gold from Java section to
25520         general section.
25521
25522         * doc/generic.texi (Working with declarations)
25523         (Function Properties, C and C++ Trees): Fix typos.
25524         * doc/sourcebuild.texi (Top Level): Likewise.
25525
25526 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
25527
25528         PR c/18624
25529         * tree.h (DECL_READ_P): Define.
25530         (struct tree_decl_common): Add decl_read_flag.
25531         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
25532         a set but not used warning.
25533         (merge_decls): Merge DECL_READ_P flag.
25534         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
25535         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
25536         * c-common.c (handle_used_attribute, handle_unused_attribute):
25537         Likewise.
25538         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
25539         New prototypes.
25540         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
25541         New functions.
25542         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
25543         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
25544         c_parser_binary_expression, c_parser_cast_expression,
25545         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
25546         Call default_function_array_read_conversion instead of
25547         default_function_array_conversion where needed.
25548         (c_parser_unary_expression, c_parser_conditional_expression,
25549         c_parser_postfix_expression_after_primary, c_parser_initelt):
25550         Likewise.  Call mark_exp_read where needed.
25551         (c_parser_statement_after_labels, c_parser_asm_operands,
25552         c_parser_typeof_specifier, c_parser_sizeof_expression,
25553         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
25554         where needed.
25555         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
25556         New.
25557         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
25558         (warn_unused_but_set_parameter): Default to warn_unused
25559         && extra_warnings.
25560         * doc/invoke.texi: Document -Wunused-but-set-variable and
25561         -Wunused-but-set-parameter.
25562
25563         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
25564         used count variable.
25565         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
25566         when operandN variables aren't used in the body of the expander
25567         or splitter.
25568         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
25569         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
25570         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
25571         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
25572         FOR_EACH_IMM_USE_ON_STMT): Likewise.
25573         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
25574         * tree.c (PROCESS_ARG): Likewise.
25575
25576 2010-04-07  Simon Baldwin  <simonb@google.com>
25577
25578         * diagnostic.h (diagnostic_override_option_index): New macro to
25579         set a diagnostic's option_index.
25580         * c-tree.h (c_cpp_error): Add warning reason argument.
25581         * opts.c (_warning_as_error_callback): New.
25582         (register_warning_as_error_callback): Store callback for
25583         warnings enabled via enable_warning_as_error.
25584         (enable_warning_as_error): Call callback, minor code tidy.
25585         * opts.h (register_warning_as_error_callback): Declare.
25586         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
25587         response to -Werror=.
25588         (c_common_init_options): Register warning_as_error_callback in opts.c.
25589         * common.opt: Add -Wno-cpp option.
25590         * c-common.c (struct reason_option_codes_t): Map cpp warning
25591         reason codes to gcc option indexes.
25592         * (c_option_controlling_cpp_error): New function, lookup the gcc
25593         option index for a cpp warning reason code.
25594         * (c_cpp_error): Add warning reason argument, call
25595         c_option_controlling_cpp_error for diagnostic_override_option_index.
25596         * doc/invoke.texi: Document -Wno-cpp.
25597
25598 2010-04-07  Richard Guenther  <rguenther@suse.de>
25599
25600         * ipa-reference.c (mark_load): Use get_base_address.
25601         (mark_store): Likewise.
25602
25603         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
25604         inserting GIMPLE_NOPs into the IL.
25605         * tree-ssa-structalias.c (get_constraint_for_component_ref):
25606         Explicitly strip handled components and indirect references.
25607
25608         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
25609         folding address expressions.
25610         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
25611         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
25612         operand_equal_p to compare decls.
25613         (ptr_deref_may_alias_decl_p): Likewise.
25614         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
25615         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
25616         Handle reversed comparison ops.
25617         * tree-sra.c (asm_visit_addr): Use get_base_address.
25618         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
25619         * ipa-reference.c (mark_address): Use get_base_address.
25620
25621 2010-04-07  Richard Guenther  <rguenther@suse.de>
25622
25623         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
25624         Propagate constants everywhere.
25625
25626 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
25627
25628         PR debug/43516
25629         * tree.c (MAX_INT_CACHED_PREC): Define.
25630         (nonstandard_integer_type_cache): New array.
25631         (build_nonstandard_integer_type): Cache results for precision
25632         <= MAX_INT_CACHED_PREC.
25633
25634 2010-04-07  Richard Guenther  <rguenther@suse.de>
25635
25636         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
25637         -fargument-noalias-global, -fargument-noalias-anything): Remove.
25638         * common.opt: Likewise.
25639         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
25640         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
25641         (nonoverlapping_memrefs_p): Likewise.
25642         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
25643         * opts.c (common_handle_option): Handle OPT_fargument_alias,
25644         OPT_fargument_noalias, OPT_fargument_noalias_anything and
25645         OPT_fargument_noalias_global for backward compatibility.
25646
25647 2010-04-07  Richard Guenther  <rguenther@suse.de>
25648
25649         PR tree-optimization/43270
25650         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
25651         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
25652         * tree-ssa-pre.c (phi_translate_1): Adjust.
25653         (fully_constant_expression): Split out vn_reference handling to ...
25654         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
25655         Fold reads from constant strings.
25656         (vn_reference_lookup): Handle fully constant references.
25657         (vn_reference_lookup_pieces): Likewise.
25658         * Makefile.in (expmed.o-warn): Add -Wno-error.
25659
25660 2010-04-07  Martin Jambor  <mjambor@suse.cz>
25661
25662         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
25663
25664 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
25665
25666         PR driver/41594
25667         * gcc.c: Add -static-libstdc++ to list of recognized options.
25668
25669 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
25670
25671         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
25672
25673 2010-04-07  Richard Guenther  <rguenther@suse.de>
25674
25675         PR middle-end/42617
25676         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
25677         bases build simple mem attributes to retain points-to information.
25678
25679 2010-04-07  Richard Guenther  <rguenther@suse.de>
25680
25681         PR middle-end/42617
25682         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
25683         preserve points-to related information.
25684
25685 2010-04-07  Richard Guenther  <rguenther@suse.de>
25686
25687         PR middle-end/42617
25688         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
25689         discard plain indirect references.
25690         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
25691         * tree.c (tree_nop_conversion): Likewise.
25692
25693 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
25694
25695         PR debug/43628
25696         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
25697
25698 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
25699
25700         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
25701         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
25702
25703 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
25704
25705         * tree-if-conv.c: Fix indentation and comments.
25706
25707 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
25708
25709         * tree-if-conv.c: Sort static functions in topological order.
25710
25711 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
25712
25713         * tree-if-conv.c: Fix indentation and comments.
25714
25715 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
25716
25717         PR middle-end/43519
25718         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
25719         lang_hooks.types.type_for_size instead of
25720         build_nonstandard_integer_type.
25721         When converting an unsigned type to signed, double its precision.
25722         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
25723         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
25724         (graphite_create_new_loop_guard): When ub + 1 wraps around,
25725         use lb <= ub.
25726
25727 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
25728
25729         PR middle-end/43519
25730         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
25731         POINTER_PLUS_EXPR for pointer types.
25732
25733 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
25734
25735         PR middle-end/43519
25736         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
25737         * graphite-clast-to-gimple.c: Include langhooks.h.
25738         (max_signed_precision_type): New.
25739         (max_precision_type): Takes two types as arguments.
25740         (precision_for_value): New.
25741         (precision_for_interval): New.
25742         (gcc_type_for_interval): New.
25743         (gcc_type_for_value): New.
25744         (gcc_type_for_clast_term): New.
25745         (gcc_type_for_clast_red): New.
25746         (gcc_type_for_clast_bin): New.
25747         (gcc_type_for_clast_expr): Split up into several functions.
25748         (gcc_type_for_clast_eq): Rewritten.
25749         (compute_bounds_for_level): New.
25750         (compute_type_for_level_1): New.
25751         (compute_type_for_level): New.
25752         (gcc_type_for_cloog_iv): Removed.
25753         (gcc_type_for_iv_of_clast_loop): Rewritten.
25754         (graphite_create_new_loop): Compute the lower and upper bound types
25755         with gcc_type_for_clast_expr.
25756         (graphite_create_new_loop_guard): Same.
25757         (find_cloog_iv_in_expr): Removed.
25758         (compute_cloog_iv_types_1): Removed.
25759         (compute_cloog_iv_types): Removed.
25760         (gloog): Do not call compute_cloog_iv_types.
25761         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
25762         GBB_CLOOG_IV_TYPES.
25763         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
25764         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
25765         (GBB_CLOOG_IV_TYPES): Removed.
25766
25767 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
25768
25769         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
25770         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
25771         (detect_commutative_reduction): Same.
25772
25773 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
25774
25775         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
25776         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
25777         argument.
25778         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
25779         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
25780         (rewrite_commutative_reductions_out_of_ssa): Same.
25781         * passes.c (execute_function_todo): Call verify_ssa for every pass
25782         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
25783         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
25784         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
25785         with an extra argument.
25786         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
25787         verify_ssa only when the extra argument is true.
25788         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
25789         with an extra argument.
25790         (tree_transform_and_unroll_loop): Same.
25791
25792 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
25793
25794         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
25795         for all the passes of the LNO having LOOP_CLOSED_SSA.
25796         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
25797         * tree-loop-distribution.c (pass_loop_distribution): Same.
25798         * tree-pass.h (TODO_verify_loops): Removed.
25799         * tree-ssa-loop.c (pass_tree_loop_init): Same.
25800         (pass_lim): Same.
25801         (pass_tree_unswitch): Same.
25802         (pass_predcom): Same.
25803         (pass_vectorize): Same.
25804         (pass_linear_transform): Same.
25805         (pass_graphite_transforms): Same.
25806         (pass_iv_canon): Same.
25807         (pass_complete_unroll): Same.
25808         (pass_complete_unrolli): Same.
25809         (pass_parallelize_loops): Same.
25810         (pass_loop_prefetch): Same.
25811         (pass_iv_optimize): Same.
25812
25813 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
25814
25815         PR middle-end/32824
25816         * passes.c (init_optimization_passes): Move pass_lim before
25817         pass_copy_prop and pass_dce_loop.
25818
25819 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
25820
25821         PR target/43667
25822         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
25823         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
25824         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
25825         MULTI_* defines for 4 argument vpermil2p* builtins.
25826
25827 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
25828
25829         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
25830         * config/i386/i386.c (x86_maybe_negate_const_int): New.
25831         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
25832         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
25833         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
25834         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
25835         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
25836         Use x86_maybe_negate_const_int to output insn mnemonic.
25837         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
25838         check from instruction predicate.  Update comments.
25839         * config/i386/sync.md (sync_add<mode>): Use
25840         x86_maybe_negate_const_int to output insn mnemonic.
25841
25842 2010-04-06  Jan Hubicka  <jh@suse.cz>
25843
25844         PR tree-optimization/42906
25845         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
25846         IGNORE_SELF argument.  Set visited_control_parents for fully
25847         processed BBs.
25848         (find_obviously_necessary_stmts): Update call of
25849         mark_control_dependent_edges_necessary.
25850         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
25851
25852 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
25853
25854         * config/i386/i386.md: Remove comment about 'e' and 'E'
25855         operand modifier.
25856
25857 2010-04-06  Richard Guenther  <rguenther@suse.de>
25858
25859         PR tree-optimization/43627
25860         * tree-vrp.c (extract_range_from_unary_expr): Widenings
25861         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
25862         not varying.
25863
25864 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
25865
25866         * BASE-VER: Change to 4.6.0.
25867
25868         PR target/43638
25869         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
25870         handling.
25871
25872 2010-04-06  Richard Guenther  <rguenther@suse.de>
25873
25874         PR middle-end/43661
25875         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
25876
25877 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25878
25879         * doc/invoke.texi (Optimize Options): Document that LTO
25880         won't remove object access purely due to incompatible
25881         declarations.
25882
25883 2010-04-04  Matthias Klose  <doko@ubuntu.com>
25884
25885         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
25886         Initialize variable.
25887
25888 2010-04-03  Richard Guenther  <rguenther@suse.de>
25889
25890         PR middle-end/42509
25891         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
25892         require a non-NULL MEM_OFFSET.
25893
25894 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
25895
25896         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
25897         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
25898         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
25899         config/alpha/predicates.md, config/arm/arm.md,
25900         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
25901         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
25902         config/darwin9.h, config/darwin.c, config/darwin.h,
25903         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
25904         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
25905         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
25906         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
25907         config/mips/mips.md, config/mn10300/mn10300.c,
25908         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
25909         config/rs6000/aix.h, config/rs6000/dfp.md,
25910         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
25911         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
25912         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
25913         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
25914         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
25915         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
25916         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
25917         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
25918         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
25919         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
25920         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
25921         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
25922         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
25923         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
25924         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
25925         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
25926         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
25927         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
25928         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
25929         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
25930         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
25931         opt-functions.awk, opth-gen.awk, params.def, passes.c,
25932         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
25933         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
25934         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
25935         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
25936         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
25937         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
25938         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
25939         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
25940         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
25941         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
25942         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
25943         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
25944         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
25945         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
25946
25947 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25948
25949         PR other/43620
25950         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
25951         * aclocal.m4: Regenerate.
25952
25953 2010-04-02  Richard Guenther  <rguenther@suse.de>
25954
25955         PR tree-optimization/43629
25956         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
25957         if we have seen a constant value.
25958
25959 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
25960
25961         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
25962
25963 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
25964
25965         PR target/43469
25966         * arm.c (legitimize_tls_address): Adjust call to
25967         gen_tls_load_dot_plus_four.
25968         (arm_note_pic_base): New function.
25969         (arm_cannot_copy_insn_p): Use it.
25970         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
25971         constraint.
25972
25973 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25974
25975         PR bootstrap/43531
25976
25977         Revert:
25978         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
25979
25980         * Makefile.in ($(out_object_file)): Depend on
25981         gt-$(basename $(notdir $(out_file))).h.
25982
25983 2010-04-01  Ralf Corsépius  <ralf.corsepius@rtems.org>
25984
25985         * config.gcc (lm32-*-rtems*): Add t-lm32.
25986
25987 2010-04-01  Joel Sherrill  <joel.sherrill@oarcorp.com>
25988
25989         * config.gcc: Add lm32-*-rtems*.
25990         * config/lm32/rtems.h: New file.
25991
25992 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
25993
25994         PR target/42609
25995         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
25996
25997 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
25998
25999         * dwarf2out.c (output_compilation_unit_header): For
26000         -gdwarf-4 use version 4 instead of version 3.
26001         (output_line_info): For version 4 and above emit additional
26002         maximum ops per insn header field.
26003         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
26004
26005         * dwarf2out.c (is_c_family, is_java): Remove.
26006         (lower_bound_default): New function.
26007         (add_bound_info, gen_descr_array_type_die): Use it.
26008
26009 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
26010
26011         PR debug/43325
26012         * dwarf2out.c (gen_variable_die): Allow debug info for variable
26013         re-declaration when it happens in a function.
26014
26015 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
26016
26017         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
26018         (cgraph_remove_function_insertion_hook): Same.
26019         (cgraph_call_function_insertion_hooks): Same.
26020
26021 2010-04-01  Richard Guenther  <rguenther@suse.de>
26022
26023         PR middle-end/43614
26024         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
26025         and TREE_THIS_VOLATILE.
26026         (copy_ref_info): Likewise.
26027         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
26028         * tree.c (build6_stat): Ignore side-effects of all but arg5
26029         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
26030         TARGET_MEM_REF.
26031
26032 2010-04-01  Richard Guenther  <rguenther@suse.de>
26033
26034         PR tree-optimization/43607
26035         * ipa-type-escape.c (check_call): Do not access non-existing
26036         arguments.
26037
26038 2010-04-01  Richard Guenther  <rguenther@suse.de>
26039
26040         PR middle-end/43602
26041         Revert
26042         2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
26043                     Jack Howarth  <howarth@bromo.med.uc.edu>
26044
26045         * tree-profile.c (tree_init_ic_make_global_vars): Make static
26046         variables TLS.
26047
26048 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26049
26050         * doc/install.texi (Prerequisites): Document libelf usability on
26051         IRIX 5/6 and Solaris 2.
26052         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
26053         Update GNU as, GNU ld requirements.
26054         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
26055         Document Sun Studio compiler download.
26056         Update and simplify as, ld recommendations.
26057         (Specific, *-*-solaris2.7): Note obsoletion, removal.
26058
26059 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26060
26061         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
26062         with_tune_32 to pentium4.
26063
26064 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
26065
26066         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
26067
26068 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26069
26070         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
26071         obsoletion, removal.
26072         Update IDO URL.
26073         Document GNU as requirement.
26074         Update configure requirements.
26075         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
26076         Recomment IRIX 6.5.18+.
26077         Document IDF/IDL requirement.
26078         Document GNU as requirement.
26079         Document GNU ld bootstrap failure.
26080         Remove freeware.sgi.com reference.
26081
26082 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26083
26084         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
26085         UNIX V4.0, V5.0 obsoletion, removal.
26086         Remove --with-gc=simple reference.
26087         Update VM requirements during bootstrap.
26088         Remove -oldas bootstrap description.
26089         Update binutils reference.
26090         Remove comparison failure note.
26091
26092 2010-03-31  Richard Guenther  <rguenther@suse.de>
26093             Zdenek Dvorak  <ook@ucw.cz>
26094             Sebastian Pop  <sebastian.pop@amd.com>
26095
26096         PR middle-end/43464
26097         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
26098         with multiple arguments.
26099         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
26100
26101 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
26102
26103         * graphite-dependences.c (print_pddr): Call print_pdr with an
26104         extra argument.
26105         * graphite-poly.c (debug_pdr): Add an extra argument for the
26106         verbosity level.
26107         (print_pdr): Same.
26108         (print_pbb_domain): Same.
26109         (print_pbb): Same.
26110         (print_scop_context): Same.
26111         (print_scop): Same.
26112         (print_cloog): Same.
26113         (debug_pbb_domain): Same.
26114         (debug_pbb): Same.
26115         (print_pdrs): Same.
26116         (debug_pdrs): Same.
26117         (debug_scop_context): Same.
26118         (debug_scop): Same.
26119         (debug_cloog): Same.
26120         (print_scop_params): Same.
26121         (debug_scop_params): Same.
26122         (print_iteration_domain): Same.
26123         (print_iteration_domains): Same.
26124         (debug_iteration_domain): Same.
26125         (debug_iteration_domains): Same.
26126         (print_scattering_function): Same.
26127         (print_scattering_functions): Same.
26128         (debug_scattering_function): Same.
26129         (debug_scattering_functions): Same.
26130         * graphite-poly.h (debug_pdr): Update declaration.
26131         (print_pdr): Same.
26132         (print_pbb_domain): Same.
26133         (print_pbb): Same.
26134         (print_scop_context): Same.
26135         (print_scop): Same.
26136         (print_cloog): Same.
26137         (debug_pbb_domain): Same.
26138         (debug_pbb): Same.
26139         (print_pdrs): Same.
26140         (debug_pdrs): Same.
26141         (debug_scop_context): Same.
26142         (debug_scop): Same.
26143         (debug_cloog): Same.
26144         (print_scop_params): Same.
26145         (debug_scop_params): Same.
26146         (print_iteration_domain): Same.
26147         (print_iteration_domains): Same.
26148         (debug_iteration_domain): Same.
26149         (debug_iteration_domains): Same.
26150         (print_scattering_function): Same.
26151         (print_scattering_functions): Same.
26152         (debug_scattering_function): Same.
26153         (debug_scattering_functions): Same.
26154
26155 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
26156
26157         * graphite-poly.c (print_scattering_function_1): New.
26158         (print_scattering_function): Call it.
26159         (print_scop_params): Remove spaces at the end of lines.
26160         (print_cloog): New.
26161         (debug_cloog): New.
26162         * graphite-poly.h (print_cloog): Declared.
26163         (debug_cloog): Declared.
26164
26165 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
26166
26167         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
26168         in loop->header.
26169         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
26170         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
26171         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
26172         to switch between adding the IV bump in loop->latch or in loop->header.
26173
26174 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
26175
26176         * graphite-poly.c (print_scattering_function): Pretty print following
26177         the scoplib format.
26178         (print_pdr): Same.
26179         (print_pbb_domain): Same.
26180         (dump_gbb_cases): Same.
26181         (dump_gbb_conditions): Same.
26182         (print_pdrs): Same.
26183         (print_pbb): Same.
26184         (print_scop_params): Same.
26185         (print_scop_context): Same.
26186         (print_scop): Same.
26187         (print_pbb_body): New.
26188         (lst_indent_to): New.
26189         (print_lst): Start new lines with a #.
26190         * graphite-poly.h (pbb_bb): New.
26191         (pbb_index): Use pbb_bb.
26192         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
26193         disjuncts.
26194         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
26195
26196 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
26197
26198         * dwarf2out.c (size_of_die): For -gdwarf-4 use
26199         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
26200         and 0 instead of 1 for dw_val_class_flag.
26201         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
26202         dw_val_class_range_list, dw_val_class_loc_list,
26203         dw_val_class_lineptr and dw_val_class_macptr, use
26204         DW_FORM_flag_present for dw_val_class_flag and
26205         DW_FORM_exprloc for dw_val_class_loc.
26206         (output_die): For -gdwarf-4 print dw_val_class_loc
26207         size as uleb128 instead of 1 or 2 bytes and don't print
26208         anything for dw_val_class_flag.
26209
26210         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
26211         instead of cselib_lookup following by tweaking locs->setting_insn.
26212
26213         PR bootstrap/43596
26214         * cselib.c (cselib_process_insn): Clear cselib_current_insn
26215         even before returning from label, setjmp call or volatile asm
26216         handling.
26217
26218 2010-03-31  Richard Guenther  <rguenther@suse.de>
26219
26220         PR middle-end/43600
26221         * cgraphunit.c (cgraph_output_in_order): Do not allocate
26222         temporary data on stack.
26223
26224 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26225
26226         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
26227         (PUSHSECTION_ASM_OP): Remove.
26228         (POPSECTION_ASM_OP): Remove.
26229         (PUSHSECTION_FORMAT): Remove.
26230         * config/sol2.h (PUSHSECTION_FORMAT): Define.
26231         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
26232         * config/sol2.c (solaris_output_init_fini): Use it.
26233
26234 2010-03-31  Jie Zhang  <jie@codesourcery.com>
26235
26236         PR 43574
26237         * opt-functions.awk (var_type_struct): Use signed char type
26238         for simple variables.
26239
26240 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26241
26242         * config/sol2.c: Include output.h.
26243         (solaris_assemble_visibility): New function.
26244         * config/t-sol2 (sol2.o): Add output.h dependency.
26245         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
26246         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
26247         Redefine.
26248
26249 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
26250
26251         PR target/43580
26252         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
26253         V2SImode or XFmode on PRE_DEC.
26254
26255         PR debug/43557
26256         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
26257         BLKmode.
26258
26259 2010-03-31  Jie Zhang  <jie@codesourcery.com>
26260
26261         PR 43562
26262         * reload.h (caller_save_initialized_p): Declare.
26263         * toplev.c (backend_init_target): Don't call
26264         init_caller_save but set caller_save_initialized_p to false.
26265         * caller-save.c (caller_save_initialized_p): Define.
26266         (init_caller_save): Check caller_save_initialized_p.
26267         * ira.c (ira): Call init_caller_save if flag_caller_saves.
26268
26269 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26270
26271         PR target/39048
26272         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
26273         and soft-fp/t-softfp to tmake_file.
26274         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
26275         (LIBGCC2_TF_CEXT): Define.
26276         (TF_SIZE): Define.
26277
26278 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
26279
26280         PR debug/42977
26281         * cselib.c (n_useless_values): Document handling of debug locs.
26282         (n_useless_debug_values, n_debug_values): New variables.
26283         (new_elt_loc_list): Don't add to debug values, keep count.
26284         (promote_debug_loc): New.
26285         (cselib_reset_table): Zero new variables.
26286         (entry_and_rtx_equal_p): Promote debug locs.
26287         (discard_useless_locs): Increment n_useless_debug_values for
26288         debug values.
26289         (remove_useless_values): Adjust n_useless_values and n_debug_values
26290         with n_useless_debug_values.
26291         (add_mem_for_addr): Promote debug locs.
26292         (cselib_lookup_mem): Likewise.
26293         (cselib_lookup_addr): Renamed to...
26294         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
26295         (cselib_log_lookup): ... this.  Turn into...
26296         (cselib_lookup_addr): ... new wrapper.
26297         (cselib_lookup_from_insn): New.
26298         (cselib_invalidate_regno): Increment n_useless_debug_values for
26299         debug values.
26300         (cselib_invalidate_mem): Likewise.
26301         (cselib_process_insn): Take n_deleted and n_debug_values into
26302         account to guard remove_useless_value call.
26303         (cselib_finish): Zero n_useless_debug_values.
26304         * cselib.h (cselib_lookup_from_insn): Declare.
26305         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
26306         (sched_analyze_2): Likewise.
26307
26308 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
26309
26310         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
26311         functions.
26312         (adjust_mems): Replace narrowing SUBREG of expression containing
26313         just PLUS, MINUS, MULT and ASHIFT of registers and constants
26314         with operations in the narrower mode.
26315
26316         PR debug/43593
26317         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
26318         regs_invalidated_by_call instead all call_used_reg_set registers.
26319
26320 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
26321
26322         PR middle-end/43430
26323         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
26324         pointer comparisons with types_compatible_p.
26325         * tree-vect-stmts.c (vectorizable_call): Same.
26326         (vectorizable_condition): Same.
26327
26328 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
26329
26330         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
26331         stack check if the mask would be zero.
26332
26333 2010-03-30  Seongbae Park  <seongbae.park@gmail.com>
26334             Jack Howarth  <howarth@bromo.med.uc.edu>
26335
26336         * tree-profile.c (tree_init_ic_make_global_vars): Make static
26337         variables TLS.
26338
26339 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
26340
26341         PR other/25232
26342         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
26343         and __unordtf2.
26344         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
26345         Include ___unordxf2 and ___unordtf2.
26346         * config/i386/libgcc-glibc.ver: Do not define inheritance from
26347         GCC_4.4.0 here.
26348
26349 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
26350
26351         * config/lm32/t-lm32: New file.
26352         * config.gcc: Use the above file when targetting lm32.
26353
26354 2010-03-28  Duncan Sands  <baldrick@free.fr>
26355
26356         * Makefile.in (PLUGIN_HEADERS): Add except.h.
26357
26358 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
26359
26360         PR middle-end/43431
26361         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
26362         Improve vectorization cost model diagnostic.
26363
26364 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
26365
26366         PR middle-end/43436
26367         * tree-vect-data-refs.c (vect_analyze_data_refs): When
26368         compute_data_dependences_for_loop returns false, early exit
26369         and output an extra diagnostic for the failed data reference
26370         analysis.
26371
26372 2010-03-29  Richard Guenther  <rguenther@suse.de>
26373
26374         PR tree-optimization/43560
26375         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
26376         (can_sm_ref_p): Treat stores to readonly locations as trapping.
26377
26378 2010-03-29  Jie Zhang  <jie@codesourcery.com>
26379
26380         PR 43564
26381         * toplev.c (process_options): Set optimization_default_node
26382         and optimization_current_node.
26383         * opts.c (decode_options): Don't set optimization_default_node
26384         and optimization_current_node.
26385
26386 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
26387
26388         * config/rtems.h: Abandon -qrtems_debug.
26389
26390 2010-03-28  Jan Hubicka  <jh@suse.cz>
26391
26392         PR tree-optimization/43505
26393         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
26394         map should not be copied.
26395
26396 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26397
26398         PR middle-end/41674
26399         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
26400         cdtors, set DECL_PRESERVE_P.
26401         * ipa.c (cgraph_externally_visible_p): Return true if declaration
26402         should be preseved.
26403
26404 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
26405
26406         PR tree-optimization/43528
26407         * stor-layout.c (place_field): Check that constant fits into
26408         unsigned HWI when skipping calculation of MS bitfield layout.
26409
26410 2010-03-27  Jan Hubicka  <jh@suse.cz>
26411
26412         PR middle-end/43391
26413         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
26414         notice_global_symbol work.
26415
26416 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
26417
26418         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
26419         instead of dwarf2out_decl.
26420         (struct var_loc_node): Remove section_label field.
26421         (dwarf2out_function_decl): New function.
26422         (dwarf2out_var_location): Don't set section_label field.
26423         (dwarf2out_begin_function): Don't empty decl_loc_table here.
26424
26425 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
26426
26427         PR tree-optimization/43544
26428         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
26429         First argument for builtin vectorized function hook is now a
26430         tree to be able to distinguish between machine specific and
26431         standard builtins.
26432         * targhooks.c (default_builtin_vectorized_function): Ditto.
26433         * targhooks.h (default_builtin_vectorized_function): Ditto.
26434         * target.h (struct gcc_target): Ditto.
26435         * tree-vect-stmts.c (vectorizable_function): Ditto.
26436         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
26437         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
26438         Ditto.
26439
26440 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
26441
26442         PR c/43381
26443         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
26444         nested binding iff it is a FUNCTION_DECL.
26445         (store_parm_decls_newstyle): Pass nested=true to bind for
26446         FUNCTION_DECLs amongst parameters.
26447
26448 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
26449
26450         * var-tracking.c (vt_expand_loc_callback): Don't run
26451         cselib_expand_value_rtx_cb in dummy mode if
26452         cselib_dummy_expand_value_rtx_cb returned false.
26453
26454         * var-tracking.c (emit_note_insn_var_location): For one part
26455         notes with offset 0, don't add EXPR_LIST around the location.
26456         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
26457         add_location_or_const_value_attribute): Adjust for that change.
26458
26459         PR debug/43540
26460         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
26461         into first operand and location into second.
26462         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
26463         dw_cfi_oprnd_loc for DW_CFA_expression.
26464         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
26465         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
26466         assume first argument is regnum and second argument is location.
26467
26468 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
26469
26470         PR target/42113
26471         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
26472         of scratch register to DImode.  Split to DImode comparison operator.
26473         Use SImode subreg of scratch register in the multiplication.
26474         (*cmp_sadd_sidi): Ditto.
26475         (*cmp_ssub_si): Ditto.
26476         (*cmp_ssub_sidi): Ditto.
26477
26478 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
26479
26480         PR target/43524
26481         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
26482         Remove invalid assert and wrong comment.
26483
26484 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
26485
26486         PR debug/43516
26487         * flags.h (final_insns_dump_p): New extern.
26488         * final.c (final_insns_dump_p): New variable.
26489         (rest_of_clean_state): Set it before -fdump-final-insns=
26490         dumping, clear afterwards.
26491         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
26492         MEM_ALIAS_SET on MEMs.
26493
26494 2010-03-26  David S. Miller  <davem@davemloft.net>
26495
26496         * configure.ac: Fix sparc GOTDATA_OP bug check.
26497         * configure: Rebuild.
26498
26499 2010-03-26  Alan Modra  <amodra@gmail.com>
26500
26501         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
26502
26503 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26504
26505         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
26506         TLS_SECTION_ASM_FLAG.
26507
26508 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
26509
26510         PR bootstrap/43511
26511         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
26512         Clear first_function_block_is_cold.
26513
26514         PR c/43385
26515         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
26516         argument if the argument is truth_value_p.
26517
26518 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
26519
26520         * config/rs6000/constraints.md: Update copyright year for my changes.
26521
26522         PR target/43484
26523         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
26524         used in reg+reg addressing, swap registers.
26525
26526 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
26527
26528         PR debug/43293
26529         * target.h (struct gcc_target): Add code_end hook.
26530         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
26531         if not yet defined.
26532         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
26533         * toplev.c (compile_file): Call targetm.asm_out.code_end
26534         hook before unwind info/debug info output.
26535         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
26536         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
26537         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
26538         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
26539         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
26540         * config/i386/i386.c (ix86_file_end): Renamed to...
26541         (ix86_code_end): ... this.  Make static.  Don't call
26542         file_end_indicate_exec_stack.  Emit unwind info using
26543         final_start_function/final_end_function.
26544         (darwin_x86_file_end): Remove.
26545         (TARGET_ASM_CODE_END): Define.
26546         * config/i386/i386.h (TARGET_ASM_FILE_END,
26547         NEED_INDICATE_EXEC_STACK): Don't define.
26548         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
26549         (TARGET_ASM_FILE_END): Define to darwin_file_end.
26550         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
26551         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
26552
26553         PR target/43498
26554         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
26555         at the beginning and final_end_function at the end.
26556         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
26557
26558 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26559
26560         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
26561         and Sun as TLS syntax.
26562         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
26563         * configure: Regenerate.
26564         * config.in: Regenerate.
26565         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
26566         (default_elf_asm_named_section): Use it.
26567         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
26568         (i386_output_dwarf_dtprel): Likewise.
26569         (output_addr_const_extra): Likewise.
26570         (output_pic_addr_const): Lowercase @GOTTPOFF.
26571         (output_addr_const_extra): Likewise.
26572         (output_pic_addr_const): Lowercase @GOTNTPOFF.
26573         (output_addr_const_extra): Likewise.
26574         (output_pic_addr_const): Lowercase @INDNTPOFF.
26575         (output_addr_const_extra): Likewise.
26576         (output_pic_addr_const): Lowercase @NTPOFF.
26577         (output_addr_const_extra): Likewise.
26578         (output_pic_addr_const): Lowercase @TPOFF.
26579         (output_addr_const_extra): Likewise.
26580         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
26581         (*tls_global_dynamic_64): Likewise.
26582         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
26583         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
26584
26585         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
26586         (ASM_OUTPUT_TLS_COMMON): Use it.
26587         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
26588
26589         PR target/38118
26590         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
26591         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
26592         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
26593         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
26594         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
26595         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
26596
26597 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26598
26599         * config/i386/i386.c (override_options): Don't accept
26600         -mtls-dialect=sun any longer.
26601         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
26602         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
26603         (*tls_local_dynamic_base_32_sun): Likewise.
26604         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
26605
26606 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
26607
26608         PR debug/43508
26609         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
26610         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
26611
26612         PR debug/43479
26613         * ira.c (adjust_cleared_regs): New function.
26614         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
26615
26616         PR debug/19192
26617         PR debug/43479
26618         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
26619         from gimple_block.
26620         * expr.c (expand_expr_real): Restore previous
26621         curr_insn_source_location and curr_insn_block after
26622         expand_expr_real_1 call.
26623         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
26624         instead of expand_expr_real_1.
26625
26626 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
26627
26628         PR rtl-optimization/43413
26629         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
26630         hard regs too.
26631
26632 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
26633
26634         PR target/43348
26635         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
26636         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
26637
26638 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
26639
26640         * config/i386/i386.c (ix86_target_string): Add -mfma.
26641         Fix a typo in comment.
26642
26643 2010-03-22  Mike Stump  <mikestump@comcast.net>
26644
26645         PR target/23071
26646         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
26647         Don't overly align based upon packed packed fields.
26648
26649 2010-03-22  Jason Merrill  <jason@redhat.com>
26650
26651         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
26652         Use () rather than [], and move before the element type.
26653
26654 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26655
26656         * doc/configfiles.texi (Configuration Files): Removed
26657         fixinc/Makefile*, intl/Makefile.*.
26658         * doc/makefile.texi: Fixed markup. Abstract from version
26659         control system used.
26660         (Makefile): Removed obsolete java/parse.y example.
26661         * doc/sourcebuild.texi: Likewise.
26662         (Top Level): Added config, gnattools, libdecnumber, libgcc,
26663         libgomp, libssp.  Removed fastjar.
26664         (Miscellaneous Docs): Clarify location.
26665         Added COPYING3, COPYING3.LIB.
26666         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
26667
26668 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26669
26670         PR target/38085
26671         * config/i386/i386.c (x86_function_profiler)
26672         [!NO_PROFILE_COUNTERS]: Fix typo.
26673         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
26674         instead of callq.
26675
26676 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
26677             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26678
26679         * doc/sourcebuild.texi (Test Directives): Split into six
26680         subsections, with most of the current text in new subsections
26681         Directives, Selectors, and Final Actions.
26682         (Directives): Split list of test directives into multiple
26683         subsubsections.
26684         (Selectors): Describe use and syntax of selectors.
26685         (Effective-Target Keywords): Describe all existing keywords.
26686         (Add Options): Describe features for dg-add-options.
26687         (Require Support): Describe variants of dg-require-support.
26688         (Final Actions): Describe commands to use in dg-final.
26689
26690 2010-03-22  Michael Matz  <matz@suse.de>
26691
26692         PR middle-end/43475
26693         * recog.c (validate_replace_rtx_group): Replace also in
26694         REG_EQUAL and REG_EQUIV notes.
26695
26696 2010-03-22  Richard Guenther  <rguenther@suse.de>
26697
26698         PR tree-optimization/43390
26699         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
26700         sure vector extracts are type correct.
26701
26702 2010-03-22  Richard Guenther  <rguenther@suse.de>
26703
26704         PR middle-end/40106
26705         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
26706         x * sqrt (x) even when optimizing for size if the target
26707         has native support for sqrt.
26708
26709 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
26710
26711         * varasm.c (make_decl_rtl_for_debug): Also clear
26712         flag_mudflap for the duration of make_decl_rtl call.
26713
26714         PR debug/43443
26715         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
26716         locs from preserved VALUEs.
26717
26718 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
26719
26720         PR middle-end/42718
26721         * pa.md (movmemsi): Set align to one if zero.
26722         (movmemdi): Likewise.
26723
26724 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
26725
26726         PR target/42321
26727         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
26728         with their corresponding prologue pushes.
26729
26730 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
26731
26732         PR target/43156
26733         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
26734         at the begining or end.
26735         (spu_expand_epilogue): Likewise.
26736
26737 2010-03-20  Richard Guenther  <rguenther@suse.de>
26738
26739         PR rtl-optimization/43438
26740         * combine.c (make_extraction): Properly zero-/sign-extend an
26741         extraction of the low part of a CONST_INT.  Also handle
26742         CONST_DOUBLE.
26743
26744 2010-03-19  Mike Stump  <mikestump@comcast.net>
26745
26746         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
26747         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
26748         (override_options): Use SUBTARGET32_DEFAULT_CPU.
26749
26750 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
26751
26752         PR c/43211
26753         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
26754         an error.
26755
26756 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
26757
26758         PR rtl-optimization/42258
26759         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
26760         use that may match DEF.
26761
26762         PR target/40697
26763         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
26764         the cost of loading the constant rather than assuming
26765         COSTS_N_INSNS (1).
26766         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
26767         outer code is AND, do the same tests as the andsi3 expander and
26768         return COSTS_N_INSNS (1) if and is cheap.
26769
26770         * optabs.c (avoid_expensive_constant): Fix formatting.
26771
26772 2010-03-19  Michael Matz  <matz@suse.de>
26773
26774         PR c++/43116
26775         * attribs.c (decl_attributes): When rebuilding a function pointer
26776         type use the same qualifiers as the original pointer type.
26777
26778 2010-03-19  Martin Jambor  <mjambor@suse.cz>
26779
26780         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
26781         and is_gimple_ip_invariant_address.
26782
26783 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26784
26785         Revert
26786         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26787
26788         * config/arm/arm.c (arm_override_options): Turn off
26789         flag_dwarf2_cfi_asm for AAPCS variants.
26790
26791 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26792
26793         PR target/43399
26794         * config/arm/arm.c (emit_multi_reg_push): Update comments.
26795         Use PRE_MODIFY instead of PRE_DEC.
26796         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
26797         (vfp_emit_fstmd): Likewise.
26798
26799 2010-03-19  Michael Matz  <matz@suse.de>
26800
26801         PR target/43305
26802         * builtins.c (expand_builtin_interclass_mathfn,
26803         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
26804         if that fails.
26805
26806 2010-03-19  Richard Guenther  <rguenther@suse.de>
26807
26808         PR tree-optimization/43415
26809         * tree-ssa-pre.c (phi_translate): Split out worker to ...
26810         (phi_translate_1): ... this.
26811         (phi_translate): Move all caching here.  Cache all NARY
26812         and REFERENCE translations.
26813
26814 2010-03-19  David S. Miller  <davem@davemloft.net>
26815
26816         With help from Eric Botcazou.
26817         * config/sparc/sparc.c: Include dwarf2out.h.
26818         (emit_pic_helper): Delete.
26819         (pic_helper_symbol_name): Delete.
26820         (pic_helper_emitted_p): Delete.
26821         (pic_helper_needed): New.
26822         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
26823         (get_pc_thunk_name): New.
26824         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
26825         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
26826         Set pic_helper_needed to true.  Don't call emit_pic_helper.
26827         (sparc_expand_prologue): Update load_pic_register call.
26828         (sparc_output_mi_thunk): Likewise.
26829         (sparc_file_end): Emit a hidden comdat symbol for the PIC
26830         thunk if possible.  Output CFI information as needed.
26831
26832 2010-03-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
26833             Jack Howarth  <howarth@bromo.med.uc.edu>
26834
26835         PR target/36399
26836         * config/i386/i386.h: Fix ABI on darwin x86-32.
26837
26838 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
26839
26840         * tree.h: Declare make_decl_rtl_for_debug.
26841         * varasm.c (make_decl_rtl_for_debug): New.
26842         * dwarf2out.c (rtl_for_decl_location): Call it.
26843         * cfgexpand.c (expand_debug_expr): Call it.
26844
26845 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
26846
26847         PR bootstrap/43399
26848         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
26849         mem_mode.
26850
26851         PR bootstrap/43403
26852         * var-tracking.c (vt_init_cfa_base): Do nothing if
26853         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
26854
26855 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
26856
26857         PR debug/42873
26858         * var-tracking.c (canonicalize_vars_star): New.
26859         (dataflow_post_merge_adjust): Use it.
26860
26861 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
26862
26863         PR debug/43058
26864         * var-tracking.c (non_suitable_const): New function.
26865         (add_uses): For DEBUG_INSNs with constants, don't record any
26866         value, instead just the constant value itself.
26867         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
26868         is not VAR_LOC_UNKNOWN_P, set var to the constant.
26869         (emit_notes_in_bb): Likewise.
26870         (emit_note_insn_var_location): For onepart variables if
26871         cur_loc is a VOIDmode constant, use DECL_MODE.
26872
26873 2010-03-18  Martin Jambor  <mjambor@suse.cz>
26874
26875         PR middle-end/42450
26876         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
26877         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
26878         all non-clones.  Moved call redirection...
26879         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
26880         (cgraph_materialize_all_clones): Dispose of all
26881         combined_args_to_skip bitmaps.
26882         (verify_cgraph_node): Do not check for edges pointing to wrong
26883         nodes in inline clones.
26884         * tree-inline.c (copy_bb): Call
26885         cgraph_redirect_edge_call_stmt_to_callee.
26886         * ipa.c (cgraph_remove_unreachable_nodes): Call
26887         cgraph_node_remove_callees even when there are used clones.
26888
26889 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
26890
26891         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
26892
26893 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
26894
26895         PR target/43383
26896         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
26897         for 32bit.
26898
26899 2010-03-18  Michael Matz  <matz@suse.de>
26900
26901         PR middle-end/43419
26902         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
26903         into sqrt(x) if we need to preserve signed zeros.
26904
26905 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
26906             Eric Botcazou  <ebotcazou@adacore.com>
26907
26908         PR rtl-optimization/43360
26909         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
26910         note if we don't know its invariant status.
26911
26912 2010-03-18  Michael Matz  <matz@suse.de>
26913
26914         PR tree-optimization/43402
26915         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
26916         PHI chains of ssa names registered for update.
26917
26918 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
26919
26920         PR target/42427
26921         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
26922         non-offsettable and pre_modify update addressing.
26923         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
26924         and "2" alternatives "#".
26925         (*movdd_softfloat32): Make all alternatives "#";
26926         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
26927         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
26928         (*movdf_softfloat32): Make all alternatives "#";
26929         (movdi): Use the new DIFD mode iterator to create a common splitter
26930         for movdi, movdf and movdd patterns.
26931
26932 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
26933
26934         * common.opt (dumpdir): Remove redundant tab.
26935
26936 2010-03-17  Martin Jambor  <mjambor@suse.cz>
26937
26938         PR tree-optimization/43347
26939         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
26940         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
26941
26942 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
26943
26944         PR rtl-optimization/42216
26945         * regrename.c (create_new_chain): New function, broken out from...
26946         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
26947         appending a use to an empty chain.
26948         (build_def_use): Remove previous changes that convert OP_INOUT to
26949         OP_OUT operands; instead detect the case where an OP_INOUT operand
26950         uses a previously untracked register and create an empty chain for it.
26951
26952 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
26953
26954         * doc/extend.texi (Function Attributes): Rewrite unfinished
26955         sentence in ms_abi documentation.
26956
26957 2010-03-17  Alan Modra  <amodra@gmail.com>
26958
26959         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
26960         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
26961         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
26962         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
26963
26964 2010-03-16  Richard Henderson  <rth@redhat.com>
26965
26966         PR middle-end/43365
26967         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
26968         (lower_try_finally): Save and restore eh_seq around the expansion
26969         of the try-finally.
26970
26971 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
26972
26973         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
26974         statements before splitting block.
26975
26976 2010-03-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26977
26978         * doc/sourcebuild.texi (Testsuites): Fix markup.
26979         Use pathnames relative to gcc/testsuite.
26980         (Test Directives): Move description of how timeout is determined.
26981         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
26982         (C Tests): Correct gcc.misc-tests directory.
26983         Framework tests now live in gcc.test-framework.
26984
26985 2010-03-16  Richard Guenther  <rguenther@suse.de>
26986
26987         PR middle-end/43379
26988         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
26989         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
26990
26991 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
26992             Alexandre Oliva  <aoliva@redhat.com>
26993
26994         PR tree-optimization/42917
26995         * lambda-code.c (remove_iv): Skip debug statements.
26996         (lambda_loopnest_to_gcc_loopnest): Likewise.
26997         (not_interesting_stmt): Debug statements are not interesting.
26998
26999 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
27000
27001         PR debug/43051
27002         PR debug/43092
27003         * cselib.c (cselib_preserve_constants,
27004         cfa_base_preserved_val): New static variables.
27005         (preserve_only_constants): New function.
27006         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
27007         clear its REG_VALUES.  If cselib_preserve_constants, don't
27008         empty the whole hash table, but preserve there VALUEs with constants,
27009         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
27010         (cselib_preserve_cfa_base_value): New function.
27011         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
27012         (cselib_init): Change argument to int bitfield.  Set
27013         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
27014         is in it.
27015         (cselib_finish): Clear cselib_preserve_constants and
27016         cfa_base_preserved_val.
27017         * cselib.h (enum cselib_record_what): New enum.
27018         (cselib_init): Change argument to int.
27019         (cselib_preserve_cfa_base_value): New prototype.
27020         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
27021         * dse.c (dse_step1): Likewise.
27022         * cfgcleanup.c (thread_jump): Likewise.
27023         * sched-deps.c (sched_analyze): Likewise.
27024         * gcse.c (local_cprop_pass): Likewise.
27025         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
27026         If FN is non-NULL, call the callback always and whenever it returns
27027         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
27028         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
27029         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
27030         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
27031         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
27032         * var-tracking.c: Include recog.h.
27033         (bb_stack_adjust_offset): Remove.
27034         (vt_stack_adjustments): Don't call it, instead just gather the
27035         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
27036         (adjust_stack_reference): Remove.
27037         (compute_cfa_pointer): New function.
27038         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
27039         (struct adjust_mem_data): New type.
27040         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
27041         functions.
27042         (get_address_mode): New function.
27043         (replace_expr_with_values): Use it.
27044         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
27045         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
27046         (adjust_sets): Remove.
27047         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
27048         Use get_address_mode.
27049         (get_adjusted_src): Remove.
27050         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
27051         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
27052         (add_with_sets): Don't call adjust_sets.
27053         (fp_setter, vt_init_cfa_base): New functions.
27054         (vt_initialize): Change return type to bool.  Move most of pool etc.
27055         initialization to the beginning of the function from end.  Pass
27056         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
27057         If !frame_pointer_needed, call vt_stack_adjustment before mos
27058         vector is filled, call vt_init_cfa_base if argp/framep has been
27059         eliminated to sp.  If frame_pointer_needed and argp/framep has
27060         been eliminated to hard frame pointer, set
27061         hard_frame_pointer_adjustment and call vt_init_cfa_base after
27062         encountering fp setter in the prologue.  For MO_ADJUST, call
27063         log_op_type before pusing the op into mos vector, not afterwards.
27064         Call adjust_insn before cselib_process_insn/add_with_sets,
27065         call cancel_changes (0) afterwards.
27066         (variable_tracking_main_1): Adjust for vt_initialize calling
27067         vt_stack_adjustments and returning whether it succeeded or not.
27068
27069 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
27070
27071         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
27072         debug statements.
27073
27074 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
27075
27076         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
27077         has been set.
27078         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
27079         drap_reg has not been set.
27080
27081 2010-03-15  Michael Matz  <matz@suse.de>
27082
27083         PR middle-end/43300
27084         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
27085         use it to expand block copies.
27086         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
27087         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
27088         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
27089
27090 2010-03-15  Richard Guenther  <rguenther@suse.de>
27091
27092         PR tree-optimization/43367
27093         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
27094         elimination check.
27095
27096 2010-03-15  Richard Guenther  <rguenther@suse.de>
27097
27098         PR tree-optimization/43317
27099         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
27100
27101 2010-03-15  Martin Jambor  <mjambor@suse.cz>
27102
27103         PR tree-optimization/43141
27104         * tree-sra.c (create_abstract_origin): New function.
27105         (modify_function): Call create_abstract_origin.
27106
27107 2010-03-15  Chris Demetriou  <cgd@google.com>
27108
27109         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
27110         wasn't copied.
27111
27112 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
27113
27114         PR middle-end/43354
27115         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
27116         call insert_out_of_ssa_copy for default definitions.
27117
27118 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
27119
27120         * graphite-clast-to-gimple.c (my_long_long): Defined.
27121         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
27122         * graphite-sese-to-poly.c (my_long_long): Defined.
27123         (scop_ivs_can_be_represented): Use it.
27124
27125 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
27126
27127         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
27128         graphite-max-bbs-per-function, and loop-block-tile-size.
27129         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
27130         with "maximum".
27131         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
27132
27133 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
27134
27135         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
27136         forward declaration.
27137         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
27138         (add_upper_bounds_from_estimated_nit): New.
27139         (build_loop_iteration_domains): Use it.
27140
27141 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
27142
27143         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
27144
27145 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
27146
27147         PR middle-end/43306
27148         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
27149         should be an INTEGER_CST.  Also handle CASE_CONVERT.
27150
27151 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
27152
27153         * graphite.c (graphite_initialize): To bound the number of bbs per
27154         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
27155         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
27156         * doc/invoke.texi: Document it.
27157
27158 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
27159
27160         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
27161         * graphite-sese-to-poly.h (build_poly_scop): Same.
27162
27163 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
27164
27165         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
27166         the number of parameters in the scop.  Use as an upper bound
27167         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
27168         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
27169         * doc/invoke.texi: Document it.
27170
27171 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
27172
27173         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
27174         * doc/c-tree.texi: Remove.
27175         * doc/generic.texi: Merge c-tree.texi here.
27176         * doc/gccint.texi (Trees): Remove menu entry.
27177         (c-tree.texi): Remove @include.
27178         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
27179         * doc/languages.texi (Reading RTL): Ditto.
27180
27181 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
27182
27183         PR target/42869
27184         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
27185
27186 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
27187
27188         PR middle-end/42431
27189         * config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
27190         code added to work around reload clobbering CONST insns.
27191
27192 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
27193
27194         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
27195         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
27196         (cselib_preserve_only_values): Remove retain argument, don't
27197         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
27198         * cselib.h (cselib_preserve_only_values): Remove retain argument.
27199         * var-tracking.c (micro_operation): Move insn field before union.
27200         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
27201         (struct variable_tracking_info_def): Remove n_mos field, change
27202         mos into a vector of micro_operations.
27203         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
27204         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
27205         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
27206         changing into a vector.
27207         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
27208         come before all other uops generated by add_stores.
27209         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
27210         argument removal.
27211         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
27212         a vector.  Run just one pass over the bbs instead of separate counting
27213         and computation phase.
27214         (vt_finalize): Free VTI (bb)->mos vector instead of array.
27215
27216         PR debug/43329
27217         * tree-inline.c (remap_decls): Put old_var rather than origin_var
27218         into *nonlocalized_list vector.
27219         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
27220         even if origin is non-NULL.
27221         (gen_variable_die): Likewise.
27222         (process_scope_var): Don't change origin.
27223         (gen_decl_die): Likewise.
27224         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
27225         before adding new edges instead of after it, fix moving over
27226         debug stmts.
27227
27228 2010-03-11  David S. Miller  <davem@davemloft.net>
27229
27230         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
27231         of four.
27232         * configure: Rebuild.
27233
27234 2010-03-11  Martin Jambor  <mjambor@suse.cz>
27235
27236         PR tree-optimization/43257
27237         * tree.c (assign_assembler_name_if_neeeded): New function.
27238         (free_lang_data_in_cgraph): Assembler name assignment moved to the
27239         above new function.
27240         * tree.h (assign_assembler_name_if_neeeded): Declare.
27241         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
27242         the function if needed.
27243
27244 2010-03-11  Chris Demetriou  <cgd@google.com>
27245
27246         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
27247         include/stdint-gcc.h, and include/stdint.h world-readable.
27248
27249 2010-03-11  Richard Guenther  <rguenther@suse.de>
27250
27251         PR tree-optimization/43255
27252         * tree-vrp.c (process_assert_insertions_for): Do not insert
27253         asserts for trivial conditions.
27254
27255 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27256
27257         PR tree-optimization/43280
27258         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
27259         generation.  Move calculation of size out of the if branch.
27260         (find_bswap): Modify compare number generation.
27261
27262 2010-03-11  Richard Guenther  <rguenther@suse.de>
27263
27264         PR lto/43200
27265         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
27266         (input_gimple_stmt): Fixup handled component types during
27267         operand read.  Also fix up decls in ADDR_EXPRs.
27268
27269 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
27270
27271         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
27272         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
27273
27274 2010-03-10  Jan Hubicka  <jh@suse.cz>
27275
27276         PR c/43288
27277         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
27278         * varasm.c (get_variable_section): Don't do that here...
27279         (make_decl_rtl): ... and here.
27280         (do_assemble_alias): Produce decl RTL.
27281         (assemble_alias): Likewise.
27282
27283 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
27284
27285         PR debug/43290
27286         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
27287         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
27288         of fde->vdrap_reg.
27289         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
27290         (based_loc_descr): Only express drap or vdrap regno based expressions
27291         using DW_OP_fbreg when not optimizing.
27292         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
27293         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
27294         REG_CFA_SET_VDRAP note.
27295
27296 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
27297
27298         PR tree-optimization/43236
27299         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
27300         error in calculation of base address in reverse iteration case.
27301         (generate_builtin): Take number of latch executions if the statement
27302         is in the latch.
27303
27304 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
27305
27306         PR middle-end/42859
27307         * tree-eh.c: Include pointer-set.h.
27308         (lower_eh_dispatch): Filter out duplicate case labels and
27309         remove the unneeded edge when the label is unused.  Return
27310         true when some edges are removed.
27311         (execute_lower_eh_dispatch): When any lowering resulted in
27312         removing an edge, also delete unreachable blocks.
27313
27314 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
27315
27316         PR bootstrap/43287
27317         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
27318         UNSPEC_MACHOPIC_OFFSET.
27319
27320 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
27321
27322         PR target/43294
27323         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
27324         (m68k_delegitimize_address): New function.
27325
27326 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
27327
27328         PR debug/43299
27329         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
27330
27331         PR debug/43299
27332         * var-tracking.c (adjust_sets): New function.
27333         (count_with_sets, add_with_sets): Use it.
27334         (get_adjusted_src): New inline function.
27335         (add_stores): Use it.
27336
27337         PR debug/43304
27338         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
27339         call cselib_dummy_expand_value_rtx_cb instead of
27340         cselib_expand_value_rtx_cb.
27341
27342         PR debug/43293
27343         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
27344         * config/i386/i386.c: Include debug.h and dwarf2out.h.
27345         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
27346         and .cfi_endproc around the pic thunks.
27347         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
27348         all queued unwind info register saves are saved before the call.
27349         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
27350         considered as sp-=4 for unwind info and the pop as sp+=4 which
27351         also clobbers dest, but doesn't actually restore it.
27352
27353         PR debug/43290
27354         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
27355         RTX_FRAME_RELATED_P.
27356
27357 2010-03-09  Jie Zhang  <jie@codesourcery.com>
27358
27359         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
27360         whitespaces in output template.
27361
27362 2010-03-09  Jie Zhang  <jie@codesourcery.com>
27363
27364         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
27365         out array boundary.
27366
27367 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
27368
27369         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
27370         builtins.exp in a separate job.
27371
27372 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
27373
27374         * graphite-sese-to-poly.c (add_param_constraints): Use
27375         lower_bound_in_type and upper_bound_in_type.
27376
27377 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
27378
27379         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
27380         instead of unsigned_type_node.
27381
27382 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
27383             Reza Yazdani  <reza.yazdani@amd.com>
27384
27385         PR middle-end/43065
27386         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
27387         on pointer type parameters.
27388
27389 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
27390
27391         PR middle-end/42644
27392         PR middle-end/42130
27393         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
27394         handle conversions from pointer to integers.
27395         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
27396         induction variable, to be able to work with code generated by CLooG.
27397         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
27398         (build_poly_scop): Bail out if we cannot codegen a loop.
27399
27400 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
27401
27402         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
27403         code generation with gloog_error.
27404
27405 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
27406
27407         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
27408         Call fold_convert on all the returned values.
27409         (expand_scalar_variables_expr): Pass to
27410         expand_scalar_variables_ssa_name the type of the resulting expression.
27411
27412 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
27413
27414         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
27415         ppl_min_for_le_pointset.
27416         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
27417         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
27418
27419 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
27420
27421         * graphite-dependences.c (map_into_dep_poly): Removed.
27422         (dependence_polyhedron_1): Use combine_context_id_scat.
27423
27424 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
27425
27426         * graphite-poly.h (struct poly_scattering): Add layout documentation.
27427         (struct poly_bb): Same.
27428         (combine_context_id_scat): New.
27429
27430 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
27431
27432         PR middle-end/42326
27433         * sese.c (name_defined_in_loop_p): Return false for default
27434         definitions.
27435
27436 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
27437
27438         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
27439         and clean up the logic.
27440
27441 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
27442
27443         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
27444         early return.
27445
27446 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
27447
27448         * var-tracking.c (remove_cselib_value_chains): Define only for
27449         ENABLE_CHECKING.
27450         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
27451         delete_slot_part, emit_notes_for_differences_1): Don't call
27452         remove_cselib_value_chains here.
27453         (set_slot_part, emit_notes_for_differences_2): Don't call
27454         add_cselib_value_chains here.
27455         (preserved_values): New vector.
27456         (preserve_value): New function.
27457         (add_uses, add_stores, vt_add_function_parameters): Use it
27458         instead of cselib_preserve_value.
27459         (changed_values_stack): New vector.
27460         (check_changed_vars_0): New function.
27461         (check_changed_vars_1, check_changed_vars_2): Use it.
27462         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
27463         changed_values_stack VALUEs.
27464         (vt_emit_notes): For all preserved_values call
27465         add_cselib_value_chains.  If ENABLE_CHECKING call
27466         remove_cselib_value_chains before verifying value_chains is empty.
27467         Initialize and free changed_values_stack.
27468         (vt_initialize): Initialize preserved_values.
27469         (vt_finalize): Free preserved_values.
27470
27471 2010-03-08  Richard Guenther  <rguenther@suse.de>
27472
27473         PR tree-optimization/43269
27474         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
27475         region detection.
27476
27477 2010-03-08  Martin Jambor  <mjambor@suse.cz>
27478
27479         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
27480         (ipa_is_param_called): Removed.
27481         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
27482         (ipa_print_node_params): Do not print the called flag.
27483         (ipa_write_node_info): Do not stream the called flag.
27484         (ipa_read_node_info): Likewise.
27485
27486 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
27487
27488         PR debug/43176
27489         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
27490         * cselib.c (struct expand_value_data): Add dummy field.
27491         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
27492         dummy to false.
27493         (cselib_dummy_expand_value_rtx_cb): New function.
27494         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
27495         any rtl.
27496         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
27497         * var-tracking.c: Include pointer-set.h.
27498         (variable): Change n_var_parts to char from int.  Add
27499         cur_loc_changed and in_changed_variables fields.
27500         (variable_canonicalize): Remove.
27501         (shared_var_p): New inline function.
27502         (unshare_variable): Maintain cur_loc_changed and
27503         in_changed_variables fields.  If var was in changed_variables,
27504         replace it there with new_var.  Just copy cur_loc instead of
27505         resetting it to something else.
27506         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
27507         (dataflow_set_union): Don't call variable_canonicalize.
27508         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
27509         of their DEBUG_EXPR_TREE_DECLs.
27510         (canonicalize_loc_order_check): Verify that cur_loc is NULL
27511         and in_changed_variables and cur_loc_changed is false.
27512         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
27513         and cur_loc_changed.  Don't update cur_loc here.
27514         (variable_merge_over_src): Don't call variable_canonicalize.
27515         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
27516         removing loc that is equal to cur_loc, clear cur_loc,
27517         set cur_loc_changed and ensure variable_was_changed is called.
27518         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
27519         compare pointers in cur_loc check, if it is equal to loc,
27520         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
27521         (variable_different_p): Remove compare_current_location argument,
27522         don't compare cur_loc.
27523         (dataflow_set_different_1): Adjust variable_different_p caller.
27524         (variable_was_changed): If dv had some var in changed_variables
27525         already, reset in_changed_variables flag for it and propagate
27526         cur_loc_changed over to the new variable.  On empty var
27527         always set cur_loc_changed.  Set in_changed_variables on whatever
27528         var is added to changed_variables.
27529         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
27530         Use shared_var_p.  When removing loc that is equal to cur_loc,
27531         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
27532         end, don't set it to something else, just call variable_was_changed.
27533         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
27534         loc being removed, clear cur_loc and set cur_loc_changed.
27535         Set cur_loc_changed if all locations have been removed.
27536         (struct expand_loc_callback_data): New type.
27537         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
27538         allocated.  Always create SUBREGs if simplify_subreg failed.
27539         Prefer to use cur_loc, when that fails and still in
27540         changed_variables (and seen first time) recompute it.  Set
27541         cur_loc_changed of variables which had to change cur_loc and
27542         compute elcd->cur_loc_changed if any of the subexpressions used
27543         had to change cur_loc.
27544         (vt_expand_loc): Adjust to pass arguments in
27545         expand_loc_callback_data structure.
27546         (vt_expand_loc_dummy): New function.
27547         (emitted_notes): New variable.
27548         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
27549         that weren't used for any other decl in current
27550         emit_notes_for_changes call call vt_expand_loc_dummy to update
27551         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
27552         first loc_chain location if NULL before.  Always use just
27553         cur_loc instead of first loc_chain location.  When cur_loc_changed
27554         is false, when not --enable-checking=rtl just don't emit any note.
27555         When rtl checking, compute the note and assert it is the same
27556         as previous note.  Clear cur_loc_changed and in_changed_variables
27557         at the end before removing from changed_variables.
27558         (check_changed_vars_3): New function.
27559         (emit_notes_for_changes): Traverse changed_vars to call
27560         check_changed_vars_3 on each changed var.
27561         (emit_notes_for_differences_1): Clear cur_loc_changed and
27562         in_changed_variables.  Recompute cur_loc of new_var.
27563         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
27564         (vt_emit_notes): Initialize and destroy emitted_notes.
27565
27566 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
27567
27568         PR rtl-optimization/42220
27569         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
27570         Use verify_reg_tracked to determine if we should use OP_OUT rather
27571         than OP_INOUT.
27572         (build_def_use): If we see an in-out operand for a register that we
27573         know nothing about, treat is an output if possible, fail the block if
27574         not.
27575
27576 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
27577
27578         PR debug/42897
27579         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
27580         permanently.
27581
27582 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
27583
27584         PR debug/42897
27585         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
27586         uses of relevant DEFs that are dead outside the loop too.
27587
27588 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
27589
27590         * var-tracking.c (dataflow_set_merge): Swap src and src2.
27591         Reverted:
27592         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
27593         PR debug/41371
27594         * var-tracking.c (values_to_unmark): New variable.
27595         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
27596         values_to_unmark vector.  Moved body to...
27597         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
27598         instead queue it into values_to_unmark vector.
27599         (vt_find_locations): Free values_to_unmark vector.
27600
27601 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
27602
27603         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
27604         (site.exp): Export them when plugins are enabled.
27605
27606 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
27607
27608         PR middle-end/42326
27609         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
27610         that contain scevs.
27611         (chrec_fold_multiply): Same.
27612
27613 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
27614
27615         PR c/43248
27616         * c-decl.c (build_compound_literal): Return early if init is
27617         an error_mark_node.
27618
27619 2010-03-04  Martin Jambor  <mjambor@suse.cz>
27620
27621         PR tree-optimization/43164
27622         PR tree-optimization/43191
27623         * tree-sra.c (type_consists_of_records_p): Reject records with
27624         zero-size bit-fields at the end.
27625
27626 2010-03-04  Mike Stump  <mikestump@comcast.net>
27627
27628         * Makefile.in (TAGS): Remove *.y.
27629
27630 2010-03-04  Richard Guenther  <rguenther@suse.de>
27631
27632         PR tree-optimization/40761
27633         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
27634         in reverse order.
27635         (my_rev_post_order_compute): New function.
27636         (init_pre): Call it.
27637
27638 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
27639
27640         PR middle-end/43209
27641         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
27642         decrease the cost of an IV candidate when the cost is infinite.
27643
27644 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27645
27646         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
27647         Use '3DNow!' for the extension of that name, ensure normal space
27648         after the string.
27649         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
27650
27651 2010-03-03  Jeff Law  <law@redhat.com>
27652
27653         * PR middle-end/32693
27654         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
27655         than gen_rtx_SUBREG.
27656         (extract_bit_field_1): Likewise.
27657
27658 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
27659
27660         * doc/sourcebuild.texi (Test directives): Document that arguments
27661         include-opts and exclude-opts are now optional for dg-skip-if,
27662         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
27663
27664 2010-03-03  Jason Merrill  <jason@redhat.com>
27665
27666         PR c++/12909
27667         * cgraph.h (varpool_node): Add extra_name field.
27668         * varpool.c (varpool_extra_name_alias): New.
27669         (varpool_assemble_decl): Emit extra name aliases.
27670         (varpool_mark_needed_node): Look past an extra name alias.
27671         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
27672         * lto-streamer-in.c (lto_input_tree): Read it.
27673         * lto-streamer-out.c (output_unreferenced_globals): Write it.
27674
27675 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
27676
27677         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
27678         (sparc*-*-solaris2*): ...this.
27679
27680 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
27681
27682         PR debug/43229
27683         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
27684         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
27685         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
27686         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
27687
27688         PR debug/43237
27689         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
27690         fallthrough to default handling, just with want_address 0 instead of 2.
27691         For single element lists, add_AT_loc directly, otherwise create an
27692         artificial variable DIE and stick location list to it.
27693
27694         PR debug/43177
27695         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
27696         (VAL_EXPR_HAS_REVERSE): Define.
27697         (reverse_op): New function.
27698         (add_stores): For reversible operations add an extra MO_VAL_USE.
27699
27700 2010-03-02  Jason Merrill  <jason@redhat.com>
27701
27702         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
27703
27704 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
27705
27706         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
27707         (sparc64-*-linux*): Likewise.
27708         (sparc64-*-solaris2*): Include assembler files before linker ones.
27709         (sparc-*-solaris2*): Simplify and reorder to match previous case.
27710         * config/sparc/gas.h: Delete.
27711         * config/sparc/sol2-64.h: Add copyright notice.
27712         * config/sparc/sol2-gas-bi.h: Likewise.
27713         * config/sparc/sol2-gld.h: Likewise.
27714         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
27715         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
27716         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
27717         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
27718         (sparc_elf_asm_named_section): Rename into...
27719         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
27720
27721 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
27722
27723         * config/alpha/alpha.c (override_options): Fix -mtune error message.
27724
27725 2010-03-02  Jeff Law  <law@redhat.com>
27726
27727         PR middle-end/42431
27728         * reload1.c (rtx_p, substitute_stack): Declare.
27729         (substitute): Record addresses of changed rtxs.
27730         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
27731         Restore the original rtx when complete.
27732         (reload): Free subsitute_stack when complete.
27733
27734 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
27735
27736         * doc/gccint.texi (menu): Add Testsuites as a chapter.
27737         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
27738         new chapter.
27739         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
27740         LTO Testing, gcov Testing, profopt Testing, compat Testing,
27741         Torture Tests): Change from subsection to section.
27742
27743 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
27744             Steven Bosscher  <steven@gcc.gnu.org>
27745
27746         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
27747         instead of bb.
27748
27749 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
27750
27751         PR middle-end/42640
27752         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
27753         the assignment from the new induction variable to the assignment
27754         of the value from the original loop PHI function.
27755
27756 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
27757             Daniel Jacobowitz  <dan@codesourcery.com>
27758
27759         * doc/sourcebuild.texi (Test directives): Clarify options to
27760         dg-skip-if.
27761
27762 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27763
27764         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
27765         Disable cfi directives unless GCC and gas agree on using read-only
27766         .eh_frame sections for 64-bit.
27767         * configure: Regenerate.
27768
27769 2010-03-01  Richard Guenther  <rguenther@suse.de>
27770
27771         PR tree-optimization/43220
27772         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
27773         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
27774
27775 2010-03-01  Richard Guenther  <rguenther@suse.de>
27776             Martin Jambor  <mjambor@suse.cz>
27777
27778         PR middle-end/41250
27779         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
27780         gimplified parameters.
27781
27782 2010-03-01  Christian Bruel  <christian.bruel@st.com>
27783
27784         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
27785
27786 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
27787
27788         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
27789
27790 2010-03-01  Richard Guenther  <rguenther@suse.de>
27791
27792         PR middle-end/43213
27793         * expr.c (expand_assignment): Use the alias-oracle to tell
27794         if the rhs aliases the result decl.
27795
27796 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
27797
27798         PR pch/14940
27799         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
27800         to sol_gt_pch_get_address.
27801         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
27802         64-bit, SPARC and x86.
27803         (sol_gt_pch_get_address): New function.
27804
27805 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
27806
27807         * toplev.h (inform_n, error_n): Declare.
27808         * diagnostic.c (inform_n, error_n): New function.
27809
27810 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
27811
27812         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
27813         has no rtl yet when processing local_decls, queue it and recheck
27814         if deferred stack allocation hasn't assigned it rtl.
27815
27816 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
27817
27818         * config/sh/sh.c (unspec_bbr_uid): New.
27819         (gen_block_redirect): Use it instead of INSN_UID.
27820         (gen_far_branch): Likewise.
27821
27822 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
27823
27824         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
27825         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
27826
27827 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
27828
27829         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
27830         (Warning Options): -Wno-conversion-null is valid for
27831         Objective-C++ as well.
27832         * doc/tm.texi (Named Address Spaces): Likewise.
27833         * doc/plugins.texi (Plugins): Replace TABs with spaces.
27834         * doc/tree-ssa.texi (Tree SSA): Likewise.
27835
27836 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
27837
27838         PR bootstrap/43202
27839         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
27840         by default.  Don't set the default arch for
27841         i[34567]86-*-darwin*|x86_64-*-darwin*.
27842
27843 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
27844
27845         PR bootstrap/43202
27846         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
27847         default.  Set the default 32bit/64bit archs with $with_arch
27848         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
27849
27850 2010-02-27  Richard Guenther  <rguenther@suse.de>
27851
27852         PR tree-optimization/43186
27853         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
27854         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
27855         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
27856         unroller iterations.
27857
27858 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
27859
27860         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
27861         required and i[34567]86-*-* targets don't support 64bit ISA.
27862
27863 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
27864
27865         PR ada/43096
27866         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
27867         the same alias set.
27868
27869 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
27870
27871         * config.gcc: Set the default arch at least to Prescott for
27872         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
27873         if SSE math is enabled.
27874
27875 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27876
27877         * diagnostic.c (diagnostic_initialize): Update.
27878         (diagnostic_report_diagnostic): Test inhibit_notes_p for
27879         informative notes.
27880         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
27881         (diagnostic_inhibit_notes): New.
27882         * toplev.c (process_options): inhibit notes with -fcompare-debug.
27883
27884 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27885
27886         PR c/20631
27887         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
27888         * doc/standards.texi: Likewise.
27889         * doc/extend.texi: Likewise.
27890         * doc/trouble.texi: Likewise.
27891         * doc/cppopts.texi: Likewise.
27892         * doc/install.texi: Likewise.
27893         * c.opt (std=c90,std=gnu90): New options.
27894         * c-opts.c (c_common_handle_option): Handle them.
27895
27896 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
27897
27898         PR c/24577
27899         * c-decl.c (undeclared_variable): Use an informative note.
27900
27901 2010-02-26  Richard Guenther  <rguenther@suse.de>
27902
27903         PR tree-optimization/43186
27904         * gimple.h (gimple_fold): Remove.
27905         * gimple.c (gimple_fold): Remove.  Inline into single user ...
27906         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
27907         Try harder for conditions.
27908
27909 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
27910
27911         PR debug/43190
27912         * function.c (used_types_insert): Don't skip through named pointer
27913         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
27914         and it is different from the main variant's type.
27915
27916 2010-02-26  Nick Clifton  <nickc@redhat.com>
27917
27918         * config/rx/rx.md (sminsi3): Remove bogus alternative.
27919
27920 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
27921
27922         * config.gcc: Support --with-fpmath=sse for x86.
27923
27924         * config/i386/ssemath.h: New.
27925
27926         * doc/install.texi (--with-fpmath=sse): Documented.
27927
27928 2010-02-26  Richard Guenther  <rguenther@suse.de>
27929
27930         PR tree-optimization/43188
27931         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
27932         vector types of over-aligned element type.
27933
27934 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
27935
27936         PR target/43175
27937         * config/i386/i386.c (expand_vec_perm_blend): Use correct
27938         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
27939
27940 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
27941
27942         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
27943
27944 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
27945
27946         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
27947         * var-tracking.c: Include diagnostic.h.
27948         (debug_dv): New function.
27949         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
27950
27951         PR debug/43160
27952         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
27953         (add_value_chain, add_value_chains, remove_value_chain,
27954         remove_value_chains): Handle DEBUG_EXPRs.
27955         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
27956
27957         PR debug/43161
27958         * regcprop.c (struct queued_debug_insn_change): New type.
27959         (struct value_data_entry): Add debug_insn_changes field.
27960         (struct value_data): Add n_debug_insn_changes field.
27961         (debug_insn_changes_pool): New variable.
27962         (free_debug_insn_changes, apply_debug_insn_changes,
27963         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
27964         (kill_value_one_regno): Call free_debug_insn_changes if needed.
27965         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
27966         fields.
27967         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
27968         changes for them.
27969         (copyprop_hardreg_forward_1): Don't call apply_change_group for
27970         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
27971         changes, call cprop_find_used_regs via note_stores.
27972         (copyprop_hardreg_forward): When copying vd from predecessor
27973         which has any queued DEBUG_INSN changes, make sure the pointers are
27974         cleared.  At the end call df_analyze and then if there are any
27975         DEBUG_INSN changes queued at the end of some basic block for still
27976         live registers, apply them.
27977         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
27978
27979 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
27980
27981         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
27982         (arm*-*-*): Ditto.
27983
27984 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
27985
27986         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
27987         targets.  Set the default with_cpu/with_arch from arch/cpu.
27988         Allow x86-64 and native for with_cpu/with_arch.
27989
27990 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
27991
27992         * ebitmap.c: Change calls to verify_popcount with calls to
27993         sbitmap_verify_popcount.
27994         (ebitmap_clear_bit): Fixed map->cacheindex test and
27995         map>cache update when bit clearing results in an empty
27996         element.
27997
27998 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
27999
28000         PR target/43154
28001         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
28002         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
28003         and support both V2DF and V2DI modes.
28004         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
28005         support both V2DF and V2DI modes.
28006         (general): Delete trailing whitespace from a few patterns.
28007
28008         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
28009         V2DF/V2DI interleave high/low builtins.
28010
28011         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
28012         new VSX builtins.
28013
28014         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
28015         interleave high/low functions.
28016
28017 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
28018
28019         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
28020         #pragma extern_prefix.
28021
28022 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
28023
28024         PR debug/43166
28025         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
28026         BLKmode, assert op0 is a MEM and just adjust its mode.
28027
28028         PR debug/43165
28029         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
28030         if bitpos isn't multiple of mode's bitsize.
28031
28032 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28033
28034         * c.opt (-ftemplate-depth=): New.
28035         (-ftemplate-depth-): Deprecate.
28036         * optc-gen.awk: Handle -ftemplate-depth=.
28037         * opth-gen.awk: Likewise.
28038         * c-opts.c (c_common_handle_option): Likewise.
28039         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
28040
28041 2010-02-24  Jason Merrill  <jason@redhat.com>
28042
28043         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
28044
28045 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28046
28047         * cfg.c (alloc_aux_for_block): Remove inline.
28048         (alloc_aux_for_edge): Likewise.
28049
28050 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28051
28052         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
28053
28054 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28055
28056         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
28057         * config/i386/sol2-gas.h: New file.
28058         * config.gcc (i[34567]86-*-solaris2*): Use it.
28059
28060 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28061
28062         PR c/43128
28063         * c-typeck.c (ep_convert_and_check): New.
28064         (build_conditional_expr): Use it.
28065         (build_binary_op): Likewise.
28066
28067 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
28068
28069         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
28070
28071         PR debug/43150
28072         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
28073         bounds even for -O+.
28074         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
28075         expr needs to have DECL_NAME set.
28076
28077 2010-02-24  Nick Clifton  <nickc@redhat.com>
28078
28079         * config/mep/mep.c: Include gimple.h.
28080         (mep_function_uses_sp): Delete unused function.
28081         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
28082         parameters.  Use unsigned integers to count args.  Return a
28083         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
28084
28085 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
28086
28087         PR target/43107
28088         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
28089         greater or equal to nelt instead of 2 * nelt.
28090         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
28091         with nelt - 1.
28092
28093 2010-02-23  Jason Merrill  <jason@redhat.com>
28094
28095         PR debug/42800
28096         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
28097         in cfun->local_decls even if they have register types.
28098
28099         PR c++/42837
28100         * stor-layout.c (place_field): Don't warn about unnecessary
28101         DECL_PACKED if the type is packed.
28102
28103 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
28104
28105         PR target/43139
28106         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
28107         GOTOFF relocs, even when the base reg isn't pic pointer.
28108
28109 2010-02-23  Michael Matz  <matz@suse.de>
28110
28111         PR debug/43077
28112         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
28113         (expand_gimple_basic_block): Generate and use debug temps if there
28114         are debug uses left after the last real use of TERed ssa names.
28115         Unlink debug immediate uses when they are expanded.
28116
28117 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28118
28119         PR 43123
28120         * config/i386/i386.c (override_options): Reorganise to provide
28121         better error messages.
28122
28123 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
28124
28125         PR middle-end/43083
28126         * graphite-scop-detection.c (create_single_exit_edge): Move
28127         the call to find_single_exit_edge to....
28128         (create_sese_edges): ...here.  Don't handle multiple edges
28129         exiting the function.
28130         (build_graphite_scops): Don't handle multiple edges
28131         exiting the function.
28132
28133 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
28134
28135         PR middle-end/43097
28136         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
28137         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
28138
28139 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
28140
28141         PR middle-end/43026
28142         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
28143
28144 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28145
28146         PR c++/43126
28147         * c-typeck.c (convert_arguments): Print declaration location.
28148         * c-common.c (validate_nargs): Rename as
28149         builtin_function_validate_nargs.
28150         (check_builtin_function_arguments): Update.
28151
28152 2010-02-22  Richard Guenther  <rguenther@suse.de>
28153
28154         PR lto/43045
28155         * tree-inline.c (declare_return_variable): Use the type of
28156         the call stmt lhs if available.
28157
28158 2010-02-22  Duncan Sands  <baldrick@free.fr>
28159
28160         * passes.c (register_pass): Always consider all pass lists when
28161         ref_pass_instance_number is zero.
28162
28163 2010-02-22  Richard Guenther  <rguenther@suse.de>
28164
28165         PR tree-optimization/42749
28166         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
28167         parameter.  Do arithmetic in the original type.
28168         (update_accumulator_with_ops): Likewise.
28169         (adjust_accumulator_values): Adjust.
28170
28171 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28172
28173         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
28174         (QI to BLKmode splitter): New splitter.
28175
28176 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
28177
28178         * config/i386/i386.c (initial_ix86_tune_features): Turn on
28179         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
28180
28181 2010-02-22  Richard Guenther  <rguenther@suse.de>
28182
28183         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
28184
28185 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
28186
28187         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
28188         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
28189         ($(T)crti.o, $(T)crtn.o): Remove rules.
28190
28191 2010-02-21  Tobias Burnus  <burnus@net-b.de>
28192
28193         PR fortran/35259
28194         * doc/invoke.texi (-fassociative-math): Document that this
28195         option is automatically enabled for Fortran.
28196
28197 2010-02-20  David S. Miller  <davem@davemloft.net>
28198
28199         * configure.ac: Test if linker and assembler properly support
28200         GOTDATA_OP relocations.
28201         * configure: Rebuild.
28202         * config.in: Likewise.
28203         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
28204         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
28205         (movsi_high_pic): Likewise.
28206         (movdi_lo_sum_pic): Likewise.
28207         (movdi_high_pic): Likewise.
28208         (movsi_pic_gotdata_op): New pattern.
28209         (movdi_pic_gotdata_op): Likewise.
28210         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
28211         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
28212
28213 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
28214
28215         PR target/43067
28216         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
28217         attribute to ssemul.
28218         (xop_mulv2div2di3_high): Ditto.
28219
28220 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28221
28222         PR c++/35669
28223         * c.opt (Wconversion-null): New option.
28224         * doc/invoke.texi (Wconversion-null): Document.
28225
28226 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28227
28228         * common.opt (Wlarger-than-): Add Undocumented.
28229
28230 2010-02-19  Mike Stump  <mikestump@comcast.net>
28231
28232         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
28233
28234 2010-02-19  Jason Merrill  <jason@redhat.com>
28235
28236         PR target/40332
28237         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
28238         * configure: Likewise.
28239
28240 2010-02-20  Alan Modra  <amodra@gmail.com>
28241
28242         PR middle-end/42344
28243         * cgraph.h (cgraph_make_decl_local): Declare.
28244         * cgraph.c (cgraph_make_decl_local): New function.
28245         (cgraph_make_node_local): Use it.
28246         * cgraphunit.c (cgraph_function_versioning): Likewise.
28247         * ipa.c (function_and_variable_visibility): Likewise.
28248
28249 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
28250
28251         PR bootstrap/43121
28252         * except.c (sjlj_emit_function_enter): Don't call
28253         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
28254         directly.
28255         * rtl.h (add_reg_br_prob_note): Remove prototype.
28256
28257 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
28258
28259         PR 41779
28260         * c-common.c (conversion_warning): Remove widening conversions
28261         before checking the conversion of integers to reals.
28262
28263 2010-02-19  Mike Stump  <mikestump@comcast.net>
28264
28265         PR middle-end/43125
28266         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
28267
28268         PR objc/43061
28269         * cgraphunit.c (process_function_and_variable_attributes): Check
28270         DECL_PRESERVE_P instead of looking up attribute "used".
28271         * ipa-pure-const.c (check_decl): Likewise.
28272         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
28273         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
28274         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
28275         instead of attribute "used".
28276         * config/sol2-c.c (solaris_pragma_init): Likewise.
28277         (solaris_pragma_fini): Likewise.
28278
28279 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
28280
28281         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
28282         Use XCNEW instead of xcalloc.
28283         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
28284         XNEW instead of xmalloc.
28285         (get_fields): Use XNEWVEC instead of xmalloc.
28286
28287         PR debug/43084
28288         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
28289         populate vars array.
28290         (create_new_general_access): For debug stmts just reset value.
28291         (get_stmt_accesses): For accesses within debug stmts just record them
28292         using add_access_to_acc_sites instead of preventing the peeling or
28293         counting them as accesses.
28294
28295         PR middle-end/42233
28296         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
28297
28298 2010-02-19  Richard Guenther  <rguenther@suse.de>
28299
28300         PR tree-optimization/42916
28301         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
28302         instructions.
28303
28304 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
28305
28306         * configure.ac: Replace all uses of changequote in macro arguments
28307         with proper quoting.
28308
28309 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
28310
28311         PR middle-end/42233
28312         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
28313
28314 2010-02-19  Richard Guenther  <rguenther@suse.de>
28315
28316         PR tree-optimization/42944
28317         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
28318         test for aliasing with errno.
28319
28320 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
28321
28322         PR middle-end/42233
28323         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
28324         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
28325         * dojump.c: Include output.h.
28326         (inv): New inline function.
28327         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
28328         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
28329         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
28330         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
28331         argument, pass it down to other calls.
28332         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
28333         add REG_BR_PROB note to the conditional jump.
28334         * cfgexpand.c (add_reg_br_prob_note): Removed.
28335         (expand_gimple_cond): Don't call it, add the probability
28336         as last argument to jumpif_1/jumpifnot_1.
28337         * Makefile.in (dojump.o): Depend on output.h.
28338         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
28339         callers.
28340         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
28341         * stmt.c (do_jump_if_equal): Likewise.
28342         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
28343         * loop-unswitch.c (compare_and_jump_seq): Likewise.
28344         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
28345         Likewise.
28346         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
28347         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
28348         jumpifnot_1 callers.
28349         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
28350         callers.
28351         (store_expr): Adjust jumpifnot caller.
28352         (store_constructor): Adjust jumpif caller.
28353
28354         PR middle-end/42233
28355         * gimplify.c (gimple_boolify): For __builtin_expect call
28356         gimple_boolify also on its first argument.
28357
28358 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
28359
28360         * configure.ac (gnu-unique-object): Wrap regexps using [] in
28361         changequote block.
28362         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
28363         * configure: Regenerated.
28364
28365 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
28366
28367         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
28368         lang_hooks.types_compatible_p instead of comptypes.
28369
28370 2010-02-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
28371
28372         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
28373         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
28374         if __prefer_thumb__ is defined.
28375
28376 2010-02-18  Martin Jambor  <mjambor@suse.cz>
28377
28378         PR tree-optimization/43066
28379         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
28380         array with zero-sized element type.
28381
28382 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
28383
28384         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
28385         rtx, allocate struct var_loc_node here and return it to the
28386         caller, and only if it is actually needed.
28387         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
28388         move it earlier and return immediately if it returns NULL.
28389
28390 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
28391
28392         * config/sparc/gas.h: New file.  Restore
28393         TARGET_ASM_NAMED_SECTION to its ELF default.
28394         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
28395         check !HAVE_GNU_AS.
28396         * config/sparc/sparc.c (sparc_elf_asm_named_section):
28397         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
28398         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
28399         after sparc/sysv4.h.
28400
28401 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
28402
28403         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
28404
28405 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
28406
28407         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
28408         patterns from predicated pattern.
28409
28410 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
28411
28412         PR target/43103
28413         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
28414         for insn mnemonic suffix.
28415
28416 2010-02-17  Richard Guenther  <rguenther@suse.de>
28417
28418         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
28419         to loop PHI nodes.
28420
28421 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
28422
28423         PR debug/42918
28424         * caller-save.c (save_call_clobbered_regs): If BB ends with
28425         a DEBUG_INSN, move any notes in between last real insn and the last
28426         DEBUG_INSN after the last DEBUG_INSN.
28427
28428 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
28429
28430         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
28431         Fix return type.  Fix argument type.  Explain meaning of return value.
28432
28433 2010-02-16  Richard Guenther  <rguenther@suse.de>
28434
28435         PR tree-optimization/41043
28436         * tree-vrp.c (vrp_var_may_overflow): Only ask SCEV for real loops.
28437         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
28438         statements ...
28439         (vrp_visit_phi_node): ... but only for loop PHI nodes.
28440
28441 2010-02-16  Ira Rosen  <irar@il.ibm.com>
28442
28443         PR tree-optimization/43074
28444         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
28445         * tree-vect-loop.c (vect_analyze_loop_operations): Add
28446         vectorizable cycles in hybrid SLP check.
28447         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
28448
28449 2010-02-16  Richard Guenther  <rguenther@suse.de>
28450
28451         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
28452         (true_dependence): If memrefs_conflict_p computes must-alias
28453         trust it.  Move TBAA check after offset-based disambiguation.
28454         (canon_true_dependence): Likewise.
28455
28456 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
28457
28458         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
28459         * doc/invoke.texi: Document it.
28460         * var-tracking.c: Include toplev.h and params.h.
28461         (vt_find_locations): Return bool indicating success.  Compute
28462         hash sizes unconditionally.  Check new parameter, report.
28463         (variable_tracking_main_1): Check vt_find_locations results and
28464         retry.  Renamed from...
28465         (variable_tracking_main): ... this.  New wrapper to preserve
28466         flag_var_tracking_assignments.
28467         * Makefile.in (var-tracking.o): Adjust dependencies.
28468
28469 2010-02-16  Jack Howarth  <howarth@bromo.med.uc.edu>
28470             Jakub Jelinek  <jakub@redhat.com>
28471
28472         PR target/42854
28473         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
28474         if weak_import attribute is present.
28475         * config/darwin.c (machopic_select_section): Likewise.
28476
28477 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
28478
28479         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
28480         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
28481         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
28482         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
28483
28484         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
28485         types.
28486
28487         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
28488         Fix argument types.
28489
28490         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
28491         Rewrite text to refer to the names.
28492
28493 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
28494
28495         * config/i386/i386-builtin-types.def
28496         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
28497         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
28498         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
28499         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
28500         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
28501         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
28502         IX86_BUILTIN_VPERMIL2PS256.
28503         (MULTI_ARG_4_DF2_DI_I): Defined.
28504         (MULTI_ARG_4_DF2_DI_I1): Defined.
28505         (MULTI_ARG_4_SF2_SI_I): Defined.
28506         (MULTI_ARG_4_SF2_SI_I1): Defined.
28507         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
28508         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
28509         __builtin_ia32_vpermil2ps256.
28510         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
28511         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
28512         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
28513         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
28514         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
28515         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
28516         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
28517         CODE_FOR_xop_vpermil2v8sf3.
28518         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
28519         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
28520         * config/i386/xopintrin.h (_mm_permute2_pd): New.
28521         (_mm256_permute2_pd): New.
28522         (_mm_permute2_ps): New.
28523         (_mm256_permute2_ps): New.
28524
28525 2010-02-15  Nick Clifton  <nickc@redhat.com>
28526
28527         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
28528         boolean parameters.  Use emit_jump_insn when emitting a pop
28529         instruction containing a return insn.
28530         (push): Use 'true' rather than '1' as second parameter to F.
28531         (h8300_expand_prologue): Likewise.
28532         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
28533         (h8300_expand_epilogue): Likewise.
28534
28535 2010-02-15  Richard Guenther  <rguenther@suse.de>
28536
28537         PR middle-end/43068
28538         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
28539         if that is zero.
28540
28541 2010-02-15  Nick Clifton  <nickc@redhat.com>
28542
28543         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
28544         delta.
28545
28546 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
28547
28548         * intl.c (fake_ngettext): New function.
28549         * intl.h (fake_ngettext): Declare.
28550         (ngettext): Define macro.
28551         * collect2.c (notice_translated): New function.
28552         (main): Use notice_translated and ngettext.
28553         * collect2.h (notice_translated): Declare.
28554
28555 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
28556
28557         * reorg.c (delete_computation): Comment fixes.
28558         * caller-save.c (setup_save_areas): Idem.
28559         * sel-sched-dump.c (dump_lv_set): Idem.
28560         * rtl.def: Idem.
28561
28562 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28563
28564         * config/s390/s390.c (s390_sched_init): New function.
28565         (TARGET_SCHED_INIT): Target hook defined.
28566
28567 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
28568             Jack Howarth  <howarth@bromo.med.uc.edu>
28569             Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
28570
28571         PR target/42982
28572         Partial revert of unintended change in fix for PR41605.
28573         * config/darwin.h: Fix typo.
28574         * config/darwin9.h: Same.
28575
28576 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
28577
28578         * c-pch.c (pch_init): Clear v.
28579
28580 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
28581
28582         PR middle-end/42930
28583         * graphite-scop-detection.c (graphite_can_represent_scev): Call
28584         graphite_can_represent_init for MULT_EXPR.
28585
28586 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
28587
28588         PR middle-end/42914
28589         PR middle-end/42530
28590         * graphite-sese-to-poly.c (remove_phi): New.
28591         (translate_scalar_reduction_to_array): Call remove_phi.
28592
28593 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
28594
28595         PR middle-end/42771
28596         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
28597         * graphite-clast-to-gimple.h (gloog): Update declaration.
28598         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
28599         * graphite-poly.h (struct poly_bb): Add missing comments.
28600         (struct scop): Add poly_scop_p field.
28601         (POLY_SCOP_P): New.
28602         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
28603         * graphite.c (graphite_transform_loops): Build the polyhedral
28604         representation for each scop before code generation.
28605         * sese.c (rename_variables_in_operand): Removed.
28606         (rename_variables_in_expr): Return the renamed expression.
28607         (rename_sese_parameters): New.
28608         * sese.h (rename_sese_parameters): Declared.
28609
28610 2010-02-11  Richard Guenther  <rguenther@suse.de>
28611
28612         PR tree-optimization/42998
28613         * tree-ssa-pre.c (create_expression_by_pieces): Treat
28614         POINTER_PLUS_EXPR properly.
28615
28616 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
28617             Changpeng Fang  <changpeng.fang@amd.com>
28618
28619         PR middle-end/40886
28620         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
28621         the cost of an IV candidate when the IV is used in a test against zero.
28622
28623         * gcc.dg/tree-ssa/ivopts-3.c: New.
28624
28625 2010-02-11  Richard Guenther  <rguenther@suse.de>
28626
28627         PR lto/41664
28628         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
28629         pointer-vs-decl case by swapping refs.  Handle some cases
28630         of pointer-vs-decl disambiguations more conservatively.
28631         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
28632         to false after expanding.
28633
28634 2010-02-11  Richard Guenther  <rguenther@suse.de>
28635
28636         PR driver/43021
28637         * gcc.c (process_command): Handle LTO file@offset case more
28638         appropriately.
28639
28640 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
28641
28642         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
28643         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
28644         of DEBUG_INSNs.
28645         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
28646
28647         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
28648         if MEM's mode size isn't DWARF2_ADDR_SIZE.
28649         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
28650         Optimize eq/ne comparisons when both arguments are known to be
28651         zero-extended.
28652         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
28653         Don't mask operands unnecessarily if they are known to be already
28654         zero-extended.
28655
28656 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
28657
28658         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
28659         instead of loop.
28660
28661 2010-02-10  Richard Guenther  <rguenther@suse.de>
28662
28663         PR tree-optimization/43017
28664         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
28665         for wrapping signed arithmetic.
28666
28667 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
28668
28669         PR debug/43010
28670         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
28671         if no debug info should be emitted for it.
28672
28673 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
28674
28675         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
28676         note when flag_exceptions is set.
28677
28678 2010-02-10  Duncan Sands  <baldrick@free.fr>
28679
28680         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
28681
28682 2010-02-10  Richard Guenther  <rguenther@suse.de>
28683
28684         PR c/43007
28685         * tree.c (get_unwidened): Handle constants.
28686         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
28687
28688 2010-02-10  Martin Jambor  <mjambor@suse.cz>
28689
28690         PR lto/42985
28691         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
28692         check for variable argument counts independently.
28693
28694 2010-02-10  Christian Bruel  <christian.bruel@st.com>
28695
28696         PR target/42841
28697         * config/sh/sh.c (find_barrier): Increase length for non delayed
28698         conditional branches.
28699
28700 2010-02-10  Christian Bruel  <christian.bruel@st.com>
28701
28702         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
28703
28704 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
28705
28706         * builtins.c (set_builtin_user_assembler_name): Also handle
28707         ffs if int is smaller than word.
28708
28709 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
28710
28711         PR middle-end/42973
28712         * ira-conflicts.c (get_dup): Remove.
28713         (process_reg_shuffles): Add new parameter.  Use it as an
28714         additional guard for copy generation.
28715         (add_insn_allocno_copies): Rewrite.
28716
28717 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
28718
28719         * common.opt (fsched2-use-traces): Preserved for backward
28720         compatibility.
28721         * doc/invoke.texi: Remove the documentation about option
28722         -fsched2-use-traces.
28723         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
28724         flag_sched2_use_traces.
28725         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
28726         the backward compatibility flag section.
28727
28728 2010-02-09  Richard Guenther  <rguenther@suse.de>
28729
28730         PR tree-optimization/43008
28731         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
28732         make HEAP variables initialized from global memory if they
28733         are not known builtin functions.
28734         (find_func_aliases): Adjust.
28735
28736 2010-02-09  Richard Guenther  <rguenther@suse.de>
28737
28738         PR tree-optimization/43000
28739         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
28740         arithmetic manually.
28741
28742 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
28743
28744         PR tree-optimization/42931
28745         * tree-loop-linear.c (try_interchange_loops): Don't call
28746         double_int_mul if estimated_loop_iterations failed.
28747
28748 2010-02-08  Martin Jambor  <mjambor@suse.cz>
28749
28750         PR middle-end/42898
28751         * tree-sra.c (build_accesses_from_assign): Do not mark in
28752         should_scalarize_away_bitmap if stmt has volatile ops.
28753         (sra_modify_assign): Do not process assigns piecemeal if if stmt
28754         has volatile ops.
28755
28756 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
28757
28758         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
28759
28760 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
28761
28762         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
28763         before the pattern.
28764
28765 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
28766
28767         PR middle-end/42946
28768         * df-core.c (df_finish_pass): Change type of saved_flags to int.
28769
28770 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
28771
28772         PR middle-end/42988
28773         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
28774         to unknown_dependence.
28775         (graphite_legal_transform_dr): Handle the unknown_dependence.
28776         (graphite_carried_dependence_level_k): Same.
28777
28778 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
28779
28780         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
28781
28782 2010-02-07  Richard Guenther  <rguenther@suse.de>
28783
28784         PR middle-end/42991
28785         * expr.c (get_inner_reference): Always initialize *pbitsize.
28786
28787 2010-02-07  Richard Guenther  <rguenther@suse.de>
28788
28789         PR middle-end/42956
28790         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
28791         new ARRAY_REFs on variable size element or minimal index arrays.
28792         Complete.
28793         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
28794         gimple_fold_indirect_ref.
28795
28796 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
28797
28798         PR target/42957
28799         * arm.c (arm_override_options): Just return if the user has specified
28800         an invalid fpu name.
28801
28802 2010-02-03  Jason Merrill  <jason@redhat.com>
28803
28804         PR c++/42870
28805         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
28806         i386_pe_maybe_record_exported_symbol.
28807
28808 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
28809
28810         PR target/42924
28811         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
28812         (pa_delegitimize_address): New function.
28813
28814 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
28815
28816         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
28817         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
28818
28819 2010-02-05  Richard Guenther  <rguenther@suse.de>
28820
28821         PR lto/42762
28822         * lto-streamer-in.c (get_resolution): Deal with references
28823         to undefined functions.
28824
28825 2010-02-05  Richard Guenther  <rguenther@suse.de>
28826
28827         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
28828         (fold_const_aggregate_ref): Likewise.
28829         (ccp_fold_stmt): Substitute loads.
28830         (maybe_fold_reference): Verify types before substituting.
28831         Unshare properly.
28832         (fold_gimple_assign): Unshare properly.
28833         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
28834
28835 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
28836
28837         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
28838         for rs6000_gen_cell_microcode.
28839
28840 2010-02-04  Richard Guenther  <rguenther@suse.de>
28841
28842         PR rtl-optimization/42952
28843         * dse.c (const_or_frame_p): Remove MEM handling.
28844
28845 2010-02-04  Nick Clifton  <nickc@redhat.com>
28846
28847         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
28848         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
28849         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
28850         (mn10300_asm_output_mi_thunk): New function.
28851         (mn10300_can_output_mu_thunk): New function.
28852         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
28853         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
28854         (FUNCTION_ARG): Delete incorrect comment.
28855
28856 2010-02-03  Jason Merrill  <jason@redhat.com>
28857
28858         PR c++/40138
28859         * fold-const.c (operand_equal_p): Handle erroneous types.
28860
28861 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
28862
28863         * config/h8300/h8300.md (can_delay): Fix attibute condition.
28864
28865 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
28866
28867         PR rtl-optimization/42941
28868         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
28869         of xmalloc.
28870
28871 2010-02-03  Jason Merrill  <jason@redhat.com>
28872
28873         PR c++/35652
28874         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
28875
28876 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
28877
28878         PR debug/42896
28879         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
28880         (cselib_reset_table): Renamed from...
28881         (cselib_reset_table_with_next_value): ... this.
28882         (cselib_get_next_uid): Renamed from...
28883         (cselib_get_next_unknown_value): ... this.
28884         * cselib.c (next_uid): Renamed from...
28885         (next_unknown_value): ... this.
28886         (cselib_clear_table): Adjust.
28887         (cselib_reset_table): Adjust.  Renamed from...
28888         (cselib_reset_table_with_next_value): ... this.
28889         (cselib_get_next_uid): Adjust.  Renamed from...
28890         (cselib_get_next_unknown_value): ... this.
28891         (get_value_hash): Use hash.
28892         (cselib_hash_rtx): Likewise.
28893         (new_cselib_val): Adjust.  Set and dump uid.
28894         (cselib_lookup_mem): Pass next_uid as hash.
28895         (cselib_subst_to_values): Likewise.
28896         (cselib_log_lookup): Dump uid.
28897         (cselib_lookup): Pass next_uid as hash.  Adjust.
28898         (cselib_process_insn): Adjust.
28899         (cselib_init): Initialize next_uid.
28900         (cselib_finish): Adjust.
28901         (dump_cselib_table): Likewise.
28902         * dse.c (canon_address): Dump value uid.
28903         * print-rtl.c (print_rtx): Print value uid.
28904         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
28905         (dvuid): New type.
28906         (dv_uid): New function, sort of renamed from...
28907         (dv_htab_hash): ... this, reimplemented in terms of it and...
28908         (dv_uid2hash): ... this.  New.
28909         (variable_htab_eq): Drop excess assertions.
28910         (tie_break_pointers): Removed.
28911         (canon_value_cmp): Compare uids.
28912         (variable_post_merge_New_vals): Print uids.
28913         (vt_add_function_parameters): Adjust.
28914         (vt_initialize): Reset table.  Adjust.
28915
28916 2010-02-03  Richard Guenther  <rguenther@suse.de>
28917
28918         PR tree-optimization/42944
28919         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
28920         (call_may_clobber_ref_p_1): Likewise.  Properly handle
28921         malloc and calloc clobbering errno.
28922
28923 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
28924
28925         * doc/invoke.texi: Fix name of sched1 dump.
28926
28927         * opts.c (decode_options): Set flag_tree_switch_conversion
28928         only conditionally on optimize >= 2.
28929
28930         * gcse.c: Assorted comment fixes in pass description.
28931
28932 2010-02-03  Anthony Green  <green@moxielogic.com>
28933
28934         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
28935         nop padding in order to maintain alignment of storage location of
28936         target function address.
28937         (moxie_trampoline_init): Store target function address at newly
28938         aligned location.
28939         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
28940         to 32.
28941         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
28942
28943 2010-02-03  Richard Guenther  <rguenther@suse.de>
28944
28945         PR middle-end/42927
28946         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
28947
28948 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28949
28950         * config.gcc: Reenable check for obsolete targets.
28951         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
28952         mips-sgi-irix6.[0-4]*.
28953
28954 2010-02-02  Nick Clifton  <nickc@redhat.com>
28955
28956         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
28957         constant size of 4 as being the same as 0.
28958         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
28959         can take values in the range 0..4.
28960
28961 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
28962
28963         PR java/41991
28964         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
28965         as _darwin10_Unwind_FindEnclosingFunction().
28966         * libgcc-libsystem.ver: New.
28967
28968 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
28969
28970         PR target/41399
28971         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
28972         implicitly set registers.
28973
28974 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
28975
28976         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
28977         (arm_override_options): Allow automatic selection of the thread
28978         pointer register if thumb2.
28979         (legitimize_pic_address): Improve code sequences for Thumb2.
28980         (arm_call_tls_get_addr): Likewise.
28981         (legitimize_tls_address): Likewise.
28982         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
28983         (pic_load_addr_32bit): ... this.  New named pattern.
28984         * thumb2.md (pic_load_addr_thumb2): Delete.
28985         (pic_load_dot_plus_four): Delete.
28986         (tls_load_dot_plus_four): New named pattern.
28987
28988 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
28989
28990         PR libgomp/29986
28991         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
28992         Document fix for TLS bug.
28993
28994 2010-01-31  Richard Guenther  <rguenther@suse.de>
28995
28996         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
28997         conservatively correct.
28998
28999 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
29000
29001         PR target/42850
29002         Revert:
29003         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
29004
29005         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
29006
29007 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
29008
29009         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
29010
29011 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
29012
29013         * config.gcc: Adjust order of makefile fragments for mingw targets.
29014
29015 2010-01-31  Richard Guenther  <rguenther@suse.de>
29016
29017         PR middle-end/42898
29018         * gimplify.c (gimplify_init_constructor): For volatile LHS
29019         initialize a temporary.
29020
29021 2010-01-31  Matthias Klose  <doko@ubuntu.com>
29022
29023         * configure.ac: Fix __stack_chk_fail check for cross builds configured
29024         --with-headers
29025         * configure: Regenerate.
29026
29027 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
29028
29029         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
29030         the same alias set and their sizes different constantness.
29031         (aliasing_component_refs_p): Revert 2009-10-24 change.
29032
29033 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29034
29035         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
29036         unused.
29037
29038 2010-01-29  Richard Guenther  <rguenther@suse.de>
29039
29040         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
29041         Assert we successfully updated the call.
29042
29043 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
29044
29045         PR rtl-optimization/42889
29046         * df.h (df_set_bb_dirty_nonlr): New prototype.
29047         * df-core.c (df_set_bb_dirty_nonlr): New function.
29048         * df-scan.c (df_insn_rescan): Call it instead of
29049         df_set_bb_dirty for DEBUG_INSNs.
29050
29051 2010-01-29  Richard Guenther  <rguenther@suse.de>
29052
29053         PR middle-end/37448
29054         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
29055         quadratic behavior in most cases.
29056
29057 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
29058
29059         PR target/42891
29060         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
29061         in the call to gen_x86_movsicc_0_m1.
29062
29063 2010-01-28  Richard Guenther  <rguenther@suse.de>
29064
29065         PR tree-optimization/42871
29066         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
29067
29068 2010-01-28  Richard Guenther  <rguenther@suse.de>
29069
29070         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
29071         into call arguments.
29072
29073 2010-01-28  Richard Guenther  <rguenther@suse.de>
29074
29075         PR middle-end/42883
29076         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
29077         the forwarder if the destination is an EH landing pad.
29078
29079 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
29080
29081         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
29082         block list passed to gimple_duplicate_sese_tail.
29083         (parallelize_loops): Avoid parallelization when the function
29084         has_nonlocal_label.
29085         Avoid parallelization when the preheader is IRREDUCIBLE.
29086         Try to optimize when estimated_loop_iterations_int is unresolved.
29087         Add the loop's location to the dump file.
29088         * tree-cfg.c (add_phi_args_after_redirect): Remove.
29089         (gimple_duplicate_sese_tail): Remove the check for the latch.
29090         Redirect nexits to the exit block.
29091         Remove handling of the incoming edges to the latch.
29092         Redirect the backedge from the copied latch to the exit bb.
29093
29094 2010-01-28  Michael Matz  <matz@suse.de>
29095
29096         PR target/42881
29097         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
29098         Wrap force_reg into a sequence, emit it before user.
29099
29100 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
29101
29102         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
29103         (arm_rev): New.
29104         (arm_legacy_rev): Likewise.
29105         (thumb_legacy_rev): Likewise.
29106
29107 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
29108
29109         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
29110         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
29111         on MEM's address failed, try avoid_constant_pool_reference and
29112         recurse if it returned something different.
29113         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
29114         address, try avoid_constant_pool_reference and recurse if it
29115         returned something different.
29116         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
29117         address and avoid_constant_pool_reference returned something
29118         different, don't set have_address.
29119
29120 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
29121
29122         PR debug/42861
29123         * var-tracking.c (val_store): Add modified argument, obey it.
29124         Adjust callers.
29125         (count_uses): Move down logging of main.
29126         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
29127         don't need resolution.
29128         (emit_notes_in_bb): Likewise.
29129
29130 2010-01-27  Richard Guenther  <rguenther@suse.de>
29131
29132         PR middle-end/42878
29133         * tree-inline.c (remap_decl): Delay remapping of SSA name
29134         default definitions until we need them.
29135
29136 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
29137
29138         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
29139         (rs6000_delegitimize_address): New function.
29140
29141         * config/s390/s390.c (s390_delegitimize_address): Call
29142         delegitimize_mem_from_attrs.
29143
29144         PR middle-end/42874
29145         * tree-inline.c (cannot_copy_type_1): Removed.
29146         (copy_forbidden): Don't forbid copying of functions containing
29147         records/unions with variable length fields.
29148
29149 2010-01-27  Christian Bruel  <christian.bruel@st.com>
29150
29151         Revert:
29152         PR target/42841
29153         * config/sh/sh.c (find_barrier): Increase length for non delayed
29154         conditional branches.
29155
29156 2010-01-27  Matthias Klose  <doko@ubuntu.com>
29157
29158         * configure.ac (gnu-unique-object): Fix ldd version check.
29159         * configure: Regenerate.
29160
29161 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29162
29163         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
29164         HAVE_GNU_AS value.
29165         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
29166         Test for HAVE_GNU_AS value.
29167
29168 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29169
29170         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
29171         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
29172         INT64_TYPE): Define.
29173         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
29174         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
29175         INT_LEAST64_TYPE): Define.
29176         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
29177         UINT_LEAST64_TYPE): Define.
29178         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
29179         INT_FAST64_TYPE): Define.
29180         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
29181         UINT_FAST64_TYPE): Define.
29182         (INTMAX_TYPE, UINTMAX_TYPE): Define.
29183         (INTPTR_TYPE, UINTPTR_TYPE): Define.
29184         (SIG_ATOMIC_TYPE): Define.
29185
29186 2010-01-26  Richard Guenther  <rguenther@suse.de>
29187
29188         * df-scan.c (df_scan_set_bb_info): Remove assert.
29189         (df_insn_rescan_debug_internal): Merge asserts.
29190         (df_install_ref): Likewise.
29191         (df_mark_reg): Use bitmap_set_range.
29192         (df_hard_reg_used_p): Remove assert.
29193         (df_hard_reg_used_count): Likewise.
29194
29195 2010-01-26  Richard Guenther  <rguenther@suse.de>
29196
29197         PR rtl-optimization/42685
29198         * web.c (web_main): Ignore DEBUG_INSNs.
29199
29200 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
29201
29202         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
29203
29204         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
29205         Fix types of fndecl and arglist parameters.
29206
29207 2010-01-26  Richard Guenther  <rguenther@suse.de>
29208
29209         PR middle-end/42806
29210         * tree-eh.c (unsplit_eh): Skip debug insns.
29211
29212 2010-01-26  Richard Guenther  <rguenther@suse.de>
29213
29214         PR tree-optimization/42250
29215         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
29216
29217 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
29218
29219         PR fortran/42866
29220         * omp-low.c (expand_omp_sections): Only use single_pred if
29221         l2_bb is single_pred_p.
29222
29223 2010-01-25  Christian Bruel  <christian.bruel@st.com>
29224
29225         PR target/42841
29226         * config/sh/sh.c (find_barrier): Increase length for non delayed
29227         conditional branches.
29228         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
29229
29230 2010-01-24  David S. Miller  <davem@davemloft.net>
29231
29232         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
29233         define if not using GAS.
29234         * config/sparc/sparc.c (sparc_elf_asm_named_section):
29235         Likewise.  Delete SECTION_MERGE code, which is only applicable
29236         when using GAS.
29237
29238 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
29239
29240         PR c++/42748
29241         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
29242         mangling of va_list in system headers.
29243
29244 2010-01-23  Toon Moene  <toon@moene.org>
29245
29246         * tree-predcom.c (combine_chains): Return NULL, not false.
29247
29248 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
29249
29250         * tree-loop-distribution.c (distribute_loop): Fix declaration and
29251         initialization of variable res to agree with return type.
29252
29253 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
29254
29255         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
29256         * tree-sra.c: Add include of expr.h.
29257
29258 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
29259
29260         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
29261         insert the debug stmt on the single non-EH edge from the stmt.
29262
29263 2010-01-22  Richard Henderson  <rth@redhat.com>
29264
29265         PR tree-opt/42833
29266         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
29267         the RHS until after generate_subtree_copies has insertted its
29268         code before the current statement.
29269
29270 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
29271
29272         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
29273
29274         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
29275
29276 2010-01-21  Martin Jambor  <mjambor@suse.cz>
29277
29278         PR tree-optimization/42585
29279         * tree-sra.c (struct access): New field grp_total_scalarization.
29280         (dump_access): Dump the new field.
29281         (should_scalarize_away_bitmap): New variable.
29282         (cannot_scalarize_away_bitmap): Likewise.
29283         (sra_initialize): Allocate new bitmaps.
29284         (sra_deinitialize): Free new bitmaps.
29285         (create_access_1): New function.
29286         (create_access): Parts moved to create_access_1.
29287         (type_consists_of_records_p): New function.
29288         (completely_scalarize_record): Likewise.
29289         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
29290         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
29291         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
29292         access.
29293         (analyze_all_variable_accesses): Completely scalarize small eligible
29294         records.
29295
29296 2010-01-21  Martin Jambor  <mjambor@suse.cz>
29297
29298         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
29299
29300 2010-01-21  Andrew Haley  <aph@redhat.com>
29301
29302         * gcc.c (process_command): Move lang_specific_driver before
29303         setting cc_libexec_prefix.
29304
29305 2010-01-21  Richard Guenther  <rguenther@suse.de>
29306
29307         PR middle-end/19988
29308         * fold-const.c (negate_expr_p): Pretend only negative
29309         real constants are easily negatable.
29310
29311 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
29312             Jason Merrill  <jason@redhat.com>
29313
29314         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
29315         (TYPE_TRANSPARENT_AGGR): this, for union and record.
29316         * calls.c (initialize argument_information): Handle it.
29317         * c-common.c (handle_transparent_union_attribute): Use new name.
29318         * c-decl.c (finish_struct): Ditto.
29319         * c-typeck.c (type_lists_compatible_p): Ditto.
29320         (convert_for_assignment): Use new name and also handle record.
29321         * function.c (aggregate_value_p): Handle it.
29322         (pass_by_reference): Ditto.
29323         (assign_parm_data_types): Ditto.
29324         * print-tree.c (print_node): Ditto.
29325         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
29326         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
29327         * tree.c (first_field): New fn.
29328
29329 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
29330
29331         PR target/42818
29332         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
29333         even when linking statically, for now.
29334
29335 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
29336
29337         PR debug/42715
29338         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
29339         without a cselib val.
29340         (count_uses): Accept MO_VAL_SET with no val on stores.
29341         (add_stores): Likewise.
29342
29343 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
29344
29345         * var-tracking.c (check_value_val): Add a compile time assertion.
29346         (dv_is_decl_p): Simplify.
29347         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
29348         gcc_assert if ENABLE_CHECKING.
29349
29350 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
29351
29352         PR debug/42782
29353         * var-tracking.c: Include tree-flow.h.
29354         (mem_dies_at_call): New.
29355         (dataflow_set_preserve_mem_locs): Use it.
29356         (dataflow_set_remove_mem_locs): Likewise.
29357         (dump_var): Renamed from dump_variable.  Adjust all callers.
29358         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
29359         * Makefile.in (var-tracking.o): Adjust deps.
29360
29361 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
29362
29363         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
29364
29365 2010-01-20  Richard Guenther  <rguenther@suse.de>
29366
29367         PR tree-optimization/42717
29368         * tree-ssa-dce.c (get_live_post_dom): Remove.
29369         (forward_edge_to_pdom): Take an arbitrary edge to copy
29370         degenerate PHI args from.
29371         (remove_dead_stmt): Use the first post-dominator even if it
29372         does not contain live statements as redirection destination.
29373
29374 2010-01-20  Richard Guenther  <rguenther@suse.de>
29375
29376         * tree-inline.c (estimate_num_insns): Handle EH builtins.
29377
29378 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
29379
29380         * sel-sched.c (create_speculation_check): Remove set but not used
29381         variable twin.
29382         (try_transformation_cache): Remove set but not used variable ds.
29383         (calculate_privileged_insns): Remove set but not used variables
29384         cur_insn and min_spec_insn.
29385         (find_best_expr): Remove set but not used variable avail_n.
29386         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
29387         variable e.
29388         * cgraphunit.c (assemble_thunk): Remove set but not used variable
29389         false_label.
29390         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
29391         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
29392         new_scop_exit_edge.
29393
29394 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
29395
29396         PR bootstrap/42786
29397         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
29398         cpu types.  Add support for *-sse3 cpu types.
29399         (x86_64-*-*): Ditto.
29400
29401 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
29402
29403         PR middle-end/42803
29404         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
29405         argument, call initializer_constant_valid_p_1 instead of
29406         initializer_constant_valid_p, pass CACHE to it, return NULL
29407         immediately if first call returns NULL.
29408         (initializer_constant_valid_p_1): New function.
29409         (initializer_constant_valid_p): Use it.
29410
29411 2010-01-20  Thomas Quinot  <quinot@adacore.com>
29412
29413         * tree.def (PLACEHOLDER_EXPR): Fix comment.
29414
29415 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
29416
29417         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
29418         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
29419         (loc_list_from_tree): Don't handle unsigned division.  Handle
29420         signed modulo using DW_OP_{over,over,div,mul,minus}.
29421         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
29422         modulo instead of signed.
29423
29424 2010-01-20  DJ Delorie  <dj@redhat.com>
29425
29426         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
29427         (Fpa): Pass it
29428         (h8300_emit_stack_adjustment): Propogate it.
29429         (push): Pass it.
29430         (h8300_expand_prologue): Likewise.
29431         (h8300_expand_epilogue): Likewise.
29432
29433 2010-01-19  Michael Matz  <matz@suse.de>
29434
29435         PR tree-optimization/41783
29436         * tree-data-ref.c (toplevel): Include flags.h.
29437         (dump_data_dependence_relation):  Also dump the inputs if the
29438         result will be unknown.
29439         (split_constant_offset_1): Look through some conversions.
29440         * tree-predcom.c (determine_roots_comp): Restart a new chain if
29441         the offset from last element is too large.
29442         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
29443         (reassociate_to_the_same_stmt): Handle vector registers.
29444         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
29445         (e.g. conversions).
29446         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
29447         wide_prolog_niters argument, emit widening instructions.
29448         (vect_do_peeling_for_alignment): Adjust caller, use widened
29449         variant of the iteration cound.
29450         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
29451
29452 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
29453
29454         PR target/38697
29455         * config/arm/neon-testgen.m (emit_automatics): New parameter
29456         features. Adjust for Fixed_return_reg feature.
29457         (test_intrinsic): Call emit_automatics with new feature.
29458         * config/arm/neon.ml: Update copyright years.
29459         (features): New Fixed_return_reg feature.
29460         (ops): Update feature for Vget_low.
29461
29462 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
29463
29464         PR tree-optimization/42719
29465         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
29466         stmt uses.
29467
29468         PR debug/42728
29469         * fwprop.c (all_uses_available_at): Return false if def_set dest
29470         is a REG that is used in def_insn.
29471
29472 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
29473
29474         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
29475
29476         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
29477         Add argument names.
29478
29479         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
29480
29481         * target.h (struct gcc_target) <secondary_reload>: Change type
29482         of last argument to secondary_reload_info *.
29483
29484 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
29485
29486         PR target/42774
29487         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
29488         memory references with unaligned offsets.  Remove CQImode handling.
29489         (unaligned_memory_operand): Return 1 for memory references with
29490         unaligned offsets.  Remove CQImode handling.
29491
29492 2010-01-18  Richard Guenther  <rguenther@suse.de>
29493
29494         PR middle-end/39954
29495         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
29496         builtin calls.
29497
29498 2010-01-18  Richard Guenther  <rguenther@suse.de>
29499
29500         PR tree-optimization/42781
29501         * tree-ssa-structalias.c (find_what_var_points_to): Skip
29502         restrict processing only if the original variable was artificial.
29503
29504 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
29505
29506         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
29507         find number of popped argument bytes.
29508
29509         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
29510         Fix the text that describes the return value for invalid insns.
29511
29512         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
29513
29514         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
29515         Clarify what 'cost of the -dependence' is.  Fix quoting.
29516
29517         * toplev.c (default_get_pch_validity): Rename argument to "sz".
29518         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
29519
29520 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
29521
29522         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
29523         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
29524
29525 2010-01-17  Richard Guenther  <rguenther@suse.de>
29526
29527         PR middle-end/42248
29528         * function.c (split_complex_args): Take a VEC to modify.
29529         (assign_parms_augmented_arg_list): Build a VEC instead of
29530         a chain of PARM_DECLs.
29531         (assign_parms_unsplit_complex): Take a VEC of arguments.
29532         Do not fixup unmodified parms.
29533         (assign_parms): Deal with the VEC.
29534         (gimplify_parameters): Likewise.
29535
29536 2010-01-17  Richard Guenther  <rguenther@suse.de>
29537
29538         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
29539         node existence check.
29540         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
29541         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
29542         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
29543         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
29544         (gimple_execute_on_growing_pred): Likewise.
29545
29546 2010-01-17  Richard Guenther  <rguenther@suse.de>
29547
29548         PR tree-optimization/42773
29549         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
29550         (compute_antic_aux): Likewise.
29551         (compute_partial_antic_aux): Likewise.
29552
29553 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
29554
29555         PR debug/42767
29556         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
29557         and US_TRUNCATE.
29558
29559 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
29560
29561         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
29562         appearance.
29563
29564         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
29565         Fix markup for strict argument.
29566
29567         (TARGET_SCHED_REORDER2): Fix argument types.
29568
29569         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
29570         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
29571
29572         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
29573         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
29574
29575         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
29576         Add argument name.
29577
29578         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
29579         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
29580         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
29581         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
29582         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
29583
29584         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
29585
29586         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
29587
29588         (TARGET_ASM_RELOC_RW_MASK): Add return type.
29589         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
29590
29591         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
29592
29593         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
29594         Use prototype.
29595
29596         (TARGET_ASM_NAMED_SECTION): Fix argument list.
29597
29598         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
29599         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
29600
29601         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
29602
29603         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
29604
29605         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
29606         referring to it.  Fix language.
29607
29608         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
29609
29610         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
29611
29612         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
29613
29614         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
29615
29616         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
29617         '@var{stream}.  Remove stray 'and'.
29618
29619         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
29620
29621         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
29622
29623         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
29624
29625         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
29626         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
29627
29628         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
29629         Fix description of return value.
29630         Rename argument "sz" to "len."
29631
29632         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
29633         Clarify meaning of 'true' return value.
29634
29635         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
29636
29637         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
29638         rep_mode versus mode_rep.
29639
29640         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
29641
29642         (TARGET_BUILTIN_DECL): Fix name.
29643
29644         (TARGET_COMMUTATIVE_P): Fix type of first argument.
29645
29646         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
29647
29648         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
29649
29650         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
29651
29652         (TARGET_RELAXED_ORDERING): Use @deftypevr.
29653
29654         (TARGET_GET_DRAP_RTX): Note that this is a hook.
29655         Clarify language.
29656
29657         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
29658         Rename argument tm_fn to md_fn.
29659
29660         (TARGET_OPTION_PRINT): Fix argument list.
29661
29662 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
29663
29664         PR target/42664
29665         * config/i386/i386.c (ix86_fixup_binary_operands):
29666         Revert FMA4 fixup of operands.
29667
29668 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
29669
29670         PR gcc/42525
29671         * Makefile.in (write_entries_to_file, install-plugin):
29672         Use \012 instead of \n with tr.
29673
29674 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
29675
29676         * configure.ac (HAVE_AS_REF): New C macro.
29677         * configure: Regenerate.
29678         * config.in: Likewise.
29679         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
29680         if HAVE_AS_REF.
29681         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
29682         if HAVE_AS_REF.
29683
29684 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
29685
29686         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
29687
29688         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
29689
29690         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
29691
29692         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
29693
29694         (TARGET_IN_SMALL_DATA_P): Fix argument type.
29695
29696         (TARGET_BINDS_LOCAL_P): Fix argument type.
29697
29698         (TARGET_ASM_FILE_END): Use prototype.
29699
29700         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
29701
29702         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
29703
29704         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
29705
29706         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
29707
29708         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
29709         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
29710
29711         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
29712         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
29713
29714         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
29715         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
29716         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
29717         (TARGET_ADDR_SPACE_CONVERT): Likewise.
29718
29719         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
29720
29721         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
29722
29723         (TARGET_INIT_BUILTINS): Use prototype.
29724
29725         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
29726         Put 'const char *' in braces.  Fix parameter types.
29727         (TARGET_INVALID_CONVERSION): Fix parameter types.
29728         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
29729         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
29730
29731         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
29732         Fix argument type.
29733
29734         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
29735
29736         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
29737
29738 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
29739
29740         * doc/tm.texi (TARGET_HELP): Fix return type.
29741
29742         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
29743         in braces.  Fix argument types.
29744
29745         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
29746
29747         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
29748
29749         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
29750
29751         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
29752         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
29753
29754         (TARGET_MANGLE_TYPE): Fix argument types.
29755
29756         (TARGET_IRA_COVER_CLASSES): Use prototype.
29757
29758         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
29759
29760         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
29761
29762         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
29763
29764         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
29765
29766         (TARGET_CALLEE_COPIES): Fix argument types.
29767
29768         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
29769
29770         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
29771
29772         (TARGET_FUNCTION_VALUE): Fix argument types.
29773
29774         (TARGET_RETURN_IN_MSB): Fix argument type.
29775
29776         (TARGET_RETURN_IN_MEMORY): Fix argument types.
29777
29778         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
29779
29780         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
29781
29782         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
29783         agree with return type.
29784
29785         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
29786
29787 2010-01-15  Jing Yu  <jingyu@google.com>
29788
29789         PR rtl-optimization/42691
29790         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
29791         a pseudo to a constant and are merged, and adjust comments.
29792
29793 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
29794
29795         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
29796
29797 2010-01-15  Richard Guenther  <rguenther@suse.de>
29798
29799         PR middle-end/42739
29800         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
29801         labels of computed or non-local gotos to the destination.
29802         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
29803         landing pad label is the first label.
29804
29805 2010-01-15  Richard Guenther  <rguenther@suse.de>
29806
29807         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
29808
29809 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
29810
29811         PR target/42747
29812         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
29813         to allow generation of the xssqrtdp instruction on power7.
29814         (sqrtdf2_fpr): Ditto.
29815
29816 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
29817
29818         PR middle-end/42674
29819         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
29820         functions with noreturn attribute.
29821
29822         PR c++/42608
29823         * varasm.c (declare_weak): Add weak attribute to decl if it
29824         doesn't have one already.
29825         (assemble_external): Only add decls to weak_decls if they also
29826         have weak attribute.
29827
29828 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
29829
29830         * var-tracking.c (var_reg_delete): Don't delete the association
29831         between REGs and values or one-part variables if the register
29832         isn't clobbered.
29833
29834 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
29835
29836         PR debug/42657
29837         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
29838         because its first operand is a non-localized variable.
29839
29840 2010-01-14  Martin Jambor  <mjambor@suse.cz>
29841
29842         PR tree-optimization/42706
29843         * tree-sra.c (encountered_recursive_call): New variable.
29844         (encountered_unchangable_recursive_call): Likewise.
29845         (sra_initialize): Initialize both new variables.
29846         (callsite_has_enough_arguments_p): New function.
29847         (scan_function): Call decl and flags check only for IPA-SRA, check
29848         whether there is a recursive call and whether it has enough arguments.
29849         (all_callers_have_enough_arguments_p): New function.
29850         (convert_callers): Look for recursive calls only when
29851         encountered_recursive_call is set.
29852         (ipa_early_sra): Bail out either if
29853         !all_callers_have_enough_arguments_p or
29854         encountered_unchangable_recursive_call.
29855
29856 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
29857
29858         * sel-sched.c: Add 2010 to copyright years.
29859         * sel-sched-ir.c: Likewise.
29860         * sel-sched-ir.h: Likewise.
29861
29862 2010-01-14  Martin Jambor  <mjambor@suse.cz>
29863
29864         PR tree-optimization/42714
29865         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
29866         constructors specially.
29867
29868 2010-01-14  Andi Kleen  <ak@linux.intel.com>
29869
29870         * config/i386/drivers-i386.c (detect_caches_intel):
29871         Add l2sizekb parameter and fill in.
29872         (host_detect_local_cpu): Add l2sizekb, fill in.
29873         Add Atom small cache heuristic.
29874
29875 2010-01-14  Andi Kleen  <ak@linux.intel.com>
29876
29877         * config/i386/drivers-i386.c (detect_caches_cpuid4):
29878         Add level3 parameter and fill in.
29879         (detect_caches_intel): Handle level3 cache.
29880
29881 2010-01-14  Andi Kleen  <ak@linux.intel.com>
29882
29883         * config/i386/drivers-i386.c (host_detect_local_cpu):
29884         Fix core duo detection.
29885
29886 2010-01-14  Andi Kleen  <ak@linux.intel.com>
29887
29888         * config/i386/drivers-i386.c (host_detect_local_cpu):
29889         Fix Atom detection.
29890
29891 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
29892
29893         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
29894         (rs6000_variable_issue_1): this.  Use...
29895         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
29896
29897 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
29898
29899         * sel-sched-ir.c (sel_restore_other_notes): Rename to
29900         sel_restore_notes.  Update all callers.  Call reemit_notes
29901         for all insns.
29902
29903 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
29904
29905         PR rtl-optimization/42246
29906         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
29907         loops.
29908
29909 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
29910
29911         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
29912         all successors is the same as number of successors in current region.
29913
29914 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
29915
29916         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
29917         to rename is not separable.  Otherwise check that its LHS is not NULL.
29918
29919 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
29920
29921         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
29922
29923 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
29924
29925         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
29926         available registers when failed to discover LHS register class.
29927         Fix indentation.  Update comment.
29928
29929 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
29930             Alexander Monakov  <amonakov@ispras.ru>
29931
29932         PR rtl-optimization/42389
29933         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
29934         to can_issue_more.
29935         (advance_state_on_fence): Likewise.
29936         (sel_target_adjust_priority): Print debug output only when
29937         sched_verbose >= 4, not 2.
29938         (get_expr_cost): Do not issue all unique insns on the next cycle.
29939         (fill_insns): Initialize can_issue_more from the value saved
29940         with the fence.
29941         * sel-sched-ir.c (flist_add): New parameter issue_more.
29942         Init FENCE_ISSUE_MORE with it.
29943         (merge_fences): Likewise.
29944         (init_fences): Update call to flist_add.
29945         (add_to_fences, add_clean_fence_to_fences)
29946         (add_dirty_fence_to_fences): Likewise.
29947         (move_fence_to_fences): Update call to merge_fences.
29948         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
29949         sched groups.
29950         * sel-sched-ir.h (struct _fence): New field issue_more.
29951         (FENCE_ISSUE_MORE): New accessor macro.
29952
29953 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
29954
29955         PR rtl-optimization/42388
29956         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
29957         that have no predecessors nor successors.  Do not call move_bb_info
29958         for empty blocks outside of current region.
29959
29960 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
29961
29962         PR rtl-optimization/42294
29963         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
29964         * sel-sched.c (move_exprs_to_boundary): Transitively add all
29965         originators' originators.
29966
29967 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
29968
29969         PR rtl-optimization/39453
29970         PR rtl-optimization/42246
29971         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
29972         for pipelining_p.
29973         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
29974
29975 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
29976             Alexander Monakov  <amonakov@ispras.ru>
29977
29978         PR middle-end/42245
29979         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
29980         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
29981         argument.  Update all callers.
29982         (tidy_control_flow): ... and here.  Recompute topological order
29983         of basic blocks in region if necessary.
29984         (sel_redirect_edge_and_branch): Change return type.  Return true
29985         if topological order might have been invalidated.
29986         (purge_empty_blocks): Export and move from...
29987         * sel-sched.c (purge_empty_blocks): ... here.
29988         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
29989         (maybe_tidy_empty_bb): Delete prototype.
29990         (purge_empty_blocks): Declare.
29991
29992 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
29993
29994         PR rtl-optimization/42249
29995         * sel-sched.c (try_replace_dest_reg): When chosen register
29996         and original register is the same, do not bail out early, but
29997         still check all original insns for validity of replacing destination
29998         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
29999         in this case.
30000
30001 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
30002
30003         PR c/42721
30004         Port from no-undefined-overflow branch:
30005         2009-03-09  Richard Guenther  <rguenther@suse.de>
30006
30007         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
30008
30009 2010-01-14  Richard Guenther  <rguenther@suse.de>
30010
30011         PR lto/42665
30012         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
30013
30014 2010-01-14  Ira Rosen  <irar@il.ibm.com>
30015
30016         PR tree-optimization/42709
30017         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
30018         as scalar type in creation of constant vector operand.
30019
30020 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
30021
30022         PR testsuite/42414
30023         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
30024         (check-parallel-%): Match `testsuite' directory component only
30025         at the end.
30026
30027 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
30028
30029         PR translation/39521
30030         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
30031         strings with _().
30032
30033 2010-01-13  Richard Guenther  <rguenther@suse.de>
30034
30035         PR tree-optimization/42730
30036         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
30037         offset zero.
30038
30039 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
30040
30041         PR target/pr42542
30042         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
30043         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
30044         them signed.
30045
30046 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
30047
30048         * config/bfin/libgcc-bfin.ver: Regenerate based on current
30049         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
30050         ___umulsi3_highpart.
30051
30052         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
30053         rather than schedule_insns if the pass is enabled.
30054
30055 2010-01-13  Martin Jambor  <mjambor@suse.cz>
30056
30057         PR tree-optimization/42704
30058         * tree-sra.c (sra_modify_assign): Do not delete assignments to
30059         SSA_NAMEs.
30060
30061 2010-01-13  Martin Jambor  <mjambor@suse.cz>
30062
30063         PR tree-optimization/42703
30064         * tree-sra.c (analyze_access_subtree): Check that we can build a
30065         reference to the original data within the aggregate.
30066
30067 2010-01-13  Richard Guenther  <rguenther@suse.de>
30068
30069         PR tree-optimization/42705
30070         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
30071
30072 2010-01-13  Richard Guenther  <rguenther@suse.de>
30073
30074         PR middle-end/42716
30075         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
30076
30077 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
30078
30079         PR debug/41371
30080         * var-tracking.c (values_to_unmark): New variable.
30081         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
30082         values_to_unmark vector.  Moved body to...
30083         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
30084         instead queue it into values_to_unmark vector.
30085         (vt_find_locations): Free values_to_unmark vector.
30086
30087 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
30088
30089         * config/s390/s390.c (override_options): Set
30090         default of max-pending-list-length to 256
30091
30092 2010-01-13  Richard Guenther  <rguenther@suse.de>
30093
30094         PR lto/42678
30095         * tree-pass.h (PROP_gimple_lcx): New.
30096         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
30097         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
30098         before the final cleanup_eh.
30099         (dump_properties): Dump PROP_gimple_lcx.
30100         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
30101         (tree_lower_complex_O0): Remove.
30102         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
30103         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
30104         tree_lower_complex, schedule TODO_update_ssa.
30105         * lto-streamer-out.c (output_function): Stream the functions
30106         properties.
30107         * lto-streamer-in.c (input_function): Likewise.
30108         (lto_read_body): Do not override them here.
30109
30110 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
30111
30112         PR c/42708
30113         * c-typeck.c (build_c_cast): Fold value cast to union type before
30114         wrapping it in a CONSTRUCTOR.
30115
30116 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
30117
30118         PR rtl-optimization/42699
30119         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
30120         involved.
30121
30122 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30123
30124         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
30125         SUBTARGET_WARN_UNUSED_SPEC): Move ...
30126         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
30127         SUBTARGET_WARN_UNUSED_SPEC): ... here
30128         * config/mips/iris5.h (LIBGCC_SPEC): Define.
30129
30130 2010-01-12  Julian Brown  <julian@codesourcery.com>
30131
30132         * config/arm/neon-schedgen.ml (Utils): Don't try to
30133         open missing module.
30134         (find_with_result): New.
30135
30136 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
30137
30138         PR debug/42662
30139         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
30140         sharing when canonicalizing ({lt,ge}u (plus a b) b).
30141
30142         PR tree-optimization/42645
30143         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
30144         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
30145         decl_map, set processing_debug_stmt to -1 and return name without
30146         any remapping.
30147
30148 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
30149
30150         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
30151         binutils version, and reword target configuration description.
30152
30153 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
30154
30155         * config/avr/avr.h (LINKER_NAME): Remove.
30156
30157 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
30158
30159         PR target/42416
30160         * config/rs6000/rs6000.c (rs6000_override_options): On targets
30161         that support VSX, warn for -mno-altivec if vsx is not disabled,
30162         and disable vsx.
30163
30164 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
30165             Shujing Zhao  <pearly.zhao@oracle.com>
30166
30167         PR translation/42469
30168         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
30169         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
30170         character between option name and help text.
30171         * c.opt (imultilib): Likewise.
30172
30173 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
30174
30175         * lto-streamer-out.c (output_unreferenced_globals): Output static
30176         variables.
30177
30178 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
30179
30180         PR rtl-optimization/42621
30181         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
30182         optimizing for size.
30183         (duplicate_computed_gotos): Remove now-redundant check.
30184
30185 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
30186
30187         PR target/37454
30188         * configure.ac: Save and restore LDFLAGS and LIBS
30189         * configure: Regenerate.
30190
30191 2010-01-10  Richard Guenther  <rguenther@suse.de>
30192
30193         PR middle-end/42667
30194         * builtins.c (fold_builtin_strlen): Add type argument and
30195         convert the resulting length to it.
30196         (fold_builtin_1): Adjust.
30197
30198 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
30199
30200         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
30201         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
30202         1 insn.
30203         (num_insns_constant_wide): Adjust for that change.
30204
30205 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
30206
30207         PR debug/42631
30208         * web.c (union_defs): Add used argument, to combine uses of
30209         uninitialized regs.
30210         (entry_register): Adjust type and tests of used argument.
30211         (web_main): Widen used for new use.  Pass it to union_defs.
30212         * df.h (union_defs): Adjust prototype.
30213
30214 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
30215
30216         PR debug/42630
30217         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
30218         uses in new incoming argument.  Free body.
30219         (reset_debug_uses_in_loop): New.
30220         (analyze_insn_to_expand_var): Call the latter if the former found
30221         anything.  Fix whitespace.  Reject invalid dest overlaps before
30222         going through all insns in the loop.
30223
30224 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
30225
30226         PR debug/42629
30227         * haifa-sched.c (dying_use_p): Debug insns don't count.
30228
30229 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
30230
30231         PR middle-end/42363
30232         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
30233         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
30234         (verify_gimple_call): Reject LHS in noreturn calls.
30235
30236 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
30237
30238         PR debug/42604
30239         PR debug/42395
30240         * tree-vect-loop-manip.c (adjust_info): New type.
30241         (adjust_vec): New pointer to vector.
30242         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
30243         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
30244         (slpeel_update_phis_for_duplicate_loop): Use them.
30245         (slpeel_update_phi_nodes_for_guard1): Likewise.
30246         (slpeel_update_phi_nodes_for_guard2): Likewise.
30247         (slpeel_tree_peel_loop_to_edge): Likewise.
30248         (vect_update_ivs_after_vectorizer): Likewise.
30249
30250 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
30251
30252         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
30253         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
30254
30255 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
30256
30257         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
30258         bogus uninitialized warning.
30259
30260 2010-01-09  Richard Guenther  <rguenther@suse.de>
30261
30262         PR middle-end/42512
30263         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
30264         the evolution is compatible with the initial condition.
30265
30266 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
30267
30268         * gcc.c (process_command): Update copyright notice dates.
30269         * gcov.c (print_version): Likewise.
30270         * gcov-dump.c (print_version): Likewise.
30271         * mips-tfile.c (main): Likewise.
30272         * mips-tdump.c (main): Likewise.
30273
30274 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
30275
30276         PR target/41885
30277         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
30278         (rotlhi3): Delete.
30279         (rotlhi3_8): Delete.
30280         (rotlsi3): Delete.
30281         (rotlsi3_8): Delete.
30282         (rotlsi3_16): Delete.
30283         (rotlsi3_24): Delete.
30284         (rotl<mode>3): New.
30285         (*rotw<mode>3): New.
30286         (*rotb<mode>3): New.
30287         * config/avr/avr.c (avr_rotate_bytes): New function.
30288         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
30289
30290 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
30291
30292         PR target/37454
30293         * configure.ac: Modify -rdynamic check.
30294         * configure: Regenerate.
30295
30296 2010-01-08  DJ Delorie  <dj@redhat.com>
30297
30298         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
30299         register popping order.
30300
30301 2010-01-08  Richard Guenther  <rguenther@suse.de>
30302
30303         PR lto/42528
30304         * c.opt (fsigned-char): Also let LTO handle this option.
30305         (funsigned-char): Likewise.
30306
30307 2010-01-07  Richard Guenther  <rguenther@suse.de>
30308
30309         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
30310         (gimple_op): Likewise.
30311         (gimple_op_ptr): Likewise.
30312         (gimple_assign_set_lhs): Remove gcc_assert.
30313         (gimple_assign_set_rhs1): Likewise.
30314         (gimple_assign_set_rhs2): Likewise.
30315         (gimple_call_set_lhs): Likewise.
30316         (gimple_call_set_fn): Likewise.
30317         (gimple_call_set_fndecl): Likewise.
30318         (gimple_call_fndecl): Likewise.
30319         (gimple_call_return_type): Likewise.
30320         (gimple_call_set_chain): Likewise.
30321         (gimple_call_num_args): Likewise.
30322         (gimple_call_set_arg): Likewise.
30323         (gimple_cond_set_code): Likewise.
30324         (gimple_cond_set_lhs): Likewise.
30325         (gimple_cond_set_rhs): Likewise.
30326         (gimple_cond_set_true_label): Likewise.
30327         (gimple_cond_set_false_label): Likewise.
30328         (gimple_label_set_label): Likewise.
30329         (gimple_goto_set_dest): Likewise.
30330         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
30331         (gimple_debug_bind_get_value): Likewise.
30332         (gimple_debug_bind_get_value_ptr): Likewise.
30333         (gimple_debug_bind_set_var): Likewise.
30334         (gimple_debug_bind_set_value): Likewise.
30335         (gimple_debug_bind_reset_value): Likewise.
30336         (gimple_debug_bind_has_value_p): Likewise.
30337         (gimple_return_retval_ptr): Remove gcc_assert.
30338         (gimple_return_retval): Likewise.
30339         (gimple_return_set_retval): Likewise.
30340         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
30341         (safe_referenced_var_iterator): Remove.
30342         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
30343         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
30344         (fill_referenced_var_vec): Remove.
30345         (first_readonly_imm_use): Remove redundant gcc_assert.
30346         (phi_arg_index_from_use): Combine gcc_asserts.
30347         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
30348         (first_imm_use_stmt): Remove redundant gcc_assert.
30349         * tree-cfg.c (verify_gimple_call): Verify function and chain
30350         operands.  Verify arguments.
30351         (verify_types_in_gimple_stmt): Verify condition code and labels.
30352
30353 2010-01-07  Richard Guenther  <rguenther@suse.de>
30354
30355         PR tree-optimization/42641
30356         * sese.c (rename_map_elt_info): Use the SSA name version, do
30357         not hash pointers.
30358
30359 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
30360
30361         PR tree-optimization/42625
30362         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
30363         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
30364
30365 2010-01-07  Duncan Sands  <baldrick@free.fr>
30366
30367         * Makefile.in (PLUGIN_HEADERS): Add version.h.
30368
30369 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
30370
30371         PR target/42511
30372         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
30373         note itself is not function_invariant_p.
30374
30375 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
30376
30377         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
30378         Do not add the DF_NOTE problem.
30379         * store-motion.c (execute_rtl_store_motion): Likewise.
30380
30381 2010-01-07  Martin Jambor  <mjambor@suse.cz>
30382
30383         PR tree-optimization/42157
30384         * tree-sra.c (compare_access_positions): Stabilize sort if both
30385         accesses have integer types, return zero immediately if they are the
30386         same.
30387
30388 2010-01-06  Richard Henderson  <rth@redhat.com>
30389
30390         PR middle-end/41883
30391         * haifa-sched.c (add_to_note_list): Merge into ...
30392         (concat_note_lists): ... here, and ...
30393         (unlink_other_notes, rm_other_notes): Merge into...
30394         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
30395         NOTE_INSN_EPILOGUE_BEG.
30396
30397 2010-01-06  Richard Guenther  <rguenther@suse.de>
30398
30399         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
30400         not inline regular functions into always-inline functions.
30401
30402 2010-01-06  Nick Clifton  <nickc@redhat.com>
30403
30404         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
30405         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
30406         used together.
30407         (OVERRIDE_OPTIONS): Delete.
30408         (OPTIMIZATION_OPTIONS): Define.
30409         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
30410         * config/rx/rx.c (rx_handle_option): Issue an error message if
30411         -mcpu=rx200 and -fpu are used together.
30412         (rx_set_optimization_options): New function.  Issue an error
30413         message if an optimization attribute attempts to reset the FPU/
30414         math optimization pairing.
30415         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
30416         * config/rx/rx.opt: Set the default to 32-bit doubles.
30417         * config/rx/t-rx: Add multilibs for -nofpu option.
30418         * doc/invoke.texi: Update documentation of RX options.
30419
30420 2010-01-06  Richard Guenther  <rguenther@suse.de>
30421
30422         * tree-ssa-pre.c (name_to_id): New global.
30423         (alloc_expression_id): Simplify SSA name handling.
30424         (lookup_expression_id): Likewise.
30425         (init_pre): Zero name_to_id.
30426         (fini_pre): Free it.
30427
30428 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
30429
30430         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
30431
30432 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
30433
30434         PR target/42542
30435         * config/i386/sse.md (smaxv2di3): New.
30436         (umaxv2di3): Likewise.
30437         (sminv2di3): Likewise.
30438         (uminv2di3): Likewise.
30439
30440 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
30441
30442         PR target/42564
30443         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
30444         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
30445         (legitimize_tls_address): Likewise.
30446         (sparc_tls_referenced_p): Likewise.
30447         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
30448         and adjust calls to legitimize_pic_address.
30449         (legitimate_constant_p) Use sparc_tls_referenced_p.
30450         (legitimate_pic_operand_p): Likewise.
30451         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
30452         (sparc_tls_symbol_ref_1): Delete.
30453         (sparc_tls_referenced_p): Make static, recognize specific patterns.
30454         (legitimize_tls_address): Make static, handle CONST patterns.
30455         (legitimize_pic_address): Make static, remove unused parameter and
30456         adjust recursive calls.
30457         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
30458         and adjust call to legitimize_pic_address.
30459         (sparc_output_mi_thunk): Likewise.
30460
30461 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
30462             H.J. Lu  <hongjiu.lu@intel.com>
30463
30464         PR target/42542
30465         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
30466         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
30467         operands to make them signed.
30468
30469         Revert:
30470         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
30471
30472         PR target/42542
30473         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
30474         GTU to GT for V4SI and V2DI.
30475
30476         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
30477         (umin<mode>3): Removed.
30478         (uminv8hi3): New.
30479         (uminv4si3): Likewise.
30480
30481 2010-01-05  Martin Jambor  <mjambor@suse.cz>
30482
30483         PR tree-optimization/42462
30484         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
30485         current_function_decl to helper functions and macros.
30486
30487 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30488
30489         PR bootstrap/41771
30490         * flags.h: Don't include real.h.
30491         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
30492         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
30493         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
30494         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
30495         * dominance.c: Update copyright.
30496         * gimple.c (walk_gimple_op): Remove inline.
30497         * tree-ssa-reassoc.c: Include real.h.
30498         * Makefile.in (FLAGS_H): Remove $(REAL_H).
30499         (tree-ssa-reassoc.o): Depend on $(REAL_H).
30500
30501 2010-01-05  Nick Clifton  <nickc@redhat.com>
30502
30503         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
30504         register to push into the stack frame when the accumulator has to
30505         be saved during interrupts.
30506
30507 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
30508
30509         * doc/invoke.texi: Remove the documentation about option
30510         -Wunreachable-code.
30511         * common.opt (Wunreachable-code):  Preserved for backward
30512         compatibility.
30513         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
30514         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
30515         the backward compatibility flag section.
30516
30517 2010-01-05  Richard Guenther  <rguenther@suse.de>
30518
30519         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
30520
30521 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
30522
30523         PR other/42611
30524         * cfgexpand.c (expand_one_var): Diagnose too large variables.
30525
30526         PR tree-optimization/42508
30527         * tree-sra.c (convert_callers): Check for recursive call
30528         by comparing cgraph nodes instead of decls.
30529         (modify_function): Call ipa_modify_formal_parameters also
30530         on all same_body aliases.
30531
30532         * cgraphunit.c (cgraph_materialize_all_clones): Compare
30533         cgraph nodes when checking for same_body aliases.
30534
30535 2010-01-05  Richard Guenther  <rguenther@suse.de>
30536
30537         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
30538         allocation and lookup.
30539         (get_or_alloc_expr_for_constant): Likewise.
30540         (phi_translate): Sink allocation.
30541
30542 2010-01-04  Richard Guenther  <rguenther@suse.de>
30543
30544         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
30545         a new entry only if needed.
30546         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
30547         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
30548         hashtable lookup.
30549         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
30550         the result array.
30551         (phi_translate): Handle CONSTANTs early.
30552
30553 2010-01-04  Martin Jambor  <mjambor@suse.cz>
30554
30555         PR tree-optimization/42398
30556         * tree-sra.c (struct access): Removed flag grp_different_types.
30557         (dump_access): Do not dump the removed flag.
30558         (sort_and_splice_var_accesses): Do not set the removed flag.
30559         (sra_modify_expr): Check for type compatibility directly.
30560
30561 2010-01-04  Martin Jambor  <mjambor@suse.cz>
30562
30563         PR tree-optimization/42366
30564         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
30565         edges with variable number of parameters.
30566         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
30567         flag instead of asserting it.
30568         (ipa_read_node_info): Read uses_analysis_done flag.
30569
30570 2010-01-04  Richard Guenther  <rguenther@suse.de>
30571
30572         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
30573         iterative_hash_* as intended.
30574         (vn_reference_compute_hash): Likewise.  Simplify hashing
30575         SSA names.
30576         (vn_reference_lookup_2): Likewise.
30577         (vn_nary_op_compute_hash): Likewise.
30578         (vn_phi_compute_hash): Likewise.
30579         (expressions_equal_p): Remove strange code.
30580         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
30581         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
30582         (bitmap_insert_into_set_1): Take value-id as parameter.
30583         (add_to_value): Pass it.
30584         (bitmap_insert_into_set): Likewise.
30585         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
30586
30587 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
30588
30589         PR driver/42442
30590         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
30591         (do_self_spec): For switches with SWITCH_IGNORE set set also
30592         SWITCH_IGNORE_PERMANENTLY.
30593         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
30594         of SWITCH_IGNORE.
30595
30596 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
30597
30598         * lto-streamer-out.c (output_unreferenced_globals): Output the full
30599         tree of an unreferenced global var.
30600
30601 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
30602
30603         PR target/42542
30604         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
30605         GTU to GT for V4SI and V2DI.
30606
30607         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
30608         (umin<mode>3): Removed.
30609         (uminv8hi3): New.
30610         (uminv4si3): Likewise.
30611
30612 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
30613
30614         PR lto/42581
30615         * collect2.c (main): Turn on trace in collect2 if -v is passed
30616         to gcc with LTO.
30617
30618 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
30619
30620         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
30621         description of expression operand.
30622
30623 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
30624
30625         * configure.ac: Add install-html to target_list for Make-hooks.
30626         * configure: Regenerate.
30627         * fortran/Make-lang.in (F95_HTMLFILES): New.
30628         (fortran.html): Use it.
30629         (fortran.install-html): New.
30630         * Makefile.in (install-html): Add lang.install-html.
30631         * java/Make-lang.in (JAVA_HTMLFILES): New.
30632         (java.html): Use it.
30633         (java.install-html): New.
30634         * objc/Make-lang.in (objc.install-html): New.
30635         * objcp/Make-lang.in (obj-c++.install-html): New.
30636         * cp/Make-lang.in (c++.install-html): New.
30637         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
30638         * lto/Make-lang.in (lto.install-html): New.
30639
30640 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
30641
30642         PR lto/42520
30643         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
30644
30645 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
30646
30647         PR rtl-optimization/41862
30648         * store-motion.c (store_killed_in_insn, compute_store_table,
30649         remove_reachable_equiv_notes, replace_store_insn,
30650         build_store_vectors): Ignore all DEBUG_INSNs.
30651
30652 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
30653
30654         PR lto/41564
30655         * common.opt: Add dumpdir.
30656
30657         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
30658         isn't specified.
30659         (option_map): Add --dumpdir.
30660
30661         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
30662
30663         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
30664
30665         * opts.c (decode_options): Try dump_dir_name first if
30666         dump_base_name isn't an absolute path.
30667         (common_handle_option): Handle OPT_dumpdir.
30668
30669         * toplev.c (dump_dir_name): New.
30670         (print_switch_values): Also ignore -dumpdir.
30671
30672         * toplev.h (dump_dir_name): New.
30673
30674 2010-01-03  Richard Guenther  <rguenther@suse.de>
30675
30676         PR tree-optimization/42589
30677         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
30678         double-word expansion of bswap32.
30679
30680 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
30681
30682         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
30683         with BLOCK_FOR_INSN.
30684         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
30685         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
30686         noce_process_if_block): Likewise.
30687         * gcse.c (compute_local_properties, insert_expr_in_table,
30688         insert_set_in_table, canon_list_insert, find_avail_set,
30689         pre_insert_copy_insn): Likewise.
30690
30691         * basic-block.h (BLOCK_NUM): Move from here...
30692         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
30693
30694 2010-01-03  Richard Guenther  <rguenther@suse.de>
30695
30696         PR tree-optimization/42438
30697         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
30698         contains_may_not_return_call flag.
30699         (BB_MAY_NOTRETURN): New.
30700         (valid_in_sets): Trapping nary operations are not valid
30701         in blocks that may not return.
30702         (insert_into_preds_of_block): Remove check for trapping expressions.
30703         (compute_avail): Compute also BB_MAY_NOTRETURN.
30704
30705 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
30706
30707         * doc/invoke.texi: Add 2010 to copyright years.
30708
30709 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
30710
30711         * config/sparc/sparc.c: Fix formatting nits.
30712
30713 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
30714             Alexander Monakov  <amonakov@ispras.ru>
30715
30716         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
30717
30718 2010-01-02  Richard Guenther  <rguenther@suse.de>
30719
30720         PR middle-end/42577
30721         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
30722         (simplify_switch_using_ranges): Mark to be removed edges
30723         as non-executable.
30724
30725 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
30726
30727         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
30728
30729         * collect2.c (scan_libraries): Add missing argument in call to
30730         scan_prog_file.
30731
30732 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
30733
30734         PR target/42448
30735         * config/alpha/predicates.md (aligned_memory_operand): Return false
30736         for CQImode.
30737         (unaligned_memory_operand): Return true for CQImode.
30738         * config/alpha/alpha.c (get_aligned_mem): Assert that location
30739         doesn not cross aligned SImode word boundary.
30740
30741 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
30742
30743         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
30744         Remove.
30745         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
30746         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
30747
30748 2010-01-02  Richard Guenther  <rguenther@suse.de>
30749
30750         PR lto/41597
30751         * toplev.c (compile_file): Emit LTO marker properly.  Change
30752         it to __gnu_lto_v1.
30753         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
30754
30755 2010-01-01  Richard Guenther  <rguenther@suse.de>
30756
30757         PR debug/42455
30758         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
30759
30760 2010-01-01  Richard Guenther  <rguenther@suse.de>
30761
30762         PR c/42570
30763         * c-decl.c (grokdeclarator): For zero-size arrays force
30764         structural equality checks as layout_type does.
30765
30766 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
30767
30768         * builtins.c: Update copyright to 2010.
30769
30770 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
30771
30772         PR lto/42531
30773         * lto-streamer-out.c (produce_asm): Revert the last change.
30774         (copy_function): Likewise.
30775
30776         * lto-streamer.c (lto_get_section_name): Skip any leading
30777         asterisk in name.
30778
30779 2010-01-01  Richard Guenther  <rguenther@suse.de>
30780
30781         PR middle-end/42559
30782         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
30783         for LABEL_DECLs.
30784
30785 \f
30786 Copyright (C) 2010 Free Software Foundation, Inc.
30787
30788 Copying and distribution of this file, with or without modification,
30789 are permitted in any medium without royalty provided the copyright
30790 notice and this notice are preserved.