OSDN Git Service

b7c8aecdbd1d450b9151ed53cdb27e338d1b9308
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
2
3         PR tree-optimization/44508
4         * tree-ssa-propagate.h (substitute_and_fold): Add DO_DCE
5         argument.
6         * tree-ssa-propagate.c (substitute_and_fold): If !DO_DCE,
7         don't eliminate trivially dead stmts.
8         * tree-vrp.c (vrp_finalize): Pass false as last argument
9         to substitute_and_fold.
10         * tree-ssa-copy.c (fini_copy_prop): Pass true as last argument
11         to substitute_and_fold.
12         * tree-ssa-ccp.c (ccp_finalize): Likewise.
13
14         PR bootstrap/44509
15         * c-config-lang.in (gtfiles): Add c-family/c-cppbuiltin.c.
16         * c-family/c-cppbuiltin.c: Include gt-c-family-c-cppbuiltin.h.
17         (lazy_hex_fp_values, lazy_hex_fp_value_count): Add GTY(()) markers.
18         (lazy_hex_fp_value, builtin_define_with_hex_fp_value): Use
19         ggc_strdup instead of xstrdup.
20
21 2010-06-14  Ira Rosen  <irar@il.ibm.com>
22
23         PR tree-optimization/44507 
24         * tree-vect-loop.c (get_initial_def_for_reduction): Use -1
25         to build initial vector for BIT_AND_EXPR.
26         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
27
28 2010-06-14  Jakub Jelinek  <jakub@redhat.com>
29
30         * config/s390/s390.md (*mov<mode>_64 DD_DF, mov<mode>): Properly
31         adjust z10prop set_attr.
32
33 2010-06-13  Jan Hubicka  <jh@suse.cz>
34
35         * bitmap.c (bitmap_and, bitmap_and_into, bitmap_and_compl,
36         bitmap_and_compl_into, bitmap_compl_and_into, bitmap_ior,
37         bitmap_ior_into, bitmap_xor, bitmap_xor_into,
38         bitmap_ior_and_compl, bitmap_ior_and_compl): Turn internal
39         datastructure checks into checking asserts.
40         * rtlanal.c (find_reg_note): Use gcc_checking_assert.
41         * tree-ssa-sccvn.c (VN_INFO): Likewise.
42         * df-scan.c (df_reorganize_refs_by_reg_by_reg, df_install_ref,
43         df_ref_create_structure): Likewise.
44         * alloc-pool.c (create_alloc_pool, empty_alloc_pool, pool_alloc,
45         pool_free): Use gcc_checking_assert.
46         * alias.c (get_alias_set): Likewise.
47         * var-tracking.c (variable_htab_free, shared_hash_copy,
48         canonicalize_values_mark, variable_merge_over_cur): Likewise.
49         * lto-streamer.c (bp_unpack_value): Likewise.
50
51 2010-06-13  Richard Guenther  <rguenther@suse.de>
52
53         * lto-streamer-in.c (lto_input_ts_type_tree_pointers):
54         Do not stream but initialize TYPE_CANONICAL to NULL.
55         (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
56         * gimple.c (gimple_types_compatible_p): Disregard
57         TYPE_STRUCTURAL_EQUALITY_P.
58         (gimple_register_type): Use TYPE_CANONICAL as cache.
59         * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
60         before registering common types.
61         * config/i386/i386.c (ix86_function_arg_boundary): Do not
62         use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
63         * tree.h (TYPE_CANONICAL): Clarify documentation.
64
65 2010-06-13  Anatoly Sokolov  <aesok@post.ru>
66
67         * config/ia64/ia64.h (FUNCTION_VALUE_REGNO_P, FUNCTION_VALUE,
68         LIBCALL_VALUE): Remove macros.
69         * config/ia64/ia64-protos.h (ia64_function_value): Remove.
70         * config/ia64/ia64.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
71         TARGET_FUNCTION_VALUE_REGNO_P): Define.
72         (ia64_libcall_value, ia64_function_value_regno_p): New functions.
73         (ia64_function_value): Make static. Handle receiving the function
74         type in 'fn_decl_or_type' argunent. Add 'outgoing' argument.
75
76 2010-06-12  Jan Hubicka  <jh@suse.cz>
77
78         * cse.c (cse_extended_basic_block): Move optimize_bb_for_speed_p
79         at correct place.
80
81 2010-06-12  Bernd Schmidt  <bernds@codesourcery.com>
82
83         * config/arm/arm.c (thumb2_reorg): Fix errors in previous change.
84
85 2010-06-12  Jan Hubicka  <jh@suse.cz>
86
87         * df-core.c (df_clear_bb_info): New function.
88         (df_set_blocks): bb_info is always allocated.
89         (df_get_bb_info): Use block_info_elt_size.
90         (df_set_bb_info): Likewise.
91         (df_compact_blocks): Update for new block_info.
92         (grow_bb_info): New function.
93         * df-problems.c (df_grow_bb_info): Move to df-core.c
94         (df_rd_set_bb_info): Remove.
95         (df_rd_free_bb_info): Do not free block pool.
96         (df_rd_alloc): Do not create pool, use check for
97         obstack presence instead of NULL pointer for new blocks.
98         (df_rd_free): DO not free alloc pool; clear block_info.
99         (problem_RD): Add size of block info structure.
100         (df_lr_set_bb_info): Remove.
101         (df_lr_free_bb_info): Do not free block pool.
102         (df_lr_alloc): Do not create pool, use check for
103         obstack presence instead of NULL pointer for new blocks.
104         (df_lr_free): DO not free alloc pool; clear block_info.
105         (problem_LR): Add size of block info structure.
106         (df_live_set_bb_info): Remove.
107         (df_live_free_bb_info): Do not free block pool.
108         (df_live_alloc): Do not create pool, use check for
109         obstack presence instead of NULL pointer for new blocks.
110         (df_live_free): DO not free alloc pool; clear block_info.
111         (problem_LIVE): Add size of block info structure.
112         (problem_CHAIN): Add size of block info structure.
113         (df_byte_lr_set_bb_info): Remove.
114         (df_byte_lr_free_bb_info): Do not free block pool.
115         (df_byte_lr_alloc): Do not create pool, use check for
116         obstack presence instead of NULL pointer for new blocks.
117         (df_byte_lr_free): DO not free alloc pool; clear block_info.
118         (problem_BYTE_LR): Add size of block info structure.
119         (problem_NOTE): Add size of block info structure.
120         (df_byte_MD_set_bb_info): Remove.
121         (df_byte_MD_free_bb_info): Do not free block pool.
122         (df_byte_MD_alloc): Do not create pool, use check for
123         obstack presence instead of NULL pointer for new blocks.
124         (df_byte_MD_free): DO not free alloc pool; clear block_info.
125         (problem_BD): Add size of block info structure.
126         * df-scan.c (df_scan_free_internal): Free block pool.
127         (df_scan_set_bb_info): Remove.
128         (df_scan_free_bb_info): Check for artificial_defs instead
129         of bb_info being non-NULL.
130         (df_scan_alloc): DO not create df_scan_block pool.
131         (problem_SCAN): Set size of block info.
132         (df_bb_refs_record): Do not allocate bb_info.
133         * df.h (df_problem): Add block_info_elt_size.
134         (struct dataflow): Change block_info to void *.
135         (df_scan_get_bb_info, df_rd_get_bb_info, df_lr_get_bb_info,
136         df_md_get_bb_info, df_live_get_bb_info, df_byte_lr_get_bb_info): Return
137         in-line structures.
138
139 2010-06-12  Jan Hubicka  <jh@suse.cz>
140
141         PR tree-optimize/44485
142         * tree-cfgcleanup.c (fixup_noreturn_call): Remove basic blocks
143         containing use of return value of noreturn function.
144
145 2010-06-12  Anatoly Sokolov  <aesok@post.ru>
146
147         * targhooks.c (default_function_value): Don't use
148         FUNCTION_OUTGOING_VALUE.
149         * system.h (FUNCTION_OUTGOING_VALUE): Poison.
150         * doc/tm.texi (FUNCTION_OUTGOING_VALUE): Removed.
151
152 2010-06-12  Kazu Hirata  <kazu@codesourcery.com>
153
154         * config.gcc (mips64*-*-linux*, mipsisa64*-*-linux*,
155         mips*-*-linux*): Add crtfastmath.o to extra_parts.
156         * config/mips/crtfastmath.c: New.
157         * config/mips/linux.h (ENDFILE_SPEC): New.
158
159 2010-06-12  Sebastian Pop  <sebastian.pop@amd.com>
160
161         * graphite-clast-to-gimple.c (gcc_type_for_interval): Do not pass
162         old_type in parameter.
163         (gcc_type_for_value): Update call to gcc_type_for_interval.
164         (compute_type_for_level_1): Renamed compute_type_for_level.
165         Update call to gcc_type_for_interval.
166
167 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
168
169         * common.opt (Wstrict-aliasing=, Wstrict-overflow=, fabi-version=,
170         flto-compression-level=, ftree-parallelize-loops=): Add
171         RejectNegative.
172
173 2010-06-11  Joseph Myers  <joseph@codesourcery.com>
174
175         * opts-common.c: Include options.h.
176         (integral_argument): Move from opts.c.
177         (decode_cmdline_option): New.  Based on read_cmdline_option.
178         * opts.c (integral_argument): Move to opts-common.c.
179         (read_cmdline_option): Move most contents to
180         decode_cmdline_option.  Use %qs in diagnostics.
181         * opts.h (CL_ERR_DISABLED, CL_ERR_MISSING_ARG, CL_ERR_WRONG_LANG,
182         CL_ERR_UINT_ARG, struct cl_decoded_option, integral_argument,
183         decode_cmdline_option): New.
184
185 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
186
187         PR target/44481
188         * config/i386/i386.md (UNSPEC_PARITY): New unspec.
189         (paritydi2_cmp): Use UNSPEC_PARITY unspec insted of parity RTX.
190         (partiysi2_cmp): Ditto.
191         (*partiyhi2_cmp): Ditto.
192         (*parityqi2_cmp): Remove.
193
194 2010-06-11  Jan Hubicka  <jh@suse.cz>
195
196         * bitmap.h (bmp_iter_next_bit): New.
197         (bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): Use it.
198
199 2010-06-11  Sandra Loosemore  <sandra@codesourcery.com>
200             Eric Botcazou  <ebotcazou@adacore.com>
201
202         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Return again the
203         computed cost.
204
205 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
206
207         * config/i386/i386.md (unspec): New define_c_enum.
208         (unspecv): Ditto.
209
210 2010-06-10  Jakub Jelinek  <jakub@redhat.com>
211
212         * c-family/c-cppbuiltin.c: Include cpp-id-data.h.
213         (lazy_hex_fp_values, lazy_hex_fp_value_count): New variables.
214         (lazy_hex_fp_value): New function.
215         (builtin_define_with_hex_fp_value): Provide definitions lazily.
216         * Makefile.in (c-family/c-cppbuiltin.o): Depend on $(CPP_ID_DATA_H).
217
218 2010-06-11  Sebastian Pop  <sebastian.pop@amd.com>
219
220         PR middle-end/44483
221         * tree-if-conv.c (bb_predicate_s): New struct.
222         (bb_predicate_p): New.
223         (bb_has_predicate): New.
224         (bb_predicate): New.
225         (set_bb_predicate): New.
226         (bb_predicate_gimplified_stmts): New.
227         (set_bb_predicate_gimplified_stmts): New.
228         (add_bb_predicate_gimplified_stmts): New.
229         (init_bb_predicate): New.
230         (free_bb_predicate): New.
231         (is_predicated): Use bb_predicate.
232         (add_to_predicate_list): Use bb_predicate and set_bb_predicate.
233         (predicate_bbs): Same.  Gimplify the condition of the basic blocks
234         before processing their successors.
235         (clean_predicate_lists): Removed.
236         (find_phi_replacement_condition): Use bb_predicate.
237         (process_phi_nodes): Renamed ifconvert_phi_nodes.  Avoid useless
238         computations.
239         (insert_gimplified_predicates): New.
240         (combine_blocks): Call insert_gimplified_predicates.
241         (tree_if_conversion): Call free_bb_predicate instead of
242         clean_predicate_lists.
243
244 2010-10-11  Paul Brook  <paul@codesourcery.com>
245
246         * doc/invoke.texi: Document ARM -mcpu=cortex-m4.
247         * config/arm/arm.c (all_architectures): Change v7e-m default to
248         cortexm4.
249         * config/arm/arm-cores.def: Add cortex-m4.
250         * config/arm/arm-tune.md: Regenerate.
251
252 2010-06-11  Jan Hubicka  <jh@suse.cz>
253
254         * ipa-pure-const.c (special_builtlin_state): New function.
255         (check_call): Use it instead of special casign BUILT_IN_RETURN.
256         (propagate_pure_const): Use it.
257
258 2010-06-11  Jan Hubicka  <jh@suse.cz>
259
260         * df-problems.c (df_live_scratch): Convert to bitmap_head.
261         (df_live_alloc): Initialize df_live_scratch when initializing
262         problem_data.
263         (df_live_transfer_function): Update uses of df_live_scratch.
264         (df_live_free): Free problem_data; clear df_live_scratch before
265         releasing the obstack.
266         (df_md_free): Free problem data.
267
268 2010-06-11  Jan Hubicka  <jh@suse.cz>
269
270         * doc/invoke.texi (Wsuggest-attribute): Document.
271         (Wmissing-noreturn): Remove.
272         * ipa-pure-const.c (warn_function_noreturn): New function.
273         * opts.c (decode_options): Set warn_suggest_attribute_noreturn on
274         warn_missing_noreturn.
275         * common.opt (Wsuggest-attribute=noreturn): New.
276         * tree-flow.h (warn_function_noreturn): Declare.
277         * tree-cfg.c (execute_warn_function_noreturn): Use
278         warn_function_noreturn.
279         (gate_warn_function_noreturn): New.
280         (pass_warn_function_noreturn): Update.
281
282 2010-06-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
283
284         * c-typeck.c (handle_warn_cast_qual): Add loc
285         parameter. Improve warning message.
286         (build_c_cast): Pass location to handle_warn_cast_qual.
287
288 2010-06-11  Uros Bizjak  <ubizjak@gmail.com>
289
290         * config/i386/i386.md (pro_epilogue_adjust_stack_1) <TYPE_ALU>: Assert
291         that operand 0 == operand 1.  Use x86_maybe_negate_const_int to output
292         insn mnemonic.
293         (pro_epilogue_adjust_stack_rex64) <TYPE_ALU>: Ditto.
294
295 2010-06-10  Dodji Seketeli  <dodji@redhat.com>
296
297         Fix bootstap on mips
298         * dwarf2out.c (is_naming_typedef_dec): Built-in TYPE_DECLs cannot
299         be naming typedefs.
300
301 2010-06-11  Kai Tietz  <kai.tietz@onevision.com>
302
303         * system.h (helper_const_non_const_cast): New inline for
304         gcc version <= 4.0.
305         (CONST_CAST2): For gcc version <= 4.0 use
306         new helper to do const/non-const casting.
307
308 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
309
310         * doc/md.texi: Document the "unspec" and "unspecv" enum names.
311         * Makefile.in (OBJS-common): Include insn-enums.o.
312         (insn-enums.o): New rule.
313         (simple_generated_c): Add insn-enums.c.
314         (build/genenums.o): New rule.
315         (genprogmd): Add "enums".
316         * genconstants.c (print_enum_type): Declare a C string array
317         for each enum.
318         * genenums.c: New file.
319         * print-rtl.c (print_rtx): If defined, use the "unspecv" enum
320         for UNSPEC_VOLATILE.  If defined, use the "unspec" enum for both
321         UNSPEC and (as a fallback) for UNSPEC_VOLATILE.
322
323 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
324
325         * doc/md.texi (define_enum_attr): Document.
326         * rtl.def (DEFINE_ENUM_ATTR): New rtx.
327         * read-md.h (lookup_enum_type): Declare.
328         * read-md.c (lookup_enum_type): New function.
329         * genattr.c (gen_attr, main): Handle DEFINE_ENUM_ATTR.
330         * genattrtab.c (attr_desc): Add an enum_name field.
331         (evaluate_eq_attr): Take the associated attribute as argument.
332         Get the enum prefix from the enum_name field, if defined.
333         Use ACONCAT rather than a fixed-length buffer.  Update recursive calls.
334         (simplify_test_exp): Pass attr to evaluate_eq_attr.
335         (add_attr_value): New function, split out from...
336         (gen_attr): ...here.  Handle DEFINE_ENUM_ATTR.
337         (write_test_expr): Pass attr to evaluate_eq_attr.
338         (write_attr_get): Use the enum_name as the enum tag, if defined.
339         (write_attr_valueq): Use the enum_name as a prefix, if defined.
340         (find_attr): Initialize enum_name.
341         (main): Handle DEFINE_ENUM_ATTR.
342         * gensupport.c (process_rtx): Likewise.
343         * config/mips/mips.h (mips_tune_attr): Delete.
344         * config/mips/mips.md (cpu): Use define_attr_enum.
345
346 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
347
348         * doc/md.texi (define_c_enum, define_enum): Document.
349         * read-md.h (md_constant): Add a parent_enum field.
350         (enum_value, enum_type): New structures.
351         (upcase_string, traverse_enum_types): Declare.
352         * read-md.c (enum_types): New variable.
353         (upcase_string, add_constant): New functions.
354         (handle_constants): Don't create the hash table here.
355         Use add_constant.
356         (traverse_md_constants): Don't check for a null md_constants.
357         (decimal_string, handle_enum, traverse_enum_types): New functions.
358         (read_md_files): Initialize md_constants and md_enums.
359         * genconstants.c (print_md_constant): Ignore info argument.
360         Only print constants that belong to no enum.
361         (print_enum_type): New function.
362         (main): Don't pass stdout to print_md_constant.  Call print_enum_type
363         for each defined enum type.
364         * config/mips/mips.md (processor): New define_enum.
365         (unspec): New define_c_enum.
366         (UNSPEC_COMPARE_AND_SWAP, UNSPEC_COMPARE_AND_SWAP_12)
367         (UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_NEW_OP_12)
368         (UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE, UNSPEC_SYNC_EXCHANGE_12)
369         (UNSPEC_MEMORY_BARRIER): Moved to sync.md.
370         (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ, UNSPEC_SUBQ_S, UNSPEC_ADDSC)
371         (UNSPEC_ADDWC, UNSPEC_MODSUB, UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S)
372         (UNSPEC_PRECRQ_QB_PH, UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W)
373         (UNSPEC_PRECRQU_S_QB_PH, UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR)
374         (UNSPEC_PRECEQU_PH_QBL, UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA)
375         (UNSPEC_PRECEQU_PH_QBRA, UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR)
376         (UNSPEC_PRECEU_PH_QBLA, UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL)
377         (UNSPEC_SHLL_S, UNSPEC_SHRL_QB, UNSPEC_SHRA_PH, UNSPEC_SHRA_R)
378         (UNSPEC_MULEU_S_PH_QBL, UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH)
379         (UNSPEC_MULEQ_S_W_PHL, UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL)
380         (UNSPEC_DPAU_H_QBR, UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR)
381         (UNSPEC_DPAQ_S_W_PH, UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH)
382         (UNSPEC_DPAQ_SA_L_W, UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL)
383         (UNSPEC_MAQ_S_W_PHR, UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR)
384         (UNSPEC_BITREV, UNSPEC_INSV, UNSPEC_REPL_QB, UNSPEC_REPL_PH)
385         (UNSPEC_CMP_EQ, UNSPEC_CMP_LT, UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB)
386         (UNSPEC_CMPGU_LT_QB, UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH)
387         (UNSPEC_EXTR_W, UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H)
388         (UNSPEC_EXTP, UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
389         (UNSPEC_RDDSP): Move to mips-dsp.md.
390         (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH, UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB)
391         (UNSPEC_ADDUH_R_QB, UNSPEC_APPEND, UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB)
392         (UNSPEC_CMPGDU_LT_QB, UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH)
393         (UNSPEC_DPS_W_PH, UNSPEC_MADD, UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU)
394         (UNSPEC_MUL_PH, UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH)
395         (UNSPEC_MULQ_S_W, UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU)
396         (UNSPEC_PRECR_QB_PH, UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W)
397         (UNSPEC_PREPEND, UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH)
398         (UNSPEC_SUBU_PH, UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB)
399         (UNSPEC_ADDQH_PH, UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W)
400         (UNSPEC_SUBQH_PH, UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W)
401         (UNSPEC_DPAX_W_PH, UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH)
402         (UNSPEC_DPAQX_SA_W_PH, UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH):
403         Moved to mips-dspr2.md.
404         (UNSPEC_MOVE_TF_PS, UNSPEC_C, UNSPEC_ALNV_PS, UNSPEC_CABS)
405         (UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS, UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS)
406         (UNSPEC_ABS_PS, UNSPEC_RSQRT1, UNSPEC_RSQRT2, UNSPEC_RECIP1)
407         (UNSPEC_RECIP2, UNSPEC_SINGLE_CC, UNSPEC_SCC): Move from mips-ps-3d.md.
408         (UNSPEC_LOONGSON_PAVG, UNSPEC_LOONGSON_PCMPEQ, UNSPEC_LOONGSON_PCMPGT)
409         (UNSPEC_LOONGSON_PEXTR, UNSPEC_LOONGSON_PINSR_0)
410         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
411         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
412         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
413         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
414         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
415         UNSPEC_LOONGSON_PSADBH)
416         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
417         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
418         (UNSPEC_LOONGSON_PSUBD): Move to mips-loongson.md.
419         (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
420         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
421         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
422         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Move to mips-loongson2ef.md.
423         (cpu): Update comment.
424         * config/mips/sync.md (UNSPEC_COMPARE_AND_SWAP)
425         (UNSPEC_COMPARE_AND_SWAP_12, UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP)
426         (UNSPEC_SYNC_NEW_OP_12, UNSPEC_SYNC_OLD_OP_12, UNSPEC_SYNC_EXCHANGE)
427         (UNSPEC_SYNC_EXCHANGE_12, UNSPEC_MEMORY_BARRIER): Moved from mips.md.
428         * config/mips/loongson.md (UNSPEC_LOONGSON_PAVG,
429         UNSPEC_LOONGSON_PCMPEQ)
430         (UNSPEC_LOONGSON_PCMPGT, UNSPEC_LOONGSON_PEXTR,
431         UNSPEC_LOONGSON_PINSR_0)
432         (UNSPEC_LOONGSON_PINSR_1, UNSPEC_LOONGSON_PINSR_2)
433         (UNSPEC_LOONGSON_PINSR_3, UNSPEC_LOONGSON_PMADD)
434         (UNSPEC_LOONGSON_PMOVMSK, UNSPEC_LOONGSON_PMULHU)
435         (UNSPEC_LOONGSON_PMULH, UNSPEC_LOONGSON_PMULL, UNSPEC_LOONGSON_PMULU)
436         (UNSPEC_LOONGSON_PASUBUB, UNSPEC_LOONGSON_BIADD,
437         UNSPEC_LOONGSON_PSADBH)
438         (UNSPEC_LOONGSON_PSHUFH, UNSPEC_LOONGSON_PUNPCKH)
439         (UNSPEC_LOONGSON_PUNPCKL, UNSPEC_LOONGSON_PADDD)
440         (UNSPEC_LOONGSON_PSUBD): Moved from mips.md
441         * config/mips/loongson2ef.md (UNSPEC_LOONGSON_ALU1_TURN_ENABLED_INSN)
442         (UNSPEC_LOONGSON_ALU2_TURN_ENABLED_INSN)
443         (UNSPEC_LOONGSON_FALU1_TURN_ENABLED_INSN)
444         (UNSPEC_LOONGSON_FALU2_TURN_ENABLED_INSN): Moved from mips.md
445         * config/mips/mips-dsp.md (UNSPEC_ADDQ, UNSPEC_ADDQ_S, UNSPEC_SUBQ)
446         (UNSPEC_SUBQ_S, UNSPEC_ADDSC, UNSPEC_ADDWC, UNSPEC_MODSUB)
447         (UNSPEC_RADDU_W_QB, UNSPEC_ABSQ_S, UNSPEC_PRECRQ_QB_PH)
448         (UNSPEC_PRECRQ_PH_W, UNSPEC_PRECRQ_RS_PH_W, UNSPEC_PRECRQU_S_QB_PH)
449         (UNSPEC_PRECEQ_W_PHL, UNSPEC_PRECEQ_W_PHR, UNSPEC_PRECEQU_PH_QBL)
450         (UNSPEC_PRECEQU_PH_QBR, UNSPEC_PRECEQU_PH_QBLA, UNSPEC_PRECEQU_PH_QBRA)
451         (UNSPEC_PRECEU_PH_QBL, UNSPEC_PRECEU_PH_QBR, UNSPEC_PRECEU_PH_QBLA)
452         (UNSPEC_PRECEU_PH_QBRA, UNSPEC_SHLL, UNSPEC_SHLL_S, UNSPEC_SHRL_QB)
453         (UNSPEC_SHRA_PH, UNSPEC_SHRA_R, UNSPEC_MULEU_S_PH_QBL)
454         (UNSPEC_MULEU_S_PH_QBR, UNSPEC_MULQ_RS_PH, UNSPEC_MULEQ_S_W_PHL)
455         (UNSPEC_MULEQ_S_W_PHR, UNSPEC_DPAU_H_QBL, UNSPEC_DPAU_H_QBR)
456         (UNSPEC_DPSU_H_QBL, UNSPEC_DPSU_H_QBR, UNSPEC_DPAQ_S_W_PH)
457         (UNSPEC_DPSQ_S_W_PH, UNSPEC_MULSAQ_S_W_PH, UNSPEC_DPAQ_SA_L_W)
458         (UNSPEC_DPSQ_SA_L_W, UNSPEC_MAQ_S_W_PHL, UNSPEC_MAQ_S_W_PHR)
459         (UNSPEC_MAQ_SA_W_PHL, UNSPEC_MAQ_SA_W_PHR, UNSPEC_BITREV, UNSPEC_INSV)
460         (UNSPEC_REPL_QB, UNSPEC_REPL_PH, UNSPEC_CMP_EQ, UNSPEC_CMP_LT)
461         (UNSPEC_CMP_LE, UNSPEC_CMPGU_EQ_QB, UNSPEC_CMPGU_LT_QB)
462         (UNSPEC_CMPGU_LE_QB, UNSPEC_PICK, UNSPEC_PACKRL_PH, UNSPEC_EXTR_W)
463         (UNSPEC_EXTR_R_W, UNSPEC_EXTR_RS_W, UNSPEC_EXTR_S_H, UNSPEC_EXTP)
464         (UNSPEC_EXTPDP, UNSPEC_SHILO, UNSPEC_MTHLIP, UNSPEC_WRDSP)
465         (UNSPEC_RDDSP): Moved from mips.md.
466         * config/mips/mips-dspr2.md (UNSPEC_ABSQ_S_QB, UNSPEC_ADDU_PH)
467         (UNSPEC_ADDU_S_PH, UNSPEC_ADDUH_QB, UNSPEC_ADDUH_R_QB, UNSPEC_APPEND)
468         (UNSPEC_BALIGN, UNSPEC_CMPGDU_EQ_QB, UNSPEC_CMPGDU_LT_QB)
469         (UNSPEC_CMPGDU_LE_QB, UNSPEC_DPA_W_PH, UNSPEC_DPS_W_PH, UNSPEC_MADD)
470         (UNSPEC_MADDU, UNSPEC_MSUB, UNSPEC_MSUBU, UNSPEC_MUL_PH)
471         (UNSPEC_MUL_S_PH, UNSPEC_MULQ_RS_W, UNSPEC_MULQ_S_PH, UNSPEC_MULQ_S_W)
472         (UNSPEC_MULSA_W_PH, UNSPEC_MULT, UNSPEC_MULTU, UNSPEC_PRECR_QB_PH)
473         (UNSPEC_PRECR_SRA_PH_W, UNSPEC_PRECR_SRA_R_PH_W, UNSPEC_PREPEND)
474         (UNSPEC_SHRA_QB, UNSPEC_SHRA_R_QB, UNSPEC_SHRL_PH, UNSPEC_SUBU_PH)
475         (UNSPEC_SUBU_S_PH, UNSPEC_SUBUH_QB, UNSPEC_SUBUH_R_QB, UNSPEC_ADDQH_PH)
476         (UNSPEC_ADDQH_R_PH, UNSPEC_ADDQH_W, UNSPEC_ADDQH_R_W, UNSPEC_SUBQH_PH)
477         (UNSPEC_SUBQH_R_PH, UNSPEC_SUBQH_W, UNSPEC_SUBQH_R_W, UNSPEC_DPAX_W_PH)
478         (UNSPEC_DPSX_W_PH, UNSPEC_DPAQX_S_W_PH, UNSPEC_DPAQX_SA_W_PH)
479         (UNSPEC_DPSQX_S_W_PH, UNSPEC_DPSQX_SA_W_PH): Moved from mips.md.
480         * config/mips/mips-ps-3d.md (UNSPEC_MOVE_TF_PS, UNSPEC_C)
481         (UNSPEC_ALNV_PS, UNSPEC_CABS, UNSPEC_ADDR_PS, UNSPEC_CVT_PW_PS)
482         (UNSPEC_CVT_PS_PW, UNSPEC_MULR_PS, UNSPEC_ABS_PS, UNSPEC_RSQRT1)
483         (UNSPEC_RSQRT2, UNSPEC_RECIP1, UNSPEC_RECIP2, UNSPEC_SINGLE_CC)
484         (UNSPEC_SCC): Moved from mips.md.
485         * config/mips/mips.c (mips_arch, mips_tune): Change enum from
486         "processor_type" to "processor".
487         (mips_rtx_cost_data): Replace PROCESSOR_MAX with NUM_PROCESSOR_VALUES.
488         * config/mips/mips.h (processor_type): Delete.
489         (mips_cpu_info.cpu, mips_arch, mips_tune): Change enum from
490         "processor_type" to "processor".
491
492 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
493
494         * configure.ac (tm_include_list): Add insn-constants.h.
495         * configure: Regenerate.
496         * Makefile.in (GTM_H): Move insn-constants.h here from...
497         (TM_H): ...here.
498         * mkconfig.sh: Remove special handling for insn-constants.h.
499
500 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
501
502         * Makefile.in (BUILD_RTL): Move build/read-md.o to...
503         (BUILD_MD): ...this new variable.
504         (simple_generated_rtl_h, simple_generated_rtl_c): New variables
505         that include the old contents of simple_generated_h and
506         simple_generated_c.
507         (simple_generated_h, simple_generated_c): Include them.  Add
508         insn-constants.h.
509         (s-%): Make simple_generated_{h,c} stamps depend on $(MD_DEPS)
510         and simple_generated_rtl_{h,c} stamps depend on insn-conditions.md.
511         Remove these dependencies from the main rule and include
512         insn-conditions.md in the command line only if it appears
513         in the dependency list.
514         (insn-constants.h, s-constants): Delete.
515         (build/genconstants.o): Don't depend on $(RTL_BASE_H), $(GTM_H)
516         or gensupport.h.
517         (build/genmddeps.o): Likewise.
518         (genprogrtl): New variable that contains everything from genprogmd
519         except mddeps and constants.
520         (genprogmd): Redefine in terms of genprogrtl.  Make these programs
521         depend on $(BUILD_MD)
522         (genprog): New variable.  Make these programs depend on
523         $(BUILD_ERRORS).
524         * genmddeps.c: Don't include tm.h, rtl.h or gensupport.h.
525         (main): Use read_md_files instead of init_rtx_reader_args.
526         * genconstants.c: As for genmddeps.c.
527         * read-md.h (read_skip_construct): Declare.
528         * read-md.c (read_skip_construct): New function.
529         (handle_file): Allow a null handle_directive, skipping the
530         construct if so.
531         (parse_include): Update the comment accordingly.
532
533 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
534
535         * Makefile.in (build/genmddeps.o): Depend on $(READ_MD_H).
536         * genmddeps.c: Include read-md.h.
537         (main): Call init_rtx_reader_args instead of init_md_reader_args.
538         * genattr.c (main): Likewise.
539         * genattrtab.c (main): Likewise.
540         * genautomata.c (main): Likewise.
541         * gencodes.c (main): Likewise.
542         * genconditions.c (main): Likewise.
543         * genconfig.c (main): Likewise.
544         * genconstants.c (main): Likewise.
545         * genemit.c (main): Likewise.
546         * genextract.c (main): Likewise.
547         * genflags.c (main): Likewise.
548         * genopinit.c (main): Likewise.
549         * genoutput.c (main): Likewise.
550         * genpeep.c (main): Likewise.
551         * genrecog.c (main): Likewise.
552         * genpreds.c (main): Likewise.
553         * gensupport.h (in_fname): Move to read-md.h.
554         (init_md_reader_args_cb): Rename to...
555         (init_rtx_reader_args_cb): ...this and return a bool.
556         (init_md_reader_args): Rename to...
557         (init_rtx_reader_args): ...this and return a bool.
558         (include_callback): Move to read-md.h.
559         * gensupport.c (in_fname, include_callback, base_dir, max_include_len)
560         (file_name_list, first_dir_md_include): Move to read-md.c
561         (first_bracket_include): Delete unused variable.
562         (last_dir_md_include): Move to read-md.c.
563         (process_include): Delete, moving code to read-md.c:handle_include.
564         (process_rtx): Don't handle INCLUDE.
565         (save_string): Delete.
566         (rtx_handle_directive): New function.
567         (init_md_reader_args_cb): Rename to...
568         (init_rtx_reader_args_cb): ...this and return a boolean success value.
569         Use read_md_args.
570         (init_md_reader_args): Rename to...
571         (init_rtx_reader_args): ...this and return a boolean success value.
572         * rtl.def (INCLUDE): Delete.
573         * rtl.h (read_rtx): Remove "int *" argument.  Add "const char *"
574         argument.
575         * read-rtl.c (read_conditions): Don't gobble ')' here.
576         (read_mapping): Likewise.
577         (read_rtx): Remove LINENO argument.  Add RTX_NAME argument.
578         Handle top-level non-rtx constructs here rather than in read_rtx_1.
579         Store the whole queue in *X.  Remove call to init_md_reader.
580         (read_rtx_1): Rename to...
581         (read_rtx_code): ...this.  Call read_nested_rtx to read subrtxes.
582         Don't handle top-level non-rtx constructs here.  Don't handle (nil)
583         here.
584         (read_nested_rtx): New function.  Handle (nil) here rather than
585         in read_rtx_code.
586         (read_rtx_variadic): Call read_nested_rtx to read subrtxes.  Don't
587         gobble ')' here.
588         * read-md.h (directive_handler_t): New type.
589         (in_fname, include_callback): Moved from read-md.h.
590         (read_constants, init_md_reader): Delete.
591         (read_md_files): Declare.
592         * read-md.c (file_name_list, in_fname, base_dir, first_dir_md_include)
593         (last_dir_md_include_ptr, include_callback, max_include_len): Moved
594         from gensupport.c.
595         (read_constants): Rename to...
596         (handle_constants): ...this.  Don't gobble ')' here.
597         (handle_include, handle_file, handle_toplevel_file)
598         (parse_include): New functions, mostly taken from gensupport.c.
599         (init_md_reader): Subsume into...
600         (read_md_files): ...this new function.
601
602 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
603
604         * read-md.h (read_char): Increment read_md_lineno after reading '\n'.
605         (unread_char): Decrement read_md_lineno after putting back '\n'.
606         * read-md.c (fatal_with_file_and_line): Push back any characters
607         that we decide not to add to the context.
608         (read_skip_spaces): Don't increment read_md_lineno here.  Avoid using
609         fatal_expected_char in cases where '/' ends a line (for example).
610         (read_name): Don't increment read_md_lineno here.
611         (read_escape): Likewise.
612         (read_quoted_string): Likewise.
613         (read_braced_string): Likewise.
614
615 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
616
617         * Makefile.in (READ_MD_H): Add $(HASHTAB_H).
618         (build/genconstants.o): Depend on $(READ_MD_H) gensupport.h.
619         * genconstants.c: Include read-md.h.
620         * read-rtl.c (md_constants): Move to read-md.c.
621         (md_name): Move to read-md.h.
622         (initialize_iterators): Use leading_string_hash instead of def_hash
623         and leading_string_eq_p instead of def_name_eq_p.
624         (read_name): Move to read-md.c.
625         (def_hash, def_name_eq_p): Delete.
626         (read_constants, traverse_md_constants): Move to read-md.c.
627         * rtl.h (md_constant, traverse_md_constants): Move to read-md.h.
628         * read-md.h: Include hashtab.h.
629         (md_name): Moved from read-rtl.c.
630         (md_constant): Moved from read-md.h.
631         (leading_string_hash, leading_string_eq_p, read_name)
632         (read_constants, traverse_md_constants): Declare.
633         * read-md.c (md_constants): Moved from read-rtl.c.
634         (leading_string_hash, leading_string_eq_p): New functions.
635         (read_name, read_constants, traverse_md_constants): Moved from
636         read-rtl.c.
637
638 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
639
640         * read-rtl.c (md_name): New structure.
641         (read_name): Take an md_name instead of a buffer pointer.
642         Use the "string" field instead of strcpy when expanding constants.
643         (read_constants): Remove the tmp_char argument.  Update the calls
644         to read_name, using two local name buffers instead of the tmp_char
645         argument.  Merge the constant-creation code.
646         (read_conditions): Remove the tmp_char argument.  Update the calls
647         to read_name, using a local name buffer instead of the tmp_char
648         argument.
649         (read_mapping): Replace tmp_char variable with a local name buffer.
650         Update the calls to read_name.
651         (read_rtx_1): Likewise.  Update the calls to read_constants and
652         read_conditions.
653
654 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
655
656         * Makefile.in (build/read-md.o): Depend on errors.h.
657         * read-md.h (error_with_line): Declare.
658         * read-md.c: Include errors.h.
659         (message_with_line_1): New function, extracted from...
660         (message_with_line): ...here.
661         (error_with_line): New function.
662         * genattrtab.c: If a call to message_with_line is followed by
663         "have_error = 1;", replace both statements with a call to
664         error_with_line.
665         * genoutput.c: Likewise.
666         * genpreds.c: Likewise.
667         * genrecog.c: If a call to message_with_line is followed by
668         "error_count++;", replace both statements with a call to
669         error_with_line.
670         (errorcount): Delete.
671         (main): Don't check it.
672         * gensupport.c: If a call to message_with_line is followed by
673         "errors = 1;", replace both statements with a call to error_with_line.
674         (errors): Delete.
675         (process_define_cond_exec): Check have_error instead of errors.
676         (init_md_reader_args_cb): Likewise.  Don't set errors.
677
678 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
679
680         * read-md.h (read_md_file): Declare.
681         (read_char, unread_char): New functions.
682         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
683         (read_quoted_string, read_string): Remove FILE * argument.
684         * read-md.c (read_md_file): New variable.
685         (read_md_filename, read_md_lineno): Update comments and remove
686         unnecessary initialization.
687         (fatal_with_file_and_line, fatal_expected_char, read_skip_spaces)
688         (read_escape, read_quoted_string, read_braced_string, read_string):
689         Remove FILE * argument.  Update calls accordingly, using read_char
690         and unread_char instead of getc and ungetc.
691         * rtl.h (read_rtx): Remove FILE * argument.
692         * read-rtl.c (iterator_group): Remove FILE * argument from
693         "find_builtin".
694         (iterator_traverse_data): Remove "infile" field.
695         (find_mode, find_code, apply_mode_maps, apply_iterator_to_rtx)
696         (add_mapping, read_name, read_constants, read_conditions)
697         (validate_const_int, find_iterator, read_mapping, check_code_iterator)
698         (read_rtx, read_rtx_1, read_rtx_variadic): Remove FILE * argument.
699         Remove file arguments from all calls, using read_char and unread_char
700         instead of getc and ungetc.
701         * gensupport.c (process_include): Preserve read_md_file around
702         the include.  Set read_md_file to the handle of the included file.
703         Update call to read_rtx.
704         (init_md_reader_args_cb): Set read_md_file to the handle of the file
705         and remove local FILE *.  Update calls to read_rtx.
706
707 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
708
709         * read-md.h (read_rtx_lineno): Rename to...
710         (read_md_lineno): ...this.
711         (read_rtx_filename): Rename to...
712         (read_md_filename): ...this.
713         (copy_rtx_ptr_loc): Rename to...
714         (copy_md_ptr_loc): ...this.
715         (print_rtx_ptr_loc): Rename to...
716         (print_md_ptr_loc): ...this.
717         * read-md.c: Likewise.  Update references after renaming.
718         (string_obstack): Replace RTL with MD in comment.
719         (set_rtx_ptr_loc): Rename to...
720         (set_md_ptr_loc): ...this.
721         (get_rtx_ptr_loc): Rename to...
722         (get_md_ptr_loc): ...this.
723         * genconditions.c: Update references after renaming.
724         * genemit.c: Likewise.
725         * genoutput.c: Likewise.
726         * genpreds.c: Likewise.
727         * gensupport.c: Likewise.
728         * read-rtl.c: Likewise.
729
730 2010-06-10  Richard Sandiford  <rdsandiford@googlemail.com>
731
732         * Makefile.in (READ_MD_H): New variable.
733         (BUILD_RTL): Add build/read-md.o.
734         (lto-wrapper.o): Depend on coretypes.h instead of defaults.h.
735         (build/gensupport.o, build/read-rtl.o, build/genattr.o)
736         (build/genattrtab.o, build/genconditions.o build/genemit.o)
737         (build/genextract.o, build/genflags.o, build/genoutput.o)
738         (build/genpreds.o, build/genrecog.o): Depend on $(READ_MD_H).
739         (build/read-md.o): New rule.
740         * defaults.h (obstack_chunk_alloc, obstack_chunk_free)
741         (OBSTACK_CHUNK_SIZE, gcc_obstack_init): Move to...
742         * coretypes.h: ...here.
743         * lto-wrapper.c: Include coretypes.h instead of defaults.h.
744         * pretty-print.c (obstack_chunk_alloc, obstack_chunk_free): Delete.
745         * genattr.c: Include read-md.h.
746         * genattrtab.c: Likewise.
747         * genconditions.c: Likewise.
748         * genemit.c: Likewise.
749         * genextract.c: Likewise.
750         * genflags.c: Likewise.
751         * genoutput.c: Likewise.
752         * genpreds.c: Likewise.
753         * genrecog.c: Likewise.
754         * rtl.h (read_skip_spaces, copy_rtx_ptr_loc, print_rtx_ptr_loc)
755         (join_c_conditions, print_c_condition, read_rtx_filename)
756         (read_rtx_lineno): Move to read-md.h.
757         * read-rtl.c: Include read-md.h.
758         (ptr_loc, string_obstack, ptr_locs, ptr_loc_obstack)
759         (joined_conditions, joined_conditions_obstack, read_rtx_lineno)
760         (read_rtx_filename, fatal_with_file_and_line, fatal_expected_char)
761         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc, get_rtx_ptr_loc)
762         (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
763         (print_c_condition, read_skip_spaces, read_escape, read_quoted_string)
764         (read_braced_string, read_string): Move to read-md.c.
765         (read_rtx): Move some initialization to init_md_reader and call
766         init_md_reader here.
767         * gensupport.h (message_with_line, n_comma_elts, scan_comma_elt):
768         Move to read-md.h.
769         * gensupport.c: Include read-md.h.
770         (message_with_line, n_comma_elts, scan_comma_elt): Move to read-md.c.
771         * read-md.h, read-md.c: New files.
772
773 2010-06-10  Anatoly Sokolov  <aesok@post.ru>
774
775         * config/moxie/moxie.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
776         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
777         * config/moxie/moxie-protos.h (moxie_function_value): Remove.
778         * config/moxie/moxie.c (moxie_function_value): Make static.
779         (moxie_libcall_value, moxie_function_value_regno_p): New functions.
780         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
781
782 2010-06-10  Martin Jambor  <mjambor@suse.cz>
783
784         * Makefile.in (tree-sra.o): Add DBGCNT_H to dependencies.
785         * dbgcnt.def (tree_sra): New counter.
786         * tree-sra.c: Include dbgcnt.h.
787         (gate_intra_sra): Check tree_sra debug counter.
788
789 2010-06-10  Martin Jambor  <mjambor@suse.cz>
790
791         PR tree-optimization/44258
792         * tree-sra.c (build_access_subtree): Return false iff there is a
793         partial overlap.
794         (build_access_trees): Likewise.
795         (analyze_all_variable_accesses): Disqualify candidates if
796         build_access_trees returns true for them.
797
798 2010-06-10  Alexandre Oliva  <aoliva@redhat.com>
799
800         PR debug/41371
801         * var-tracking.c (find_loc_in_1pdv): Remove recursion, only
802         tail-recurse into canonical node.  Fast-forward over
803         non-canonical VALUEs.
804
805 2010-06-10  H.J. Lu  <hongjiu.lu@intel.com>
806
807         PR boostrap/44470
808         * config/i386/i386.md (*add<mode>_1): Revert revision 160394.
809         (*addsi_1_zext) <TYPE_LEA>: Likewise.
810         (add lea splitter): Likewise.
811         (add_zext lea splitter): Likewise.
812
813 2010-06-10  Joseph Myers  <joseph@codesourcery.com>
814
815         * common.opt (fshow-column): Don't mark as C ObjC C++ ObjC++.
816
817 2010-06-10  Jan Hubicka  <jh@suse.cz>
818
819         * df-problems.c (df_live_problem_data): Add live_bitmaps.
820         (df_live_alloc): Initialize problem data and live_osbtacks.
821         (df_live_finalize): Remove obstack, problem data; do not
822         clear all bitmaps.
823         (df_live_top_dump, df_live_bottom_dump): Do not dump old
824         data when not allocated.
825         (df_live_verify_solution_start): Do not allocate problem data.
826         (df_live_verify_solution_end): Check if out is allocated.
827         (struct df_md_problem_data): New structure.
828         (df_md_alloc): Allocate problem data.
829         (df_md_free): Free problem data; do not clear bitmaps.
830
831 2010-06-10  Jan Beulich  <jbeulich@novell.com>
832
833         PR bootstrap/37304
834         * configure.ac: Replace $() with ${} when intending to expand
835         variables rather than invoking commands.
836         * configure: Re-generate.
837
838 2010-06-10  Jan Hubicka  <jh@suse.cz>
839
840         PR rtl-optimization/44460
841         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
842         TYPE_NEEDS_CONSTRUCTING sanity check.
843
844 2010-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
845
846         * doc/include/fdl.texi: Move to GFDL version 1.3.
847
848         * doc/cpp.texi: Move to GFDL version 1.3.
849         * doc/gcc.texi: Move to GFDL version 1.3.  Fix copyright years.
850         * doc/gccint.texi: Move to GFDL version 1.3.
851         * doc/gcov.texi: Move to GFDL version 1.3.  Update copyright years.
852         * doc/install.texi: Move to GFDL version 1.3.  Fix copyright years.
853         * doc/invoke.texi: Move to GFDL version 1.3.
854
855 2010-06-09  Jan Hubicka  <jh@suse.cz>
856
857         * ipa-pure-const.c (propagate_pure_const, propagate_noreturn):
858         Break out from ...
859         (propagate) ... here; swap the order.
860
861 2010-06-09  Jan Hubicka  <jh@suse.cz>
862
863         * bitmap.c (bitmap_elt_insert_after, bitmap_first_set_bit,
864         bitmap_first_set_bit, bitmap_last_set_bit, bitmap_last_set_bit,
865         bitmap_and_into, bitmap_and_compl_into, bitmap_set_range,
866         bitmap_compl_and_into, bitmap_elt_ior): Use checking asserts.
867
868 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
869
870         * tree-ssa-loop-prefetch.c (gather_memory_references_ref):
871         Do not the gather memory reference in the outer loop if the step
872         is not a constant.
873
874 2010-06-09  Changpeng Fang  <changpeng.fang@amd.com>
875
876         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO) :
877         Change the PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO threshold value from
878         8 to 4.  Minor change of the related comments.
879
880 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
881
882         * tree-scalar-evolution.c (instantiate_scev_name): Do not fail
883         the scev analysis when the variable is not used outside the loop
884         in a close phi node: call compute_overall_effect_of_inner_loop.
885
886 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
887
888         * graphite-sese-to-poly.c (single_pred_cond): Renamed
889         single_pred_cond_non_loop_exit.  Return NULL for loop exit edges.
890         (build_sese_conditions_before): Renamed call to single_pred_cond.
891         (build_sese_conditions_after): Same.
892
893 2010-06-09  Sebastian Pop  <sebastian.pop@amd.com>
894
895         * graphite-poly.h: Fix comments and indentation.
896         * graphite-sese-to-poly.c: Same.
897         (build_sese_conditions_before): Compute stmt and gbb only when needed.
898         * tree-chrec.c: Fix comments and indentation.
899         (tree-ssa-loop-niter.c): Same.
900
901 2010-06-09  Eric Botcazou  <ebotcazou@adacore.com>
902
903         PR rtl-optimization/42461
904         * dce.c (deletable_insn_p): Return true for const or pure calls again.
905         * except.c (insn_could_throw_p): Return false if !flag_exceptions.
906
907 2010-06-09  Jan Hubicka  <jh@suse.cz>
908
909         * bitmap.c (bitmap_and): Walk array forward.
910         (bitmap_and_compl_into): Likewise.
911         (bitmap_xor): Likewise.
912         (bitmap_xor_into):  Likewise.
913         (bitmap_equal_p): Likewise.
914         (bitmap_intersect_p): Likewise.
915         (bitmap_intersect_compl_p): Likewise.
916         (bitmap_ior_and_into): Likewise.
917         (bitmap_elt_copy): Likewise.
918         (bitmap_and_compl): Likewise.
919         (bitmap_elt_ior): Likewise.
920
921 2010-06-09  Dave Korn  <dave.korn.cygwin@gmail.com>
922
923         * opts-common.c (prune_options): Ensure replacement argv array
924         is correctly terminated by a NULL entry.
925
926 2010-06-09  Jan Hubicka  <jh@suse.cz>
927
928         * cgraph.h (varpool_first_static_initializer,
929         varpool_next_static_initializer): Make checking only when
930         checking enabled.
931         * tree-vectorizer.h (vinfo_for_stmt): Remove check.
932         (set_vinfo_for_stmt, get_earlier_stmt, is_loop_header_bb_p): Change
933         gcc_assert to gcc_checking_assert.
934         * tree-flow-inline.h (gimple_vop, get_var_ann, relink_imm_use,
935         phi_nodes, set_phi_nodes, phi_arg_index_from_use, op_iter_next_use,
936         op_iter_next_def, op_iter_next_tree, op_iter_init, op_iter_init_use,
937         op_iter_init_phiuse, op_iter_init_phidef,
938         array_ref_contains_indirect_ref, ref_contains_array_ref): Use
939         gcc_checking_assert.
940         * emit-rtl.h (set_first_insn, set_last_insn): Likewise.
941         * tree-ssa-live.h (var_to_partition, var_to_partition_to_var,
942         partition_is_global, live_on_entry, live_on_exit,
943         live_merge_and_clear): Likewise.
944         * system.h (gcc_checking_assert): New macro.
945         * gimple.h (set_bb_seq): Use gcc_checking_assert.
946
947 2010-06-09  Jason Merrill  <jason@redhat.com>
948
949         * Makefile.in (TAGS): Collect tags info from c-family.
950
951 2010-06-09  Jan Hubicka  <jh@suse.cz>
952
953         * gimple.h (gcc_gimple_checking_assert): New macro.
954         (gimple_set_def_ops, gimple_set_use_ops,
955         gimple_set_vuse, gimple_set_vdef,
956         gimple_omp_subcode, gimple_omp_set_subcode, gimple_ops, gimple_op,
957         gimple_op_ptr, gimple_op_ptr, gimple_set_op, gimple_bind_set_block,
958         gimple_asm_input_op, gimple_asm_input_op_ptr, gimple_asm_set_input_op,
959         gimple_asm_output_op, gimple_asm_output_op_ptr,
960         gimple_asm_set_output_op, gimple_asm_clobber_op,
961         gimple_asm_set_clobber_op, gimple_asm_label_op,
962         gimple_asm_set_label_op, gimple_try_set_kind,
963         gimple_try_catch_is_cleanup, gimple_try_set_catch_is_cleanup,
964         gimple_phi_arg, gimple_switch_num_labels, gimple_switch_set_index,
965         gimple_switch_label, gimple_switch_set_label, gimple_omp_for_index,
966         gimple_omp_for_index_ptr, gimple_omp_for_set_index,
967         gimple_omp_for_initial, gimple_omp_for_initial_ptr,
968         gimple_omp_for_set_initial, gimple_omp_for_final,
969         gimple_omp_for_final_ptr, gimple_omp_for_set_final,
970         gimple_omp_for_incr, gimple_omp_for_incr_ptr, gimple_omp_for_set_incr,
971         gimple_omp_for_set_cond, gimple_omp_for_cond): Make checking
972         conditional with ENABLE_GIMPLE_CHECKING.
973         (gimple_phi_set_arg): Likewise; replace memcpy by assignment.
974
975 2010-06-09  Sandra Loosemore  <sandra@codesourcery.com>
976
977         * tree-ssa-loop-ivopts.c (adjust_setup_cost): New function.
978         (get_computation_cost_at): Use it.
979         (determine_use_iv_cost_condition): Likewise.
980         (determine_iv_cost): Likewise.
981
982 2010-06-09  Richard Guenther  <rguenther@suse.de>
983
984         * tree-ssa-loop-niter.c (simplify_replace_tree): Do not
985         replace constants.
986
987 2010-06-09  Kai Tietz  <kai.tietz@onevision.com>
988
989         * c-objc-common.c (c_tree_printer): Pre-intialize t by NULL_TREE.
990
991 2010-06-09  Martin Jambor  <mjambor@suse.cz>
992
993         PR tree-optimization/44423
994         * tree-sra.c (dump_access): Dump also grp_assignment_read.
995         (analyze_access_subtree): Pass negative allow_replacements to children
996         if the current type is scalar.
997
998 2010-06-09  Joern Rennecke  <amylaar@spamcop.net>
999
1000         PR testsuite/42843
1001         * gcc-plugin.h (int plugin_is_GPL_compatible): Declare as extern "C".
1002         * doc/plugins.texi (Plugin license check): Update information
1003         on type of plugin_is_GPL_compatible.
1004         * Makefile.in (PLUGINCC): Define as $(COMPILER).
1005         (PLUGINCFLAGS): Define as $(COMPILER_FLAGS).
1006
1007 2010-06-09  Bernd Schmidt  <bernds@codesourcery.com>
1008
1009         * config/arm/arm.c (thumb2_reorg): New function.
1010         (arm_reorg): Call it.
1011         * config/arm/thumb2.md (define_peephole2 for flag clobbering
1012         arithmetic operations): Delete.
1013
1014 2010-06-09  Edmar Wienskoski  <edmar@freescale.com>
1015
1016         PR target/44067
1017         * config/rs6000/rs6000.md (DIFD): Do not split dpfp values for
1018         e500v2 target.
1019
1020 2010-06-09  Joern Rennecke  <joern.rennecke@embecosm.com>
1021
1022         PR plugins/44459
1023         * gcc-plugin.h: Encapsulate all declarations in extern "C".
1024
1025 2010-06-08  Jan Hubicka  <jh@suse.cz>
1026
1027         * basic-block.h (single_succ_edge, single_pred_edge, ei_container,
1028         ei_next, ei_prev): Do sanity checking with ENABLE_CHECKING only.
1029
1030 2010-06-08  Sandra Loosemore  <sandra@codesourcery.com>
1031
1032         PR tree-optimization/39874
1033         PR middle-end/28685
1034         * gimple.h (maybe_fold_and_comparisons, maybe_fold_or_comparisons):
1035         Declare.
1036         * gimple-fold.c (canonicalize_bool, same_bool_comparison_p,
1037         same_bool_result_p): New.
1038         (and_var_with_comparison, and_var_with_comparison_1,
1039         and_comparisons_1, and_comparisons, maybe_fold_and_comparisons): New.
1040         (or_var_with_comparison, or_var_with_comparison_1,
1041         or_comparisons_1, or_comparisons, maybe_fold_or_comparisons): New.
1042         * tree-ssa-reassoc.c (eliminate_redundant_comparison): Use
1043         maybe_fold_and_comparisons or maybe_fold_or_comparisons instead
1044         of combine_comparisons.
1045         * tree-ssa-ifcombine.c (ifcombine_ifandif, ifcombine_iforif): Likewise.
1046
1047 2010-06-08  Anatoly Sokolov  <aesok@post.ru>
1048
1049         * config/pdp11/pdp11.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
1050         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1051         * config/pdp11/pdp11.c (pdp11_function_value, pdp11_libcall_value,
1052         pdp11_function_value_regno_p): New functions.
1053         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
1054         TARGET_FUNCTION_VALUE_REGNO_P): Define.
1055
1056 2010-06-08  Kazu Hirata  <kazu@codesourcery.com>
1057
1058         * config/arm/arm.c (arm_rtx_costs_1): Don't special case for
1059         Thumb-2 in the MINUS case.
1060
1061 2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
1062
1063         * doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
1064
1065         * doc/gty.texi (GTY Options): Document typed GC allocation and
1066         variable_size GTY option.
1067
1068         * ggc-internal.h: New.
1069
1070         * ggc.h: Update copyright year.
1071         (digit_string): Move to stringpool.c.
1072         (ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
1073         (gt_pch_save_stringpool, gt_pch_fixup_stringpool)
1074         (gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
1075         (init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
1076         (ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
1077         (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
1078         (ggc_force_collect, ggc_get_size, ggc_statistics)
1079         (ggc_print_common_statistics): Move to ggc-internal.h.
1080         (digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
1081         (ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
1082         (GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
1083         (ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
1084         (ggc_min_heapsize_heuristic, ggc_alloc_zone)
1085         (ggc_alloc_zone_pass_stat): Remove.
1086         (ggc_internal_alloc_stat, ggc_internal_alloc)
1087         (ggc_internal_cleared_alloc_stat): New.
1088         (GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
1089         (ggc_internal_vec_alloc_stat)
1090         (ggc_internal_cleared_vec_alloc_stat)
1091         (ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
1092         (ggc_alloc_atomic_stat, ggc_alloc_atomic)
1093         (ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
1094         (ggc_cleared_alloc_ptr_array_two_args): New.
1095         (htab_create_ggc, splay_tree_new_ggc): Redefine.
1096         (ggc_splay_alloc): Change the type of the first argument to
1097         enum gt_types_enum.
1098         (ggc_alloc_string): Make macro.
1099         (ggc_alloc_string_stat): New.
1100         (ggc_strdup): Redefine.
1101         (rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
1102         (ggc_alloc_rtvec_sized): New.
1103         (ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
1104         (ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
1105         (ggc_internal_cleared_alloc_zone_stat)
1106         (ggc_internal_zone_alloc_stat)
1107         (ggc_internal_zone_cleared_alloc_stat)
1108         (ggc_internal_zone_vec_alloc_stat)
1109         (ggc_alloc_zone_rtx_def_stat)
1110         (ggc_alloc_zone_tree_node_stat)
1111         (ggc_alloc_zone_cleared_tree_node_stat)
1112         (ggc_alloc_cleared_gimple_statement_d_stat): New.
1113
1114         * ggc-common.c: Include ggc-internal.h.
1115         (ggc_internal_cleared_alloc_stat): Rename from
1116         ggc_alloc_cleared_stat.
1117         (ggc_realloc_stat): Use ggc_internal_alloc_stat.
1118         (ggc_calloc): Remove.
1119         (ggc_cleared_alloc_htab_ignore_args): New.
1120         (ggc_cleared_alloc_ptr_array_two_args): New.
1121         (ggc_splay_alloc): Add obj_type parameter.
1122         (init_ggc_heuristics): Formatting fixes.
1123
1124         * ggc-none.c: Update copyright year.
1125         (ggc_alloc_stat): Rename to ggc_alloc_stat.
1126         (ggc_alloc_cleared_stat): Rename to
1127         ggc_internal_cleared_alloc_stat.
1128         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
1129
1130         * ggc-page.c: Update copyright year.  Include ggc-internal.h.
1131         Remove references to ggc_alloc in comments.
1132         (ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
1133         (ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
1134         (new_ggc_zone, destroy_ggc_zone): Remove.
1135         (struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
1136
1137         * ggc-zone.c: Include ggc-internal.h.  Remove references to
1138         ggc_alloc in comments.
1139         (ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
1140         (ggc_internal_alloc_zone_pass_stat): New.
1141         (ggc_internal_cleared_alloc_zone_stat): New.
1142         (ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
1143         (ggc_alloc_stat): Rename ggc_internal_alloc_stat.
1144         (new_ggc_zone, destroy_ggc_zone): Remove.
1145
1146         * stringpool.c: Update copyright year.  Include ggc-internal.h
1147         (digit_vector): Make static.
1148         (digit_string): Moved from ggc.h.
1149         (stringpool_ggc_alloc): Use ggc_alloc_atomic.
1150         (ggc_alloc_string): Rename to ggc_alloc_string_stat.
1151
1152         * Makefile.in (GGC_INTERNAL_H): New.
1153         (ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
1154         $(GGC_INTERNAL_H) to dependencies.
1155
1156         * gentype.c: Update copyright year.
1157         (walk_type): Accept variable_size GTY option.
1158         (USED_BY_TYPED_GC_P): New macro.
1159         (write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
1160         whitespace at the end of strings.
1161         (get_type_specifier, variable_size_p): New functions.
1162         (alloc_quantity, alloc_zone): New enums.
1163         (write_typed_alloc_def): New function.
1164         (write_typed_struct_alloc_def): Likewise.
1165         (write_typed_typed_typedef_alloc_def): Likewise.
1166         (write_typed_alloc_defns): Likewise.
1167         (output_typename, write_splay_tree_allocator_def): Likewise.
1168         (write_splay_tree_allocators): Likewise.
1169         (main): Call write_typed_alloc_defns and
1170         write_splay_tree_allocators.
1171
1172         * lto-streamer.h (lto_file_decl_data_ptr): New.
1173
1174         * passes.c (order): Define using cgraph_node_ptr.
1175
1176         * strinpool.c (struct string_pool_data): Declare nested_ptr using
1177         ht_identifier_ptr.
1178
1179         * gimple.h (union gimple_statement_d): Likewise.
1180
1181         * rtl.h (struct rtx_def): Likewise.
1182         (struct rtvec_def): Likewise.
1183
1184         * tree.h (union tree_node): Likewise.
1185
1186         * tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
1187
1188         * cfgloop.c (record_loop_exits): Use htab_create_ggc.
1189
1190         * tree-scalar-evolution.c (scev_initialize): Likewise.
1191
1192         * alias.c (record_alias_subset): Update splay_tree_new_ggc call.
1193
1194         * dwarf2asm.c (dw2_force_const_mem): Likewise.
1195
1196         * omp-low.c (lower_omp_critical): Likewise.
1197
1198         * bitmap.h (struct bitmap_head_def): Update comment to not
1199         reference ggc_alloc.
1200
1201         * config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
1202
1203         * ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
1204
1205         * ipa-prop.c (duplicate_ggc_array): Rename to
1206         duplicate_ipa_jump_func_array.  Use typed GC allocation.
1207         (ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
1208
1209         * gimple.c (gimple_alloc_stat): Use
1210         ggc_alloc_cleared_gimple_statement_d_stat.
1211
1212         * varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
1213
1214         * tree.c (make_node_stat): Use
1215         ggc_alloc_zone_cleared_tree_node_stat.
1216         (make_tree_vec_stat): Likewise.
1217         (build_vl_exp_stat): Likewise.
1218         (copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
1219         (make_tree_binfo_stat): Likewise.
1220         (tree_cons_stat): Likewise.
1221
1222         * rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
1223         (shallow_copy_rtx_stat): Likewise.
1224         (make_node_stat): Likewise.
1225
1226         * lto-symtab.c: Fix comment.
1227
1228         * tree-cfg.c (create_bb): Update comment to not reference
1229         ggc_alloc_cleared.
1230         * tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is value.
1231
1232         * varpool.c (varpool_node): Use typed GC allocation.
1233         (varpool_extra_name_alias): Likewise.
1234
1235         * varasm.c (emutls_decl): Likewise.
1236         (get_unnamed_section): Likewise.
1237         (get_noswitch_section): Likewise.
1238         (get_section): Likewise.
1239         (get_block_for_section): Likewise.
1240         (build_constant_desc): Likewise.
1241         (create_constant_pool): Likewise.
1242         (force_const_mem): Likewise.
1243
1244         * tree.c (build_vl_exp_stat): Likewise.
1245         (build_real): Likewise.
1246         (build_string): Likewise.
1247         (decl_debug_expr_insert): Likewise.
1248         (decl_value_expr_insert): Likewise.
1249         (type_hash_add): Likewise.
1250         (build_omp_clause): Likewise.
1251
1252         * tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
1253
1254         * tree-ssa.c (init_tree_ssa): Likewise.
1255
1256         * tree-ssa-structalias.c (heapvar_insert): Likewise.
1257
1258         * tree-ssa-operands.c (ssa_operand_alloc): Likewise.
1259
1260         * tree-ssa-loop-niter.c (record_estimate): Likewise.
1261
1262         * tree-ssa-alias.c (get_ptr_info): Likewise.
1263
1264         * tree-scalar-evolution.c (new_scev_info_str): Likewise.
1265
1266         * tree-phinodes.c (allocate_phi_node): Likewise.
1267
1268         * tree-iterator.c (tsi_link_before): Likewise.
1269         (tsi_link_after): Likewise.
1270
1271         * tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
1272
1273         * tree-dfa.c (create_var_ann): Likewise.
1274
1275         * tree-cfg.c (create_bb): Likewise.
1276
1277         * toplev.c (alloc_for_identifier_to_locale): Likewise.
1278         (general_init): Likewise.
1279
1280         * stringpool.c (stringpool_ggc_alloc): Likewise.
1281         (gt_pch_save_stringpool): Likewise.
1282
1283         * sese.c (if_region_set_false_region): Likewise.
1284
1285         * passes.c (do_per_function_toporder): Likewise.
1286
1287         * optabs.c (set_optab_libfunc): Likewise.
1288         (set_conv_libfunc): Likewise.
1289
1290         * lto-symtab.c (lto_symtab_register_decl): Likewise.
1291
1292         * lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
1293         (input_eh_region): Likewise.
1294         (input_eh_lp): Likewise.
1295         (make_new_block): Likewise.
1296         (unpack_ts_real_cst_value_fields): Likewise.
1297
1298         * lto-section-in.c (lto_new_in_decl_state): Likewise.
1299
1300         * lto-cgraph.c (input_node_opt_summary): Likewise.
1301
1302         * loop-init.c (loop_optimizer_init): Likewise.
1303
1304         * lambda.h (lambda_vector_new): Likewise.
1305
1306         * lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
1307
1308         * ira.c (update_equiv_regs): Likewise.
1309
1310         * ipa.c (cgraph_node_set_new): Likewise.
1311         (cgraph_node_set_add): Likewise.
1312         (varpool_node_set_new): Likewise.
1313         (varpool_node_set_add): Likewise.
1314
1315         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
1316         (duplicate_ipa_jump_func_array): Likewise.
1317         (ipa_read_node_info): Likewise.
1318
1319         * ipa-cp.c (ipcp_create_replace_map): Likewise.
1320
1321         * integrate.c (get_hard_reg_initial_val): Likewise.
1322
1323         * gimple.c (gimple_alloc_stat): Likewise.
1324         (gimple_build_omp_for): Likewise.
1325         (gimple_seq_alloc): Likewise.
1326         (gimple_copy): Likewise.
1327
1328         * gimple-iterator.c (gsi_insert_before_without_update): Likewise.
1329         (gsi_insert_after_without_update): Likewise.
1330
1331         * function.c (add_frame_space): Likewise.
1332         (insert_temp_slot_address): Likewise.
1333         (assign_stack_temp_for_type): Likewise.
1334         (allocate_struct_function): Likewise.
1335         (types_used_by_var_decl_insert): Likewise.
1336
1337         * except.c (init_eh_for_function): Likewise.
1338         (gen_eh_region): Likewise.
1339         (gen_eh_region_catch): Likewise.
1340         (gen_eh_landing_pad): Likewise.
1341         (add_call_site): Likewise.
1342
1343         * emit-rtl.c (get_mem_attrs): Likewise.
1344         (get_reg_attrs): Likewise.
1345         (start_sequence): Likewise.
1346         (init_emit): Likewise.
1347
1348         * dwarf2out.c (new_cfi): Likewise.
1349         (queue_reg_save): Likewise.
1350         (dwarf2out_frame_init): Likewise.
1351         (new_loc_descr): Likewise.
1352         (find_AT_string): Likewise.
1353         (new_die): Likewise.
1354         (add_var_loc_to_decl): Likewise.
1355         (clone_die): Likewise.
1356         (clone_as_declaration): Likewise.
1357         (break_out_comdat_types): Likewise.
1358         (new_loc_list): Likewise.
1359         (loc_descriptor): Likewise.
1360         (add_loc_descr_to_each): Likewise.
1361         (add_const_value_attribute): Likewise.
1362         (tree_add_const_value_attribute): Likewise.
1363         (add_comp_dir_attribute): Likewise.
1364         (add_name_and_src_coords_attributes): Likewise.
1365         (lookup_filename): Likewise.
1366         (store_vcall_insn): Likewise.
1367         (dwarf2out_init): Likewise.
1368
1369         * dbxout.c (dbxout_init): Likewise.
1370
1371         * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
1372
1373         * config/sparc/sparc.c (sparc_init_machine_status): Likewise.
1374
1375         * config/score/score7.c (score7_output_external): Likewise.
1376
1377         * config/score/score3.c (score3_output_external): Likewise.
1378
1379         * config/s390/s390.c (s390_init_machine_status): Likewise.
1380
1381         * config/rs6000/rs6000.c (builtin_function_type): Likewise.
1382         (rs6000_init_machine_status): Likewise.
1383         (output_toc): Likewise.
1384
1385         * config/pa/pa.c (pa_init_machine_status): Likewise.
1386         (get_deferred_plabel): Likewise.
1387
1388         * config/moxie/moxie.c (moxie_init_machine_status): Likewise.
1389
1390         * config/mmix/mmix.c (mmix_init_machine_status): Likewise.
1391
1392         * config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
1393
1394         * config/mep/mep.c (mep_init_machine_status): Likewise.
1395         (mep_note_pragma_flag): Likewise.
1396
1397         * config/m32c/m32c.c (m32c_init_machine_status): Likewise.
1398
1399         * config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
1400
1401         * config/ia64/ia64.c (ia64_init_machine_status): Likewise.
1402
1403         * config/i386/winnt.c (i386_pe_record_external_function): Likewise.
1404         (i386_pe_maybe_record_exported_symbol): Likewise.
1405
1406         * config/i386/i386.c (get_dllimport_decl): Likewise.
1407         (ix86_init_machine_status): Likewise.
1408         (assign_386_stack_local): Likewise.
1409
1410         * config/frv/frv.c (frv_init_machine_status): Likewise.
1411
1412         * config/darwin.c (machopic_indirection_name): Likewise.
1413
1414         * config/cris/cris.c (cris_init_machine_status): Likewise.
1415
1416         * config/bfin/bfin.c (bfin_init_machine_status): Likewise.
1417
1418         * config/avr/avr.c (avr_init_machine_status): Likewise.
1419
1420         * config/arm/arm.c (arm_init_machine_status): Likewise.
1421
1422         * config/alpha/alpha.c (alpha_init_machine_status): Likewise.
1423         (alpha_need_linkage): Likewise.
1424         (alpha_use_linkage): Likewise.
1425
1426         * cgraph.c (cgraph_allocate_node): Likewise.
1427         (cgraph_create_edge_1): Likewise.
1428         (cgraph_create_indirect_edge): Likewise.
1429         (cgraph_add_asm_node): Likewise.
1430
1431         * cfgrtl.c (init_rtl_bb_info): Likewise.
1432
1433         * cfgloop.c (alloc_loop): Likewise.
1434         (rescan_loop_exit): Likewise.
1435
1436         * cfg.c (init_flow): Likewise.
1437         (alloc_block): Likewise.
1438         (unchecked_make_edge): Likewise.
1439
1440         * c-parser.c (c_parse_init): Likewise.
1441         (c_parse_file): Likewise.
1442
1443         * c-decl.c (bind): Likewise.
1444         (record_inline_static): Likewise.
1445         (push_scope): Likewise.
1446         (make_label): Likewise.
1447         (lookup_label_for_goto): Likewise.
1448         (finish_struct): Likewise.
1449         (finish_enum): Likewise.
1450         (c_push_function_context): Likewise.
1451
1452         * bitmap.c (bitmap_element_allocate): Likewise.
1453         (bitmap_gc_alloc_stat): Likewise.
1454
1455         * alias.c (record_alias_subset): Likewise.
1456         (init_alias_analysis): Likewise.
1457
1458 2010-06-08  Shujing Zhao  <pearly.zhao@oracle.com>
1459
1460         * fold-const.c (fold_comparison): Remove redundant parenthesis.
1461         * tree-inline.c (expand_call_inline): Pass translated return value of
1462         cgraph_inline_failed_string to diagnostic function.
1463
1464 2010-06-08  Andrew Pinski <pinskia@gmail.com>
1465             Shujing Zhao  <pearly.zhao@oracle.com>
1466
1467         PR c/37724
1468         * c-typeck.c (convert_for_assignment): Call pedwarn_init if the
1469         implicit bad conversions is initialization.
1470         (error_init): Use gmsgid instead of msgid for argument name and change
1471         the call for error.
1472         (pedwarn_init): Use gmsgid instead of msgid for argument name and
1473         change the call for pedwarn.
1474         (warning_init): Use gmsgid instead of msgid for argument name and
1475         change the call for warning.
1476
1477 2010-06-07  Nathan Froyd  <froydnj@codesourcery.com>
1478
1479         * config/mips/mips-protos.h (mips_print_operand): Delete.
1480         (mips_print_operand_address): Delete.
1481         * config/mips/mips.h (mips_print_operand_punct): Delete.
1482         (PRINT_OPERAND): Delete.
1483         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
1484         (PRINT_OPERAND_ADDRESS): Delete.
1485         * config/mips/mips.c (mips_print_operand_punct): Make static.
1486         (mips_print_operand_address): Make static.
1487         (mips_print_operand): Make static.  Call
1488         mips_print_operand_punct_valid_p.
1489         (mips_print_operand_punct_valid_p): New function.
1490         (TARGET_PRINT_OPERAND, TARGET_PRINT_OPERAND_ADDRESS): Define.
1491         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1492
1493 2010-06-07  Jan Hubicka  <jh@suse.cz>
1494
1495         PR middle-end/44454
1496         (df_lr_top_dump, df_lr_bottom_dump): Check that in/out bitmaps
1497         are allocated.
1498
1499 2010-06-07  Kaz Kojima  <kkojima@gcc.gnu.org>
1500
1501         * config/sh/sh.c (sh_build_builtin_va_list): Set tree type
1502         name of RECORD.
1503
1504 2010-06-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1505
1506         * doc/sourcebuild.texi (Effective-Target Keywords, Other
1507         attributes): Document gas.
1508
1509 2010-06-07  Uros Bizjak  <ubizjak@gmail.com>
1510
1511         * config/i386/i386.md (*add<mode>_1): Remove alternative 2.
1512         <TYPE_LEA>: Split instruction.
1513         <default>: Remove alternative 2 handling.
1514         (*addsi_1_zext) <TYPE_LEA>: Split instruction.
1515         (add lea splitter): Generate SImode lea for mode sizes <= SImode.
1516         (add_zext lea splitter): Use ix86_lea_for_add_ok in insn predicate.
1517
1518         (*movsi_1) <TYPE_LEA>: Use %a modifier to output operand 1.
1519         (ashift_zext lea splitter): Use DImode for multiplication.
1520
1521         * config/i386/i386.c (ix86_expand_epilogue): Do not use ix86_gen_add
1522         to generate addition.
1523
1524 2010-06-07  Joseph Myers  <joseph@codesourcery.com>
1525
1526         * common.opt (fira-verbose): Use Var.
1527         (fpcc-struct-return): Use Init instead of VarExists.
1528         * defaults.h (DEFAULT_PCC_STRUCT_RETURN): Move definition from
1529         toplev.c.
1530         * flags.h (flag_signed_char, flag_short_enums,
1531         flag_pcc_struct_return, flag_ira_verbose,
1532         flag_detailed_statistics, flag_remove_unreachable_functions): Remove.
1533         * toplev.c (flag_detailed_statistics, flag_signed_char,
1534         flag_short_enums, flag_pcc_struct_return, flag_ira_verbose): Remove.
1535         (DEFAULT_PCC_STRUCT_RETURN): Move definition to defaults.h.
1536         * toplev.h (flag_crossjumping, flag_if_conversion,
1537         flag_if_conversion2, flag_keep_static_consts, flag_peel_loops,
1538         flag_rerun_cse_after_loop, flag_thread_jumps, flag_tracer,
1539         flag_unroll_loops, flag_unroll_all_loops, flag_unswitch_loops,
1540         flag_cprop_registers, time_report, flag_ira_loop_pressure,
1541         flag_ira_coalesce, flag_ira_move_spills,
1542         flag_ira_share_save_slots, flag_ira_share_spill_slots): Remove.
1543
1544 2010-06-07  Jan Hubicka  <jh@suse.cz>
1545
1546         * df-core.c (df_analyze_problem): Do verification after allocation.
1547
1548         * df-problems.c (df_lr_problem_data): Add lr_bitmaps.
1549         (df_lr_alloc): Initialize problem data; move bitmaps to
1550         lr_bitmaps obstack.
1551         (df_lr_finalize): Free problem data; do not bother to free bitmaps.
1552         (df_lr_verify_solution_start): Do not initialize problem data;
1553         allocate bitmaps in lr_bitmaps.
1554         (df_lr_verify_solution_end): Do not free problem data.
1555
1556 2010-06-07  Jan Hubicka  <jh@suse.cz>
1557
1558         * cgraph.c (cgraph_edge_cannot_lead_to_return): Also check
1559         if caller is noreturn.
1560         * ipa-reference.c (analyze_function): Use ipa_ref_cannot_lead_to_return
1561         * ipa-ref.h (ipa_ref_cannot_lead_to_return): New function.
1562         * ipa-ref.c (ipa_ref_cannot_lead_to_return): New function.
1563         * ipa-pure-const.c (check_decl): Add IPA parameter.
1564         (state_from_flags): New function.
1565         (better_state, worse_state): New functions.
1566         (check_call): When in IPA mode, do not care about callees.
1567         (check_load, check_store): Update.
1568         (check_ipa_load, check_ipa_store): New.
1569         (check_stmt): When in IPA mode, use IPA checkers.
1570         (analyze_function): Use state_from_flags.
1571         (propagate): Check indirect edges and references.
1572
1573 2010-06-07  Kazu Hirata  <kazu@codesourcery.com>
1574
1575         PR rtl-optimization/44404
1576         * auto-inc-dec.c (find_inc): Use reg_overlap_mentioned_p instead
1577         of count_occurrences to see if it's safe to modify mem_insn.
1578
1579 2010-06-07  Richard Guenther  <rguenther@suse.de>
1580
1581         * gimplify.c (gimplify_cleanup_point_expr): For empty body
1582         and EH-only cleanup drop the cleanup instead of inserting it
1583         unconditionally.
1584
1585 2010-06-07  Ira Rosen  <irar@il.ibm.com>
1586
1587         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Update
1588         documentation.
1589         * targhooks.c (default_builtin_vectorization_cost): New function.
1590         * targhooks.h (default_builtin_vectorization_cost): Declare.
1591         * target.h (enum vect_cost_for_stmt): Define.
1592         (builtin_vectorization_cost): Change argument and comment.
1593         * tree-vectorizer.h: Remove cost model macros.
1594         * tree-vect-loop.c: Include target.h.
1595         (vect_get_cost): New function.
1596         (vect_estimate_min_profitable_iters): Replace cost model macros with
1597         calls to vect_get_cost.
1598         (vect_model_reduction_cost, vect_model_induction_cost): Likewise.
1599         * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Add
1600         default implementation.
1601         * tree-vect-stmts.c (cost_for_stmt): Replace cost model macros with
1602         calls to target hook builtin_vectorization_cost.
1603         (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost):
1604         Likewise.
1605         * Makefile.in (tree-vect-loop.o): Add dependency on TARGET_H.
1606         * config/spu/spu.c (spu_builtin_vectorization_cost): Replace with new
1607         implementation to return costs.
1608         * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
1609         * config/spu/spu.h: Remove vectorizer cost model macros.
1610         * config/i386/i386.h: Likewise.
1611         * tree-vect-slp.c (vect_build_slp_tree): Replace cost model macro with
1612         a call to target hook builtin_vectorization_cost.
1613
1614 2010-06-06  Sriraman Tallam  <tmsriram@google.com>
1615
1616         PR target/44319
1617         * config/i386/i386.c (override_options): Turn zee pass on for level 2
1618         and above and defer till target is known.
1619         (optimization_options): Turn on zee pass if TARGET_64BIT is set and
1620         turn off otherwise.
1621
1622 2010-05-25  Jan Hubicka  <jh@suse.cz>
1623
1624         * df-core.c (df_set_blocks): Use bitmap_head instead of bitmap.
1625         (df_compact_blocks): Likewise.
1626         * df.h (struct df): Turn hardware_regs_used,
1627         regular_block_artificial_uses, eh_block_artificial_uses,
1628         insns_to_delete, insns_to_rescan, insns_to_notes_rescan into
1629         bitmap_head.
1630         * df-problems.c (df_lr_local_compute, df_lr_confluence_0,
1631         df_byte_lr_alloc, df_simulate_fixup_sets): Update.
1632         * df-scan.c (df_scan_free_internal, df_scan_alloc, df_scan_start_dump,
1633         df_scan_blocks, df_insn_delete, df_insn_rescan,
1634         df_insn_rescan_debug_internal, df_insn_rescan_all,
1635         df_process_deferred_rescans, df_process_deferred_rescans,
1636         df_notes_rescan, df_get_call_refs, df_get_call_refs,
1637         regs_invalidated_by_call_regset, df_get_call_refs, df_bb_refs_collect,
1638         df_record_entry_block_defs, df_record_exit_block_uses,
1639         df_update_exit_block_uses, df_bb_verify, df_entry_block_bitmap_verify,
1640         df_scan_verify): Update.
1641
1642 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
1643
1644         PR c++/44188
1645         * c-common.c (is_typedef_decl): Move this definition ...
1646         * tree.c (is_typedef_decl): ... here.
1647         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
1648         * c-common.h (is_typedef_decl): Move this declaration ...
1649         * tree.h (is_typedef_decl): ... here.
1650         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
1651         * dwarf2out.c (is_naming_typedef_decl): New function.
1652         (gen_tagged_type_die): Split out of ...
1653         (gen_type_die_with_usage): ... this function. When an anonymous
1654         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
1655         is emitted for the typedef.
1656         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
1657         anonymous tagged types.
1658
1659 2010-06-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1660
1661         PR c/20000
1662         * c-decl.c (grokdeclarator): Delete warning.
1663
1664 2010-06-06  Eric Botcazou  <ebotcazou@adacore.com>
1665
1666         * stor-layout.c (self_referential_size): Set UNKNOWN_LOCATION on the
1667         newly built CALL_EXPR.
1668         * tree-profile.c (tree_profiling): Don't profile functions produced
1669         for built-in stuff.
1670
1671 2010-06-06  Segher Boessenkool  <segher@kernel.crashing.org>
1672
1673         PR bootstrap/44427
1674         PR bootstrap/44428
1675         * genautomata.c (SET_BIT, CLEAR_BIT, TEST_BIT): Make these macros
1676         endianness-independent.
1677
1678 2010-06-05  Steven Bosscher  <steven@gcc.gnu.org>
1679
1680         * c-common.c: Move to c-family/.
1681         * c-common.def: Likewise.
1682         * c-common.h: Likewise.
1683         * c-cppbuiltin.c: Likewise.
1684         * c-dump.c: Likewise.
1685         * c-format.c: Likewise.
1686         * c-format.h : Likewise.
1687         * c-gimplify.c: Likewise.
1688         * c-lex.c: Likewise.
1689         * c-omp.c: Likewise.
1690         * c.opt: Likewise.
1691         * c-opts.c: Likewise.
1692         * c-pch.c: Likewise.
1693         * c-ppoutput.c: Likewise.
1694         * c-pragma.c: Likewise.
1695         * c-pragma.h: Likewise.
1696         * c-pretty-print.c: Likewise.
1697         * c-pretty-print.h: Likewise.
1698         * c-semantics.c: Likewise.
1699         * stub-objc.c: Likewise.
1700
1701         * gengtype.c (get_file_langdir): Special-case files in c-family/.
1702         (get_output_file_with_visibility): Fix name for c-common.h.
1703         * c-config-lang.in: Update paths in gtfiles for files in c-family/.
1704
1705         * c-tree.h: Update include path for moved files.
1706         * c-lang.c: Likewise.
1707         * c-lang.h: Likewise.
1708         * c-parser.c: Likewise.
1709         * c-convert.c: Likewise.
1710         * c-decl.c: Likewise.
1711         * c-objc-common.c: Likewise.
1712         * configure.ac: Make sure c-family/ exists in the build directory.
1713         * configure: Regenerate.
1714         * Makefile.in: Update paths for moved files.  Regroup files per
1715         location and update dependencies.  Move generated_files down after
1716         ALL_GTFILES_H.
1717
1718         * config/spu/spu-c.c: Update paths for moved files.
1719         * config/mep/mep-pragma.c: Likewise.
1720         * config/darwin-c.c: Likewise.
1721         * config/i386/msformat-c.c: Likewise.
1722         * config/i386/i386-c.c: Likewise.
1723         * config/avr/avr-c.c: Likewise.
1724         * config/sol2-c.c: Likewise.
1725         * config/ia64/ia64-c.c: Likewise.
1726         * config/rs6000/rs6000-c.c: Likewise.
1727         * config/arm/arm.c: Likewise.
1728         * config/arm/arm-c.c: Likewise.
1729         * config/h8300/h8300.c: Likewise.
1730         * config/v850/v850-c.c: Likewise.
1731
1732         * config/t-darwin: Fix dependencies for moved files.
1733         * config/t-sol2: Fix dependencies for moved files.
1734         * config/mep/t-mep: Fix dependencies for moved files.
1735         * config/ia64/t-ia64: Fix dependencies for moved files.
1736         * config/rs6000/t-rs6000: Fix dependencies for moved files.
1737         * config/v850/t-v850: Fix dependencies for moved files.
1738         * config/v850/t-v850e: Fix dependencies for moved files.
1739
1740         * config/m32c/m32c-pragma.c
1741
1742         * po/exgettext: Look in c-family/ also.
1743
1744 2010-06-05  Eric Botcazou  <ebotcazou@adacore.com>
1745
1746         * tree-ssa-dce.c (mark_last_stmt_necessary): New function.
1747         (mark_control_dependent_edges_necessary): Call it instead of marking
1748         the last statement manually.
1749         (propagate_necessity): Likewise.
1750
1751 2010-06-05  Jan Hubicka  <jh@suse.cz>
1752
1753         * basic-block.h (compute_dominance_frontiers): Updated.
1754         (compute_idf): Likewise.
1755
1756         * tree-into-ssa.c (insert_phi_nodes): Use bitmap heads
1757         for dominance frontiers.
1758         (rewrite_into_ssa): Update for bitmap heads in dominance frontiers.
1759         (insert_updated_phi_nodes_for): Likewise.
1760         (update_ssa): Likewise.
1761         * cfganal.c (compute_dominance_frontiers_1): Likewise.
1762         (compute_dominance_frontiers): Likewise.
1763         (compute_idf): Likewise.
1764         * df-problems.c (df_md_local_compute): Likewise.
1765
1766 2010-06-05  Anatoly Sokolov  <aesok@post.ru>
1767
1768         * target.h (struct gcc_target): Add memory_move_cost field.
1769         * target-def.h (TARGET_MEMORY_MOVE_COST): New.
1770         (TARGET_INITIALIZER): Use TARGET_MEMORY_MOVE_COST.
1771         * targhooks.c (default_memory_move_cost): New function.
1772         * targhooks.h (default_memory_move_cost): Declare function.
1773         * reload.h (memory_move_cost): Declare.
1774         (memory_move_secondary_cost): Change type of 'in' argument to bool.
1775         * reginfo.c (memory_move_cost): New function.
1776         (memory_move_secondary_cost): Change type of 'in' argument to bool.
1777         * ira.h (ira_memory_move_cost): Update comment.
1778         * ira.c: (ira_memory_move_cost): Update comment.
1779         (setup_class_subset_and_memory_move_costs): Replace MEMORY_MOVE_COST
1780         with memory_move_cost.
1781         * postreload.c (reload_cse_simplify_set): (Ditto.).
1782         * reload1.c (choose_reload_regs): (Ditto.).
1783         * doc/tm.texi (TARGET_MEMORY_MOVE_COST): New.
1784         (MEMORY_MOVE_COST):  Revise documentation.
1785
1786         * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro.
1787         * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove.
1788         * config/i386/i386.h (ix86_memory_move_cost): Make static. Change
1789         type of 'in' argument to bool.
1790         (TARGET_MEMORY_MOVE_COST): Define.
1791
1792 2010-06-05  Jan Hubicka  <jh@suse.cz>
1793
1794         * ipa-pure-const.c (propagate): Fix typo in handling of functions
1795         that cannot return.  Be more careful when merging the results with
1796         previously known ones.
1797
1798 2010-06-05  Matthias Klose  <doko@ubuntu.com>
1799
1800         * gcc.c (cc1_options, cpp_unique_options): Use find-plugindir spec
1801         function to add the -iplugindir option.
1802         (find_plugindir_spec_function): Add new declaration and function.
1803         (static_spec_func): Use it for "find-plugindir".
1804
1805 2010-06-05  Jakub Jelinek  <jakub@redhat.com>
1806
1807         PR c++/44361
1808         * c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
1809         * c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
1810         statement expression.
1811
1812 2010-06-05  Jan Hubicka  <jh@suse.cz>
1813
1814         * df-problems.c (seen_in_block, seen_in_insn): Convert to bitmap_head.
1815         (df_rd_problem_data): Convert sparse_invalidated_by_call,
1816         dense_invalidated_by_call to bitmap head.
1817         (df_rd_alloc, df_rd_bb_local_compute_process_def,
1818         df_rd_bb_local_compute, df_rd_confluence_n, df_rd_transfer_function,
1819         df_rd_start_dump, df_lr_verify_transfer_functions,
1820         df_live_verify_transfer_functions, df_chain_create_bb,
1821         df_chain_add_problem, df_byte_lr_check_regs, df_byte_lr_alloc,
1822         df_byte_lr_confluence_0, df_byte_lr_confluence_n, df_note_compute,
1823         df_simulate_one_insn_forwards, df_md_alloc,
1824         df_md_bb_local_compute_process_def,
1825         df_md_bb_local_compute_process_def, df_md_local_compute,
1826         df_md_transfer_function df_md_free): Update.
1827
1828 2010-06-05  Joseph Myers  <joseph@codesourcery.com>
1829
1830         PR c/44322
1831         * c-typeck.c (build_unary_op): Merge qualifiers into pointer
1832         target type for ADDR_EXPR; require no changes to qualifiers except
1833         for function types.
1834         * c-tree.h (c_build_type_variant): Remove.
1835
1836 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
1837
1838         * genautomata.c (get_excl_set): Do work per element, not per char.
1839         (check_presence_pattern_sets): Similar.
1840         (check_absence_pattern_sets): Similar.
1841
1842 2010-06-05  Segher Boessenkool  <segher@kernel.crashing.org>
1843
1844         * genautomata.c (curr_state_pass_num): Delete.
1845         (min_issue_delay_pass_states): Delete.
1846         (min_issue_delay): Delete.
1847         (initiate_min_issue_delay_pass_states): Delete.
1848         (output_min_issue_delay_table): Compute min_issue_delay_vect
1849         using a breadth-first search variant.
1850         (output_tables): Don't call initiate_min_issue_delay_pass_states.
1851
1852 2010-06-04  H.J. Lu  <hongjiu.lu@intel.com>
1853
1854         PR boostrap/44421
1855         * df-problems.c (df_lr_bb_local_compute): Updated for embedded bitmaps.
1856         (df_byte_lr_bb_local_compute): Likewise.
1857
1858 2010-06-03  Jason Merrill  <jason@redhat.com>
1859
1860         Implement noexcept operator (5.3.7)
1861         * c-common.c (c_common_reswords): Add noexcept.
1862         * c-common.h (enum rid): Add RID_NOEXCEPT.
1863
1864 2010-06-04  Joseph Myers  <joseph@codesourcery.com>
1865
1866         * config/darwin-driver.c (darwin_default_min_version): Use
1867         GCC-specific formats in diagnostics.
1868         * cppspec.c (lang_specific_driver): Use GCC-specific formats in
1869         diagnostics.
1870         * gcc.c (translate_options, read_specs, add_sysrooted_prefix,
1871         execute, process_command, end_going_arg, do_self_spec, do_spec_1,
1872         eval_spec_function, handle_braces, process_brace_body, main,
1873         perror_with_name, used_arg, set_multilib_dir, print_multilib_info,
1874         getenv_spec_function, compare_version_strings,
1875         version_compare_spec_function): Use GCC-specific formats in
1876         diagnostics.
1877
1878 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
1879
1880         * config/i386/i386.md (*addhi_1_lea) <TYPE_INCDEC, default>: Assert
1881         that operand 0 and operand 1 are equal.
1882         (*addqi_1_lea) <TYPE_INCDEC, default>: Ditto.
1883         (*add<mode>_2) <TYPE_INCDEC>: Remove assert that operand 0
1884         and operand 1 are equal.
1885         <default>: Ditto.  Remove ??? comment.
1886         (*add<mode>_3) <TYPE_INCDEC>: Remove assert that operand 0
1887         and operand 1 are equal.
1888         <default>: Ditto.  Remove ??? comment.
1889         (*adddi_4) <default>: Remove assert that operand 0 and operand 1
1890         are equal.
1891         (*add<mode>_4) <default>: Ditto.
1892         (*add<mode>_5) <TYPE_INCDEC, default>: Ditto.
1893
1894 2010-06-04  Nathan Froyd  <froydnj@codesourcery.com>
1895
1896         * config/i386/i386-protos.h (ix86_print_operand): Declare.
1897         * config/i386/i386.c (ix86_print_operand): Make non-static.
1898         * config/i386/sol2.h (ASM_OUTPUT_CALL): Call ix86_print_operand.
1899         * output.h (output_operand): Declare.
1900         * final.c (output_operand): Make non-static.
1901
1902 2010-06-04  Alexandre Oliva  <aoliva@redhat.com>
1903
1904         PR rtl-optimization/44013
1905         * sched-deps.c (add_dependence_list_and_free): Don't free lists
1906         when processing debug insns.
1907
1908         PR debug/41371
1909         * var-tracking.c (find_loc_in_1pdv): Mark initial value before
1910         recursing.  Check that recursion is bounded.  Rename inner var
1911         to avoid hiding incoming argument.
1912
1913 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
1914
1915         * config/i386/i386.md (*addqi_2) <TYPE_INCDEC>: Do not assert that
1916         operands[2] == 255.
1917         (*addqi_3): Ditto.
1918         (*addqi_4): Ditto.
1919         (*addqi_5): Ditto.
1920         (*addqi_ext_1_rex64): Ditto.
1921         (*addqi_ext_1): Ditto.
1922
1923         (*addqi_4): Check for incdec_operand in QImode.
1924
1925         (*add<mode>_2): Macroize insn from *add<mode>_2 and *add{qi,hi}_2
1926         using SWI mode iterator.
1927         (*add<mode>_3): Ditto from *add<mode>_3 and *add{qi,hi}_3.
1928         (*add<mode>_4): Macroize insn from *add{qi,hi,si}_4 using SWI124
1929         mode iterator.
1930         (*add<mode>_5): Macroize insn from *add<mode>_5 and *add{qi,hi}_5
1931         using SWI mode iterator.
1932
1933 2010-06-04  Manuel López-Ibáñez  <manu@gcc.gnu.org>
1934
1935         PR c/25880
1936         * c-objc-common.c (c_tree_printer): Handle %V, %v and %#v.
1937         * c-format.c (gcc_diag_flag_specs): Add hash.
1938         (gcc_cxxdiag_flag_specs): Use gcc_diag_flag_specs directly.
1939         (gcc_tdiag_char_table,gcc_cdiag_char_table): Handle %V and %v.
1940         * c-pretty-print.c (pp_c_cv_qualifier): Rename as
1941         pp_c_cv_qualifiers. Handle qualifiers spelling here.
1942         (pp_c_type_qualifier_list): Call the function above.
1943         * c-pretty-print.h (pp_c_cv_qualifiers): Declare.
1944         * c-typeck.c (handle_warn_cast_qual): Print qualifiers.
1945         (WARN_FOR_QUALIFIERS): New macro.
1946         (convert_for_assignment): Use it.
1947
1948 2010-06-04  Kai Tietz  <kai.tietz@onevision.com>
1949
1950         * config/i386/cygming.h (ASM_GENERATE_INTERNAL_LABEL): Prefix by '*'.
1951
1952 2010-06-04  Jan Hubicka  <jh@suse.cz>
1953
1954         * df.h (df_rd_bb_info, df_md_bb_info, df_lr_bb_info, df_live_bb_info,
1955         df_byte_lr_bb_info): Embedd bitmap_head into the structure.
1956         (DF_LIVE_IN, DF_LIVE_OUT, DF_LR_IN, DF_LR_OUT, DF_BYTE_LR_IN,
1957         DF_BYTE_LR_OUT): Update for embedded bitmaps.
1958         * fwprop.c (single_def_use_enter_block): Likewise.
1959         * ddg.c (create_ddg_dep_from_intra_loop_link,
1960         add_cross_iteration_register_deps, build_inter_loop_deps): Likewise.
1961         * loop-iv.c (latch_dominating_def): Likewise.
1962         * df-problems.c (df_rd_free_bb_info, df_rd_alloc,
1963         df_rd_bb_local_compute_process_def, df_rd_bb_local_compute_process_def,
1964         df_rd_init_solution, df_rd_init_solution, df_rd_transfer_function,
1965         df_rd_transfer_function, df_rd_top_dump,
1966         df_rd_bottom_dump): Update.
1967         (df_lr_free_bb_info, df_lr_alloc, df_lr_reset, df_lr_bb_local_compute,
1968         df_lr_bb_local_compute, df_lr_bb_local_compute, df_lr_bb_local_compute,
1969         df_lr_bb_local_compute, df_lr_local_compute, df_lr_init, df_lr_init,
1970         df_lr_confluence_0, df_lr_free, df_lr_top_dump, df_lr_bottom_dump,
1971         df_lr_verify_solution_start, df_lr_verify_solution_end,
1972         df_lr_verify_transfer_functions, df_lr_verify_transfer_functions,
1973         df_live_free_bb_info, df_live_alloc, df_live_reset,
1974         df_live_bb_local_compute, df_live_init, df_live_transfer_function,
1975         df_live_finalize, df_live_free, df_live_top_dump, df_live_bottom_dump,
1976         df_live_verify_solution_start, df_live_verify_solution_end,
1977         df_live_verify_transfer_functions, df_chain_create_bb,
1978         df_byte_lr_free_bb_info, df_byte_lr_alloc, df_byte_lr_reset,
1979         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
1980         df_byte_lr_bb_local_compute, df_byte_lr_bb_local_compute,
1981         df_byte_lr_bb_local_compute, df_byte_lr_local_compute, df_byte_lr_init,
1982         df_byte_lr_confluence_0, df_byte_lr_confluence_n,
1983         df_byte_lr_transfer_function, df_byte_lr_top_dump,
1984         df_byte_lr_bottom_dump, df_create_unused_note,
1985         df_note_bb_compute, df_md_free_bb_info, df_md_alloc,
1986         df_md_bb_local_compute_process_def, df_md_local_compute, df_md_reset,
1987         df_md_transfer_function, df_md_init, df_md_confluence_0,
1988         df_md_confluence_n,
1989         df_md_top_dump, df_md_bottom_dump): Update.
1990         (struct df_lr_problem_data): Embedd bitmap headers.
1991
1992 2010-06-04  Jan Hubicka  <jh@suse.cz>
1993
1994         * dce.c (dce_process_block): Do not re-scan already marked
1995         instructions.
1996
1997 2010-06-04  Bernd Schmidt  <bernds@codesourcery.com>
1998
1999         PR rtl-optimization/39871
2000         PR rtl-optimization/40615
2001         PR rtl-optimization/42500
2002         PR rtl-optimization/42502
2003         * ira.c (init_reg_equiv_memory_loc: New function.
2004         (ira): Call it twice.
2005         * reload.h (calculate_elim_costs_all_insns): Declare.
2006         * ira-costs.c: Include "reload.h".
2007         (regno_equiv_gains): New static variable.
2008         (init_costs): Allocate it.
2009         (finish_costs): Free it.
2010         (ira_costs): Call calculate_elim_costs_all_insns.
2011         (find_costs_and_classes): Take estimated elimination costs
2012         into account.
2013         (ira_adjust_equiv_reg_cost): New function.
2014         * ira.h (ira_adjust_equiv_reg_cost): Declare it.
2015         * reload1.c (init_eliminable_invariants, free_reg_equiv,
2016         elimination_costs_in_insn, note_reg_elim_costly): New static functions.
2017         (elim_bb): New static variable.
2018         (reload): Move code out of here into init_eliminable_invariants and
2019         free_reg_equiv.  Call them.
2020         (calculate_elim_costs_all_insns): New function.
2021         (eliminate_regs_1): Declare.  Add extra arg FOR_COSTS;
2022         all callers changed.  If FOR_COSTS is true, don't call alter_reg,
2023         but call note_reg_elim_costly if we turned a valid memory address
2024         into an invalid one.
2025         * Makefile.in (ira-costs.o): Depend on reload.h.
2026
2027 2010-06-04  Julian Brown  <julian@codesourcery.com>
2028
2029         * config/arm/thumb2.md (*thumb2_movdf_soft_insn): Fix alternatives
2030         for pool ranges.
2031
2032 2010-06-04  Richard Guenther  <rguenther@suse.de>
2033
2034         PR lto/41584
2035         * cgraph.h (struct varpool_node): Add lto_file_data field.
2036         * lto-cgraph.c (input_varpool_node): Initialize it.
2037
2038 2010-06-04  Uros Bizjak  <ubizjak@gmail.com>
2039
2040         * config/i386/predicates.md (pic_symbolic_operand): Remove predicate.
2041         * config/i386/i386.md (*add<mode>_1): Do not use pic_symbolic_operand
2042         predicate in "type" attribute calculation.
2043         (*addsi_1_zext): Ditto.
2044         (*add<mode>_2): Do not use pic_symbolic_operand in insn predicate.
2045         (*addsi_2_zext): Ditto.
2046         (*add<mode>_3): Ditto.
2047         (*addsi_3_zext): Ditto.
2048         (*add<mode>_5): Ditto.
2049
2050 2010-06-03  Jan Hubicka  <jh@suse.cz>
2051
2052         * tree-into-ssa.c (mark_block_for_update): Avoid redundant call
2053         of bitmap_bit_p.
2054         * cfganal.c (compute_dominance_frontiers_1): Likewise.
2055
2056 2010-06-03  Jan Hubicka  <jh@suse.cz>
2057
2058         * df-problems.c (df_create_unused_note, df_note_bb_compute):
2059         micro-optimize the checks when to add new note.
2060
2061 2010-06-03  Nathan Froyd  <froydnj@codesourcery.com>
2062
2063         * final.c (output_asm_insn): Call
2064         targetm.asm_out.print_operand_punct_valid_p.  Update comments.
2065         (output_operand): Call targetm.asm_out.print_operand.  Update comments.
2066         (output_address): Call targetm.asm_out.print_operand_address.
2067         Update comments.
2068         * target.h (struct gcc_target): Add print_operand,
2069         print_operand_address, and print_operand_punct_valid_p fields.
2070         * targhooks.h (default_print_operand): Declare.
2071         (default_print_operand_address): Declare.
2072         (default_print_operand_punct_valid_p): Declare.
2073         * targhooks.c (default_print_operand): Define.
2074         (default_print_operand_address): Define.
2075         (default_print_operand_punct_valid_p): Define.
2076         * target-def.h (TARGET_PRINT_OPERAND): Define if not defined.
2077         (TARGET_PRINT_OPERAND_ADDRESS): Likewise.
2078         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Likewise.
2079         (TARGET_ASM_OUT): Add TARGET_PRINT_OPERAND,
2080         TARGET_PRINT_OPERAND_ADDRESS, and TARGET_PRINT_OPERAND_PUNCT_VALID_P.
2081         * vmsdbgout.c (addr_const_to_string): Update comment.
2082         * config/i386/i386.c (print_operand): Rename to...
2083         (ix86_print_operand): ...this.  Make static.
2084         (print_operand_address): Rename to...
2085         (ix86_print_operand_address): ...this.  Make static.  Call
2086         ix86_print_operand instead of PRINT_OPERAND.
2087         (ix86_print_operand_punct_valid_p): New function.
2088         (TARGET_PRINT_OPERAND): Define.
2089         (TARGET_PRINT_OPERAND_ADDRESS): Define.
2090         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2091         * config/i386/i386.h (HI_REGISTER_NAMES): Update comment.
2092         (PRINT_OPERAND_PUNCT_VALID_P): Delete.
2093         (PRINT_OPERAND): Delete.
2094         (PRINT_OPERAND_ADDRESS): Delete.
2095         * config/i386/i386-protos.h (print_operand): Delete prototype.
2096         (print_operand_address): Delete prototype.
2097
2098 2010-06-03  Richard Guenther  <rguenther@suse.de>
2099
2100         PR tree-optimization/44403
2101         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
2102         Preserve pointer qualifiers.
2103         (vect_create_data_ref_ptr): Likewise.
2104
2105 2010-06-03  H.J. Lu  <hongjiu.lu@intel.com>
2106
2107         PR c++/44294
2108         * defaults.h (MAX_FIXED_MODE_SIZE): New.
2109
2110         * stor-layout.c (MAX_FIXED_MODE_SIZE): Removed.
2111
2112 2010-06-03  Jakub Jelinek  <jakub@redhat.com>
2113
2114         PR debug/44375
2115         * tree-cfg.c (gimple_can_merge_blocks_p): For -O0
2116         return false if merging the bbs would lead to goto_locus
2117         location being lost from the IL.
2118
2119 2010-06-03  Jan Hubicka  <jh@suse.cz>
2120             Jakub Jelinek  <jakub@redhat.com>
2121
2122         * var-tracking.c (dataflow_set_equiv_regs): Shortcut the loop if
2123         set->regs[i] is NULL or has just one entry.
2124
2125 2010-06-03  Jan Hubicka  <jh@suse.cz>
2126
2127         * lto-cgraph.c (lto_varpool_encoder_size): Remove.
2128         * lto-streamer.h (lto_varpool_encoder_size): New inline function.
2129
2130 2010-06-03  Paul Brook  <paul@codesourcery.com>
2131
2132         * config/arm/arm.c (FL_TUNE): Define.
2133         (arm_default_cpu, arm_cpu_select): Remove.
2134         (all_cores): Populate core field.
2135         (arm_selected_arch, arm_selected_cpu, arm_selected_tune): New.
2136         (arm_find_cpu): New function.
2137         (arm_handle_option): Lookup cpu/architecture names.
2138         (arm_override_options): Cleanup mcpu/march/mtune handling.
2139         (arm_file_start): Ditto.
2140
2141 2010-06-03  Alan Modra  <amodra@gmail.com>
2142
2143         PR target/44169
2144         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Add label operand.
2145         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Pass label
2146         rtx to gen_load_toc_v4_PIC_1b.  Tidy.
2147         (rs6000_emit_load_toc_table): Likewise.
2148
2149 2010-06-02  Jan Hubicka  <jh@suse.cz>
2150
2151         * passes.c (init_optimization_passes): Put ipa reference
2152         after ipa pure-const.
2153
2154 2010-06-02  Jan Hubicka  <jh@suse.cz>
2155
2156         * ipa-reference.c (ipa_reference_local_vars_info_d): Remove
2157         calls_read_all and calls_write_all.
2158         (get_reference_optimization_summary): Fix formatting.
2159         (is_proper_for_analysis): Check that decl is not readonly.
2160         (propagate_bits): Check CONST/PURE/noreturn flags.
2161         (ipa_init): Move all_module_statics to optimization_summary_obstack.
2162         (analyze_function): Ignore indirect edges.
2163         (copy_global_bitmap): For all module statics, do nothing.
2164         (generate_summary): Do not print calls_read_all/calls_write_all.
2165         (read_write_all_from_decl): Take node as argument; check
2166         cgraph_node_cannot_return.
2167         (propagate): Reorganize read_all/write_all computation;
2168         check indirect edges; check ecf flags; use all_module_statics
2169         in the results; do not free all_module_statics.
2170         (stream_out_bitmap): Handle all_module_statics.
2171         (ipa_reference_write_optimization_summary): Likewise; use
2172         varpool/cgraph encoders to get boundaries.
2173         (ipa_reference_read_optimization_summary): Read in all_module_statics;
2174         use it when possible.
2175
2176 2010-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
2177
2178         PR target/44218
2179         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete obsolete
2180         -mswdiv option.  Add -mrecip, -mrecip=<xxx>, -mrecip-precision options.
2181
2182         * doc/extend.texi (powerpc builtins): Document vec_recip,
2183         vec_rsqrt, vec_rsqrte altivec/vsx builtins.
2184
2185         * config/rs6000/rs60000-protos.h (rs6000_emit_swdiv): New function.
2186         (rs6000_emit_swrsqrt): Ditto.
2187         (rs6000_emit_swdivsf): Delete.
2188         (rs6000_emit_swdivdf): Ditto.
2189         (rs6000_emit_swrsqrtsf): Ditto.
2190
2191         * config/rs6000/rs6000.c (rs6000_recip_bits): New global to
2192         describe the reciprocal estimate support for each type.
2193         (recip_options): Map -mrecip=<opt> into option bits.
2194         (gen_2arg_fn_t): New typedef for binary rtx gen function.
2195         (rs6000_debug_reg_global): If -mdebug=reg, print the state of the
2196         reciprocal estimate instructions.
2197         (rs6000_init_hard_regno_mode_ok): Key ws constraint off of the
2198         debug -mvsx-scalar-memory switch instead of -mvsx-scalar-double.
2199         Set up rs6000_recip_bits based on the -mrecip* options.  Print the
2200         cost information if -mdebug=cost or -mdebug=reg.
2201         (rs6000_override_options): Set -mrecip-precision for power6, and
2202         power7 machines.  If -mvsx or -mdfp, enable various options that
2203         came in previous instruction set ISAs, unless the option was
2204         explicitly disabled by the command line option.  Parse
2205         -mrecip=<opt> options.
2206         (rs6000_builtin_vectorized_function): Add support for vectorizing
2207         the reciprocal estimate builtins and expansions.
2208         (rs6000_handle_option): Add -mrecip, -mrecip=<opt> support.
2209         (bdesc_2arg): Add reciprocal estimate builtins.
2210         (bdesc_1arg): Add reciprocal square root estimate builtins.
2211         (rs6000_expand_builtin): Rewrite to use a switch statement,
2212         instead of multiple if/then/elses.  Add reciprocal estimate builtins.
2213         (rs6000_init_builtins): Create declarations for reciprocal
2214         estimate builtins.
2215         (rs6000_preferred_reload_class): Simplify VSX preferences, if scalar
2216         sized, prefer traditional floating point registers, if integer
2217         vector types, prefer altivec registers.  Don't actually look at
2218         the memory address any more.
2219         (rs6000_builtin_reciprocal): Add new builtin reciprocal estimate
2220         builtins.
2221         (rs6000_load_constant_and_splat): New helper function to load up
2222         the constant for reciprocal estimate instructions.
2223         (rs6000_emit_madd): New helper function for generating
2224         multiply/add type instructions, based on the current switches.
2225         (rs6000_emit_msub): Ditto.
2226         (rs6000_emit_mnsub): Ditto.
2227         (rs6000_emit_swdiv_high_precision): Replace rs6000_emit_swdivsf to
2228         replace a divide with a reciprocal estimate and fixup, adding
2229         support for machines with high precision and vectors.
2230         (rs6000_emit_swdiv_low_precision): Rewrite rs6000_emit_swdivdf for
2231         low precision machines.
2232         (rs6000_emit_swdiv): New common function to be called to replace a
2233         division with reciprocal estimate and fixup.
2234         (rs6000_emit_swrsqrt): Replace rs6000_emit_swrsqrtsf.  Add support
2235         for double and vector types.  Add support for high precision machines.
2236
2237         * config/rs6000/rs6000.h (TARGET_FRES): New macro to say whether
2238         the reciprocal estimate instructions can be generated.
2239         (TARGET_FRE): Ditto.
2240         (TARGET_FRSQRTES): Ditto.
2241         (TARGET_FRSQRTE): Ditto.
2242         (RS6000_RECIP_*): New macros for reciprocal estimate support.
2243
2244         * config/rs6000/vector.md (rsqrte<mode>2): New insn for reciprocal
2245         square root estimate on vectors.
2246         (re<mode>2): New insn for reciprocal division estimate on vectors.
2247
2248         * config/rs6000/rs6000-buitlins.def (ALTIVEC_BUILTIN_VRSQRTFP):
2249         New builtin.
2250         (ALTIVEC_BUILTIN_VRECIPFP): Ditto.
2251         (ALTIVEC_BUITLIN_VEC_RE): Ditto.
2252         (ALTIVEC_BUILTIN_VEC_RSQRT): Ditto.
2253         (VSX_BUILTIN_RSQRT_V4SF): Ditto.
2254         (VSX_BUITLIN_RSQRT_V2DF): Ditto.
2255         (RS6000_BUILTIN_RSQRT): Ditto.
2256         (ALTIVEC_BUILTIN_VEC_RSQRTE): Denote that the builtin is a
2257         floating point builtin.
2258
2259         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2260         macros __RECIP__, __RECIPF__, __RSQRTE__, __RSQRTEF__,
2261         __RECIP_PRECISION__ based on the command line switches.
2262         (altivec_overloaded_builtins): Add reciprocal estimate builtins.
2263
2264         * config/rs6000/rs6000.opt (-mrecip): Document add support for
2265         replacing division instructions with reciprocal estimate and fixup.
2266         (-mrecip=<opt>): New option.
2267         (-mrecip-precision): Ditto.
2268
2269         * config/rs6000/vsx.md (UNSPEC_VSX_RSQRTE): Delete.
2270         (vsx_rsqrte<mode>2): Use UNSPEC_RSQRT not UNSPEC_VSX_RSQRTE.
2271         (vsx_copysignsf3): If -mvsx, use double precision cpsign on single
2272         precision scalar.
2273
2274         * config/rs6000/altivec.md (UNSPEC_RSQRTEFP): Delete.
2275         (UNSPEC_VREFP): Ditto.
2276         (altivec_vnmsubfp*): Make altivec nmsub mirror the scalar and VSX
2277         conterparts with regard to support of -mno-fused-madd and -ffast-math.
2278         (altivec_vrsqrtefp): Use common UNSPEC to allow scalar/vector
2279         reciprocal estimate instructions to be generated.
2280         (altivec_vrefp): Ditto.
2281
2282         * config/rs6000/rs6000.md (RECIPF): New iterator for reciprocal
2283         estimate support.
2284         (rreg): New mode attribute for reciprocal estimate support.
2285         (recip<mode>3): New insn for division using reciprocal estimate
2286         and fixup builtins.
2287         (divide define_split): New define_split to convert floating point
2288         division to use reciprocal estimate if the user used the
2289         appropriate options and the split is run when we can add new
2290         pseudo registers for the fixup.
2291         (rsqrt<mode>2): New insn for reciprocal square root support.
2292         (recipsf3): Move into recip<mode>3.
2293         (recipdf3): Ditto.
2294         (fres): Use TARGET_FRES.
2295         (rsqrtsf2): Move into rsqrt<mode>2.
2296         (rsqrtsf_internal1): Use TARGET_FRSQRTSES.
2297         (copysignsf3): Add support for VSX.
2298         (fred): Use TARGET_FRE.
2299         (fred_fpr): Ditto.
2300         (rsqrtdf_internal1): New function for frsqrte instruciton.
2301
2302         * config/rs6000/altivec.h (vec_recipdiv): Define new vector builtin.
2303         (vec_rsqrt): Ditto.
2304
2305 2010-06-03  Richard Guenther  <rguenther@suse.de>
2306
2307         PR middle-end/44291
2308         * optabs.c (init_one_libfunc): Use IDENTIFIER_HASH_VALUE.
2309         (set_user_assembler_libfunc): Likewise.
2310
2311 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
2312
2313         * mkconfig.sh: Include insn-flags.h and insn-constants.h before
2314         defaults.h.
2315         * except.h: Move MUST_USE_SJLJ_EXCEPTIONS and USING_SJLJ_EXCEPTIONS
2316         to defaults.h
2317         * expr.h (BRANCH_COST, MOVE_RATIO, CLEAR_RATIO, SET_RATIO,
2318         DEFAULT_FUNCTION_ARG_PADDING, FUNCTION_ARG_PADDING,
2319         FUNCTION_ARG_BOUNDARY, STACK_SAVEAREA_MODE, STACK_SIZE_MODE,
2320         STACK_CHECK_BUILTIN, STACK_CHECK_STATIC_BUILTIN,
2321         STACK_CHECK_PROBE_INTERVAL_EXP, STACK_CHECK_MOVING_SP,
2322         STACK_OLD_CHECK_PROTECT, STACK_CHECK_PROTECT,
2323         STACK_CHECK_MAX_FRAME_SIZE, STACK_CHECK_FIXED_FRAME_SIZE,
2324         STACK_CHECK_MAX_VAR_SIZE): Move target macro defaults to defaults.h.
2325         * defaults.h: Updated for above mentioned changes.
2326
2327 2010-06-02  Kai Tietz  <kai.tietz@onevision.com>
2328
2329         * c-common.c: Remove header include of tm_p.h.
2330         * Makefile.in (c-common.o): Remove TM_P_H dependency.
2331
2332 2010-06-02  Jakub Jelinek  <jakub@redhat.com>
2333
2334         * tree.h (struct tree_decl_map): New type.
2335         (tree_decl_map_eq, tree_decl_map_marked_p): Define.
2336         (tree_decl_map_hash): New prototype.
2337         (debug_expr_for_decl, value_expr_for_decl): Change into
2338         tree_decl_map hashtab from tree_map.
2339         (init_ttree): Adjust initialization.
2340         (tree_decl_map_hash): New function.
2341         (decl_debug_expr_lookup, decl_debug_expr_insert,
2342         decl_value_expr_lookup, decl_value_expr_insert): Adjust.
2343
2344 2010-06-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
2345
2346         * configure.ac (gcc_cv_ld_sol2_emulation): Test for GNU ld *_sol2
2347         linker emulations.
2348         * configure: Regenerate.
2349         * config.in: Regenerate.
2350
2351         * config/i386/sol2-10.h [TARGET_GNU_LD] (I386_EMULATION): Define.
2352         (X86_64_EMULATION): Define.
2353         (TARGET_LD_EMULATION): Use them.
2354
2355         * config/sparc/sol2-gld-bi.h (SPARC32_EMULATION): Define.
2356         (SPARC64_EMULATION): Define.
2357         (LINK_ARCH_SPEC): Use them.
2358
2359 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
2360
2361         * graphite-clast-to-gimple.c (gcc_type_for_interval): Use
2362         smallest_mode_for_size for computing the precision types of new
2363         graphite IVs.  Do not call lang_hooks.types.type_for_size.
2364
2365 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
2366
2367         * tree-if-conv.c (predicate_bbs): Do not reset the GIMPLE_DEBUG
2368         information.
2369         (remove_conditions_and_labels): Reset the GIMPLE_DEBUG information.
2370
2371 2010-06-02  Sebastian Pop  <sebastian.pop@amd.com>
2372
2373         PR middle-end/44363
2374         * tree-if-conv.c (predicate_bbs): Do not call gcc_unreachable,
2375         return false instead.
2376
2377 2010-06-02  Jan Hubicka  <jh@suse.cz>
2378
2379         PR middle-end/44295
2380         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Do not
2381         create new cgraph node to check callee.
2382
2383 2010-06-02  Richard Guenther  <rguenther@suse.de>
2384
2385         * lto-streamer-in.c (input_gimple_stmt): Fix typo.
2386
2387 2010-06-02  Richard Guenther  <rguenther@suse.de>
2388
2389         * lto-wrapper.c (lto_wrapper_exit): Rename to ...
2390         (lto_wrapper_cleanup): ... this.  Do not exit.
2391         (fatal): Adjust.  Exit here.
2392         (fatal_perror): Likewise.
2393         (fatal_signal): New function.
2394         (main): Set up signal handlers to cleanup temporary files.
2395         * Makefile.in (lto-wrapper.o): Adjust dependencies.
2396
2397 2010-06-02  Richard Guenther  <rguenther@suse.de>
2398
2399         PR tree-optimization/44377
2400         * tree-ssa-structalias.c (find_func_aliases): Fix typo.
2401
2402 2010-06-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
2403
2404         * config/s390/2097.md (z10_fhex): Remove insn reservation.
2405         * config/s390/s390.md (UNSPEC_COPYSIGN): Remove unused constant.
2406         (*mov<mode>_64 TD_TF, *mov<mode>_31 TD_TF, *mov<mode>_64dfp DD_DF,
2407         *mov<mode>_64 DD_DF, *mov<mode>_31, mov<mode>): Remove load zero
2408         instruction.
2409         * config/s390/s390.c: Don't accept fp zeros as valid constants anymore.
2410
2411 2010-06-02  Jan Hubicka  <jh@suse.cz>
2412
2413         * bitmap.c (bitmap_descriptor): Add search_iter.
2414         (bitmap_find_bit): Increment it.
2415         (print_statistics): Print it.
2416
2417 2010-06-02  Nathan Froyd  <froydnj@codesourcery.com>
2418
2419         * tree-vect-slp.c (vect_create_mask_and_perm): Use gimple_build_call
2420         instead of gimple_build_call_vec.  Delete unnecessary local variable.
2421
2422 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
2423
2424         * gimplify.c (gimplify_body): Revert "Do not initialize RTL profiling"
2425         change from yesterday.
2426
2427 2010-06-02  Steven Bosscher  <steven@gcc.gnu.org>
2428
2429         * c-ada-spec.c: Clean up redundant includes.
2430
2431 2010-06-01  Steven Bosscher  <steven@gcc.gnu.org>
2432
2433         * gimplify.c: Do not include except.h and optabs.h.
2434         (gimplify_body): Do not initialize RTL profiling.
2435         * gimple-low.c: Do not include rtl.h, diagnostic.h, langhooks.h,
2436         langhooks-def.h, timevar.h, except.h, hashtab.h, and expr.h.
2437         * gimple-fold.c: Do not include rtl.h, tm_p.h, ggc.h, basic-block.h,
2438         output.h, expr.h, diagnostic.h, timevar.h, value-prof.h, and
2439         langhooks.h.
2440
2441         * tree-pretty-print.h: Include pretty-print.h.
2442         * gimple-pretty-print.h: Include pretty-print.h.
2443
2444         * tree-pretty-print.c: Do not include diagnostic.h.
2445         * tree-vrp.c: Likewise.
2446         * tree-tailcall.c: Likewise
2447         * tree-scalar-evolution.c: Likewise
2448         * tree-ssa-dse.c: Likewise
2449         * tree-chrec.c: Likewise
2450         * tree-ssa-sccvn.c: Likewise
2451         * tree-ssa-copyrename.c: Likewise
2452         * tree-nomudflap.c: Likewise
2453         * tree-call-cdce.c: Likewise
2454         * tree-stdarg.c: Likewise
2455         * tree-ssa-math-opts.c: Likewise
2456         * tree-nrv.c: Likewise
2457         * tree-ssa-sink.c: Likewise
2458         * tree-browser.c: Likewise
2459         * tree-ssa-loop-ivcanon.c: Likewise
2460         * tree-ssa-loop.c: Likewise
2461         * tree-parloops.c: Likewise
2462         * tree-ssa-address.c: Likewise
2463         * tree-ssa-ifcombine.c: Likewise
2464         * tree-if-conv.c: Likewise
2465         * tree-data-ref.c: Likewise
2466         * tree-affine.c: Likewise
2467         * tree-ssa-phiopt.c: Likewise
2468         * tree-ssa-coalesce.c: Likewise
2469         * tree-ssa-pre.c: Likewise
2470         * tree-ssa-live.c: Likewise
2471         * tree-predcom.c: Likewise
2472         * tree-ssa-forwprop.c: Likewise
2473         * tree-ssa-dce.c: Likewise
2474         * tree-ssa-ter.c: Likewise
2475         * tree-ssa-loop-prefetch.c: Likewise
2476         * tree-optimize.c: Likewise
2477         * tree-ssa-phiprop.c: Likewise
2478         * tree-object-size.c: Likewise
2479         * tree-outof-ssa.c: Likewise
2480         * tree-ssa-structalias.c: Likewise
2481         * tree-switch-conversion.c: Likewise
2482         * tree-ssa-reassoc.c: Likewise
2483         * tree-ssa-operands.c: Likewise
2484         * tree-vectorizer.c: Likewise
2485         * tree-vect-data-refs.c: Likewise
2486         * tree-vect-generic.c: Likewise
2487         * tree-vect-stmts.c: Likewise
2488         * tree-vect-patterns.c: Likewise
2489         * tree-vect-slp.c: Likewise
2490         * tree-vect-loop.c: Likewise
2491         * tree-ssa-loop-ivopts.c: Likewise
2492         * tree-ssa-loop-im.c: Likewise
2493         * tree-ssa-loop-niter.c: Likewise
2494         * tree-ssa-loop-unswitch.c: Likewise
2495         * tree-ssa-loop-manip.c: Likewise
2496         * tree-ssa-loop-ch.c: Likewise
2497         * tree-dump.c: Likewise
2498         * tree-complex.c: Likewise
2499
2500         * tree-into-ssa.c: Do not include diagnostic.h and expr.h.
2501         * tree-ssa-uninit.c: Likewise
2502         * tree-ssa-threadupdate.c: Likewise
2503         * tree-ssa-uncprop.c: Likewise
2504         * tree-ssa-ccp.c: Likewise
2505         * tree-ssa-dom.c: Likewise
2506         * tree-ssa-propagate.c: Likewise
2507         * tree-ssa-alias.c: Likewise
2508         * tree-dfa.c: Likewise
2509         * tree-cfgcleanup.c: Likewise
2510         * tree-sra.c: Likewise
2511         * tree-ssa-copy.c: Likewise
2512         * tree-ssa.c: Likewise
2513         * tree-profile.c: Likewise
2514         * tree-cfg.c: Likewise
2515         * tree-ssa-threadedge.c: Likewise
2516         * tree-vect-loop-manip.c: Likewise
2517
2518         * tree-inline.c: Do not include diagnostic.h and expr.h.
2519         Include rtl.h.
2520         (copy_decl_for_dup_finish): Do not use NULL_RTX.
2521
2522         * tree-loop-linear.c: Do not include diagnostic.h, expr.h and optabs.h.
2523         * tree-loop-distribution.c: Likewise.
2524
2525 2010-06-01  Jan Hubicka  <jh@suse.cz>
2526
2527         * ipa-pure-const.c (local_pure_const): Do NORETURN discovery.
2528
2529 2010-06-01  Jan Hubicka  <jh@suse.cz>
2530
2531         * tree-cfgcleanup.c (fixup_noreturn_call): Break out from ...;
2532         remove return value.
2533         (split_bbs_on_noreturn_calls) .... here.
2534         * tree-optimize.c (execute_fixup_cfg): Fixup noreturn calls too.
2535         * tree-flow.h (fixup_noreturn_call): New.
2536
2537 2010-06-01  Jan Hubicka  <jh@suse.cz>
2538
2539         * emit-rtl.c (remove_insn): Fix thinko in prevoius patch.
2540
2541 2010-06-01  Nathan Froyd  <froydnj@codesourcery.com>
2542
2543         * tree.h (build_nt_call_list): Delete.
2544         * tree.c (build_nt_call_list): Delete.
2545
2546 2010-06-01  Jan Hubicka  <jh@suse.cz>
2547
2548         * fwprop.c: Make emit-rtl.h include last.
2549         * rtlanal.c: Include emit-rtl.h.
2550         * genautomata.c: Output emit-rtl include into insn-automata.c
2551         * df-scan.c: Include emit-rtl.h.
2552         * haifa-sched.c: Indlude emit-rtl.h.
2553         * mode-switching.c: Indlude emit-rtl.h.
2554         * graph.c: Indlude emit-rtl.h.
2555         * sel-sched.c: Include emit-rtl.h.
2556         * sel-sched-ir.c: Include emit-rtl.h.
2557         * ira-build.c: Include emit-rtl.h.
2558         * emit-rtl.c: (first_insn, last_insn): Remove defines.
2559         (get_insns, set_first_insn, get_last_insn, set_last_insn, get_max_uid):
2560         Move to emit-rtl.h.
2561         (set_new_first_and_last_insn, get_last_insn_anywhere,
2562         get_first_nonnote_insn, get_last_nonnote_insn, try_split,
2563         make_call_insn_raw, add_insn_after, add_insn_before, remove_insn,
2564         delete_insns_since, reorder_insns_nobb, emit_insn_after_1,
2565         emit_debug_insn_before, emit_insn, start_sequence, push_to_sequence,
2566         push_to_sequence2, push_topmost_sequence, end_sequence, copy_insn):
2567         Use accessor functions.
2568         * emit-rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
2569          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
2570         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
2571         mem_expr_equal_p): Move here from rtl.h.
2572         (get_insns, set_first-insn, get_last_insn, set_last_insn, get_max_uid):
2573         Move here from emit-rtl.c; make inline.
2574         * cfglayout.h: Include emit-rtl.h.
2575         * rtl.h (gen_blockage, gen_rtvec, copy_insn_1, copy_insn,
2576          gen_int_mode, emit_copy_of_insn_after, set_reg_attrs_from_value,
2577         set_reg_attrs_for_parm, set_reg_attrs_for_decl_rtl, adjust_reg_mode,
2578         mem_expr_equal_p, get_insns, set_first-insn,
2579         get_last_insn, set_last_insn, get_max_uid): Move to emit-rtl.h.
2580         * reg-stack.c: Include emit-rtl.h.
2581         * dce.c: Likewise.
2582
2583 2010-06-01  Jan Hubicka  <jh@suse.cz>
2584
2585         * cgraph.h (tree_function_versioning): Update prototype.
2586         (cgraph_function_versioning): Update prototype.
2587         * cgraphunit.c (cgraph_copy_node_for_versioning): Accept bbs_to_copy
2588         bitmap.
2589         (cgraph_function_versioning): Accept new_entry_block and bbs_to_copy.
2590         (cgraph_materialize_clone, save_inline_function_body): Update use of
2591         tree_function_versioning.
2592         * tree-inline.c (copy_bb): Look for previous copied block to link
2593         after; fix debug output.
2594         (copy_cfg_body): Accept new_entry_block and bbs_to_copy.
2595         (copy_body): Likewise.
2596         (expand_call_inline): Update use of copy_body.
2597         (tree_function_versioning): Update use of copy body; accept
2598         blocks_to_copy and new_entry.
2599
2600 2010-06-01  Jan Hubicka  <jh@suse.cz>
2601
2602         * gegenrtl.c: Remove unnecesary prototypes.
2603         (gendecl): Remove.
2604         (gendef): Produce static inline.
2605         (gencode): Remove.
2606         (main): Do not decode parameters; generate header only.
2607         * Makefile.in (genrtl.c): Remove.
2608
2609 2010-06-01  Jan Hubicka  <jh@suse.cz>
2610
2611         * tree-switch-conversion.c (build_one_array): Make it readonly.
2612
2613 2010-06-01  Richard Guenther  <rguenther@suse.de>
2614
2615         * optabs.c (init_optabs): Guard all accesses to reinit.
2616         * ipa-pure-const.c (propagate): Fix another typo.
2617         * opts.c (common_handle_option): Split assignment to bool.
2618         * c-opts.c (c_common_handle_option): Likewise.
2619
2620 2010-06-01  Arnaud Charlet  <charlet@adacore.com>
2621             Matthew Gingell  <gingell@adacore.com>
2622
2623         * doc/invoke.texi: Mention -fdump-ada-spec.
2624         * tree-dump.c (dump_files): Add ada-spec.
2625         (FIRST_AUTO_NUMBERED_DUMP): Bump to 8.
2626         * tree-pass.h (tree_dump_index): Add TDI_ada.
2627         * gcc.c: Add support for -C without -E and for -fdump-ada-spec.
2628         (cpp_unique_options): Do not reject -C or -CC when -E isn't present.
2629         (default_compilers) <@c-header>: Allow -fdump-ada-spec on header files.
2630         * c-decl.c: Include c-ada-spec.h.
2631         (collect_source_ref_cb, collect_all_refs, for_each_global_decl): New
2632         functions.
2633         (c_write_global_declarations): Add handling of -fdump-ada-spec.
2634         * c-lex.c (c_lex_with_flags): Add handling of CPP_COMMENT.
2635         * Makefile.in (C_AND_OBJC_OBJS): Add c-ada-spec.o.
2636         * c-ada-spec.h, c-ada-spec.c: New files.
2637
2638 2010-06-01  Richard Guenther  <rguenther@suse.de>
2639
2640         PR lto/43853
2641         * ipa-pure-const.c (get_function_state): Hand back varying state
2642         if we do not have one.
2643         (has_function_state): New function.
2644         (duplicate_node_data): Adjust.
2645         (remove_node_data): Likewise.
2646         (pure_const_write_summary): Likewise.
2647         (propagate): Likewise.  Fix typo.
2648
2649 2010-06-01  Jan Hubicka  <jh@suse.cz>
2650
2651         * tree-cfg.c (verify_stmt): Do not skip could_throw test.
2652         * passes.c (execute_function_todo): Do not make implicit verify_ssa.
2653         (execute_all_ipa_transforms): Do not play with the states.
2654
2655 2010-06-01  Maxim Kuvyrkov  <maxim@codesourcery.com>
2656
2657         * config/arm/t-linux-androideabi: New.
2658         * config.gcc (arm*-*-linux-androideabi): Include multilib config.
2659
2660 2010-06-01  Jan Hubicka  <jh@suse.cz>
2661
2662         * tree-inline.c (estimate_num_insns): For stdarg functions look
2663         into call statement to count cost of argument passing.
2664
2665 2010-06-01  Kai Tietz  <kai.tietz@onevision.com>
2666
2667         * config/i386.c (ix86_output_addr_vec_elt): Make LPREFIX
2668         argument for fprintf.
2669         (ix86_output_addr_diff_elt): Likewise.
2670         (x86_function_profiler): Likewise.
2671         * config/cygming.h (LOCAL_LABEL_PREFIX): Fix for x64 no-underscore.
2672         (LPREFIX): Likewise.
2673         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
2674
2675 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
2676
2677         PR target/44338
2678         * config/i386/sse.md (fma4i_fmadd<mode>4256, fma4i_fmsub<mode>4256,
2679         fma4i_fnmadd<mode>4256, fma4i_fnmsub<mode>4256, fma4i_fmadd<mode>4,
2680         fma4i_fmsub<mode>4, fma4i_fnmadd<mode>4, fma4i_fnmsub<mode>4,
2681         fma4i_vmfmadd<mode>4, fma4i_vmfmsub<mode>4, fma4i_vmfnmadd<mode>4,
2682         fma4i_vmfnmsub<mode>4, fma4i_fmaddsubv8sf4, fma4i_fmaddsubv4df4,
2683         fma4i_fmaddsubv4sf4, fma4i_fmaddsubv2df4, fma4i_fmsubaddv8sf4,
2684         fma4i_fmsubaddv4df4, fma4i_fmsubaddv4sf4, fma4i_fmsubaddv2df4):
2685         Guard only with TARGET_FMA4 instead of TARGET_FMA4 &&
2686         TARGET_FUSED_MADD.
2687
2688 2010-05-31  Jan Hubicka  <jh@suse.cz>
2689
2690         * tree.h (tree_range_check_failed): Declare noreturn.
2691
2692 2010-05-31  Jan Hubicka  <jh@suse.cz>
2693
2694         * gimple.c (gimple_call_builtin_p): New function.
2695         * gimple.h (gimple_call_builtin_p): Declare.
2696         * tree-cfg.c (make_edges): Produce edge from BUILT_IN_RETURN
2697         to exit.
2698         (execute_warn_function_return): BUILT_IN_RETURN is return.
2699         (split_critical_edges): Return edges are not critical.
2700         (is_ctrl_altering_stmt): Builtin_in_return is altering.
2701         (gimple_verify_flow_info): Handle built_in_return.
2702         (execute_warn_function_return): Handle built_in_return.
2703         * ipa-pure-const.c (check_call): Ignore builtin_return.
2704
2705 2010-05-31  Jakub Jelinek  <jakub@redhat.com>
2706
2707         PR middle-end/44337
2708         * expr.c (expand_assignment): Don't store anything for out-of-bounds
2709         array accesses with non-MEM.
2710
2711         PR tree-optimization/44182
2712         * tree-inline.c (copy_edges_for_bb): Don't split bb if a stmt that
2713         newly needs to end a bb is followed by debug stmts, instead return
2714         true from the function at the end.
2715         (maybe_move_debug_stmts_to_successors): New function.
2716         (copy_cfg_body): Call it if copy_edges_for_bb returned true.
2717
2718 2010-05-31  Kai Tietz  <kai.tietz@onevision.com>
2719
2720         PR target/44161
2721         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Handle flag_pic.
2722
2723 2010-05-31  Eric Botcazou  <ebotcazou@adacore.com>
2724
2725         * cgraphunit.c (cgraph_decide_is_function_needed): Really return false
2726         for nested functions in non-optimized compilation.
2727
2728 2010-05-31  Richard Guenther  <rguenther@suse.de>
2729
2730         * tree-ssa-structalias.c (find_func_aliases): Handle BUILT_IN_RETURN.
2731
2732 2010-05-30  Jan Hubicka  <jh@suse.cz>
2733
2734         * predict.c (maybe_hot_edge_p): Calls to functions called once is cold.
2735
2736 2010-05-30  Richard Guenther  <rguenther@suse.de>
2737
2738         PR lto/42975
2739         * tree-eh.c (execute_cleanup_eh_1): Copy from execute_cleanup_eh.
2740         (execute_cleanup_eh): Clear DECL_FUNCTION_PERSONALITY if it is
2741         no longer needed.
2742
2743 2010-05-30  Iain Sandoe  <iains@gcc.gnu.org>
2744
2745         * config/darwin.c (output_objc_section_asm_op): Add comment.
2746         (name_needs_quotes): Add '_' to list of valid comment chars.
2747         (machopic_output_function_base_name): Remove unneeded quotes.
2748         (darwin_encode_section_info): Adjust asm whitespace.
2749         * config/i386/darwin.h (ASM_OUTPUT_COMMON): Adjust asm tabs.
2750         (ASM_OUTPUT_LOCAL): Ditto.
2751         * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Ditto.
2752         * config/darwin.h (GLOBAL_ASM_OP): Ditto.
2753         * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Ditto.
2754
2755 2010-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2756
2757         * config/rs6000/rs6000.c (rs6000_output_function_entry): Use
2758         RS6000_OUTPUT_BASENAME unconditionally.
2759         (rs6000_output_function_epilogue): Likewise.
2760
2761 2010-05-30  Jan Hubicka  <jh@suse.cz>
2762
2763         * toplev.c (wrapup_global_declaration_2): Avoid creation of new varpool
2764         nodes.
2765
2766 2010-05-30  Richard Guenther  <rguenther@suse.de>
2767
2768         * tree-cfg.c (verify_gimple_assign_single): Implement
2769         verification for COND_EXPR rhs.
2770
2771 2010-05-30  Jan Hubicka  <jh@suse.cz>
2772
2773         * cgraph.h (cgraph_dump_file): Declare.
2774         * cgraphunit.c (cgraph_dump_file): Export.
2775         * ipa.c (dump_cgraph_node_set, dump_varpool_node_set): Be less verbose.
2776
2777 2010-05-30  Jan Hubicka  <jh@suse.cz>
2778
2779         * dwarf2out.c (reference_to_unused,
2780         premark_types_used_by_global_vars_helper): Avoid creation of new
2781         varpool nodes.
2782
2783 2010-05-30  Jan Hubicka  <jh@suse.cz>
2784
2785         * cgraph.h (cgraph_node_cannot_return,
2786         cgraph_edge_cannot_lead_to_return): New functions.
2787         * cgraph.c (cgraph_node_cannot_return,
2788         cgraph_edge_cannot_lead_to_return): Use them.
2789         * ipa-pure-const.c (pure_const_names): New static var.
2790         (check_call): Handle calls not leading to return.
2791         (pure_const_read_summary): Dump info read.
2792         (propagate): Dump info about propagation process; ignore side effects
2793         of functions not leading to exit; fix handling of pure functions.
2794
2795 2010-05-30  Jan Hubicka  <jh@suse.cz>
2796
2797         * config/i386/i386.c (pro_epilogue_adjust_stack): Use EBP
2798         for tail call epilogues.
2799
2800 2010-05-30  Jan Hubicka  <jh@suse.cz>
2801
2802         * passes.c (ipa_write_optimization_summaries_1, ipa_write_summaries_2,
2803         ipa_read_summaries_1, ipa_read_optimization_summaries_1): Initialize
2804         dump files.
2805
2806 2010-05-29  Jan Hubicka  <jh@suse.cz>
2807
2808         * ipa.c (cgraph_remove_unreachable_node): Walk references of correct
2809         node; remove references in node we no longer keep in cgrpah but need
2810         body of.
2811
2812 2010-05-29  Jan Hubicka  <jh@suse.cz>
2813
2814         * cgraph.c (cgraph_mark_reachable): Relax check for analyzed nodes.
2815
2816 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2817
2818         PR target/44165
2819         * config/pa/pa32-linux.h (CTOR_LIST_BEGIN): Mark __CTOR_LIST__ as used.
2820
2821 2010-05-29  Jan Hubicka  <jh@suse.cz>
2822
2823         * tree-vrp.c (debug_value_range, debug_all_value_ranges,
2824         debug_asserts_for, debug_all_asserts): Annotate with DEBUG_FUNCTION.
2825         * tree-into-ssa.c (debug_decl_set, debug_defs_stack, debug_currdefs,
2826         debug_tree_ssa, debug_tree_ssa_stats, debug_def_blocks,
2827         debug_names_replaced_by, debug_update_ssa): Likewise.
2828         * sbitmap.c (debug_sbitmap): Likewise.
2829         * genrecog.c (debug_decision, debug_decision_list): Likewise.
2830         * tree-pretty-print.c (debug_generic_expr, debug_generic_stmt,
2831         debug_tree_chain): Likewise.
2832         * tree-loop-distribution.c (debug_rdg_partitions): Likewise.
2833         * cgraph.c (debug_cgraph_node, debug_cgraph): Likewise.
2834         * optabs.c  (debug_optab_libfuncs): Likewise.
2835         (verify_loop_closed_ssa): Likewise.
2836         * value-prof.c (verify_histograms): Likewise.
2837         * reload.c (debug_reload_to_stream, debug_reload): Likewise.
2838         * bitmap.c (debug_bitmap_file, debug_bitmap, bitmap_print): Likewise.
2839         * cfghooks.c (verify_flow_info): Likewise.
2840         * fold-const.c (debug_fold_checksum): Likewise.
2841         * omp-low.c (debug_omp_region, debug_all_omp_regions): Likewise.
2842         * cfg.c (debug_regset, debug_flow_info, debug_bb, debug_bb_n):
2843         Likewise.
2844         * omega.c (debug_omega_problem): Likewise.
2845         * cgraphunit.c (verify_cgraph_node, verify_cgraph): Likewise.
2846         * tree-ssa-ccp.c (debug_lattice_value): Likewise.
2847         * dominance.c (verify_dominators, debug_dominance_info,
2848         debug_dominance_tree): Likewise.
2849         * df-core.c (df_insn_uid_debug, df_insn_debug, df_insn_debug_regno,
2850         * df_regno_debug, df_ref_debug,
2851         debug_df_insn, debug_df_reg, debug_df_regno, debug_df_ref,
2852         debug_df_defno, debug_df_useno, debug_df_chain): Likewise.
2853         * tree-ssa-dom.c (debug_dominator_optimization_stats): Likewise.
2854         * sel-sched.c (debug_state): Likewise.
2855         * tree-ssa-alias.c (debug_alias_info, debug_points_to_info_for):
2856         Likewise.
2857         * cfganal.c (print_edge_list, verify_edge_list): Likewise.
2858         * dwarf2out.c (debug_dwarf_die, debug_dwarf): Likewise.
2859         * tree-eh.c (verify_eh_edges, verify_eh_dispatch_edge): Likewise.
2860         * gimple-pretty-print.c (debug_gimple_stmt, debug_gimple_seq):
2861         Likewise.
2862         * c-pretty-print.c (debug_c_tree): Likewise.
2863         * sel-sched-dump.c (debug_insn_rtx, debug_vinsn, debug_expr, debug_insn
2864         debug_av_set, debug_lv_set, debug_ilist, debug_blist,
2865         debug_insn_vector, debug_hard_reg_set, debug_mem_addr_value): Likewise.
2866         * ebitmap.c (debug_ebitmap): Likewise.
2867         * function.c (debug_find_var_in_block_tree): Likewise.
2868         * print-rtl.c (debug_rtx): Likewise.
2869         (debug_rtx_count): Likewise.
2870         (debug_rtx_list, debug_rtx_range, debug_rtx_find): Likewise.
2871         * stor-layout.c (debug_rli): Likewise.
2872         * ipa.c (debug_cgraph_node_set, debug_varpool_node_set): Likewise.
2873         * tree-data-ref.c (debug_data_references,
2874         debug_data_dependence_relations, debug_data_reference,
2875         debug_data_dependence_relation, debug_rdg_vertex,
2876         debug_rdg_component, debug_rdg): Likewise.
2877         * tree-affine.c (debug_aff): Likewise.
2878         * tree-dfa.c (debug_referenced_vars, debug_variable, debug_dfa_stats):
2879         Likewise.
2880         * except.c (debug_eh_tree, verify_eh_tree): Likewise.
2881         * emit-rtl.c (verify_rtl_sharing): Likewise.
2882         * tree-ssa-pre.c (debug_pre_expr, debug_bitmap_set,
2883         debug_value_expressions): Likewise.
2884         * tree-ssa-live.c (debug_scope_block, debug_scope_blocks): Likewise.
2885         * sese.c (debug_rename_map, debug_ivtype_map): Likewise.
2886         * print-tree.c (debug_tree, debug_vec_tree): Likewise.
2887         * cfglayout.c (verify_insn_chain): Likewise.
2888         * graphite-clast-to-gimple.c (debug_clast_name_indexes,
2889         debug_clast_stmt, debug_generated_program): Likewise.
2890         * ggc-page.c (debug_print_page_list): Likewise.
2891         * tree-ssa-ter.c (debug_ter): Likewise.
2892         * graphite-dependences.c (debug_pddr): Likewise.
2893         * sched-deps.c (debug_ds): Likewise.
2894         * tree-ssa.c (verify_ssa): Likewise.
2895         * graphite-poly.c (debug_scattering_function, debug_iteration_domain,
2896         debug_scattering_functions, debug_iteration_domains, debug_pdr,
2897         debug_pdrs, debug_pbb_domain, debug_pbb, debug_scop_context,
2898         debug_scop, debug_cloog, debug_scop_params, debug_lst): Likewise.
2899         * tree-inline.c (debug_find_tree): Likewise.
2900         * graphite-ppl.c (debug_ppl_linear_expr, debug_ppl_polyhedron_matrix,
2901         debug_ppl_powerset_matrix): Likewise.
2902         * var-tracking.c (debug_dv): Likewise.
2903         * system.h (DEBUG_FUNCTION, DEBUG_VARIABLE): Define.
2904         * cfgloop.c (verify_loop_structure): Likewise.
2905         * plugin.c (dump_active_plugins, debug_active_plugins): Likewise.
2906         * c-common.c (verify_sequence_points): Likewise.
2907         * sched-rgn.c (debug_regions, debug_region, debug_candidate,
2908         debug_candidates, debug_rgn_dependencies): Likewise.
2909         * tree-ssa-structalias.c (debug_constraint, debug_constraints,
2910         * debug_constraint_graph, debug_solution_for_var,
2911         debug_sa_points_to_info): Likewise.
2912         * sched-vis.c (debug_insn_slim, debug_bb_slim, debug_bb_n_slim):
2913         Likewie.
2914         * tree-cfg.c (debug_cfg_stats, verify_stmts, debug_function,
2915         debug_loops, debug_loop, debug_loop_num): Likewise.
2916         * passes.c (debug_pass): Likewise.
2917         (dump_properties): Likewise; add cfglayout property.
2918         (debug_properties): Likewise.
2919         * tree-ssa-reassoc.c (debug_ops_vector): Likewise.
2920         * varpool.c (debug_varpool): Likewise.
2921         * regcprop.c (debug_value_data): Likewise.
2922         * tree-ssa-operands.c (verify_imm_links, debug_immediate_uses,
2923         debug_immediate_uses_for): Likewise.
2924
2925 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2926
2927         PR bootstrap/44315
2928         * Makefile.in (build/gencondmd.o): Remove TM_H := $(GTM_H).
2929         Filter out insn-flags.h.
2930
2931 2010-05-29  Jan Hubicka  <jh@suse.cz>
2932
2933         * cgraph.h (struct varpool_node_set_def,
2934         struct cgraph_node_set_def): Remove unused AUX pointer.
2935         (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p): Use
2936         VEC_empty macro.
2937
2938 2010-05-29  Jan Hubicka  <jh@suse.cz>
2939
2940         PR middle-end/44324
2941         * ipa-cp.c (ipcp_insert_stage): Replace "clone" by "constprop".
2942
2943 2010-05-29  Richard Guenther  <rguenther@suse.de>
2944
2945         * lto-streamer.c (cached_bp): New global variable.
2946         (bitpack_create): Return the cached bitpack, if available.
2947         (bitpack_delete): Clear and cache the bitpack, if appropriate.
2948         (bp_pack_value): Remove redundant asserts.
2949
2950 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
2951
2952         PR middle-end/44306
2953         * tree-if-conv.c (is_true_predicate): New.
2954         (is_predicated): Use is_true_predicate.
2955         (add_to_predicate_list): Same.  Do not use unshare_expr.
2956         (add_to_dst_predicate_list): Same.
2957
2958 2010-05-29  Sebastian Pop  <sebastian.pop@amd.com>
2959
2960         * tree-if-conv.c (add_to_dst_predicate_list): Do not use the ->aux
2961         field on edges.
2962         (predicate_bbs): Same.
2963         (clean_predicate_lists): Same.
2964         (find_phi_replacement_condition): Do not AND the predicate from
2965         edge->aux.
2966
2967 2010-05-29  H.J. Lu  <hongjiu.lu@intel.com>
2968
2969         PR bootstrap/44315
2970         * Makefile.in (build/gencondmd.o): Add a missing `\'.
2971
2972 2010-05-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2973
2974         PR target/44261
2975         config/pa/pa.md (negdf2_slow, negsf2_slow): New patterns.
2976         (negdf2): Adjust expander pattern and use negdf2_slow.
2977         (negsf2): Likewise.
2978
2979 2010-05-29  Nathan Froyd  <froydnj@codesourcery.com>
2980
2981         * basic-block.h (struct control_flow_graph): Move last_label_uid field
2982         up.
2983         * df.h (struct df_base_ref): Move regno field up.
2984         * dwarf2out.c (struct dw_fde_struct): Move funcdef_number field down.
2985         * expr.h (struct separate_ops): Move location field up.
2986         * optabs.h (struct optab_d): Move libcall_basename field down.
2987         * config/i386/i386.c (struct ix86_frame): Move red_zone_size up.
2988         * config/i386/i386.h (struct machine_function): Convert call_abi field
2989         into a bitfield.  Move cfa field to the end of the structure.
2990
2991 2010-05-29  Jan Hubicka  <jh@suse.cz>
2992
2993         * varpool.c (varpool_get_node): Fix lookup.
2994
2995 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
2996
2997         * config/spu/spu-protos.h: Do not include rtl.h.  Protect
2998         RTL specific prototypes with #ifdef RTX_CODE.
2999         * config/spu/spu-c.c: Include c-common.h instead of c-tree.h.
3000         * config/spu/t-spu-elf: Fix dependencies.
3001
3002         * config/t-darwin (darwin-c.o): Remove C_TREE_H dependency.
3003
3004 2010-05-29  Mike Stump  <mikestump@comcast.net>
3005
3006         PR bootstrap/44315
3007         * Makefile.in (build/gencondmd.o): Be sure to use GTM_H instead of
3008         TM_H when building to avoid dependency loops.
3009
3010 2010-05-29  Jan Hubicka  <jh@suse.cz>
3011
3012         * cgraphunit.c (cgraph_materialize_clone): Only remove calles,
3013         refs and body; not the whole node for masters of materialized
3014         clones.
3015
3016 2010-05-29  Mike Stump  <mikestump@comcast.net>
3017
3018         * config/rs6000/rs6000-c.c: Remove c-tree.h include.
3019
3020 2010-05-29  Jan Hubicka  <jh@suse.cz>
3021
3022         * cgraph.c (clone_function_name): Take SUFFIX argument; export.
3023         (cgraph_create_virtual_clone): Take SUFFIX argument; udpate
3024         use of clone_function_name.
3025         * cgraph.h (cgraph_create_virtual_clone,
3026         cgraph_function_versioning): update prototypes.
3027         (clone_function_name): Declare.
3028         * ipa-cp.c (ipcp_insert_stage): Update call of
3029         cgraph_create_virtual_clone.
3030         * omp-low.c (create_omp_child_function_name): Use
3031         cgraph_create_virtual_clone.
3032         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix edges updating.
3033         (cgraph_function_versioning): Take SUFFIX argument; produce new name
3034         and make decl local.
3035
3036 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
3037
3038         * vec.h: Include statistics.h
3039         * Makefile.in: Introduce VEC_H.  Replace all vec.h dependencies
3040         with VEC_H.
3041
3042 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
3043
3044         * c-lex.c: Do not include c-tree.h.
3045         * c-pretty-print.c: Likewise.
3046         * c-opts.c: Likewise.
3047         * c-gimplify.c: Likewise.
3048         * c-common.c: Likewise.
3049         * c-dump.c: Likewise.  Include c-common.h.
3050
3051 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
3052
3053         * c-common.h (GCC_DIAG_STYLE): Define earlier in the file,
3054         before including diagnostic-core.h.
3055         (c_cpp_error): New prototype moved from c-tree.h.
3056         Use ATTRIBUTE_GCC_DIAG instead of ATTRIBUTE_GCC_CDIAG.
3057         * c-tree.h (ATTRIBUTE_GCC_CDIAG): Remove define.
3058         (pedwarn_c90, perwarn_c99): Use ATTRIBUTE_GCC_DIAG instead.
3059         (c_cpp_error): Prototype moved to c-common.h.
3060         * Makefile.in: Update dependency for C_COMMON_H.
3061
3062 2010-05-29  Steven Bosscher  <steven@gcc.gnu.org>
3063
3064         * c-common.h: Add FIXME for awkward split of c_register_addr_space.
3065         * c-common.c (c_register_addr_space): Remove here.
3066         * c-decl.c (c_register_addr_space): Re-add here.
3067
3068 2010-05-28  Mike Stump  <mikestump@comcast.net>
3069
3070         * config/darwin-c.c: Remove c-tree.h include.
3071
3072 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
3073
3074         * gcc.c: Include diagnostic.h.
3075         (error_count): Remove.  All users changed to use errorcount.
3076         (programname): Remove.  All users changed to use progname.
3077         (fancy_abort, internal_error, fatal_error, error, warning, inform,
3078         fnotice): Remove.
3079         (execute): Don't include "Internal error" and bug reporting
3080         information in argument of internal_error call.
3081         (process_command): Don't increment error_count after calling
3082         perror_with_name.
3083         (input_filename): Rename to gcc_input_filename.  All users
3084         changed.
3085         (main): Call diagnostic_initialize.  Register delete_temp_files
3086         with atexit.  Use seen_error to test for errors.
3087         * gcc.h: Include diagnostic-core.h.
3088         (fatal_error, error, warning): Remove.
3089         * Makefile.in (GCC_H): Add $(DIAGNOSTIC_CORE_H).
3090         (GCC_OBJS): Add diagnostic.o, pretty-print.o and input.o.
3091         (gcc.o): Update dependencies.
3092
3093 2010-05-28  Jeff Law  <law@redhat.com>
3094
3095         * ira.c (ira_bad_reload_regno, ira_build_reload_regno_1): New
3096         functions.
3097         * ira.h (ira_bad_reload_regno): Declare
3098         * reload1.c (allocate_reload_reg): Use ira_bad_reload_regno.
3099
3100         * ira-color.c (update_curr_costs): Free updated hard reg costs.
3101         (ira_reassign_conflict_allocnos): Remove bogus asserts.
3102         (allocno_reload_assign): Likewise.
3103
3104 2010-05-28  Nathan Froyd  <froydnj@codesourcery.com>
3105
3106         * tree-vect-stmts.c (vectorizable_assignment): Call build1 instead of
3107         build1_stat.
3108
3109 2010-05-28  Richard Guenther  <rguenther@suse.de>
3110
3111         PR lto/44312
3112         * lto-streamer-in.c (unpack_ts_fixed_cst_value_fields):
3113         Stream fixed-point constants mode.
3114         (unpack_ts_type_value_fields): Fix width of TYPE_MODE
3115         and TYPE_PRECISION.
3116         * lto-streamer-out.c (pack_ts_fixed_cst_value_fields):
3117         Stream fixed-point constants mode.
3118         (pack_ts_function_decl_value_fields): Fix width of TYPE_MODE
3119         and TYPE_PRECISION.
3120
3121 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
3122
3123         * tree-scalar-evolution.c (set_nb_iterations_in_loop): Inlined in the
3124         only place it was called from.
3125         (number_of_latch_executions): Do not return chrec_dont_know when the
3126         may_be_zero is a runtime condition: instead, return a COND_EXPR
3127         including the may_be_zero condition.
3128         * cfgloop.h (struct loop): Add a note on COND_EXPRs to the comment
3129         of nb_iterations.
3130         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Handle
3131         COND_EXPRs.
3132
3133 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
3134
3135         * tree-if-conv.c (replace_phi_with_cond_gimple_assign_stmt): Don't
3136         generate COND_EXPRs for degenerate_phi_result.
3137
3138 2010-05-28  Sebastian Pop  <sebastian.pop@amd.com>
3139
3140         PR middle-end/44293
3141         * tree-if-conv.c (if_convertible_loop_p): Check the
3142         if-convertibility of phi nodes in non predicated BBs.
3143
3144 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
3145
3146         * gcc.c (error, warning, inform): Remove duplicate ": " in output.
3147
3148 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
3149
3150         PR driver/15303
3151         * gcc.c (inform, warning, inform): New functions.
3152         (fatal_ice): Rename to internal_error; change cmsgid parameter to
3153         gmsgid.  All callers changed.
3154         (notice): Rename to fnotice; add parameter fp.  All callers
3155         changed.
3156         (fatal_error): Rename to fatal_signal.  All users changed.
3157         (fatal): Rename to fatal_error; change cmsgid parameter to
3158         gmsgid.  All callers changed.
3159         (process_command): Use warning instead of error for warnings.
3160         (end_going_arg): Don't use _() around argument of error.
3161         (do_spec_1): Use inform for message from %n specs.  Use warning
3162         instead of error for warnings.
3163         (main): Use inform for comparison messages.  Use warning for
3164         message about unused linker input.
3165         (error): Increment error_count.  Print "error: ".
3166         * gcc.h (fatal): Change to fatal_error.
3167         (warning): Declare.
3168         * config/darwin-driver.c (darwin_default_min_version): Use warning
3169         instead of fprintf for warnings.
3170         * cppspec.c (lang_specific_driver): Use fatal_error instead of
3171         fatal.
3172
3173 2010-05-28  Julian Brown  <julian@codesourcery.com>
3174
3175         * config/arm/thumb2.md (*thumb2_addsi3_compare0): New.
3176         (*thumb2_addsi3_compare0_scratch): New.
3177         * config/arm/constraints.md (Pv): New.
3178         * config/arm/arm.md (*addsi3_compare0): Remove FIXME comment. Use
3179         for ARM mode only.
3180         (*addsi3_compare0_scratch): Likewise.
3181
3182 2010-05-28  Jan Hubicka  <jh@suse.cz>
3183
3184         * ipa-reference.c (add_static_var): Remove redundant all_module_statics
3185         check.
3186         (ipa_reference_write_optimization_summary): Call is_proper_for_analysis
3187         only on local statics.
3188
3189 2010-05-28  Iain Sandoe  <iains@gcc.gnu.org>
3190
3191         * config.gcc (*-*-darwin*): Adjust t-make fragments for Darwin.
3192
3193 2010-05-28  Maxim Kuvyrkov  <maxim@codesourcery.com>
3194
3195         PR bootstrap/44314
3196         * config/alpha/linux.h, config/rs6000/linux.h, config/rs6000/linux64.h
3197         (OPTION_GLIBC): Define.
3198
3199 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
3200
3201         PR debug/41048
3202         * dwarf2out.c (double_int_type_size_in_bits): New function.
3203         (round_up_to_align): Change first argument and return value to
3204         double_int.
3205         (field_byte_offset): Work internally on double_ints.
3206
3207         PR target/43636
3208         * builtins.c (expand_movstr): Use a temporary pseudo instead
3209         of target even when target is not NULL and not const0_rtx, but
3210         fails movstr predicate.
3211         * config/m32c/blkmov.md (movstr): Add predicate to first operand.
3212
3213 2010-05-28  Joseph Myers  <joseph@codesourcery.com>
3214
3215         * final.c (rest_of_clean_state): Use %m in errors instead of
3216         strerror (errno).
3217         * gengtype.c (read_input_list, close_output_files): Use xstrerror
3218         instead of strerror.
3219         * toplev.c (process_options): Use %m in errors instead of strerror
3220         (errno).
3221         * tree-dump.c (dump_begin): Use %m in errors instead of strerror
3222         (errno).
3223
3224 2010-05-28  Uros Bizjak  <ubizjak@gmail.com>
3225
3226         * config/i386/i386.c (ix86_fn_abi_va_list): Make static.
3227         (ix86_canonical_va_list_type): Make static.  Add declaration.
3228         (ix86_enum_va_list): Make static.  Reindent.
3229         * config/i386/i386-protos.h (ix86_fn_abi_va_list): Remove declaration.
3230         (ix86_canonical_va_list_type): Ditto.
3231         (ix86_enum_va_list): Ditto.
3232
3233 2010-05-28  Richard Guenther  <rguenther@suse.de>
3234
3235         * lto-wrapper.c (run_gcc): With -save-temps generate a
3236         user-visible ltrans filename.  Fixup ltrans unit numbering.
3237
3238 2010-05-28  Kai Tietz  <kai.tietz@onevision.com>
3239
3240         * c-common.c (c_common_nodes_and_builtins): Replace use
3241         of TARGET_ENUM_VA_LIST by target hook enum_va_list.
3242         * config/i386/i386.c (TARGET_ENUM_VA_LIST_P): Hook
3243         to ix86_enum_va_list.
3244         * config/i386/i386.h (TARGET_ENUM_VA_LIST): Removed.
3245         * doc/tm.texi (TARGET_ENUM_VA_LIST): Removed.
3246         (TARGET_ENUM_VA_LIST_P): Add hook description.
3247         * target-def.h (TARGET_ENUM_VA_LIST_P): Added.
3248         * target.h (gcc_target): Add enum_va_list hook.
3249
3250         PR bootstrap/44299
3251         * config/i386/t-cygming: Adjust header dependencies for winnt-cxx.c.
3252         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Remove undefine.
3253         * config/i386/winnt.c (IN_GCC_FRONTEND): Likewise.
3254
3255 2010-05-28  Alan Modra  <amodra@gmail.com>
3256
3257         PR target/44266
3258         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
3259         emit_library_call machinery to set up __tls_get_addr calls.
3260
3261 2010-05-28  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3262
3263         * config/s390/s390.md (movqi): Fix typo ('*' -> '#').
3264
3265 2010-05-28  Dodji Seketeli  <dodji@redhat.com>
3266
3267         Revert fix for PR c++/44188
3268         * c-common.c (is_typedef_decl): Revert the moving of  this
3269         definition ...
3270         * tree.c (is_typedef_decl): ... here.
3271         (typdef_variant_p): Revert the moving of this  definition
3272         here from gcc/cp/tree.c.
3273         * c-common.h (is_typedef_decl): Revert the moving of this
3274         declaration ...
3275         * tree.h (is_typedef_decl): ... here.
3276         (typedef_variant_p): Revert the moving of this  declaration here
3277         from gcc/cp/cp-tree.h
3278         * dwarf2out.c (is_naming_typedef_decl): Revert this new function.
3279         (gen_tagged_type_die): Revert the splitting out of ...
3280         (gen_type_die_with_usage): ... this function. Revert the anonymous
3281         tagged type handling.
3282         (gen_typedef_die): Revert emitting DW_TAG_typedef  for
3283         typedefs naming anonymous tagged types.
3284
3285 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
3286
3287         * config/rs6000/rs6000-modes.def (PSImode): Delete.
3288
3289 2010-05-28  Segher Boessenkool  <segher@kernel.crashing.org>
3290
3291         * config/rs6000/constraints.md ("z" constraint): Change to CA_REGS.
3292         * config/rs6000/predicates.md: Change XER_REGNO_P to CA_REGNO_P
3293         throughout.
3294         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Change
3295         "xer" to "ca".
3296         Change XER_REGNO_P to CA_REGNO_P, XER_REGNO to CA_REGNO, and
3297         XER_REGS to CA_REGS throughout.
3298         * config/rs6000/rs6000.h: Same.
3299         (ADDITIONAL_REGISTER_NAMES): Add "xer".
3300         * config/rs6000/rs6000.md: Change XER_REGNO to CA_REGNO.  Document
3301         that mode_iterator "P" is the size for arithmetic carries as well.
3302         * doc/md.texi (rs6000 section, "z" constraint): Fix documentation.
3303
3304 2010-05-28  Jakub Jelinek  <jakub@redhat.com>
3305
3306         PR bootstrap/44255
3307         * combine.c (struct rtx_subst_pair): Define unconditionally.
3308         (propagate_for_debug_subst): Likewise.  If not AUTO_INC_DEC,
3309         copy_rtx pair->to instead of cleanup_auto_inc_dec it.
3310         Call make_compound_operation on pair->to.
3311         (propagate_for_debug): Don't call make_compound_operation here.
3312         Always use simplify_replace_fn_rtx.
3313
3314 2010-05-27  Sterling Augustine  <sterling@tensilica.com>
3315
3316         * doc/invoke.texi (xtensa options): Add -mforce-no-pic.
3317         * config/xtensa/xtensa.c (override_options): Check
3318           TARGET_FORCE_NO_PIC and set flag_pic.
3319         * config/xtensa/xtensa.opt: Document -mforce-no-pic
3320
3321 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
3322
3323         PR bootstrap/44299
3324         * config/i386/winnt.c (IN_GCC_FRONTEND): Undefine.
3325         * config/i386/winnt-cxx.c (IN_GCC_FRONTEND): Likewise.
3326
3327 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
3328
3329         * diagnostic-core.h: New.  Contents moved from diagnostic.h and
3330         toplev.h.
3331         * diagnostic.c: Don't include toplev.h.
3332         (progname): Define.  Moved from toplev.c.
3333         (seen_error): New function.
3334         * diagnostic.h: Include diagnostic-core.h.
3335         (diagnostic_t, emit_diagnostic): Don't declare here.
3336         * toplev.c (progname): Move to toplev.c.
3337         (emit_debug_global_declarations, compile_file, finalize,
3338         do_compile, toplev_main): Use seen_error.
3339         * toplev.h: Include diagnostic-core.h.
3340         (trim_filename, GCC_DIAG_STYLE, ATTRIBUTE_GCC_DIAG,
3341         internal_error, warning, warning_at, error, error_n, error_at,
3342         fatal_error, pedwarn, permerror, sorry, inform, inform_n,
3343         verbatim, fnotice, progname): Move to diagnostic-core.h.
3344         * builtins.c: Include diagnostic-core.h instead of diagnostic.h.
3345         (expand_builtin_expect): Use seen_error.
3346         * c-decl.c: Include diagnostic-core.h instead of diagnostic.h.
3347         (c_make_fname_decl, c_write_global_declarations): Use seen_error.
3348         * c-format.c: Include diagnostic-core.h instead of diagnostic.h.
3349         * c-gimplify.c: Include diagnostic-core.h instead of diagnostic.h.
3350         * c-lang.c: Include diagnostic-core.h instead of diagnostic.h.
3351         * c-lex.c (c_lex_with_flags, interpret_float): Don't increment
3352         errorcount for errors.
3353         * c-opts.c (c_common_finish): Use seen_error.
3354         * cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
3355         * cgraphunit.c (verify_cgraph_node, verify_cgraph,
3356         cgraph_output_pending_asms, cgraph_optimize): Use seen_error.
3357         * coverage.c: Include diagnostic-core.h instead of diagnostic.h.
3358         (get_coverage_counts): Use seen_error.
3359         * dwarf2out.c (dwarf2out_finish): Use seen_error.
3360         * gimplify.c (gimplify_var_or_parm_decl, gimple_push_cleanup,
3361         gimplify_body): Use seen_error.
3362         * ipa-inline.c (cgraph_early_inlining): Use seen_error.
3363         * ipa-pure-const.c (gate_pure_const): Use seen_error.
3364         * ipa-reference.c (gate_reference): Use seen_error.
3365         * jump.c: Include diagnostic-core.h instead of diagnostic.h.
3366         * lambda-code.c: Include diagnostic-core.h instead of
3367         diagnostic.h.
3368         * lto-cgraph.c: Include diagnostic-core.h instead of diagnostic.h.
3369         * lto-compress.c: Include diagnostic-core.h instead of
3370         diagnostic.h.
3371         * lto-section-in.c: Include diagnostic-core.h instead of
3372         diagnostic.h.
3373         * lto-streamer-out.c: Include diagnostic-core.h instead of
3374         diagnostic.h.
3375         * lto-streamer.c: Include diagnostic-core.h instead of
3376         diagnostic.h.
3377         (gate_lto_out): Use seen_error.
3378         * matrix-reorg.c: Include diagnostic-core.h instead of
3379         diagnostic.h.
3380         * omega.c: Include diagnostic-core.h instead of diagnostic.h.
3381         * omp-low.c: Include diagnostic-core.h instead of diagnostic.h.
3382         (gate_expand_omp, lower_omp_1): Use seen_error.
3383         * passes.c: Include diagnostic-core.h instead of diagnostic.h.
3384         (rest_of_decl_compilation, rest_of_type_compilation,
3385         gate_rest_of_compilation, ipa_write_summaries): Use seen_error.
3386         * tree-cfg.c (label_to_block_fn): Use seen_error.
3387         * tree-inline.c (optimize_inline_calls): Use seen_error.
3388         * tree-mudflap.c (mudflap_finish_file): Use
3389         seen_error.
3390         * tree-optimize.c (gate_all_optimizations,
3391         gate_all_early_local_passes, gate_all_early_optimizations): Use
3392         seen_error.
3393         * tree-ssa-structalias.c (gate_ipa_pta): Use seen_error.
3394         * varpool.c: Include diagnostic-core.h instead of diagnostic.h.
3395         (varpool_remove_unreferenced_decls,
3396         varpool_assemble_pending_decls): Use seen_error.
3397         * Makefile.in (DIAGNOSTIC_CORE_H): Define.
3398         (TOPLEV_H, DIAGNOSTIC_H): Update.
3399         (c-decl.o, c-lang.o, c-format.o, lto-compress.o, lto-cgraph.o,
3400         lto-streamer-out.o, lto-section-in.o, lto-streamer.o,
3401         c-gimplify.o, omp-low.o, omega.o, diagnostic.o, passes.o,
3402         builtins.o, jump.o, cgraph.o, varpool.o, matrix-reorg.o,
3403         coverage.o, lambda-code.o): Update dependencies.
3404
3405 2010-05-25  Dodji Seketeli  <dodji@redhat.com>
3406
3407         PR c++/44188
3408         * c-common.c (is_typedef_decl): Move this definition ...
3409         * tree.c (is_typedef_decl): ... here.
3410         (typdef_variant_p): Move definition here from gcc/cp/tree.c.
3411         * c-common.h (is_typedef_decl): Move this declaration ...
3412         * tree.h (is_typedef_decl): ... here.
3413         (typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
3414         * dwarf2out.c (is_naming_typedef_decl): New function.
3415         (gen_tagged_type_die): Split out of ...
3416         (gen_type_die_with_usage): ... this function. When an anonymous
3417         tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
3418         is emitted for the typedef.
3419         (gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
3420         anonymous tagged types.
3421
3422 2010-05-27  Jason Merrill  <jason@redhat.com>
3423
3424         * print-tree.c (debug_vec_tree): New fn.
3425         (print_vec_tree): New fn.
3426         * tree.h: Declare them.
3427         * gdbinit.in (pvt): New command.
3428
3429         * print-tree.c (print_node) [TREE_VEC]: Print elements normally.
3430
3431         * gdbinit.in (pdd): New command.
3432
3433 2010-05-27  Jan Hubicka  <jh@suse.cz>
3434
3435         * ipa-inline.c (cgraph_estimate_size_after_inlining): Make inline.
3436         (update_caller_keys): Return early if there are no callers;
3437         only update fibheap when decresing the key.
3438         (update_callee_keys): Avoid recursion.
3439         (decide_inlining_of_small_functions): When badness does not match;
3440         re-insert into fibheap.
3441
3442 2010-05-27  Steven Bosscher  <steven@gcc.gnu.org>
3443
3444         * Makefile.in (ALL_CFLAGS): Add file-specific CFLAGS.
3445         (ALL_HOST_FRONTEND_OBJS): New, for all front-end specific objects.
3446         (ALL_HOST_BACKEND_OBJS): New, for all backend and target objects.
3447         (ALL_HOST_OBJS): Now a union of the above two.
3448         <section "Language makefile fragments">: Add -DIN_GCC_FRONTEND for
3449         all files in ALL_HOST_FRONTEND_OBJS.
3450         * system.h: Poison GCC_RTL_H if IN_GCC_FRONTEND is defined.
3451
3452         * c-common.c: Pretend to be a backend file by undefining
3453         IN_GCC_FRONTEND (still need rtl.h here).
3454
3455 2010-05-27  Jan Hubicka  <jh@suse.cz>
3456
3457         * cgraph.h (struct cgraph_node): Mark former_clone_of by GTY ((skip)).
3458         * cgraphunit.c (clone_of_p): Compile only when checking is enabled.
3459
3460 2010-05-27  Jan Hubicka  <jh@suse.cz>
3461
3462         * sched-ebb.c: Rename struct deps to struct deps_desc.
3463         * ddg.c: Likewise.
3464         * sel-sched-ir.c: Likewise.
3465         * sched-deps.c: Likewise.
3466         * sched-int.h: Likewise.
3467         * sched-rgn.c: Likewise.
3468
3469 2010-05-27  Jon Beniston <jon@beniston.com>
3470
3471         PR 43726
3472         * config/lm32/lm32.h: Remove definition of
3473         GO_IF_MODE_DEPENDENT_ADDRESS. Update copyright year.
3474
3475 2010-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3476
3477         PR lto/44230
3478         * dwarf2out.c (dwarf2out_begin_prologue): Fix nits in sorry message.
3479
3480 2010-05-27  Richard Guenther  <rguenther@suse.de>
3481
3482         PR tree-optimization/44284
3483         * tree-vect-stmts.c (vectorizable_assignment): Handle
3484         sign-changing conversions as simple copy.
3485
3486 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3487
3488         * gthr-posix.h (pthread_cancel): Don't declare if compiling against
3489         Bionic C library.
3490         (__gthread_active_p): Check for pthread_create if compiling against
3491         Bionic C library.
3492
3493 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3494
3495         Support compilation for Android platform.  Reimplement -mandroid.
3496
3497         * config.gcc (*linux*): Include linux-android.h and linux-android.opt.
3498         (*android*): Set ANDROID_DEFAULT.
3499         (arm*-*-linux*): Include linux-android.h.
3500         (arm*-*-eabi*): Don't include previous -mandroid implementation.
3501         * config/arm/eabi.h: Remove, move Android-specific parts ...
3502         * config/linux-android.h: ... here.  New file.
3503         * config/arm/eabi.opt: Rename to ...
3504         * config/linux-android.opt: ... this.
3505         (mandroid): Allow -mno-android option.  Initialize based on
3506         ANDROID_DEFAULT.
3507         * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC, LIB_SPEC):
3508         Move logic to corresponding LINUX_TARGET_* macros.
3509         (TARGET_OS_CPP_BUILTINS): Define __ANDROID__, when appropriate.
3510         * config/linux-eabi.h (LINK_SPEC, CC1_SPEC, CC1PLUS_SPEC, LIB_SPEC,)
3511         (STARTFILE_SPEC, ENDFILE_SPEC): Define to choose between Linux and
3512         Android definitions.
3513         (LINUX_TARGET_OS_CPP_BUILTINS): Define __ANDROID__ if TARGET_ANDROID.
3514         * doc/invoke.texi (-mandroid, -tno-android-cc, -tno-android-ld):
3515         Document.
3516
3517 2010-05-27  Maxim Kuvyrkov  <maxim@codesourcery.com>
3518
3519         Add support for Bionic C library
3520
3521         * config.gcc (LIBC_GLIBC, LIBC_BIONIC, LIBC_UCLIBC): New tm_define
3522         macro.
3523         (DEFAULT_LIBC): New tm_define macro set to one of LIBC_*.
3524         (bfin*-uclinux, moxie-*-uclinux*, m68k-*-uclinux*): Update.
3525
3526         * config/linux.h (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC): Define.
3527         (LINUX_TARGET_OS_CPP_BUILTINS): Define __gnu_linux__ only for GLIBC.
3528         (CHOOSE_DYNAMIC_LINKER1, CHOOSE_DYNAMIC_LINKER): Make it easier
3529         to support multiple C libraries.  Handle Bionic.
3530         (BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,)
3531         (BIONIC_DYNAMIC_LINKER64): Define.
3532         (LINUX_DYNAMIC_LINKER, LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64):
3533         Update.
3534         (TARGET_HAS_SINCOS): Enable for Bionic.
3535
3536         * config/linux.opt: Rewrite to handle more than 2 C libraries.  Make
3537         the last option specified on command line take effect.
3538         (linux_uclibc): Rename to linux_libc, initialize using DEFAULT_LIBC.
3539         (mbionic): New.
3540         (mglibc, muclibc): Update.
3541
3542         * config/alpha/linux-elf.h, config/rs6000/linux64.h,
3543         * config/rs6000/sysv4.h (CHOOSE_DYNAMIC_LINKER): Update to use
3544         DEFAULT_LIBC.
3545
3546         * doc/invoke.texi (-mglibc, -muclibc): Update.
3547         (-mbionic): Document.
3548
3549 2010-05-27  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3550
3551         * c-common.h (c_register_addr_space): Add prototype.
3552         (ADDR_SPACE_KEYWORD): Remove.
3553         * c-common.c (c_register_addr_space): New function.
3554         (c_addr_space_name): Reimplement.
3555         (c_common_reswords): Do not include TARGET_ADDR_SPACE_KEYWORDS.
3556
3557         * config/spu/spu.h (TARGET_ADDR_SPACE_KEYWORDS): Remove.
3558         (REGISTER_TARGET_PRAGMAS): Call c_register_addr_space.
3559
3560         * doc/tm.texi (Named Address Spaces): Mention c_register_addr_space.
3561         Remove TARGET_ADDR_SPACE_KEYWORDS.
3562
3563 2010-05-27  Joseph Myers  <joseph@codesourcery.com>
3564
3565         * input.c: New file.
3566         * input.h (main_input_filename): Move declaration to toplev.h.
3567         * toplev.c (input_location, line_table): Move to input.c
3568         * toplev.h (main_input_filename): Move declaration from input.h.
3569         * tree.c (expand_location): Move to input.c.
3570         * Makefile.in (OBJS-common): Add input.o.
3571         (input.o): Add dependencies.
3572
3573 2010-05-27  Richard Guenther  <rguenther@suse.de>
3574
3575         * lto-wrapper.c (maybe_unlink_file): Ignore unlink failure
3576         for non-existant files.
3577         (fork_execute): Mark args_name file as deleted.
3578
3579 2010-05-27  Kai Tietz  <kai.tietz@onevision.com>
3580
3581         PR bootstrp/44287
3582         * c-lex.c (narrowest_unsigned_type): Check for NULL_TREE.
3583         (narrow_signed_type): Likewise.
3584
3585 2010-05-26  Jan Hubicka  <jh@suse.cz>
3586
3587         * cgraphunit.c (verify_cgraph_node): Do checking that DECL match
3588         edge only when checking is enabled; check using former_clone_of;
3589         check inline clones too.
3590         (cgraph_materialize_clone): Record former_clone_of pointer.
3591         (cgraph_redirect_edge_call_stmt_to_callee): Assert that we are not
3592         combining redirections; dump args_to_skip bitmap
3593         (cgraph_materialize_all_clones): Do no redirection here.
3594         * ipa-inline.c (inline_transform): Do redirection here.
3595         * cgraph.h (struct cgraph_node): Add former_clone_of filed (enabled
3596         cheking only).
3597
3598 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3599
3600         * config/avr/avr-c.c: Do not include regs.h.
3601         Include cpplib.h for cpp_define and tree.h for c-common.h.
3602         * config/avr/avr-devices.c (avr_mcu_types): Fix initializer.
3603         * config/avr/t-avr: Fix dependencies for avr-c.o.
3604
3605 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3606
3607         * explow.c (set_stack_check_libfunc): Adjust to accept name as a
3608         string instead of SYMBOL_REF rtx.
3609         * rtl.h (set_stack_check_libfunc): Move prototype from here...
3610         * libfuncs.h: ...to here.  Adjust for explow.c change.
3611
3612 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
3613
3614         * pretty-print.c: Don't include ggc.h.
3615         (identifier_to_locale_alloc, identifier_to_locale_free): Define.
3616         (identifier_to_locale): Use them for allocation.
3617         * pretty-print.h (identifier_to_locale_alloc,
3618         identifier_to_locale_free): Declare.
3619         * toplev.c (alloc_for_identifier_to_locale): New.
3620         (general_init): Set identifier_to_locale_alloc and
3621         identifier_to_locale_free.
3622         * Makefile.in (pretty-print.o): Update dependencies.
3623
3624 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3625
3626         * gimple.c (gimple_types_compatible_p): Return 0 for aggregate and
3627         pointer types if they have different alignment or mode.
3628
3629 2010-05-26  Anatoly Sokolov  <aesok@post.ru>
3630
3631         * config/sparc/sparc.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
3632         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
3633         * config/sparc/sparc-protos.h (function_value): Remove declaration.
3634         * config/sparc/sparc.c (sparc_function_value, sparc_libcall_value,
3635         sparc_function_value_regno_p): New functions.
3636         (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
3637         TARGET_FUNCTION_VALUE_REGNO_P): Define.
3638         (function_value): Rename to...
3639         (sparc_function_value_1): ... this. Make static. Change 'incoming_p'
3640         argument to 'outgoing'.
3641         (function_arg_record_value, function_arg_union_value,
3642         function_arg_vector_value): Update comment.
3643
3644 2010-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3645
3646         * dwarf2out.c (struct dw_fde_struct): Reorder flags.
3647         (fde_needed_for_eh_p): New predicate.
3648         (output_call_frame_info): Use it throughout to decide whether FDEs
3649         are needed for EH purpose.
3650         (dwarf2out_begin_prologue): Reorder assignments.
3651
3652 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3653
3654         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Do not
3655         special case loop->header.
3656         (is_predicated): New.
3657         (if_convertible_loop_p): Call it.
3658
3659 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3660
3661         * tree-if-conv.c (add_to_dst_predicate_list): Do not pass a statemet
3662         iterator in parameter.  Do not generate code during the analysis.
3663         (tree_if_convert_cond_stmt): Removed.
3664         (tree_if_convert_stmt): Removed.
3665         (predicate_bbs): New.
3666         (if_convertible_loop_p): Call predicate_bbs.
3667         (tree_if_conversion): Simplify the top-level logic as predicate_bbs
3668         now contains all the analysis part.
3669
3670 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3671
3672         * tree-if-conv.c (tree_if_convert_cond_stmt): Do not remove
3673         statements in the analysis part.
3674         (tree_if_convert_stmt): Update comment.
3675         (remove_conditions_and_labels): New.
3676         (combine_blocks): Call remove_conditions_and_labels.
3677         (tree_if_conversion): Update comment.
3678
3679 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3680
3681         * tree-if-conv.c (if_convertible_bb_p): Don't handle BBs with more
3682         than 2 predecessors or more than 2 successors.
3683
3684 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3685
3686         * tree-if-conv.c (if_convertible_loop_p): Avoid if-conversion
3687         of loops in which the data dependence analysis fails.
3688
3689 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3690
3691         * tree-if-conv.c (if_convertible_loop_p): Do not compute/free
3692         CDI_POST_DOMINATORS.
3693         (tree_if_conversion): Same.
3694
3695 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3696
3697         * tree-if-conv.c (tree_if_conversion): Do not return a bool.
3698
3699 2010-05-26  Sebastian Pop  <sebastian.pop@amd.com>
3700
3701         * tree-if-conv.c: Update copyright years.  Fix comments.
3702         Fix indentation.
3703
3704 2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
3705
3706         * builtin-types.def (BT_INT128): New primitive type.
3707         (BT_UINT128): Likewise.
3708         * c-common.c (c_common_r): Add __int128 keyword.
3709         (c_common_type_for_size): Handle __int128.
3710         (c_common_type_for_mode): Likewise.
3711         (c_common_signed_or_unsigned_type): Likewise.
3712         (c_common_nodes_and_builtins): Add builtin type
3713         if target supports 128-bit integer scalar.
3714         * c-common.h (enum rid): Add RID_INT128.
3715         * c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
3716         if target supports 128-bit integer scalar.
3717         * c-decl.c (declspecs_add_type): Handle new keyword __int128.
3718         (finish_declspecs): Likewise.
3719         * c-parser.c (c_token_starts_typename): Handle RID_INT128.
3720         (c_token_starts_declspecs): Likewise.
3721         (c_parser_declspecs): Likewise.
3722         (c_parser_attributes): Likewise.
3723         (c_parser_objc_selector): Likewise.
3724         * c-pretty-print.c (pp_c_integer_constant): Handle __int128.
3725         * c-tree.h (enum c_typespec_keyword): Add cts_int128.
3726         * gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
3727         * tree.c (make_or_reuse_type): Likewise.
3728         (make_unsigned_type): Likewise.
3729         (build_common_tree_nodes_2): Likewise.
3730         * tree.h (enum integer_type_kind): Add itk_int128 and
3731         itk_unsigned_int128.
3732         (int128_integer_type_node): New define.
3733         (int128_unsigned_type_node): New define.
3734         * doc/extend.texi: Add documentation about __int128 type.
3735
3736 2010-05-26  Richard Guenther  <rguenther@suse.de>
3737
3738         * tree-ssa-sccvn.c (copy_nary): Adjust.
3739         (copy_phis): Rename to ...
3740         (copy_phi): ... this.  Adjust.
3741         (copy_references): Rename to ...
3742         (copy_reference): ... this.  Adjust.
3743         (process_scc): Use HTAB_FOR_EACH_ELEMENT to insert the
3744         result into the valid table.
3745
3746 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3747
3748         * config/spu/spu-c.c: Do not include function.h, rtl.h, expr.h,
3749         insn-config.h, insn-codes.h, recog.h, and optabs.h.
3750
3751 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3752
3753         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Remove.
3754
3755 2010-05-26  Richard Guenther  <rguenther@suse.de>
3756
3757         * opts.c (common_handle_option): Handle OPT_Ofast.
3758
3759 2010-05-26  Joseph Myers  <joseph@codesourcery.com>
3760
3761         * diagnostic.c: Don't include opts.h.
3762         (permissive_error_option): Define.
3763         (diagnostic_initialize): Take n_opts parameter.  Allocate memory
3764         for classify_diagnostic.  Don't use memset for
3765         classify_diagnostic.  Initialize new and recently added fields.
3766         (diagnostic_classify_diagnostic): Use context->n_opts instead of
3767         N_OPTS.
3768         (diagnostic_report_diagnostic): Pass context parameter to
3769         diagnostic_report_warnings_p.  Use option_enabled and option_name
3770         hooks from context.
3771         (emit_diagnostic): Use permissive_error_option.
3772         (permerror): Likewise.
3773         * diagnostic.h: Don't include options.h.
3774         (struct diagnostic_context): Add n_opts, opt_permissive,
3775         inhibit_warnings, warn_system_headers, option_enabled and
3776         option_name fields.  Change classify_diagnostic to a pointer.
3777         * opts-diagnostic.h: New file.
3778         * opts.c: Include opts-diagnostic.h.
3779         (common_handle_option): Set global_dc fields for -Wfatal-errors,
3780         -Wsystem-headers, -fshow-column, -pedantic-errors and -w.
3781         (option_name): New function.
3782         * c-opts.c (c_common_init_options): Set global_dc->opt_permissive.
3783         (c_common_handle_option): Set global_dc->permissive for
3784         -fpermissive.
3785         * c-common.c (c_cpp_error): Save and restore
3786         global_dc->warn_system_headers, not variable warn_system_headers.
3787         * toplev.c: Include opts-diagnostic.h.
3788         (general_init): Update call to diagnostic_initialize.  Set
3789         global_dc->show_column, global_dc->option_enabled and
3790         global_dc->option_name.
3791         (process_options): Don't set global_dc fields here.
3792         * Makefile.in (DIAGNOSTIC_H): Remove options.h.
3793         (diagnostic.o, opts.o, toplev.o): Update dependencies.
3794
3795 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
3796
3797         * config/picochip/picochip.md (movsi): Split a movsi from a
3798         const after reload.
3799
3800 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3801
3802         * ggc-zone.c: Update copyright year.
3803         (poison_region): Mark memory for Valgrind as undefined before
3804         memset () call and inaccessible afterwards.
3805         (ggc_pch_total_size): Change type of i to int.
3806
3807 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3808
3809         * ggc-common.c (ggc_free_overhead): Allow empty slot.
3810
3811 2010-05-26  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
3812
3813         * ggc-common.c: Update copyright year.
3814         (ggc_rlimit_bound): Remove prototype.  Compile only if
3815         !ENABLE_GC_CHECKING && !ENABLE_GC_ALWAYS_COLLECT.
3816         (ggc_min_heapsize_heuristic): Compile only if !ENABLE_GC_CHECKING
3817         && !ENABLE_GC_ALWAYS_COLLECT.  Make static.
3818         (ggc_min_heapsize_heuristic): Likewise.
3819
3820 2010-05-26  Richard Guenther  <rguenther@suse.de>
3821
3822         PR rtl-optimization/44164
3823         * tree-ssa-alias.c (aliasing_component_refs_p): Fix the
3824         no-common access-path disambiguation.
3825         (indirect_ref_may_alias_decl_p): Adjust.
3826         (indirect_refs_may_alias_p): Likewise.
3827         (refs_may_alias_p_1): Likewise.
3828
3829 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3830
3831         * c-typeck.c: Do not include expr.h.
3832
3833 2010-05-26  Steven Bosscher  <steven@gcc.gnu.org>
3834
3835         * rtl.h (decl_default_tls_model): Move prototype from here...
3836         * output.h: ...to here.
3837         * c-decl.c: Do not include rtl.h.
3838         * c-pragma.c: Likewise.
3839         * c-parser.c: Likewise.
3840         * c-gimplify.c: Likewise.  And also not hard-reg-set.
3841         * c-common.c: Do not include rtl.h.  Include tm_p.h and add a
3842         FIXME note for it.  Add a FIXME note for expr.h.
3843         * config/i386/i386-protos.h (ix86_enum_va_list, ix86_fn_abi_va_list,
3844         ix86_canonical_va_list_type): Make visible even if RTX_CODE is not
3845         defined.
3846
3847 2010-05-26  Jakub Jelinek  <jakub@redhat.com>
3848
3849         PR target/44199
3850         * config/rs6000/rs6000.c (rs6000_emit_epilogue): If cfun->calls_alloca
3851         or total_size is larger than red zone size for non-V4 ABI, emit a
3852         stack_tie resp. frame_tie insn before stack pointer restore.
3853         * config/rs6000/rs6000.md (frame_tie): New insn.
3854
3855 2010-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3856
3857         * function.h (struct function): Add can_throw_non_call_exceptions bit.
3858         * lto-streamer-in.c (input_function): Stream it in.
3859         * lto-streamer-out.c (output_function): Stream it out.
3860         * function.c (allocate_struct_function): Set it.
3861         (expand_function_end): Substitute cfun->can_throw_non_call_exceptions
3862         for flag_non_call_exceptions.
3863         * cfgbuild.c (control_flow_insn_p): Likewise.
3864         (make_edges): Likewise.
3865         * cfgexpand.c (expand_stack_alignment): Likewise.
3866         * combine.c (distribute_notes): Likewise.
3867         * cse.c (cse_extended_basic_block): Likewise.
3868         * except.c (insn_could_throw_p): Likewise.
3869         * gcse.c (simple_mem): Likewise.
3870         * ipa-pure-const.c (check_call): Likewise.
3871         (check_stmt ): Likewise.
3872         * lower-subreg.c (lower-subreg.c): Likewise.
3873         * optabs.c (emit_libcall_block): Likewise.
3874         (prepare_cmp_insn): Likewise.
3875         * postreload-gcse.c (eliminate_partially_redundant_loads): Likewise.
3876         * postreload.c (rest_of_handle_postreload): Likewise.
3877         * reload1.c (reload_as_needed): Likewise.
3878         (emit_input_reload_insns): Likewise.
3879         (emit_output_reload_insns): Likewise.
3880         (fixup_abnormal_edges): Likewise.
3881         * sel-sched-ir.c (init_global_and_expr_for_insn): Likewise.
3882         * store-motion.c (find_moveable_store): Likewise.
3883         * tree-eh.c (stmt_could_throw_p): Likewise.
3884         (tree_could_throw_p): Likewise.
3885         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
3886         * config/arm/arm.c (arm_expand_prologue): Likewise.
3887         (thumb1_expand_prologue): Likewise.
3888         * config/rx/rx.md (cbranchsf4): Likewise.
3889         (cmpsf): Likewise.
3890         * config/s390/s390.c (s390_emit_prologue): Likewise.
3891         * tree-inline.c (initialize_cfun): Copy can_throw_non_call_exceptions.
3892         (inline_forbidden_into_p): New predicate.
3893         (expand_call_inline): Use it to forbid inlining.
3894         (tree_can_inline_p): Likewise.
3895
3896 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
3897
3898         * config/i386/i386-c.c: Do not include rtl.h.
3899         * config/i386/t-i386: Update dependencies.
3900
3901 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
3902
3903         * attribs.c: Do not include rtl.h.
3904         * Makefile.in: Update dependencies.
3905
3906 2010-05-25  Anatoly Sokolov  <aesok@post.ru>
3907
3908         * double-int.h (double_int_and): New.
3909         * combine.c (try_combine): Clean up, use double_int_* and
3910         immed_double_int_const functions.
3911
3912 2010-05-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3913
3914         * configure.ac (gcc_cv_as_ld_jalr_reloc): Redirect grep stdout,
3915         stderr to /dev/null instead of grep -q.
3916         * configure: Regenerate.
3917
3918 2010-05-25  Steven Bosscher  <steven@gcc.gnu.org>
3919
3920         * Makefile.in (EXCEPT_H): Fix typo.
3921
3922 2010-05-25  Vladimir Makarov <vmakarov@redhat.com>
3923
3924         * ira-build.c (update_conflict_hard_reg_costs): New.
3925         (ira_build): Call update_conflict_hard_reg_costs.
3926
3927 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
3928
3929         PR debug/41371
3930         * var-tracking.c (find_loc_in_1pdv): Guard asserts with
3931         ENABLE_CHECKING.
3932         (intersect_loc_chains): Walk the s2var's loc_chain together
3933         with s1node chain as long as the locations are equal, don't
3934         call find_loc_in_1pdv in that case.
3935
3936         PR debug/42801
3937         * tree-inline.c (remap_decls): Remap DECL_VALUE_EXPR here...
3938         (copy_bind_expr): ... instead of here.
3939         (copy_tree_body_r): If id->remapping_type_depth clear TREE_BLOCK
3940         if the block hasn't been remapped.
3941         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): When
3942         emitting concrete instance of abstract VLA, add DW_AT_type attribute.
3943
3944 2010-05-25  Richard Guenther  <rguenther@suse.de>
3945
3946         PR middle-end/44069
3947         * gimple-fold.c (maybe_fold_stmt_addition): Avoid generating
3948         out-of-bounds array accesses.
3949
3950 2010-05-25  Richard Guenther  <rguenther@suse.de>
3951
3952         * lto-wrapper.c (nr, input_names, output_names, makefile): Globalize.
3953         (lto_wrapper_exit): Unlink all LTRANS temporary files on error.
3954         (run_gcc): Re-organize to make cleanup easier.
3955
3956 2010-05-25  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
3957
3958         * config/s390/s390.c (optimization_options): Fix and move the
3959         flag_prefetch_loop_arrays override ...
3960         (override_options): ... here.
3961
3962 2010-05-25  Joseph Myers  <joseph@codesourcery.com>
3963
3964         * diagnostic.c: Don't include plugin.h.
3965         (diagnostic_report_diagnostic): Don't handle plugins specially
3966         here.  Pass context to internal_error callback.
3967         * diagnostic.h (struct diagnostic_context): Add context parameter
3968         to internal_error callback.
3969         * plugin.c (warn_if_plugins, plugins_internal_error_function): New.
3970         * plugin.h (struct diagnostic_context): Declare.
3971         (warn_if_plugins, plugins_internal_error_function): Declare.
3972         * toplev.c (general_init): Set global_dc->internal_error.
3973         * Makefile.in (diagnostic.o): Update dependencies.
3974
3975 2010-05-25 Iain Sandoe  <iains@gcc.gnu.org>
3976
3977         * config/rs6000/darwin64.h: Update DARWIN_ARCH_SPEC.
3978         * config/rs6000/t-darwin64: New.
3979         * config.gcc (powerpc64-*-darwin*): Use darwin.opts, t-darwin64,
3980         build crt2.
3981
3982 2010-05-25  Christian Borntraeger  <borntraeger@de.ibm.com>
3983
3984         PR 44203
3985         * tree-ssa-loop-prefetch.c: Fix logic for step calculation to
3986         match the original (and intended) behaviour before r159557.  This
3987         changeset changed a=a+b*c to a=(a+b)*b which was obviously wrong
3988         in two ways.
3989
3990 2010-05-25  Richard Guenther  <rguenther@suse.de>
3991
3992         * doc/invoke.texi: Document -Ofast.
3993         * target.h (struct gcc_target): Add handle_ofast.
3994         * target-def.h (TARGET_HANDLE_OFAST): Add.
3995         (TARGET_INITIALIZER): Adjust.
3996         * opts.c (decode_options): Handle -Ofast.  Enable -ffast-math with it.
3997         * common.opt (Ofast): Add.
3998
3999 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
4000
4001         * doc/tm.texi (STORE_FLAG_VALUE): Do not refer to sCC patterns.
4002         * doc/md.texi (cstoreXX4): Update for cond-optab changes.
4003
4004 2010-05-25  Paolo Bonzini  <bonzini@gnu.org>
4005
4006         PR target/43610
4007         * optabs.c (prepare_float_lib_cmp): Allow reversing the comparison
4008         even if !FLOAT_LIB_COMPARE_RETURNS_BOOL.  Always compute true_rtx and
4009         false_rtx.  Use false_rtx to compute the correct *ptest for reversed
4010         comparisons for which !FLOAT_LIB_COMPARE_RETURNS_BOOL.
4011
4012 2010-05-25  Jakub Jelinek  <jakub@redhat.com>
4013
4014         * dwarf2out.c (loc_descr_plus_const): When offset is negative, use
4015         DW_OP_minus with negated offset instead of DW_OP_plus.
4016         (loc_list_from_tree): Don't test whether second operand is INTEGER_CST.
4017
4018 2010-05-25  Wei Guozhi  <carrot@google.com>
4019
4020         * config/arm/thumb2.md (thumb2_tlobits_cbranch): Add constraint to
4021         tst instruction and a new alternative.
4022         * config/arm/constraints.md (Pu): New constraint.
4023
4024 2010-05-24  Sebastian Pop  <sebastian.pop@amd.com>
4025
4026         * function.c (assign_stack_local_1): Initialize variable
4027         to avoid warning when bootstrapping at -O3.
4028
4029 2010-05-24  Steven Bosscher  <steven@gcc.gnu.org>
4030
4031         * configure.ac (all_lang_makefiles): Remove everything related to it.
4032         * configure: Regenerate.
4033         * Makefile.in: Fix reference to ada Make-lang.in.
4034         Remove support for LANG_MAKEFILES.
4035
4036 2010-05-24  Daniel Jacobowitz  <dan@codesourcery.com>
4037             Sandra Loosemore  <sandra@codesourcery.com>
4038
4039         * config/arm/neon-testgen.ml: Use dg-add-options arm_neon.
4040         * doc/sourcebuild.texi (Effective-Target Keywords): Update arm_neon_ok
4041         description.  Add arm_neon_fp16_ok.
4042         (Add Options): Add arm_neon and arm_neon_fp16.
4043
4044 2010-05-24  Joseph Myers  <joseph@codesourcery.com>
4045
4046         * diagnostic.c: Don't include flags.h.
4047         (pedantic_warning_kind, permissive_error_kind): Take diagnostic
4048         context parameters.  Check flags in the context passed as a parameter.
4049         (diagnostic_build_prefix): Add context parameter.  Check
4050         show_column flag in context.
4051         (diagnostic_action_after_output): Check fatal_errors flag in context.
4052         (diagnostic_report_current_module): Check show_column flag in context.
4053         (default_diagnostic_starter): Update call to
4054         diagnostic_build_prefix.
4055         (diagnostic_report_diagnostic): Pass context to pedantic_warning_kind.
4056         (emit_diagnostic): Pass context to permissive_error_kind.
4057         (permerror): Pass context to permissive_error_kind.
4058         * diagnostic.h (struct diagnostic_context): Add show_column,
4059         pedantic_errors, permissive and fatal_errors fields.
4060         (diagnostic_build_prefix): Update prototype.
4061         * langhooks.c
4062         * toplev.c (process_options): Set flags in global_dc from
4063         flag_show_column, flag_pedantic_errors, flag_permissive,
4064         flag_fatal_errors.
4065         * tree-diagnostic.c (default_tree_diagnostic_starter): Update call
4066         to diagnostic_build_prefix.
4067         * Makefile.in (diagnostic.o): Update dependencies.
4068
4069 2010-05-24  H.J. Lu  <hongjiu.lu@intel.com>
4070
4071         * config/i386/ia32intrin.h (__crc32q): Define only if
4072         __SSE4_2__ is defined.
4073
4074 2010-05-24  Iain Sandoe  <iains@gcc.gnu.org>
4075
4076         PR target/44132
4077         PR middle-end/43602
4078         * varasm.c (get_emutls_init_templ_addr): Copy DECL_PRESERVE_P,
4079         DECL_VISIBILITY_SPECIFIED.
4080         (emutls_decl): Set DECL_PRESERVE_P and copy
4081         DECL_VISIBILITY_SPECIFIED, DECL_RESTRICTED_P.
4082         (emutls_finalize_control_var): New callback.
4083         (emutls_finish): Finalize emutls control variables.
4084         * toplev.c (compile_file): Move the call to emutls_finish ()
4085         before varpool_assemble_pending_decls ().
4086
4087 2010-05-24  Daniel Gutson  <dgutson@codesourcery.com>
4088
4089         * config/arm/lib1funcs.asm (__ARM_ARCH__): __ARM_ARCH_7EM__
4090         added to the preprocessor condition.
4091
4092 2010-05-24  Paul Brook  <paul@codesourcery.com>
4093
4094         * gengtype-lex.l: Add HARD_REG_SET.
4095         * expr.c (expand_expr_real_1): Record writes to hard registers.
4096         * function.c (rtl_data): Add asm_clobbers.
4097         * ira.c (compute_regs_asm_clobbered): Use crtl->asm_clobbers.
4098         (ira_setup_eliminable_regset): Remove regs_asm_clobbered.
4099         Use crtl->asm_clobbers.
4100
4101 2010-05-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4102
4103         * doc/makefile.texi (Makefile): Mention stages 'profile'
4104         and 'feedback' for profiledbootstrap.
4105
4106 2010-05-23  H.J. Lu  <hongjiu.lu@intel.com>
4107
4108         PR target/44245
4109         * config/i386/i386.c (def_builtin): Properly check
4110         OPTION_MASK_ISA_64BIT.
4111
4112 2010-05-23  Joseph Myers  <joseph@codesourcery.com>
4113
4114         * c-decl.c (diagnose_mismatched_decls): Give error for duplicate
4115         typedefs with different but compatible types.  Allow duplicate
4116         typedefs with the same type except for pedantic non-C1X, but give
4117         warning for variably modified types.
4118         * c-typeck.c (tagged_types_tu_compatible_p,
4119         function_types_compatible_p, type_lists_compatible_p,
4120         comptypes_internal): Add parameter different_types_p; set
4121         *different_types_p for different but compatible types.  All
4122         callers changed.
4123         (comptypes_check_different_types): New.
4124         * c-tree.h (comptypes_check_different_types): Declare.
4125
4126 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
4127
4128         * regs.h: Do not include obstack.h, basic-block.h.  Include machmode.h.
4129         * jump.c: Include basic-block.h.
4130         * profile.c: Likewise.
4131         * tree-profile.c: Likewise.
4132         * coverage.c: Likewise.
4133         * basic-block.h (optimize_function_for_size_p): Move to function.h.
4134         (optimize_function_for_speed_p): Likewise.
4135         * function.h (optimize_function_for_size_p,
4136         optimize_function_for_speed_p): Moved here from basic-block.h.
4137         * Makefile.in: Update dependencies.
4138
4139 2010-05-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
4140
4141         * lto-wrapper.c (run_gcc): Unset MAKEFLAGS and MFLAGS
4142         before calling make; allow override through $MAKE.
4143         * doc/invoke.texi (Optimize Options): Document override.
4144
4145 2010-05-23  Anatoly Sokolov  <aesok@post.ru>
4146
4147         * config/rs6000/rs6000.c (rs6000_mode_dependent_address_p): New.
4148         (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
4149         (rs6000_mode_dependent_address_ptr): Make static.
4150         * config/rs6000/rs6000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
4151         * config/rs6000/rs6000-protos.h (rs6000_mode_dependent_address_ptr):
4152         Remove.
4153
4154 2010-05-23  Maarten Lankhorst  <mlankhorst@codeweavers.com>
4155
4156         PR target/43869
4157         * config/i386/i386.c: Make sure that the correct regparm is passed.
4158
4159 2010-05-23  Steven Bosscher  <steven@gcc.gnu.org>
4160
4161         * sbitmap.h (sbitmap_ptr, const_sbitmap_ptr): Move from here...
4162         * sbitmap.c: ...to here to internalize sbitmap element access.
4163         Do not include tm.h, rtl.h, flags.h, hard-reg-set.h, and obstack.h.
4164         Explain why basic-block.h is included.
4165         * function.h: Include tm.h for CUMULATIVE_ARGS.
4166         * Makefile.in: Update dependencies.
4167
4168 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
4169
4170         * coretypes.h (struct simple_bitmap_def, sbitmap, const_sbitmap):
4171         New core types.
4172         * sbitmap.h (struct sbitmap_def): Do not typedef here.
4173         * sbitmap.c: Include sbitmap.h.
4174         * basic-block.h: Do not include bitmap.h, sbitmap.h, partition.h,
4175         hard-reg-set.h.  Split everything related to regsets out from here...
4176         * regset.h: ...to here.  New file.
4177         * df.h: Include regset.h and sbitmap.h.
4178         * tree-flow.h: Likewise.
4179         * cfgloop.h: Likewise.
4180         * except.h: Do not include sbitmap.h.  Include hashtab.h.
4181         * cgraph.h: Include vec.h and function.h.
4182         * reload.h (struct insn_chain): Change types of live_throughout
4183         and dead_or_set from regset_head to bitmap_head.
4184         (compute_use_by_pseudos): Be defined also if regset.h is not included.
4185         * ira-int.h (struct ira_spilled_reg_stack_slot): Change type of
4186         spilled_regs from regset_head to bitmap_head to avoid dependency
4187         in regset.h.
4188         * sel-sched-ir.h: Include regset.h.
4189         * reload.c: Include df.h before reload.h.
4190         * caller-save.c: Likewise.
4191         * reload1.c: Likewise.
4192         * ira.c: Likewise.
4193         (mark_elimination): Update type of r to bitmap, consistent with
4194         DF_LR_IN.
4195         * dominance.c: Include bitmap.h.
4196         * modulo-sched.c: Include df.h.
4197         * cfganal.c: Include bitmap.h and sbitmap.h.
4198         * cfgbuild.c: Include sbitmap.h.
4199         * lcm.c: Include sbitmap.h.
4200         * gcse.c (alloc_gcse_mem): Allocate regset with ALLOC_REG_SET.
4201         * domwalk.c: Include sbitmap.h, exclude ggc.h.
4202         * cfgexpand.c: Inlcude bitmap.h and sbitmap.h.
4203         * cselib.c: Include bitmap.h.
4204         * tree-optimize.c: Include regset.h.
4205         * stmt.c: Include bitmap.h.
4206         * Makefile.in: Update dependencies.
4207
4208 2010-05-22  Jan Hubicka  <jh@suse.cz>
4209
4210         * cgraph.h (struct varpool_node): Add same_comdat_group.
4211         * lto-cgrpah.c (lto_output_varpool_node): Output same_comdat_group
4212         pointer.
4213         (output_varpool): Update call of lto_output_varpool_node.
4214         (input_varpool): Read same_comdat_group pointer.
4215         (input_varpool_1): Fixup same_comdat_group pointer.
4216         * ipa.c (cgraph_remove_unreachable_nodes): WHen one of same comdat
4217         group is needed, all are.
4218         * varpool.c (varpool_remove_node): Remove node from same comdat group
4219         linklist too.
4220         (varpool_analyze_pending_decls): Walk same comdat groups.
4221
4222 2010-05-22  Steven Bosscher  <steven@gcc.gnu.org>
4223
4224         * rtl.h (union rtunion_def): Remove rt_bit member.
4225         (XBITMAP, X0BITMAP, XCBITMAP): Remove.
4226         * print-rtl (print_rtx): Do not print the member.
4227         * gengtype.c (adjust_field_rtx_def): Do not handle it.
4228         * gengenrtl.c (type_from_format): Likewise.
4229         (accessor_from_format): Likewise.
4230
4231 2010-05-22  Joseph Myers  <joseph@codesourcery.com>
4232
4233         * dbgcnt.c: Include toplev.h instead of errors.h.
4234         * ira-emit.c: Don't include errors.h.
4235         * ira.c: Include toplev.h instead of errors.h.
4236         * lto-compress.c: Include toplev.h instead of errors.h.
4237         * Makefile.in (lto-compress.o, lto-streamer-out.o, ira-emit.o,
4238         ira.o, dbgcnt.o): Update dependencies.
4239
4240 2010-05-22  Richard Guenther  <rguenther@suse.de>
4241
4242         * gimple.c (gimple_types_compatible_p): Check type qualifications
4243         before merging pointer to complete and pointer to incomplete type.
4244         * lto-symtab.c (lto_symtab_resolve_symbols): For commons make sure
4245         we use our own resolution algorithm.  The gold linker plugin
4246         doesn't do the job we want it to do here.
4247
4248 2010-05-22  Anatoly Sokolov  <aesok@post.ru>
4249
4250         * config/sparc/sparc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
4251         * config/sparc/sparc.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
4252         (sparc_mode_dependent_address_p): New function.
4253
4254 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
4255
4256         * Makefile.in: Fix c-pch.o and ggc-common.o dependencies on timevars.
4257
4258         * timevar.c: Do not include any core headers.
4259         (timevar_print): De-i18n-ize.
4260         (print_time): Likewise.
4261         * timevar.h (timevar_push, timevar_pop): Make inline functions.
4262
4263 2010-05-21  Joseph Myers  <joseph@codesourcery.com>
4264
4265         * diagnostic.c: Don't include tm.h, tree.h, tm_p.h, langhooks.h or
4266         langhooks-def.h.
4267         (diagnostic_initialize): Initialize x_data not last_function.
4268         (diagnostic_report_current_function): Move to tree-diagnostic.c.
4269         (default_diagnostic_starter): Call
4270         diagnostic_report_current_module not
4271         diagnostic_report_current_function.
4272         (diagnostic_report_diagnostic): Initialize x_data not
4273         abstract_origin.
4274         (verbatim): Likewise.
4275         * diagnostic.h (struct diagnostic_info): Change abstract_origin to
4276         x_data.
4277         (struct diagnostic_context): Change last_function to x_data.
4278         (diagnostic_auxiliary_data): Replace with
4279         diagnostic_context_auxiliary_data and
4280         diagnostic_info_auxiliary_data.
4281         (diagnostic_last_function_changed, diagnostic_set_last_function,
4282         diagnostic_report_current_function): Move to tree-diagnostic.h.
4283         (print_declaration, dump_generic_node, print_generic_stmt,
4284         print_generic_stmt_indented, print_generic_expr,
4285         print_generic_decl, debug_c_tree, dump_omp_clauses,
4286         print_call_name, debug_generic_expr, debug_generic_stmt,
4287         debug_tree_chain, default_tree_printer): Move to
4288         tree-pretty-print.h.
4289         (debug_gimple_stmt, debug_gimple_seq, print_gimple_seq,
4290         print_gimple_stmt, print_gimple_expr, dump_gimple_stmt): Move to
4291         gimple-pretty-print.h.
4292         * pretty-print.c: Don't include tree.h
4293         (pp_base_format): Don't handle %K here.
4294         (pp_base_tree_identifier): Move to tree-pretty-print.c.
4295         * pretty-print.h (text_info): Change abstract_origin to x_data.
4296         (pp_tree_identifier, pp_unsupported_tree,
4297         pp_base_tree_identifier): Move to tree-pretty-print.h.
4298         * gimple-pretty-print.h, tree-diagnostic.c, tree-diagnostic.h,
4299         tree-pretty-print.h: New files.
4300         * tree-pretty-print.c: Include tree-pretty-print.h.
4301         (percent_K_format): New.  Moved from pretty-print.c.
4302         (pp_base_tree_identifier): Move from pretty-print.c.
4303         * c-objc-common.c: Include tree-pretty-print.h.
4304         (c_tree_printer): Handle %K here.
4305         * langhooks.c: Include tree-diagnostic.h.
4306         (lhd_print_error_function): Use diagnostic_abstract_origin macro.
4307         * toplev.c: Include tree-diagnostic.h and tree-pretty-print.h.
4308         (default_tree_printer): Handle %K using percent_K_format.
4309         (general_init): Use default_tree_diagnostic_starter.
4310         * tree.c: Include tree-diagnostic.h and tree-pretty-print.h.
4311         (free_lang_data): Use default_tree_diagnostic_starter.
4312         * c-pretty-print.c: Include tree-pretty-print.h.
4313         * cfgexpand.c: Include tree-pretty-print.h and gimple-pretty-print.h.
4314         * cgraphunit.c: Include tree-pretty-print.h and gimple-pretty-print.h.
4315         * dwarf2out.c: Include tree-pretty-print.h.
4316         * except.c: Include tree-pretty-print.h.
4317         * gimple-pretty-print.c: Include tree-pretty-print.h and
4318         gimple-pretty-print.h.
4319         * gimplify.c: Include tree-pretty-print.h.
4320         * graphite-poly.c: Include tree-pretty-print.h and
4321         gimple-pretty-print.h.
4322         * ipa-cp.c: Include tree-pretty-print.h.
4323         * ipa-inline.c: Include gimple-pretty-print.h.
4324         * ipa-prop.c: Include tree-pretty-print.h and gimple-pretty-print.h.
4325         * ipa-pure-const.c: Include gimple-pretty-print.h.
4326         * ipa-struct-reorg.c: Include tree-pretty-print.h and
4327         gimple-pretty-print.h.
4328         * ipa-type-escape.c: Include tree-pretty-print.h.
4329         * print-rtl.c: Include tree-pretty-print.h.
4330         * print-tree.c: Include gimple-pretty-print.h.
4331         * sese.c: Include tree-pretty-print.h.
4332         * tree-affine.c: Include tree-pretty-print.h.
4333         * tree-browser.c: Include tree-pretty-print.h.
4334         * tree-call-cdce.c: Include gimple-pretty-print.h.
4335         * tree-cfg.c: Include tree-pretty-print.h and gimple-pretty-print.h.
4336         * tree-chrec.c: Include tree-pretty-print.h.
4337         * tree-data-ref.c: Include tree-pretty-print.h and
4338         gimple-pretty-print.h.
4339         * tree-dfa.c: Include tree-pretty-print.h.
4340         * tree-if-conv.c: Include tree-pretty-print.h and
4341         gimple-pretty-print.h.
4342         * tree-inline.c: Include tree-pretty-print.h.
4343         * tree-into-ssa.c: Include tree-pretty-print.h and
4344         gimple-pretty-print.h.
4345         * tree-nrv.c: Include tree-pretty-print.h.
4346         * tree-object-size.c: Include tree-pretty-print.h and
4347         gimple-pretty-print.h.
4348         * tree-outof-ssa.c: Include tree-pretty-print.h and
4349         gimple-pretty-print.h.
4350         * tree-parloops.c: Include tree-pretty-print.h and
4351         gimple-pretty-print.h.
4352         * tree-predcom.c: Include tree-pretty-print.h and
4353         gimple-pretty-print.h.
4354         * tree-scalar-evolution.c: Include tree-pretty-print.h and
4355         gimple-pretty-print.h.
4356         * tree-sra.c: Include tree-pretty-print.h.
4357         * tree-ssa-address.c: Include tree-pretty-print.h.
4358         * tree-ssa-alias.c: Include tree-pretty-print.h.
4359         * tree-ssa-ccp.c: Include tree-pretty-print.h and
4360         gimple-pretty-print.h.
4361         * tree-ssa-coalesce.c: Include tree-pretty-print.h.
4362         * tree-ssa-copy.c: Include tree-pretty-print.h and
4363         gimple-pretty-print.h.
4364         * tree-ssa-copyrename.c: Include tree-pretty-print.h.
4365         * tree-ssa-dce.c: Include tree-pretty-print.h and
4366         gimple-pretty-print.h.
4367         * tree-ssa-dom.c: Include tree-pretty-print.h and
4368         gimple-pretty-print.h.
4369         * tree-ssa-dse.c: Include gimple-pretty-print.h.
4370         * tree-ssa-forwprop.c: Include tree-pretty-print.h.
4371         * tree-ssa-ifcombine.c: Include tree-pretty-print.h.
4372         * tree-ssa-live.c: Include tree-pretty-print.h and
4373         gimple-pretty-print.h.
4374         * tree-ssa-loop-im.c: Include tree-pretty-print.h and
4375         gimple-pretty-print.h.
4376         * tree-ssa-loop-ivcanon.c: Include tree-pretty-print.h and
4377         gimple-pretty-print.h.
4378         * tree-ssa-loop-ivopts.c: Include tree-pretty-print.h and
4379         gimple-pretty-print.h.
4380         * tree-ssa-loop-niter.c: Include tree-pretty-print.h and
4381         gimple-pretty-print.h.
4382         * tree-ssa-loop-prefetch.c: Include tree-pretty-print.h.
4383         * tree-ssa-math-opts.c: Include gimple-pretty-print.h.
4384         * tree-ssa-operands.c: Include tree-pretty-print.h and
4385         gimple-pretty-print.h.
4386         * tree-ssa-phiprop.c: Include tree-pretty-print.h and
4387         gimple-pretty-print.h.
4388         * tree-ssa-pre.c: Include tree-pretty-print.h and
4389         gimple-pretty-print.h.
4390         * tree-ssa-propagate.c: Include gimple-pretty-print.h.
4391         * tree-ssa-reassoc.c: Include tree-pretty-print.h and
4392         gimple-pretty-print.h.
4393         * tree-ssa-sccvn.c: Include tree-pretty-print.h and
4394         gimple-pretty-print.h.
4395         * tree-ssa-sink.c: Include gimple-pretty-print.h.
4396         * tree-ssa-ter.c: Include tree-pretty-print.h and
4397         gimple-pretty-print.h.
4398         * tree-ssa-uninit.c: Include gimple-pretty-print.h.
4399         * tree-ssa.c: Include tree-pretty-print.h and
4400         gimple-pretty-print.h.
4401         * tree-stdarg.c: Include gimple-pretty-print.h.
4402         * tree-switch-conversion.c: Include gimple-pretty-print.h.
4403         * tree-tailcall.c: Include tree-pretty-print.h and
4404         gimple-pretty-print.h.
4405         * tree-vect-data-refs.c: Include tree-pretty-print.h and
4406         gimple-pretty-print.h.
4407         * tree-vect-loop-manip.c: Include tree-pretty-print.h and
4408         gimple-pretty-print.h.
4409         * tree-vect-loop.c: Include tree-pretty-print.h and
4410         gimple-pretty-print.h.
4411         * tree-vect-patterns.c: Include gimple-pretty-print.h.
4412         * tree-vect-slp.c: Include tree-pretty-print.h and
4413         gimple-pretty-print.h.
4414         * tree-vect-stmts.c: Include tree-pretty-print.h and
4415         gimple-pretty-print.h.
4416         * tree-vectorizer.c: Include tree-pretty-print.h.
4417         * tree-vrp.c: Include tree-pretty-print.h and
4418         gimple-pretty-print.h.
4419         * value-prof.c: Include tree-pretty-print.h and
4420         gimple-pretty-print.h.
4421         * var-tracking.c: Include tree-pretty-print.h.
4422         * Makefile.in (OBJS-common): Add tree-diagnostic.o.
4423         (tree-diagnostic.o): New dependencies.
4424         (c-objc-common.o, c-pretty-print.o, langhooks.o, tree.o,
4425         tree-inline.o, print-tree.o, stor-layout.o, tree-ssa-uninit.o,
4426         tree-ssa.o, tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o,
4427         tree-outof-ssa.o, tree-ssa-forwprop.o, tree-ssa-phiprop.o,
4428         tree-ssa-ifcombine.o, tree-nrv.o, tree-ssa-copy.o,
4429         tree-ssa-propagate.o, tree-ssa-dom.o, tree-ssa-uncprop.o,
4430         tree-ssa-live.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
4431         tree-ssa-sccvn.o, tree-vrp.o, tree-cfg.o, tree-tailcall.o,
4432         tree-ssa-sink.o, tree-if-conv.o, tree-dfa.o, tree-ssa-operands.o,
4433         tree-ssa-address.o, tree-ssa-loop-niter.o,
4434         tree-ssa-loop-ivcanon.o, tree-ssa-loop-prefetch.o, tree-predcom.o,
4435         tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-im.o,
4436         tree-ssa-math-opts.o, tree-ssa-alias.o, tree-ssa-reassoc.o,
4437         gimplify.o, tree-browser.o, tree-chrec.o, tree-scalar-evolution.o,
4438         tree-data-ref.o, sese.o, graphite-poly.o, tree-vect-loop.o,
4439         tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o,
4440         tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o,
4441         tree-parloops.o, tree-stdarg.o, tree-object-size.o,
4442         gimple-pretty-print.o, tree-pretty-print.o, diagnostic.o,
4443         toplev.o, print-rtl.o, except.o, dwarf2out.o, cgraphunit.o,
4444         ipa-prop.o, ipa-cp.o, ipa-inline.o, ipa-pure-const.o,
4445         ipa-type-escape.o, ipa-struct-reorg.o, tree-ssa-dce.o,
4446         tree-call-cdce.o, tree-ssa-ccp.o, tree-sra.o,
4447         tree-switch-conversion.o, var-tracking.o, value-prof.o,
4448         cfgexpand.o, pretty-print.o): Update dependencies.
4449
4450 2010-05-22  Andreas Tobler  <andreast@fgznet.ch>
4451
4452         * tree-ssa-structalias.c: Remove tm_p.h from include.
4453
4454 2010-05-21  Jeff Law  <law@redhat.com>
4455
4456         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Fix typo.
4457
4458 2010-05-21  Jason Merrill  <jason@redhat.com>
4459
4460         * tree-eh.c (cleanup_is_dead_in): New.
4461         (lower_try_finally): Don't generate a dead cleanup region.
4462         (lower_cleanup): Likewise.
4463
4464 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
4465
4466         PR debug/44223
4467         * haifa-sched.c (schedule_insn): When freeing INSN_REG_USE_LIST,
4468         unchain each use from the cyclic next_regno_use chain first.
4469
4470 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
4471
4472         * real: Do not include gmp.h, mpfr.h, and mpc.h.
4473         (REAL_VALUE_NEGATE, REAL_VALUE_ABS, real_arithmetic2): Remove.
4474         (real_value_negate, real_value_abs): New prototypes.
4475         (do_mpc_arg2, real_from_mpfr, mpfr_from_real): Move from here...
4476         * realmpfr.h (do_mpc_arg2, real_from_mpfr, mpfr_from_real): ...to here,
4477         new include file for interface between MPFR and REAL_VALUE_TYPE.
4478         * real.c: Include realmpfr.h.
4479         (real_arithmetic2): Remove legacy function.
4480         (real_value_negate): New.
4481         (real_value_abs): New.
4482         (mfpr_from_real, real_from_mpfr): Move from here...
4483         * realmpfr.c (mpfr_from_real, real_from_mpfr): ...to here, new file.
4484         * builtins.c: Include realmpfr.h.
4485         * fold-const.c: Include realmpfr.h.
4486         (fold_comparison): Use real_value_negate instead of REAL_VALUE_NEGATE.
4487         (fold_negate_const): Likewise.
4488         (fold_abs_const): Use real_value_abs instead of REAL_VALUE_ABS.
4489         * toplev.c: Include realmpfr.h.
4490         * simplify-rtx.c (simplify_const_unary_operation): Use real_value_abs
4491         and real_value_negate.
4492         * fixed-value.c (check_real_for_fixed_mode): Likewise.
4493         * config/arm/arm.c (neg_const_double_rtx_ok_for_fpa): Likewise.
4494         (vfp3_const_double_index): Likewise.
4495         (arm_print_operand): Likewise.
4496         * Makefile.in: Update dependencies.
4497
4498 2010-05-21  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
4499
4500         * config/s390/s390.c (override_options): Increase the default
4501         of max-completely-peel-times.
4502
4503 2010-05-21  Julian Brown  <julian@codesourcery.com>
4504             Mark Mitchell  <mark@codesourcery.com>
4505
4506         * config/arm/arm.c (arm_function_ok_for_sibcall): Only forbid
4507         sibling calls for Thumb-1.
4508         * config/arm/arm.h (USE_RETURN_INSN): Enable for Thumb-2.
4509         * config/arm/arm.md (*call_symbol, *call_value_symbol): Use for
4510         Thumb-2.
4511         (*call_insn, *call_value_insn): Don't use for Thumb-2.
4512         (sibcall, sibcall_value, *sibcall_insn, *sibcall_value_insn): Use
4513         for Thumb-2.
4514         (return): New expander.
4515         (*arm_return): New name for ARM return insn.
4516         * config/arm/thumb2.md (*thumb2_return): New insn pattern.
4517
4518 2010-05-19  Joel Sherrill <joel.sherrill@oarcorp.com>
4519
4520         * config.gcc (sparc64-*-rtems*): New target.
4521
4522 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
4523
4524         * tree.c (build_function_decl_skip_args): Fix grammar.
4525         (build_function_type_list_1): Fix typos, adjust formatting.
4526
4527 2010-05-21  Steven Bosscher  <steven@gcc.gnu.org>
4528
4529         * tree.h: Include real.h and fixed-value.h as basic datatypes.
4530         * dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
4531         tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
4532         tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
4533         tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
4534         genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
4535         tree-pretty-print.c, tree-loop-distribution.c,
4536         tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
4537         tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
4538         tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
4539         tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
4540         tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
4541         tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
4542         tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
4543         tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
4544         tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
4545         tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
4546         genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
4547         tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
4548         gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
4549         tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
4550         tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
4551         store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
4552         tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
4553         tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
4554         tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
4555         tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
4556         fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
4557         tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
4558         config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
4559         config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
4560         config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
4561         config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
4562         config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
4563         config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
4564         config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
4565         config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
4566         config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
4567         config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
4568         config/score/score7.c, config/score/score.c, config/arm/arm.c,
4569         config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
4570         config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
4571         config/bfin/bfin.c: Clean up redundant includes.
4572         * Makefile.in: Update accordingly.
4573
4574 2010-05-21  Nathan Froyd  <froydnj@codesourcery.com>
4575
4576         PR middle-end/44204
4577         * builtins.c (fold_call_stmt): Pass &error_mark_node if the call
4578         statement has no arguments.
4579
4580 2010-05-21  Kai Tietz  <kai.tietz@onevision.com>
4581
4582         PR/44139
4583         * varasm.c (emutls_decl): Merge attributes to new decl.
4584
4585 2010-05-21  Eric Botcazou  <ebotcazou@adacore.com>
4586
4587         PR middle-end/44101
4588         * gimplify.c (gimplify_init_constructor): Build a VIEW_CONVERT_EXPR
4589         around the uniquized constructor if its type requires a conversion.
4590
4591 2010-05-21  Jakub Jelinek  <jakub@redhat.com>
4592
4593         PR debug/44205
4594         * tree-cfgcleanup.c (tree_forwarder_block_p): Return false if
4595         at -O0 goto_locus of any of the incoming edges differs from
4596         goto_locus of outgoing edge, or gimple_location of any of the
4597         labels differs.
4598
4599 2009-09-14  Vladimir Makarov <vmakarov@redhat.com>
4600
4601         * ira.c (ira_non_ordered_class_hard_regs): Define.
4602         (setup_class_hard_regs): Initialize ira_non_ordered_class_hard_regs.
4603         * ira-int.h (ira_non_ordered_class_hard_regs): Declare.
4604         * ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Increase
4605         cost of unaligned hard regs when allocating multi-reg pseudos.
4606
4607 2010-05-20  Richard Sandiford  <rdsandiford@googlemail.com>
4608
4609         * config.gcc (mips*-sde-elf*): Don't use sdemtk.opt.
4610         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_no_float
4611         for TARGET_NO_FLOAT.
4612         * config/mips/mips.c (mips_file_start): Expand conditional expression
4613         into "if" statements.  Use .gnu_attribute 4,0 for TARGET_NO_FLOAT.
4614         (mips_override_options): Move -mno-float override -msoft-float and
4615         -mhard-float.
4616         * config/mips/mips.opt (mno-float): Move from sdemtk.opt, but add
4617         Condition(TARGET_SUPPORTS_NO_FLOAT).
4618         * config/mips/sdemtk.h (TARGET_OS_CPP_BUILTINS): Don't set
4619         __mips_no_float here.
4620         (SUBTARGET_OVERRIDE_OPTIONS): Delete.
4621         (TARGET_SUPPORTS_NO_FLOAT): Define.
4622         * config/mips/sdemtk.opt: Delete.
4623
4624 2010-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
4625
4626         * ipa-prop.c (compute_complex_ancestor_jump_func): Bail out if !cond.
4627
4628 2010-05-20  Uros Bizjak  <ubizjak@gmail.com>
4629
4630         PR target/43733
4631         * configure.ac (gcc_cv_as_ix86_sahf): Switch to 64bit mode.
4632         * configure: Regenerate.
4633         * config.in: Regenerate.
4634         * config/i386/i386.md (x86_sahf_1): Conditionally output 0x9e
4635         instead of sahf only for 64bit targets.
4636
4637 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
4638
4639         PR debug/44178
4640         * haifa-sched.c (initiate_bb_reg_pressure_info): Do not call
4641         setup_ref_regs for DEBUG_INSNs.
4642
4643 2010-05-20  Jan Hubicka  <jh@suse.cz>
4644
4645         PR middle-end/44197
4646         * varpool.c (varpool_remove_node): Handle in-varpool aliases.
4647
4648 2010-05-20  Kenneth Zadeck  <zadeck@naturalbridge.com>
4649
4650         PR bootstrap/43870
4651         * df-scan.c (df_ref_compare): Stabilize sort.
4652
4653 2010-05-20  Jakub Jelinek  <jakub@redhat.com>
4654
4655         * dwarf2out.c (new_loc_descr_op_bit_piece): Add offset
4656         argument.  Don't use DW_OP_piece if offset is non-zero,
4657         put offset into second DW_OP_bit_piece argument.
4658         (dw_sra_loc_expr): Adjust callers.  For memory expressions
4659         compute offset.
4660
4661 2010-05-20  Hans-Peter Nilsson  <hp@axis.com>
4662
4663         PR target/44202
4664         * config/cris/cris.md ("*addsi3_v32"): Correct "cc"
4665         settings for 16-bit-constant "addo" alternative.
4666
4667 2010-05-19  James E. Wilson  <wilson@codesourcery.com>
4668
4669         * config/mips/mips-dsp.md (add<DSPV:mode>3,
4670         mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>): Add ISA_HAS_DSP condition.
4671
4672         PR target/43764
4673         * mips.c (mips_call_expr_from_insn): New arg second_call.  Set it.
4674         (mips_annotate_pic_calls): Pass new arg to mips_call_expr_from_insn.
4675         Use it.
4676
4677 2010-05-19  Joseph Myers  <joseph@codesourcery.com>
4678
4679         * diagnostic.c (FLOAT, FFS): Don't undefine.
4680         * passes.c, pretty-print.c, rtl-error.c, toplev.c: Likewise.
4681         * cse.c, regmove.c: Remove comments about stdio.h and rtl.h
4682         include ordering.
4683
4684 2010-05-19  Richard Sandiford  <rdsandiford@googlemail.com>
4685
4686         * combine.c (propagate_for_debug): Call make_compound_operation
4687         on the source value.
4688         (try_combine): When implementing a split chosen by find_split_point,
4689         either copy i2src or set it to null.  Assert that i2src is not null
4690         before substituting into CALL_INSN_FUNCTION_USAGE.
4691
4692 2010-05-19  Anatoly Sokolov  <aesok@post.ru>
4693
4694         * double-int.h (double_int_ior): New function.
4695         * tree.h (build_int_cst_wide_type): Remove.
4696         * tree.c (build_int_cst_wide_type): Remove.
4697         * fold-const.c (native_interpret_int): Use double_int_to_tree instead
4698         of build_int_cst_wide_type.
4699         * stor-layout.c (set_sizetype): (Ditto.).
4700         * dojump.c (do_jump): Use build_int_cstu instead of
4701         build_int_cst_wide_type.
4702
4703 2010-05-19  Eric Botcazou  <ebotcazou@adacore.com>
4704
4705         * langhooks.h (struct lang_hooks): Add new field deep_unsharing.
4706         * langhooks-def.h (LANG_HOOKS_DEEP_UNSHARING): New macro.
4707         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_DEEP_UNSHARING.
4708         * gimplify.c (mostly_copy_tree_r): Copy trees under SAVE_EXPR and
4709         TARGET_EXPR nodes, but only once, if instructed to do so.  Do not
4710         propagate the 'data' argument to copy_tree_r.
4711         (copy_if_shared_r): Remove bogus ATTRIBUTE_UNUSED marker.
4712         Propagate 'data' argument to walk_tree.
4713         (copy_if_shared): New function.
4714         (unmark_visited_r): Remove bogus ATTRIBUTE_UNUSED marker.
4715         (unmark_visited): New function.
4716         (unshare_body): Call copy_if_shared instead of doing it manually.
4717         (unvisit_body): Call unmark_visited instead of doing it manually.
4718
4719 2010-05-19  Nathan Froyd  <froydnj@codesourcery.com>
4720
4721         * hooks.h (hook_tree_tree_tree_bool_null): Rename to...
4722         (hook_tree_tree_int_treep_bool_null): ...this.  Update signature.
4723         * hooks.c: Likewise.
4724         * target-def.h (TARGET_FOLD_BUILTIN): Define to
4725         hook_tree_tree_int_treep_bool_null.
4726         * target.h (struct gcc_target): Update signature of fold_builtin
4727         field.
4728         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update description and signature.
4729         * builtins.c (fold_call_expr): Pass call_expr_nargs and CALL_EXPR_ARGP
4730         instead of the call expression.
4731         (fold_builtin_call_array): Pass n and argarray directly.
4732         (fold_call_stmt): Pass nargs and gimple_call_arg_ptr instead of
4733         consing a list.
4734         * config/alpha/alpha.c (alpha_fold_builtin): Update signature.  Lift
4735         MAX_ARGS check out of the loop.  Delete declaration of `arity', declare
4736         `i' and use it in place of `arity'.
4737         * config/sparc/sparc.c (sparc_fold_builtin): Update signature.
4738         Dereference `args' directly.
4739         * config/xtensa/xtensa (xtensa_fold_builtin): Likewise.
4740
4741 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4742
4743         * doc/sourcebuild.texi (Effective-Target Keywords): Document
4744         3dnow, sse3, sse2.
4745         (Directives): Document optional dg-require-effective-target
4746         selector.
4747
4748 2010-05-19  Richard Guenther  <rguenther@suse.de>
4749
4750         PR lto/44196
4751         * tree.c (find_decls_types_r): Walk BLOCKs and its vars.
4752
4753 2010-05-19  Richard Guenther  <rguenther@suse.de>
4754
4755         * doc/invoke.texi (-fwhopr): Document new optional jobs argument.
4756         * common.opt (fwhopr=): New.
4757         * opts.c (common_handle_option): Handle OPT_fwhopr.
4758         * gcc.c (LINK_COMMAND_SPEC): Pass fwhopr*.
4759         * collect2.c (main): Match -fwhopr*.
4760         * lto-wrapper.c (run_gcc): Handle jobs argument of -fwhopr.
4761         Execute ltrans stage in parallel when jobs is bigger than 1.
4762
4763 2010-05-19  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4764
4765         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32 to
4766         pentiumpro on Solaris 8/x86 with Sun as.
4767         * configure.ac (gcc_cv_as_hidden): Check for Solaris 9/x86 as
4768         hidden alias bug.
4769         (gcc_cv_as_ix86_quad): Check for .quad directive.
4770         * configure: Regenerate.
4771         * config.in: Regenerate.
4772         * config/i386/sol2.h (ASM_QUAD): Change guard to !HAVE_AS_IX86_QUAD.
4773
4774 2010-05-19  Martin Jambor  <mjambor@suse.cz>
4775
4776         * ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
4777         also for indirect edges.  Actual printing moved...
4778         (ipa_print_node_jump_functions_for_edge): ...here.
4779         (ipa_compute_jump_functions): Renamed to
4780         ipa_compute_jump_functions_for_edge and made static.
4781         (ipa_compute_jump_functions): New function.
4782         (make_edge_direct_to_target): Check if the number of arguments on
4783         the newly direct edge is the same as the number of parametrs of
4784         the callee.
4785         * ipa-cp.c (ipcp_init_stage): Most functionality moved to new
4786         ipa_compute_jump_functions.  Call ipa_analyze_params_uses.
4787         * ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
4788         analysis functions unconditionally, call the new
4789         ipa_analyze_params_uses on the node instead of every edge.
4790
4791 2010-05-19  Christian Borntraeger  <borntraeger@de.ibm.com>
4792
4793         * tree-ssa-loop-prefetch.c (mem_ref_group, ar_data): Change step
4794         to tree.
4795         (dump_mem_ref): Adopt debug code to handle a tree as step.  This
4796         also checks for a constant int vs.  non-constant but
4797         loop-invariant steps.
4798         (find_or_create_group): Change the sort algorithm to only consider
4799         steps that are constant ints.
4800         (idx_analyze_ref): Adopt code to handle a tree instead of a
4801         HOST_WIDE_INT for step.
4802         (gather_memory_references_ref): Handle tree instead of int and be
4803         prepared to see a NULL_TREE.
4804         (prune_ref_by_self_reuse, prune_ref_by_group_reuse): Do not prune
4805         prefetches if the step cannot be calculated at compile time.
4806         (issue_prefetch_ref): Issue prefetches for non-constant but
4807         loop-invariant steps.
4808
4809 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
4810
4811         Revert:
4812         2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
4813
4814         * tree.h (build_call_list): Remove.
4815         * tree.c (build_call_list): Remove.
4816
4817 2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
4818
4819         * tree.h (build_call_list): Remove.
4820         * tree.c (build_call_list): Remove.
4821
4822 2010-05-18  Jan Hubicka  <jh@suse.cz>
4823
4824         * ipa-reference.c (propagate): Walk all nodes in the cleanup stage.
4825
4826 2010-05-18  Vladimir Makarov  <vmakarov@redhat.com>
4827
4828         PR rtl-optimization/43332
4829         * haifa-sched.c (setup_insn_max_reg_pressure): Check barrier.
4830
4831 2010-05-18  Anatoly Sokolov  <aesok@post.ru>
4832
4833         * tree.h (build_int_cstu): Implement as static inline.
4834         * tree.c (build_int_cstu): Remove function.
4835         (double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
4836         sign extended.
4837
4838 2010-05-18  Richard Guenther  <rguenther@suse.de>
4839
4840         PR lto/44143
4841         * lto-wrapper.c (verbose): New variable.  Initialize from -v.
4842         (debug): Initialize from -save-temps.
4843         (collect_execute): Print command-line when verbose.
4844         (run_gcc): Always use COLLECT_GCC_OPTIONS.  Use fork_execute
4845         for ltrans invocation.  Produce -dumpbase flag again.
4846         (process_args): Remove.
4847         (main): Simplify.
4848         * collect2.c (maybe_run_lto_and_relink): Only pass object
4849         files to lto-wrapper.
4850         * gcc.c (LINK_COMMAND_SPEC): Likewise.
4851
4852 2010-05-18  Jan Hubicka  <jh@suse.cz>
4853
4854         * opts.c (decode_options): Do not disable whopr at ipa_cp.
4855         * ipa-prop.c (ipa_detect_param_modifications): Walk PHI nodes too.
4856
4857 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
4858
4859         PR lto/44184
4860         * lto-streamer-out.c (output_gimple_stmt): Output number of labels
4861         in a GIMPLE_ASM.
4862         * lto-streamer-in.c (input_gimple_stmt): Read number of labels
4863         in a GIMPLE_ASM.
4864
4865 2010-05-18  Jakub Jelinek  <jakub@redhat.com>
4866
4867         PR debug/41371
4868         * var-tracking.c (find_loc_in_1pdv): Add a few checks from
4869         rtx_equal_p inline.
4870
4871 2010-05-18  Steven Bosscher  <steven@gcc.gnu.org>
4872
4873         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Add
4874         lto-macho as lto_binary_reader.
4875
4876         * darwin.c (darwin_asm_named_section): Do not add assembler comment
4877         after .section directive; just print it before the directive instead.
4878
4879 2010-05-17  Jan Hubicka  <jh@suse.cz>
4880
4881         * cgraph.c (cgraph_create_virtual_clone): Only check
4882         versionable_function_p when not in wpa and checking is enabled.
4883         * cgraphunit.c (cgraph_materialize_all_clones): Stabilize after
4884         there are no more functions to materialize.
4885
4886 2010-05-17  Jan Hubicka  <jh@suse.cz>
4887
4888         * cgraph.h (struct ipa_replace_map): Add parm_num parameter.
4889         * lto-cgraph.c (output_cgraph_opt_summary, input_cgraph_opt_summary):
4890         New functions.
4891         (output_cgraph): Call output_cgraph_opt_summary.
4892         (input_cgrpah): Call input_cgraph_opt_summary.
4893         (output_cgraph_opt_summary_p, output_node_opt_summary,
4894         input_node_opt_summary, input_cgraph_opt_section): New functions.
4895         * lto-section-in.c (lto_section_name): Add cgraphopt.
4896         * tree-inline.c (tree_function_versioning): Handle parm_num.
4897         * lto-streamer.c (lto_get_section_name): Handle cgraphopt.
4898         * lto-streamer.h (lto_section_type): Add LTO_section_cgraph_opt_sum.
4899
4900 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
4901
4902         * doc/invoke.texi: Update documentation for min-insn-to-prefetch-ratio.
4903         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Also apply
4904         the insn to prefetch ratio heuristic to loops with known trip count.
4905
4906 2010-05-17  Changpeng Fang  <changpeng.fang@amd.com>
4907
4908         * tree-ssa-loop-prefetch.c (PREFETCH_MOD_TO_UNROLL_FACTOR_RATIO): New.
4909         (schedule_prefetches): Do not generate a prefetch if the unroll factor
4910         is far from what is required by the prefetch.
4911
4912 2010-05-17  Jan Hubicka  <jh@suse.cz>
4913
4914         * ipa-cp.c (ipcp_update_callgraph): Use ipa_is_param_used.
4915         (ipcp_estimate_growth): Likewise.
4916         (ipcp_const_param_count): Likewise.
4917         (ipcp_insert_stage): Likewise.
4918         * ipa-prop.c (visit_load_for_mod_analysis): New function.
4919         (visit_store_addr_for_mod_analysis): Set used flag.
4920         (ipa_detect_param_modifications): Set used flag for SSE params;
4921         update use of walk_stmt_load_store_addr_ops.
4922         (ipa_print_node_params): Print used flag.
4923         (ipa_write_node_info): Stream used flag.
4924         (ipa_read_node_info): Likewise.
4925         * ipa-prop.h (struct ipa_param_descriptor): Add used field.
4926         (ipa_is_param_used): New function.
4927         (lto_ipa_fixup_call_notes): Remove unused declaration.
4928
4929 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4930
4931         PR target/44074
4932         * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test.
4933         * configure: Regenerate.
4934         * config.in: Regenerate.
4935         * config/i386/i386.c (print_operand) <case ;>: Also print ";" if
4936         !HAVE_AS_IX86_REP_LOCK_PREFIX.
4937         Don't emit whitespace.
4938         * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep.
4939         (*rep_movsi): Likewise.
4940         (*rep_movsi_rex64): Likewise.
4941         (*rep_movqi): Likewise.
4942         (*rep_movqi_rex64): Likewise.
4943         (*rep_stosdi_rex64): Likewise.
4944         (*rep_stossi): Likewise.
4945         (*rep_stossi_rex64): Likewise.
4946         (*rep_stosqi): Likewise.
4947         (*rep_stosqi_rex64): Likewise.
4948         (*cmpstrnqi_nz_1): Use {%;} after repz.
4949         (*cmpstrnqi_nz_rex_1): Likewise.
4950         (*cmpstrnqi_1): Likewise.
4951         (*cmpstrnqi_rex_1): Likewise.
4952         (*strlenqi_1): Use {%;} after repnz.
4953         (*strlenqi_rex_1): Likewise.
4954         * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} .
4955         (*sync_compare_and_swap<mode>): Likewise.
4956         (sync_double_compare_and_swap<mode>): Likewise.
4957         (*sync_double_compare_and_swapdi_pic): Likewise.
4958         (sync_old_add<mode>): Likewise.
4959         (sync_add<mode>): Likewise.
4960         (sync_sub<mode>): Likewise.
4961         (sync_<code><mode>): Likewise.
4962
4963 2010-05-17  Martin Jambor  <mjambor@suse.cz>
4964
4965         * cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
4966         otr_token and polymorphic.
4967         * cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
4968         (cgraph_clone_edge): Copy the above fields.
4969         * tree.c (get_binfo_at_offset): New function.
4970         * tree.h (get_binfo_at_offset): Declare.
4971         * ipa-prop.h (enum jump_func_type): Added known_type jump function
4972         type, reordered items, updated comments.
4973         (union jump_func_value): Added base_type field, reordered fields.
4974         (enum ipa_lattice_type): Moved down in the file.
4975         (struct ipa_param_descriptor): New field polymorphic.
4976         (ipa_is_param_polymorphic): New function.
4977         * ipa-prop.c: Include gimple.h and gimple-fold.h.
4978         (ipa_print_node_jump_functions): Print known type jump functions.
4979         (compute_complex_pass_through): Renamed to...
4980         (compute_complex_assign_jump_func): this.
4981         (compute_complex_ancestor_jump_func): New function.
4982         (compute_known_type_jump_func): Likewise.
4983         (compute_scalar_jump_functions): Create known type and complex ancestor
4984         jump functions.
4985         (ipa_note_param_call): New parameter polymorphic, set the corresponding
4986         flag in the call note accordingly.
4987         (ipa_analyze_call_uses): Renamed to...
4988         (ipa_analyze_indirect_call_uses): this.  New parameter target, define
4989         variable var only in the block where it is used.
4990         (ipa_analyze_virtual_call_uses): New function.
4991         (ipa_analyze_call_uses): Likewise.
4992         (combine_known_type_and_ancestor_jfs): Likewise.
4993         (update_jump_functions_after_inlining): Implemented handling of a
4994         number of new jump function types combination.
4995         (print_edge_addition_message): Removed.
4996         (make_edge_direct_to_target): New function.
4997         (try_make_edge_direct_simple_call): Likewise.
4998         (try_make_edge_direct_virtual_call): Likewise.
4999         (update_call_notes_after_inlining): Renamed to...
5000         (update_indirect_edges_after_inlining): this.  Moved edge creation for
5001         indirect calls to try_make_edge_direct_simple_call, also calls
5002         try_make_edge_direct_virtual_call for virtual calls.
5003         (ipa_print_node_params): Changed the header message.
5004         (ipa_write_jump_function): Stream also known type jump functions.
5005         (ipa_read_jump_function): Likewise.
5006         (ipa_write_indirect_edge_info): Stream new fields in
5007         cgraph_indirect_call_info.
5008         (ipa_read_indirect_edge_info): Likewise.
5009         * Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
5010         GIMPLE_FOLD_H.
5011
5012 2010-05-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5013
5014         * config/i386/sol2.h (TARGET_SUN_TLS): Remove duplicate definition.
5015
5016 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
5017
5018         * tree.h (CALL_EXPR_ARGS): Delete.
5019         (call_expr_arglist): Delete.
5020         * tree.c (call_expr_arglist): Delete.
5021         * builtins.c (fold_call_expr): Pass the whole CALL_EXPR to
5022         targetm.fold_builtin.
5023         * config/alpha/alpha.c (alpha_fold_builtin): Rename arglist parameter.
5024         Rewrite iteration to work on call_expr_nargs rather than TREE_CHAIN.
5025         * config/picochip/picochip.c (picochip_expand_builtin_2op): Rename
5026         arglist parameter.  Use CALL_EXPR_ARG.
5027         (picochip_expand_builtin_3op): Likewise.
5028         (picochip_expand_builtin_2opvoid): Likewise.
5029         (picochip_expand_array_get): Likewise.
5030         (picochip_expand_array_put): Likewise.
5031         (picochip_expand_array_testport): Likewise.
5032         (picochip_expand_builtin): Don't call CALL_EXPR_ARGS.  Pass exp
5033         rather than arglist.
5034         * config/rx/rx.c (rx_expand_builtin): Call call_expr_nargs instead of
5035         CALL_EXPR_ARGS.
5036         * config/sparc/sparc.c (sparc_fold_builtin): Use CALL_EXPR_ARG rather
5037         than TREE_VALUE and TREE_CHAIN.
5038         * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
5039         * doc/tm.texi (TARGET_FOLD_BUILTIN): Pass CALL_EXPR tree instead of
5040         the arglist.
5041
5042 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
5043
5044         PR bootstrap/42347
5045         * cfglayout.c (fixup_reorder_chain): Allow returnjump_p
5046         to have no fallthru edge.
5047
5048         PR middle-end/44102
5049         * cfgcleanup.c (try_optimize_cfg): When removing trivially empty
5050         bb with no successors, move footer whenever in IR_RTL_CFGLAYOUT
5051         mode, not just when CLEANUP_CFGLAYOUT, and when in IR_RTL_CFGRTL
5052         add BARRIER after previous bb if needed.
5053
5054 2010-05-17  Nathan Froyd  <froydnj@codesourcery.com>
5055
5056         * tree.c (build_function_type_list_1): Remove bogus assert condition.
5057
5058 2010-05-17  Alan Modra  <amodra@gmail.com>
5059
5060         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Delete
5061         unnecessary prototype.  Replace copy_r12 and copy_r11 flag params
5062         with copy_reg rtx param.
5063         (rs6000_emit_prologue): Update rs6000_emit_allocate_stack calls.
5064         Correct cases where code for ABI_V4 did not initialise the reg
5065         used to access frame.  Also leave frame_reg_rtx as sp for large
5066         frames that save no regs.
5067
5068 2010-05-17  Martin Jambor  <mjambor@suse.cz>
5069
5070         PR middle-end/44133
5071         * tree-sra.c (create_access_replacement): New parameter rename, mark
5072         the replaement for renaming only when it is true.
5073         (get_access_replacement): Pass true in the rename parameter of
5074         create_access_replacement.
5075         (get_unrenamed_access_replacement): New function.
5076         (replace_uses_with_default_def_ssa_name): New parameter racc, get the
5077         replacement declaration from it.
5078
5079 2010-05-17  Bernd Schmidt  <bernds@codesourcery.com>
5080
5081         * function.c (try_fit_stack_local, add_frame_space): New static
5082         functions.
5083         (assign_stack_local_1): Use them.  Look for opportunities to use
5084         space previously wasted on alignment.
5085         * function.h (struct frame_space): New.
5086         (struct rtl_data): Add FRAME_SPACE_LIST member.
5087         * reload1.c (something_was_spilled): New static variable.
5088         (alter_reg): Set it.
5089         (reload): Test it in addition to testing if the frame size changed.
5090
5091 2010-05-17  Christian Borntraeger  <borntraeger@de.ibm.com>
5092
5093         * config/s390/s390.c: Define sane prefetch settings and activate
5094         flag_prefetch_loop_arrays on -O3.
5095         * config/s390/s390.h: Declare that read can use write prefetch.
5096
5097 2010-05-17  Jakub Jelinek  <jakub@redhat.com>
5098
5099         * lto-streamer-out.c (lto_output): Fix --enable-checking=release
5100         build.
5101
5102 2010-05-16  Jan Hubicka  <jh@suse.cz>
5103
5104         * ipa-cp.c (ipcp_versionable_function_p): Walk cgraph edges instead of
5105         function body; do not check stdarg field of struct function.
5106
5107 2010-05-16  Jan Hubicka  <jh@suse.cz>
5108
5109         * cgraph.c (dump_cgraph_node): Dump versionable flag.
5110         * cgraph.h (cgraph_local_info): Add versionable flag.
5111         * ipa-cp.c (ipcp_analyze_node): Set versionable flag.
5112         (ipcp_versionable_function_p): Use it.
5113         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
5114         versionable flag.
5115
5116 2010-05-16  Jan Hubicka  <jh@suse.cz>
5117
5118         * cgraph.c (cgraph_clone_node): Take decl argument and insert
5119         clone into hash when it is different from orig.
5120         (cgraph_create_virtual_clone): Update use of cgraph_clone_node.
5121         * cgraph.h (cgraph_clone_node): Update prototype.
5122         * lto-cgrpah.c (lto_cgraph_encoder_new): Create body map.
5123         (lto_cgraph_encoder_delete): Delete body map.
5124         (lto_cgraph_encoder_size): Move to header.
5125         (lto_cgraph_encoder_encode_body_p,
5126         lto_set_cgraph_encoder_encode_body): New.
5127         (lto_output_node): Do not take written_decls argument; output clone_of
5128         pointer.
5129         (add_node_to): Add include_body_argument; call
5130         lto_set_cgraph_encoder_encode_body on master of the clone.
5131         (add_references): Update use of add_node_to.
5132         (compute_ltrans_boundary): Likewise.
5133         (output_cgraph): Do not create written_decls bitmap.
5134         (input_node): Take nodes argument; stream in clone_of correctly.
5135         (input_cgraph_1): Update use of input_node.
5136         * lto-streamer-out.c (lto_output): Use encoder info to decide
5137         what bodies to output.
5138         * ipa-inline.c (cgraph_clone_inlined_nodes,
5139         cgraph_decide_recursive_inlining): Update call of cgraph_clone_node.
5140         * lto-streamer.h (lto_cgraph_encoder_d): Add body.
5141         (lto_cgraph_encoder_size): Define here.
5142         (lto_cgraph_encoder_encode_body_p, lto_varpool_encoder_encode_body_p):
5143         Declare.
5144
5145 2010-05-16  Richard Guenther  <rguenther@suse.de>
5146
5147         * doc/invoke.texi (-fipa-struct-reorg): Do not mention
5148         -fipa-type-escape.
5149         * ipa-type-escape.c (gate_type_escape_vars): Run when
5150         -fipa-struct-reorg runs.
5151         * opts.c (decode_options): Do not unset flag_ipa_type_escape.
5152         * common.opt (fipa-type-escape): Remove.
5153
5154 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5155
5156         * opts.c (handle_option): Call into LTO streamer only if ENABLE_LTO.
5157         (decode_options): Likewise.
5158         * Makefile.in (opts.o): Add dependency on LTO_STREAMER_H.
5159
5160 2010-05-16  Jan Hubicka  <jh@suse.cz>
5161
5162         * ipa.c (function_and_variable_visibility): Also bring local all
5163         aliases.
5164
5165 2010-05-16  Richard Guenther  <rguenther@suse.de>
5166
5167         * alias.c (nonoverlapping_memrefs_p): Remove use of
5168         IPA type-escape information.
5169
5170 2010-05-16  Joseph Myers  <joseph@codesourcery.com>
5171
5172         * c-common.c (c_common_reswords): Add _Static_assert for C.
5173         * c-parser.c (c_token_starts_declaration,
5174         c_parser_next_token_starts_declaration,
5175         c_parser_static_assert_declaration_no_semi,
5176         c_parser_static_assert_declaration): New.
5177         (c_parser_declaration_or_fndef): Add parameter static_assert_ok.
5178         Handle static assertions if static_assert_ok.
5179         (c_parser_external_declaration, c_parser_declaration_or_fndef,
5180         c_parser_compound_statement_nostart, c_parser_label,
5181         c_parser_for_statement, c_parser_objc_methodprotolist,
5182         c_parser_omp_for_loop): All callers of
5183         c_parser_declaration_or_fndef changed.
5184         (c_parser_struct_declaration): Handle static assertions.
5185         (c_parser_compound_statement_nostart): Use
5186         c_parser_next_token_starts_declaration and
5187         c_token_starts_declaration to detect start of declarations.
5188         (c_parser_label, c_parser_for_statement, c_parser_omp_for_loop):
5189         Likewise.
5190
5191 2010-05-16  Anatoly Sokolov  <aesok@post.ru>
5192
5193         * config/mmix/mmix.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE,
5194         LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
5195         * config/mmix/mmix.c (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE,
5196         TARGET_FUNCTION_VALUE_REGNO_P): Define.
5197         (mmix_function_outgoing_value): Rename to...
5198         (mmix_function_value): ...this. Make static. Add 'outgoing' argument.
5199         (mmix_function_value_regno_p): Make static.
5200         (mmix_libcall_value): New function.
5201         * config/mmix/mmix-protos.h (mmix_function_outgoing_value,
5202         mmix_function_value_regno_p): Remove declaration.
5203
5204 2010-05-16  Eric Botcazou  <ebotcazou@adacore.com>
5205
5206         * tree.c (build_common_builtin_nodes): Always clear TREE_NOTHROW on
5207         BUILT_IN_ALLOCA if stack checking is enabled.
5208
5209 2010-05-16  Richard Guenther  <rguenther@suse.de>
5210
5211         * var-tracking.c (vars_copy_1): Inline ...
5212         (vars_copy): ... here.  Use FOR_EACH_HTAB_ELEMENT.
5213         (variable_union): Use FOR_EACH_HTAB_ELEMENT.  Merge asserts.
5214         (variable_merge_over_cur): Adjust.  Merge asserts.
5215         (variable_merge_over_src): Likewise.
5216         (dataflow_set_merge): Use FOR_EACH_HTAB_ELEMENT.
5217         (variable_post_merge_new_vals): Merge asserts.
5218         (variable_post_merge_perm_vals): Likewise.
5219         (find_mem_expr_in_1pdv): Likewise.
5220         (dataflow_set_different_value): Remove.
5221         (onepart_variable_different_p): Merge asserts.
5222         (variable_different_p): Likewise.
5223         (dataflow_set_different_1): Inline ...
5224         (dataflow_set_different): ... here.  Use FOR_EACH_HTAB_ELEMENT.
5225         (emit_notes_for_differences_1): Merge asserts.
5226
5227 2010-05-16  Richard Guenther  <rguenther@suse.de>
5228
5229         * lto-symtab.c (lto_symtab_entry_hash): Use IDENTIFIER_HASH_VALUE.
5230         * optabs.c (libfunc_decl_hash): Likewise.
5231         * varasm.c (emutls_decl): Likewise.
5232
5233 2010-05-16  Steven Bosscher  <steven@gcc.gnu.org>
5234
5235         * c-decl.c: Don't include gimple.h.
5236         (merge_decls): Do not copy gimple_body.
5237
5238 2010-05-15  Jason Merrill  <jason@redhat.com>
5239
5240         * c.opt: Add -fnothrow-opt.
5241
5242 2010-05-15  Jan Hubicka  <jh@suse.cz>
5243
5244         * ipa-prop.c (ipa_prop_read_section): Add sanity check that node is
5245         analyzed.
5246         * passes.c (ipa_write_summaries): Write all analyzed nodes.
5247
5248 2010-05-15  Steven Bosscher  <steven@gcc.gnu.org>
5249
5250         * vecir.h: New file with VEC primitives for tree, gimple, and rtl.
5251         * Makefile.in: Add it.
5252         Fix all other Makefile dependencies for changes below.
5253         * tree.h: Include it instead of defining VEC primitives here.
5254         * gimple.h: Likewise.
5255         * rtl.h: Likewise.
5256         * tree-inline.h: Inlclude vecir.h instead of gimple.h.
5257         * except.h: Include vecir.h, break dependence on tree.h.
5258
5259         * gimplify.c (append_to_statement_list_1, append_to_statement_list):
5260         Move from here...
5261         * tree-iterator.c: ...to here.
5262         * tree-iterator.h: Fix file introduction comment.  Add extern markers.
5263
5264         * c-lex.c: Include fixed-value.h instead of rtl.h.  Do not include
5265         tm_p.h.
5266         * c-cppbuiltin.c: Explain why debug.h and tm_p.h are included.
5267         * c-objc-common.h: Do not include tm.h, rtl.h, insn-config.h,
5268         integrate.h, function.h, toplev.h, tree-inline.h, ggc.h,
5269         tree-mudflap.h, and target.h.
5270         * c-semantics.c: Do not include except.h, ggc.h, rtl.h, timevar.h,
5271         predict.h, tree-inline.h, gimple.h, and langhooks.h.
5272         * c-decl.c: Do not include expr.h, ggc.h, libfuncs.h, except.h.
5273         Add FIXME for why gimple.h is still included (should be unnecessary
5274         since GCC 4.5 gimplification unit-at-a-time).
5275         * c-typeck.c: Do not include rtl.h, tm_p.h, ggc.h, and gimple.h.
5276         * c-pragma.c: Add FIXME for why function.h needs to be included just
5277         for cfun, at front-end level.
5278         Add note that REGISTER_TARGET_PRAGMAS should probably be a target hook.
5279         Do not include ggc.h, but include vecprim.h for VEC(char).
5280         * c-opts.c: Do not include tm.h, tree-inline.h, and tm_p.h.
5281         Explain why target.h is included.
5282         * c-omp.h: Do not include tm.h, function.h, and bitmap.h.
5283         Explain why gimple.h is included.
5284         * c-ppoutput.c: Do not include tm.h.
5285         * c-common.c: Do not include gimple.h.  Explain why expr.h is included.
5286         * c-parses.c: Explain why rtl.h is included, and that this (and only
5287         this) is also why tm.h must be included.
5288         Do not include except.h.
5289         * c-lang.c: Do not include ggc.h.
5290
5291 2010-05-15  Uros Bizjak  <ubizjak@gmail.com>
5292
5293         * targhooks.c (GO_IF_MODE_DEPENDENT_ADDRESS): Use CONST_CAST_RTX.
5294
5295 2010-05-15  Joseph Myers  <joseph@codesourcery.com>
5296
5297         * c-decl.c (grokfield): Allow typedefs for anonymous structs and
5298         unions by default if those structs and unions have no tags.  Do
5299         not condition anonymous struct and unions handling on flag_iso.
5300         Allow anonymous structs and unions for C1X.
5301         (finish_struct): Do not diagnose lack of named fields when
5302         anonymous structs and unions present for C1X.  Accept flexible
5303         array members in structure with anonymous structs or unions but no
5304         directly named fields.
5305         * doc/extend.texi (Unnamed Fields): Update.
5306
5307 2010-05-15  Eric Botcazou  <ebotcazou@adacore.com>
5308
5309         * gimple.h (compare_field_offset): Rename into...
5310         (gimple_compare_field_offset): ...this.
5311         * gimple.c (compare_field_offset): Rename into...
5312         (gimple_compare_field_offset): ...this.  Compare the full access if
5313         the offset is self-referential.
5314         (gimple_types_compatible_p): Adjust for above renaming.
5315         * lto-streamer-in.c (input_gimple_stmt): Likewise.  Also compare the
5316         DECL_NONADDRESSABLE_P flag of fields before merging them.
5317
5318 2010-05-15  Nathan Froyd  <froydnj@codesourcery.com>
5319
5320         * tree.h (ctor_to_list): Delete.
5321         * tree.c (ctor_to_list): Delete.
5322
5323 2010-05-15  Jan Hubicka  <jh@suse.cz>
5324
5325         * ipa-reference.c: Include toplev.h
5326         (is_proper_for_analysis): Only add to all_module_statics
5327         if it is allocated.
5328         (write_node_summary_p, stream_out_bitmap,
5329         ipa_reference_write_optimization_summary,
5330         ipa_reference_read_optimization_summary): New.
5331         (struct ipa_opt_pass_d pass_ipa_reference): Add
5332         optimization summary streaming.
5333         * lto-cgraph.c (referenced_from_this_partition_p,
5334         reachable_from_this_partition_p): New functions.
5335         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
5336         call_may_clobber_ref_p_1): Ask ipa-reference even for public vars.
5337         * opts.c (decode_options): Enable ipa_reference.
5338         * Makefile.in (ipa-reference.o): Add toplev.h dependency.
5339         * lto-streamer.h (referenced_from_this_partition_p,
5340         reachable_from_this_partition_p): Declare.
5341
5342 2010-05-15  Richard Guenther  <rguenther@suse.de>
5343
5344         PR tree-optimization/44038
5345         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Avoid
5346         taking the address of a V_C_E of a constant.
5347
5348 2010-05-14  Jan Hubicka  <jh@suse.cz>
5349
5350         * tree.h (memory_identifier_string): Remove.
5351         * ipa-reference.c: Update comment; do not include gt-ipa-reference.h
5352         (ipa_reference_global_vars_info_d): Remove statics_not_read and
5353         statics_not_written.
5354         (ipa_reference_optimization_summary_d): New structure.
5355         (ipa_reference_optimization_summary_t): New type and vector.
5356         (ipa_reference_vars_info_d): Embedd structures instead of using
5357         pointers.
5358         (reference_vars_to_consider): Remove out of GGC space.
5359         (module_statics_escape): Remove.
5360         (global_info_obstack): Rename to ...
5361         (optimization_summary_obstack): ... this one.
5362         (initialization_status_t): Remove.
5363         (memory_identifier_string): Remove.
5364         (get_reference_vars_info): Fix indenting.
5365         (set_reference_vars_info): Likewise.
5366         (get_reference_optimization_summary): New.
5367         (set_reference_optimization_summary): New.
5368         (get_global_reference_vars_info): Remove.
5369         (ipa_reference_get_read_global): Remove.
5370         (ipa_reference_get_written_global): Remove.
5371         (ipa_reference_get_not_read_global): Update.
5372         (ipa_reference_get_not_written_global): Update.
5373         (is_proper_for_analysis): Outlaw addressable.
5374         (propagate_bits): Update for new datastructures.
5375         (analyze_variable): Remove.
5376         (init_function_info): Update for new datastructures.
5377         (clean_function_local_data): Remove.
5378         (clean_function): Remove.
5379         (copy_global_bitmap): Use optimizations_summary_obstack.
5380         (duplicate_node_data): Duplicate optimization summary only.
5381         (remove_node_data): Remove optimization summary only.
5382         (generate_summary): Do not analyze variables; do not compute
5383         module_statics_escape; do not prune solutions by it.
5384         (read_write_all_from_decl): Fix typos in comments.
5385         (propagate): Doscover readonly and nonaddressable first;
5386         update for new datastructures; share global bitmaps.
5387         * ipa-reference.h (ipa_reference_get_read_global,
5388         ipa_reference_get_written_global): Remove.
5389         * ipa-pure-const.c (check_stmt): Do not use memory_identifier_string.
5390         * Makefile.in: Remove ipa-refereference from GT files.
5391
5392 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
5393
5394         PR debug/44112
5395         * dwarf2out.c (resolve_one_addr): Check TREE_ASM_WRITTEN
5396         for all SYMBOL_REF_DECLs.
5397
5398 2010-05-14  Jan Hubicka  <jh@suse.cz>
5399
5400         * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Declare.
5401         (varpool_all_refs_explicit_p): New inline function.
5402         * ipa-reference.c: Update comment.
5403         (module_statics_written): Remove.
5404         (get_static_decl): Remove.
5405         (ipa_init): Do not initialize module_statics_written.
5406         (analyze_function): Likewise.
5407         (generate_summary): Likewise; do not compute module_statics_readonly
5408         and do not update variable flags.
5409         (propagate): Call ipa_discover_readonly_nonaddressable_vars.
5410         * ipa.c: Inlucde flags.h
5411         (cgraph_local_node_p): New.
5412         (cgraph_remove_unreachable_nodes): Return early when not optimizing;
5413         promote functions to local.
5414         (ipa_discover_readonly_nonaddressable_vars): New function.
5415         (function_and_variable_visibility): Use cgraph_local_node_p.
5416         * varpool.c (varpool_finalize_decl): Set force_output for
5417         DECL_PRESERVE_P vars.
5418
5419 2010-05-14  Jan Hubicka  <jh@suse.cz>
5420
5421         * ipa.c (cgraph_remove_unreachable_nodes): Revert accidental commit.
5422
5423 2010-05-14  Richard Guenther  <rguenther@suse.de>
5424
5425         PR tree-optimization/44119
5426         * tree-ssa-pre.c (eliminate): Properly mark replacement of
5427         a PHI node necessary.
5428
5429 2010-05-14  Eric Botcazou  <ebotcazou@adacore.com>
5430
5431         * tree.h (TREE_ADDRESSABLE): Remove bogus usage for FIELD_DECL.
5432
5433 2010-05-14  Jason Merrill  <jason@redhat.com>
5434
5435         PR c++/44127
5436         * gimple.h (enum gf_mask): Add GF_CALL_NOTHROW.
5437         (gimple_call_set_nothrow): New.
5438         * gimple.c (gimple_build_call_from_tree): Call it.
5439         (gimple_call_flags): Set ECF_NOTHROW from GF_CALL_NOTHROW.
5440
5441         PR c++/44127
5442         * gimplify.c (gimplify_seq_add_stmt): No longer static.
5443         * gimple.h: Declare it.
5444         * gimple.c (gimple_build_eh_filter): No ops.
5445
5446 2010-05-14  Jan Hubicka  <jh@suse.cz>
5447
5448         * ipa.c (enqueue_cgraph_node): Update comment; do not re-enqueue
5449         nodes already in queue.
5450         (cgraph_remove_unreachable_nodes): Cleanup; fix problem with
5451         re-enqueueing node.
5452
5453 2010-05-14  Jakub Jelinek  <jakub@redhat.com>
5454
5455         PR debug/44136
5456         * cfgexpand.c (expand_debug_expr): If non-memory op0
5457         has BLKmode, return NULL.
5458
5459 2010-05-14  Harsha Jagasia  <harsha.jagasia@amd.com>
5460
5461         * config.gcc: Add support for --with-cpu option for bdver1.
5462         * config/i386/i386.h (TARGET_BDVER1): New macro.
5463         (ix86_tune_indices): Change SSE_UNALIGNED_MOVE_OPTIMAL
5464         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
5465         (ix86_tune_features) :Change SSE_UNALIGNED_MOVE_OPTIMAL
5466         to SSE_UNALIGNED_LOAD_OPTIMAL. Add SSE_UNALIGNED_STORE_OPTIMAL.
5467         Add SSE_PACKED_SINGLE_INSN_OPTIMAL.
5468         (TARGET_CPU_DEFAULT_NAMES): Add bdver1.
5469         (processor_type): Add PROCESSOR_BDVER1.
5470         * config/i386/i386.md: Add bdver1 as a new cpu attribute to match
5471         processor_type in config/i386/i386.h.
5472         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit
5473         movaps <reg, reg> instead of movapd <reg, reg> when replacing
5474         movsd <reg, reg> or movss <reg, reg> for SSE and AVX.
5475         Add check for  TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
5476         to emit packed xor instead of packed double/packed integer
5477         xor for SSE and AVX when moving a zero value.
5478         * config/i386/sse.md: Add check for
5479         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movaps instead of
5480         movapd/movdqa for SSE and AVX.
5481         Add check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed
5482         single logical operations i.e and, or and xor instead of packed double
5483         logical operations for SSE and AVX.
5484         * config/i386/i386-c.c (ix86_target_macros_internal):
5485         Add PROCESSOR_BDVER1.
5486         * config/i386/driver-i386.c: Turn on -mtune=native for BDVER1.
5487         (has_fma4, has_xop): New.
5488         * config/i386/i386.c (bdver1_cost): New variable.
5489         (m_BDVER1): New macro.
5490         (m_AMD_MULTIPLE): Add m_BDVER1.
5491         (x86_tune_use_leave, x86_tune_push_memory, x86_tune_unroll_strlen,
5492         x86_tune_deep_branch_prediction, x86_tune_use_sahf, x86_tune_movx,
5493         x86_tune_use_simode_fiop, x86_tune_promote_qimode,
5494         x86_tune_add_esp_8, x86_tune_tune_sub_esp_4, x86_tune_sub_esp_8,
5495         x86_tune_integer_dfmode_moves, x86_tune_partial_reg_dependency,
5496         x86_tune_sse_partial_reg_dependency,
5497         x86_tune_sse_unaligned_load_optimal,
5498         x86_tune_sse_unaligned_store_optimal, x86_tune_sse_typeless_stores,
5499         x86_tune_memory_mismatch_stall, x86_tune_use_ffreep,
5500         x86_tune_inter_unit_moves, x86_tune_inter_unit_conversions,
5501         x86_tune_use_bt, x86_tune_pad_returns, x86_tune_slow_imul_imm32_mem,
5502         x86_tune_slow_imul_imm8, x86_tune_fuse_cmp_and_branch):
5503         Enable/disable for bdver1.
5504         (processor_target_table): Add bdver1_cost.
5505         (cpu_names): Add bdver1.
5506         (override_options): Set up PROCESSOR_BDVER1 for bdver1 entry in
5507          processor_alias_table.
5508         (ix86_expand_vector_move_misalign): Change.
5509         TARGET_SSE_UNALIGNED_MOVE_OPTIMAL to TARGET_SSE_UNALIGNED_LOAD_OPTIMAL.
5510         Check for TARGET_SSE_UNALIGNED_STORE_OPTIMAL.
5511         Check for TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit movups instead
5512         of movupd/movdqu for SSE and AVX.
5513         (ix86_tune_issue_rate): Add PROCESSOR_BDVER1.
5514         (ix86_tune_adjust_cost): Add code for bdver1.
5515         (standard_sse_constant_opcode): Add check for
5516         TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL to emit packed single xor instead
5517         of packed double xor for SSE and AVX.
5518
5519 2010-05-14  Pat Haugen  <pthaugen@us.ibm.com>
5520
5521         * tree-ssa-loop.prefetch.c (prune_ref_by_group_reuse): Cast abs()
5522         result to unsigned.
5523
5524 2010-05-14  Tristan Gingold  <gingold@adacore.com>
5525
5526         * toplev.c (default_debug_hooks): Remove this variable.
5527         (process_options): Remove assignments to default_debug_hooks.
5528
5529 2010-05-14  Martin Jambor  <mjambor@suse.cz>
5530
5531         * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): Remove.
5532         (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_FOLD_OBJ_TYPE_REF.
5533         * langhooks.h (struct lang_hooks_for_decls): Removed field
5534         fold_obj_type_ref.
5535         * tree.c (free_lang_data): Remove assignment to
5536         lang_hooks.fold_obj_type_ref.
5537         * tree.def (OBJ_TYPE_REF): Update comment.
5538
5539 2010-05-14  Richard Guenther  <rguenther@suse.de>
5540
5541         PR tree-optimization/44124
5542         * tree-ssa-sccvn.c (vn_nary_may_trap): Fix invalid memory access.
5543
5544 2010-05-14  Alan Modra  <amodra@gmail.com>
5545
5546         PR target/44075
5547         * config/rs6000/rs6000.c (struct machine_function): Reorder
5548         fields for better packing.  Add lr_save_state.
5549         (rs6000_ra_ever_killed): Return lr_save_state if set.
5550         (rs6000_emit_eh_reg_restore): Set lr_save_state.
5551
5552 2010-05-13  Jan Hubicka  <jh@suse.cz>
5553
5554         * varpool.c (decide_is_variable_needed): Drop code checking
5555         TREE_SYMBOL_REFERENCED.
5556
5557 2010-05-13  Jan Hubicka  <jh@suse.cz>
5558
5559         * final.c (output_addr_const): Do not call mark_decl_referenced.
5560         * cgraphunit.c (process_function_and_variable_attributes): Use
5561         mark_needed_node dirrectly.
5562         (assemble_thunk): Do not call mark_decl_referenced.
5563
5564 2010-05-13  Anatoly Sokolov  <aesok@post.ru>
5565
5566         * targhooks.c (default_mode_dependent_address_p): Cast 'addr' to rtx.
5567
5568 2010-05-13  Jeff Law  <law@redhat.com>
5569
5570         * ira-conflicts.c (print_allocno_conflicts): New function broken out
5571         from...
5572         (print_conflicts): Call print_allocno_conflicts.
5573
5574 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
5575
5576         PR debug/44104
5577         * dwarf2out.c (modified_type_die): Don't dereference mod_type_die
5578         if it is NULL.
5579
5580 2010-05-13  Kai Tietz  <kai.tietz@onevision.com>
5581
5582         * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Choose
5583         t-mingw-w64 or t-mingw-w32 for multilib configuration.
5584         * config/i386/t-mingw-w32: New.
5585         * config/i386/t-mingw-w64 (MULTILIB_OSDIRNAMES): Change lib64 to lib.
5586
5587 2010-05-13  Martin Jambor  <mjambor@suse.cz>
5588
5589         * gimple.c (gimple_fold_obj_type_ref): Removed (a replacement moved to
5590         gimple-fold.c).
5591         * gimple-fold.c (get_base_binfo_for_type): New function.
5592         (gimple_get_relevant_ref_binfo): Likewise.
5593         (gimple_fold_obj_type_ref_known_binfo): Likewise.
5594         (gimple_fold_obj_type_ref): Likewise.
5595         (fold_gimple_call): Simplify condition for folding virtual calls
5596         and call gimple_fold_obj_type_ref.
5597         * gimple.h (gimple_get_relevant_ref_binfo): Declare.
5598         (gimple_fold_obj_type_ref_known_binfo): Likewise.
5599
5600 2010-05-13  Andreas Schwab  <schwab@linux-m68k.org>
5601
5602         * config/rs6000/rs6000-protos.h
5603         (rs6000_mode_dependent_address_ptr): Change argument to const_rtx.
5604         * config/rs6000/rs6000.c (rs6000_mode_dependent_address)
5605         (rs6000_debug_mode_dependent_address)
5606         (rs6000_mode_dependent_address_ptr): Likewise.
5607
5608 2010-05-13  Jakub Jelinek  <jakub@redhat.com>
5609
5610         PR debug/43983
5611         * var-tracking.c (track_expr_p): Allow tracking of variables optimized
5612         by SRA.
5613         * Makefile.in (dwarf2out.o): Depend on $(TREE_FLOW_H).
5614         * tree-sra.c (create_access_replacement): Call unshare_expr before
5615         passing expr to SET_DECL_DEBUG_EXPR, and remove any SSA_NAMEs from it.
5616         * dwarf2out.c: Include tree-flow.h.
5617         (struct var_loc_node): Rename var_loc_note field to loc, add comment.
5618         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw):
5619         Handle DW_OP_bit_piece.
5620         (decl_piece_bitsize, decl_piece_varloc_ptr, decl_piece_node,
5621         construct_piece_list, adjust_piece_list): New functions.
5622         (add_var_loc_to_decl): Handle SRA optimized variables.
5623         Adjust for var_loc_note to loc field renaming.
5624         (dw_loc_list_1): For WANT_ADDRESS == 2 prefer DECL_MODE of decl
5625         in VAR_LOCATION note.
5626         (new_loc_descr_op_bit_piece): New function.
5627         (dw_sra_loc_expr): New function.
5628         (dw_loc_list): Use it.  Don't handle the last range after the
5629         loop, handle it inside of the loop.  Adjust for var_loc_note
5630         to loc field renaming.
5631         (add_location_or_const_value_attribute): Only special case
5632         single entry loc lists if loc is NOTE_P.  Adjust for
5633         var_loc_note to loc field renaming.
5634         (dwarf2out_var_location): Don't set newloc->var_loc_note
5635         and newloc->next here.
5636
5637 2010-05-12  Jan Hubicka  <jh@suse.cz>
5638
5639         * cgraph.c (cgraph_mark_address_taken_node): No longer imply needed
5640         flag.
5641         * cgraph.h (cgraph_only_called_directly_p,
5642         cgraph_can_remove_if_no_direct_calls_p): test address_taken flag.
5643         (cgraph_can_remove_if_no_direct_calls_and_refs_p): New function.
5644         * cgraphunit.c (cgraph_mark_functions_to_output): Test address_taken.
5645         (assemble
5646         * ipa.c (cgraph_remove_unreachable_nodes): Use
5647         cgraph_can_remove_if_no_direct_calls_and_refs_p; clear address_taken
5648         flags.
5649         * tree-inline.c (copy_bb): Check address_taken flag.
5650         * tree-profile.c (tree_gen_ic_func_profiler): Check address_taken and
5651         externally_visible flag.
5652
5653 2010-05-12  Jason Merrill  <jason@redhat.com>
5654
5655         PR bootstrap/44048
5656         PR target/44099
5657         * dbxout.c (dbxout_type): Remove NULLPTR_TYPE handling.
5658         * sdbout.c (plain_type_1): Likewise.
5659         * dwarf2out.c (is_base_type): Likewise.
5660         (gen_type_die_with_usage): Likewise.  Generate
5661         DW_TAG_unspecified_type for any LANG_TYPE.
5662
5663 2010-05-12  Jan Hubicka  <jh@suse.cz>
5664
5665         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Build
5666         indrect edges too.
5667         * cgraph.c (cgraph_create_indirect_edge): Take ecf_flags argument.
5668         (cgraph_clone_edge): Update.
5669         (cgraph_node_remove_callees): Remove indirect calls too.
5670         * cgraph.h (cgraph_indirect_call_info): Add ecf_flags.
5671         (cgraph_create_indirect_edge): Update prototype.
5672         * ipa-reference.c (has_proper_scope_for_analysis): Rename to
5673         is_proper_for_analysis.
5674         (add_new_function, visited_nodes, function_insertion_hook_holder,
5675         get_local_reference_vars_info, mark_address_taken, mark_address,
5676         mark_load, mark_store, check_asm_memory_clobber, check_call,
5677         scan_stmt_for_static_refs, scan_initializer_for_static_refs): Remove.
5678         (ipa_init): Do not initialize visited_nodes;
5679         function_insertion_hook_holder.
5680         (analyze_variable): Rewrite.
5681         (analyze_function): Rewrite.
5682         (copy_local_bitmap): Remove.
5683         (duplicate_node_dat): Do not duplicate local info.
5684         (generate_summary): Simplify to only walk cgraph.
5685         (write_node_summary_p, ipa_reference_write_summary,
5686         ipa_reference_read_summary): Remove.
5687         (propagate): Do not remove function insertion;
5688         generate summary.
5689         (pass_ipa_reference): NULLify summary handling fields.
5690         * lto-cgraph.c (lto_output_edge): Output ecf_flags.
5691         (input_edge): Input ecf_flags.
5692         * ipa-prop.c (ipa_note_parm_call): Expect edge to be around.
5693         (update_indirect_edges_after_inlining): Ignore edges with unknown
5694         param.
5695
5696 2010-05-12  Sriraman Tallam  <tmsriram@google.com>
5697
5698         * implicit-zee.c: New file.
5699         * tree-pass.h (pass_implicit_zee): Declare.
5700         * passes.c (init_optimization_passes): Add zee pass.
5701         * common.opt (fzee): New flag.
5702         * timevar.def (TV_ZEE): Define.
5703         * config/i386/i386.c (optimization_options): Turn on ZEE for level 2
5704         and beyond.
5705         * Makefile.in (implicit-zee.o): Add new build file.
5706
5707 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
5708             Nathan Froyd  <froydnj@codesourcery.com>
5709
5710         * c-common.c (sync_resolve_params): Remove write-only variable.
5711
5712 2010-05-12  Anatoly Sokolov  <aesok@post.ru>
5713
5714         * target.h (struct gcc_target): Add mode_dependent_address_p field.
5715         * target-def.h (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
5716         (TARGET_INITIALIZER): Use TARGET_MODE_DEPENDENT_ADDRESS_P.
5717         * targhooks.c (default_mode_dependent_address_p): New function.
5718         * targhooks.h (default_mode_dependent_address_p): Declare function.
5719         * doc/tm.texi (TARGET_MODE_DEPENDENT_ADDRESS_P): New.
5720         (GO_IF_MODE_DEPENDENT_ADDRESS): Update.
5721         * recog.c (mode_dependent_address_p): Call mode_dependent_address_p
5722         target hook. Change return type to bool.
5723         * recog.h (mode_dependent_address_p): Change return type to bool.
5724
5725 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
5726             Nathan Froyd  <froydnj@codesourcery.com>
5727
5728         * tree-mudflap.c (build_function_type_0, build_function_type_1,
5729         build_function_type_2, build_function_type_3): Remove.
5730         (mudflap_init): Use build_function_type_list.
5731
5732 2010-05-12  Kazu Hirata  <kazu@codesourcery.com>
5733             Nathan Froyd  <froydnj@codesourcery.com>
5734
5735         * coverage.c (build_fn_info_value): Call build_constructor instead of
5736         build_constructor_from_list.
5737         (build_ctr_info_value): Likewise.
5738         (build_gcov_info): Likewise.
5739
5740 2010-05-12  Nathan Froyd  <froydnj@codesourcery.com>
5741
5742         * tree.c (build_constructor): Compute TREE_CONSTANT for the
5743         resultant constructor.
5744         (build_constructor_single): Don't set TREE_CONSTANT.
5745         (build_constructor_from_list): Don't compute TREE_CONSTANT.
5746
5747 2010-05-12  Jan Hubicka  <jh@suse.cz>
5748
5749         * cgraph.h (struct varpool_node): Add aux.
5750         * varasm.c (find_decl_and_mark_needed): Force output of varpool nodes.
5751         * varpool.c (varpool_remove_node): Do not remove initializer.
5752         (varpool_reset_queue): Export.
5753         (varpool_finalize_decl): Volatile vars are forced to be output.
5754         * lto-symtab.c (lto_varpool_replace_node): Clear out initializer of
5755         replaced decl.
5756         * ipa.c (enqueue_cgraph_node, enqueue_varpool_node,
5757         process_references, varpool_can_remove_if_no_refs): New functions.
5758         (cgraph_remove_unreachable_nodes): Handle variables too.
5759
5760 2010-05-12  H.J. Lu  <hongjiu.lu@intel.com>
5761
5762         PR target/44088
5763         * config/i386/sse.md (*avx_vmmaskcmp<mode>3): New.
5764
5765 2010-05-12  Jakub Jelinek  <jakub@redhat.com>
5766
5767         PR middle-end/44085
5768         * gimplify.c (enum omp_region_type): Add ORT_UNTIED_TASK,
5769         change value of ORT_TASK.
5770         (new_omp_context): Handle ORT_UNTIED_TASK like ORT_TASK.
5771         (omp_notice_threadprivate_variable): New function.
5772         (omp_notice_variable): Call it for threadprivate variables.
5773         If enclosing ctx is a task, print enclosing task rather than
5774         enclosing parallel.  Handle ORT_UNTIED_TASK like ORT_TASK.
5775         (gimplify_omp_task): Pass ORT_UNTIED_TASK instead of ORT_TASK
5776         if task has untied clause.
5777
5778         PR debug/42278
5779         * dwarf2out.c (base_type_die): Don't add name attribute here.
5780         (modified_type_die): Instead of sizetype use
5781         its underlying original type.  If a DW_TAG_base_type doesn't
5782         have name added, add __unknown__.
5783         (dwarf2out_imported_module_or_decl_1): Don't call base_type_die,
5784         always call force_type_die instead.
5785
5786 2010-05-12  Maxim Kuvyrkov  <maxim@codesourcery.com>
5787
5788         * targhooks.c (default_stack_protect_guard): Avoid sharing RTL
5789         for __stack_chk_guard.
5790
5791 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
5792
5793         * c-opts.c (c_common_parse_file): If start_end_main_source_file,
5794         don't call start_source_file debug hook here...
5795         (finish_options): ... but here, after outputting predefined and
5796         command line defines and undefs.
5797
5798         PR middle-end/44071
5799         * cfglayout.c (fixup_reorder_chain): Allow asm goto to have
5800         no fallthru edge.
5801         * cfgcleanup.c (try_optimize_cfg): When in cfglayout mode
5802         optimizing away empty bb with no successors, move over its
5803         footer chain to fallthru predecessor.
5804         * cfgrtl.c (patch_jump_insn): Update also REG_LABEL_OPERAND.
5805         (rtl_split_edge): For asm goto call patch_jump_insn even if
5806         splitting fallthru edge.
5807
5808         PR c++/44059
5809         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use qnu_unique_object
5810         even for DECL_ONE_ONLY DECL_ARTIFICIAL !TREE_READONLY decls.
5811         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Likewise.
5812         * dwarf2asm.c (dw2_output_indirect_constant_1): Set TREE_READONLY
5813         on DW.ref.* decls.
5814
5815         PR c++/44062
5816         * c-parser.c (c_parser_expression): Mark LHS of a comma
5817         expression as read if it is a decl, handled component or
5818         COMPOUND_EXPR with that on the RHS.
5819         * c-typeck.c (c_process_expr_stmt): Mark RHS of COMPOUND_EXPR
5820         if it is a decl or handled component.
5821
5822 2010-05-11  Jan Hubicka  <jh@suse.cz>
5823
5824         * lto-symtab.c (lto_symtab_free): New function.
5825         * lto-streamer.h (lto_symtab_free): Declare.
5826
5827 2010-05-11  Jan Hubicka  <jh@suse.cz>
5828
5829         * lto-cgraph.c (reachable_from_other_partition_p): Export; do not assume
5830         that if function is needed it is reachable.
5831         (lto_output_node): See if it the function is reachable or referenced.
5832         (output_cgraph): Update call of lto_output_node.
5833         * lto-streamer.h (reachable_from_other_partition_p): Declare.
5834
5835 2010-05-11  Jan Hubicka  <jh@suse.cz>
5836
5837         * crtstuff.c (__JCR_LIST__, __DTOR_END__, __JCR_END__, __FRAME_END__):
5838         Mark as used.
5839
5840 2010-05-11  Jan Hubicka  <jh@suse.cz>
5841
5842         PR tree-optimize/44063
5843         * ipa-inline.c (cgraph_edge_badness): Move always inlines to top of
5844         queue.
5845         (cgraph_decide_inlining_of_small_function): Skip check when disrgarding
5846         limits.
5847         (estimate_function_body_sizes): Compute sizes even when disregarding.
5848
5849 2010-05-11  Kai Tietz  <kai.tietz@onevision.com>
5850
5851         * collect2.c (maybe_lto_object_file): Add x64-coff magic and check.
5852
5853 2010-05-11  Jan Hubicka  <jh@suse.cz>
5854
5855         * lto-cgraph.c (output_cgraph): Remove loop adding all varpool nodes
5856         into every boundary.
5857
5858 2010-05-11  Jan Hubicka  <jh@suse.cz>
5859
5860         * matrix-reorg.c (matrix_reorg): Rebuild edges.
5861
5862 2010-05-11  Jan Hubicka  <jh@suse.cz>
5863
5864         * lto-streamer.c (lto_streamer_cache_add_to_node_array,
5865         lto_streamer_cache_delete): Put nodes into heap.
5866         * lto-streamer.h (struct lto_streamer_cache_d): Nodes vector is in
5867         heap.
5868
5869 2010-05-11  Jan Hubicka  <jh@suse.cz>
5870
5871         * cgraphbuild.c (cgraph_rebuild_references): New.
5872         * cgraph.c (cgraph_mark_reachable_node): Accept references to optimized
5873         out extern inlines.
5874         * cgraph.h (cgraph_rebuild_references): Declare.
5875         * tree-inline.c (tree_function_versioning): Use it.
5876         * ipa-struct-reorg.c (do_reorg_for_func): Likewise.
5877
5878 2010-05-11  Jan Hubicka  <jh@suse.cz>
5879
5880         * cgraph.c: Include ipa-utils.h
5881         (cgraph_create_virtual_clone): Update references.
5882         * Makefile.in (cgraph.o): Add dependency at ipa-utils.h
5883
5884 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
5885
5886         * tree-ssa-loop-prefetch.c (prune_ref_by_group_reuse): Reset
5887         prefetch_before to PREFETCH_ALL if to accesses "meet" beyond
5888         cache size.
5889
5890 2010-05-11  Christian Borntraeger  <borntraeger@de.ibm.com>
5891
5892         * tree-ssa-loop-prefetch.c: Add debug for dropped prefetches.
5893
5894 2010-05-11  Jakub Jelinek  <jakub@redhat.com>
5895
5896         * gcc.c (execute): For -### don't quote arguments that
5897         contain just alphanumerics and _/-. characters.
5898         * doc/invoke.texi: Document that change for -###.
5899
5900         PR debug/44023
5901         * df-problems.c (struct dead_debug): Add to_rescan field.
5902         (dead_debug_init): Clear to_rescan field.
5903         (dead_debug_finish): Rescan all debug insns in to_rescan
5904         bitmap and free the bitmap.
5905         (dead_debug_insert_before): Instead of rescanning debug insns
5906         immediately queue their rescanning until dead_debug_finish.
5907         (df_note_bb_compute): After dead_debug_add do continue instead
5908         of break.
5909
5910 2010-05-10  Jakub Jelinek  <jakub@redhat.com>
5911
5912         PR debug/44028
5913         * haifa-sched.c (schedule_insn): When clearing INSN_VAR_LOCATION_LOC,
5914         clear also INSN_REG_USE_LIST.
5915
5916 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5917
5918         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Undef.
5919
5920 2010-05-10  Jan Hubicka  <jh@suse.cz>
5921
5922         * lto-stramer-out.c (produce_asm_for_decls): Correct accidentally
5923         commited change.
5924
5925 2010-05-10  Jan Hubicka  <jh@suse.cz>
5926
5927         * passes.c (ipa_write_summaries_1, ipa_write_optimization_summaries):
5928         Allocate encoders.
5929         * lto-section-out.c (lto_new_out_decl_state): Do not allocate it here.
5930         * lto-streamer.c (lto_streamer_cache_insert_1): Use alloc pool.
5931         (lto_streamer_cache_create): Init alloc pool.
5932         (lto_streamer_cache_delete): Free alloc pool.
5933         * lto-streamer.h: Include alloc pool.
5934         (lto_streamer_cache_d): Use alloc pool.
5935         * lto-stramer-out.c (produce_asm_for_decls): Delete fn_out_states.
5936
5937 2010-05-10  Jan Hubicka  <jh@suse.cz>
5938
5939         * Makefile.in (cgraphbuild.o): Add dependency on except.h.
5940         * cgraphbuild.c: Include except.h
5941         (record_type_list, record_eh_tables): New function.
5942         (build_cgraph_edges, rebuild_cgraph_edges): Use it.
5943
5944 2010-05-10  Jan Hubicka  <jh@suse.cz>
5945
5946         * crtstuff.c (force_to_data, __do_global_dtors_aux_fini_array_entry,
5947         __frame_dummy_init_array_entry, force_to_data): Attribute as used
5948         rather than unused.
5949
5950 2010-05-10  Michael Matz  <matz@suse.de>
5951
5952         * tree-ssa-reassoc.c (undistribute_ops_list): Use create_tmp_reg.
5953         (can_reassociate_p): Use FLOAT_TYPE_P.
5954         * tree-vectorizer.h (vect_is_simple_reduction): Rename to ...
5955         (vect_force_simple_reduction): ... this.
5956         * tree-parloops.c (gather_scalar_reductions): Use
5957         vect_force_simple_reduction.
5958         * tree-vect-loop.c (vect_is_simple_reduction_1): Rename from
5959         vect_is_simple_reduction, add modify argument, if true rewrite
5960         "a-b" into "a+(-b)".
5961         (vect_is_simple_reduction, vect_force_simple_reduction): New
5962         functions.
5963         (vect_analyze_scalar_cycles_1): Use vect_force_simple_reduction.
5964
5965 2010-05-10  H.J. Lu  <hongjiu.lu@intel.com>
5966             Vladimir Makarov  <vmakarov@redhat.com>
5967
5968         PR rtl-optimization/44012
5969         * ira-build.c (remove_unnecessary_allocnos): Nullify
5970         regno_allocno_map of the removed allocno.
5971
5972 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5973
5974         * configure.ac (gcc_cv_ld_eh_gc_sections): Redirect objdump errors
5975         to /dev/null.
5976         * configure: Regenerate.
5977
5978 2010-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5979
5980         * config/sol2.c (solaris_assemble_visibility): Declare decl, vis
5981         unused.
5982         Define visibility_types, name, type inside HAVE_GAS_HIDDEN.
5983         * configure.ac (gcc_cv_ld_hidden): Explain stages of visibility
5984         support in Sun ld.
5985         * configure: Regenerate.
5986
5987 2010-05-10  Richard Guenther  <rguenther@suse.de>
5988
5989         * lto-symtab.c (lto_symtab_entry_marked_p): Make entry
5990         marked if the entry identifier is marked.
5991
5992 2010-05-10  Richard Guenther  <rguenther@suse.de>
5993
5994         * c-common.c (struct c_common_attributes): Add fnspec attribute.
5995         (handle_fnspec_attribute): New function.
5996         * gimple.h (gimple_call_return_flags): Declare.
5997         (gimple_call_arg_flags): Likewise.
5998         * gimple.c (gimple_call_arg_flags): New function.
5999         (gimple_call_return_flags): Likewise.
6000         * tree.h (EAF_DIRECT, EAF_NOCLOBBER, EAF_NOESCAPE, EAF_UNUSED):
6001         New argument flags.
6002         (ERF_RETURN_ARG_MASK, ERF_RETURNS_ARG, ERF_NOALIAS): New function
6003         return value flags.
6004         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Skip unused args.
6005         * tree-ssa-structalias.c (make_constraint_from_heapvar): Split
6006         main work to ...
6007         (make_heapvar_for): ... this new function.
6008         (handle_rhs_call): Handle fnspec attribute argument specifiers.
6009         (handle_lhs_call): Likewise.
6010         (find_func_aliases): Adjust.
6011
6012 2010-05-10  Richard Guenther  <rguenther@suse.de>
6013
6014         PR tree-optimization/44050
6015         * tree-inline.c (tree_function_versioning): Clone the ipa-pta flag.
6016
6017 2010-05-10  Wei Guozhi  <carrot@google.com>
6018
6019         PR target/42879
6020         * config/arm/thumb2.md (thumb2_tlobits_cbranch): New insn pattern.
6021
6022 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
6023
6024         PR c/10676
6025         * c-typeck.c (lookup_field): Take a type directly.  Update
6026         recursive calls.
6027         (build_component_ref): Update call to lookup_field.
6028         (set_init_label): Use lookup_field to find initialized field.
6029         Handle returned list of fields like a sequence of designators.
6030
6031 2010-05-09  Richard Guenther  <rguenther@suse.de>
6032
6033         PR middle-end/44024
6034         * fold-const.c (tree_single_nonzero_warnv_p): Properly
6035         handle &FUNCTION_DECL.
6036
6037 2010-05-09  Joseph Myers  <joseph@codesourcery.com>
6038
6039         PR c/4784
6040         * c-decl.c (detect_field_duplicates_hash): New.  Handle anonymous
6041         structures and unions recursively.
6042         (detect_field_duplicates): Move duplicate detection with a hash to
6043         detect_field_duplicates_hash.  Always use a hash if anonymous
6044         structures or unions are present.
6045         * doc/extend.texi (Unnamed Fields): Document that duplicate fields
6046         give errors.
6047
6048 2010-05-09  H.J. Lu  <hongjiu.lu@intel.com>
6049
6050         PR target/44046
6051         * config/i386/driver-i386.c (host_detect_local_cpu): Properly
6052         detect Atom, Core 2 and Core i7.
6053
6054 2010-05-09  Richard Guenther  <rguenther@suse.de>
6055
6056         * gcc.c (store_arg): Handle temporary file deletion for
6057         joined arguments.
6058
6059 2010-05-09  Richard Guenther  <rguenther@suse.de>
6060
6061         PR middle-end/44043
6062         * ipa-inline.c (estimate_function_body_sizes): Return after
6063         disregarding inline limits.
6064
6065 2010-05-09  Richard Guenther  <rguenther@suse.de>
6066
6067         * gcc.c (store_arg): Revert last change.
6068
6069 2010-05-08  Sandra Loosemore  <sandra@codesourcery.com>
6070
6071         PR middle-end/28685
6072         * tree-ssa-reassoc.c (eliminate_redundant_comparison): New function.
6073         (optimize_ops_list): Call it.
6074
6075 2010-05-08  Richard Guenther  <rguenther@suse.de>
6076
6077         PR tree-optimization/44030
6078         * tree-ssa-pre.c (eliminate): Copy NECESSARY flag.  Set
6079         NECESSARY flag if we propagate from a inserted expression.
6080
6081 2010-05-08  Eric Botcazou  <ebotcazou@adacore.com>
6082
6083         * gimple.c (gimple_types_compatible_p) <ARRAY_TYPE>: Treat bounds of
6084         domain types as equal if they are both PLACEHOLDER_EXPRs.
6085
6086 2010-05-08  Richard Guenther  <rguenther@suse.de>
6087
6088         * lto-wrapper.c (run_gcc): Remove linker output from
6089         command line for LTRANS invocation.
6090
6091 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
6092
6093         * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*): Add
6094         lto-macho as lto_binary_reader.
6095         * target.h (struct gcc_target): New hooks lto_start and lto_end.
6096         * target-def.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Define.
6097         * cgraphunit.c (ipa_passes): Wrap LTO assembler output generation
6098         in lto_start and lto_end calls.
6099         (is_elf_or_coff): Rename to maybe_lto_object_file.  Add Mach-O
6100         magic numbers.
6101         (scan_prog_file): Update is_elf_or_coff call.
6102         * doc/tm.text (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END): Document.
6103
6104         * collect2.c (main): Fix enum comparison.
6105
6106         * config/darwin-protos.h (darwin_asm_lto_start, darwin_asm_lto_end):
6107         Add prototypes.
6108         * darwin9.h (LINK_COMMAND_SPEC): Pass -flto and -fwhopr to the linker.
6109         * darwin.h (LINK_COMMAND_SPEC): Likewise.  Define TARGET_ASM_LTO_START
6110         and TARGET_ASM_LTO_END.
6111         * darwin.c: Include obstack.h and lto-streamer.h.
6112         (lto_section_names_offset, lto_section_names_obstack,
6113         lto_asm_out_file, lto_asm_out_name, saved_asm_out_file): New static
6114         global variables.
6115         (LTO_SEGMENT_NAME, LTO_NAMES_SECTION): New defines.
6116         (darwin_asm_lto_start): New function.  Redirect output to asm_out_file
6117         to a temporary file.
6118         (darwin_asm_lto_end): New function.  Restore asm_out_file.
6119         (darwin_asm_named_section): For LTO sections, replace the name with
6120         the offset of the section name in a string table, and build this
6121         table.
6122         (darwin_file_start): Initialize global vars for LTO support.
6123         (darwin_file_end): If output to asm_out_file was redirected, append it
6124         to the proper asm_out_file here.  Add the section names section.
6125
6126 2010-05-07  Steven Bosscher  <steven@gcc.gnu.org>
6127
6128         * c-pragma.c (pending_weak_d, pending_weak): New.
6129         (pending_weaks): Change the type to VEC((pending_weak,gc) *.
6130         (maybe_apply_pragma_weak, maybe_apply_pending_pragma_weaks,
6131         handle_pragma_weak): Update the uses of pending_weaks.
6132
6133 2010-05-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
6134
6135         PR documentation/44016
6136         * doc/standards.texi (Standards): Link to unversioned
6137         cxx0x_status.html page.
6138
6139 2010-05-07  Iain Sandoe <iains@gcc.gnu.org>
6140
6141         PR target/43708
6142         * config/darwin-c.c (darwin_pragma_unused): Set DECL_READ_P
6143         in addition to TREE_USED, to avoid "set but unused" warnings.
6144
6145 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
6146
6147         * tree-ssa-loop-prefetch.c (TRIP_COUNT_TO_AHEAD_RATIO): New.
6148         (is_loop_prefetching_profitable): Do not insert prefetches
6149         when the trip count is not at least TRIP_COUNT_TO_AHEAD_RATIO
6150         times the prefetch ahead distance.
6151
6152 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
6153
6154         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable):
6155         Account for loop unrolling in the insn-to-prefetch ratio heuristic.
6156         (loop_prefetch_arrays): Pass to is_loop_prefetching_profitable
6157         the unroll_factor.
6158
6159 2010-05-07  Changpeng Fang  <changpeng.fang@amd.com>
6160
6161         * tree-ssa-loop-prefetch.c (is_loop_prefetching_profitable): Dump
6162         a diagnostic info when the insn-to-mem ratio is too small.
6163
6164 2010-05-07  Richard Guenther <rguenther@suse.de>
6165
6166         * gcc.c (LINK_COMMAND_SPEC): Provide a resolution file to
6167         the linker plugin.
6168         (store_arg): Queue temp_filename for deletion instead of
6169         the whole argument.
6170
6171 2010-05-07  Richard Guenther  <rguenther@suse.de>
6172
6173         * lto-wrapper.c (DUMPBASE_SUFFIX): Define.
6174         (run_gcc): Handle LTRANS phase invocation.
6175         * collect2.c (maybe_run_lto_and_relink): Do not set WPA_SAVE_LTRANS.
6176
6177 2010-05-07  Jakub Jelinek  <jakub@redhat.com>
6178
6179         * tree.h (TREE_ADDRESSABLE): Adjust comment to say that
6180         this is also meaningful on PARM_DECLs and RESULT_DECLs.
6181
6182 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6183
6184         * config/mips/iris6.h (LINK_SPEC): Don't pass -init, -fini with -r.
6185
6186 2010-05-07  Richard Guenther  <rguenther@suse.de>
6187
6188         PR tree-optimization/44020
6189         * tree-ssa-pre.c (execute_pre): Do not remove dead inserted
6190         code when PRE is not yet initialized.
6191
6192 2010-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6193
6194         * config/mips/dbxmdebug.h: Remove.
6195         * config.gcc (mips-sgi-irix6.5*): Remove mips/dbxmdebug.h.
6196
6197 2010-05-07  Shujing Zhao  <pearly.zhao@oracle.com>
6198
6199         * c-typeck.c (build_binary_op): Warn ordered comparison of pointer
6200         with null pointer and also warn about ordered comparison of zero with
6201         pointer if -Wextra.
6202
6203 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6204
6205         * graphite-blocking.c
6206         (pbb_strip_mine_profitable_p): Replace Value with mpz_t.
6207         * graphite-clast-to-gimple.c
6208         (clast_to_gcc_expression): Same.
6209         (precision_for_value): Same.
6210         (precision_for_interval): Same.
6211         (gcc_type_for_interval): Same.
6212         (graphite_create_new_guard): Same.
6213         (compute_bounds_for_level): Same.
6214         (graphite_create_new_loop_guard): Same.
6215         * graphite-interchange.c
6216         (build_linearized_memory_access): Same.
6217         (pdr_stride_in_loop): Same.
6218         (memory_strides_in_loop_1): Same.
6219         (memory_strides_in_loop): Same.
6220         (extend_scattering): Same.
6221         (psct_scattering_dim_for_loop_depth): Same.
6222         (pbb_number_of_iterations): Same.
6223         * graphite-poly.h
6224         (debug_iteration_domains): Same.
6225         * graphite-ppl.c
6226         (new_Cloog_Domain_from_ppl_Pointset_Powerset): Same.
6227         (ppl_set_inhomogeneous_gmp): Same.
6228         (ppl_strip_loop): Same.
6229         (ppl_lexico_compare_linear_expressions): Same.
6230         (ppl_read_polyhedron_matrix): Same.
6231         (ppl_max_for_le_pointset): Same.
6232         * graphite-ppl.h
6233         (ppl_read_polyhedron_matrix): Same.
6234         (tree_int_to_gmp): Same.
6235         (gmp_cst_to_tree): Same.
6236         (ppl_set_inhomogeneous): Same.
6237         (ppl_set_inhomogeneous_tree): Same.
6238         (ppl_set_coef): Same.
6239         (ppl_set_coef_tree): Same.
6240         * graphite-sese-to-poly.c
6241         (build_pbb_scattering_polyhedrons): Same.
6242         (build_scop_scattering): Same.
6243         (scan_tree_for_params_right_scev): Same.
6244         (scan_tree_for_params): Same.
6245         (find_params_in_bb): Same.
6246         (find_scop_parameters): Same.
6247         (add_upper_bounds_from_estimated_nit): Same.
6248         (build_loop_iteration_domains): Same.
6249         (add_condition_to_domain): Same.
6250         (pdr_add_memory_accesses): Same.
6251
6252 2010-05-05  Andreas Simbuerger  <simbuerg@fim.uni-passau.de>
6253
6254         * graphite-blocking.c (pbb_strip_mine_profitable_p): Resolve
6255         CLooG's value_* macros to their respective mpz_* counterparts.
6256         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Same.
6257         (graphite_create_new_loop_guard): Same.
6258         * graphite-interchange.c (build_linearized_memory_access): Same.
6259         (pdr_stride_in_loop): Same.
6260         (memory_strides_in_loop_1): Same.
6261         (1st_interchange_profitable_p): Same.
6262         * graphite-poly.c (extend_scattering): Same.
6263         (psct_scattering_dim_for_loop_depth): Same.
6264         (pbb_number_of_iterations): Same.
6265         (pbb_number_of_iterations_at_time): Same.
6266         * graphite-poly.h (new_1st_loop): Same.
6267         * graphite-ppl.c (cloog_matrix_to_ppl_constraint): Same.
6268         (oppose_constraint): Same.
6269         (insert_constraint_into_matrix): Same.
6270         (ppl_set_inhomogeneous_gmp): Same.
6271         (ppl_set_coef_gmp): Same.
6272         (ppl_strip_loop): Same.
6273         (ppl_lexico_compare_linear_expressions): Same.
6274         (ppl_max_for_le_pointset): Same.
6275         (ppl_min_for_le_pointset): Same.
6276         (ppl_build_realtion): Same.
6277         * graphite-ppl.h (gmp_cst_to_tree): Same.
6278         (ppl_set_inhomogeneous): Same.
6279         (ppl_set_inhomogeneous_tree): Same.
6280         (ppl_set_coef): Same.
6281         (ppl_set_coef_tree): Same.
6282         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
6283         (build_scop_scattering): Same.
6284         (add_value_to_dim): Same.
6285         (scan_tree_for_params_right_scev): Same.
6286         (scan_tree_for_params_int): Same.
6287         (scan_tree_for_params): Same.
6288         (find_params_in_bb): Same.
6289         (find_scop_parameters): Same.
6290         (add_upper_bounds_from_estimated_nit): Same.
6291         (build_loop_iteration_domains): Same.
6292         (create_linear_expr_from_tree): Same.
6293         (add_condition_to_domain): Same.
6294         (pdr_add_memory_accesses): Same.
6295
6296 2010-05-06  Magnus Fromreide  <magfr@lysator.liu.se>
6297             Jason Merrill  <jason@redhat.com>
6298
6299         * c-common.c (c_common_reswords): Add nullptr.
6300         * c-common.h: Add RID_NULLPTR.  Reorganize C++0x rids.
6301         * dwarf2out.c (is_base_type): Handle NULLPTR_TYPE.
6302         (gen_type_die_with_usage): Likewise.
6303         * dbxout.c (dbxout_type): Likewise.
6304         * sdbout.c (plain_type_1): Likewise.
6305
6306 2010-05-06  Jason Merrill  <jason@redhat.com>
6307
6308         * gimplify.c (gimplify_expr): Set GS_ALL_DONE when appropriate.
6309         Don't change GS_OK to GS_ALL_DONE.  Make sure that all cases set
6310         ret appropriately.
6311         (gimplify_compound_lval): Return GS_ALL_DONE as appropriate.
6312
6313         * gimplify.c (gimplify_modify_expr_rhs): Don't return GS_OK for
6314         stripping WITH_SIZE_EXPR.
6315         (gimplify_expr) [MODIFY_EXPR]: Trust GS_OK even if the rhs didn't
6316         change.
6317
6318 2010-05-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6319
6320         * config.gcc: Removed mips-sgi-irix5*, mips-sgi-irix6.[0-4]* from
6321         list of obsolete configurations.
6322         Disabled check for obsolete configurations.
6323         (mips-sgi-irix[56]*): Restrict to mips-sgi-irix6.5*.
6324         Removed support for previous versions.
6325         * config/mips/iris.h: Removed.
6326         * config/mips/iris5.h: Removed.
6327         * config/mips/iris6.h: Merged old iris.h contents.
6328         (TARGET_IRIX): Removed.
6329         (DRIVER_SELF_SPECS): Removed mabi=32.
6330         (IDENT_ASM_OP): Removed undef.
6331         (STARTFILE_SPEC): Removed mabi=32.
6332         (ENDFILE_SPEC): Likewise.
6333         (IRIX_SUBTARGET_LINK_SPEC): Likewise.
6334         (MACHINE_TYPE): Update for IRIX 6.5.
6335         * config/mips/mips.c (mips_build_builtin_va_list): Replaced
6336         TARGET_IRIX by TARGET_IRIX6.
6337         (mips_file_start): Likewise.
6338         (mips_output_external): Remove IRIX 5/6 O32 support.
6339         (mips_output_function_prologue): Likewise.
6340         * config/mips/mips.h (TARGET_GPWORD): Replaced TARGET_IRIX by
6341         TARGET_IRIX6.
6342         (TARGET_CPU_CPP_BUILTINS): Likewise.
6343         (TARGET_IRIX): Removed.
6344         * config/mips/t-iris6 (MULTILIB_OPTIONS): Removed mabi=32.
6345         (MULTILIB_DIRNAMES): Removed 32.
6346         (MULTILIB_OSDIRNAMES): Removed ../lib.
6347         * doc/install.texi (Prerequisites): Don't reference IRIX before 6.5.
6348         (Specific, mips-sgi-irix5): Document removal.
6349         (Specific, mips-sgi-irix6): Document IRIX 6.[0-4] and O32 ABI removal.
6350         Remove references to older IRIX 6 releases and the O32 ABI.
6351
6352 2010-05-06  Jakub Jelinek  <jakub@redhat.com>
6353
6354         PR bootstrap/43994
6355         * df-problems.c (dead_debug_insert_before): Use *DF_REF_REAL_LOC
6356         instead of DF_REF_REAL_REG.
6357
6358 2010-05-06  Dave Korn  <dave.korn.cygwin@gmail.com>
6359
6360         PR target/43888
6361         * config/i386/winnt.c (i386_pe_binds_local_p): Tweak weak symbol
6362         handling to still return true for x64 targets.
6363
6364 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
6365
6366         * config/m68k/uclinux.h (LIB_SPEC): Bring in sync with config/linux.h.
6367
6368 2010-05-06  Jan Hubicka  <jh@suse.cz>
6369
6370         PR tree-optimization/43791
6371         * ipa-inline.c (update_caller_keys): Remove bogus
6372         disregard_inline_limits check.
6373
6374 2010-05-06  Michael Matz  <matz@suse.de>
6375
6376         PR tree-optimization/43984
6377         * tree-ssa-pre.c (inserted_phi_names): Remove.
6378         (inserted_exprs): Change to bitmap.
6379         (create_expression_by_pieces): Set bits, don't append to vector.
6380         (insert_into_preds_of_block): Don't handle inserted_phi_names.
6381         (eliminate): Don't look at inserted_phi_names, remove deleted
6382         insns from inserted_exprs.
6383         (remove_dead_inserted_code): Adjust to use bitmaps instead of vectors.
6384         (init_pre, fini_pre): Allocate and free bitmaps.
6385         (execute_pre): Insert insns on edges before elimination.
6386
6387 2010-05-06  Maxim Kuvyrkov  <maxim@codesourcery.com>
6388
6389         * tree.c (initializer_zerop): Handle STRING_CST.
6390
6391 2010-05-06  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6392
6393         PR 40989
6394         * doc/invoke.texi (Wimplicit): Document as C only.
6395         * opts.c (common_handle_option): Add argument kind.
6396         (handle_option): Rename as read_cmdline_option. Factor out code to...
6397         (handle_option): ... here. New.
6398         (handle_options): Rename as read_cmdline_options.
6399         (decode_options): Update call.
6400         (set_option): Use option index instead of option pointer. Classify
6401         diagnostics correctly.
6402         (enable_warning_as_error): Call handle_option.
6403         * opts.h (set_option): Update declaration.
6404         (handle_option): Declare.
6405         * langhooks.h (struct lang_hooks): Add argument kind to handle_option.
6406         * c.opt (Wimplicit,Wimplicit-int): Initialize to -1.
6407         * c-opts.c (set_Wimplicit): Delete.
6408         (c_family_lang_mask): New static constant.
6409         (c_common_handle_option): Add argument kind. Use handle_option
6410         instead of set_Wimplicit.
6411         (c_common_post_options): warn_implicit and warn_implicit_int
6412         are disabled by default.
6413         * c-common.c (warn_implicit): Do not define here.
6414         * c-common.h (warn_implicit): Do not declare here.
6415         (c_common_handle_option): Update declaration.
6416         * lto-opts.c (lto_reissue_options): Update call to set_option.
6417
6418 2010-05-06  Richard Guenther  <rguenther@suse.de>
6419
6420         PR tree-optimization/43571
6421         * domwalk.c (walk_dominator_tree): Walk the dominator
6422         sons in more optimal order.
6423
6424 2010-05-06  Richard Guenther  <rguenther@suse.de>
6425
6426         PR tree-optimization/43934
6427         * tree-ssa-loop-im.c (movement_possibility): Handle PHI nodes.
6428         (stmt_cost): Likewise.
6429         (extract_true_false_args_from_phi): New helper.
6430         (determine_max_movement): For PHI nodes verify we can hoist them
6431         and compute their cost.
6432         (determine_invariantness_stmt): Handle PHI nodes.
6433         (move_computations_stmt): Likewise.  Hoist PHI nodes in
6434         if-converted form using COND_EXPRs.
6435         (move_computations): Return TODO_cleanup_cfg if we hoisted PHI nodes.
6436         (tree_ssa_lim): Likewise.
6437         * tree-flow.h (tree_ssa_lim): Adjust prototype.
6438         * tree-ssa-loop.c (tree_ssa_loop_im): Return todo.
6439
6440 2010-05-06  Richard Guenther  <rguenther@suse.de>
6441
6442         PR tree-optimization/43987
6443         * tree-ssa-structalias.c (could_have_pointers): For possibly
6444         address-taken variables force pointers to be recorded.
6445         (create_variable_info_for_1): Likewise.
6446         (push_fields_onto_fieldstack): Pass in wheter all fields
6447         must have pointers.
6448         (find_func_aliases): Query types instead of vars whether
6449         they contain pointers where appropriate.
6450
6451 2010-05-06  Jan Hubicka  <jh@suse.cz>
6452
6453         * cgraphbuild.c (record_reference_ctx): Add varpool_node.
6454         (record_reference, mark_address, mark_load, mark_store): Record
6455         references.
6456         (record_references_in_initializer): Update call of record_references.
6457         (rebuild_cgraph_edges): Remove all references before rebuiding.
6458         * cgraph.c (cgraph_create_node): Clear ref list.
6459         (cgraph_remove_node): Remove references.
6460         (dump_cgraph_node): Dump references.
6461         (cgraph_clone_node): Clone references.
6462         * cgraph.h: Include ipa-ref.h and ipa-ref-inline.h
6463         (struct cgraph_node, varpool_node): Add ref_lst.
6464         * ipa-ref.c: New file.
6465         * ipa-ref.h: New file.
6466         * ipa-ref-inline.h: New file.
6467         * lto-cgraph.c (output_varpool): Take cgrag node set argument.
6468         (referenced_from_other_partition_p): New function.
6469         (lto_output_varpool_node): Take set arugment; call
6470         referenced_from_other_partition.
6471         (lto_output_ref): New.
6472         (add_references): New.
6473         (output_refs): New.
6474         (output_cgraph): Compute boundary based on references; output refs.
6475         (output_varpool): Accept cgraph_node_set argument.
6476         (input_ref): New.
6477         (input_refs): New.
6478         (input_cgraph): Call input_refs.
6479         * lto-section-in.c (lto_section_name): Add refs.
6480         * Makefile.in (cgraph.h): Include ipa-ref.h and ipa-ref-inline.h
6481         (ipa-ref.o): New file.
6482         * varpool.c (varpool_node): Clear ipa ref list.
6483         (varpool_remove_node): Remove references.
6484         (dump_varpool_node): Dump references.
6485         (varpool_assemble_decl): Only compile finalized ones.
6486         (varpool_extra_name_alias): Initialize ref list.
6487         * lto-streamer.c (lto-get_section_name): Add .refs section.
6488         * lto-streamer.h (lto_section_type): Add LTO_section_refs.
6489         (referenced_from_other_partition_p): Declared.
6490
6491 2010-05-06  Ira Rosen  <irar@il.ibm.com>
6492
6493         PR tree-optimization/43901
6494         * tree-vect-stmts.c (vectorizable_call): Assert that vector
6495         type is not NULL if it's transformation phase, and return
6496         FALSE if it's analysis.
6497         (vectorizable_conversion, vectorizable_operation,
6498         vectorizable_type_demotion, vectorizable_type_promotion): Likewise.
6499
6500 2010-05-05  Andrew Pinski  <andrew.pinski@caviumnetworks.com>
6501
6502         * config/mips/mips.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
6503         Delete.
6504         * config/mips/mips.c (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
6505         New define.
6506         * config/mips/mips-protos.h
6507         (mips_small_register_classes_for_mode_p): Delete prototype.
6508
6509 2010-05-06  Bernd Schmidt  <bernds@codesourcery.com>
6510
6511         * config/arm/arm.h (MAX_LDM_STM_OPS): New macro.
6512         * config/arm/arm.c (multiple_operation_profitable_p,
6513         compute_offset_order): New static functions.
6514         (load_multiple_sequence, store_multiple_sequence): Use them.
6515         Replace constant 4 with MAX_LDM_STM_OPS.  Compute order[0] from
6516         memory offsets, not register numbers.
6517         (emit_ldm_seq, emit_stm_seq): Replace constant 4 with MAX_LDM_STM_OPS.
6518
6519 2010-05-05  Steven Bosscher  <steven@gcc.gnu.org>
6520
6521         * stor-layout.c (pending_sizes): Change the type to VEC(tree,gc) *.
6522         (get_pending_sizes, put_pending_size, put_pending_sizes):
6523         Update the uses of pending_sizes.
6524         * c-decl.c (store_parm_decls): Likewise.
6525         * c-tree.h (struct c_arg_info): Likewise.
6526         * tree.h: Update the prototype for get_pending_sizes and
6527         put_pending_sizes.
6528
6529 2010-05-05  Jason Merrill  <jason@redhat.com>
6530
6531         PR debug/43370
6532         * c-common.c (handle_aligned_attribute): Respect
6533         ATTR_FLAG_TYPE_IN_PLACE.
6534
6535         PR testsuite/43758
6536         * target.h (struct gcc_target): Add attribute_takes_identifier_p.
6537         * target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
6538         (TARGET_INITIALIZER): Use it.
6539         * c-common.c (attribute_takes_identifier_p): Call it.
6540         * c-common.h: Update prototype.
6541         * config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
6542         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
6543
6544 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
6545
6546         PR debug/43950
6547         * dwarf2out.c (gen_compile_unit_die): Add DW_AT_identifier_case
6548         DW_ID_down_case for Fortran compilation units.
6549
6550 2010-05-05  Jan Hubicka  <jh@suse.cz>
6551
6552         * lto-cgraph.c (lto_output_varpool_node, input_varpool_node): Correctly
6553         handle aliases.
6554
6555 2010-05-05  Eric Botcazou  <ebotcazou@adacore.com>
6556
6557         * gimplify.c (gimplify_return_expr): Gimplify the size expressions of
6558         a variable-sized RESULT_DECL.
6559
6560 2010-05-05  Maxim Kuvyrkov  <maxim@codesourcery.com>
6561
6562         * doc/invoke.texi (-mfix-cortex-m3-ldrd): Move from ARC section to ARM.
6563
6564 2010-05-05  Jason Merrill  <jason@redhat.com>
6565
6566         PR c++/43787
6567         * gimplify.c (gimplify_expr): Keep working if gimplify_modify_expr
6568         returns GS_OK.
6569         (gimplify_modify_expr_rhs): Return GS_OK if anything changed.
6570
6571 2010-05-05  Alexandre Oliva  <aoliva@redhat.com>
6572             Jakub Jelinek  <jakub@redhat.com>
6573
6574         PR debug/43478
6575         * df-problems.c (struct dead_debug_use, struct dead_debug): New.
6576         (dead_debug_init, dead_debug_finish): New functions.
6577         (dead_debug_add, dead_debug_insert_before): Likewise.
6578         (df_note_bb_compute): Initialize a dead_debug object, add dead
6579         debug uses to it, insert debug bind insns before death insns,
6580         reset debug insns that refer to pending uses at the end.
6581         * rtl.h (make_debug_expr_from_rtl): New prototype.
6582         * varasm.c (make_debug_expr_from_rtl): New function.
6583
6584 2010-05-05  Jan Hubicka  <jh@suse.cz>
6585
6586         * lto-cgraph.c (output_varpool): Forward declare; work on encoder.
6587         (lto_varpool_encoder_new, lto_varpool_encoder_delete,
6588         lto_varpool_encoder_encode, lto_varpool_encoder_lookup,
6589         lto_varpool_encoder_deref, lto_varpool_encoder_size,
6590         lto_varpool_encoder_encode_initializer_p,
6591         lto_set_varpool_encoder_encode_initializer): New functions.
6592         (lto_output_cgraph): Take vset parameter too; compute varpool encoder;
6593         call output_varpool.
6594         (input_varpool_node): Do not always set analyzed.
6595         (input_cgraph_1): Return vector of cgraph nodes.
6596         (input_varpool_1): Return vector of varpools.
6597         (input_cgraph): Free the vectors.
6598         * lto-streamer-out.c (lto_output_ts_decl_common_tree_pointers):
6599         output only initializers needed.
6600         (lto_output): Only call output_cgraph.
6601         (produce_asm_for_decls): Call lto_varpool_encoder_delete.
6602         * lto-section-out.c (lto_new_out_decl_state): Initialize
6603         state->varpool_node_encoder.
6604         * lto-streamer.h (lto_varpool_encoder_d): New.
6605         (lto_out_decl_state, lto_file_decl_data): Add varpool_node_encoder.
6606         (lto_cgraph_encoder_delete, output_cgraph): Update prototype.
6607         (lto_varpool_encoder_deref, lto_varpool_encoder_lookup,
6608         lto_varpool_encoder_encode, lto_varpool_encoder_delete,
6609         lto_varpool_encoder_encode_initializer_p, lto_varpool_encoder_new):
6610         Declare.
6611         (output_varpool, input_varpool): Remove declarations.
6612
6613 2010-05-05  Jan Hubicka  <jh@suse.cz>
6614
6615         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Alias of variable
6616         with body can prevail.
6617
6618 2010-05-05  Jan Hubicka  <jh@suse.cz>
6619
6620         * lto-symtab.c (lto_symtab_merge_decls_1): Prefer declarations with
6621         size.
6622
6623 2010-05-05  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
6624
6625         * Makefile.in (build/gengtype.o): Add $(HASHTAB_H) to dependencies.
6626
6627         * gengtype.h (erro_at_line): Constify pos argument.
6628
6629         * gengtype.c: Include hashtab.h.
6630         (enum gc_used): Document GC_MAYBE_POINTED_TO.
6631         (error_at_line): Constify pos argument.
6632         (do_typedef): Initialize p->opt field.
6633         (get_file_gtfilename): Fix comment typo.
6634         (struct walk_type_data): Constify line field.
6635         (get_output_file_for_structure): New function.
6636         (write_local_func_for_structure): Constify orig_s argument.
6637         Use get_output_file_for_structure.
6638         (write_func_for_structure): Use get_output_file_for_structure.
6639         (INDENT): New define.
6640         (dump_pair, dump_type, dump_type_list, dump_typekind)
6641         (dump_gc_used, dump_options, dump_fileloc, dump_type_u_s)
6642         (dump_type_u_a, dump_type_u_param_struct, dump_everything): New
6643         functions.
6644         (seen_types): New variable.
6645         (main): New variable do_dump.  Process "-d" command line option.
6646         Call dump_everything if dump requested.
6647
6648 2010-05-05  Jakub Jelinek  <jakub@redhat.com>
6649
6650         * var-tracking.c (var_debug_decl): Save DECL_DEBUG_EXPR value
6651         in a temporary instead of invoking the macro multiple times.
6652         (track_expr_p): Likewise.
6653
6654 2010-05-04  Neil Vachharajani <nvachhar@google.com>
6655
6656         * doc/invoke.texi (-Wcoverage-mismatch): Updated documentation as
6657         per new semantics.
6658         * opts.c (decode_options): Enable -Werror=coverage-mismatch.
6659         * coverage.c (get_coverage_counts): Always emit a warning.  Adjust
6660         conditions for printing notes.
6661         * common.opt (-Wcoverage-mismatch): Allow negative, default to
6662         true, update documentation.
6663         * Makefile.in (coverage.o): Add dependence on DIAGNOSTIC_H and intl.h.
6664
6665 2010-05-04  Jakub Jelinek  <jakub@redhat.com>
6666
6667         PR c/43981
6668         * c-parser.c (c_parser_direct_declarator_inner): Call mark_exp_read
6669         on dimen.
6670
6671 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
6672
6673         PR target/43799
6674         * config/i386/i386.md (sse_prologue_save): Clobber CC register.
6675         (*sse_prologue_save_insn1): Likewise.
6676         (SSE prologue save splitter): Likewise.
6677
6678 2010-05-04  Eric Botcazou  <ebotcazou@adacore.com>
6679
6680         * tree.c (free_lang_data_in_one_sizepos): New inline function.
6681         (free_lang_data_in_type): Call it on TYPE_{MIN|MAX}_VALUE of numerical
6682         types.  Call it on TYPE_SIZE and TYPE_SIZE_UNIT of all types.
6683         (free_lang_data_in_decl): Call it on DECL_SIZE and DECL_SIZE_UNIT of
6684         all decls.  Call it on DECL_FIELD_OFFSET of fields.
6685         (find_decls_types_r): Follow DECL_VALUE_EXPR.
6686         (iterative_hash_expr) <PLACEHOLDER_EXPR>: New case.
6687
6688 2010-05-04  Martin Jambor  <mjambor@suse.cz>
6689
6690         * tree-sra.c (build_access_from_expr_1): The first parameter type
6691         changed to simple tree.
6692         (build_access_from_expr): Likewise, gsi parameter was eliminated.
6693         (scan_assign_result): Renamed to assignment_mod_result, enum elements
6694         renamed as well.
6695         (build_accesses_from_assign): Removed all parameters except for a
6696         simple gimple statement.  Now returns a simple bool.
6697         (scan_function): All non-analysis parts moved to separate functions
6698         sra_modify_function_body and ipa_sra_modify_function_body.  Removed all
6699         parameters and updated both callers.
6700         (sra_modify_expr): Removed parameter data.
6701         (sra_modify_function_body): New function.
6702         (perform_intra_sra): Call sra_modify_function_body to modify the
6703         function body.
6704         (replace_removed_params_ssa_names): Parameter data changed into
6705         adjustments vector.
6706         (sra_ipa_modify_expr): Likewise.  Also removed unused parameter gsi and
6707         changed the parameter dont_convert to convert with the opposite
6708         meaning.
6709         (sra_ipa_modify_assign): Parameter data changed into adjustments
6710         vector, return value changed to bool.
6711         (ipa_sra_modify_function_body): New function.
6712         (sra_ipa_reset_debug_stmts): Updated a comment.
6713         (modify_function): Use ipa_sra_modify_function_body to modify function
6714         body.
6715
6716 2010-05-04  H.J. Lu  <hongjiu.lu@intel.com>
6717
6718         PR middle-end/43671
6719         * alias.c (true_dependence): Handle the same VALUE in x and mem.
6720         (canon_true_dependence): Likewise.
6721         (write_dependence_p): Likewise.
6722
6723 2010-05-04  Jan Hubicka  <jh@suse.cz>
6724
6725         * Makefile.in (cgraphbuild.o): Add dependency on ipa-utils.h
6726         * cgraphbuild.c: Include ipa-utils.h
6727         (record_reference_ctx): New struct.
6728         (record_reference): Simplify to work on initializers; not statements.
6729         (mark_address, mark_load, mark_store): New.
6730         (build_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
6731         walk PHI nodes too.
6732         (record_references_in_initializer): Update use of record_reference.
6733         (rebuild_cgraph_edges): Simplify using walk_stmt_load_store_addr_ops;
6734         walk PHI nodes too.
6735
6736 2010-05-04  Jan Hubicka  <jh@suse.cz>
6737
6738         * lto-symtab.c (lto_cgraph_replace_node): Do not remove edges;
6739         node will be removed anyway.
6740         (lto_varpool_replace_node): Allow also unanalyzed nodes;
6741         relink aliases of node into prevailing node.
6742         * varpool.c (varpool_remove_node): Remove aliases properly;
6743         when removing node, remove all its aliases too; remove DECL_INITIAL
6744         of removed node; ggc_free the varpool node.
6745
6746 2010-05-04  Richard Guenther  <rguenther@suse.de>
6747
6748         PR tree-optimization/43879
6749         * tree-ssa-structalias.c (alias_get_name): Use
6750         DECL_ASSEMBLER_NAME if available.
6751         (create_function_info_for): Return the varinfo node.
6752         (ipa_pta_execute): Associate same-body aliases and extra names
6753         with their origin nodes varinfo.  Dump DECL_ASSEMBLER_NAME.
6754
6755 2010-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
6756
6757         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Remove static.
6758
6759 2010-05-04  Mikael Pettersson  <mikpe@it.uu.se>
6760
6761         PR bootstrap/43964
6762         * ira-color.c (assign_hard_reg): Declare rclass and add_cost
6763         only if HONOR_REG_ALLOC_ORDER is not defined.
6764
6765 2010-05-04  Richard Guenther  <rguenther@suse.de>
6766
6767         PR tree-optimization/43949
6768         * tree-vrp.c (extract_range_from_binary_expr): Only handle
6769         TRUNC_MOD_EXPR.
6770
6771 2010-04-26  Jason Merrill  <jason@redhat.com>
6772
6773         * c.opt (-fstrict-enums): New.
6774         * doc/invoke.texi (C++ Dialect Options): Document -fstrict-enums.
6775
6776 2010-05-03  David Ung <davidu@mips.com>
6777             James E. Wilson  <wilson@codesourcery.com>
6778
6779         * config/mips/mips.c (mips_output_division): If GENERATE_DIVIDE_TRAPS,
6780         emit the trap instruction before the divide for TUNE_74K.
6781
6782 2010-05-03  Steven Bosscher  <steven@gcc.gnu.org>
6783
6784         * doc/tm.texi (defmac SMALL_REGISTER_CLASSES): Remove.
6785         (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): Add documentation,
6786         based on the above, for new target hook.
6787
6788         * hooks.c (hook_bool_mode_true): New generic hook.
6789         * hooks.h (hook_bool_mode_true): Add prototype.
6790
6791         * target.h (struct gcc_target): Add small_register_classes_for_mode_p
6792         target hook.
6793         * target-def.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P): New default
6794         target hook, set to hook_bool_mode_false.
6795         * regs.h: Remove default definition of SMALL_REGISTER_CLASSES.
6796         * reload.c (push_secondary_reload): Replace SMALL_REGISTER_CLASSES
6797         with targetm.small_register_classes_for_mode_p.
6798         (find_reusable_reload): Likewise.
6799         (combine_reloads): Likewise.
6800         * reload1.c (reload_as_needed): Likewise.
6801         * cse.c (approx_reg_cost_1, hash_rtx_cb): Likewise.
6802         * ifcvt.c (noce_process_if_block, check_cond_move_block,
6803         dead_or_predicable): Likewise.
6804         * regmove.c (optimize_reg_copy_1): Likewise.
6805         * calls.c (prepare_call_address): Likewise.
6806         (precompute_register_parameters): Likewise.
6807
6808         * config/sh/sh.h: Replace SMALL_REGISTER_CLASSES with new target
6809         hook definition.
6810         * config/sh/sh.c (sh_small_register_classes_for_mode_p): Add
6811         implementation of the hook that considers all register classes
6812         small except for SH64.
6813         (sh_override_options): Use the new hook.
6814         * config/sh/sh-protos.h (sh_small_register_classes_for_mode_p):
6815         Add prototype.
6816
6817         * config/arm/arm.h: Replace SMALL_REGISTER_CLASSES with new target
6818         hook definition.
6819         * config/arm/arm.c (arm_small_register_classes_for_mode_p): Add
6820         implementation of the hook that considers all register classes
6821         small for THUMB1.
6822         * config/arm/arm-protos.h (arm_small_register_classes_for_mode_p):
6823         Add prototype.
6824
6825         * config/mips/mips.h: Replace SMALL_REGISTER_CLASSES with new target
6826         hook definition.
6827         * config/mips/mips.c (mips_small_register_classes_for_mode_p): Add
6828         implementation of the hook that considers all register classes
6829         small for MIPS16.
6830         * config/mips/mips-protos.h (mips_small_register_classes_for_mode_p):
6831         Add prototype.
6832
6833         * config/i386/i386.h: Replace SMALL_REGISTER_CLASSES with new target
6834         hook definition.
6835         * config/m32c/m32c.h: Likewise.
6836         * config/pdp11/pdp11.h: Likewise.
6837         * config/avr/avr.h: Likewise.
6838         * config/xtensa/xtensa.h: Likewise.
6839         * config/m68hc11/m68hc11.h: Likewise.
6840         * config/mn10300/mn10300.h: Likewise.
6841         * config/mcore/mcore.h: Likewise.
6842         * config/h8300/h8300.h: Likewise.
6843         * config/bfin/bfin.h: Likewise.
6844
6845         * config/iq2000/iq2000.h: Remove SMALL_REGISTER_CLASSES definition.
6846         * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES definition.
6847
6848 2010-05-03  Anatoly Sokolov  <aesok@post.ru>
6849
6850         * double-int.h (tree_to_double_int): Remove macro.
6851         (double_int_to_tree, double_int_fits_to_tree_p): Move prototypes ...
6852         * tree.h (double_int_to_tree, double_int_fits_to_tree_p): ... here.
6853         (tree_to_double_int): New function.
6854         * double-int.c (double_int_to_tree, double_int_fits_to_tree_p):
6855         Move ...
6856         * tree.c (double_int_to_tree, double_int_fits_to_tree_p): ... here.
6857
6858 2010-05-03  Richard Guenther  <rguenther@suse.de>
6859
6860         PR tree-optimization/43971
6861         * tree-ssa-structalias.c (get_constraint_for_1): Fix
6862         constraints in the !flag_delete_null_pointer_checks case.
6863
6864 2010-05-03  Jakub Jelinek  <jakub@redhat.com>
6865
6866         PR debug/43972
6867         * config/i386/i386.c (ix86_delegitimize_address): Make sure the
6868         result mode matches original rtl mode.
6869
6870 2010-05-03  Dave Korn  <dave.korn.cygwin@gmail.com>
6871
6872         PR target/43888
6873         * config/i386/winnt.c (i386_pe_binds_local_p): Handle weak decls.
6874
6875 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
6876
6877         * config/i386/i386.c (ix86_target_string): Output 'flags', not 'isa',
6878         when processing flag options.
6879
6880 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
6881
6882         * gcov-iov.c (main): Change format string placeholder
6883         from %#08x to 0x%08x.
6884         * genchecksum.c (dosum): Change format string placeholder
6885         from %#02x to 0x%02x.
6886
6887 2010-05-02  Richard Guenther  <rguenther@suse.de>
6888
6889         PR tree-optimization/43879
6890         * tree-tailcall.c (find_tail_calls): Clobbers also prevent tail calls.
6891
6892 2010-05-02  Bruno Haible  <bruno@clisp.org>
6893
6894         * doc/extend.texi (Function Attributes): Fix a typo.
6895
6896 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
6897
6898         Revert:
6899         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Change format string
6900         placeholder from 0x%x to %#x.
6901         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
6902         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
6903         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
6904         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
6905         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
6906         * config/i386/i386.c (ix86_target_string): Ditto.
6907         * config/i386/i386.c (output_pic_addr_const): Ditto.
6908         (print_operand): Ditto.
6909
6910 2010-05-02  Uros Bizjak  <ubizjak@gmail.com>
6911
6912         * vmsdbgout.c (ASM_OUTPUT_DEBUG_DATA1): Change format string
6913         placeholder from 0x%x to %#x.
6914         (ASM_OUTPUT_DEBUG_DATA1): Ditto.
6915         (ASM_OUTPUT_DEBUG_DATA4): Ditto.
6916         (ASM_OUTPUT_DEBUG_DATA): Ditto.
6917         (ASM_OUTPUT_DEBUG_ADDR_DATA): Ditto.
6918         (ASM_OUTPUT_DEBUG_DATA8): Ditto.
6919         * optc-gen.awk: Ditto.
6920         * hwint.h (HOST_WIDE_INT_PRINT_DOUBLE_HEX): Ditto.
6921         (HOST_WIDE_INT_PRINT_HEX): Ditto.
6922         (HOST_WIDEST_INT_PRINT_HEX): Ditto.
6923         (HOST_WIDEST_INT_PRINT_DOUBLE_HEX): Ditto.
6924
6925 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
6926
6927         * target.h (struct calls): Add function_value_regno_p field.
6928         * target-def.h (TARGET_FUNCTION_VALUE_REGNO_P): Define.
6929         (TARGET_INITIALIZER): Use TARGET_FUNCTION_VALUE_REGNO_P.
6930         * targhooks.c (default_function_value_regno_p): New function.
6931         * targhooks.h (default_function_value_regno_p): Declare function.
6932         * rtlanal.c (keep_with_call_p): Use function_value_regno_p hook.
6933         * builtins.c. (apply_result_size): (Ditto.).
6934         * combine.c. (likely_spilled_retval_p): (Ditto.).
6935         * mode-switching.c. Include 'target.h'.
6936         (create_pre_exit): Use function_value_regno_p hook.
6937         * Makefile.in (mode-switching.o): Add dependency on TARGET_H.
6938         * doc/tm.texi (FUNCTION_VALUE_REGNO_P,
6939         TARGET_FUNCTION_VALUE_REGNO_P): Revise documentation.
6940
6941         * config/i386/i386.h (TARGET_FUNCTION_VALUE_REGNO_P): Remove macro.
6942         * config/i386/i386.c (TARGET_FUNCTION_VALUE_REGNO_P): Define macro.
6943         (ix86_function_value_regno_p): Declare as static, change argument
6944         type to const unsigned int.
6945         * config/i386/i386-protos.h (ix86_function_value_regno_p): Remove.
6946
6947 2010-05-01  Richard Guenther  <rguenther@suse.de>
6948
6949         PR tree-optimization/43949
6950         * tree-vrp.c (ssa_name_nonnegative_p): Return true for unsigned
6951         types.
6952         (extract_range_from_binary_expr): Handle *_MOD_EXPR.
6953
6954 2010-05-01  Anatoly Sokolov  <aesok@post.ru>
6955
6956         * rtl.h (CONST_DOUBLE_P): Define.
6957         (rtx_to_double_int): Declare.
6958         * emit-rtl.c (rtx_to_double_int): New function.
6959         * dwarf2out.c (insert_double): New function.
6960         (loc_descriptor, add_const_value_attribute): Clean up, use
6961         rtx_to_double_int and insert_double functions.
6962
6963 2010-05-01  Jonathan Wakely  <jwakely.gcc@gmail.com>
6964
6965         * doc/extend.texi (Inline): Add missing return keyword to examples.
6966         (Function Attributes, Variable Attributes, Pragmas): Hyphenate
6967         "command-line".
6968
6969 2010-04-30  Eric Botcazou  <ebotcazou@adacore.com>
6970
6971         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): Check the alignment of
6972         the variable part of the offset as well.  Use highest_pow2_factor for
6973         all alignment checks.
6974
6975 2010-04-30  Richard Guenther  <rguenther@suse.de>
6976
6977         PR tree-optimization/43879
6978         * tree-ssa-structalias.c (type_could_have_pointers): Functions
6979         can have pointers.
6980
6981 2010-04-30  Jan Hubicka  <jh@suse.cz>
6982
6983         * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Chose var with
6984         varpool.
6985         (lto_symtab_merge_decls_1): Remove logic looking for an initializer.
6986
6987 2010-04-30  Jan Hubicka  <jh@suse.cz>
6988
6989         * cgraph.h (cgraph_node_set_nonempty_p, varpool_node_set_nonempty_p):
6990         New.
6991         * lto-cgraph.c (input_cgraph): Remove call to lto_mark_file_for_ltrans.
6992         * lto-streamer.h (lto_file_decl_data): Remove needs_ltrans_p.
6993         (lto_file_needs_ltrans_p, lto_mark_file_for_ltrans,
6994         cgraph_node_set_needs_ltrans_p): Remove.
6995
6996 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
6997
6998         * sdbout.c: Include vec.h, do not include varray.h.
6999         (deferred_global_decls, sdbout_global_decl,
7000         sdbout_finish, sdbout_init): Use VEC instead of VARRAY.
7001         * toplev.c: Do not include varray.h.
7002         (dump_memory_report): Do not dump VARRAY statistics.
7003         * gengtype.c (open_base_file): Ignore varray.h.
7004         * Makefile.in: Update for abovementioned changes.
7005         Remove all traces of varray.c and varray.h.
7006         * varray.c: Remove file.
7007         * varray.h: Remove file.
7008
7009 2010-04-30  Jan Hubicka  <jh@suse.cz>
7010
7011         * lto-cgraph.c (lto_output_varpool_node): Always output constant pool
7012         references.
7013
7014 2010-04-30  Jan Hubicka  <jh@suse.cz>
7015
7016         * tree-profile.c (tree_init_ic_make_global_vars): Mark new decls as
7017         needed.
7018
7019 2010-04-30  Richard Guenther  <rguenther@suse.de>
7020
7021         * tree-ssa-structalias.c (get_constraint_for_1): Generate
7022         constraints for CONSTRUCTOR.
7023
7024 2010-04-30  Richard Guenther  <rguenther@suse.de>
7025
7026         PR lto/43946
7027         * passes.c (init_optimization_passes): Move pass_ipa_free_lang_data
7028         first after all lowering passes.
7029
7030 2010-04-30  Steven Bosscher  <steven@gcc.gnu.org>
7031
7032         * toplev.c: Include varray.h for statistics dumping.
7033         * tree.h: Do not declare varray_head_tag.
7034         * tree-into-ssa.c, tree-ssa-uninit.c, tree-phinodes.c, omega.c,
7035         regs.h, lto-cgraph.c, tree-ssa-loop-ivopts.c, tree-nomudflap.c,
7036         c-objc-common.c, lto-streamer-out.c, tree-ssa-propagate.c,
7037         gimple-low.c, c-semantics.c, dwarf2out.c, lto-streamer-in.c,
7038         lto-section-in.c, alias.c, tree-if-conv.c, gimplify.c, ggc-zone.c,
7039         tree-ssa.c, tree-ssa-loop-prefetch.c, integrate.h, c-gimplify.c,
7040         c-common.c, c-common.h, reg-stack.c, basic-block.h,
7041         tree-ssa-structalias.c, lto-section-out.c, tree-ssanames.c: Do not
7042         include varray.h.
7043         * Makefile.in: Update for abovementioned changes.
7044
7045 2010-04-30  Jakub Jelinek  <jakub@redhat.com>
7046
7047         PR debug/43942
7048         * tree.c (auto_var_in_fn_p): Return false for DECL_EXTERNAL vars.
7049
7050 2010-04-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
7051
7052         * config/picochip/picochip.c (picochip_legitimize_address): Define.
7053         Use this function to do machine-specific conversion.
7054         (picochip_legitimize_reload_address): Likewise.
7055         (picochip_legitimate_address_p): Check valid base register only if
7056         strict.
7057         (picochip_check_conditional_copy): Check for modw only if opnd is
7058         register.
7059         * config/picochip/picochip.h (LEGITIMIZE_RELOAD_ADDRESS): Use this
7060         to call the function in c.
7061         * config/picochip/picochip-protos.h
7062         (picochip_legitimize_reload_address): Define.
7063         * config/picochip/picochip.md (supported_compare1): Define.
7064
7065 2010-04-30  Jan Hubicka  <jh@suse.cz>
7066
7067         * cgraph.h (cgraph_local_info): Remove for_functions_valid.
7068         (cgraph_global_info): Remove inlined.
7069         (LTO_cgraph_tag_names): Remove.
7070         (LTO_cgraph_tags, LCC_NOT_FOUND): Move to ...
7071         * lto-cgraph.c (LTO_cgraph_tags, LCC_NOT_FOUND): ... here;
7072         simplify cgraph tags and document.
7073         (lto_output_node): Use only LTO_cgraph_unavail_node and
7074         LTO_cgraph_analyzed_node; Do not save analzed, reachable,
7075         for_functions_valid, global info, process and output flags.
7076         (input_overwrite_node): Initialize estimated stack size and
7077         estimated growth.  Do not read flags we no longer store.
7078         (input_node): Likewise do not read info no longer stored.
7079         * ipa-inline.c (cgraph_mark_inline_edge): Do not set global.inlined
7080         flag.
7081
7082 2010-04-30  Richard Guenther  <rguenther@suse.de>
7083
7084         PR tree-optimization/43879
7085         * tree-ssa-structalias.c (get_constraint_for_1): Properly
7086         handle non-zero initializers.
7087
7088 2010-04-30  Richard Guenther  <rguenther@suse.de>
7089
7090         * builtins.c (fold_builtin_1): Delete free (0).
7091
7092 2010-04-29  Jan Hubicka  <jh@suse.cz>
7093
7094         * gengtype.c (open_base_files): Add lto-streamer.h
7095         * cgraph.h (cgraph_local_info): lto_file_data is now in GGC.
7096         (pass_ipa_cp): GGC collect.
7097         * toplev. (compile_file): Do not output symbols.
7098         * ipa-inline.c (pass_ipa_inline): Add ggc collect.
7099         * timevar.def (TV_VARPOOL, TV_IPA_LTO_DECL_INIT_IO,
7100         TV_IPA_LTO_DECL_MERGE, TV_IPA_LTO_CGRAPH_MERGE, TV_VAROUT): New.
7101         * lto-section-in.c: Include ggc.h
7102         (lto_new_in_decl_state): Alloc in GGC.
7103         (lto_delete_in_decl_state): Likewise.
7104         * ipa.c (pass_ipa_function_visibility, pass_ipa_whole_program):
7105         Collect.
7106
7107 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
7108
7109         PR target/42895
7110         * doc/tm.texi (ADJUST_REG_ALLOC_ORDER): Renamed from
7111         ORDER_REGS_FOR_LOCAL_ALLOC.  All instances of this macro changed.
7112         (HONOR_REG_ALLOC_ORDER): Describe new macro.
7113         * ira.c (setup_alloc_regs): Use ADJUST_REG_ALLOC_ORDER if defined.
7114         * ira-color.c (assign_hard_reg): Take prologue/epilogue costs into
7115         account only if HONOR_REG_ALLOC_ORDER is not defined.
7116         * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Define.
7117         * system.h (ORDER_REGS_FOR_LOCAL_ALLOC): Poison.
7118
7119 2010-04-29  Jon Grant  <04@jguk.org>
7120
7121         * collect2.c (vflag): Change type from int to bool.
7122         (debug): Likewise.
7123         (helpflag): New global bool.
7124         (main): Set vflag and debug with boolean, not integer truth values.
7125         Accept new "--help" option and output usage text if found.
7126         * collect2.h (vflag): Update prototype.
7127         (debug): Likewise.
7128
7129 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
7130
7131         PR bootstrap/43936
7132         * plugin.h (flag_plugin_added): Moved out of invoke_plugin_callbacks.
7133
7134 2010-04-29  Richard Guenther  <rguenther@suse.de>
7135
7136         PR bootstrap/43935
7137         * plugin.h (invoke_plugin_callbacks): Annotate arguments
7138         with ATTRIBUTE_UNUSED.
7139
7140 2010-04-29  H.J. Lu  <hongjiu.lu@intel.com>
7141
7142         PR target/43921
7143         * config/i386/i386.c (get_some_local_dynamic_name): Replace
7144         INSN_P with NONDEBUG_INSN_P.
7145         (distance_non_agu_define): Likewise.
7146         (distance_agu_use): Likewise.
7147
7148 2010-04-29  Bernd Schmidt  <bernds@codesourcery.com>
7149
7150         From Dominique d'Humieres <dominiq@lps.ens.fr>
7151         PR bootstrap/43858
7152         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs to compute
7153         test_set.
7154
7155 2010-04-29  Brian Hackett  <bhackett1024@gmail.com>
7156
7157         * plugin.h (invoke_plugin_callbacks): New inline function.
7158         * plugin.c (flag_plugin_added): New global flag.
7159         (add_new_plugin): Initialize above flag.
7160         (invoke_plugin_callbacks): Rename to ...
7161         (invoke_plugin_callbacks_full): ... this.
7162
7163 2010-04-28  Jan Hubicka  <jh@suse.cz>
7164
7165         * lto-symtab.c (lto_symtab_entry_def) Add vnode.
7166         (lto_varpool_replace_node): New.
7167         (lto_symtab_resolve_symbols): Resolve varpool nodes.
7168         (lto_symtab_merge_decls_1): Prefer decls with varpool node.
7169         (lto_symtab_merge_cgraph_nodes_1): Merge varpools.
7170         * cgraph.h (varpool_node_ptr): New type.
7171         (varpool_node_ptr): New vector.
7172         (varpool_node_set_def): New structure.
7173         (varpool_node_set): New type.
7174         (varpool_node_set): New vector.
7175         (varpool_node_set_element_def): New structure.
7176         (varpool_node_set_element, const_varpool_node_set_element): New types.
7177         (varpool_node_set_iterator): New type.
7178         (varpool_node): Add prev pointers, add used_from_other_partition,
7179         in_other_partition.
7180         (varpool_node_set_new, varpool_node_set_find, varpool_node_set_add,
7181         varpool_node_set_remove, dump_varpool_node_set, debug_varpool_node_set,
7182         varpool_get_node, varpool_remove_node): Declare.
7183         (vsi_end_p, vsi_next, vsi_node, vsi_start, varpool_node_in_set_p,
7184         varpool_node_set_size): New inlines.
7185         * cgraph.c (dump_cgraph_node): Dump asm names of aliases.
7186         * tree-pass.h (varpool_node_set_def): Forward declare.
7187         (ipa_opt_pass_d): Summary writting takes vnode sets too.
7188         (ipa_write_optimization_summaries): Update prototype.
7189         * ipa-cp.c (ipcp_write_summary): Update.
7190         * ipa-reference.c (ipa_reference_write_summary): Update.
7191         * lto-cgraph.c (lto_output_varpool_node): New static function.
7192         (output_varpool): New function.
7193         (input_varpool_node): New static function.
7194         (input_varpool_1): New function.
7195         (input_cgraph): Input varpool.
7196         * ipa-pure-const.c (pure_const_write_summary): Update.
7197         * lto-streamer-out.c (lto_output): Update, output varpool too.
7198         (write_global_stream): Kill WPA hack.
7199         (produce_asm_for_decls): Update.
7200         (output_alias_pair_p): Handle variables.
7201         (output_unreferenced_globals): Output only needed partition of varpool.
7202         * ipa-inline.c (inline_write_summary): Update.
7203         * lto-streamer-in.c (lto_input_tree_ref, lto_input_tree): Do not build
7204         cgraph.
7205         * lto-section-in.c (lto_section_name): Add varpool and jump funcs.
7206         * ipa.c (hash_varpool_node_set_element, eq_varpool_node_set_element,
7207         varpool_node_set_new, varpool_node_set_add,
7208         varpool_node_set_remove, varpool_node_set_find, dump_varpool_node_set,
7209         debug_varpool_node_set): New functions.
7210         * passes.c (rest_of_decl_compilation): when in LTO do not finalize.
7211         (execute_one_pass): Process new decls too.
7212         (ipa_write_summaries_2): Pass around vsets.
7213         (ipa_write_summaries_1): Likewise.
7214         (ipa_write_summaries): Build vset; be more selective about cgraph nodes
7215         to add.
7216         (ipa_write_optimization_summaries_1): Pass around vsets.
7217         (ipa_write_optimization_summaries): Likewise.
7218         * varpool.c (varpool_get_node): New.
7219         (varpool_node): Update doubly linked lists.
7220         (varpool_remove_node): New.
7221         (dump_varpool_node): More dumping.
7222         (varpool_enqueue_needed_node): Update doubly linked lists.
7223         (decide_is_variable_needed): Kill ltrans hack.
7224         (varpool_finalize_decl): Kill lto hack.
7225         (varpool_assemble_decl): Skip decls in other partitions.
7226         (varpool_assemble_pending_decls): Update doubly linkes lists.
7227         (varpool_empty_needed_queue): Likewise.
7228         (varpool_extra_name_alias): Likewise.
7229         * lto-streamer.c (lto_get_section_name): Add vars section.
7230         * lto-streamer.h (lto_section_type): Update.
7231         (output_varpool, input_varpool): Declare.
7232
7233 2010-04-28  Mike Stump  <mikestump@comcast.net>
7234
7235         * config/i386/darwin.h (CC1_SPEC): Ignore -mdynamic-no-pic for now.
7236
7237 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
7238
7239         * lto-streamer-in.c (unpack_ts_type_value_fields): Replace test for
7240         record or union type with RECORD_OR_UNION_TYPE_P predicate.
7241         (lto_input_ts_type_tree_pointers): Likewise.
7242         * lto-streamer-out.c (pack_ts_type_value_fields): Likewise.
7243         (lto_output_ts_type_tree_pointers): Likewise.
7244
7245 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
7246
7247         Uniquization of constants at the Tree level
7248         * tree.h (DECL_IN_CONSTANT_POOL): New macro.
7249         (tree_decl_with_vis): Add in_constant_pool bit, move shadowed_for_var_p
7250         bit to the end.
7251         (tree_output_constant_def): Declare.
7252         * gimplify.c (gimplify_init_constructor): When using block copy, first
7253         uniquize the constant constructor on the RHS.
7254         * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Deal with
7255         DECL_IN_CONSTANT_POOL flag.
7256         * lto-streamer-out.c (pack_ts_decl_with_vis_value_fields): Likewise.
7257         * varasm.c (make_decl_rtl): Deal with variables belonging to the global
7258         constant pool.
7259         (assemble_variable): Deal with symbols belonging to the tree constant
7260         pool.
7261         (get_constant_section): Add ALIGN parameter and simplify.
7262         (build_constant_desc): Build a VAR_DECL and attach it to the symbol.
7263         (assemble_constant_contents): Use the expression of the VAR_DECL.
7264         (output_constant_def_contents): Use the alignment of the VAR_DECL.
7265         (tree_output_constant_def): New global function.
7266         (mark_constant): Use the expression of the VAR_DECL.
7267         (place_block_symbol): Use the alignment of the VAR_DECL and the size of
7268         its expression.
7269         (output_object_block): Likewise and assemble the expression.
7270
7271 2010-04-28  Eric Botcazou  <ebotcazou@adacore.com>
7272
7273         * lto-streamer.c [LTO_STREAMER_DEBUG] (tree_htab, tree_hash_entry,
7274         hash_tree, eq_tree): New tree hash table.
7275         (lto_streamer_init) [LTO_STREAMER_DEBUG]: Initialize it.
7276         [LTO_STREAMER_DEBUG] (lto_orig_address_map, lto_orig_address_get,
7277         lto_orig_address_remove): Reimplement.
7278
7279 2010-04-28  Xinliang David Li  <davidxl@google.com>
7280
7281         PR c/42643
7282         * tree-ssa-uninit.c (can_skip_redundant_opnd): New function.
7283         (compute_uninit_opnds_pos): New function.
7284         (is_non_loop_exit_postdominating): New function.
7285         (compute_control_dep_chain): New function.
7286         (find_pdom): New function.
7287         (convert_control_dep_chain_into_preds): New function.
7288         (find_predicates): New function.
7289         (find_control_equiv_block): New function.
7290         (collect_phi_def_edges): New function.
7291         (find_def_preds): New function.
7292         (find_dom): New function.
7293         (dump_predicates): New function.
7294         (get_cmp_code): New function.
7295         (is_value_included_in): New function.
7296         (find_matching_predicate_in_rest_chains): New function.
7297         (use_pred_not_overlap_with_undef_path_pred): New function.
7298         (is_use_properly_guarded): New function.
7299         (normalize_cond_1): New function.
7300         (is_and_or_or): New function.
7301         (normalize_cond): New function.
7302         (is_gcond_subset_of): New function.
7303         (is_subset_of_any): New function.
7304         (is_or_set_subset_of): New function.
7305         (is_and_set_subset_of): New function.
7306         (is_norm_cond_subset_of): New function.
7307         (is_pred_expr_subset_of): New function.
7308         (is_pred_chain_subset_of): New function.
7309         (is_included_in): New function.
7310         (is_superset_of): New function.
7311         (find_uninit_use): New function.
7312         (warn_uninitialized_phi): New function.
7313         (compute_possibly_undefined_names): New function.
7314         (ssa_undefined_value_p): New function.
7315         (execute_late_warn_uninitialized): New function.
7316         * tree-ssa.c (ssa_undefined_value_p): Removed.
7317         (warn_uninit): Changed to extern.
7318         (warn_uninitialized_phi): Removed.
7319         (warn_uninitialized_vars): Changed to extern.
7320         (execute_late_warn_uninitialized): Removed
7321         * tree-flow.h: Add new prototypes.
7322         * timevar.def: Add new time variable.
7323         * Makefile.in: Add new build file.
7324
7325 2010-04-28  Uros Bizjak  <ubizjak@gmail.com>
7326
7327         * config/alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object
7328         type if available.
7329
7330 2010-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7331
7332         PR target/22224
7333         * config/alpha/osf5.h (ASM_OUTPUT_LOCAL): Redefine.
7334
7335 2010-04-28  Martin Jambor  <mjambor@suse.cz>
7336
7337         * cgraph.h (struct cgraph_node): New field indirect_calls.
7338         (struct cgraph_indirect_call_info): New type.
7339         (struct cgraph_edge): Removed field indirect_call. New fields
7340         indirect_info, indirect_inlining_edge and indirect_unknown_callee.
7341         (cgraph_create_indirect_edge): Declare.
7342         (cgraph_make_edge_direct): Likewise.
7343         (enum LTO_cgraph_tags): New item LTO_cgraph_indirect_edge.
7344         * ipa-prop.h (struct ipa_param_call_note): Removed.
7345         (struct ipa_node_params): Removed field param_calls.
7346         (ipa_create_all_structures_for_iinln): Declare.
7347         * cgraph.c: Described indirect edges and uids in initial comment.
7348         (cgraph_add_edge_to_call_site_hash): New function.
7349         (cgraph_edge): Search also among the indirect edges, use
7350         cgraph_add_edge_to_call_site_hash to add edges to the call site hash.
7351         (cgraph_set_call_stmt): Possibly turn an indirect edge into a direct
7352         one, use cgraph_add_edge_to_call_site_hash to add edges to the call
7353         site hash.
7354         (initialize_inline_failed): Assign a reason to indirect edges.
7355         (cgraph_create_edge_1): New function.
7356         (cgraph_create_edge): Moved some functionality to
7357         cgraph_create_edge_1.
7358         (cgraph_create_indirect_edge): New function.
7359         (cgraph_edge_remove_callee): Add an assert checking for
7360         non-indirectness.
7361         (cgraph_edge_remove_caller): Special-case indirect edges.
7362         (cgraph_remove_edge): Likewise.
7363         (cgraph_set_edge_callee): New function.
7364         (cgraph_redirect_edge_callee): Use cgraph_set_edge_callee.
7365         (cgraph_make_edge_direct): New function.
7366         (cgraph_update_edges_for_call_stmt_node): Do nothing only when also
7367         the declaration of the call statement matches.
7368         (cgraph_node_remove_callees): Special-case indirect edges.
7369         (cgraph_clone_edge): Likewise.
7370         (cgraph_clone_node): Clone also the indirect edges.
7371         (dump_cgraph_node): Dump indirect_inlining_edge flag instead of
7372         indirect_call, dump count of indirect_calls edges.
7373         * ipa-prop.c (iinlining_processed_edges): New variable.
7374         (ipa_note_param_call): Create indirect edges instead of
7375         creating notes.  New parameter node.
7376         (ipa_analyze_call_uses): New parameter node, pass it on to
7377         ipa_note_param_call.
7378         (ipa_analyze_stmt_uses): Likewise.
7379         (ipa_analyze_params_uses): Pass node to ipa_analyze_stmt_uses.
7380         (print_edge_addition_message): Work on edges rather than on notes.
7381         (update_call_notes_after_inlining): Likewise, renamed to
7382         update_indirect_edges_after_inlining.
7383         (ipa_create_all_structures_for_iinln): New function.
7384         (ipa_free_node_params_substructures): Do not free notes.
7385         (ipa_edge_duplication_hook): Propagate bits within
7386         iinlining_processed_edges bitmap.
7387         (ipa_node_duplication_hook): Do not duplicate notes.
7388         (free_all_ipa_structures_after_ipa_cp): Renamed to
7389         ipa_free_all_structures_after_ipa_cp.
7390         (free_all_ipa_structures_after_iinln): Renamed to
7391         ipa_free_all_structures_after_iinln.
7392         (ipa_write_param_call_note): Removed.
7393         (ipa_read_param_call_note): Removed.
7394         (ipa_write_indirect_edge_info): New function.
7395         (ipa_read_indirect_edge_info): Likewise.
7396         (ipa_write_node_info): Do not stream notes, do stream information
7397         in indirect edges.
7398         (ipa_read_node_info): Likewise.
7399         (lto_ipa_fixup_call_notes): Removed.
7400         * ipa-cp.c (pass_ipa_cp): Set stmt_fixup to NULL.
7401         * ipa-inline.c (pass_ipa_inline): Likewise.
7402         * cgraphunit.c (verify_cgraph_node): Check also indirect edges.
7403         * cif-code.def (INDIRECT_UNKNOWN_CALL): New reason.
7404         * tree-inline.c (copy_bb): Removed an unnecessary double check for
7405         is_gimple_call.
7406         * tree-inline.c (get_indirect_callee_fndecl): Do not consider indirect
7407         edges.
7408         * lto-cgraph.c (output_outgoing_cgraph_edges): New function.
7409         (output_cgraph): Stream also indirect edges.
7410         (lto_output_edge): Added capability to stream indirect edges.
7411         (input_edge): Likewise.
7412         (input_cgraph_1): Likewise.
7413         * lto-streamer-in.c (fixup_call_stmt_edges_1): Fixup also statements
7414         of indirect edges.
7415
7416 2010-04-28  Richard Guenther  <rguenther@suse.de>
7417
7418         PR tree-optimization/43879
7419         PR tree-optimization/43909
7420         * tree-ssa-structalias.c (struct variable_info): Add
7421         only_restrict_pointers flag.
7422         (new_var_info): Initialize it.  Increment stats.total_vars here.
7423         (create_function_info_for): Do not increment stats.total_vars here.
7424         (get_function_part_constraint): Fix build with C++.
7425         (insert_into_field_list): Remove.
7426         (push_fields_onto_fieldstack): Properly merge fields.
7427         (create_variable_info_for): Split and simplify.
7428         (create_variable_info_for_1): New piece.
7429         (intra_create_variable_infos): Properly make restrict constraints
7430         from parameters.
7431
7432 2010-04-28  Richard Guenther  <rguenther@suse.de>
7433
7434         PR c++/43880
7435         * tree-inline.c (copy_bind_expr): Also copy bind expr vars value-exprs.
7436
7437 2010-04-27  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7438             Jan Hubicka <hubicka@ucw.cz>
7439
7440         * doc/invoke.texi (-Wsuggest-attribute=const,
7441         -Wsuggest-attribute=pure): Document.
7442         * ipa-pure-const.c: Include toplev.h, intl.h and opts.h.
7443         (function_always_visible_to_compiler_p,
7444         suggest_attribute, warn_function_pure, warn_function_const):
7445         New functions.
7446         (check_call): Improve debug info.
7447         (analyze_function): Do not check availability.
7448         (add_new_function): Check availability.
7449         (propagate): Output warnings.
7450         (skip_function_for_local_pure_const): New function.
7451         (local_pure_const): Use it; output warnings.
7452         * common.opt (Wsuggest-attribute=const,
7453         Wsuggest-attribute=pure): New.
7454
7455 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
7456
7457         * dwarf2out.c (def_cfa_1): After DW_CFA_def_cfa_expression
7458         force using DW_CFA_def_cfa instead of DW_CFA_def_cfa_register
7459         or DW_CFA_def_cfa_offset{,_sf}.
7460
7461 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
7462
7463         * tree.h: Fix truncated long macros.
7464
7465 2010-04-27  Kai Tietz  <kai.tietz@onevision.com>
7466
7467         * collect2.c (TARGET_64BIT): Redefine to target's default.
7468         * tlink.c: Likewise.
7469         * config/i386/cygming.h (USER_LABEL_PREFIX): Define
7470         dependent to TARGET_64BIT and USE_MINGW64_LEADING_UNDERSCORES.
7471         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): Use
7472         for underscoring __USER_LABEL_PREFIX__.
7473         * config/i386/mingw-w64.h (SUB_LINK_ENTRY): New macro.
7474         (SUB_LINK_ENTRY32): New.
7475         (SUB_LINK_ENTRY64): New.
7476         (LINK_SPEC): Replace entry point spec by SUB_LINK_ENTRY.
7477         * config/i386/mingw32 (SUB_LINK_ENTRY32): New.
7478         (SUB_LINK_ENTRY64): New.
7479         (SUB_LINK_ENTRY): New.
7480         (LINK_SPEC): Use SUB_LINK_ENTRY instead of hard-coded entry-point.
7481         (DWARF2_UNWIND_INFO): Error out for use of dw2 unwind when
7482         x64 target is choosen.
7483         * config.in (USE_MINGW64_LEADING_UNDERSCORES): New.
7484         * configure: Regenerated.
7485         * configure.ac (leading-mingw64-underscores): Option added.
7486
7487 2010-04-27  Jan Hubicka  <jh@suse.cz>
7488
7489         * doc/invoke.texi (-fipa-profile): Document.
7490         * opts.c (decode_options): Enable ipa-profile at -O1.
7491         * timevar.def (TV_IPA_PROFILE): Define.
7492         * common.opt (fipa-profile): Add.
7493         * cgraph.c (cgraph_clone_node): Set local flag and clear vtable method
7494         flag for clones.
7495         (cgraph_propagate_frequency): Handle only local ones.
7496         * tree-pass.h (pass_ipa_profile): Declare.
7497         * ipa-profile.c (gate_profile): Use flag_ipa_profile.
7498         (pass_ipa_profile): Use TV_IPA_PROFILE.
7499         * ipa.c (ipa_profile): New function.
7500         (gate_ipa_profile): Likewise.
7501         (pass_ipa_profile): New global variable.
7502         * passes.c (pass_ipa_profile): New.
7503
7504 2010-04-27  Nathan Froyd  <froydnj@codesourcery.com>
7505
7506         * config/arm/arm.c (arm_expand_builtin): Remove redundant declaration.
7507
7508 2010-04-27  Martin Jambor  <mjambor@suse.cz>
7509
7510         PR middle-end/43812
7511         * ipa.c (dissolve_same_comdat_group_list): New function.
7512         (function_and_variable_visibility): Call
7513         dissolve_same_comdat_group_list when comdat group contains external or
7514         newly local nodes.
7515         * cgraphunit.c (verify_cgraph_node): Verify that same_comdat_group
7516         lists are circular and that they contain only DECL_ONE_ONLY nodes.
7517
7518 2010-04-27  Eric Botcazou  <ebotcazou@adacore.com>
7519
7520         * varasm.c (decode_addr_const): Handle special case of INDIRECT_REF.
7521         (const_hash_1) <VECTOR_CST>: New case.
7522         (compare_constant) <VECTOR_CST>: Likewise.
7523         <ADDR_EXPR>: Deal with LABEL_REFs.
7524         (copy_constant) <VECTOR_CST>: New case.
7525
7526 2010-04-27  Jan Hubicka  <jh@suse.cz>
7527
7528         * cgraph.c (cgraph_propagate_frequency): New function.
7529         * cgraph.h (cgraph_propagate_frequency): Declare.
7530         * ipa-inline.c (cgraph_clone_inlined_nodes): Call
7531         cgraph_propagate_frequency.
7532
7533 2010-04-27  Jakub Jelinek  <jakub@redhat.com>
7534
7535         * unwind-dw2.c (_Unwind_DebugHook): Add used and noclone attributes.
7536
7537 2010-04-27  Bernd Schmidt  <bernds@codesourcery.com>
7538
7539         PR target/40657
7540         * config/arm/arm.c (thumb1_extra_regs_pushed): New function.
7541         (thumb1_expand_prologue, thumb1_output_function_prologue): Call it
7542         here to determine which regs to push and how much stack to reserve.
7543
7544 2010-04-27  Jie Zhang  <jie@codesourcery.com>
7545
7546         * doc/gimple.texi (gimple_statement_with_ops): Remove
7547         addresses_taken field.
7548         (gimple_statement_with_memory_ops): Likewise.
7549
7550 2010-04-27  Jan Hubicka  <jh@suse.cz>
7551
7552         * tree-inline.c (eni_inlining_weights): Remove.
7553         (estimate_num_insns): Special case more builtins.
7554
7555 2010-04-27  Shujing Zhao  <pearly.zhao@oracle.com>
7556
7557         PR c/32207
7558         * c-typeck.c (build_binary_op): Move forward check for comparison
7559         pointer with null pointer constant and adjust the diagnostic message.
7560
7561 2010-04-27  Dave Korn  <dave.korn.cygwin@gmail.com>
7562
7563         PR lto/42776
7564         * configure.ac (gcc_cv_as_section_has_align): Set if installed
7565         binutils supports extended .section directive needed by LTO, or
7566         warn if older binutils found.
7567         (LTO_BINARY_READER): New AC_SUBST'd variable.
7568         (LTO_USE_LIBELF): Likewise.
7569         * gcc/config.gcc (lto_binary_reader): New target-specific configure
7570         variable.
7571         * gcc/Makefile.in (LTO_BINARY_READER): Import AC_SUBST'd autoconf var.
7572         (LTO_USE_LIBELF): Likewise.
7573         * configure: Regenerate.
7574
7575         * collect2.c (is_elf): Rename from this ...
7576         (is_elf_or_coff): ... to this, and recognize and allow i386 COFF
7577          object files in addition to ELF-formatted ones.
7578         (scan_prog_file): Caller updated.  Also allow for LTO info marker
7579         symbol to be prefixed or not by an extra underscore.
7580
7581         * config/i386/t-cygming (winnt.o): Also depend on LTO_STREAMER_H.
7582         * config/i386/winnt.c: Also #include lto-streamer.h
7583         (i386_pe_asm_named_section): Specify 1-byte section alignment for
7584         LTO named sections.
7585         (i386_pe_asm_output_aligned_decl_common): Add comment.
7586         (i386_pe_maybe_record_exported_symbol): Allow decl arg to be NULL.
7587
7588 2010-04-27  Hans-Peter Nilsson  <hp@bitrange.com>
7589
7590         PR target/43889
7591         * config/mmix/mmix.md ("*divdi3_nonknuth", "*moddi3_nonknuth"):
7592         Add missing earlyclobber for second alternative.
7593
7594 2010-04-26  Bernd Schmidt  <bernds@codesourcery.com>
7595
7596         * df-problems.c (df_simulate_initialize_forwards): Set, don't clear,
7597         bits for artificial defs at the top of the block.
7598         * fwprop.c (single_def_use_enter_block): Don't call it.
7599
7600 2010-04-26  Jack Howarth <howarth@bromo.med.uc.edu>
7601
7602         PR 43715
7603         * gcc/configure.ac: Use "$gcc_cv_nm -g" on darwin
7604         instead of "$gcc_cv_objdump -T".
7605         Use "-undefined dynamic_lookup" on darwin.
7606         * gcc/configure: Regenerate.
7607
7608 2010-04-26  Jakub Jelinek  <jakub@redhat.com>
7609
7610         PR c/43893
7611         * c-omp.c (c_finish_omp_for): Handle also EQ_EXPR.
7612
7613 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
7614
7615         * c-parser.c (struct c_token): Move location field up.
7616         * c-tree.h (struct c_typespec): Move expr_const_operands field up.
7617         (struct c_declspecs): Convert typespec_word, storage_class, and
7618         default_int_p into bitfields.
7619         (struct c_declarator): Move loc field up.
7620
7621 2010-04-26  Nathan Froyd  <froydnj@codesourcery.com>
7622
7623         * cfgloop.h (struct loop): Move can_be_parallel field up.
7624         * ipa-prop.h (struct ip_node_params): Move bitfields up.
7625         * tree-ssa-loop-ivopts.c (struct version_info): Move inv_id field
7626         down.
7627         (struct iv_cand): Convert pos field into a bitfield.
7628         * tree-vectorizer.h (struct _loop_vec_info): Move loop_line_number
7629         field up.
7630         (struct _stmt_vec_info): Shuffle fields for better packing.
7631
7632 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
7633
7634         * varasm.c (IN_NAMED_SECTION): Remove guard.
7635         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Rename to...
7636         (IN_NAMED_SECTION_P): ...this.
7637         (ASM_OUTPUT_ALIGNED_BSS): Adjust for above renaming.
7638         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
7639
7640 2010-04-26  Eric Botcazou  <ebotcazou@adacore.com>
7641
7642         * gimplify.c (gimplify_cond_expr): Use THEN_ and ELSE_ local variables.
7643         Use VOID_TYPE_P for all void type tests.  Adjust TYPE variable instead
7644         of shadowing it.  Fix comments.
7645
7646 2010-04-26  Jan Hubicka  <jh@suse.cz>
7647
7648         * cgraph.c (cgraph_create_node): Set node frequency to normal.
7649         (cgraph_clone_node): Copy function frequency.
7650         * cgraph.h (node_frequency): New enum
7651         (struct cgraph_node): Add.
7652         * final.c (rest_of_clean_state): Update.
7653         * lto-cgraph.c (lto_output_node): Output node frequency.
7654         (input_overwrite_node): Input node frequency.
7655         * tre-ssa-loop-ivopts (computation_cost): Update.
7656         * lto-streamer-out.c (output_function): Do not output function
7657         frequency.
7658         * predict.c (maybe_hot_frequency_p): Update and handle functions
7659         executed once.
7660         (cgraph_maybe_hot_edge_p): Likewise; use cgraph frequency instead of
7661         attribute lookup.
7662         (probably_never_executed_bb_p, optimize_function_for_size_p): Update.
7663         (compute_function_frequency): Set noreturn functions to be executed
7664         once.
7665         (choose_function_section): Update.
7666         * lto-streamer-in.c (input_function): Do not input function frequency.
7667         * function.c (allocate_struct_function): Do not initialize function
7668         frequency.
7669         * function.h (function_frequency): Remove.
7670         (struct function): Remove function frequency.
7671         * ipa-profile.c (CGRAPH_NODE_FREQUENCY): Remove.
7672         (try_update): Update.
7673         * tree-inline.c (initialize_cfun): Do not update function frequency.
7674         * passes.c (pass_init_dump_file): Update.
7675         * i386.c (ix86_compute_frame_layout): Update.
7676         (ix86_pad_returns): Update.
7677
7678 2010-04-26  Jie Zhang  <jie@codesourcery.com>
7679
7680         PR tree-optimization/43833
7681         * tree-vrp.c (range_int_cst_p): New.
7682         (range_int_cst_singleton_p): New.
7683         (extract_range_from_binary_expr): Optimize BIT_AND_EXPR case
7684         when both operands are constants.  Use range_int_cst_p in
7685         BIT_IOR_EXPR case.
7686
7687 2010-04-26  Jan Hubicka  <jh@suse.cz>
7688
7689         * cgraphunit.c (cgraph_copy_node_for_versioning): Fix profile updating.
7690
7691 2010-04-26  Richard Guenther  <rguenther@suse.de>
7692
7693         PR lto/43080
7694         * gimple.c (gimple_decl_printable_name): Deal gracefully
7695         with a NULL DECL_NAME.
7696
7697 2010-04-26  Richard Guenther  <rguenther@suse.de>
7698
7699         PR lto/42425
7700         * tree.c (free_lang_data_in_type): Do not free TYPE_CONTEXT
7701         if emitting debug information and it is either a function
7702         or a namespace decl.
7703
7704 2010-04-26  Ira Rosen  <irar@il.ibm.com>
7705
7706         * tree-vectorizer.h (struct _stmt_vec_info): Add new field to
7707         determine if the statement is vectorizable, and a macro to access it.
7708         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
7709         Skip statements that can't be vectorized. If the analysis fails,
7710         mark the statement as unvectorizable if vectorizing basic block.
7711         (vect_compute_data_refs_alignment): Likewise.
7712         (vect_verify_datarefs_alignment): Skip statements marked as
7713         unvectorizable. Add print.
7714         (vect_analyze_group_access): Skip statements that can't be
7715         vectorized. If the analysis fails, mark the statement as
7716         unvectorizable if vectorizing basic block.
7717         (vect_analyze_data_ref_accesses, vect_analyze_data_refs): Likewise.
7718         * tree-vect-stmts.c (vectorizable_store): Fix the number of
7719         generated stmts for SLP.
7720         (new_stmt_vec_info): Initialize the new field.
7721         * tree-vect-slp.c (vect_build_slp_tree): Fail to vectorize
7722         statements marked as unvectorizable.
7723
7724 2010-04-25  Joseph Myers  <joseph@codesourcery.com>
7725
7726         * c-common.c (flag_isoc1x): New.
7727         (flag_isoc99): Update comment.
7728         * c-common.h (flag_isoc1x): New.
7729         (flag_isoc99): Update comment.
7730         * c-cppbuiltin.c (builtin_define_float_constants): Also define
7731         __<type>_DECIMAL_DIG__.
7732         * c-opts.c (set_std_c1x): New.
7733         (c_common_handle_option): Handle -std=c1x and -std=gnu1x.
7734         (set_std_c89, set_std_c99): Also set flag_isoc1x to 0.
7735         * c.opt (-std=c1x, -std=gnu1x): New options.
7736         * doc/cpp.texi: Mention -std=c1x.
7737         * doc/cppopts.texi (-std=c1x, -std=gnu1x): Document.
7738         * doc/extend.texi: Mention -std=c1x and -std=gnu1x.
7739         * doc/invoke.texi (-std=c1x, -std=gnu1x): Document.
7740         * doc/standards.texi: Mention C1X.
7741         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG,
7742         LDBL_DECIMAL_DIG, FLT_HAS_SUBNORM, DBL_HAS_SUBNORM,
7743         LDBL_HAS_SUBNORM, FLT_TRUE_MIN, DBL_TRUE_MIN, LDBL_TRUE_MIN):
7744         Define for C1X.
7745
7746 2010-04-25  Uros Bizjak  <ubizjak@gmail.com>
7747
7748         * config/i386/gmon-sol2.c (_mcleanup): Change format string
7749         placeholder from 0x%x to %#x.
7750         * config/i386/i386elf.h (ASM_OUTPUT_ASCII): Ditto.
7751         * config/i386/i386-interix.h (ASM_OUTPUT_ASCII): Ditto.
7752         * config/i386/att.h (ASM_OUTPUT_ASCII): Ditto.
7753         * config/i386/sysv4.h (ASM_OUTPUT_ASCII): Ditto.
7754         * config/i386/i386.c (ix86_target_string): Ditto.
7755         (output_pic_addr_const): Ditto.
7756         (print_operand): Ditto.
7757
7758 2010-04-25  Paolo Bonzini  <bonzini@gnu.org>
7759
7760         * combine.c (find_split_point): Add third argument.  Use it
7761         to find nested multiply-accumulate instructions.  Adjust calls.
7762         (try_combine): Adjust call to find_split_point.
7763
7764 2010-04-24  Gerald Pfeifer  <gerald@pfeifer.com>
7765
7766         * doc/contrib.texi (Contributors): Add Dodji Seketeli.
7767
7768 2010-04-24  Bernd Schmidt  <bernds@codesourcery.com>
7769
7770         PR tree-optimization/41442
7771         * fold-const.c (merge_truthop_with_opposite_arm): New function.
7772         (fold_binary_loc): Call it.
7773
7774 2010-04-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7775
7776         * toplev.c (general_init): Set default for fdiagnostics-show-option.
7777         * opts.c (common_handle_option): Allow disabling it.
7778         * common.opt (fdiagnostics-show-option): Add Var. Enabled by default.
7779
7780 2010-04-23  Eric Botcazou  <ebotcazou@adacore.com>
7781
7782         * expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Only use conversion
7783         between modes if both types are integral.
7784
7785 2010-04-23  Richard Guenther  <rguenther@suse.de>
7786
7787         PR tree-optimization/43572
7788         * tree-tailcall.c (find_tail_calls): Allow PARM_DECL uses.
7789
7790 2010-04-23  Richard Guenther  <rguenther@suse.de>
7791
7792         PR lto/43455
7793         * tree-inline.c (tree_can_inline_p): Also check compatibility
7794         of return types.
7795
7796 2010-04-23  Martin Jambor  <mjambor@suse.cz>
7797
7798         PR tree-optimization/43846
7799         * tree-sra.c (struct access): New flag grp_assignment_read.
7800         (build_accesses_from_assign): Set grp_assignment_read.
7801         (sort_and_splice_var_accesses): Propagate grp_assignment_read.
7802         (enum mark_read_status): New type.
7803         (analyze_access_subtree): Propagate grp_assignment_read, create
7804         accesses also if both direct_read and root->grp_assignment_read.
7805
7806 2010-04-23  Martin Jambor  <mjambor@suse.cz>
7807
7808         PR middle-end/43835
7809         * tree-sra.c (ipa_sra_preliminary_function_checks): Check that the
7810         function does not have type attributes.
7811
7812 2010-04-23  Richard Guenther  <rguenther@suse.de>
7813
7814         PR lto/42653
7815         * tree.c (free_lang_data_in_decl): Do not reset DECL_CONTEXT
7816         of FUNCTION_DECLs.
7817
7818 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7819
7820         * sese.h (create_if_region_on_edge): Remove.
7821
7822         * sese.c (create_if_region_on_edge): Make static.
7823
7824         * tree-inline.c: Do not include ggc.h.
7825
7826         * expr.c: Do not include ggc.h.
7827
7828         * Makefile.in (tree-inline.o, expr.o): Remove $(GGC_H) from
7829         dependencies.
7830
7831 2010-04-22  Kaz Kojima  <kkojima@gcc.gnu.org>
7832
7833         PR target/43744
7834         * config/sh/sh.c (find_barrier): Don't emit a constant pool
7835         in the middle of insns for casesi_worker_2.
7836
7837 2010-04-22  David Edelsohn  <edelsohn@gnu.org>
7838
7839         * config/rs6000/x-aix: Override LDFLAGS for all COMPILERS.
7840
7841 2010-04-22  Ira Rosen  <irar@il.ibm.com>
7842
7843         PR tree-optimization/43842
7844         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
7845         loop unrolling in update of exit phis. Fix comment.
7846         * tree-vect-slp.c (vect_analyze_slp): Check that there are at
7847         least two reduction statements in the loop before starting SLP
7848         analysis.
7849
7850 2010-04-22  Nick Clifton  <nickc@redhat.com>
7851
7852         * config/stormy16/stormy16-lib2.c (__ucmpsi2): Fix thinko.
7853
7854 2010-04-22  Alexander Monakov  <amonakov@ispras.ru>
7855
7856         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Handle BIT_NOT_EXPR
7857         to simplify a + ~a.
7858
7859 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7860
7861         * tree-parloops.c (loop_parallel_p): New argument
7862         parloop_obstack.  Pass it down.
7863         (parallelize_loops): New variable parloop_obstack.  Initialize it,
7864         pass it down, free it.
7865
7866         * tree-loop-linear.c (linear_transform_loops): Pass down
7867         lambda_obstack.
7868
7869         * tree-data-ref.h (lambda_compute_access_matrices): New argument
7870         of type struct obstack *.
7871
7872         * tree-data-ref.c (analyze_subscript_affine_affine): New variable
7873         scratch_obstack.  Initialize it, pass down, free it.
7874
7875         * lambda.h (lambda_loop_new): Remove.
7876         (lambda_matrix_new, lambda_matrix_inverse)
7877         (lambda_trans_matrix_new, lambda_trans_matrix_inverse): New
7878         argument of type struct obstack *.
7879
7880         * lambda-trans.c (lambda_trans_matrix_new): New argument
7881         lambda_obstack.  Pass it down, use obstack allocation for ret.
7882         (lambda_trans_matrix_inverse): New argument lambda_obstack.  Pass
7883         it down.
7884
7885         * lambda-mat.c (lambda_matrix_get_column)
7886         (lambda_matrix_project_to_null): Remove.
7887         (lambda_matrix_new): New argument lambda_obstack.  Use obstack
7888         allocation for mat.
7889         (lambda_matrix_inverse_hard, lambda_matrix_inverse): New argument
7890         lambda_obstack.
7891
7892         * lambda-code.c (lambda_loop_new): New function.
7893         (lambda_lattice_new, compute_nest_using_fourier_motzkin)
7894         (lambda_compute_auxillary_space, lambda_compute_target_space)
7895         (lambda_loopnest_transform, gcc_loop_to_lambda_loop)
7896         (lambda_loopnest_to_gcc_loopnest): Pass down lambda_obstack.
7897         (build_access_matrix): New argument lambda_obstack.  Use obstack
7898         allocation for am.
7899         (lambda_compute_step_signs, lambda_compute_access_matrices): New
7900         argument lambda_obstack.  Pass it down.
7901
7902 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
7903
7904         * optabs.h (expand_widening_mult): Declare.
7905
7906 2010-04-22  Richard Guenther  <rguenther@suse.de>
7907
7908         PR tree-optimization/43845
7909         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Properly
7910         lookup the CALL_EXPR function and arguments.
7911
7912 2010-04-22  Nick Clifton  <nickc@redhat.com>
7913
7914         * config/stormy16/stormy16.c
7915         (xstormy16_asm_output_aligned_common): Handle a NULL decl parameter.
7916         * config/stormy16/stormy16.h: Tidy up formatting.
7917         (DONT_USE_BUILTIN_SETJMP): Remove definition.
7918         * config/stormy16/stormy16.c (cbranchsi4): Delete pattern.
7919         (ineqbranchsi): Delete pattern.
7920         * config/stormy16/stormy16-lib2-ucmpsi2.c: New file.
7921         * config/stormy16/stormy16-lib2.c (__ucmpsi2): New function.
7922         * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
7923         stormy16-lib2-ucmpsi2.c.
7924
7925 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
7926
7927         * ifcvt.c (dead_or_predicable): Use df_simulate_find_defs and
7928         df_simulate_find_noclobber_defs as appropriate.  Keep track of an
7929         extra set merge_set_noclobber, and use it to relax the final test
7930         slightly.
7931         * df.h (df_simulate_find_noclobber_defs): Declare.
7932         * df-problems.c (df_simulate_find_defs): Don't ignore partial or
7933         conditional defs.
7934         (df_simulate_find_noclobber_defs): New function.
7935
7936 2010-04-22  Uros Bizjak  <ubizjak@gmail.com>
7937
7938         * config/i386/i386.md: Use {} around multi-line preparation statements.
7939
7940 2010-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
7941
7942         * c-tree.h (push_init_level, pop_init_level, set_init_index)
7943         (process_init_element): New argument of type struct obstack *.
7944
7945         * c-typeck.c (push_init_level, pop_init_level, set_designator)
7946         (set_init_index, set_init_label, set_nonincremental_init)
7947         (set_nonincremental_init_from_string, find_init_member)
7948         (output_init_element, output_pending_init_elements)
7949         (process_init_element): New argument braced_init_obstack.  Pass it
7950         down.
7951         (push_range_stack, add_pending_init): New argument
7952         braced_init_obstack.  Use obstack allocation.
7953
7954         * c-parser.c (c_parser_initelt, c_parser_initval): New argument
7955         braced_init_obstack.  Pass it down.
7956         (c_parser_braced_init): New variables ret, braced_init_obstack.
7957         Initialize obstack, pass it down and finally free it.
7958
7959 2010-04-22  Bernd Schmidt  <bernds@codesourcery.com>
7960
7961         PR middle-end/29274
7962         * tree-pass.h (pass_optimize_widening_mul): Declare.
7963         * tree-ssa-math-opts.c (execute_optimize_widening_mul,
7964         gate_optimize_widening_mul): New static functions.
7965         (pass_optimize_widening_mul): New.
7966         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: New case.
7967         <case MULT_EXPR>: Remove support for widening multiplies.
7968         * tree.def (WIDEN_MULT_EXPR): Tweak comment.
7969         * cfgexpand.c (expand_debug_expr) <case WIDEN_MULT_EXPR>: Use
7970         simplify_gen_unary rather than directly building extensions.
7971         * tree-cfg.c (verify_gimple_assign_binary): Add tests for
7972         WIDEN_MULT_EXPR.
7973         * expmed.c (expand_widening_mult): New function.
7974         * passes.c (init_optimization_passes): Add pass_optimize_widening_mul.
7975
7976 2010-04-21  Jan Hubicka  <jh@suse.cz>
7977
7978         * timevar.def (TV_WHOPR_WPA_FIXUP): Remove.
7979         * lto-section-in.c (lto_section_name): Remove wpa_fixup.
7980         * lto-wpa-fixup.c: Remove.
7981         * Makefile.in (lto-wpa-fixup.o): Remove.
7982         * passes.c (init_optimization_passes): Remove pass_ipa_lto_wpa_fixup.
7983         (execute_all_ipa_transforms): Set cgraph_state to CGRAPH_STATE_IPA_SSA.
7984         * lto-streamer.c (lto_get_section_name): Remove wpa_fixup section.
7985
7986 2010-04-21  Jan Hubicka  <jh@suse.cz>
7987
7988         * tree-pass.h (ipa_opt_pass_d): Rename function_read_summary;
7989         add write_optimization_summary, read_optimization_summary.
7990         (ipa_write_summaries_of_cgraph_node_set): Remove.
7991         (ipa_write_optimization_summaries): Declare.
7992         (ipa_read_optimization_summaries): Declare.
7993         * ipa-cp.c (pass_ipa_cp): Update.
7994         * ipa-reference.c (pass_ipa_reference): Update.
7995         * ipa-pure-const.c (pass_ipa_pure_const): Update.
7996         * lto-streamer-out.c (pass_ipa_lto_gimple, pass_ipa_lto_finish):
7997         Update.
7998         * ipa-inline.c (pass_ipa_inline): Update.
7999         * ipa.c (pass_ipa_whole_program): Update.
8000         * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Update.
8001         * passes.c (ipa_write_summaries_1): Do not test wpa.
8002         (ipa_write_optimization_summaries_1): New.
8003         (ipa_write_optimization_summaries): New.
8004         (ipa_read_summaries): Do not test ltrans.
8005         (ipa_read_optimization_summaries_1): New.
8006         (ipa_read_optimization_summaries): New.
8007
8008 2010-04-21  Jan Hubicka  <jh@suse.cz>
8009
8010         * lto-cgraph.c (lto_output_node): Do not output comdat groups
8011         for boundary nodes.
8012         (output_cgraph): Do not arrange comdat groups for boundary nodes.
8013
8014 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
8015
8016         PR debug/40040
8017         * dwarf2out.c (add_name_and_src_coords_attributes): Add
8018         DW_AT_{,MIPS_}linkage_name even for Fortran decls.
8019
8020 2010-04-21  Jan Hubicka  <jh@suse.cz>
8021
8022         * ipa-prop.c (ipa_edge_removal_hook): Check for bounds.
8023
8024 2010-04-21  Jan Hubicka  <jh@suse.cz>
8025
8026         * varpool.c (decide_is_variable_needed): Variable is always needed
8027         during ltrans.
8028
8029 2010-04-21  Jan Hubicka  <jh@suse.cz>
8030
8031         * opts.c (decode_options): Enable pure-const pass for whopr.
8032
8033 2010-04-21  Jan Hubicka  <jh@suse.cz>
8034
8035         * cgraph.c (dump_cgraph_node): Dump also assembler name.
8036         * ipa-inline.c (cgraph_decide_inlining_of_small_functions): Do not ice
8037         at WPA dumping.
8038         (cgraph_decide_inlining): Do not expect callee to be removed in all
8039         cases.
8040
8041 2010-04-21  Eric B. Weddington  <eric.weddington@atmel.com>
8042
8043         * config/avr/avr-devices.c (avr_mcu_types): Add missing comma.
8044
8045 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
8046
8047         * config/i386/i386.md (x86_shrd): Add athlon_decode and
8048         amdfam10_decode attributes.
8049
8050 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
8051
8052         PR middle-end/43570
8053         * omp-low.c (scan_sharing_clauses): Don't scan_omp_op
8054         OMP_CLAUSE_DECL for OMP_CLAUSE_COPYPRIVATE.
8055         (lower_copyprivate_clauses): Use private var in outer
8056         context instead of original var.  Make sure the types
8057         are correct for VLAs.
8058
8059 2010-04-21  Richard Guenther  <rguenther@suse.de>
8060
8061         * tree-ssa-structalias.c (do_ds_constraint): Avoid escaping
8062         to non-pointer objects.
8063
8064 2010-04-21  Jakub Jelinek  <jakub@redhat.com>
8065
8066         * dwarf2out.c (add_var_loc_to_decl): Add LABEL argument.  Drop
8067         last chain entry if it starts with the still current label.
8068         (add_location_or_const_value_attribute): Check that
8069         loc_list->first->next is NULL instead of comparing ->first with ->last.
8070         (dwarf2out_var_location): Pass last_label resp. last_postcall_label
8071         to add_var_loc_to_decl.
8072
8073         * dwarf2out.c (output_call_frame_info): For dw_cie_version
8074         >= 4 add also address size and segment size fields into CIE header.
8075
8076         * unwind-dw2.c (extract_cie_info): Handle CIE version 4, as
8077         long as address size is the same as sizeof (void *) and
8078         segment size is 0.
8079         * unwind-dw2-fde.c (get_cie_encoding): Likewise.  If
8080         address size or segment size is unexpected, return DW_EH_PE_omit.
8081         (classify_object_over_fdes): If get_cie_encoding returned
8082         DW_EH_PE_omit, return -1.
8083         (init_object): If classify_object_over_fdes returned -1,
8084         pretend there were no FDEs at all.
8085
8086 2010-04-21  Uros Bizjak  <ubizjak@gmail.com>
8087
8088         * config/i386/i386.md (bswap<mode>2): Macroize expander from
8089         bswap{si,di}2 using SWI48 mode iterator.
8090         (*bswap<mode>2_movbe): Macroize insn from *bswap{si,di}_movbe using
8091         SWI48 mode iterator.  Set type attribute of bswap insn to bitmanip,
8092         set modrm attribute of bswap insn to 0 and remove length attribute.
8093         (*bswap<mode>2_1): Macroize insn from *bswap{si,di}_1 using SWI48 mode
8094         iterator.  Set type attribute to bitmanip, set modrm attribute to 0,
8095         set mode attribute to <MODE> and remove length attribute.
8096
8097 2010-04-20  James E. Wilson  <wilson@codesourcery.com>
8098
8099         PR rtl-optimization/43520
8100         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Exclude classes with
8101         zero available registers.
8102
8103 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8104
8105         * builtins.c (fold_builtin_cproj): Fold more cases.
8106
8107 2010-04-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8108
8109         * builtins.c (build_complex_cproj, fold_builtin_cproj): New.
8110         (fold_builtin_1): Fold builtin cproj.
8111         * builtins.def (BUILT_IN_CPROJ, BUILT_IN_CPROJF, BUILT_IN_CPROJL):
8112         Use ATTR_CONST_NOTHROW_LIST.
8113
8114 2010-04-20  Uros Bizjak  <ubizjak@gmail.com>
8115
8116         * config/i386/i386.md (ffs<mode>2): Macroize expander from ffs_cmove
8117         and ffsdi2 using SWI48 mode iterator.  Expand SImode insn through
8118         ffsi2_no_cmove for !TARGET_CMOVE.
8119         (ffssi2_no_cmove): Rename from *ffs_no_cmove.  Make public.
8120         (ffssi2): Remove expander.
8121         (*ffs<mode>_1): Macroize insn from *ffs{si,di} using SWI48
8122         mode iterator.
8123         (ctz<mode>2): Ditto from ctz{si,di}2.
8124         (clz<mode>2): Macroize expander from ctz{hi,si,di}2 using SWI248
8125         mode iterator.
8126         (clz<mode>2_abm): Macroize insn from clz{hi,si,di}2_abm using SWI248
8127         mode iterator.
8128
8129 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
8130
8131         * dwarf2out.c (AT_linkage_name): Define.
8132         (clone_as_declaration): Handle DW_AT_linkage_name.
8133         (add_name_and_src_coords_attributes): Use AT_linkage_name instead
8134         of DW_AT_MIPS_linkage_name.
8135         (move_linkage_attr): Likewise.
8136         (dwarf2out_finish): Likewise.
8137
8138 2010-04-20  Xinliang David Li  <davidxl@gcc.gnu.org>
8139
8140         PR middle-end/41952
8141         * fold-const.c (fold_comparison): New folding rule.
8142
8143 2010-04-20  Anatoly Sokolov  <aesok@post.ru>
8144
8145         * double-int.h (double_int_setbit): Declare.
8146         * double-int.c (double_int_setbit): New function.
8147         * rtl.h (immed_double_int_const): Declare.
8148         * emit-rtl.c (immed_double_int_const): New function.
8149         * builtins.c (expand_builtin_signbit): Clean up, use double_int_*
8150         and immed_double_int_const functions.
8151         * optabs.c (expand_absneg_bit, expand_copysign_absneg,
8152         expand_copysign_bit):  (Ditto.).
8153         * simplify-rtx.c (simplify_binary_operation_1): (Ditto.).
8154         * tree-ssa-address.c (addr_for_mem_ref): (Ditto.).
8155         * dojump.c (prefer_and_bit_test): (Ditto.).
8156         * expr.c (convert_modes, reduce_to_bit_field_precision,
8157         const_vector_from_tree): (Ditto.).
8158         * expmed.c (mask_rtx, lshift_value): (Ditto.).
8159
8160 2010-04-20  Jan Hubicka  <jh@suse.cz>
8161
8162         * cgraph.c (cgraph_remove_node): Kill bodies in other partitoin.
8163         (dump_cgraph_node): Dump new flags.
8164         * cgraph.h (struct cgraph_node): Add flags
8165         reachable_from_other_partition and in_other_partition.
8166         (cgraph_can_remove_if_no_direct_calls_p): Functions used by
8167         other partition can not be removed.
8168         * cgraphunit.c (cgraph_mark_functions_to_output): Functions used by
8169         the other partition must be output; silence sanity checking on
8170         leaking functions bodies from other paritition.
8171         * lto-cgraph.c (reachable_from_other_partition_p): New function.
8172         (lto_output_node): Output new flags; do not sanity check that inline
8173         clones are output; drop lto_forced_extern_inline_p code; do not mock
8174         visibility flags at partition boundaries.
8175         (add_node_to): New function.
8176         (output_cgraph): Use it to sort functions so masters appear before
8177         clones.
8178         (input_overwrite_node): Input new flags.
8179         * passes.c (ipa_write_summaries): Do not call
8180         lto_new_extern_inline_states.
8181         * lto-section-out.c (forced_extern_inline,
8182         lto_new_extern_inline_states lto_delete_extern_inline_states,
8183         lto_force_functions_extern_inline, lto_forced_extern_inline_p): Kill.
8184         * lto-streamer.h (lto_new_extern_inline_states,
8185         * lto_delete_extern_inline_states, lto_force_functions_extern_inline,
8186         lto_forced_extern_inline_p): Kill.
8187
8188 2010-04-20  Richard Guenther  <rguenther@suse.de>
8189
8190         * tree-ssa-structalias.c (do_sd_constraint): Add edges only
8191         from vars that can have pointers.
8192         (process_constraint): Dump useless constraints.
8193
8194 2010-04-20  Richard Guenther  <rguenther@suse.de>
8195
8196         * tree-ssa-structalias.c (do_structure_copy): Properly handle DEREF.
8197         (dump_sa_points_to_info): Remove asserts.
8198         (init_base_vars): nothing_id isn't an escape point nor does it
8199         have pointers.
8200
8201 2010-04-20  Jakub Jelinek  <jakub@redhat.com>
8202
8203         * tree.h (TYPE_REF_IS_RVALUE): Define.
8204         * dwarf2out.c (attr_checksum_ordered, is_type_die, is_comdat_die,
8205         should_move_die_to_comdat, prune_unused_types_walk): Handle
8206         DW_TAG_rvalue_reference_type like DW_TAG_reference_type.
8207         (modified_type_die, gen_reference_type_die): Emit
8208         DW_TAG_rvalue_reference_type instead of DW_TAG_reference_type
8209         if TYPE_REF_IS_RVALUE and -gdwarf-4.
8210
8211 2010-04-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8212
8213         PR target/43635
8214         * config/s390/s390.c (s390_emit_call): Turn direct into indirect
8215         calls for -fpic -m31 if they have been sibcall optimized.
8216
8217 2010-04-19  James E. Wilson  <wilson@codesourcery.com>
8218
8219         * config/ia64/ia64.h (FIXED_REGISTERS, CALL_USED_REGISTERS): Make
8220         ar.lc fixed and call-used.
8221
8222         * config/ia64/ia64.c (TARGET_INVALID_WITHIN_DOLOOP): Define.
8223
8224 2010-04-19  Jan Hubicka  <jh@suse.cz>
8225
8226         * opts.c (decode_options): Disable whpr incompatible passes.
8227         * lto/lto.c (lto_1_to_1_map): Skip clones.
8228         (read_cgraph_and_symbols): Do not mark everything as needed.
8229         (do_whole_program_analysis): Do map only after optimizing;
8230         set proper cgraph_state; use passmanager.
8231
8232 2010-04-19  DJ Delorie  <dj@redhat.com>
8233
8234         * cfgexpand.c (expand_debug_expr): Check for mismatched modes in
8235         POINTER_PLUS_EXPR and fix them.
8236
8237 2010-04-19  Eric B. Weddington  <eric.weddington@atmel.com>
8238
8239         * config/avr/avr-devices.c (avr_mcu_types): Add support for new
8240         devices atmega644pa, attiny2313a, attiny24a, attiny261a, attiny4313,
8241         attiny44a, attiny861a, atmega16a, atmega168a, atmega164a, atmega165a,
8242         atmega169a, atmega169pa, atmega16hva2, atmega324a, atmega324pa,
8243         atmega325a, atmega3250a, atmega328, atmega329a, atmega329pa,
8244         atmega3290a, atmega48a, atmega644a, atmega645a, atmega645p,
8245         atmega6450a, atmega6450p, atmega649a, atmega649p, atmega6490a,
8246         atmega6490p, atmega64hve, atmega88a, atmega88pa, attiny461a, attiny84a,
8247         m3000. Remove support for devices atmega8m1, atmega8c1, atmega16c1,
8248         atmega4hvd, atmega8hvd, attiny327, m3000f, m3000s, m3001b.
8249         * config/avr/t-avr.c (MULTILIB_MATCHES): Same.
8250
8251 2010-04-19  Eric Botcazou  <ebotcazou@adacore.com>
8252
8253         * ifcvt.c (noce_try_cmove_arith): Fix long lines.
8254         (check_cond_move_block): Likewise.
8255         (cond_move_process_if_block): Likewise.
8256         (noce_find_if_block): Improve formatting.
8257         (find_if_header): Pass 0 to memset and tweak conditions.
8258         (cond_exec_find_if_block): Fix long lines and tweak conditions.
8259
8260 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
8261
8262         * dwarf2out.c (lower_bound_default): For DW_LANG_Python return 0
8263         for -gdwarf-4.
8264
8265         PR middle-end/43337
8266         * tree-nested.c (convert_nonlocal_omp_clauses): OMP_CLAUSE_PRIVATE
8267         with non-local decl doesn't need chain.
8268
8269 2010-04-19  Vladimir Makarov  <vmakarov@redhat.com>
8270
8271         * ira-color.c (allocno_reload_assign): Avoid accumulating
8272         reload registers in ALLOCNO_TOTAL_CONFLICT_HARD_REGS.
8273
8274 2010-04-19  Martin Jambor  <mjambor@suse.cz>
8275
8276         * gimple.h (create_tmp_reg): Declare.
8277         * gimplify.c (create_tmp_reg): New function.
8278         (gimplify_return_expr): Use create_tmp_reg.
8279         (gimplify_omp_atomic): Likewise.
8280         (gimple_regimplify_operands): Likewise.
8281         * tree-dfa.c (make_rename_temp): Likewise.
8282         * tree-predcom.c (predcom_tmp_var): Likewise.
8283         (reassociate_to_the_same_stmt): Likewise.
8284         * tree-sra.c (replace_uses_with_default_def_ssa_name): Likewise.
8285         (get_replaced_param_substitute): Likewise.
8286         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
8287         * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
8288         * tree-ssa-pre.c (get_representative_for): Likewise.
8289         (create_expression_by_pieces): Likewise.
8290         * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
8291         (create_tailcall_accumulator): Likewise.
8292
8293 2010-04-19  Martin Jambor  <mjambor@suse.cz>
8294
8295         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update
8296         new_stmt.
8297         (cgraph_materialize_all_clones): Assert !need_ssa_update_p.
8298
8299 2010-04-19  Richard Guenther  <rguenther@suse.de>
8300
8301         PR tree-optimization/43796
8302         * tree-vrp.c (adjust_range_with_scev): Lookup init and step
8303         from SCEV in the lattice.
8304         (vrp_visit_phi_node): Dump change.
8305
8306 2010-04-19  Richard Guenther  <rguenther@suse.de>
8307
8308         * configure.ac: Fix quoting around elf_getshstrndx ABI check.
8309         * configure: Re-generated.
8310
8311 2010-04-19  Richard Guenther  <rguenther@suse.de>
8312
8313         PR tree-optimization/43783
8314         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Drop
8315         constant ARRAY_REF operands two and three if possible.
8316
8317 2010-04-19  Uros Bizjak  <ubizjak@gmail.com>
8318
8319         PR target/43766
8320         * config/i386/i386.c (ix86_decompose_address): Handle ASHIFT addends.
8321
8322 2010-04-19  Jie Zhang  <jie@codesourcery.com>
8323
8324         PR target/43662
8325         * reginfo.c (reinit_regs): Set caller_save_initialized_p to false.
8326
8327 2010-04-19  Ira Rosen  <irar@il.ibm.com>
8328
8329         PR tree-optimization/37027
8330         * tree-vectorizer.h (struct _loop_vec_info): Add new field reductions
8331         and macro to access it.
8332         (vectorizable_reduction): Add argument.
8333         (vect_get_slp_defs): Likewise.
8334         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Collect reduction
8335         statements for possible use in SLP.
8336         (new_loop_vec_info): Initialize LOOP_VINFO_REDUCTIONS.
8337         (destroy_loop_vec_info): Free LOOP_VINFO_REDUCTIONS.
8338         (vect_create_epilog_for_reduction): Handle SLP. Modify documentation,
8339         add new argument.
8340         (vectorizable_reduction): Likewise.
8341         * tree-vect-stmts.c (vect_get_vec_defs): Update call to
8342         vect_get_slp_defs.
8343         (vectorizable_type_demotion, vectorizable_type_promotion,
8344         vectorizable_store): Likewise.
8345         (vect_analyze_stmt): Update call to vectorizable_reduction.
8346         (vect_transform_stmt): Likewise.
8347         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle reduction.
8348         (vect_build_slp_tree): Fix indentation. Check that there are no loads
8349         from different interleaving chains in same node.
8350         (vect_slp_rearrange_stmts): New function.
8351         (vect_supported_load_permutation_p): Allow load permutations for
8352         reductions. Call vect_slp_rearrange_stmts() to rearrange statements
8353         inside SLP nodes if necessary.
8354         (vect_analyze_slp_instance): Handle reductions.
8355         (vect_analyze_slp): Try to build SLP instances originating from groups
8356         of reductions.
8357         (vect_detect_hybrid_slp_stmts): Skip reduction statements.
8358         (vect_get_constant_vectors): Create initial vectors for reductions
8359         according to reduction code. Add new argument.
8360         (vect_get_slp_defs): Add new argument, pass it to
8361         vect_get_constant_vectors.
8362         (vect_schedule_slp_instance): Remove SLP tree root statements.
8363
8364 2010-04-19  Jakub Jelinek  <jakub@redhat.com>
8365
8366         * tree.h (ENUM_IS_SCOPED): Define.
8367         * dwarf2out.c (gen_enumeration_type_die): Add DW_AT_enum_class
8368         for ENUM_IS_SCOPED enums.
8369
8370 2010-04-18  Eric Botcazou  <ebotcazou@adacore.com>
8371
8372         * fold-const.c (fold_comparison): Use ssizetype.
8373         * gimple-fold.c (maybe_fold_offset_to_array_ref): Likewise.
8374         * ipa-prop.c (ipa_modify_call_arguments): Use sizetype.
8375         * tree-loop-distribution.c (build_size_arg_loc): Likewise.
8376         * tree-object-size.c (compute_object_sizes): Use size_type_node.
8377
8378         * tree.h (initialize_sizetypes): Remove parameter.
8379         (build_common_tree_nodes): Remove second parameter.
8380         * stor-layout.c (initialize_sizetypes): Remove parameter.
8381         Always create an unsigned type.
8382         (set_sizetype): Assert that the passed type is unsigned and simplify.
8383         * tree.c (build_common_tree_nodes): Remove second parameter.
8384         Adjust call to initialize_sizetypes.
8385         * c-decl.c (c_init_decl_processing): Remove second argument in call to
8386         build_common_tree_nodes.
8387
8388 2010-04-18  Matthias Klose  <doko@ubuntu.com>
8389
8390         * gcc.c (main): Search for liblto_plugin.so with mode R_OK.
8391
8392 2010-04-18  Ira Rosen  <irar@il.ibm.com>
8393
8394         PR tree-optimization/43771
8395         * tree-vect-slp.c (vect_supported_load_permutation_p): Check that
8396         load permutation doesn't have gaps.
8397
8398 2010-04-18  Jan Hubicka  <jh@suse.cz>
8399
8400         * i386.md (UNSPEC_SSE_PROLOGUE_SAVE_LOW): New.
8401         (sse_prologue_save_insn expander): Use new pattern.
8402         (sse_prologue_save_insn1): New pattern and splitter.
8403         (sse_prologue_save_insn): Update to deal also with 64bit aligned
8404         blocks.
8405         * i386.c (setup_incoming_varargs_64): Do not compute jump
8406         destination here.
8407         (ix86_gimplify_va_arg): Update alignment needed.
8408         (ix86_local_alignment): Do not align all local arrays to 128bit.
8409
8410 2010-04-17  Jan Hubicka  <jh@suse.cz>
8411
8412         * ipa-inline.c (cgraph_early_inlining): Handle flattening too.
8413
8414 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
8415
8416         * arm.md (negdi2): Remove redundant code to force values into a
8417         register.
8418
8419 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
8420
8421         * arm/bpabi.S: Add EABI alignment attributes to objects.
8422         * arm/bpabi-v6m.S: Likewise.
8423         * arm/crti.asm: Likewise.
8424         * arm/crtn.asm: Likewise.
8425         * arm/lib1funcs.asm: Likewise.
8426         * arm/libunwind.S: Likewise.
8427
8428 2010-04-17  Richard Earnshaw  <rearnsha@arm.com>
8429
8430         * arm-protos.h (tune_params): New structure.
8431         * arm.c (current_tune): New variable.
8432         (arm_constant_limit): Delete.
8433         (struct processors): Add pointer to the tune parameters.
8434         (arm_slowmul_tune): New tuning option.
8435         (arm_fastmul_tune, arm_xscale_tune, arm_9e_tune): Likewise.
8436         (all_cores): Adjust to pick up the tuning model.
8437         (arm_constant_limit): New function.
8438         (arm_override_options): Select the appropriate tuning model.  Delete
8439         initialization of arm_const_limit.
8440         (arm_split_constant): Use the new constant-limit model.
8441         (arm_rtx_costs): Pick up the current tuning model.
8442         * arm.md (is_strongarm, is_xscale): Delete.
8443         * arm-generic.md (load_ldsched_x, load_ldsched): Test explicitly
8444         for Xscale variant architectures.
8445         (mult_ldsched_strongarm, mult_ldsched): Similarly for StrongARM.
8446
8447 2010-04-17  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8448
8449         * config/arm/arm.c (arm_gen_constant): Remove unused variable
8450         can_shift.
8451         (arm_rtx_costs_1): Remove unused variable extra_cost.
8452         (arm_unwind_emit_set): Use variable offset.
8453         (thumb1_output_casesi): Remove unused variable flags.
8454
8455 2010-04-16  Jeff Law  <law@redhat.com>
8456
8457         * ira-color.c (ira_reassign_pseudos): Collect and sort all the pseudos
8458         needing assignment rather than doing a two-phase assignment.  Remove
8459         unused variable 'm'.
8460
8461 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
8462
8463         PR bootstrap/43767
8464         * alias.c (memrefs_conflict_p): Don't crash if CSELIB_VAL_PTR is NULL.
8465
8466 2010-04-16  Doug Kwan  <dougkwan@google.com>
8467
8468         * tree-ssa-reassoc.c (struct operand_entry): Add new field ID.
8469         (next_operand_entry_id): New static variable.
8470         (sort_by_operand_rank): Stabilize qsort comparator by using unique IDs.
8471         (add_to_ops_vec): Assigned unique ID to operand entry.
8472         (struct oecount_s): New field ID.
8473         (oecount_cmp): Stabilize qsort comparotor by using unique IDs.
8474         (undistribute_ops_list): Assign unique IDs to oecounts.
8475         (init_reassoc): reset next_operand_entry_id.
8476
8477 2010-04-16  Doug Kwan  <dougkwan@google.com>
8478
8479         * config/i386/i386.md (*jcc_bt<mode>): Fix build breakage by adding
8480         missing left parenthesis.
8481
8482 2010-04-16  Uros Bizjak  <ubizjak@gmail.com>
8483
8484         * config/i386/i386.md (*bt<mode>): Macroize insn from *btsi and
8485         *btdi_rex64 using SWI48 mode iterator.
8486         (*jcc_bt<mode>): Ditto from *jcc_btsi and *jcc_btdi_rex64.
8487         (*jcc_bt<mode>_mask): Ditto from *jcc_btsi_mask and
8488         *jcc_btdi_mask_rex64.
8489
8490 2010-04-16  Anatoly Sokolov  <aesok@post.ru>
8491
8492         * double-int.h (tree_to_double_int): Convert to macro.
8493         * double-int.c (tree_to_double_int): Remove.
8494
8495 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
8496
8497         PR debug/43762
8498         * dwarf2out.c (add_bound_info): Always call loc_list_from_tree
8499         with want_address 2 and in case a single element list might be
8500         possible, call it again with want_address 0.
8501
8502 2010-04-12  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
8503
8504         * config/h8300/h8300.c (print_operand) : Modify case 'V' and
8505         case 'W' print operands for HI mode.
8506         * config/h8300/h8300.h (Y0, Y2) : New constraints.
8507         * config/h8300/h8300.md (bclrqi_msx, bclrhi_msx): New patterns
8508         (bsetqi_msx, bsethi_msx, bnotqi_msx, bnothi_msx): Likewise.
8509         * config/h8300/predicate.md (bit_register_indirect_operand): New.
8510
8511         * config/h8300/h8300.h (OK_FOR_U): Support 'U' constraint for H8300SX.
8512
8513         * config/h8300/h8300.md (movqi_h8sx, movhi_h8sx, movsi_h8sx,
8514         cmphi_h8300hs_znvc, cmpsi, addhi3_h8sx) : Emit instructions in
8515         #xx:3 and #xx:4 mode.
8516
8517         * config/h8300/h8300.md (inverted load with HImode dest): Add
8518         support for H8300SX.
8519
8520         * config/h8300/predicate.md (bit_operand): Allow immediate values that
8521         satisfy 'U' constraint.
8522
8523 2010-04-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8524
8525         * configure.ac: Check for elf_getshdrstrndx or elf_getshstrndx flavor.
8526         * configure: Regenerate.
8527         * config.in: Regenerate.
8528         * doc/install.texi (Prerequisites): Document that Solaris 2 libelf
8529         works.
8530
8531 2010-04-16  Richard Guenther  <rguenther@suse.de>
8532
8533         * tree.h (struct tree_decl_minimal): Move pt_uid ...
8534         (struct tree_decl_common): ... here.
8535         (DECL_PT_UID): Adjust.
8536         (SET_DECL_PT_UID): Likewise.
8537         (DECL_PT_UID_SET_P): Likewise.
8538
8539 2010-04-16  Richard Guenther  <rguenther@suse.de>
8540
8541         PR tree-optimization/43572
8542         * tree-ssa-alias.h (call_may_clobber_ref_p): Declare.
8543         * tree-ssa-alias.c (call_may_clobber_ref_p): Export.
8544         * tree-flow.h (is_call_clobbered): Remove.
8545         * tree-flow-inline.h (is_call_clobbered): Likewise.
8546         * tree-dfa.c (dump_variable): Do not dump call clobber state.
8547         * tree-nrv.c (dest_safe_for_nrv_p): Use the alias oracle.
8548         (execute_return_slot_opt): Adjust.
8549         * tree-tailcall.c (suitable_for_tail_opt_p): Remove
8550         check for call clobbered vars here.
8551         (find_tail_calls): Move tailcall verification to the
8552         proper place.
8553
8554 2010-04-16  Diego Novillo  <dnovillo@google.com>
8555
8556         * doc/invoke.texi: Explain how are unrecognized -Wno- warnings handled.
8557
8558 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
8559
8560         PR target/40603
8561         * config/arm/arm.md (cbranchqi4): New pattern.
8562         * config/arm/predicates.md (const0_operand,
8563         cbranchqi4_comparison_operator): New predicates.
8564
8565 2010-04-16  Richard Guenther  <rguenther@suse.de>
8566
8567         * gimple-pretty-print.c (dump_gimple_phi): Dump alias info.
8568         (dump_gimple_stmt): Likewise.
8569
8570 2010-04-16  Bernd Schmidt  <bernds@codesourcery.com>
8571
8572         * recog.h (struct recog_data): New field is_operator.
8573         (struct insn_operand_data): New field is_operator.
8574         * recog.c (extract_insn): Set recog_data.is_operator.
8575         * genoutput.c (output_operand_data): Emit code to set the
8576         is_operator field.
8577         * reload.c (find_reloads): Use it rather than testing for an
8578         empty constraint string.
8579
8580         PR target/41514
8581         * config/arm/arm.md (cbranchsi4_insn): Renamed from "*cbranchsi4_insn".
8582         If the previous insn is a cbranchsi4_insn with the same arguments,
8583         omit the compare instruction.
8584
8585         * config/arm/arm.md (addsi3_cbranch): If destination is a high
8586         register, inputs must be low registers and we need a low register
8587         scratch.  Handle alternative 2 like alternative 3.
8588
8589 2010-04-16  Jakub Jelinek  <jakub@redhat.com>
8590
8591         * alias.c (memrefs_conflict_p): If x and y are the same VALUE,
8592         don't call get_addr on both.  If one expression is a VALUE and
8593         the other a REG, check VALUE's locs if the REG isn't among them.
8594
8595 2010-04-16  Christian Bruel  <christian.bruel@st.com>
8596
8597         * config/sh/sh.h (sh_frame_pointer_required): New function.
8598         * config/sh/sh.h (TARGET_FRAME_POINTER_REQUIRED): New macro.
8599         (flag_omit_frame_pointer) Set.
8600         (MASK_ACCUMULATE_OUTGOING_ARGS) Define and Set.
8601         (rounded_frame_size): Adjust size with outgoing_args_size.
8602         (sh_set_return_address): Must return from stack pointer.
8603         * gcc/config/sh/sh.h (CAN_DEBUG_WITHOUT_FP): Define.
8604         (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
8605         (ACCUMULATE_OUTGOING_ARGS): Define.
8606         * doc/invoke.texi (maccumulate-outgoing-args): Document for SH.
8607         * gcc/config/sh/sh.opt (maccumulate-outgoing-args): New option.
8608
8609 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
8610
8611         PR target/43471
8612         * config/sh/sh.c (sh_legitimize_reload_address): Use
8613         MAYBE_BASE_REGISTER_RTX_P instead of BASE_REGISTER_RTX_P.
8614         Remove a unneeded check for offset_base.
8615
8616 2010-04-15  H.J. Lu  <hongjiu.lu@intel.com>
8617
8618         * configure: Regenerated.
8619
8620 2010-04-15  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
8621
8622         * config/s390/s390.c (s390_call_save_register_used): Switch back
8623         to HARD_REGNO_NREGS.
8624
8625 2010-04-15  Richard Guenther  <rguenther@suse.de>
8626
8627         * alias.c (alias_set_subset_of): Handle alias-set zero
8628         child properly.
8629
8630 2010-04-15  Mark Shinwell  <shinwell@codesourcery.com>
8631             Julian Brown  <julian@codesourcery.com>
8632
8633         * config/arm/thumb2.md (thumb2_movsi_insn): Split ldr and str
8634         alternatives according to use of high and low regs.
8635         * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
8636         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Use high regs when
8637         optimizing for size on Thumb-2.
8638
8639 2010-04-15  Thomas Schwinge  <tschwinge@gnu.org>
8640
8641         * config.gcc <i[34567]86-*-gnu*>: Handle softfp as for Linux.
8642
8643 2010-04-15  Richard Guenther  <rguenther@suse.de>
8644
8645         * tree-ssa-structalias.c (struct variable_info): Add
8646         is_fn_info flag.
8647         (new_var_info): Initialize it.
8648         (dump_constraints): Support printing last added constraints.
8649         (debug_constraints): Adjust.
8650         (dump_constraint_graph): Likewise.
8651         (make_heapvar_for): Check for NULL cfun.
8652         (get_function_part_constraint): New function.
8653         (get_fi_for_callee): Likewise.
8654         (find_func_aliases): Properly implement IPA PTA constraints.
8655         (process_ipa_clobber): New function.
8656         (find_func_clobbers): Likewise.
8657         (insert_into_field_list_sorted): Remove.
8658         (create_function_info_for): Properly allocate vars for IPA mode.
8659         Do not use insert_into_field_list_sorted.
8660         (create_variable_info_for): Properly generate constraints for
8661         global vars in IPA mode.
8662         (dump_solution_for_var): Always dump the solution.
8663         (set_uids_in_ptset): Initialize DECL_PT_UID if in ipa-mode.
8664         (find_what_var_points_to): Adjust.
8665         (pt_solution_set): Change.
8666         (pt_solution_ior_into): New function.
8667         (pt_solution_empty_p): Export.
8668         (pt_solution_includes_global): Adjust.
8669         (pt_solution_includes_1): Likewise.
8670         (pt_solutions_intersect_1): Likewise.
8671         (dump_sa_points_to_info): Check some invariants.
8672         (solve_constraints): Move constraint dumping ...
8673         (compute_points_to_sets): ... here.
8674         (ipa_pta_execute): ... and here.
8675         (compute_may_aliases): Do not re-compute points-to info
8676         locally if IPA info is available.
8677         (ipa_escaped_pt): New global var.
8678         (ipa_pta_execute): Properly implement IPA PTA.
8679         * tree-into-ssa.c (dump_decl_set): Support dumping
8680         decls not in referenced-vars.
8681         * tree-flow.h (struct gimple_df): Add ipa_pta flag.
8682         * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Adjust.
8683         (dump_points_to_solution): Likewise.
8684         * tree-dfa.c (dump_variable): Also dump DECL_PT_UID.
8685         * tree-inline.c (remap_ssa_name): Copy IPA points-to solution.
8686         (remap_gimple_stmt): Reset call clobber/use information if necessary.
8687         (copy_decl_to_var): Copy DECL_PT_UID.
8688         (copy_result_decl_to_var): Likewise.
8689         * tree.c (make_node_stat): Initialize DECL_PT_UID.
8690         (copy_node_stat): Copy it.
8691         * tree.h (DECL_PT_UID): New macro.
8692         (SET_DECL_PT_UID): Likewise.
8693         (DECL_PT_UID_SET_P): Likewise.
8694         (struct tree_decl_minimal): Add pt_uid member.
8695         * tree-ssa-alias.h (struct pt_solution): Add ipa_escaped flag.
8696         (pt_solution_empty_p): Declare.
8697         (pt_solution_set): Adjust.
8698         (ipa_escaped_pt): Declare.
8699         * cfgexpand.c (update_alias_info_with_stack_vars): Adjust.
8700         * gimple-pretty-print.c (pp_points_to_solution): New function.
8701         (dump_gimple_call): Dump call clobber/use information.
8702         * tree-dump.c (dump_option_value_in): Add TDF_ALIAS entry.
8703         * tree-pass.h (TDF_ALIAS): New dump option.
8704         * tree-pretty-print.c (dump_decl_name): Dump DECL_PT_UID if asked to.
8705         * doc/invoke.texi (-fipa-pta): Update documentation.
8706
8707 2010-04-15  Richard Guenther  <rguenther@suse.de>
8708
8709         * Makefile.in (OBJS-common): Add gimple-fold.o.
8710         (gimple-fold.o): New rule.
8711         * tree.h (maybe_fold_offset_to_reference,
8712         maybe_fold_offset_to_address, maybe_fold_stmt_addition): Move
8713         prototypes ...
8714         * gimple.h: ... here.
8715         * tree-flow.h (fold_stmt, fold_stmt_inplace, get_symbol_constant_value,
8716         may_propagate_address_into_dereference): Move prototypes ...
8717         * gimple.h: ... here.
8718         * tree-ssa-ccp.c (get_symbol_constant_value,
8719         may_propagate_address_into_dereference, maybe_fold_offset_to_array_ref,
8720         maybe_fold_offset_to_component_ref, maybe_fold_offset_to_reference,
8721         maybe_fold_offset_to_address, maybe_fold_stmt_indirect,
8722         maybe_fold_stmt_addition, maybe_fold_reference, get_maxval_strlen,
8723         ccp_fold_builtin, fold_gimple_assign, fold_gimple_cond,
8724         fold_gimple_call, fold_stmt_1, fold_stmt, fold_stmt_inplace,
8725         gimplify_and_update_call_from_tree): Move ...
8726         * gimple-fold.c: ... here.  New file.
8727         (ccp_fold_builtin): Rename to ...
8728         (gimple_fold_builtin): ... this.
8729         * tree-ssa-ccp.c (execute_fold_all_builtins): Adjust.
8730
8731 2010-04-15  Richard Guenther  <rguenther@suse.de>
8732
8733         * fold-const.c (LOWPART, HIGHPART, BASE, encode, decode,
8734         fit_double_type, force_fit_type_double, add_double_with_sign,
8735         neg_double, mul_double_with_sign, lshift_double, rshift_double,
8736         lrotate_double, rrotate_double, div_and_round_double): Move ...
8737         * double-int.c: ... here.
8738         * tree.h (force_fit_type_double, fit_double_type, add_double_with_sign,
8739         add_double, neg_double, mul_double_with_sign, mul_double,
8740         lshift_double, rshift_double, lrotate_double, rrotate_double,
8741         div_and_round_double): Move prototypes ...
8742         * double-int.h: ... here.
8743
8744 2010-04-15  Bernd Schmidt  <bernds@codesourcery.com>
8745
8746         PR target/43742
8747         * config/sh/sh.md (doloop_end_split, dect): Undo previous patch.  Use
8748         matching constraints to ensure inputs match the output.
8749
8750 2010-04-15  Kaz Kojima  <kkojima@gcc.gnu.org>
8751
8752         PR target/43742
8753         * config/sh/sh.md (doloop_end_split): Remove "+r" constraint
8754         in an input-only operand.
8755
8756 2010-04-15  Anatoly Sokolov  <aesok@post.ru>
8757
8758         * double-int.h (HOST_BITS_PER_DOUBLE_INT): Define.
8759         (double_int_not, double_int_lshift, double_int_rshift): Declare.
8760         (double_int_negative_p): Convert to static inline function.
8761         * double-int.c (double_int_lshift, double_int_lshift): New functions.
8762         (double_int_negative_p): Remove.
8763         * tree.h (lshift_double, rshift_double):
8764         * tree.c (build_low_bits_mask): Clean up, use double_int_* functions.
8765         * fold-const.c (fold_convert_const_int_from_real,
8766         fold_convert_const_int_from_fixed, div_if_zero_remainder): (Ditto.).
8767         (lshift_double): Change type of arith argument to bool.
8768         (rshift_double): Change type of arith argument to bool. Correct
8769         comment.
8770         * expmed.c (mask_rtx, lshift_value): (Ditto.).
8771
8772 2010-04-14  Bernd Schmidt  <bernds@codesourcery.com>
8773
8774         PR target/21803
8775         * ifcvt.c (cond_exec_process_if_block): Look for identical sequences
8776         at the start and end of the then/else blocks, and omit them from the
8777         conversion.
8778         * cfgcleanup.c (flow_find_cross_jump): No longer static.  Remove MODE
8779         argument; all callers changed.  Pass zero to old_insns_match_p instead.
8780         (flow_find_head_matching_sequence): New function.
8781         (old_insns_match_p): Check REG_EH_REGION notes for calls.
8782         * basic-block.h (flow_find_cross_jump,
8783         flow_find_head_matching_sequence): Declare functions.
8784
8785 2010-04-14  Jason Merrill  <jason@redhat.com>
8786
8787         PR c++/36625
8788         * c-common.c (attribute_takes_identifier_p): New fn.
8789         * c-common.h: Declare it.
8790
8791 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8792
8793         * config/i386/i386.md (*divmod<mode>4): Remove stray "&&" from
8794         splitter condition.
8795         (*udivmod<mode>4): Ditto.
8796
8797 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8798
8799         * config/i386/i386.md (maxmin_int): Rename code attribute from
8800         maxminiprefix and update all users.
8801         (maxmin_float): Ditto from maxminfprefix.
8802         (logic): Ditto from logicprefix.
8803         (absneg_mnemonic): Ditto from absnegprefix.
8804         * config/i386/mmx.md: Update all users of maxminiprefix,
8805         maxminfprefix and logicprefix for rename.
8806         * config/i386/sse.md: Ditto.
8807         * config/i386/sync.md (sync_<code><mode>): Update for
8808         logicprefix rename.
8809
8810 2010-04-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8811
8812         PR 42966
8813         * diagnostics.c (diagnostic_report_diagnostic): Mark specially
8814         warnings converted to errors.
8815
8816 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8817
8818         * config/alpha/alpha.c (alpha_adjust_cost): Remove set but not
8819         used insn_type variable.
8820         (function_value): Add ATTRIBUTE_UNUSED to dummy variable declaration
8821         to avoid set-but-not-used warning.
8822
8823 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8824
8825         * df-core.c (df_ref_debug): Change format string placeholder
8826         from 0x%x to %#x.
8827         * dwarf2asm.c (dw2_asm_output_data_raw,
8828         dw2_asm_output_data_uleb128_raw, dw2_asm_output_data_uleb128,
8829         dw2_asm_output_data_sleb128_raw, dw2_asm_output_data_sleb128): Ditto.
8830         * dwarf2out.c (output_cfi, output_cfi_directive,
8831         dwarf2out_do_cfi_startproc, output_loc_sequence_raw,
8832         output_cfa_loc_raw, output_die, output_ranges, output_file_names):
8833         Ditto.
8834         * genattrtab.c (write_test_expr, write_attr_valueq): Ditto.
8835         * print-rtl.c (print_rtx): Ditto.
8836
8837 2010-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
8838
8839         PR middle-end/42694
8840         * builtins.c (expand_builtin_pow_root): New function to expand pow
8841         calls with exponents 0.25, 0.50, 0.75, 1./3., and 1./6. into a
8842         series of sqrt and cbrt calls under -ffast-math.
8843         (expand_builtin_pow): Call it.
8844
8845 2010-04-14  Michael Matz  <matz@suse.de>
8846
8847         PR tree-optimization/42963
8848         * tree-cfg.c (touched_switch_bbs): New static variable.
8849         (group_case_labels_stmt): New function broken out from ...
8850         (group_case_labels): ... here, use the above.
8851         (start_recording_case_labels): Allocate touched_switch_bbs.
8852         (end_recording_case_labels): Deallocate it, call
8853         group_case_labels_stmt.
8854         (gimple_redirect_edge_and_branch): Remember index of affected BB.
8855
8856 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8857
8858         * config/i386/i386.md (*popcountsi2_cmp_zext): Remove mode attribute
8859         from insn template.
8860
8861 2010-04-14  Uros Bizjak  <ubizjak@gmail.com>
8862
8863         * config/i386/i386.md (*ashlqi3_1_slp): New insn pattern.
8864
8865 2010-04-13  Jan Hubicka  <jh@suse.cz>
8866
8867         * ipa-inline.c (cgraph_mark_inline_edge): Avoid double accounting
8868         of optimized out static functions.
8869         (cgraph_edge_badness): Add DUMP parameter and dump reasons for the
8870         cost computation.  Also sanity check for overflows.
8871         (update_caller_keys): Update cgraph_edge_badness call; properly
8872         update fibheap and sanity check that it is up to date.
8873         (add_new_edges_to_heap): Update cgraph_edge_badness.
8874         (cgraph_decide_inlining_of_small_function): Likewise;
8875         add sanity checking that badness in heap is up to date;
8876         improve dumping of reason; Update badness of calls to the
8877         offline copy of function currently inlined; dump badness
8878         of functions not inlined because of unit growth limits.
8879
8880 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
8881
8882         PR middle-end/32628
8883         * c-common.c (pointer_int_sum): Disregard overflow that occured only
8884         because of sign-extension change when converting to sizetype here...
8885         * fold-const.c (fold_convert_const_int_from_int): ...and not here.
8886
8887         * fold-const.c (fold_binary_op_with_conditional_arg): Do not restrict
8888         the folding to constants.  Remove redundant final conversion.
8889         (fold_binary) <associate>: Do not associate if the re-association of
8890         constants alone overflows.
8891         (fold_binary) <FLOOR_MOD_EXPR>: Move transformation into BIT_AND_EXPR
8892         to the end of the list.
8893         (multiple_of_p) <COND_EXPR>: New case.
8894
8895 2010-04-13  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8896
8897         * opt-functions.awk (opt_sanitized_name): New.
8898         (opt_enum): New.
8899         * optc-gen.awk: Use it
8900         * opth-gen.awk: Use it.
8901
8902 2010-04-13  Martin Jambor  <mjambor@suse.cz>
8903
8904         * tree-sra.c (replace_uses_with_default_def_ssa_name): New function.
8905         (sra_modify_assign): Delete stmts loading dead data even if racc has no
8906         children.  Call replace_uses_with_default_def_ssa_name to handle
8907         SSA_NAES on lhs.
8908
8909 2010-04-13  Michael Matz  <matz@suse.de>
8910
8911         PR middle-end/43730
8912         * builtins.c (expand_builtin_interclass_mathfn): Also create
8913         a register if the predicate doesn't match.
8914
8915 2010-04-13  Diego Novillo  <dnovillo@google.com>
8916
8917         * Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
8918         * c-pch.c: Include timevar.h.
8919         (c_common_write_pch): Use TV_PCH_SAVE and TV_PCH_CPP_SAVE timers.
8920         (c_common_read_pch): Use TV_PCH_RESTORE and TV_PCH_CPP_RESTORE timers.
8921         * ggc-common.c: Include timevar.h.
8922         (gt_pch_save): Use TV_PCH_PTR_REALLOC and TV_PCH_PTR_SORT timers.
8923         * timevar.def (TV_PCH_SAVE): Define.
8924         (TV_PCH_CPP_SAVE): Define.
8925         (TV_PCH_PTR_REALLOC): Define.
8926         (TV_PCH_PTR_SORT): Define.
8927         (TV_PCH_RESTORE): Define.
8928         (TV_PCH_CPP_RESTORE): Define.
8929
8930 2010-04-13  Michael Matz  <matz@suse.de>
8931
8932         * tree-ssa-reassoc.c (repropagate_negates): Merge negates also
8933         into MINUS_EXPRs.
8934         (can_reassociate_p): New function.
8935         (break_up_subtract_bb, reassociate_bb): Use it.
8936
8937 2010-04-13  Richard Guenther  <rguenther@suse.de>
8938
8939         PR bootstrap/43737
8940         * builtins.c (c_readstr): Fix assert.
8941
8942 2010-04-13  Uros Bizjak  <ubizjak@gmail.com>
8943
8944         * config/i386/i386.md (extendsidi2 splitter): Also check for DX_REG
8945         when generating cltd insn.
8946
8947         (*ashl<mode>3_1): Remove special handling for register operand 2.
8948         (*ashlsi3_1_zext): Ditto.
8949         (*ashlhi3_1): Ditto.
8950         (*ashlhi3_1_lea): Ditto.
8951         (*ashlqi3_1): Ditto.
8952         (*ashlqi3_1_lea): Ditto.
8953         (*<shiftrt_insn><mode>3_1): Ditto.
8954         (*<shiftrt_insn>si3_1_zext): Ditto.
8955         (*<shiftrt_insn>qi3_1_slp): Ditto.
8956         (*<rotate_insn><mode>3_1): Ditto.
8957         (*<rotate_insn>si3_1_zext): Ditto.
8958         (*<rotate_insn>qi3_1_slp): Ditto.
8959
8960 2010-04-13  Richard Guenther  <rguenther@suse.de>
8961
8962         * tree-ssa-structalias.c (callused_id): Remove.
8963         (call_stmt_vars): New.
8964         (get_call_vi): Likewise.
8965         (lookup_call_use_vi): Likewise.
8966         (lookup_call_clobber_vi): Likewise.
8967         (get_call_use_vi): Likewise.
8968         (get_call_clobber_vi): Likewise.
8969         (make_transitive_closure_constraints): Likewise.
8970         (handle_const_call): Adjust to do per-call call-used handling.
8971         (handle_pure_call): Likewise.
8972         (find_what_var_points_to): Remove general callused handling.
8973         (init_base_vars): Likewise.
8974         (init_alias_vars): Initialize call_stmt_vars.
8975         (compute_points_to_sets): Process call-used and call-clobbered
8976         vars for call statements.
8977         (delete_points_to_sets): Free call_stmt_vars.
8978
8979 2010-04-13  Richard Guenther  <rguenther@suse.de>
8980
8981         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
8982         Only add RW dependence for dependence distance zero.
8983         Adjust maximal vectorization factor according to dependences.
8984         Move alignment handling ...
8985         (vect_find_same_alignment_drs): ... here.  New function.
8986         (vect_analyze_data_ref_dependences): Adjust.
8987         (vect_analyze_data_refs_alignment): Call vect_find_same_alignment_drs.
8988         (vect_analyze_data_refs): Adjust minimal vectorization factor
8989         according to data references.
8990         * tree-vect-loop.c (vect_analyze_loop): Analyze data-ref
8991         dependences before determining the vectorization factor.
8992         Analyze alignment after determining the vectorization factor.
8993         * tree-vect-slp.c ((vect_slp_analyze_bb): Analyze data-ref
8994         dependences before alignment.
8995         * tree-vectorizer.h (vect_analyze_data_ref_dependences):
8996         Adjust prototype.
8997         (vect_analyze_data_refs): Likewise.
8998         (MAX_VECTORIZATION_FACTOR): New define.
8999
9000 2010-04-13  Duncan Sands  <baldrick@free.fr>
9001
9002         * except.h (lang_eh_type_covers): Remove.
9003         * except.c (lang_eh_type_covers): Likewise.
9004
9005 2010-04-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9006             Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9007
9008         * gcc/config/s390/s390.md: Replace TARGET_64BIT with TARGET_ZARCH.
9009         * gcc/config/s390/s390.c: Replace UNTIS_PER_WORD with
9010         UNITS_PER_LONG where it is ABI relevant.
9011         (s390_return_addr_rtx): Likewise.
9012         (s390_back_chain_rtx): Likewise.
9013         (s390_frame_area): Likewise.
9014         (s390_frame_info): Likewise.
9015         (s390_initial_elimination_offset): Likewise.
9016         (save_gprs): Likewise.
9017         (s390_emit_prologue): Likewise.
9018         (s390_emit_epilogue): Likewise.
9019         (s390_function_arg_advance): Likewise.
9020         (s390_function_arg): Likewise.
9021         (s390_va_start): Likewise.
9022         (s390_gimplify_va_arg): Likewise.
9023         (s390_function_profiler): Likewise.
9024         (s390_optimize_prologue): Likewise.
9025         (s390_rtx_costs): Likewise.
9026         (s390_secondary_reload): Likewise.
9027         (s390_promote_function_mode): Likewise.
9028         (s390_hard_regno_mode_ok): Replace TARGET_64BIT with TARGET_ZARCH.
9029         (s390_scalar_mode_supported_p): Disallow TImode if no 64 bit
9030         registers available.
9031         (s390_unwind_word_mode): New function.
9032         (s390_function_value): Split 64 bit values into register pair if
9033         used as return value.
9034         (s390_call_saved_register_used): Don't use HARD_REGNO_NREGS for
9035         function call parameters.  Handle parallels.
9036         (TARGET_SCALAR_MODE_SUPPORTED_P): New macro.
9037         (HARD_REGNO_CALL_PART_CLOBBERED): New macro.
9038         (DWARF_CIE_DATA_ALIGNMENT): New macro.
9039         (s390_expand_setmem): Remove unused variable src_addr.
9040         * gcc/longlong.h: Make smul_ppmm and sdiv_qrnnd inline asms to
9041         deal with 64 bit registers.
9042         * gcc/config/s390/s390.h: Define __zarch__ predefined macro.
9043         Replace UNITS_PER_WORD with UNITS_PER_LONG where it is ABI relevant.
9044         (UNITS_PER_LONG): New macro.
9045         * libjava/include/s390-signal.h: Define extended ucontext
9046         structure containing the upper halfs of the 64 bit registers.
9047
9048 2010-04-13  Simon Baldwin  <simonb@google.com>
9049
9050         * cfgexpand.c (gimple_expand_cfg): Clarify warning message text.
9051
9052 2010-04-13  Eric Botcazou  <ebotcazou@adacore.com>
9053
9054         * gimple.c (walk_gimple_op) <GIMPLE_ASSIGN>: Do not request a pure
9055         rvalue on the RHS if the LHS is of a non-renamable type.
9056         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Fold result.
9057
9058 2010-04-13  Matthias Klose  <doko@ubuntu.com>
9059
9060         * gcc.c (cc1_options): Handle -iplugindir before processing
9061         the cc1 spec. Only add -iplugindir once.
9062         (cpp_unique_options): Add -iplugindir option if -fplugin* options
9063         found.
9064         * common.opt (iplugindir): Remove `Separate' property, initialize.
9065         * plugin.c (default_plugin_dir_name): Error with missing -iplugindir
9066         option.
9067         * Makefile.in (check-%, check-parallel-%): Create plugin dir.
9068         (distclean): Remove plugin dir.
9069         * doc/invoke.texi: Document -iplugindir.
9070
9071 2010-04-13  Basile Starynkevitch  <basile@starynkevitch.net>
9072
9073         * doc/plugins.texi (Loading Plugins): Document short
9074         -fplugin=foo option.
9075         (Plugin API): Mention default_plugin_dir_name function.
9076
9077         * gcc.c (find_file_spec_function): Add new declaration.
9078         (static_spec_func): Use it for "find-file".
9079         (find_file_spec_function): Add new function.
9080         (cc1_options): Add -iplugindir option if -fplugin* options found.
9081
9082         * gcc-plugin.h (default_plugin_dir_name): Added new declaration.
9083
9084         * plugin.c (add_new_plugin): Updated comment, and handle short
9085         plugin name.
9086         (default_plugin_dir_name): Added new function.
9087
9088         * common.opt (iplugindir): New option to set the plugin directory.
9089
9090 2010-04-12  Uros Bizjak  <ubizjak@gmail.com>
9091
9092         * config/i386/i386.md (any_rotate): New code iterator.
9093         (rotate_insn): New code attribute.
9094         (rotate): Ditto.
9095         (SWIM124): New mode iterator.
9096         (<rotate_insn>ti3): New expander.
9097         (<rotate_insn>di3): Macroize expander from {rotl,rotr}di3 using
9098         any_rotate code iterator.
9099         (<rotate_insn><mode>3) Macroize expander from {rotl,rotr}{qi,hi,si}3
9100         using any_rotate code iterator and SWIM124 mode iterator.
9101         (ix86_rotlti3): New insn_and_split pattern.
9102         (ix86_rotrti3): Ditto.
9103         (ix86_rotl<dwi>3_doubleword): Macroize insn_and_split pattern from
9104         ix86_rotl{di,ti}3 patterns.
9105         (ix86_rotr<dwi>3_doubleword): Ditto from ix86_rotr{di,ti}3 patterns.
9106         (*<rotate_insn><mode>3_1): Merge with *{rotl,rotr}{qi,hi,si}3_1_one_bit
9107         and *{rotl,rotr}di3_1_one_bit_rex64. Macroize insn from
9108         *{rotl,rotr}{qi,hi,si}3_1 and *{rotl,rotr}di3_1_rex64 using any_rotate
9109         code iterator and SWI mode iterator.
9110         (*<rotate_insn>si3_1_zext): Merge with *{rotl,rotr}si3_1_one_bit_zext.
9111         Macroize insn from {rotl,rotr}si3_1_zext using any_rotate
9112         code iterator.
9113         (*<rotate_insn>qi3_1_slp): Merge with *{rotl,rotr}qi3_1_one_bit_slp.
9114         Macroize insn from {rotl,rotr}qi3_1_slp using any_rotate code iterator.
9115         (bswap rotatert splitter): Add splitter.
9116         (bswap splitter): Macroize splitter using any_rotate code iterator.
9117         Add insn predicate to split only for TARGET_USE_XCHGB or when
9118         optimizing function for size.
9119
9120 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
9121
9122         * config/pa/pa.c (emit_move_sequence): Remove use of
9123         deleted variable flag_argument_noalias.
9124
9125 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9126
9127         * config.gcc: Removed *-*-solaris2.7* from list of obsolete
9128         configurations.
9129         Add to unsupported targets list.
9130         * configure.ac (gcc_cv_as_tls): Removed i[34567]86-*-solaris2.[567]*,
9131         sparc*-sun-solaris2.[567]* from target lists.
9132         * configure: Regenerate.
9133         * doc/install.texi (Specific, *-*-solaris2*): Document Solaris 7
9134         removal.
9135         Remove Solaris 7 patch references.
9136         (Specific, sparc-sun-solaris2.7): Removed.
9137         (sparc-sun-solaris2*): Update Solaris 7 example.
9138         (sparc64-*-solaris2*): Likewise.
9139
9140 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9141
9142         * config.build (alpha*-dec-osf4*): Remove.
9143         * config.gcc: Remove alpha*-dec-osf4*, alpha-dec-osf5.0* from list
9144         of obsolete configurations.
9145         (alpha*-dec-osf[45]*): Remove alpha*-dec-osf4*, alpha-dec-osf5.0*
9146         support.
9147         * config/alpha/t-osf4: Renamed to ...
9148         * config/alpha/t-osf5: ... this.
9149         * config/alpha/osf.h: Renamed to ...
9150         * config/alpha/osf5.h: ... this.
9151         Merged old osf5.h contents.
9152         Update comments.
9153         (ASM_SPEC): Use ASM_OLDAS_SPEC directly.
9154         (EXTRA_SPECS): Removed.
9155         * doc/install.texi (Specific, alpha*-dec-osf5.1): Renamed to
9156         reflect removal of Tru64 UNIX V4.0/V5.0 support.
9157         Document that.
9158
9159 2010-04-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9160
9161         * doc/contrib.texi (Contributors, Rainer Orth): Update.
9162
9163 2010-04-12  Kai Tietz  <kai.tietz@onevision.com>
9164
9165         PR/43702
9166         * config/i386/i386.c (x86_this_parameter): Handle aggregate for
9167         __thiscall convention.
9168
9169 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
9170
9171         * config/pa/pa.c (hppa_legitimize_address): Remove unused variable
9172         orig_base.
9173         * config/pa/pa.md (call, call_value): Remove unused variable call_insn.
9174
9175 2010-04-12  Steve Ellcey  <sje@cup.hp.com>
9176
9177         * function.c (assign_parms_initialize_all): Add unused attribute
9178         to fntype.
9179
9180 2010-04-12  Richard Guenther  <rguenther@suse.de>
9181
9182         * gsstruct.def (GSS_CALL): New.
9183         * gimple.def (GIMPLE_CALL): Change to GSS_CALL.
9184         * gimple.h: Include tree-ssa-alias.h.
9185         (struct gimple_statement_call): New.
9186         (union gimple_statement_struct_d): Add gimple_call member.
9187         (gimple_call_reset_alias_info): Declare.
9188         (gimple_call_use_set): New function.
9189         (gimple_call_clobber_set): Likewise.
9190         * Makefile.in (GIMPLE_H): Add tree-ssa-alias.h.
9191         * gimple.c (gimple_call_reset_alias_info): New function.
9192         (gimple_build_call_1): Call it.
9193         * lto-streamer-in.c (input_gimple_stmt): Likewise.
9194         * tree-inline.c (remap_gimple_stmt): Likewise.
9195         (expand_call_inline): Remove callused handling.
9196         * cfgexpand.c (update_alias_info_with_stack_vars): Likewise.
9197         * tree-dfa.c (dump_variable): Likewise.
9198         * tree-parloops.c (parallelize_loops): Likewise.
9199         * tree-ssa.c (init_tree_ssa): Likewise.
9200         (delete_tree_ssa): Likewise.
9201         * tree-flow-inline.h (is_call_used): Remove.
9202         * tree-flow.h (struct gimple_df): Remove callused member.
9203         * tree-nrv.c (dest_safe_for_nrv_p): Adjust predicate.
9204         * tree-ssa-alias.c (dump_alias_info): Remove callused handling.
9205         (ref_maybe_used_by_call_p_1): Simplify.
9206         (call_may_clobber_ref_p_1): Likewise.
9207         * tree-ssa-structalias.c (compute_points_to_sets): Set
9208         the call stmt used and clobbered sets.
9209         * tree-tailcall.c (suitable_for_tail_opt_p): Adjust predicate.
9210         (find_tail_calls): Verify the tail call.
9211
9212 2010-04-12  Richard Guenther  <rguenther@suse.de>
9213
9214         * ipa.c (cgraph_postorder): Adjust postorder to guarantee
9215         single-iteration always-inline inlining.
9216         * ipa-inline.c (cgraph_mark_inline): Do not return anything.
9217         (cgraph_decide_inlining): Do not handle always-inline specially.
9218         (try_inline): Remove always-inline cycle detection special case.
9219         Do not recurse on always-inlines.
9220         (cgraph_early_inlining): Do not iterate if not optimizing.
9221         (cgraph_gate_early_inlining): remove.
9222         (pass_early_inline): Run unconditionally.
9223         (gate_cgraph_decide_inlining): New function.
9224         (pass_ipa_inline): Use it.  Do not run the IPA inliner if
9225         not inlining or optimizing.
9226         (cgraph_decide_inlining_of_small_functions): Also consider
9227         always-inline functions.
9228         (cgraph_default_inline_p): Return true for nodes which should
9229         disregard inline limits.
9230         (estimate_function_body_sizes): Assume zero size and time for
9231         nodes which are marked as disregarding inline limits.
9232         (cgraph_decide_recursive_inlining): Do not perform recursive
9233         inlining on always-inline nodes.
9234
9235 2010-04-12  Jakub Jelinek  <jakub@redhat.com>
9236
9237         PR bootstrap/43699
9238         * c-typeck.c (c_process_expr_stmt): Call mark_exp_read even
9239         for exprs satisfying handled_component_p.
9240
9241 2010-04-12  Eric Botcazou  <ebotcazou@adacore.com>
9242
9243         * expr.c (categorize_ctor_elements_1): Properly count sub-elements of
9244         non-constant aggregate elements.
9245
9246         * gimplify.c (gimplify_init_constructor): Do not pre-evaluate if this
9247         is a real initialization.
9248
9249 2010-04-12  Shujing Zhao  <pearly.zhao@oracle.com>
9250
9251         PR c/36774
9252         * c-decl.c (start_function): Move forward check for nested function.
9253
9254 2010-04-11  Kaz Kojima  <kkojima@gcc.gnu.org>
9255
9256         * config/sh/sh-protos.h (sh_legitimize_reload_address): Declare.
9257         * config/sh/sh.c: Include reload.h.
9258         (sh_legitimize_reload_address): New.
9259         * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Use
9260         sh_legitimize_reload_address.
9261
9262 2010-04-11  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
9263
9264         * config/sh/sh.md (*movqi_pop): New insn pattern.
9265         * config/sh/predicates.md (sh_no_delay_pop_operand): New predicate.
9266
9267 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
9268
9269         * config/i386/i386.md (any_shiftrt): New code iterator.
9270         (shiftrt_insn): New code attribute.
9271         (shiftrt): Ditto.
9272         (<shiftrt_insn><mode>3): Macroize expander from {ashr,lshr}<mode>3
9273         using any_shiftrt code iterator.
9274         (*<shiftrt_insn><mode>3_doubleword): Macroize insn_and_split from
9275         *{ashr,lshr}<mode>3_doubleword using any_shiftrt code iterator.
9276         (*<shiftrt_insn><mode>3_doubleword peephole2): Macroize peephole2
9277         pattern from corresponding peephole2 patterns.
9278         (*<shiftrt_insn><mode>3_1): Macroize insn from *{ashr,lshr}<mode>3_1
9279         using any_shiftrt code iterator.
9280         (*<shiftrt_insn>si3_1_zext): Ditto from *{ashr,lshr}si3_1_zext.
9281         (*<shiftrt_insn>qi3_1_slp): Ditto from *{ashr,lshr}qi3_1_slp.
9282         (*<shiftrt_insn><mode>3_cmp): Ditto from *{ashr,lshr}<mode>3_cmp.
9283         (*<shiftrt_insn><mode>3_cmp_zext): Ditto from
9284         *{ashr,lshr}<mode>3_cmp_zext.
9285         (*<shiftrt_insn><mode>3_cconly): Ditto from *{ashr,lshr}<mode>3_cconly.
9286
9287 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
9288
9289         * config/i386/i386.md (*ashr<mode>3_cconly): Fix wrong mode of
9290         scratch register.
9291         (*lshr<mode>3_cconly): Ditto.
9292
9293 2010-04-11  Uros Bizjak  <ubizjak@gmail.com>
9294
9295         * config/i386/i386.md (lshr<mode>3): Macroize expander from
9296         lshr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
9297         (*lshr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
9298         pattern from *lshr{di,ti}3_1 and corresponding splitters using
9299         DWI mode iterator.
9300         (*lshr<mode>3_doubleword peephole2): Macroize peephole2 pattern
9301         from corresponding peephole2 patterns.
9302         (*lshr<mode>3_1): Merge with *lshr{qi,hi,si}3_1_one_bit and
9303         *lshrdi3_1_one_bit_rex64. Macroize insn from *lshr{qi,hi,si}3_1
9304         and *lshrdi3_1_rex64 using SWI mode iterator.
9305         (*lshrsi3_1_zext): Merge with *lshrsi3_1_one_bit_zext.
9306         (*lshrqi3_1_slp): Merge with *lshrqi3_1_one_bit_slp.
9307         (*lshr<mode>3_cmp): Merge with *lshr{qi,hi,si}3_one_bit_cmp and
9308         *lshrdi3_one_bit_cmp_rex64. Macroize insn from *lshr{qi,hi,si}3_cmp
9309         and *lshrdi3_cmp_rex64 using SWI mode iterator.
9310         (*lshrsi3_cmp_zext): Merge with *lshrsi3_cmp_one_bit_zext.
9311         (*lshr<mode>3_cconly): Merge with *lshr{qi,hi,si}3_one_bit_cconly and
9312         *lshrdi3_one_bit_cconly_rex64. Macroize insn from
9313         *lshr{qi,hi,si}3_cconly and *lshrdi3_cconly_rex64 using
9314         SWI mode iterator.
9315
9316 2010-04-10  Uros Bizjak  <ubizjak@gmail.com>
9317
9318         * config/i386/i386.md (ashr<mode>3): Macroize expander from
9319         ashr{qi,hi,si,di,ti}3_1 using SDWIM mode iterator.
9320         (*ashr<mode>3_doubleword): New insn_and_split_pattern.  Macroize
9321         pattern from *ashr{di,ti}3_1 and corresponding splitters using
9322         DWI mode iterator.
9323         (*ashr<mode>3_doubleword peephole2): Macroize peephole2 pattern
9324         from corresponding peephole2 patterns.
9325         (ashrdi3_cvt): Rename from ashrdi3_63_rex64.
9326         (ashrsi3_cvt): Rename from ashrsi3_31.
9327         (*ashrsi3_cvt_zext): Rename from *ashrsi3_31_zext.
9328         (x86_shift<mode>_adj_3): Macroize expander from x86_shift_adj_3
9329         and x86_64_shift_adj_3 using SWI48 mode iterator.
9330         (*ashr<mode>3_1): Merge with *ashr{qi,hi,si}3_1_one_bit and
9331         *ashrdi3_1_one_bit_rex64. Macroize insn from *ashr{qi,hi,si}3_1
9332         and *ashrdi3_1_rex64 using SWI mode iterator.
9333         (*ashrsi3_1_zext): Merge with *ashrsi3_1_one_bit_zext.
9334         (*ashrqi3_1_slp): Merge with *ashrqi3_1_one_bit_slp.
9335         (*ashr<mode>3_cmp): Merge with *ashr{qi,hi,si}3_one_bit_cmp and
9336         *ashrdi3_one_bit_cmp_rex64. Macroize insn from *ashr{qi,hi,si}3_cmp
9337         and *ashrdi3_cmp_rex64 using SWI mode iterator.
9338         (*ashrsi3_cmp_zext): Merge with *ashrsi3_cmp_one_bit_zext.
9339         (*ashr<mode>3_cconly): Merge with *ashr{qi,hi,si}3_one_bit_cconly and
9340         *ashrdi3_one_bit_cconly_rex64. Macroize insn from
9341         *ashr{qi,hi,si}3_cconly and *ashrdi3_cconly_rex64 using
9342         SWI mode iterator.
9343         (sign_extend splitters): Update for renamed ashr{di,si}3_cvt patterns.
9344         * config/i386/i386.c (ix86_split_ashr): Update for renamed
9345         x86_shift<mode>_adj_3 expanders.
9346
9347 2010-04-10  Wei Guozhi  <carrot@google.com>
9348
9349         PR target/42601
9350         * config/arm/arm.c (arm_pic_static_addr): New function.
9351         (legitimize_pic_address): Call arm_pic_static_addr when it detects
9352         a static symbol.
9353         (arm_output_addr_const_extra): Output expression for new pattern.
9354         * config/arm/arm.md (UNSPEC_SYMBOL_OFFSET): New unspec symbol.
9355
9356 2010-04-10  Bernd Schmidt  <bernds@codesourcery.com>
9357
9358         * ira-costs.c (record_reg_classes): Ignore alternatives that are
9359         not enabled.
9360
9361         * Makefile.in (web.o): Depend on insn-config.h and $(RECOG_H).
9362         * web.c: Include "insn-config.h" and "recog.h".
9363         (union_match_dups): New function.
9364         (web_main): Call it.
9365         (union_defs): Don't try to recognize match_dups.
9366
9367         * reload1.c (eliminate_regs_in_insn): Don't restore an operand
9368         if doing so would replace the entire pattern.
9369
9370 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
9371
9372         PR target/43707
9373         PR target/43709
9374         * config/i386/i386.md (*ashl<mode>3_doubleword): Split to insn
9375         and splitter pattern.  Change splitter operand 1 predicate to
9376         nonmemory_operand.
9377
9378 2010-04-09  Martin Jambor  <mjambor@suse.cz>
9379
9380         * ipa-cp.c (ipcp_lats_are_equal): Return true also if the two
9381         lattices are addresses of CONST_DECLs with the same initial value.
9382         (ipcp_print_all_lattices): Print values of CONST_DECLs.
9383         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
9384
9385 2010-04-09  Eric Botcazou  <ebotcazou@adacore.com>
9386             Bernd Schmidt  <bernds@codesourcery.com>
9387
9388         * loop-invariant.c (replace_uses): New static function.
9389         (move_invariant_reg): Use it to ensure we can replace the uses.
9390
9391 2010-04-09  Hariharan Sandanagobalane  <hariharan@picochip.com>
9392
9393         * config/picochip/picochip.c (picochip_rtx_costs): Use correct
9394         function template.
9395         (picochip_override_options): Enable section anchors only above -O1.
9396         (picochip_reorg): Fixed a couple of build warnings.
9397
9398 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9399
9400         * configure.ac (plugin -rdynamic test): Log result.
9401         * configure: Regenerate.
9402         * config/sol2.h (LINK_SPEC): Handle -rdynamic.
9403         (RDYNAMIC_SPEC): Define.
9404         * config/sol2-gld.h (RDYNAMIC_SPEC): Redefine.
9405
9406 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9407
9408         * configure.ac: Determine Sun ld version numbers.
9409         (comdat_group): Restrict GNU ld version checks to gld.
9410         (comdat_group, *-*-solaris2.1[1-9]*): Enable for Sun ld > 1.1688.
9411         (enable_comdat): Support --enable-comdat.
9412         * configure: Regenerate.
9413         * doc/install.texi (Configuration): Document --enable-comdat.
9414
9415 2010-04-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9416
9417         * config/sparc/sol2-gld.h: Remove SPARC reference.  Rename ...
9418         * config/sol2-gld.h: ... here.
9419         * config.gcc (sparc*-*-solaris2*): Reflect this.
9420         (i[34567]86-*-solaris2*): Use it.
9421
9422 2010-04-09  Steve Ellcey  <sje@cup.hp.com>
9423
9424         * config/ia64/ia64.c (ia64_dfa_new_cycle): Remove unused variable
9425         setup_clocks_p.
9426         (final_emit_insn_group_barriers): Remove unused variable prev_insn.
9427
9428 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9429
9430         PR 42965
9431         * diagnostic.c (diagnostic_initialize): Initialize
9432         some_warnings_are_errors.
9433         (diagnostic_finish): New.
9434         (diagnostic_action_after_output): Call it before exiting.
9435         (diagnostic_report_diagnostic): Do not print message here. Set
9436         some_warnings_are_errors.
9437         * diagnostic.h (diagnostic_context): Delete
9438         issue_warnings_are_errors_message. Add some_warnings_are_errors.
9439         (diagnostic_finish): Declare.
9440         * toplev.c (toplev_main): Call it before exit.
9441
9442 2010-04-09  Jason Merrill  <jason@redhat.com>
9443
9444         PR c++/42623
9445         * c-common.c (c_sizeof_or_alignof_type): Return error_mark_node
9446         for incomplete type.
9447
9448         PR c++/41788
9449         * stor-layout.c (finalize_record_size): Don't change TYPE_PACKED
9450         based on a warning flag.
9451
9452 2010-04-09  Richard Guenther  <rguenther@suse.de>
9453
9454         * tree-pretty-print.c (dump_generic_node): Dump TYPE_VECTOR_SUBPARTS.
9455
9456 2010-04-09  Iain Sandoe  <iains@gcc.gnu.org>
9457
9458         PR bootstrap/43684
9459         * varasm.c (default_assemble_visibility): Wrap vars that are
9460         set, but unused, by targets without GAS.
9461         * config/rs6000/rs6000.c (paired_emit_vector_compare):
9462         Remove set, but unused, vars.
9463         (rs6000_legitimize_tls_address): Likewise.
9464         (altivec_expand_dst_builtin): Likewise.
9465         * config/darwin.c (machopic_classify_symbol): Likewise.
9466         (machopic_indirection_name): Likewise.
9467
9468 2010-04-09  Uros Bizjak  <ubizjak@gmail.com>
9469
9470         * config/i386/i386.md (DWI): New mode iterator.
9471         (S): New mode attribute.
9472         (shift_operand): Ditto.
9473         (shift_immediate_operand): Ditto.
9474         (ashl_input_operand): Ditto.
9475         (ashl<mode>3): Macroize expander from ashl{qi,hi,si,di,ti}3_1
9476         using SDWIM mode iterator.
9477         (*ashl<mode>3_doubleword): New insn_and_split_pattern.  Macroize
9478         pattern from *ashl{di,ti}3_1 and corresponding splitters using
9479         DWI mode iterator.
9480         (*ashl<mode>3_doubleword peephole2): Macroize peephole2 pattern
9481         from corresponding peephole2 patterns.
9482         (x86_shift<mode>_adj_1): Macroize expander from x86_shift_adj_1
9483         and x86_64_shift_adj_1 using SWI48 mode iterator.
9484         (x86_shift<mode>_adj_2): Ditto.
9485         (*ashldi3_1_rex64): Split TYPE_LEA pattern.
9486         (*ashl<mode>3_1): Macroize insn from *ashlsi3_1 and *ashldi3_1_rex64
9487         using SWI48 mode iterator.
9488         (*ashl<mode>3_cmp): Macroize insn from *ashl{qi,hi,si}3_cmp and
9489         *ashldi3_cmp_rex64 using SWI mode iterator.
9490         (*ashl<mode>3_cconly): Macroize insn from *ashl{qi,hi,si}3_cconly and
9491         *ashldi3_cconly_rex64 using SWI mode iterator.
9492         * config/i386/i386.c (ix86_split_ashl): Update for renamed
9493         x86_shift<mode>_adj_{1,2}.
9494         (ix86_split_ashr): Ditto.
9495         (ix86_split_lshr): Ditto.
9496
9497 2010-04-09  Richard Guenther  <rguenther@suse.de>
9498
9499         * target.h (builtin_conversion): Pass in input and output types.
9500         * targhooks.c (default_builtin_vectorized_conversion): Adjust.
9501         * targhooks.h (default_builtin_vectorized_conversion): Likewise.
9502         * tree-vect-stmts.c (vectorizable_conversion): Adjust.
9503         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Adjust.
9504
9505         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Adjust.
9506         Handle AVX modes.
9507         * config/rs6000/rs6000.c (rs6000_builtin_conversion): Adjust.
9508
9509 2010-04-09  Richard Guenther  <rguenther@suse.de>
9510
9511         PR target/43152
9512         * config/i386/sse.md (vcond<mode>): Handle AVX modes as well.
9513
9514 2010-04-09  Richard Guenther  <rguenther@suse.de>
9515
9516         * tree-vectorizer.h (struct _stmt_vec_info): Document
9517         that vectype is the type of the LHS.
9518         (supportable_widening_operation, supportable_narrowing_operation):
9519         Get both input and output vector types as arguments.
9520         (vect_is_simple_use_1): Declare.
9521         (get_same_sized_vectype): Likewise.
9522         * tree-vect-loop.c (vect_determine_vectorization_factor):
9523         Set STMT_VINFO_VECTYPE to the vector type of the def.
9524         (vectorizable_reduction): Adjust.
9525         * tree-vect-patterns.c (vect_recog_widen_mult_pattern):
9526         Adjust.  Specify the output vector type.
9527         (vect_pattern_recog_1): Adjust.
9528         * tree-vect-stmts.c (get_same_sized_vectype): New function.
9529         (vectorizable_call): Adjust.
9530         (vectorizable_conversion): Likewise.
9531         (vectorizable_operation): Likewise.
9532         (vectorizable_type_demotion): Likewise.
9533         (vectorizable_type_promotion): Likewise.
9534         (vect_analyze_stmt): Set STMT_VINFO_VECTYPE to the vector type of
9535         the def.
9536         (vect_is_simple_use_1): New function.
9537         (supportable_widening_operation): Get both input and output
9538         vector types.
9539         (supportable_narrowing_operation): Likewise.
9540         * tree-vect-slp.c (vect_schedule_slp_instance): Adjust.
9541
9542 2010-04-09  Kai Tietz  <kai.tietz@onevision.com>
9543
9544         * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Add
9545         __thiscall and _thiscall as predefined macros.
9546         * config/i386/i386.c (ix86_handle_cconv_attribute): Add
9547         thiscall attribute handling.
9548         (ix86_comp_type_attributes): Likewise.
9549         (ix86_function_regparm): Likewise.
9550         (ix86_return_pops_args): Likewise.
9551         (init_cumulative_args): Likewise.
9552         (find_drap_reg): Likewise.
9553         (ix86_static_chain): Likewise.
9554         (x86_this_parameter): Likewise.
9555         (x86_output_mi_thunk): Likewise.
9556         (ix86_attribute_table): Add description for thiscall attribute.
9557         * config/i386/i386.h (ix86_args): Adjust comment for member fastcall.
9558         * doc/extend.texi: Add documentation for thiscall.
9559
9560 2010-04-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9561
9562         PR c++/28584
9563         * c.opt (Wint-to-pointer-cast): Available in C++.
9564         * doc/invoke.texi (Wint-to-pointer-cast): Available in C++.
9565
9566 2010-04-08  Eric Botcazou  <ebotcazou@adacore.com>
9567
9568         * tree.h (TREE_ADDRESSABLE): Document its effect for function types.
9569         * calls.c (expand_call): Pass the function type to aggregate_value_p.
9570         * function.c (aggregate_value_p): Do not honor DECL_BY_REFERENCE on
9571         the target function of a CALL_EXPR.  Honor TREE_ADDRESSABLE on the
9572         function type instead.  Reorder and simplify checks.
9573
9574         * gimplify.c (gimplify_modify_expr_rhs) <WITH_SIZE_EXPR>: New case.
9575
9576 2010-04-08  Jing Yu  <jingyu@google.com>
9577             Zdenek Dvorak  <ook@ucw.cz>
9578
9579         PR tree-optimization/42720
9580         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Move one-time
9581         loop unswitch conditions here from ...
9582         (tree_unswitch_single_loop): ... here.
9583
9584 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
9585
9586         * tree-if-conv.c: Fix comments and simplify logic.
9587
9588 2010-04-08  Sebastian Pop  <sebastian.pop@amd.com>
9589
9590         * tree-if-conv.c (if_convertible_loop_p): Remove unused parameter.
9591         (tree_if_conversion): Same.  Update call to if_convertible_loop_p.
9592         (main_tree_if_conversion): Update call to tree_if_conversion.
9593
9594 2010-04-08  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9595
9596         PR 42485
9597         * doc/invoke.texi (-b,-V): Delete.
9598         * doc/tm.texi: Do not mention -b.
9599         * gcc.c (display_help): Delete -b and -V.
9600         (process_command): Delete -b and -V.
9601         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Delete -b and -V.
9602
9603 2010-04-08  Christian Borntraeger  <borntraeger@de.ibm.com>
9604             Wolfgang Gellerich  <gellerich@de.ibm.com>
9605
9606         Implement target hook for loop unrolling
9607         * target.h (loop_unroll_adjust): Add a new target hook function.
9608         * target-def.h (TARGET_LOOP_UNROLL_ADJUST): Likewise.
9609         * doc/tm.texi (TARGET_LOOP_UNROLL_ADJUST): Document it.
9610         * config/s390/s390.c (TARGET_LOOP_UNROLL_ADJUST): Define it.
9611         (s390_loop_unroll_adjust): Implement the new target hook for s390.
9612         * loop-unroll.c (decide_unroll_runtime_iterations): Call loop unroll
9613         target hook.
9614         (decide_unroll_stupid): Likewise.
9615
9616 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9617
9618         PR target/43643
9619         * config/i386/gmon-sol2.c [__x86_64__]: Properly restore %rcx.
9620
9621 2010-04-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9622
9623         * doc/install.texi (Specific, i?86-*-solaris2.10): Fix grammar.
9624         (Specific, *-*-solaris2*): Likewise.
9625         Don't prefer Sun as over GNU as.
9626
9627 2010-04-08  Wolfgang Gellerich  <gellerich@de.ibm.com>
9628
9629         * config/s390/s390.c (override_options): Adjust the z10 defaults
9630         for max-unroll-times, max-completely-peeled-insns
9631         and max-completely-peel-times.
9632
9633 2010-04-08  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9634
9635         * config/s390/s390.c (s390_expand_movmem): Issue prefetch
9636         instructions for z10.
9637         (s390_expand_setmem): Likewise.
9638         (s390_expand_cmpmem): Likewise.
9639
9640 2010-04-08  Richard Guenther  <rguenther@suse.de>
9641
9642         PR tree-optimization/43679
9643         * tree-ssa-pre.c (eliminate): Only propagate copies.
9644
9645 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
9646
9647         PR bootstrap/43681
9648         * expr.c (block_move_libcall_safe_for_call_parm): Avoid
9649         set but not used variable warning.
9650
9651 2010-04-08  Wei Guozhi  <carrot@google.com>
9652
9653         PR target/41653
9654         * config/arm/arm.c (thumb1_size_rtx_costs): New function.
9655         (arm_size_rtx_costs): Call the new function when optimized for size.
9656
9657 2010-04-08  Jakub Jelinek  <jakub@redhat.com>
9658
9659         PR debug/43670
9660         * cfgexpand.c (expand_debug_expr): If for non-NULL offset
9661         op0 is not a MEM, just return NULL instead of assertion
9662         failure.
9663         (discover_nonconstant_array_refs): Don't walk debug stmts.
9664
9665 2010-04-08  Doug Kwan  <dougkwan@google.com>
9666
9667         * configure.ac: Recognize gold and do not use its version number
9668         to test ld features.
9669         * configure: Regenerate.
9670
9671 2010-04-08  Maxim Kuvyrkov  <maxim@codesourcery.com>
9672
9673         PR middle-end/40815
9674         * tree-ssa-reassoc.c (broken_up_substracts): Rename to plus_negates.
9675         (negate_value): Move code to push elements to broken_up_substracts ...
9676         (eliminate_plus_minus_pair): ... here.  Push operands that have no
9677         negative pair to plus_negates.
9678         (repropagate_negates, init_reassoc, fini_reassoc): Update.
9679
9680 2010-04-07  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9681
9682         * doc/install.texi (Configuration): Move description of
9683         --enable-lto, --with-libelf*, --enable-gold from Java section to
9684         general section.
9685
9686         * doc/generic.texi (Working with declarations)
9687         (Function Properties, C and C++ Trees): Fix typos.
9688         * doc/sourcebuild.texi (Top Level): Likewise.
9689
9690 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
9691
9692         PR c/18624
9693         * tree.h (DECL_READ_P): Define.
9694         (struct tree_decl_common): Add decl_read_flag.
9695         * c-decl.c (pop_scope): If TREE_USED but !DECL_READ_P, issue
9696         a set but not used warning.
9697         (merge_decls): Merge DECL_READ_P flag.
9698         (finish_decl, build_compound_literal): Set DECL_READ_P flag.
9699         (finish_function): Issue -Wunused-but-set-parameter diagnostics.
9700         * c-common.c (handle_used_attribute, handle_unused_attribute):
9701         Likewise.
9702         * c-tree.h (default_function_array_read_conversion, mark_exp_read):
9703         New prototypes.
9704         * c-typeck.c (default_function_array_read_conversion, mark_exp_read):
9705         New functions.
9706         (default_conversion, c_process_expr_stmt): Call mark_exp_read.
9707         * c-parser.c (c_parser_initializer, c_parser_expr_no_commas,
9708         c_parser_binary_expression, c_parser_cast_expression,
9709         c_parser_expr_list, c_parser_omp_atomic, c_parser_omp_for_loop):
9710         Call default_function_array_read_conversion instead of
9711         default_function_array_conversion where needed.
9712         (c_parser_unary_expression, c_parser_conditional_expression,
9713         c_parser_postfix_expression_after_primary, c_parser_initelt):
9714         Likewise.  Call mark_exp_read where needed.
9715         (c_parser_statement_after_labels, c_parser_asm_operands,
9716         c_parser_typeof_specifier, c_parser_sizeof_expression,
9717         c_parser_alignof_expression, c_parser_initval): Call mark_exp_read
9718         where needed.
9719         * common.opt (Wunused-but-set-variable, Wunused-but-set-parameter):
9720         New.
9721         * toplev.c (warn_unused_but_set_variable): Default to warn_unused.
9722         (warn_unused_but_set_parameter): Default to warn_unused
9723         && extra_warnings.
9724         * doc/invoke.texi: Document -Wunused-but-set-variable and
9725         -Wunused-but-set-parameter.
9726
9727         * tree-ssa-pre.c (my_rev_post_order_compute): Remove set but not
9728         used count variable.
9729         * genemit.c (gen_expand, gen_split): Avoid set but not used warnings
9730         when operandN variables aren't used in the body of the expander
9731         or splitter.
9732         * tree-outof-ssa.c (FOR_EACH_ELIM_GRAPH_SUCC,
9733         FOR_EACH_ELIM_GRAPH_PRED): Avoid set but not used warnings.
9734         * tree-ssa-operands.h (FOR_EACH_SSA_TREE_OPERAND): Likewise.
9735         * tree-flow.h (FOR_EACH_IMM_USE_FAST, FOR_EACH_IMM_USE_STMT,
9736         FOR_EACH_IMM_USE_ON_STMT): Likewise.
9737         * tree.h (FOR_EACH_CONSTRUCTOR_ELT): Likewise.
9738         * tree.c (PROCESS_ARG): Likewise.
9739
9740 2010-04-07  Simon Baldwin  <simonb@google.com>
9741
9742         * diagnostic.h (diagnostic_override_option_index): New macro to
9743         set a diagnostic's option_index.
9744         * c-tree.h (c_cpp_error): Add warning reason argument.
9745         * opts.c (_warning_as_error_callback): New.
9746         (register_warning_as_error_callback): Store callback for
9747         warnings enabled via enable_warning_as_error.
9748         (enable_warning_as_error): Call callback, minor code tidy.
9749         * opts.h (register_warning_as_error_callback): Declare.
9750         * c-opts.c (warning_as_error_callback): New, set cpp_opts flag in
9751         response to -Werror=.
9752         (c_common_init_options): Register warning_as_error_callback in opts.c.
9753         * common.opt: Add -Wno-cpp option.
9754         * c-common.c (struct reason_option_codes_t): Map cpp warning
9755         reason codes to gcc option indexes.
9756         * (c_option_controlling_cpp_error): New function, lookup the gcc
9757         option index for a cpp warning reason code.
9758         * (c_cpp_error): Add warning reason argument, call
9759         c_option_controlling_cpp_error for diagnostic_override_option_index.
9760         * doc/invoke.texi: Document -Wno-cpp.
9761
9762 2010-04-07  Richard Guenther  <rguenther@suse.de>
9763
9764         * ipa-reference.c (mark_load): Use get_base_address.
9765         (mark_store): Likewise.
9766
9767         * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Avoid
9768         inserting GIMPLE_NOPs into the IL.
9769         * tree-ssa-structalias.c (get_constraint_for_component_ref):
9770         Explicitly strip handled components and indirect references.
9771
9772         * fold-const.c (fold_unary_loc): Do not strip qualifiers when
9773         folding address expressions.
9774         * gimple.c (gimple_ior_addresses_taken_1): Use get_base_address.
9775         * tree-ssa-alias.c (decl_refs_may_alias_p): Do not use
9776         operand_equal_p to compare decls.
9777         (ptr_deref_may_alias_decl_p): Likewise.
9778         * tree-ssa-operands.c (get_asm_expr_operands): Simplify
9779         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond):
9780         Handle reversed comparison ops.
9781         * tree-sra.c (asm_visit_addr): Use get_base_address.
9782         * ipa-prop.c (visit_store_addr_for_mod_analysis): Use get_base_address.
9783         * ipa-reference.c (mark_address): Use get_base_address.
9784
9785 2010-04-07  Richard Guenther  <rguenther@suse.de>
9786
9787         * tree-ssa-forwprop.c (forward_propagate_addr_expr):
9788         Propagate constants everywhere.
9789
9790 2010-04-07  Jakub Jelinek  <jakub@redhat.com>
9791
9792         PR debug/43516
9793         * tree.c (MAX_INT_CACHED_PREC): Define.
9794         (nonstandard_integer_type_cache): New array.
9795         (build_nonstandard_integer_type): Cache results for precision
9796         <= MAX_INT_CACHED_PREC.
9797
9798 2010-04-07  Richard Guenther  <rguenther@suse.de>
9799
9800         * doc/invoke.texi (-fargument-alias, -fargument-noalias,
9801         -fargument-noalias-global, -fargument-noalias-anything): Remove.
9802         * common.opt: Likewise.
9803         * tree-ssa-structalias.c (intra_create_variable_infos): Adjust comment.
9804         * alias.c (base_alias_check): Remove flag_argument_noalias handling.
9805         (nonoverlapping_memrefs_p): Likewise.
9806         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
9807         * opts.c (common_handle_option): Handle OPT_fargument_alias,
9808         OPT_fargument_noalias, OPT_fargument_noalias_anything and
9809         OPT_fargument_noalias_global for backward compatibility.
9810
9811 2010-04-07  Richard Guenther  <rguenther@suse.de>
9812
9813         PR tree-optimization/43270
9814         * tree-vrp.c (check_array_ref): Fix flexible array member detection.
9815         * tree-ssa-sccvn.h (fully_constant_vn_reference_p): Declare.
9816         * tree-ssa-pre.c (phi_translate_1): Adjust.
9817         (fully_constant_expression): Split out vn_reference handling to ...
9818         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): ... here.
9819         Fold reads from constant strings.
9820         (vn_reference_lookup): Handle fully constant references.
9821         (vn_reference_lookup_pieces): Likewise.
9822         * Makefile.in (expmed.o-warn): Add -Wno-error.
9823
9824 2010-04-07  Martin Jambor  <mjambor@suse.cz>
9825
9826         * tree-sra.c (find_param_candidates): Allow scalar va_list types.
9827
9828 2010-04-07  Iain Sandoe  <iains@gcc.gnu.org>
9829
9830         PR driver/41594
9831         * gcc.c: Add -static-libstdc++ to list of recognized options.
9832
9833 2010-04-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9834
9835         * config.gcc (i[34567]86-*-solaris2*): Default with_tune_32 to generic.
9836
9837 2010-04-07  Richard Guenther  <rguenther@suse.de>
9838
9839         PR middle-end/42617
9840         * expr.c (expand_expr_real_1): For TARGET_MEM_REFs with pointer
9841         bases build simple mem attributes to retain points-to information.
9842
9843 2010-04-07  Richard Guenther  <rguenther@suse.de>
9844
9845         PR middle-end/42617
9846         * alias.c (ao_ref_from_mem): Without MEM_OFFSET or MEM_SIZE
9847         preserve points-to related information.
9848
9849 2010-04-07  Richard Guenther  <rguenther@suse.de>
9850
9851         PR middle-end/42617
9852         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not
9853         discard plain indirect references.
9854         * fold-const.c (operand_equal_p): Guard against NULL_TREE type.
9855         * tree.c (tree_nop_conversion): Likewise.
9856
9857 2010-04-07  Dodji Seketeli  <dodji@redhat.com>
9858
9859         PR debug/43628
9860         * dwarf2out.c (modified_type_die): Ignore artificial typedefs.
9861
9862 2010-04-06  Kai Tietz  <kai.tietz@onevision.com>
9863
9864         * config/i386/i386.c (ix86_handle_cconv_attribute): Ignore
9865         calling convention attributes on METHOD_TYPEs for w64 ABI, too.
9866
9867 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
9868
9869         * tree-if-conv.c: Fix indentation and comments.
9870
9871 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
9872
9873         * tree-if-conv.c: Sort static functions in topological order.
9874
9875 2010-04-07  Sebastian Pop  <sebastian.pop@amd.com>
9876
9877         * tree-if-conv.c: Fix indentation and comments.
9878
9879 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9880
9881         PR middle-end/43519
9882         * graphite-clast-to-gimple.c (max_signed_precision_type): Use
9883         lang_hooks.types.type_for_size instead of
9884         build_nonstandard_integer_type.
9885         When converting an unsigned type to signed, double its precision.
9886         (gcc_type_for_interval): Use lang_hooks.types.type_for_size.
9887         (gcc_type_for_iv_of_clast_loop): Call max_signed_precision_type.
9888         (graphite_create_new_loop_guard): When ub + 1 wraps around,
9889         use lb <= ub.
9890
9891 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9892
9893         PR middle-end/43519
9894         * graphite-clast-to-gimple.c (graphite_create_new_loop_guard): Use
9895         POINTER_PLUS_EXPR for pointer types.
9896
9897 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9898
9899         PR middle-end/43519
9900         * Makefile.in (graphite-clast-to-gimple.o): Depends on langhooks.h.
9901         * graphite-clast-to-gimple.c: Include langhooks.h.
9902         (max_signed_precision_type): New.
9903         (max_precision_type): Takes two types as arguments.
9904         (precision_for_value): New.
9905         (precision_for_interval): New.
9906         (gcc_type_for_interval): New.
9907         (gcc_type_for_value): New.
9908         (gcc_type_for_clast_term): New.
9909         (gcc_type_for_clast_red): New.
9910         (gcc_type_for_clast_bin): New.
9911         (gcc_type_for_clast_expr): Split up into several functions.
9912         (gcc_type_for_clast_eq): Rewritten.
9913         (compute_bounds_for_level): New.
9914         (compute_type_for_level_1): New.
9915         (compute_type_for_level): New.
9916         (gcc_type_for_cloog_iv): Removed.
9917         (gcc_type_for_iv_of_clast_loop): Rewritten.
9918         (graphite_create_new_loop): Compute the lower and upper bound types
9919         with gcc_type_for_clast_expr.
9920         (graphite_create_new_loop_guard): Same.
9921         (find_cloog_iv_in_expr): Removed.
9922         (compute_cloog_iv_types_1): Removed.
9923         (compute_cloog_iv_types): Removed.
9924         (gloog): Do not call compute_cloog_iv_types.
9925         * graphite-sese-to-poly.c (new_gimple_bb): Do not initialize
9926         GBB_CLOOG_IV_TYPES.
9927         (free_data_refs_aux): Do not free GBB_CLOOG_IV_TYPES.
9928         * sese.h (struct gimple_bb): Removed field cloog_iv_types.
9929         (GBB_CLOOG_IV_TYPES): Removed.
9930
9931 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9932
9933         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Assert that
9934         gimple_phi_num_args of the loop close SSA phi node is equal to 1.
9935         (detect_commutative_reduction): Same.
9936
9937 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9938
9939         * graphite-clast-to-gimple.c (graphite_verify): Remove redundant
9940         call to verify_ssa.  Invoke verify_loop_closed_ssa with an extra
9941         argument.
9942         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form): Same.
9943         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Same.
9944         (rewrite_commutative_reductions_out_of_ssa): Same.
9945         * passes.c (execute_function_todo): Call verify_ssa for every pass
9946         in the LNO.  Invoke verify_loop_closed_ssa with an extra argument.
9947         * tree-flow.h (verify_loop_closed_ssa): Update declaration.
9948         * tree-parloops.c (parallelize_loops): Invoke verify_loop_closed_ssa
9949         with an extra argument.
9950         * tree-ssa-loop-manip.c (check_loop_closed_ssa_stmt): Same.  Call
9951         verify_ssa only when the extra argument is true.
9952         (gimple_duplicate_loop_to_header_edge): Invoke verify_loop_closed_ssa
9953         with an extra argument.
9954         (tree_transform_and_unroll_loop): Same.
9955
9956 2010-04-06  Sebastian Pop  <sebastian.pop@amd.com>
9957
9958         * passes.c (execute_function_todo): Call verify_loop_closed_ssa
9959         for all the passes of the LNO having LOOP_CLOSED_SSA.
9960         * tree-if-conv.c (pass_if_conversion): Remove TODO_verify_loops.
9961         * tree-loop-distribution.c (pass_loop_distribution): Same.
9962         * tree-pass.h (TODO_verify_loops): Removed.
9963         * tree-ssa-loop.c (pass_tree_loop_init): Same.
9964         (pass_lim): Same.
9965         (pass_tree_unswitch): Same.
9966         (pass_predcom): Same.
9967         (pass_vectorize): Same.
9968         (pass_linear_transform): Same.
9969         (pass_graphite_transforms): Same.
9970         (pass_iv_canon): Same.
9971         (pass_complete_unroll): Same.
9972         (pass_complete_unrolli): Same.
9973         (pass_parallelize_loops): Same.
9974         (pass_loop_prefetch): Same.
9975         (pass_iv_optimize): Same.
9976
9977 2010-04-06  Changpeng Fang  <changpeng.fang@amd.com>
9978
9979         PR middle-end/32824
9980         * passes.c (init_optimization_passes): Move pass_lim before
9981         pass_copy_prop and pass_dce_loop.
9982
9983 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
9984
9985         PR target/43667
9986         * config/i386/i386.c (bdesc_multi_arg): Use OPTION_MASK_ISA_XOP
9987         instead of OPTION_MASK_ISA_AVX for __builtin_ia32_vpermil2p*.
9988         (ix86_expand_args_builtin): Use V*_FTYPE_* enum codes instead of
9989         MULTI_* defines for 4 argument vpermil2p* builtins.
9990
9991 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
9992
9993         * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare.
9994         * config/i386/i386.c (x86_maybe_negate_const_int): New.
9995         (x86_output_mi_thunk): Use x86_maybe_negate_const_int.
9996         * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1,
9997         *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2,
9998         *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext,
9999         *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5):
10000         Use x86_maybe_negate_const_int to output insn mnemonic.
10001         (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto.  Remove overflow
10002         check from instruction predicate.  Update comments.
10003         * config/i386/sync.md (sync_add<mode>): Use
10004         x86_maybe_negate_const_int to output insn mnemonic.
10005
10006 2010-04-06  Jan Hubicka  <jh@suse.cz>
10007
10008         PR tree-optimization/42906
10009         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Add
10010         IGNORE_SELF argument.  Set visited_control_parents for fully
10011         processed BBs.
10012         (find_obviously_necessary_stmts): Update call of
10013         mark_control_dependent_edges_necessary.
10014         (propagate_necessity): Likewise.  Handle PHI edges more curefully.
10015
10016 2010-04-06  Uros Bizjak  <ubizjak@gmail.com>
10017
10018         * config/i386/i386.md: Remove comment about 'e' and 'E'
10019         operand modifier.
10020
10021 2010-04-06  Richard Guenther  <rguenther@suse.de>
10022
10023         PR tree-optimization/43627
10024         * tree-vrp.c (extract_range_from_unary_expr): Widenings
10025         of [1, +INF(OVF)] go to [1, +INF(OVF)] of the wider type,
10026         not varying.
10027
10028 2010-04-06  Jakub Jelinek  <jakub@redhat.com>
10029
10030         * BASE-VER: Change to 4.6.0.
10031
10032         PR target/43638
10033         * config/i386/i386.c (print_operand): Remove 'e' and 'E' code
10034         handling.
10035
10036 2010-04-06  Richard Guenther  <rguenther@suse.de>
10037
10038         PR middle-end/43661
10039         * fold-const.c (fold_comparison): Handle X * 0 CMP 0.
10040
10041 2010-04-05  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10042
10043         * doc/invoke.texi (Optimize Options): Document that LTO
10044         won't remove object access purely due to incompatible
10045         declarations.
10046
10047 2010-04-04  Matthias Klose  <doko@ubuntu.com>
10048
10049         * graphite-sese-to-poly.c (translate_scalar_reduction_to_array):
10050         Initialize variable.
10051
10052 2010-04-03  Richard Guenther  <rguenther@suse.de>
10053
10054         PR middle-end/42509
10055         * alias.c (nonoverlapping_memrefs_p): For spill-slot accesses
10056         require a non-NULL MEM_OFFSET.
10057
10058 2010-04-02  Steven Bosscher  <steven@gcc.gnu.org>
10059
10060         * ada/gcc-interface/Make-lang.in, alias.c, attribs.c, auto-inc-dec.c,
10061         basic-block.h, bb-reorder.c, calls.c, c-common.c, cgraph.h,
10062         collect2.h, config/alpha/alpha.c, config/alpha/alpha.md,
10063         config/alpha/predicates.md, config/arm/arm.md,
10064         config/arm/lib1funcs.asm, config/arm/neon-schedgen.ml,
10065         config/avr/avr.c, config/avr/avr.md, config/bfin/bfin.c,
10066         config/darwin9.h, config/darwin.c, config/darwin.h,
10067         config/h8300/h8300.c, config/i386/cpuid.h, config/i386/cygming.h,
10068         config/i386/cygwin.h, config/i386/mingw32.h, config/i386/msformat-c.c,
10069         config/i386/sol2-10.h, config/i386/xopintrin.h, config/ia64/ia64.c,
10070         config/ia64/ia64.md, config/ia64/sync.md, config/mep/mep.c,
10071         config/mips/mips.md, config/mn10300/mn10300.c,
10072         config/mn10300/mn10300.h, config/pa/pa.c, config/pa/pa.md,
10073         config/rs6000/aix.h, config/rs6000/dfp.md,
10074         config/rs6000/rs6000-builtin.def, config/rs6000/rs6000-c.c,
10075         config/rs6000/vector.md, config/rtems.h, config/rx/rx.md,
10076         config/s390/s390.md, config/sol2-c.c, config/sparc/sol2-bi.h,
10077         config/sparc/sol2-gas.h, config/sparc/sparc.h, config/sparc/sparc.md,
10078         config/sparc/sparc-protos.h, config/spu/spu.c, config/spu/spu-c.c,
10079         config/t-darwin, convert.c, c.opt, c-opts.c, cp/Make-lang.in,
10080         c-pretty-print.c, c-typeck.c, df-core.c, df-scan.c, diagnostic.c,
10081         diagnostic.h, doc/cppopts.texi, doc/cpp.texi, doc/extend.texi,
10082         doc/gimple.texi, doc/languages.texi, doc/plugins.texi, doc/rtl.texi,
10083         doc/standards.texi, doc/tree-ssa.texi, doc/trouble.texi, dominance.c,
10084         fold-const.c, fortran/Make-lang.in, fwprop.c, gcc-plugin.h,
10085         gensupport.c, gimple.h, gimple-iterator.c, graphite.c,
10086         graphite-clast-to-gimple.c, graphite-clast-to-gimple.h,
10087         graphite-dependences.c, graphite-poly.c, graphite-poly.h,
10088         graphite-ppl.c, graphite-ppl.h, graphite-scop-detection.c,
10089         graphite-sese-to-poly.c, graphite-sese-to-poly.h, ifcvt.c, intl.c,
10090         intl.h, ipa.c, ipa-cp.c, ipa-inline.c, ipa-prop.c, ipa-prop.h,
10091         ipa-pure-const.c, ipa-reference.c, ipa-type-escape.c, ira-color.c,
10092         ira-conflicts.c, ira-lives.c, java/Make-lang.in, lambda-code.c,
10093         loop-invariant.c, lto/Make-lang.in, lto-streamer.h, lto-streamer-in.c,
10094         objc/Make-lang.in, objcp/Make-lang.in, omp-low.c, optc-gen.awk,
10095         opt-functions.awk, opth-gen.awk, params.def, passes.c,
10096         postreload-gcse.c, print-tree.c, recog.c, regrename.c, reload.h,
10097         rtl.def, sched-int.h, sched-rgn.c, sel-sched-dump.c, sese.c, sese.h,
10098         store-motion.c, stor-layout.c, tree-cfgcleanup.c, tree-chrec.c,
10099         tree-complex.c, tree-data-ref.c, tree.def, tree-eh.c, tree-flow.h,
10100         tree-flow-inline.h, tree.h, tree-loop-distribution.c, tree-outof-ssa.c,
10101         tree-parloops.c, tree-pass.h, tree-predcom.c, tree-profile.c,
10102         tree-scalar-evolution.c, tree-ssa-address.c, tree-ssa-alias.c,
10103         tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
10104         tree-ssa-dse.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
10105         tree-ssa-loop-manip.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
10106         tree-ssa-pre.c, tree-ssa-sccvn.c, tree-ssa-structalias.c,
10107         tree-ssa-uncprop.c, tree-tailcall.c, tree-vect-data-refs.c,
10108         tree-vect-loop.c, tree-vectorizer.h, tree-vect-slp.c, tree-vrp.c,
10109         unwind-dw2-fde-darwin.c, varpool.c: Update copyright years.
10110
10111 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10112
10113         PR other/43620
10114         * doc/install.texi (Prerequisites): Bump Automake version to 1.11.1.
10115         * aclocal.m4: Regenerate.
10116
10117 2010-04-02  Richard Guenther  <rguenther@suse.de>
10118
10119         PR tree-optimization/43629
10120         * tree-ssa-ccp.c (likely_value): Reset all_undefined_operands
10121         if we have seen a constant value.
10122
10123 2010-04-02  Joseph Myers  <joseph@codesourcery.com>
10124
10125         * read-rtl.c (read_rtx_1): Give an error for EOF while looking for ']'.
10126
10127 2010-04-02  Richard Earnshaw  <rearnsha@arm.com>
10128
10129         PR target/43469
10130         * arm.c (legitimize_tls_address): Adjust call to
10131         gen_tls_load_dot_plus_four.
10132         (arm_note_pic_base): New function.
10133         (arm_cannot_copy_insn_p): Use it.
10134         * thumb2.md (tls_load_dot_plus_four): Rework to avoid use of '+' in
10135         constraint.
10136
10137 2010-04-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10138
10139         PR bootstrap/43531
10140
10141         Revert:
10142         2009-09-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10143
10144         * Makefile.in ($(out_object_file)): Depend on
10145         gt-$(basename $(notdir $(out_file))).h.
10146
10147 2010-04-01  Ralf Corsépius <ralf.corsepius@rtems.org>
10148
10149         * config.gcc (lm32-*-rtems*): Add t-lm32.
10150
10151 2010-04-01  Joel Sherrill <joel.sherrill@oarcorp.com>
10152
10153         * config.gcc: Add lm32-*-rtems*.
10154         * config/lm32/rtems.h: New file.
10155
10156 2010-04-01  Dave Korn  <dave.korn.cygwin@gmail.com>
10157
10158         PR target/42609
10159         * config/i386/cygwin.h (CXX_WRAP_SPEC): Disable spec when -mno-cygwin.
10160
10161 2010-04-01  Jakub Jelinek  <jakub@redhat.com>
10162
10163         * dwarf2out.c (output_compilation_unit_header): For
10164         -gdwarf-4 use version 4 instead of version 3.
10165         (output_line_info): For version 4 and above emit additional
10166         maximum ops per insn header field.
10167         (DWARF_LINE_DEFAULT_MAX_OPS_PER_INSN): Define.
10168
10169         * dwarf2out.c (is_c_family, is_java): Remove.
10170         (lower_bound_default): New function.
10171         (add_bound_info, gen_descr_array_type_die): Use it.
10172
10173 2010-04-01  Dodji Seketeli  <dodji@redhat.com>
10174
10175         PR debug/43325
10176         * dwarf2out.c (gen_variable_die): Allow debug info for variable
10177         re-declaration when it happens in a function.
10178
10179 2010-04-01  Aldy Hernandez  <aldyh@redhat.com>
10180
10181         * cgraph.c (cgraph_add_function_insertion_hook): Update comment.
10182         (cgraph_remove_function_insertion_hook): Same.
10183         (cgraph_call_function_insertion_hooks): Same.
10184
10185 2010-04-01  Richard Guenther  <rguenther@suse.de>
10186
10187         PR middle-end/43614
10188         * tree-ssa-address.c (copy_mem_ref_info): Copy TREE_SIDE_EFFECTS
10189         and TREE_THIS_VOLATILE.
10190         (copy_ref_info): Likewise.
10191         * tree-ssa-operands.c (get_tmr_operands): Check TREE_THIS_VOLATILE.
10192         * tree.c (build6_stat): Ignore side-effects of all but arg5
10193         for TARGET_MEM_REF.  Set TREE_THIS_VOLATILE from arg5 of
10194         TARGET_MEM_REF.
10195
10196 2010-04-01  Richard Guenther  <rguenther@suse.de>
10197
10198         PR tree-optimization/43607
10199         * ipa-type-escape.c (check_call): Do not access non-existing
10200         arguments.
10201
10202 2010-04-01  Richard Guenther  <rguenther@suse.de>
10203
10204         PR middle-end/43602
10205         Revert
10206         2010-03-30  Seongbae Park <seongbae.park@gmail.com>
10207                     Jack Howarth <howarth@bromo.med.uc.edu>
10208
10209         * tree-profile.c (tree_init_ic_make_global_vars): Make static
10210         variables TLS.
10211
10212 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10213
10214         * doc/install.texi (Prerequisites): Document libelf usability on
10215         IRIX 5/6 and Solaris 2.
10216         (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
10217         Update GNU as, GNU ld requirements.
10218         (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
10219         Document Sun Studio compiler download.
10220         Update and simplify as, ld recommendations.
10221         (Specific, *-*-solaris2.7): Note obsoletion, removal.
10222
10223 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10224
10225         * config.gcc (i[34567]86-*-solaris2*): Default with_arch_32,
10226         with_tune_32 to pentium4.
10227
10228 2010-04-01  Uros Bizjak  <ubizjak@gmail.com>
10229
10230         * config/i386/cpuid.h (__get_cpuid_max): Move misplaced comment.
10231
10232 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10233
10234         * doc/install.texi (Specific, mips-sgi-irix5): Document IRIX 5
10235         obsoletion, removal.
10236         Update IDO URL.
10237         Document GNU as requirement.
10238         Update configure requirements.
10239         (Specific, mips-sgi-irix6): Document IRIX 6 < 6.5 obsoletion, removal.
10240         Recomment IRIX 6.5.18+.
10241         Document IDF/IDL requirement.
10242         Document GNU as requirement.
10243         Document GNU ld bootstrap failure.
10244         Remove freeware.sgi.com reference.
10245
10246 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10247
10248         * doc/install.texi (Specific, alpha*-dec-osf*): Document Tru64
10249         UNIX V4.0, V5.0 obsoletion, removal.
10250         Remove --with-gc=simple reference.
10251         Update VM requirements during bootstrap.
10252         Remove -oldas bootstrap description.
10253         Update binutils reference.
10254         Remove comparison failure note.
10255
10256 2010-03-31  Richard Guenther  <rguenther@suse.de>
10257             Zdenek Dvorak  <ook@ucw.cz>
10258             Sebastian Pop  <sebastian.pop@amd.com>
10259
10260         PR middle-end/43464
10261         * tree-ssa-copy.c (init_copy_prop): Handle loop close phi nodes
10262         with multiple arguments.
10263         (execute_copy_prop): Remove call to rewrite_into_loop_closed_ssa.
10264
10265 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
10266
10267         * graphite-dependences.c (print_pddr): Call print_pdr with an
10268         extra argument.
10269         * graphite-poly.c (debug_pdr): Add an extra argument for the
10270         verbosity level.
10271         (print_pdr): Same.
10272         (print_pbb_domain): Same.
10273         (print_pbb): Same.
10274         (print_scop_context): Same.
10275         (print_scop): Same.
10276         (print_cloog): Same.
10277         (debug_pbb_domain): Same.
10278         (debug_pbb): Same.
10279         (print_pdrs): Same.
10280         (debug_pdrs): Same.
10281         (debug_scop_context): Same.
10282         (debug_scop): Same.
10283         (debug_cloog): Same.
10284         (print_scop_params): Same.
10285         (debug_scop_params): Same.
10286         (print_iteration_domain): Same.
10287         (print_iteration_domains): Same.
10288         (debug_iteration_domain): Same.
10289         (debug_iteration_domains): Same.
10290         (print_scattering_function): Same.
10291         (print_scattering_functions): Same.
10292         (debug_scattering_function): Same.
10293         (debug_scattering_functions): Same.
10294         * graphite-poly.h (debug_pdr): Update declaration.
10295         (print_pdr): Same.
10296         (print_pbb_domain): Same.
10297         (print_pbb): Same.
10298         (print_scop_context): Same.
10299         (print_scop): Same.
10300         (print_cloog): Same.
10301         (debug_pbb_domain): Same.
10302         (debug_pbb): Same.
10303         (print_pdrs): Same.
10304         (debug_pdrs): Same.
10305         (debug_scop_context): Same.
10306         (debug_scop): Same.
10307         (debug_cloog): Same.
10308         (print_scop_params): Same.
10309         (debug_scop_params): Same.
10310         (print_iteration_domain): Same.
10311         (print_iteration_domains): Same.
10312         (debug_iteration_domain): Same.
10313         (debug_iteration_domains): Same.
10314         (print_scattering_function): Same.
10315         (print_scattering_functions): Same.
10316         (debug_scattering_function): Same.
10317         (debug_scattering_functions): Same.
10318
10319 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
10320
10321         * graphite-poly.c (print_scattering_function_1): New.
10322         (print_scattering_function): Call it.
10323         (print_scop_params): Remove spaces at the end of lines.
10324         (print_cloog): New.
10325         (debug_cloog): New.
10326         * graphite-poly.h (print_cloog): Declared.
10327         (debug_cloog): Declared.
10328
10329 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
10330
10331         * graphite-sese-to-poly.c (graphite_loop_normal_form): Add the IV bump
10332         in loop->header.
10333         * tree-flow.h (canonicalize_loop_ivs): Updated declaration.
10334         * tree-parloops.c (gen_parallel_loop): Add the IV bump in loop->latch.
10335         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Add a new parameter
10336         to switch between adding the IV bump in loop->latch or in loop->header.
10337
10338 2010-03-31  Sebastian Pop  <sebastian.pop@amd.com>
10339
10340         * graphite-poly.c (print_scattering_function): Pretty print following
10341         the scoplib format.
10342         (print_pdr): Same.
10343         (print_pbb_domain): Same.
10344         (dump_gbb_cases): Same.
10345         (dump_gbb_conditions): Same.
10346         (print_pdrs): Same.
10347         (print_pbb): Same.
10348         (print_scop_params): Same.
10349         (print_scop_context): Same.
10350         (print_scop): Same.
10351         (print_pbb_body): New.
10352         (lst_indent_to): New.
10353         (print_lst): Start new lines with a #.
10354         * graphite-poly.h (pbb_bb): New.
10355         (pbb_index): Use pbb_bb.
10356         * graphite-ppl.c (ppl_print_powerset_matrix): Print the number of
10357         disjuncts.
10358         * tree-data-ref.c (dump_data_reference): Start new lines with a #.
10359
10360 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
10361
10362         * dwarf2out.c (size_of_die): For -gdwarf-4 use
10363         uleb128 size instead of fixed 1 or 2 for dw_val_class_loc
10364         and 0 instead of 1 for dw_val_class_flag.
10365         (value_format): For -gdwarf-4 use DW_FORM_sec_offset for
10366         dw_val_class_range_list, dw_val_class_loc_list,
10367         dw_val_class_lineptr and dw_val_class_macptr, use
10368         DW_FORM_flag_present for dw_val_class_flag and
10369         DW_FORM_exprloc for dw_val_class_loc.
10370         (output_die): For -gdwarf-4 print dw_val_class_loc
10371         size as uleb128 instead of 1 or 2 bytes and don't print
10372         anything for dw_val_class_flag.
10373
10374         * var-tracking.c (vt_init_cfa_base): Use cselib_lookup_from_insn
10375         instead of cselib_lookup following by tweaking locs->setting_insn.
10376
10377         PR bootstrap/43596
10378         * cselib.c (cselib_process_insn): Clear cselib_current_insn
10379         even before returning from label, setjmp call or volatile asm
10380         handling.
10381
10382 2010-03-31  Richard Guenther  <rguenther@suse.de>
10383
10384         PR middle-end/43600
10385         * cgraphunit.c (cgraph_output_in_order): Do not allocate
10386         temporary data on stack.
10387
10388 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10389
10390         * config/sparc/sysv4.h (PUSHSECTION_FORMAT): Remove undef.
10391         (PUSHSECTION_ASM_OP): Remove.
10392         (POPSECTION_ASM_OP): Remove.
10393         (PUSHSECTION_FORMAT): Remove.
10394         * config/sol2.h (PUSHSECTION_FORMAT): Define.
10395         * config/sparc/sol2.h [!USE_GAS] (PUSHSECTION_FORMAT): Redefine.
10396         * config/sol2.c (solaris_output_init_fini): Use it.
10397
10398 2010-03-31  Jie Zhang  <jie@codesourcery.com>
10399
10400         PR 43574
10401         * opt-functions.awk (var_type_struct): Use signed char type
10402         for simple variables.
10403
10404 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10405
10406         * config/sol2.c: Include output.h.
10407         (solaris_assemble_visibility): New function.
10408         * config/t-sol2 (sol2.o): Add output.h dependency.
10409         * config/sol2-protos.h (solaris_assemble_visibility): Declare.
10410         * config/sol2.h [!USE_GAS] (TARGET_ASM_ASSEMBLE_VISIBILITY):
10411         Redefine.
10412
10413 2010-03-31  Jakub Jelinek  <jakub@redhat.com>
10414
10415         PR target/43580
10416         * config/arm/arm.c (arm_save_coproc_regs): Use Pmode instead of
10417         V2SImode or XFmode on PRE_DEC.
10418
10419         PR debug/43557
10420         * cfgexpand.c (expand_debug_expr): Handle VOIDmode mode like
10421         BLKmode.
10422
10423 2010-03-31  Jie Zhang  <jie@codesourcery.com>
10424
10425         PR 43562
10426         * reload.h (caller_save_initialized_p): Declare.
10427         * toplev.c (backend_init_target): Don't call
10428         init_caller_save but set caller_save_initialized_p to false.
10429         * caller-save.c (caller_save_initialized_p): Define.
10430         (init_caller_save): Check caller_save_initialized_p.
10431         * ira.c (ira): Call init_caller_save if flag_caller_saves.
10432
10433 2010-03-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10434
10435         PR target/39048
10436         * config.gcc (i[34567]86-*-solaris2*): Add i386/t-fprules-softfp
10437         and soft-fp/t-softfp to tmake_file.
10438         * config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Redefine.
10439         (LIBGCC2_TF_CEXT): Define.
10440         (TF_SIZE): Define.
10441
10442 2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
10443
10444         PR debug/42977
10445         * cselib.c (n_useless_values): Document handling of debug locs.
10446         (n_useless_debug_values, n_debug_values): New variables.
10447         (new_elt_loc_list): Don't add to debug values, keep count.
10448         (promote_debug_loc): New.
10449         (cselib_reset_table): Zero new variables.
10450         (entry_and_rtx_equal_p): Promote debug locs.
10451         (discard_useless_locs): Increment n_useless_debug_values for
10452         debug values.
10453         (remove_useless_values): Adjust n_useless_values and n_debug_values
10454         with n_useless_debug_values.
10455         (add_mem_for_addr): Promote debug locs.
10456         (cselib_lookup_mem): Likewise.
10457         (cselib_lookup_addr): Renamed to...
10458         (cselib_lookup_addr_1): ... this.  Promote debug locs.  Don't call...
10459         (cselib_log_lookup): ... this.  Turn into...
10460         (cselib_lookup_addr): ... new wrapper.
10461         (cselib_lookup_from_insn): New.
10462         (cselib_invalidate_regno): Increment n_useless_debug_values for
10463         debug values.
10464         (cselib_invalidate_mem): Likewise.
10465         (cselib_process_insn): Take n_deleted and n_debug_values into
10466         account to guard remove_useless_value call.
10467         (cselib_finish): Zero n_useless_debug_values.
10468         * cselib.h (cselib_lookup_from_insn): Declare.
10469         * sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
10470         (sched_analyze_2): Likewise.
10471
10472 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
10473
10474         * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
10475         functions.
10476         (adjust_mems): Replace narrowing SUBREG of expression containing
10477         just PLUS, MINUS, MULT and ASHIFT of registers and constants
10478         with operations in the narrower mode.
10479
10480         PR debug/43593
10481         * var-tracking.c (dataflow_set_clear_at_call): Invalidate just
10482         regs_invalidated_by_call instead all call_used_reg_set registers.
10483
10484 2010-03-30  Sebastian Pop  <sebastian.pop@amd.com>
10485
10486         PR middle-end/43430
10487         * tree-vect-slp.c (vect_get_and_check_slp_defs): Replace type
10488         pointer comparisons with types_compatible_p.
10489         * tree-vect-stmts.c (vectorizable_call): Same.
10490         (vectorizable_condition): Same.
10491
10492 2010-03-30  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10493
10494         * config/s390/s390.c (s390_emit_prologue): Omit issuing a dynamic
10495         stack check if the mask would be zero.
10496
10497 2010-03-30  Seongbae Park <seongbae.park@gmail.com>
10498             Jack Howarth <howarth@bromo.med.uc.edu>
10499
10500         * tree-profile.c (tree_init_ic_make_global_vars): Make static
10501         variables TLS.
10502
10503 2010-03-30  Joseph Myers  <joseph@codesourcery.com>
10504
10505         PR other/25232
10506         * libgcc-std.ver (GCC_4.5.0): Define version.  Include __unordxf2
10507         and __unordtf2.
10508         * config/bfin/libgcc-bfin.ver (GCC_4.5.0): Define version.
10509         Include ___unordxf2 and ___unordtf2.
10510         * config/i386/libgcc-glibc.ver: Do not define inheritance from
10511         GCC_4.4.0 here.
10512
10513 2010-03-30  Tarik Graba  <tarik.graba@telecom-paristech.fr>
10514
10515         * config/lm32/t-lm32: New file.
10516         * config.gcc: Use the above file when targetting lm32.
10517
10518 2010-03-28  Duncan Sands  <baldrick@free.fr>
10519
10520         * Makefile.in (PLUGIN_HEADERS): Add except.h.
10521
10522 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
10523
10524         PR middle-end/43431
10525         * tree-vect-loop.c (vect_estimate_min_profitable_iters):
10526         Improve vectorization cost model diagnostic.
10527
10528 2010-03-29  Sebastian Pop  <sebastian.pop@amd.com>
10529
10530         PR middle-end/43436
10531         * tree-vect-data-refs.c (vect_analyze_data_refs): When
10532         compute_data_dependences_for_loop returns false, early exit
10533         and output an extra diagnostic for the failed data reference
10534         analysis.
10535
10536 2010-03-29  Richard Guenther  <rguenther@suse.de>
10537
10538         PR tree-optimization/43560
10539         * tree-ssa-loop-im.c (ref_always_accessed_p): Add store_p parameter.
10540         (can_sm_ref_p): Treat stores to readonly locations as trapping.
10541
10542 2010-03-29  Jie Zhang  <jie@codesourcery.com>
10543
10544         PR 43564
10545         * toplev.c (process_options): Set optimization_default_node
10546         and optimization_current_node.
10547         * opts.c (decode_options): Don't set optimization_default_node
10548         and optimization_current_node.
10549
10550 2010-03-29  Ralf Corsépius  <ralf.corsepius@rtems.org>
10551
10552         * config/rtems.h: Abandon -qrtems_debug.
10553
10554 2010-03-28  Jan Hubicka  <jh@suse.cz>
10555
10556         PR tree-optimization/43505
10557         * cgraph.c (cgraph_clone_node): When clonning a clone, replacement
10558         map should not be copied.
10559
10560 2010-03-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10561
10562         PR middle-end/41674
10563         * cgraphunit.c (cgraph_build_static_cdtor): If target doesn't have
10564         cdtors, set DECL_PRESERVE_P.
10565         * ipa.c (cgraph_externally_visible_p): Return true if declaration
10566         should be preseved.
10567
10568 2010-03-27  Uros Bizjak  <ubizjak@gmail.com>
10569
10570         PR tree-optimization/43528
10571         * stor-layout.c (place_field): Check that constant fits into
10572         unsigned HWI when skipping calculation of MS bitfield layout.
10573
10574 2010-03-27  Jan Hubicka  <jh@suse.cz>
10575
10576         PR middle-end/43391
10577         * varasm.c (make_decl_rtl): Deal with COMMON flag to make
10578         notice_global_symbol work.
10579
10580 2010-03-27  Jakub Jelinek  <jakub@redhat.com>
10581
10582         * dwarf2out.c (dwarf2_debug_hooks): Use dwarf2out_function_decl
10583         instead of dwarf2out_decl.
10584         (struct var_loc_node): Remove section_label field.
10585         (dwarf2out_function_decl): New function.
10586         (dwarf2out_var_location): Don't set section_label field.
10587         (dwarf2out_begin_function): Don't empty decl_loc_table here.
10588
10589 2010-03-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
10590
10591         PR tree-optimization/43544
10592         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
10593         First argument for builtin vectorized function hook is now a
10594         tree to be able to distinguish between machine specific and
10595         standard builtins.
10596         * targhooks.c (default_builtin_vectorized_function): Ditto.
10597         * targhooks.h (default_builtin_vectorized_function): Ditto.
10598         * target.h (struct gcc_target): Ditto.
10599         * tree-vect-stmts.c (vectorizable_function): Ditto.
10600         * config/i386/i386.c (ix86_builtin_vectorized_function): Ditto.
10601         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function):
10602         Ditto.
10603
10604 2010-03-26  Joseph Myers  <joseph@codesourcery.com>
10605
10606         PR c/43381
10607         * c-decl.c (get_parm_info): Assert that decl going in OTHERS has a
10608         nested binding iff it is a FUNCTION_DECL.
10609         (store_parm_decls_newstyle): Pass nested=true to bind for
10610         FUNCTION_DECLs amongst parameters.
10611
10612 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
10613
10614         * var-tracking.c (vt_expand_loc_callback): Don't run
10615         cselib_expand_value_rtx_cb in dummy mode if
10616         cselib_dummy_expand_value_rtx_cb returned false.
10617
10618         * var-tracking.c (emit_note_insn_var_location): For one part
10619         notes with offset 0, don't add EXPR_LIST around the location.
10620         * dwarf2out.c (loc_descriptor, dw_loc_list_1,
10621         add_location_or_const_value_attribute): Adjust for that change.
10622
10623         PR debug/43540
10624         * dwarf2out.c (reg_save): For DW_CFA_expression put regnum
10625         into first operand and location into second.
10626         (dw_cfi_oprnd1_desc): Return dw_cfi_oprnd_reg_num instead of
10627         dw_cfi_oprnd_loc for DW_CFA_expression.
10628         (dw_cfi_oprnd2_desc): Return dw_cfi_oprnd_loc for DW_CFA_expression.
10629         (output_cfa_loc, output_cfa_loc_raw): For DW_CFA_expression
10630         assume first argument is regnum and second argument is location.
10631
10632 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
10633
10634         PR target/42113
10635         * config/alpha/alpha.md (*cmp_sadd_si): Change mode
10636         of scratch register to DImode.  Split to DImode comparison operator.
10637         Use SImode subreg of scratch register in the multiplication.
10638         (*cmp_sadd_sidi): Ditto.
10639         (*cmp_ssub_si): Ditto.
10640         (*cmp_ssub_sidi): Ditto.
10641
10642 2010-03-26  Uros Bizjak  <ubizjak@gmail.com>
10643
10644         PR target/43524
10645         * config/i386/i386.c (ix86_expand_prologue) [TARGET_STACK_PROBE]:
10646         Remove invalid assert and wrong comment.
10647
10648 2010-03-26  Jakub Jelinek  <jakub@redhat.com>
10649
10650         PR debug/43516
10651         * flags.h (final_insns_dump_p): New extern.
10652         * final.c (final_insns_dump_p): New variable.
10653         (rest_of_clean_state): Set it before -fdump-final-insns=
10654         dumping, clear afterwards.
10655         * print-rtl.c (print_rtx): If final_insns_dump_p don't dump
10656         MEM_ALIAS_SET on MEMs.
10657
10658 2010-03-26  David S. Miller  <davem@davemloft.net>
10659
10660         * configure.ac: Fix sparc GOTDATA_OP bug check.
10661         * configure: Rebuild.
10662
10663 2010-03-26  Alan Modra  <amodra@gmail.com>
10664
10665         * config/rs6000/rs6000.md (cmptf_internal2): Correct comparison.
10666
10667 2010-03-25  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10668
10669         * doc/tm.texi (Sections): Document TLS_COMMON_ASM_OP,
10670         TLS_SECTION_ASM_FLAG.
10671
10672 2010-03-25  Jakub Jelinek  <jakub@redhat.com>
10673
10674         PR bootstrap/43511
10675         * config/i386/i386.c (ix86_code_end): Set DECL_WEAK if TARGET_MACHO.
10676         Clear first_function_block_is_cold.
10677
10678         PR c/43385
10679         * gimplify.c (gimple_boolify): Only recurse on __builtin_expect
10680         argument if the argument is truth_value_p.
10681
10682 2010-03-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
10683
10684         * config/rs6000/constraints.md: Update copyright year for my changes.
10685
10686         PR target/43484
10687         * config/rs6000/rs6000.c (rs6000_split_multireg_move): If r0 is
10688         used in reg+reg addressing, swap registers.
10689
10690 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
10691
10692         PR debug/43293
10693         * target.h (struct gcc_target): Add code_end hook.
10694         * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
10695         if not yet defined.
10696         (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
10697         * toplev.c (compile_file): Call targetm.asm_out.code_end
10698         hook before unwind info/debug info output.
10699         * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
10700         * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
10701         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
10702         * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
10703         (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
10704         * config/i386/i386.c (ix86_file_end): Renamed to...
10705         (ix86_code_end): ... this.  Make static.  Don't call
10706         file_end_indicate_exec_stack.  Emit unwind info using
10707         final_start_function/final_end_function.
10708         (darwin_x86_file_end): Remove.
10709         (TARGET_ASM_CODE_END): Define.
10710         * config/i386/i386.h (TARGET_ASM_FILE_END,
10711         NEED_INDICATE_EXEC_STACK): Don't define.
10712         * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
10713         (TARGET_ASM_FILE_END): Define to darwin_file_end.
10714         * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
10715         * doc/tm.texi (TARGET_ASM_CODE_END): Document.
10716
10717         PR target/43498
10718         * config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
10719         at the beginning and final_end_function at the end.
10720         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
10721
10722 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10723
10724         * configure.ac (i[34567]86-*-*): Handle Solaris 2/x86 TLS support
10725         and Sun as TLS syntax.
10726         (TLS_SECTION_ASM_FLAG) [on_solaris && !gas_flag]: Define.
10727         * configure: Regenerate.
10728         * config.in: Regenerate.
10729         * varasm.c (TLS_SECTION_ASM_FLAG): Define default.
10730         (default_elf_asm_named_section): Use it.
10731         * config/i386/i386.c (output_pic_addr_const): Lowercase @DTPOFF.
10732         (i386_output_dwarf_dtprel): Likewise.
10733         (output_addr_const_extra): Likewise.
10734         (output_pic_addr_const): Lowercase @GOTTPOFF.
10735         (output_addr_const_extra): Likewise.
10736         (output_pic_addr_const): Lowercase @GOTNTPOFF.
10737         (output_addr_const_extra): Likewise.
10738         (output_pic_addr_const): Lowercase @INDNTPOFF.
10739         (output_addr_const_extra): Likewise.
10740         (output_pic_addr_const): Lowercase @NTPOFF.
10741         (output_addr_const_extra): Likewise.
10742         (output_pic_addr_const): Lowercase @TPOFF.
10743         (output_addr_const_extra): Likewise.
10744         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Lowercase @TLSGD.
10745         (*tls_global_dynamic_64): Likewise.
10746         (*tls_local_dynamic_base_32_gnu): Lowercase @TLSLDM.
10747         (*tls_local_dynamic_base_64): Lowercase @TLSLD.
10748
10749         * defaults.h (TLS_COMMON_ASM_OP): Provide default.
10750         (ASM_OUTPUT_TLS_COMMON): Use it.
10751         * config/i386/sol2-gas.h (TLS_COMMON_ASM_OP): Undef.
10752
10753         PR target/38118
10754         * config.gcc (sparc*-*-solaris2*) [$gas=yes]: Add usegas.h to tm_file.
10755         * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Move ...
10756         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): ... here.
10757         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Redefine.
10758         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
10759         (ASM_DECLARE_OBJECT_NAME) [!USE_GAS]: Redefine.
10760
10761 2010-03-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10762
10763         * config/i386/i386.c (override_options): Don't accept
10764         -mtls-dialect=sun any longer.
10765         * config/i386/i386.h (TARGET_SUN_TLS): Define as 0.
10766         * config/i386/i386.md (*tls_global_dynamic_32_sun): Remove.
10767         (*tls_local_dynamic_base_32_sun): Likewise.
10768         * config/i386/sol2.h (TARGET_SUN_TLS): Redefine.
10769
10770 2010-03-24  Jakub Jelinek  <jakub@redhat.com>
10771
10772         PR debug/43508
10773         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
10774         VEC_{MERGE,SELECT,CONCAT,DUPLICATE}.
10775
10776         PR debug/43479
10777         * ira.c (adjust_cleared_regs): New function.
10778         (update_equiv_regs): Adjust cleared_regs in DEBUG_INSNs.
10779
10780         PR debug/19192
10781         PR debug/43479
10782         * cfgexpand.c (gimple_assign_rhs_to_tree): Also set TREE_BLOCK
10783         from gimple_block.
10784         * expr.c (expand_expr_real): Restore previous
10785         curr_insn_source_location and curr_insn_block after
10786         expand_expr_real_1 call.
10787         (expand_expr_real_1) <case SSA_NAME>: Call expand_expr_real
10788         instead of expand_expr_real_1.
10789
10790 2010-03-23  Vladimir Makarov  <vmakarov@redhat.com>
10791
10792         PR rtl-optimization/43413
10793         * ira-color.c (setup_allocno_available_regs_num): Count prohibited
10794         hard regs too.
10795
10796 2010-03-22  James E. Wilson  <wilson@codesourcery.com>
10797
10798         PR target/43348
10799         * ia64.md (call_nogp, call_value_nogp, sibcall_nogp, call_gp,
10800         call_value_gp, sibcall_gp): Use 's' constraint not 'i'.
10801
10802 2010-03-22  H.J. Lu  <hongjiu.lu@intel.com>
10803
10804         * config/i386/i386.c (ix86_target_string): Add -mfma.
10805         Fix a typo in comment.
10806
10807 2010-03-22  Mike Stump  <mikestump@comcast.net>
10808
10809         PR target/23071
10810         * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align):
10811         Don't overly align based upon packed packed fields.
10812
10813 2010-03-22  Jason Merrill  <jason@redhat.com>
10814
10815         * c-pretty-print.c (pp_c_specifier_qualifier_list) [VECTOR_TYPE]:
10816         Use () rather than [], and move before the element type.
10817
10818 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10819
10820         * doc/configfiles.texi (Configuration Files): Removed
10821         fixinc/Makefile*, intl/Makefile.*.
10822         * doc/makefile.texi: Fixed markup. Abstract from version
10823         control system used.
10824         (Makefile): Removed obsolete gcc/java/parse.y example.
10825         * doc/sourcebuild.texi: Likewise.
10826         (Top Level): Added config, gnattools, libdecnumber, libgcc,
10827         libgomp, libssp.  Removed fastjar.
10828         (Miscellaneous Docs): Clarify location.
10829         Added COPYING3, COPYING3.LIB.
10830         (Front End Directory): Moved Make-lang.in entry to new subsubsection.
10831
10832 2010-03-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10833
10834         PR target/38085
10835         * config/i386/i386.c (x86_function_profiler)
10836         [!NO_PROFILE_COUNTERS]: Fix typo.
10837         * config/i386/gmon-sol2.c (_mcleanup) [__x86_64__]: Use call
10838         instead of callq.
10839
10840 2010-03-22  Janis Johnson  <janis187@us.ibm.com>
10841             Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10842
10843         * doc/sourcebuild.texi (Test Directives): Split into six
10844         subsections, with most of the current text in new subsections
10845         Directives, Selectors, and Final Actions.
10846         (Directives): Split list of test directives into multiple
10847         subsubsections.
10848         (Selectors): Describe use and syntax of selectors.
10849         (Effective-Target Keywords): Describe all existing keywords.
10850         (Add Options): Describe features for dg-add-options.
10851         (Require Support): Describe variants of dg-require-support.
10852         (Final Actions): Describe commands to use in dg-final.
10853
10854 2010-03-22  Michael Matz  <matz@suse.de>
10855
10856         PR middle-end/43475
10857         * recog.c (validate_replace_rtx_group): Replace also in
10858         REG_EQUAL and REG_EQUIV notes.
10859
10860 2010-03-22  Richard Guenther  <rguenther@suse.de>
10861
10862         PR tree-optimization/43390
10863         * tree-vect-stmts.c (get_vectype_for_scalar_type): Make
10864         sure vector extracts are type correct.
10865
10866 2010-03-22  Richard Guenther  <rguenther@suse.de>
10867
10868         PR middle-end/40106
10869         * builtins.c (expand_builtin_pow): Expand pow (x, 1.5) as
10870         x * sqrt (x) even when optimizing for size if the target
10871         has native support for sqrt.
10872
10873 2010-03-22  Jakub Jelinek  <jakub@redhat.com>
10874
10875         * varasm.c (make_decl_rtl_for_debug): Also clear
10876         flag_mudflap for the duration of make_decl_rtl call.
10877
10878         PR debug/43443
10879         * var-tracking.c (add_cselib_value_chains): Remove ASM_OPERANDS
10880         locs from preserved VALUEs.
10881
10882 2010-03-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10883
10884         PR middle-end/42718
10885         * pa.md (movmemsi): Set align to one if zero.
10886         (movmemdi): Likewise.
10887
10888 2010-03-21  Richard Earnshaw  <rearnsha@arm.com>
10889
10890         PR target/42321
10891         * arm.c (arm_output_epilogue): Correctly match VFP pop instructions
10892         with their corresponding prologue pushes.
10893
10894 2010-03-20  Andrew Pinski  <pinskia@gmail.com>
10895
10896         PR target/43156
10897         * config/spu/spu.c (spu_expand_prologue): Don't emit NOTE_INSN_DELETED
10898         at the begining or end.
10899         (spu_expand_epilogue): Likewise.
10900
10901 2010-03-20  Richard Guenther  <rguenther@suse.de>
10902
10903         PR rtl-optimization/43438
10904         * combine.c (make_extraction): Properly zero-/sign-extend an
10905         extraction of the low part of a CONST_INT.  Also handle
10906         CONST_DOUBLE.
10907
10908 2010-03-19  Mike Stump  <mikestump@comcast.net>
10909
10910         * config/i386/darwin.h (SUBTARGET32_DEFAULT_CPU): Add.
10911         * config/i386/i386.c (SUBTARGET32_DEFAULT_CPU): Add.
10912         (override_options): Use SUBTARGET32_DEFAULT_CPU.
10913
10914 2010-03-19  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
10915
10916         PR c/43211
10917         * c-decl.c (grokparms): Set arg_types to NULL_TREE if there was
10918         an error.
10919
10920 2010-03-19  Bernd Schmidt  <bernds@codesourcery.com>
10921
10922         PR rtl-optimization/42258
10923         * ira-lives.c (check_and_make_def_conflict): Ignore conflict for a
10924         use that may match DEF.
10925
10926         PR target/40697
10927         * optabs.c (avoid_expensive_constant): Use rtx_cost to find out
10928         the cost of loading the constant rather than assuming
10929         COSTS_N_INSNS (1).
10930         * config/arm/arm.c (thumb1_rtx_costs) <case CONST_INT>: If the
10931         outer code is AND, do the same tests as the andsi3 expander and
10932         return COSTS_N_INSNS (1) if and is cheap.
10933
10934         * optabs.c (avoid_expensive_constant): Fix formatting.
10935
10936 2010-03-19  Michael Matz  <matz@suse.de>
10937
10938         PR c++/43116
10939         * attribs.c (decl_attributes): When rebuilding a function pointer
10940         type use the same qualifiers as the original pointer type.
10941
10942 2010-03-19  Martin Jambor  <mjambor@suse.cz>
10943
10944         * doc/gimple.texi (Logical Operators): Describe is_gimple_ip_invariant
10945         and is_gimple_ip_invariant_address.
10946
10947 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10948
10949         Revert
10950         2009-10-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10951
10952         * config/arm/arm.c (arm_override_options): Turn off
10953         flag_dwarf2_cfi_asm for AAPCS variants.
10954
10955 2010-03-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
10956
10957         PR target/43399
10958         * config/arm/arm.c (emit_multi_reg_push): Update comments.
10959         Use PRE_MODIFY instead of PRE_DEC.
10960         (emit_sfm): Use PRE_MODIFY instead of PRE_DEC.
10961         (vfp_emit_fstmd): Likewise.
10962
10963 2010-03-19  Michael Matz  <matz@suse.de>
10964
10965         PR target/43305
10966         * builtins.c (expand_builtin_interclass_mathfn,
10967         expand_builtin_signbit): Use maybe_emit_unop_insn, emit libcalls
10968         if that fails.
10969
10970 2010-03-19  Richard Guenther  <rguenther@suse.de>
10971
10972         PR tree-optimization/43415
10973         * tree-ssa-pre.c (phi_translate): Split out worker to ...
10974         (phi_translate_1): ... this.
10975         (phi_translate): Move all caching here.  Cache all NARY
10976         and REFERENCE translations.
10977
10978 2010-03-19  David S. Miller  <davem@davemloft.net>
10979
10980         With help from Eric Botcazou.
10981         * config/sparc/sparc.c: Include dwarf2out.h.
10982         (emit_pic_helper): Delete.
10983         (pic_helper_symbol_name): Delete.
10984         (pic_helper_emitted_p): Delete.
10985         (pic_helper_needed): New.
10986         (USE_HIDDEN_LINKONCE): Define to '1' if HAVE_GAS_HIDDEN else '0'.
10987         (get_pc_thunk_name): New.
10988         (load_pic_register): Remove 'delay_pic_helper' arg.  Use
10989         get_thunk_pc_name and ggc_strdup to generate PIC thunk symbol.
10990         Set pic_helper_needed to true.  Don't call emit_pic_helper.
10991         (sparc_expand_prologue): Update load_pic_register call.
10992         (sparc_output_mi_thunk): Likewise.
10993         (sparc_file_end): Emit a hidden comdat symbol for the PIC
10994         thunk if possible.  Output CFI information as needed.
10995
10996 2010-03-18  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
10997             Jack Howarth <howarth@bromo.med.uc.edu>
10998
10999         PR target/36399
11000         * config/i386/i386.h: Fix ABI on darwin x86-32.
11001
11002 2010-03-18  Aldy Hernandez  <aldyh@redhat.com>
11003
11004         * tree.h: Declare make_decl_rtl_for_debug.
11005         * varasm.c (make_decl_rtl_for_debug): New.
11006         * dwarf2out.c (rtl_for_decl_location): Call it.
11007         * cfgexpand.c (expand_debug_expr): Call it.
11008
11009 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
11010
11011         PR bootstrap/43399
11012         * var-tracking.c (adjust_mems) <case POST_MODIFY>: Allow BLKmode
11013         mem_mode.
11014
11015         PR bootstrap/43403
11016         * var-tracking.c (vt_init_cfa_base): Do nothing if
11017         cfa_base_rtx would be hard_frame_pointer_rtx or non-fixed register.
11018
11019 2010-03-18  Alexandre Oliva  <aoliva@redhat.com>
11020
11021         PR debug/42873
11022         * var-tracking.c (canonicalize_vars_star): New.
11023         (dataflow_post_merge_adjust): Use it.
11024
11025 2010-03-18  Jakub Jelinek  <jakub@redhat.com>
11026
11027         PR debug/43058
11028         * var-tracking.c (non_suitable_const): New function.
11029         (add_uses): For DEBUG_INSNs with constants, don't record any
11030         value, instead just the constant value itself.
11031         (compute_bb_dataflow) <case MO_VAL_LOC>: If PAT_VAR_LOCATION_LOC
11032         is not VAR_LOC_UNKNOWN_P, set var to the constant.
11033         (emit_notes_in_bb): Likewise.
11034         (emit_note_insn_var_location): For onepart variables if
11035         cur_loc is a VOIDmode constant, use DECL_MODE.
11036
11037 2010-03-18  Martin Jambor  <mjambor@suse.cz>
11038
11039         PR middle-end/42450
11040         * cgraph.h (cgraph_redirect_edge_call_stmt_to_callee): Declare.
11041         * cgraphunit.c (cgraph_materialize_all_clones): Update calls in
11042         all non-clones.  Moved call redirection...
11043         (cgraph_redirect_edge_call_stmt_to_callee): ...to this new function.
11044         (cgraph_materialize_all_clones): Dispose of all
11045         combined_args_to_skip bitmaps.
11046         (verify_cgraph_node): Do not check for edges pointing to wrong
11047         nodes in inline clones.
11048         * tree-inline.c (copy_bb): Call
11049         cgraph_redirect_edge_call_stmt_to_callee.
11050         * ipa.c (cgraph_remove_unreachable_nodes): Call
11051         cgraph_node_remove_callees even when there are used clones.
11052
11053 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
11054
11055         * config/i386/libgcc-glibc.ver: Make GCC_4.5.0 inherit GCC_4.4.0.
11056
11057 2010-03-18  H.J. Lu  <hongjiu.lu@intel.com>
11058
11059         PR target/43383
11060         * config/i386/libgcc-glibc.ver: Add __extendxftf2 to GCC_4.5.0
11061         for 32bit.
11062
11063 2010-03-18  Michael Matz  <matz@suse.de>
11064
11065         PR middle-end/43419
11066         * builtins.c (expand_builtin_pow): Don't transform pow(x, 0.5)
11067         into sqrt(x) if we need to preserve signed zeros.
11068
11069 2010-03-18  Steven Bosscher  <steven@gcc.gnu.org>
11070             Eric Botcazou  <ebotcazou@adacore.com>
11071
11072         PR rtl-optimization/43360
11073         * loop-invariant.c (move_invariant_reg): Remove the REG_EQUAL
11074         note if we don't know its invariant status.
11075
11076 2010-03-18  Michael Matz  <matz@suse.de>
11077
11078         PR tree-optimization/43402
11079         * tree-cfgcleanup.c (cleanup_control_expr_graph): Don't follow
11080         PHI chains of ssa names registered for update.
11081
11082 2010-03-17  Peter Bergner  <bergner@vnet.ibm.com>
11083
11084         PR target/42427
11085         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Add support for
11086         non-offsettable and pre_modify update addressing.
11087         * config/rs6000/dfp.md (*movdd_hardfloat32): Make the "0", "1"
11088         and "2" alternatives "#".
11089         (*movdd_softfloat32): Make all alternatives "#";
11090         * config/rs6000/rs6000.md (DIFD): New define_mode_iterator.
11091         (*movdf_hardfloat32): Make the "0", "1" and "2" alternatives "#".
11092         (*movdf_softfloat32): Make all alternatives "#";
11093         (movdi): Use the new DIFD mode iterator to create a common splitter
11094         for movdi, movdf and movdd patterns.
11095
11096 2010-03-18  Shujing Zhao  <pearly.zhao@oracle.com>
11097
11098         * common.opt (dumpdir): Remove redundant tab.
11099
11100 2010-03-17  Martin Jambor  <mjambor@suse.cz>
11101
11102         PR tree-optimization/43347
11103         * tree-sra.c (create_access_replacement): Set TREE_NO_WARNING when the
11104         original base is DECL_ARTIFICIAL or DECL_IGNORED_P.
11105
11106 2010-03-17  Bernd Schmidt  <bernd.schmidt@analog.com>
11107
11108         PR rtl-optimization/42216
11109         * regrename.c (create_new_chain): New function, broken out from...
11110         (scan_rtx_reg): ... here.  Call it.  Handle the case where we are
11111         appending a use to an empty chain.
11112         (build_def_use): Remove previous changes that convert OP_INOUT to
11113         OP_OUT operands; instead detect the case where an OP_INOUT operand
11114         uses a previously untracked register and create an empty chain for it.
11115
11116 2010-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11117
11118         * doc/extend.texi (Function Attributes): Rewrite unfinished
11119         sentence in ms_abi documentation.
11120
11121 2010-03-17  Alan Modra  <amodra@gmail.com>
11122
11123         * config/rs6000/linux64.opt (mprofile-kernel): Use profile_kernel var.
11124         * config/rs6000/linux64.h (TARGET_PROFILE_KERNEL): Define.
11125         (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't use SET_PROFILE_KERNEL.
11126         * config/rs6000/rs6000.c (SET_PROFILE_KERNEL): Don't define.
11127
11128 2010-03-16  Richard Henderson  <rth@redhat.com>
11129
11130         PR middle-end/43365
11131         * tree-eh.c (replace_goto_queue): Also replace in the eh_seq.
11132         (lower_try_finally): Save and restore eh_seq around the expansion
11133         of the try-finally.
11134
11135 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
11136
11137         * graphite-sese-to-poly.c (split_reduction_stmt): Skip debug
11138         statements before splitting block.
11139
11140 2010-03-16  Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11141
11142         * doc/sourcebuild.texi (Testsuites): Fix markup.
11143         Use pathnames relative to gcc/testsuite.
11144         (Test Directives): Move description of how timeout is determined.
11145         (Ada Tests): Favor gnat.exp over ada/acats/tests/gcc.
11146         (C Tests): Correct gcc.misc-tests directory.
11147         Framework tests now live in gcc.test-framework.
11148
11149 2010-03-16  Richard Guenther  <rguenther@suse.de>
11150
11151         PR middle-end/43379
11152         * tree-cfg.c (gimple_merge_blocks): When propagating virtual PHI
11153         operands make sure to merge SSA_NAME_OCCURS_IN_ABNORMAL_PHI properly.
11154
11155 2010-03-16  Aldy Hernandez  <aldyh@redhat.com>
11156             Alexandre Oliva  <aoliva@redhat.com>
11157
11158         PR tree-optimization/42917
11159         * lambda-code.c (remove_iv): Skip debug statements.
11160         (lambda_loopnest_to_gcc_loopnest): Likewise.
11161         (not_interesting_stmt): Debug statements are not interesting.
11162
11163 2010-03-16  Jakub Jelinek  <jakub@redhat.com>
11164
11165         PR debug/43051
11166         PR debug/43092
11167         * cselib.c (cselib_preserve_constants,
11168         cfa_base_preserved_val): New static variables.
11169         (preserve_only_constants): New function.
11170         (cselib_reset_table): If cfa_base_preserved_val is non-NULL, don't
11171         clear its REG_VALUES.  If cselib_preserve_constants, don't
11172         empty the whole hash table, but preserve there VALUEs with constants,
11173         cfa_base_preserved_val and cfa_base_preserved_val plus constant.
11174         (cselib_preserve_cfa_base_value): New function.
11175         (cselib_invalidate_regno): Don't invalidate cfa_base_preserved_val.
11176         (cselib_init): Change argument to int bitfield.  Set
11177         cselib_preserve_constants to whether CSELIB_PRESERVE_CONSTANTS
11178         is in it.
11179         (cselib_finish): Clear cselib_preserve_constants and
11180         cfa_base_preserved_val.
11181         * cselib.h (enum cselib_record_what): New enum.
11182         (cselib_init): Change argument to int.
11183         (cselib_preserve_cfa_base_value): New prototype.
11184         * postreload.c (reload_cse_regs_1): Adjust cselib_init caller.
11185         * dse.c (dse_step1): Likewise.
11186         * cfgcleanup.c (thread_jump): Likewise.
11187         * sched-deps.c (sched_analyze): Likewise.
11188         * gcse.c (local_cprop_pass): Likewise.
11189         * simplify-rtx.c (simplify_replace_fn_rtx): Add argument to callback.
11190         If FN is non-NULL, call the callback always and whenever it returns
11191         non-NULL just return that.  Only do rtx_equal_p if FN is NULL.
11192         * rtl.h (simplify_replace_fn_rtx): Add argument to callback.
11193         * combine.c (propagate_for_debug_subst): Add old_rtx argument,
11194         compare from with old_rtx and if it isn't rtx_equal_p, return NULL.
11195         * Makefile.in (var-tracking.o): Depend on $(RECOG_H).
11196         * var-tracking.c: Include recog.h.
11197         (bb_stack_adjust_offset): Remove.
11198         (vt_stack_adjustments): Don't call it, instead just gather the
11199         adjustments using insn_stack_adjust_offset_pre_post on each bb insn.
11200         (adjust_stack_reference): Remove.
11201         (compute_cfa_pointer): New function.
11202         (hard_frame_pointer_adjustment, cfa_base_rtx): New static variables.
11203         (struct adjust_mem_data): New type.
11204         (adjust_mems, adjust_mem_uses, adjust_mem_stores, adjust_insn): New
11205         functions.
11206         (get_address_mode): New function.
11207         (replace_expr_with_values): Use it.
11208         (use_type): Don't do cselib_lookup for VAR_LOC_UNKNOWN_P.
11209         Use get_address_mode.  For cfa_base_rtx return MO_CLOBBER.
11210         (adjust_sets): Remove.
11211         (add_uses): Don't add extra MO_VAL_USE for cfa_base_rtx plus constant.
11212         Use get_address_mode.
11213         (get_adjusted_src): Remove.
11214         (add_stores): Don't call it.  Never reuse expr SET.  Don't add extra
11215         MO_VAL_USE for cfa_base_rtx plus constant.  Use get_address_mode.
11216         (add_with_sets): Don't call adjust_sets.
11217         (fp_setter, vt_init_cfa_base): New functions.
11218         (vt_initialize): Change return type to bool.  Move most of pool etc.
11219         initialization to the beginning of the function from end.  Pass
11220         CSELIB_RECORD_MEMORY | CSELIB_PRESERVE_CONSTANTS to cselib_init.
11221         If !frame_pointer_needed, call vt_stack_adjustment before mos
11222         vector is filled, call vt_init_cfa_base if argp/framep has been
11223         eliminated to sp.  If frame_pointer_needed and argp/framep has
11224         been eliminated to hard frame pointer, set
11225         hard_frame_pointer_adjustment and call vt_init_cfa_base after
11226         encountering fp setter in the prologue.  For MO_ADJUST, call
11227         log_op_type before pusing the op into mos vector, not afterwards.
11228         Call adjust_insn before cselib_process_insn/add_with_sets,
11229         call cancel_changes (0) afterwards.
11230         (variable_tracking_main_1): Adjust for vt_initialize calling
11231         vt_stack_adjustments and returning whether it succeeded or not.
11232
11233 2010-03-15  Aldy Hernandez  <aldyh@redhat.com>
11234
11235         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Skip
11236         debug statements.
11237
11238 2010-03-15  Jakub Jelinek  <jakub@redhat.com>
11239
11240         * dwarf2out.c (dwarf2out_frame_debug): Don't assert drap_reg
11241         has been set.
11242         (based_loc_descr): Use DW_OP_fbreg for vdrap_reg even when
11243         drap_reg has not been set.
11244
11245 2010-03-15  Michael Matz  <matz@suse.de>
11246
11247         PR middle-end/43300
11248         * tree-outof-ssa.c (emit_partition_copy): New argument sizeexp,
11249         use it to expand block copies.
11250         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
11251         insert_part_to_rtx_on_edge): Adjust callers of emit_partition_copy.
11252         (insert_value_copy_on_edge): Use store_expr for BLKmode values.
11253
11254 2010-03-15  Richard Guenther  <rguenther@suse.de>
11255
11256         PR tree-optimization/43367
11257         * tree-cfg.c (gimple_can_merge_blocks_p): Simplify PHI
11258         elimination check.
11259
11260 2010-03-15  Richard Guenther  <rguenther@suse.de>
11261
11262         PR tree-optimization/43317
11263         * ipa-struct-reorg.c (create_new_general_access): Update stmt.
11264
11265 2010-03-15  Martin Jambor  <mjambor@suse.cz>
11266
11267         PR tree-optimization/43141
11268         * tree-sra.c (create_abstract_origin): New function.
11269         (modify_function): Call create_abstract_origin.
11270
11271 2010-03-15  Chris Demetriou  <cgd@google.com>
11272
11273         * Makefile.in (stmp-int-hdrs): Don't chmod include/stdint.h if it
11274         wasn't copied.
11275
11276 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11277
11278         PR middle-end/43354
11279         * graphite-sese-to-poly.c (rewrite_close_phi_out_of_ssa): Do not
11280         call insert_out_of_ssa_copy for default definitions.
11281
11282 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11283
11284         * graphite-clast-to-gimple.c (my_long_long): Defined.
11285         (gcc_type_for_cloog_iv): Use it instead of long_long_integer_type_node.
11286         * graphite-sese-to-poly.c (my_long_long): Defined.
11287         (scop_ivs_can_be_represented): Use it.
11288
11289 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11290
11291         * doc/invoke.texi: Fix documentation of graphite-max-nb-scop-params,
11292         graphite-max-bbs-per-function, and loop-block-tile-size.
11293         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Replace "maximal"
11294         with "maximum".
11295         (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Same.
11296
11297 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11298
11299         * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop): Remove
11300         forward declaration.
11301         * graphite-sese-to-poly.c (reduction_phi_p): Remove FIXME comment.
11302         (add_upper_bounds_from_estimated_nit): New.
11303         (build_loop_iteration_domains): Use it.
11304
11305 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11306
11307         * doc/invoke.texi (PARAM_LOOP_BLOCK_TILE_SIZE): Document.
11308
11309 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11310
11311         PR middle-end/43306
11312         * tree-chrec.c (evolution_function_right_is_integer_cst): CHREC_RIGHT
11313         should be an INTEGER_CST.  Also handle CASE_CONVERT.
11314
11315 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11316
11317         * graphite.c (graphite_initialize): To bound the number of bbs per
11318         function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
11319         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared.
11320         * doc/invoke.texi: Document it.
11321
11322 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11323
11324         * graphite-sese-to-poly.c (build_poly_scop): Do not return bool.
11325         * graphite-sese-to-poly.h (build_poly_scop): Same.
11326
11327 2010-03-13  Sebastian Pop  <sebastian.pop@amd.com>
11328
11329         * graphite-sese-to-poly.c (build_poly_scop): Limit scops following
11330         the number of parameters in the scop.  Use as an upper bound
11331         PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS.
11332         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Declared.
11333         * doc/invoke.texi: Document it.
11334
11335 2010-03-13  Jerry Quinn  <jlquinn@optonline.net>
11336
11337         * Makefile.in (TEXI_GCCINT_FILES): Remove c-tree.texi.
11338         * doc/c-tree.texi: Remove.
11339         * doc/generic.texi: Merge c-tree.texi here.
11340         * doc/gccint.texi (Trees): Remove menu entry.
11341         (c-tree.texi): Remove @include.
11342         * doc/rtl.texi (Reading RTL): Update pxref from Trees to GENERIC.
11343         * doc/languages.texi (Reading RTL): Ditto.
11344
11345 2010-03-12  Steve Ellcey  <sje@cup.hp.com>
11346
11347         PR target/42869
11348         * config/ia64/sync.md (sync_compare_and_swap): Move memory fence.
11349
11350 2010-03-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
11351
11352         PR middle-end/42431
11353         * gcc/config/rs6000/rs6000.c (rs6000_emit_move): Delete band-aid
11354         code added to work around reload clobbering CONST insns.
11355
11356 2010-03-12  Jakub Jelinek  <jakub@redhat.com>
11357
11358         * cselib.c (LONG_TERM_PRESERVED_VALUE_P): Remove.
11359         (cselib_preserve_definitely, cselib_clear_preserve): Remove.
11360         (cselib_preserve_only_values): Remove retain argument, don't
11361         traverse hash table with cselib_{preserve_definitely,clear_preserve}.
11362         * cselib.h (cselib_preserve_only_values): Remove retain argument.
11363         * var-tracking.c (micro_operation): Move insn field before union.
11364         Add DEF_VEC_O and DEF_VEC_ALLOC_O for this type.
11365         (struct variable_tracking_info_def): Remove n_mos field, change
11366         mos into a vector of micro_operations.
11367         (count_uses, count_uses_1, count_stores, count_with_sets): Remove.
11368         (bb_stack_adjust_offset, log_op_type, add_uses, add_stores,
11369         compute_bb_dataflow, emit_notes_in_bb): Adjust for VTI (bb)->mos
11370         changing into a vector.
11371         (add_with_sets): Likewise.  Ensure MO_VAL_USE uops from add_stores
11372         come before all other uops generated by add_stores.
11373         (vt_add_function_parameters): Adjust for cselib_preserve_only_values
11374         argument removal.
11375         (vt_initialize): Likewise.  Adjust for VTI (bb)->mos changing into
11376         a vector.  Run just one pass over the bbs instead of separate counting
11377         and computation phase.
11378         (vt_finalize): Free VTI (bb)->mos vector instead of array.
11379
11380         PR debug/43329
11381         * tree-inline.c (remap_decls): Put old_var rather than origin_var
11382         into *nonlocalized_list vector.
11383         * dwarf2out.c (gen_formal_parameter_die): Call decl_ultimate_origin
11384         even if origin is non-NULL.
11385         (gen_variable_die): Likewise.
11386         (process_scope_var): Don't change origin.
11387         (gen_decl_die): Likewise.
11388         * tree-cfgcleanup.c (remove_forwarder_block): Check single_pred_p
11389         before adding new edges instead of after it, fix moving over
11390         debug stmts.
11391
11392 2010-03-11  David S. Miller  <davem@davemloft.net>
11393
11394         * configure.ac (gcc_cv_as_cfi_advance_working): Skip a multiple
11395         of four.
11396         * configure: Rebuild.
11397
11398 2010-03-11  Martin Jambor  <mjambor@suse.cz>
11399
11400         PR tree-optimization/43257
11401         * tree.c (assign_assembler_name_if_neeeded): New function.
11402         (free_lang_data_in_cgraph): Assembler name assignment moved to the
11403         above new function.
11404         * tree.h (assign_assembler_name_if_neeeded): Declare.
11405         * cgraphunit.c (cgraph_analyze_function): Create an assembler name for
11406         the function if needed.
11407
11408 2010-03-11  Chris Demetriou  <cgd@google.com>
11409
11410         * Makefile.in (stmp-int-hdrs): Make include/unwind.h,
11411         include/stdint-gcc.h, and include/stdint.h world-readable.
11412
11413 2010-03-11  Richard Guenther  <rguenther@suse.de>
11414
11415         PR tree-optimization/43255
11416         * tree-vrp.c (process_assert_insertions_for): Do not insert
11417         asserts for trivial conditions.
11418
11419 2010-03-11  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
11420
11421         PR tree-optimization/43280
11422         * tree-ssa-math-opts.c (find_bswap_1): Modify symbolic number
11423         generation.  Move calculation of size out of the if branch.
11424         (find_bswap): Modify compare number generation.
11425
11426 2010-03-11  Richard Guenther  <rguenther@suse.de>
11427
11428         PR lto/43200
11429         * lto-streamer-in.c (maybe_fixup_decls): Simplify.
11430         (input_gimple_stmt): Fixup handled component types during
11431         operand read.  Also fix up decls in ADDR_EXPRs.
11432
11433 2010-03-10  Eric Botcazou  <ebotcazou@adacore.com>
11434
11435         * config/sparc/sol2-bi.h (CC1_SPEC): Default to -mcpu=v9 for -m32.
11436         * config/sparc/t-sol2-64 (MULTILIB_DIRNAMES): Use sparcv8plus.
11437
11438 2010-03-10  Jan Hubicka  <jh@suse.cz>
11439
11440         PR c/43288
11441         * ipa.c (function_and_variable_visibility) Normalize COMMON bits.
11442         * varasm.c (get_variable_section): Don't do that here...
11443         (make_decl_rtl): ... and here.
11444         (do_assemble_alias): Produce decl RTL.
11445         (assemble_alias): Likewise.
11446
11447 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
11448
11449         PR debug/43290
11450         * reg-notes.def (REG_CFA_SET_VDRAP): New note.
11451         * dwarf2out.c (dwarf2out_frame_debug_expr): Remove rule 20 - setting
11452         of fde->vdrap_reg.
11453         (dwarf2out_frame_debug): Handle REG_CFA_SET_VDRAP note.
11454         (based_loc_descr): Only express drap or vdrap regno based expressions
11455         using DW_OP_fbreg when not optimizing.
11456         * config/i386/i386.c (ix86_get_drap_rtx): When not optimizing,
11457         make the vDRAP = DRAP assignment RTX_FRAME_RELATED_P and add
11458         REG_CFA_SET_VDRAP note.
11459
11460 2010-03-10  Alexander Monakov  <amonakov@ispras.ru>
11461
11462         PR tree-optimization/43236
11463         * tree-loop-distribution.c (generate_memset_zero): Fix off-by-one
11464         error in calculation of base address in reverse iteration case.
11465         (generate_builtin): Take number of latch executions if the statement
11466         is in the latch.
11467
11468 2010-03-10  Andrey Belevantsev  <abel@ispras.ru>
11469
11470         PR middle-end/42859
11471         * tree-eh.c: Include pointer-set.h.
11472         (lower_eh_dispatch): Filter out duplicate case labels and
11473         remove the unneeded edge when the label is unused.  Return
11474         true when some edges are removed.
11475         (execute_lower_eh_dispatch): When any lowering resulted in
11476         removing an edge, also delete unreachable blocks.
11477
11478 2010-03-10  Jakub Jelinek  <jakub@redhat.com>
11479
11480         PR bootstrap/43287
11481         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Handle
11482         UNSPEC_MACHOPIC_OFFSET.
11483
11484 2010-03-09  Andreas Schwab  <schwab@linux-m68k.org>
11485
11486         PR target/43294
11487         * config/m68k/m68k.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
11488         (m68k_delegitimize_address): New function.
11489
11490 2010-03-09  Jakub Jelinek  <jakub@redhat.com>
11491
11492         PR debug/43299
11493         * dwarf2out.c (const_ok_for_output_1): Return 1 for UNSPECs.
11494
11495         PR debug/43299
11496         * var-tracking.c (adjust_sets): New function.
11497         (count_with_sets, add_with_sets): Use it.
11498         (get_adjusted_src): New inline function.
11499         (add_stores): Use it.
11500
11501         PR debug/43304
11502         * var-tracking.c (vt_expand_loc_callback) <case SUBREG>: If dummy,
11503         call cselib_dummy_expand_value_rtx_cb instead of
11504         cselib_expand_value_rtx_cb.
11505
11506         PR debug/43293
11507         * config/i386/t-i386 (i386.o): Depend on debug.h and dwarf2out.h.
11508         * config/i386/i386.c: Include debug.h and dwarf2out.h.
11509         (ix86_file_end): If dwarf2out_do_cfi_asm (), emit .cfi_startproc
11510         and .cfi_endproc around the pic thunks.
11511         (output_set_got): For TARGET_DEEP_BRANCH_PREDICTION pic, ensure
11512         all queued unwind info register saves are saved before the call.
11513         For !TARGET_DEEP_BRANCH_PREDICTION pic, ensure the call is
11514         considered as sp-=4 for unwind info and the pop as sp+=4 which
11515         also clobbers dest, but doesn't actually restore it.
11516
11517         PR debug/43290
11518         * config/i386/i386.c (ix86_get_drap_rtx): Don't set
11519         RTX_FRAME_RELATED_P.
11520
11521 2010-03-09  Jie Zhang  <jie@codesourcery.com>
11522
11523         * config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
11524         whitespaces in output template.
11525
11526 2010-03-09  Jie Zhang  <jie@codesourcery.com>
11527
11528         * ira-lives.c (check_and_make_def_use_conflict): Don't fall
11529         out array boundary.
11530
11531 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
11532
11533         * Makefile.in (check_gcc_parallelize): Run dg-torture.exp and
11534         builtins.exp in a separate job.
11535
11536 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11537
11538         * graphite-sese-to-poly.c (add_param_constraints): Use
11539         lower_bound_in_type and upper_bound_in_type.
11540
11541 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11542
11543         * graphite-sese-to-poly.c (add_param_constraints): Use sizetype
11544         instead of unsigned_type_node.
11545
11546 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11547             Reza Yazdani  <reza.yazdani@amd.com>
11548
11549         PR middle-end/43065
11550         * graphite-sese-to-poly.c (add_param_constraints): Insert bounds
11551         on pointer type parameters.
11552
11553 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
11554
11555         PR middle-end/42644
11556         PR middle-end/42130
11557         * graphite-clast-to-gimple.c (clast_to_gcc_expression): Also
11558         handle conversions from pointer to integers.
11559         (gcc_type_for_cloog_iv): Choose the smalles signed integer as an
11560         induction variable, to be able to work with code generated by CLooG.
11561         * graphite-sese-to-poly.c (scop_ivs_can_be_represented): New.
11562         (build_poly_scop): Bail out if we cannot codegen a loop.
11563
11564 2010-03-08  Tobias Grosser  <grosser@fim.uni-passau.de>
11565
11566         * graphite-clast-to-gimple.c (translate_clast): Do not short-cut
11567         code generation with gloog_error.
11568
11569 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11570
11571         * sese.c (expand_scalar_variables_ssa_name): Add new argument for type.
11572         Call fold_convert on all the returned values.
11573         (expand_scalar_variables_expr): Pass to
11574         expand_scalar_variables_ssa_name the type of the resulting expression.
11575
11576 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11577
11578         * graphite-ppl.c (ppl_min_for_le_polyhedron): Renamed
11579         ppl_min_for_le_pointset.
11580         Use ppl_Pointset_Powerset_C_Polyhedron_minimize.
11581         * graphite-ppl.h (ppl_min_for_le_polyhedron): Update declaration.
11582
11583 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11584
11585         * graphite-dependences.c (map_into_dep_poly): Removed.
11586         (dependence_polyhedron_1): Use combine_context_id_scat.
11587
11588 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11589
11590         * graphite-poly.h (struct poly_scattering): Add layout documentation.
11591         (struct poly_bb): Same.
11592         (combine_context_id_scat): New.
11593
11594 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11595
11596         PR middle-end/42326
11597         * sese.c (name_defined_in_loop_p): Return false for default
11598         definitions.
11599
11600 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11601
11602         * graphite-clast-to-gimple.c (find_cloog_iv_in_expr): Simplify
11603         and clean up the logic.
11604
11605 2010-03-08  Sebastian Pop  <sebastian.pop@amd.com>
11606
11607         * graphite-sese-to-poly.c (add_param_constraints): Enabled: remove
11608         early return.
11609
11610 2010-03-08  Jakub Jelinek  <jakub@redhat.com>
11611
11612         * var-tracking.c (remove_cselib_value_chains): Define only for
11613         ENABLE_CHECKING.
11614         (dataflow_set_preserve_mem_locs, dataflow_set_remove_mem_locs,
11615         delete_slot_part, emit_notes_for_differences_1): Don't call
11616         remove_cselib_value_chains here.
11617         (set_slot_part, emit_notes_for_differences_2): Don't call
11618         add_cselib_value_chains here.
11619         (preserved_values): New vector.
11620         (preserve_value): New function.
11621         (add_uses, add_stores, vt_add_function_parameters): Use it
11622         instead of cselib_preserve_value.
11623         (changed_values_stack): New vector.
11624         (check_changed_vars_0): New function.
11625         (check_changed_vars_1, check_changed_vars_2): Use it.
11626         (emit_notes_for_changes): Call set_dv_changed (*, false) on all
11627         changed_values_stack VALUEs.
11628         (vt_emit_notes): For all preserved_values call
11629         add_cselib_value_chains.  If ENABLE_CHECKING call
11630         remove_cselib_value_chains before verifying value_chains is empty.
11631         Initialize and free changed_values_stack.
11632         (vt_initialize): Initialize preserved_values.
11633         (vt_finalize): Free preserved_values.
11634
11635 2010-03-08  Richard Guenther  <rguenther@suse.de>
11636
11637         PR tree-optimization/43269
11638         * tree-ssa-dse.c (dse_possible_dead_store_p): Fix post-dom
11639         region detection.
11640
11641 2010-03-08  Martin Jambor  <mjambor@suse.cz>
11642
11643         * ipa-prop.h (struct ipa_param_descriptor): Removed the called field.
11644         (ipa_is_param_called): Removed.
11645         * ipa-prop.c (ipa_note_param_call): Do not set the called flag.
11646         (ipa_print_node_params): Do not print the called flag.
11647         (ipa_write_node_info): Do not stream the called flag.
11648         (ipa_read_node_info): Likewise.
11649
11650 2010-03-07  Jakub Jelinek  <jakub@redhat.com>
11651
11652         PR debug/43176
11653         * Makefile.in (var-tracking.o): Depend on pointer-set.h.
11654         * cselib.c (struct expand_value_data): Add dummy field.
11655         (cselib_expand_value_rtx, cselib_expand_value_rtx_cb): Initialize
11656         dummy to false.
11657         (cselib_dummy_expand_value_rtx_cb): New function.
11658         (cselib_expand_value_rtx_1): If evd->dummy is true, don't allocate
11659         any rtl.
11660         * cselib.h (cselib_dummy_expand_value_rtx_cb): New prototype.
11661         * var-tracking.c: Include pointer-set.h.
11662         (variable): Change n_var_parts to char from int.  Add
11663         cur_loc_changed and in_changed_variables fields.
11664         (variable_canonicalize): Remove.
11665         (shared_var_p): New inline function.
11666         (unshare_variable): Maintain cur_loc_changed and
11667         in_changed_variables fields.  If var was in changed_variables,
11668         replace it there with new_var.  Just copy cur_loc instead of
11669         resetting it to something else.
11670         (variable_union): Don't recompute cur_loc.  Use shared_var_p.
11671         (dataflow_set_union): Don't call variable_canonicalize.
11672         (loc_cmp): If both x and y are DEBUG_EXPRs, compare uids
11673         of their DEBUG_EXPR_TREE_DECLs.
11674         (canonicalize_loc_order_check): Verify that cur_loc is NULL
11675         and in_changed_variables and cur_loc_changed is false.
11676         (variable_merge_over_cur): Clear cur_loc, in_changed_variables
11677         and cur_loc_changed.  Don't update cur_loc here.
11678         (variable_merge_over_src): Don't call variable_canonicalize.
11679         (dataflow_set_preserve_mem_locs): Use shared_var_p.  When
11680         removing loc that is equal to cur_loc, clear cur_loc,
11681         set cur_loc_changed and ensure variable_was_changed is called.
11682         (dataflow_set_remove_mem_locs): Use shared_var_p.  Only
11683         compare pointers in cur_loc check, if it is equal to loc,
11684         clear cur_loc and set cur_loc_changed.  Don't recompute cur_loc here.
11685         (variable_different_p): Remove compare_current_location argument,
11686         don't compare cur_loc.
11687         (dataflow_set_different_1): Adjust variable_different_p caller.
11688         (variable_was_changed): If dv had some var in changed_variables
11689         already, reset in_changed_variables flag for it and propagate
11690         cur_loc_changed over to the new variable.  On empty var
11691         always set cur_loc_changed.  Set in_changed_variables on whatever
11692         var is added to changed_variables.
11693         (set_slot_part): Clear cur_loc_changed and in_changed_variables.
11694         Use shared_var_p.  When removing loc that is equal to cur_loc,
11695         clear cur_loc and set cur_loc_changed.  If cur_loc is NULL at the
11696         end, don't set it to something else, just call variable_was_changed.
11697         (delete_slot_part): Use shared_var_p.  When cur_loc equals to
11698         loc being removed, clear cur_loc and set cur_loc_changed.
11699         Set cur_loc_changed if all locations have been removed.
11700         (struct expand_loc_callback_data): New type.
11701         (vt_expand_loc_callback): Add dummy mode in which no rtxes are
11702         allocated.  Always create SUBREGs if simplify_subreg failed.
11703         Prefer to use cur_loc, when that fails and still in
11704         changed_variables (and seen first time) recompute it.  Set
11705         cur_loc_changed of variables which had to change cur_loc and
11706         compute elcd->cur_loc_changed if any of the subexpressions used
11707         had to change cur_loc.
11708         (vt_expand_loc): Adjust to pass arguments in
11709         expand_loc_callback_data structure.
11710         (vt_expand_loc_dummy): New function.
11711         (emitted_notes): New variable.
11712         (emit_note_insn_var_location): For VALUEs and DEBUG_EXPR_DECLs
11713         that weren't used for any other decl in current
11714         emit_notes_for_changes call call vt_expand_loc_dummy to update
11715         cur_loc.  For -fno-var-tracking-assignments, set cur_loc to
11716         first loc_chain location if NULL before.  Always use just
11717         cur_loc instead of first loc_chain location.  When cur_loc_changed
11718         is false, when not --enable-checking=rtl just don't emit any note.
11719         When rtl checking, compute the note and assert it is the same
11720         as previous note.  Clear cur_loc_changed and in_changed_variables
11721         at the end before removing from changed_variables.
11722         (check_changed_vars_3): New function.
11723         (emit_notes_for_changes): Traverse changed_vars to call
11724         check_changed_vars_3 on each changed var.
11725         (emit_notes_for_differences_1): Clear cur_loc_changed and
11726         in_changed_variables.  Recompute cur_loc of new_var.
11727         (emit_notes_for_differences_2): Clear cur_loc if new variable appears.
11728         (vt_emit_notes): Initialize and destroy emitted_notes.
11729
11730 2010-03-07  Bernd Schmidt  <bernd.schmidt@analog.com>
11731
11732         PR rtl-optimization/42220
11733         * regrename.c (scan_rtx) <case STRICT_LOW_PART, ZERO_EXTRACT>:
11734         Use verify_reg_tracked to determine if we should use OP_OUT rather
11735         than OP_INOUT.
11736         (build_def_use): If we see an in-out operand for a register that we
11737         know nothing about, treat is an output if possible, fail the block if
11738         not.
11739
11740 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
11741
11742         PR debug/42897
11743         * gimple-iterator.c (gsi_remove): Propagate only PHI DEFs removed
11744         permanently.
11745
11746 2010-03-06  Alexandre Oliva  <aoliva@redhat.com>
11747
11748         PR debug/42897
11749         * tree-vect-loop.c (vect_transform_loop): Kill out-of-loop debug
11750         uses of relevant DEFs that are dead outside the loop too.
11751
11752 2010-03-06  Alexandre Oliva <aoliva@redhat.com>
11753
11754         * var-tracking.c (dataflow_set_merge): Swap src and src2.
11755         Reverted:
11756         2010-01-13  Jakub Jelinek  <jakub@redhat.com>
11757         PR debug/41371
11758         * var-tracking.c (values_to_unmark): New variable.
11759         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
11760         values_to_unmark vector.  Moved body to...
11761         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
11762         instead queue it into values_to_unmark vector.
11763         (vt_find_locations): Free values_to_unmark vector.
11764
11765 2010-03-05  Eric Botcazou  <ebotcazou@adacore.com>
11766
11767         * Makefile.in (PLUGINCC, PLUGINCFLAGS): New variables.
11768         (site.exp): Export them when plugins are enabled.
11769
11770 2010-03-05  Sebastian Pop  <sebastian.pop@amd.com>
11771
11772         PR middle-end/42326
11773         * tree-chrec.c (chrec_fold_plus_1): Do not handle convert expressions
11774         that contain scevs.
11775         (chrec_fold_multiply): Same.
11776
11777 2010-03-04  Andrew Pinski  <andrew_pinski@caviumnetworks.com>
11778
11779         PR c/43248
11780         * c-decl.c (build_compound_literal): Return early if init is
11781         an error_mark_node.
11782
11783 2010-03-04  Martin Jambor  <mjambor@suse.cz>
11784
11785         PR tree-optimization/43164
11786         PR tree-optimization/43191
11787         * tree-sra.c (type_consists_of_records_p): Reject records with
11788         zero-size bit-fields at the end.
11789
11790 2010-03-04  Mike Stump  <mikestump@comcast.net>
11791
11792         * Makefile.in (TAGS): Remove *.y.
11793
11794 2010-03-04  Richard Guenther  <rguenther@suse.de>
11795
11796         PR tree-optimization/40761
11797         * tree-ssa-pre.c (compute_antic): Walk reverse postorder
11798         in reverse order.
11799         (my_rev_post_order_compute): New function.
11800         (init_pre): Call it.
11801
11802 2010-03-04  Changpeng Fang  <changpeng.fang@amd.com>
11803
11804         PR middle-end/43209
11805         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Do not
11806         decrease the cost of an IV candidate when the cost is infinite.
11807
11808 2010-03-04  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11809
11810         * doc/extend.texi (Vector Extensions, X86 Built-in Functions):
11811         Use '3DNow!' for the extension of that name, ensure normal space
11812         after the string.
11813         * doc/invoke.texi (i386 and x86-64 Options): Likewise.
11814
11815 2010-03-03  Jeff Law  <law@redhat.com>
11816
11817         * PR middle-end/32693
11818         * expmed.c (store_bit_field_1): Use gen_lowpart_SUBREG rather
11819         than gen_rtx_SUBREG.
11820         (extract_bit_field_1): Likewise.
11821
11822 2010-03-03  Janis Johnson  <janis187@us.ibm.com>
11823
11824         * doc/sourcebuild.texi (Test directives): Document that arguments
11825         include-opts and exclude-opts are now optional for dg-skip-if,
11826         dg-xfail-if, dg-xfail-run-if, and dg-shouldfail.
11827
11828 2010-03-03  Jason Merrill  <jason@redhat.com>
11829
11830         PR c++/12909
11831         * cgraph.h (varpool_node): Add extra_name field.
11832         * varpool.c (varpool_extra_name_alias): New.
11833         (varpool_assemble_decl): Emit extra name aliases.
11834         (varpool_mark_needed_node): Look past an extra name alias.
11835         * lto-streamer.h (LTO_tags): Add LTO_var_decl_alias.
11836         * lto-streamer-in.c (lto_input_tree): Read it.
11837         * lto-streamer-out.c (output_unreferenced_globals): Write it.
11838
11839 2010-03-03  Eric Botcazou  <ebotcazou@adacore.com>
11840
11841         * config.gcc (sparc64-*-solaris2*, sparc-*-solaris2*): Merge into...
11842         (sparc*-*-solaris2*): ...this.
11843
11844 2010-03-03  Jakub Jelinek  <jakub@redhat.com>
11845
11846         PR debug/43229
11847         * cfgexpand.c (expand_debug_expr): Handle DOT_PROD_EXPR,
11848         WIDEN_MULT_EXPR and WIDEN_SUM_EXPR.  Return NULL without
11849         ICE for vector expressions, ADDR_SPACE_CONVERT_EXPR,
11850         FIXED_CONVERT_EXPR, OBJ_TYPE_REF and WITH_SIZE_EXPR.
11851
11852         PR debug/43237
11853         * dwarf2out.c (add_bound_info): If a decl bound doesn't have decl_die,
11854         fallthrough to default handling, just with want_address 0 instead of 2.
11855         For single element lists, add_AT_loc directly, otherwise create an
11856         artificial variable DIE and stick location list to it.
11857
11858         PR debug/43177
11859         * var-tracking.c (loc_cmp): Don't assert VALUEs have the same mode.
11860         (VAL_EXPR_HAS_REVERSE): Define.
11861         (reverse_op): New function.
11862         (add_stores): For reversible operations add an extra MO_VAL_USE.
11863
11864 2010-03-02  Jason Merrill  <jason@redhat.com>
11865
11866         * c-pretty-print.c (pp_c_specifier_qualifier_list): Print vector size.
11867
11868 2010-03-02  Eric Botcazou  <ebotcazou@adacore.com>
11869
11870         * config.gcc (sparc-*-linux*): Do not include sparc/gas.h.
11871         (sparc64-*-linux*): Likewise.
11872         (sparc64-*-solaris2*): Include assembler files before linker ones.
11873         (sparc-*-solaris2*): Simplify and reorder to match previous case.
11874         * config/sparc/gas.h: Delete.
11875         * config/sparc/sol2-64.h: Add copyright notice.
11876         * config/sparc/sol2-gas-bi.h: Likewise.
11877         * config/sparc/sol2-gld.h: Likewise.
11878         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Delete.
11879         * config/sparc/sol2.h (TARGET_ASM_NAMED_SECTION): Redefine.
11880         * config/sparc/sol2-gas.h (TARGET_ASM_NAMED_SECTION): Likewise.
11881         * config/sparc/sparc.c (TARGET_ASM_ALIGNED_SI_OP): Never redefine.
11882         (sparc_elf_asm_named_section): Rename into...
11883         (sparc_solaris_elf_asm_named_section): ...this.  Always define.
11884
11885 2010-03-02  Uros Bizjak  <ubizjak@gmail.com>
11886
11887         * config/alpha/alpha.c (override_options): Fix -mtune error message.
11888
11889 2010-03-02  Jeff Law  <law@redhat.com>
11890
11891         PR middle-end/42431
11892         * reload1.c (rtx_p, substitute_stack): Declare.
11893         (substitute): Record addresses of changed rtxs.
11894         (gen_reload_chain_without_interm_reg_p): Don't use copy_rtx anymore.
11895         Restore the original rtx when complete.
11896         (reload): Free subsitute_stack when complete.
11897
11898 2010-03-02  Janis Johnson  <janis187@us.ibm.com>
11899
11900         * doc/gccint.texi (menu): Add Testsuites as a chapter.
11901         * doc/sourcebuild.texi (Testsuites): Move up a level to be a
11902         new chapter.
11903         (Test Idioms, Test Directives, Ada Tests, C Tests, libgcj Tests,
11904         LTO Testing, gcov Testing, profopt Testing, compat Testing,
11905         Torture Tests): Change from subsection to section.
11906
11907 2010-03-02  Jakub Jelinek  <jakub@redhat.com>
11908             Steven Bosscher  <steven@gcc.gnu.org>
11909
11910         * var-tracking.c (vt_initialize): Scan insns in ebb chunks
11911         instead of bb.
11912
11913 2010-03-02  Reza Yazdani  <reza.yazdani@amd.com>
11914
11915         PR middle-end/42640
11916         * tree-loop-distribution.c (update_phis_for_loop_copy): Replaced
11917         the assignment from the new induction variable to the assignment
11918         of the value from the original loop PHI function.
11919
11920 2010-03-01  Janis Johnson  <janis187@us.ibm.com>
11921             Daniel Jacobowitz  <dan@codesourcery.com>
11922
11923         * doc/sourcebuild.texi (Test directives): Clarify options to
11924         dg-skip-if.
11925
11926 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11927
11928         * configure.ac (gcc_cv_as_cfi_directive) [i?86-*-solaris*]:
11929         Disable cfi directives unless GCC and gas agree on using read-only
11930         .eh_frame sections for 64-bit.
11931         * configure: Regenerate.
11932
11933 2010-03-01  Richard Guenther  <rguenther@suse.de>
11934
11935         PR tree-optimization/43220
11936         * tree-ssa-ccp.c (optimize_stack_restore): Do not optimize
11937         BUILT_IN_STACK_{SAVE,RESTORE} around alloca.
11938
11939 2010-03-01  Richard Guenther  <rguenther@suse.de>
11940             Martin Jambor  <mjambor@suse.cz>
11941
11942         PR middle-end/41250
11943         * gimplify.c (gimplify_body): Unset DECL_HAS_VALUE_EXPR_P on
11944         gimplified parameters.
11945
11946 2010-03-01  Christian Bruel  <christian.bruel@st.com>
11947
11948         * except.c (dw2_build_landing_pads): set LABEL_PRESERVE_P.
11949
11950 2010-03-01  H.J. Lu  <hongjiu.lu@intel.com>
11951
11952         * config/i386/linux64.h (ASM_SPEC): Use SPEC_32 and SPEC_64.
11953
11954 2010-03-01  Richard Guenther  <rguenther@suse.de>
11955
11956         PR middle-end/43213
11957         * expr.c (expand_assignment): Use the alias-oracle to tell
11958         if the rhs aliases the result decl.
11959
11960 2010-03-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
11961
11962         PR pch/14940
11963         * config/host-solaris.c (HOST_HOOKS_GT_PCH_GET_ADDRESS): Redefine
11964         to sol_gt_pch_get_address.
11965         (TRY_EMPTY_VM_SPACE): Define for all combinations of 32 and
11966         64-bit, SPARC and x86.
11967         (sol_gt_pch_get_address): New function.
11968
11969 2010-03-01  Marco Poletti  <poletti.marco@gmail.com>
11970
11971         * toplev.h (inform_n, error_n): Declare.
11972         * diagnostic.c (inform_n, error_n): New function.
11973
11974 2010-03-01  Jakub Jelinek  <jakub@redhat.com>
11975
11976         * cfgexpand.c (expand_used_vars): If an artificial non-ignored var
11977         has no rtl yet when processing local_decls, queue it and recheck
11978         if deferred stack allocation hasn't assigned it rtl.
11979
11980 2010-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
11981
11982         * config/sh/sh.c (unspec_bbr_uid): New.
11983         (gen_block_redirect): Use it instead of INSN_UID.
11984         (gen_far_branch): Likewise.
11985
11986 2010-02-28  H.J. Lu  <hongjiu.lu@intel.com>
11987
11988         * config/i386/darwin.h (TARGET_SUBTARGET32_ISA_DEFAULT): Make
11989         it the same as TARGET_SUBTARGET64_ISA_DEFAULT.
11990
11991 2010-02-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
11992
11993         * doc/invoke.texi (Warning Options, RX Options): Fix typos.
11994         (Warning Options): -Wno-conversion-null is valid for
11995         Objective-C++ as well.
11996         * doc/tm.texi (Named Address Spaces): Likewise.
11997         * doc/plugins.texi (Plugins): Replace TABs with spaces.
11998         * doc/tree-ssa.texi (Tree SSA): Likewise.
11999
12000 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
12001
12002         PR bootstrap/43202
12003         * config.gcc: Don't enable SSE math for i[34567]86-*-darwin*
12004         by default.  Don't set the default arch for
12005         i[34567]86-*-darwin*|x86_64-*-darwin*.
12006
12007 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
12008
12009         PR bootstrap/43202
12010         * config.gcc: Enable SSE math for i[34567]86-*-darwin* by
12011         default.  Set the default 32bit/64bit archs with $with_arch
12012         instead of $arch for i[34567]86-*-*|x86_64-*-* targets.
12013
12014 2010-02-27  Richard Guenther  <rguenther@suse.de>
12015
12016         PR tree-optimization/43186
12017         * params.def (PARAM_MAX_UNROLL_ITERATIONS): New param.
12018         * doc/invoke.texi (max-completely-peel-loop-nest-depth): Document.
12019         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Limit
12020         unroller iterations.
12021
12022 2010-02-27  H.J. Lu  <hongjiu.lu@intel.com>
12023
12024         * config.gcc: Set the default 32bit/64bit archs if 64bit ISA is
12025         required and i[34567]86-*-* targets don't support 64bit ISA.
12026
12027 2010-02-26  Eric Botcazou  <ebotcazou@adacore.com>
12028
12029         PR ada/43096
12030         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
12031         the same alias set.
12032
12033 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
12034
12035         * config.gcc: Set the default arch at least to Prescott for
12036         i[34567]86-*-darwin* and Pentium 4 for i[34567]86-*-* targets
12037         if SSE math is enabled.
12038
12039 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12040
12041         * diagnostic.c (diagnostic_initialize): Update.
12042         (diagnostic_report_diagnostic): Test inhibit_notes_p for
12043         informative notes.
12044         * diagnostic.h (diagnostic_context): New bool inhibit_notes_p.
12045         (diagnostic_inhibit_notes): New.
12046         * toplev.c (process_options): inhibit notes with -fcompare-debug.
12047
12048 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12049
12050         PR c/20631
12051         * doc/cpp.texi: Use c90 instead of c89 and gnu90 instead of gnu89.
12052         * doc/standards.texi: Likewise.
12053         * doc/extend.texi: Likewise.
12054         * doc/trouble.texi: Likewise.
12055         * doc/cppopts.texi: Likewise.
12056         * doc/install.texi: Likewise.
12057         * c.opt (std=c90,std=gnu90): New options.
12058         * c-opts.c (c_common_handle_option): Handle them.
12059
12060 2010-02-26  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12061
12062         PR c/24577
12063         * c-decl.c (undeclared_variable): Use an informative note.
12064
12065 2010-02-26  Richard Guenther  <rguenther@suse.de>
12066
12067         PR tree-optimization/43186
12068         * gimple.h (gimple_fold): Remove.
12069         * gimple.c (gimple_fold): Remove.  Inline into single user ...
12070         * tree-cfgcleanup.c (cleanup_control_expr_graph): ... here.
12071         Try harder for conditions.
12072
12073 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
12074
12075         PR debug/43190
12076         * function.c (used_types_insert): Don't skip through named pointer
12077         types.  Don't use TYPE_MAIN_VARIANT if the original type has a name
12078         and it is different from the main variant's type.
12079
12080 2010-02-26  Nick Clifton  <nickc@redhat.com>
12081
12082         * config/rx/rx.md (sminsi3): Remove bogus alternative.
12083
12084 2010-02-26  H.J. Lu  <hongjiu.lu@intel.com>
12085
12086         * config.gcc: Support --with-fpmath=sse for x86.
12087
12088         * config/i386/ssemath.h: New.
12089
12090         * doc/install.texi (--with-fpmath=sse): Documented.
12091
12092 2010-02-26  Richard Guenther  <rguenther@suse.de>
12093
12094         PR tree-optimization/43188
12095         * tree-vect-stmts.c (get_vectype_for_scalar_type): Do not build
12096         vector types of over-aligned element type.
12097
12098 2010-02-26  Uros Bizjak  <ubizjak@gmail.com>
12099
12100         PR target/43175
12101         * config/i386/i386.c (expand_vec_perm_blend): Use correct
12102         operands in V8HImode subregs.  Fix operand order in VEC_MERGE rtx.
12103
12104 2010-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
12105
12106         * doc/invoke.texi (-fvar-tracking-assignments): Fix typo.
12107
12108 2010-02-26  Jakub Jelinek  <jakub@redhat.com>
12109
12110         * Makefile.in (var-tracking.o): Depend on $(DIAGNOSTIC_H).
12111         * var-tracking.c: Include diagnostic.h.
12112         (debug_dv): New function.
12113         (dump_var): Print DEBUG_EXPR_DECLs as D#N instead of D.-N.
12114
12115         PR debug/43160
12116         * var-tracking.c (dv_onepart_p): Return true for DEBUG_EXPR_DECLs.
12117         (add_value_chain, add_value_chains, remove_value_chain,
12118         remove_value_chains): Handle DEBUG_EXPRs.
12119         (check_changed_vars_1, check_changed_vars_2): Handle DEBUG_EXPR_DECLs.
12120
12121         PR debug/43161
12122         * regcprop.c (struct queued_debug_insn_change): New type.
12123         (struct value_data_entry): Add debug_insn_changes field.
12124         (struct value_data): Add n_debug_insn_changes field.
12125         (debug_insn_changes_pool): New variable.
12126         (free_debug_insn_changes, apply_debug_insn_changes,
12127         cprop_find_used_regs_1, cprop_find_used_regs): New functions.
12128         (kill_value_one_regno): Call free_debug_insn_changes if needed.
12129         (init_value_data): Clear debug_insn_changes and n_debug_insn_changes
12130         fields.
12131         (replace_oldest_value_reg): Don't change DEBUG_INSNs, instead queue
12132         changes for them.
12133         (copyprop_hardreg_forward_1): Don't call apply_change_group for
12134         DEBUG_INSNs.  For a real insn, if there are queued DEBUG_INSN
12135         changes, call cprop_find_used_regs via note_stores.
12136         (copyprop_hardreg_forward): When copying vd from predecessor
12137         which has any queued DEBUG_INSN changes, make sure the pointers are
12138         cleared.  At the end call df_analyze and then if there are any
12139         DEBUG_INSN changes queued at the end of some basic block for still
12140         live registers, apply them.
12141         (pass_cprop_hardreg): Set TODO_df_finish in todo_flags_finish.
12142
12143 2010-02-25  Uros Bizjak  <ubizjak@gmail.com>
12144
12145         * config.gcc (i[34567]86-*-* | x86_64-*-*): Split long line.
12146         (arm*-*-*): Ditto.
12147
12148 2010-02-25  H.J. Lu  <hongjiu.lu@intel.com>
12149
12150         * config.gcc: Set arch/cpu for i[34567]86-*-*|x86_64-*-*
12151         targets.  Set the default with_cpu/with_arch from arch/cpu.
12152         Allow x86-64 and native for with_cpu/with_arch.
12153
12154 2010-02-25  Nicolas Benoit  <nbenoit@tuxfamily.org>
12155
12156         * ebitmap.c: Change calls to verify_popcount with calls to
12157         sbitmap_verify_popcount.
12158         (ebitmap_clear_bit): Fixed map->cacheindex test and
12159         map>cache update when bit clearing results in an empty
12160         element.
12161
12162 2010-02-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
12163
12164         PR target/43154
12165         * config/rs6000/vector.md (VEC_64): New iterator for V2DF, V2DI.
12166         (vec_interleave_high<mode>): Rename from vec_interleave_highv2df
12167         and support both V2DF and V2DI modes.
12168         (vec_interleave_low<mode>): Rename from vec_interleave_lowv2df and
12169         support both V2DF and V2DI modes.
12170         (general): Delete trailing whitespace from a few patterns.
12171
12172         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12173         V2DF/V2DI interleave high/low builtins.
12174
12175         * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_MERGE*): Add
12176         new VSX builtins.
12177
12178         * config/rs6000/rs6000.c (bdesc_2arg): Add support for V2DF/V2DI
12179         interleave high/low functions.
12180
12181 2010-02-25  Gerald Pfeifer  <gerald@pfeifer.com>
12182
12183         * doc/extend.texi (Symbol-Renaming Pragmas): Fix spelling of
12184         #pragma extern_prefix.
12185
12186 2010-02-25  Jakub Jelinek  <jakub@redhat.com>
12187
12188         PR debug/43166
12189         * cfgexpand.c (expand_debug_expr) <case VAR_DECL>: If mode is
12190         BLKmode, assert op0 is a MEM and just adjust its mode.
12191
12192         PR debug/43165
12193         * cfgexpand.c (expand_debug_expr): Don't call simplify_gen_subreg
12194         if bitpos isn't multiple of mode's bitsize.
12195
12196 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12197
12198         * c.opt (-ftemplate-depth=): New.
12199         (-ftemplate-depth-): Deprecate.
12200         * optc-gen.awk: Handle -ftemplate-depth=.
12201         * opth-gen.awk: Likewise.
12202         * c-opts.c (c_common_handle_option): Likewise.
12203         * doc/invoke.texi (-ftemplate-depth-): Replace with -ftemplate-depth=.
12204
12205 2010-02-24  Jason Merrill  <jason@redhat.com>
12206
12207         * doc/invoke.texi: Improve -Wabi and -fabi-version docs.
12208
12209 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12210
12211         * cfg.c (alloc_aux_for_block): Remove inline.
12212         (alloc_aux_for_edge): Likewise.
12213
12214 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12215
12216         * config.gcc: Fix typo in mips-sgi-irix6.[0-4]* obsoletion.
12217
12218 2010-02-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
12219
12220         * config/i386/sol2.h (NO_DBX_BNSYM_ENSYM): Define.
12221         * config/i386/sol2-gas.h: New file.
12222         * config.gcc (i[34567]86-*-solaris2*): Use it.
12223
12224 2010-02-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12225
12226         PR c/43128
12227         * c-typeck.c (ep_convert_and_check): New.
12228         (build_conditional_expr): Use it.
12229         (build_binary_op): Likewise.
12230
12231 2010-02-24  Jakub Jelinek  <jakub@redhat.com>
12232
12233         * regcprop.c (copyprop_hardreg_forward_1): Don't call df_insn_rescan.
12234
12235         PR debug/43150
12236         * gimplify.c (gimplify_type_sizes): Clear DECL_IGNORED_P for VLA
12237         bounds even for -O+.
12238         * var-tracking.c (track_expr_p): If !need_rtl, don't mandate
12239         expr needs to have DECL_NAME set.
12240
12241 2010-02-24  Nick Clifton  <nickc@redhat.com>
12242
12243         * config/mep/mep.c: Include gimple.h.
12244         (mep_function_uses_sp): Delete unused function.
12245         (mep_gimplify_va_arg_expr): Change types of pre_p and post_p
12246         parameters.  Use unsigned integers to count args.  Return a
12247         NULL_RTX instead of an error_mark_node.  Toidy up formatting.
12248
12249 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
12250
12251         PR target/43107
12252         * config/i386/i386.c (avx_vpermilp_parallel): Reject indexes
12253         greater or equal to nelt instead of 2 * nelt.
12254         (expand_vec_perm_1): When op0 and op1 are equal, mask indexes
12255         with nelt - 1.
12256
12257 2010-02-23  Jason Merrill  <jason@redhat.com>
12258
12259         PR debug/42800
12260         * cfgexpand.c (expand_used_vars): Keep artificial non-ignored vars
12261         in cfun->local_decls even if they have register types.
12262
12263         PR c++/42837
12264         * stor-layout.c (place_field): Don't warn about unnecessary
12265         DECL_PACKED if the type is packed.
12266
12267 2010-02-23  Jakub Jelinek  <jakub@redhat.com>
12268
12269         PR target/43139
12270         * config/i386/i386.c (ix86_delegitimize_address): Delegitimize all
12271         GOTOFF relocs, even when the base reg isn't pic pointer.
12272
12273 2010-02-23  Michael Matz  <matz@suse.de>
12274
12275         PR debug/43077
12276         * cfgexpand (expand_debug_expr): Expand TERed ssa names in place.
12277         (expand_gimple_basic_block): Generate and use debug temps if there
12278         are debug uses left after the last real use of TERed ssa names.
12279         Unlink debug immediate uses when they are expanded.
12280
12281 2010-02-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12282
12283         PR 43123
12284         * config/i386/i386.c (override_options): Reorganise to provide
12285         better error messages.
12286
12287 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
12288
12289         PR middle-end/43083
12290         * graphite-scop-detection.c (create_single_exit_edge): Move
12291         the call to find_single_exit_edge to....
12292         (create_sese_edges): ...here.  Don't handle multiple edges
12293         exiting the function.
12294         (build_graphite_scops): Don't handle multiple edges
12295         exiting the function.
12296
12297 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
12298
12299         PR middle-end/43097
12300         * sese.c (get_rename): Assert that old_name is an SSA_NAME.
12301         (rename_variables_in_stmt): Continue when the use is not an SSA_NAME.
12302
12303 2010-02-22  Sebastian Pop  <sebastian.pop@amd.com>
12304
12305         PR middle-end/43026
12306         * sese.c (expand_scalar_variables_expr): Handle COMPONENT_REF.
12307
12308 2010-02-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12309
12310         PR c++/43126
12311         * c-typeck.c (convert_arguments): Print declaration location.
12312         * c-common.c (validate_nargs): Rename as
12313         builtin_function_validate_nargs.
12314         (check_builtin_function_arguments): Update.
12315
12316 2010-02-22  Richard Guenther  <rguenther@suse.de>
12317
12318         PR lto/43045
12319         * tree-inline.c (declare_return_variable): Use the type of
12320         the call stmt lhs if available.
12321
12322 2010-02-22  Duncan Sands  <baldrick@free.fr>
12323
12324         * passes.c (register_pass): Always consider all pass lists when
12325         ref_pass_instance_number is zero.
12326
12327 2010-02-22  Richard Guenther  <rguenther@suse.de>
12328
12329         PR tree-optimization/42749
12330         * tree-tailcall.c (adjust_return_value_with_ops): Drop update
12331         parameter.  Do arithmetic in the original type.
12332         (update_accumulator_with_ops): Likewise.
12333         (adjust_accumulator_values): Adjust.
12334
12335 2010-02-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12336
12337         * config/s390/s390.md ("movqi"): Re-add the mem->mem alternative.
12338         (QI to BLKmode splitter): New splitter.
12339
12340 2010-02-22  H.J. Lu  <hongjiu.lu@intel.com>
12341
12342         * config/i386/i386.c (initial_ix86_tune_features): Turn on
12343         X86_TUNE_INTER_UNIT_MOVES for m_ATOM.
12344
12345 2010-02-22  Richard Guenther  <rguenther@suse.de>
12346
12347         * tree-vect-slp.c (vect_slp_analyze_bb): Fix typo.
12348
12349 2010-02-22  Hans-Peter Nilsson  <hp@bitrange.com>
12350
12351         Migrate crti, crtn, crtbegin, crtend build rules to libgcc.
12352         * config/mmix/t-mmix (EXTRA_MULTILIB_PARTS): Don't set.
12353         ($(T)crti.o, $(T)crtn.o): Remove rules.
12354
12355 2010-02-21  Tobias Burnus  <burnus@net-b.de>
12356
12357         PR fortran/35259
12358         * doc/invoke.texi (-fassociative-math): Document that this
12359         option is automatically enabled for Fortran.
12360
12361 2010-02-20  David S. Miller  <davem@davemloft.net>
12362
12363         * configure.ac: Test if linker and assembler properly support
12364         GOTDATA_OP relocations.
12365         * configure: Rebuild.
12366         * config.in: Likewise.
12367         * config/sparc/sparc.md (UNSPEC_MOVE_GOTDATA): New.
12368         (movsi_lo_sum_pic): Use %gdop_*() relocs if available.
12369         (movsi_high_pic): Likewise.
12370         (movdi_lo_sum_pic): Likewise.
12371         (movdi_high_pic): Likewise.
12372         (movsi_pic_gotdata_op): New pattern.
12373         (movdi_pic_gotdata_op): Likewise.
12374         * config/sparc/sparc.c (legitimize_pic_address): If flag_pic is 2,
12375         emit gen_mov{si,di}_pic_gotdata_op for the GOT slot load.
12376
12377 2010-02-20  Uros Bizjak  <ubizjak@gmail.com>
12378
12379         PR target/43067
12380         * config/i386/sse.md (xop_mulv2div2di3_low): Change type
12381         attribute to ssemul.
12382         (xop_mulv2div2di3_high): Ditto.
12383
12384 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12385
12386         PR c++/35669
12387         * c.opt (Wconversion-null): New option.
12388         * doc/invoke.texi (Wconversion-null): Document.
12389
12390 2010-02-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12391
12392         * common.opt (Wlarger-than-): Add Undocumented.
12393
12394 2010-02-19  Mike Stump  <mikestump@comcast.net>
12395
12396         * config/t-darwin (gt-darwin.h): Remove as Makefile now handles it.
12397
12398 2010-02-19  Jason Merrill  <jason@redhat.com>
12399
12400         PR target/40332
12401         * configure.ac (gcc_cv_as_cfi_advance_working): Check 32-bit advance.
12402         * configure: Likewise.
12403
12404 2010-02-20  Alan Modra  <amodra@gmail.com>
12405
12406         PR middle-end/42344
12407         * cgraph.h (cgraph_make_decl_local): Declare.
12408         * cgraph.c (cgraph_make_decl_local): New function.
12409         (cgraph_make_node_local): Use it.
12410         * cgraphunit.c (cgraph_function_versioning): Likewise.
12411         * ipa.c (function_and_variable_visibility): Likewise.
12412
12413 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
12414
12415         PR bootstrap/43121
12416         * except.c (sjlj_emit_function_enter): Don't call
12417         add_reg_br_prob_note, instead add REG_BR_PROB note to the last insn
12418         directly.
12419         * rtl.h (add_reg_br_prob_note): Remove prototype.
12420
12421 2010-02-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
12422
12423         PR 41779
12424         * c-common.c (conversion_warning): Remove widening conversions
12425         before checking the conversion of integers to reals.
12426
12427 2010-02-19  Mike Stump  <mikestump@comcast.net>
12428
12429         PR middle-end/43125
12430         * c-decl.c (merge_decls): Merge DECL_PRESERVE_P.
12431
12432         PR objc/43061
12433         * cgraphunit.c (process_function_and_variable_attributes): Check
12434         DECL_PRESERVE_P instead of looking up attribute "used".
12435         * ipa-pure-const.c (check_decl): Likewise.
12436         * ipa-reference.c (has_proper_scope_for_analysis): Likewise.
12437         * ipa-type-escape.c (has_proper_scope_for_analysis): Likewise.
12438         * config/sol2.c (solaris_insert_attributes): Set DECL_PRESERVE_P
12439         instead of attribute "used".
12440         * config/sol2-c.c (solaris_pragma_init): Likewise.
12441         (solaris_pragma_fini): Likewise.
12442
12443 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
12444
12445         * ipa-struct-reorg.c (make_field_acc_node, gen_cluster, peel_field):
12446         Use XCNEW instead of xcalloc.
12447         (add_access_to_acc_sites, create_new_var_node, add_alloc_site): Use
12448         XNEW instead of xmalloc.
12449         (get_fields): Use XNEWVEC instead of xmalloc.
12450
12451         PR debug/43084
12452         * ipa-struct-reorg.c (add_access_to_acc_sites): For debug stmts don't
12453         populate vars array.
12454         (create_new_general_access): For debug stmts just reset value.
12455         (get_stmt_accesses): For accesses within debug stmts just record them
12456         using add_access_to_acc_sites instead of preventing the peeling or
12457         counting them as accesses.
12458
12459         PR middle-end/42233
12460         * dojump.c (do_jump) <case TRUTH_NOT_EXPR>: Invert priority.
12461
12462 2010-02-19  Richard Guenther  <rguenther@suse.de>
12463
12464         PR tree-optimization/42916
12465         * tree-vect-slp.c (vect_slp_analyze_bb): Count only real
12466         instructions.
12467
12468 2010-02-19  Andreas Schwab  <schwab@linux-m68k.org>
12469
12470         * configure.ac: Replace all uses of changequote in macro arguments
12471         with proper quoting.
12472
12473 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
12474
12475         PR middle-end/42233
12476         * loop-doloop.c (add_test): Adjust do_compare_rtx_and_jump caller.
12477
12478 2010-02-19  Richard Guenther  <rguenther@suse.de>
12479
12480         PR tree-optimization/42944
12481         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Massage
12482         test for aliasing with errno.
12483
12484 2010-02-19  Jakub Jelinek  <jakub@redhat.com>
12485
12486         PR middle-end/42233
12487         * expr.h (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump,
12488         do_jump_1, do_compare_rtx_and_jump): Add PROB argument.
12489         * dojump.c: Include output.h.
12490         (inv): New inline function.
12491         (jumpifnot, jumpifnot_1, jumpif, jumpif_1, do_jump_1, do_jump,
12492         do_jump_by_parts_greater_rtx, do_jump_by_parts_greater,
12493         do_jump_by_parts_zero_rtx, do_jump_by_parts_equality_rtx,
12494         do_jump_by_parts_equality, do_compare_and_jump): Add PROB
12495         argument, pass it down to other calls.
12496         (do_compare_rtx_and_jump): Likewise.  If PROB is not -1,
12497         add REG_BR_PROB note to the conditional jump.
12498         * cfgexpand.c (add_reg_br_prob_note): Removed.
12499         (expand_gimple_cond): Don't call it, add the probability
12500         as last argument to jumpif_1/jumpifnot_1.
12501         * Makefile.in (dojump.o): Depend on output.h.
12502         * builtins.c (expand_errno_check): Adjust do_compare_rtx_and_jump
12503         callers.
12504         * expmed.c (emit_store_flag_force, do_cmp_and_jump): Likewise.
12505         * stmt.c (do_jump_if_equal): Likewise.
12506         * cfgrtl.c (rtl_lv_add_condition_to_bb): Likewise.
12507         * loop-unswitch.c (compare_and_jump_seq): Likewise.
12508         * config/rs6000/rs6000.c (rs6000_aix_emit_builtin_unwind_init):
12509         Likewise.
12510         * optabs.c (expand_doubleword_shift, expand_abs): Likewise.
12511         * expr.c (expand_expr_real_1): Adjust do_jump, jumpifnot and
12512         jumpifnot_1 callers.
12513         (expand_expr_real_2): Adjust jumpifnot_1 and do_compare_rtx_and_jump
12514         callers.
12515         (store_expr): Adjust jumpifnot caller.
12516         (store_constructor): Adjust jumpif caller.
12517
12518         PR middle-end/42233
12519         * gimplify.c (gimple_boolify): For __builtin_expect call
12520         gimple_boolify also on its first argument.
12521
12522 2010-02-18  Uros Bizjak  <ubizjak@gmail.com>
12523
12524         * configure.ac (gnu-unique-object): Wrap regexps using [] in
12525         changequote block.
12526         (__stack_chk_fail): Ditto.  Remove quadrigraphs.
12527         * configure: Regenerated.
12528
12529 2010-02-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12530
12531         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Call
12532         lang_hooks.types_compatible_p instead of comptypes.
12533
12534 2010-02-18  Sebastian Huber <sebastian.huber@embedded-brains.de>
12535
12536         * config/arm/lib1funcs.asm (__prefer_thumb__): New define.
12537         (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Use Thumb-1 variant
12538         if __prefer_thumb__ is defined.
12539
12540 2010-02-18  Martin Jambor  <mjambor@suse.cz>
12541
12542         PR tree-optimization/43066
12543         * tree-sra.c (build_ref_for_offset_1): Return false on encountering an
12544         array with zero-sized element type.
12545
12546 2010-02-18  Jakub Jelinek  <jakub@redhat.com>
12547
12548         * dwarf2out.c (add_var_loc_to_decl): Change last argument to
12549         rtx, allocate struct var_loc_node here and return it to the
12550         caller, and only if it is actually needed.
12551         (dwarf2out_var_location): Adjust add_var_loc_to_decl caller,
12552         move it earlier and return immediately if it returns NULL.
12553
12554 2010-02-17  Mikael Pettersson  <mikpe@it.uu.se>
12555
12556         * config/sparc/gas.h: New file.  Restore
12557         TARGET_ASM_NAMED_SECTION to its ELF default.
12558         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Do not
12559         check !HAVE_GNU_AS.
12560         * config/sparc/sparc.c (sparc_elf_asm_named_section):
12561         Likewise.  Add ATTRIBUTE_UNUSED to prototype.
12562         * config.gcc (sparc*-*-linux*): Include sparc/gas.h
12563         after sparc/sysv4.h.
12564
12565 2010-02-17  Dave Korn  <dave.korn.cygwin@gmail.com>
12566
12567         * config/i386/mingw32.h (LIBGCJ_SONAME): Fix cut'n'pasto in DLL name.
12568
12569 2010-02-17  Steven Bosscher  <steven@gcc.gnu.org>
12570
12571         * gensupport.c (process_one_cond_exec): Derive name for COND_EXEC
12572         patterns from predicated pattern.
12573
12574 2010-02-17  Uros Bizjak  <ubizjak@gmail.com>
12575
12576         PR target/43103
12577         * config/i386/sse.md (xop_vpermil2<mode>3): Use avxmodesuffixf2c
12578         for insn mnemonic suffix.
12579
12580 2010-02-17  Richard Guenther  <rguenther@suse.de>
12581
12582         * tree-vrp.c (vrp_visit_phi_node): Restrict SCEV analysis
12583         to loop PHI nodes.
12584
12585 2010-02-17  Jakub Jelinek  <jakub@redhat.com>
12586
12587         PR debug/42918
12588         * caller-save.c (save_call_clobbered_regs): If BB ends with
12589         a DEBUG_INSN, move any notes in between last real insn and the last
12590         DEBUG_INSN after the last DEBUG_INSN.
12591
12592 2010-02-16  Joern Rennecke  <joern.rennecke@embecosm.com>
12593
12594         * tm.texi (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD_SPEC):
12595         Fix return type.  Fix argument type.  Explain meaning of return value.
12596
12597 2010-02-16  Richard Guenther  <rguenther@suse.de>
12598
12599         PR tree-optimization/41043
12600         * tree-vrp.c  (vrp_var_may_overflow): Only ask SCEV for real loops.
12601         (vrp_visit_assignment_or_call): Do not ask SCEV for regular
12602         statements ...
12603         (vrp_visit_phi_node): ... but only for loop PHI nodes.
12604
12605 2010-02-16  Ira Rosen  <irar@il.ibm.com>
12606
12607         PR tree-optimization/43074
12608         * tree-vectorizer.h (VECTORIZABLE_CYCLE_DEF): New.
12609         * tree-vect-loop.c (vect_analyze_loop_operations): Add
12610         vectorizable cycles in hybrid SLP check.
12611         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise.
12612
12613 2010-02-16  Richard Guenther  <rguenther@suse.de>
12614
12615         * alias.c (memrefs_conflict_p): Distinguish must-alias from don't know.
12616         (true_dependence): If memrefs_conflict_p computes must-alias
12617         trust it.  Move TBAA check after offset-based disambiguation.
12618         (canon_true_dependence): Likewise.
12619
12620 2010-02-16  Alexandre Oliva  <aoliva@redhat.com>
12621
12622         * params.def (PARAM_MAX_VARTRACK_SIZE): New.
12623         * doc/invoke.texi: Document it.
12624         * var-tracking.c: Include toplev.h and params.h.
12625         (vt_find_locations): Return bool indicating success.  Compute
12626         hash sizes unconditionally.  Check new parameter, report.
12627         (variable_tracking_main_1): Check vt_find_locations results and
12628         retry.  Renamed from...
12629         (variable_tracking_main): ... this.  New wrapper to preserve
12630         flag_var_tracking_assignments.
12631         * Makefile.in (var-tracking.o): Adjust dependencies.
12632
12633 2010-02-16  Jack Howarth <howarth@bromo.med.uc.edu>
12634             Jakub Jelinek <jakub@redhat.com>
12635
12636         PR target/42854
12637         * config/darwin.h (ASM_WEAKEN_DECL): Don't check weak attribute
12638         if weak_import attribute is present.
12639         * config/darwin.c (machopic_select_section): Likewise.
12640
12641 2010-02-15  Joern Rennecke  <joern.rennecke@embecosm.com>
12642
12643         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Document.
12644         (TARGET_VECTORIZE_VECTOR_ALIGNMENT_REACHABLE): Likewise.
12645         (TARGET_VECTORIZE_BUILTIN_VEC_PERM): Likewise.
12646         (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): Likewise.
12647
12648         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_CONVERSION): Fix argument
12649         types.
12650
12651         * doc/tm.texi (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
12652         Fix argument types.
12653
12654         * doc/tm.texi (TARGET_SCHED_DFA_NEW_CYCLE): Add argument names.
12655         Rewrite text to refer to the names.
12656
12657 2010-02-15  Sebastian Pop  <sebastian.pop@amd.com>
12658
12659         * config/i386/i386-builtin-types.def
12660         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT): Declared.
12661         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT): Declared.
12662         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT): Declared.
12663         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT): Declared.
12664         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_VPERMIL2PD,
12665         IX86_BUILTIN_VPERMIL2PS, IX86_BUILTIN_VPERMIL2PD256, and
12666         IX86_BUILTIN_VPERMIL2PS256.
12667         (MULTI_ARG_4_DF2_DI_I): Defined.
12668         (MULTI_ARG_4_DF2_DI_I1): Defined.
12669         (MULTI_ARG_4_SF2_SI_I): Defined.
12670         (MULTI_ARG_4_SF2_SI_I1): Defined.
12671         (bdesc_multi_arg): Add __builtin_ia32_vpermil2pd,
12672         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256, and
12673         __builtin_ia32_vpermil2ps256.
12674         (ix86_expand_multi_arg_builtin): Handle MULTI_ARG_4_DF2_DI_I,
12675         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
12676         MULTI_ARG_4_SF2_SI_I1.  Handle builtins with 4 arguments.
12677         (ix86_expand_args_builtin): Handle MULTI_ARG_4_DF2_DI_I,
12678         MULTI_ARG_4_DF2_DI_I1, MULTI_ARG_4_SF2_SI_I, and
12679         MULTI_ARG_4_SF2_SI_I1.  Handle CODE_FOR_xop_vpermil2v2df3,
12680         CODE_FOR_xop_vpermil2v4sf3, CODE_FOR_xop_vpermil2v4df3, and
12681         CODE_FOR_xop_vpermil2v8sf3.
12682         * config/i386/i386.md (UNSPEC_VPERMIL2): Declared.
12683         * config/i386/sse.md (xop_vpermil2<mode>3): New insn pattern.
12684         * config/i386/xopintrin.h (_mm_permute2_pd): New.
12685         (_mm256_permute2_pd): New.
12686         (_mm_permute2_ps): New.
12687         (_mm256_permute2_ps): New.
12688
12689 2010-02-15  Nick Clifton  <nickc@redhat.com>
12690
12691         * config/h8300/h8300.c (h8300_push_pop): Use bool type for
12692         boolean parameters.  Use emit_jump_insn when emitting a pop
12693         instruction containing a return insn.
12694         (push): Use 'true' rather than '1' as second parameter to F.
12695         (h8300_expand_prologue): Likewise.
12696         Use 'true' and 'false' for boolean parameters to h8300_push_pop.
12697         (h8300_expand_epilogue): Likewise.
12698
12699 2010-02-15  Richard Guenther  <rguenther@suse.de>
12700
12701         PR middle-end/43068
12702         * cgraphunit.c (thunk_adjust): Skip adjusting by fixed_offset
12703         if that is zero.
12704
12705 2010-02-15  Nick Clifton  <nickc@redhat.com>
12706
12707         * config/mn10300/mn10300.h (FUNCTION_ARG_REGNO_P): Revert previous
12708         delta.
12709
12710 2010-02-14  Marco Poletti  <poletti.marco@gmail.com>
12711
12712         * intl.c (fake_ngettext): New function.
12713         * intl.h (fake_ngettext): Declare.
12714         (ngettext): Define macro.
12715         * collect2.c (notice_translated): New function.
12716         (main): Use notice_translated and ngettext.
12717         * collect2.h (notice_translated): Declare.
12718
12719 2010-02-14  Steven Bosscher  <steven@gcc.gnu.org>
12720
12721         * reorg.c (delete_computation): Comment fixes.
12722         * caller-save.c (setup_save_areas): Idem.
12723         * sel-sched-dump.c (dump_lv_set): Idem.
12724         * rtl.def: Idem.
12725
12726 2010-02-14  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12727
12728         * config/s390/s390.c (s390_sched_init): New function.
12729         (TARGET_SCHED_INIT): Target hook defined.
12730
12731 2010-02-12  Dave Korn  <dave.korn.cygwin@gmail.com>
12732             Jack Howarth  <howarth@bromo.med.uc.edu>
12733             Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
12734
12735         PR target/42982
12736         Partial revert of unintended change in fix for PR41605.
12737         * config/darwin.h: Fix typo.
12738         * config/darwin9.h: Same.
12739
12740 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
12741
12742         * c-pch.c (pch_init): Clear v.
12743
12744 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
12745
12746         PR middle-end/42930
12747         * graphite-scop-detection.c (graphite_can_represent_scev): Call
12748         graphite_can_represent_init for MULT_EXPR.
12749
12750 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
12751
12752         PR middle-end/42914
12753         PR middle-end/42530
12754         * graphite-sese-to-poly.c (remove_phi): New.
12755         (translate_scalar_reduction_to_array): Call remove_phi.
12756
12757 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
12758
12759         PR middle-end/42771
12760         * graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
12761         * graphite-clast-to-gimple.h (gloog): Update declaration.
12762         * graphite-poly.c (new_scop): Clear POLY_SCOP_P.
12763         * graphite-poly.h (struct poly_bb): Add missing comments.
12764         (struct scop): Add poly_scop_p field.
12765         (POLY_SCOP_P): New.
12766         * graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
12767         * graphite.c (graphite_transform_loops): Build the polyhedral
12768         representation for each scop before code generation.
12769         * sese.c (rename_variables_in_operand): Removed.
12770         (rename_variables_in_expr): Return the renamed expression.
12771         (rename_sese_parameters): New.
12772         * sese.h (rename_sese_parameters): Declared.
12773
12774 2010-02-11  Richard Guenther  <rguenther@suse.de>
12775
12776         PR tree-optimization/42998
12777         * tree-ssa-pre.c (create_expression_by_pieces): Treat
12778         POINTER_PLUS_EXPR properly.
12779
12780 2010-02-11  Sebastian Pop  <sebastian.pop@amd.com>
12781             Changpeng Fang  <changpeng.fang@amd.com>
12782
12783         PR middle-end/40886
12784         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_condition): Decrement
12785         the cost of an IV candidate when the IV is used in a test against zero.
12786
12787         * gcc.dg/tree-ssa/ivopts-3.c: New.
12788
12789 2010-02-11  Richard Guenther  <rguenther@suse.de>
12790
12791         PR lto/41664
12792         * tree-ssa-alias.c (refs_may_alias_p_1): Canonicalize
12793         pointer-vs-decl case by swapping refs.  Handle some cases
12794         of pointer-vs-decl disambiguations more conservatively.
12795         * cfgexpand.c (gimple_expand_cfg): Set gimple_df->in_ssa_p
12796         to false after expanding.
12797
12798 2010-02-11  Richard Guenther  <rguenther@suse.de>
12799
12800         PR driver/43021
12801         * gcc.c (process_command): Handle LTO file@offset case more
12802         appropriately.
12803
12804 2010-02-11  Jakub Jelinek  <jakub@redhat.com>
12805
12806         * reload1.c (eliminate_regs_1): If insn is DEBUG_INSN, avoid any
12807         modifications outside of the DEBUG_INSN.  Accept CLOBBERs inside
12808         of DEBUG_INSNs.
12809         (eliminate_regs_in_insn): Eliminate regs even in DEBUG_INSNs.
12810
12811         * dwarf2out.c (mem_loc_descriptor) <case MEM>: Use DW_OP_deref_size
12812         if MEM's mode size isn't DWARF2_ADDR_SIZE.
12813         (mem_loc_descriptor) <do_scompare>: Allow also VOIDmode arguments.
12814         Optimize eq/ne comparisons when both arguments are known to be
12815         zero-extended.
12816         (mem_loc_descriptor) <do_ucompare>: Allow also VOIDmode arguments.
12817         Don't mask operands unnecessarily if they are known to be already
12818         zero-extended.
12819
12820 2010-02-10  Vladimir Makarov  <vmakarov@redhat.com>
12821
12822         * ira-conflicts.c (add_insn_allocno_copies): Use find_reg_note
12823         instead of loop.
12824
12825 2010-02-10  Richard Guenther  <rguenther@suse.de>
12826
12827         PR tree-optimization/43017
12828         * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop
12829         for wrapping signed arithmetic.
12830
12831 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
12832
12833         PR debug/43010
12834         * dwarf2out.c (retry_incomplete_types): Don't call gen_type_die
12835         if no debug info should be emitted for it.
12836
12837 2010-02-10  Kaz Kojima  <kkojima@gcc.gnu.org>
12838
12839         * config/sh/sh.c (find_barrier): Skip call insn with a REG_EH_REGION
12840         note when flag_exceptions is set.
12841
12842 2010-02-10  Duncan Sands  <baldrick@free.fr>
12843
12844         * Makefile.in (PLUGIN_HEADERS): Add debug.h.
12845
12846 2010-02-10  Richard Guenther  <rguenther@suse.de>
12847
12848         PR c/43007
12849         * tree.c (get_unwidened): Handle constants.
12850         * convert.c (convert_to_integer): Handle TRUNC_DIV_EXPR.
12851
12852 2010-02-10  Martin Jambor  <mjambor@suse.cz>
12853
12854         PR lto/42985
12855         * ipa-prop.c (ipa_update_after_lto_read): Count parameters and
12856         check for variable argument counts independently.
12857
12858 2010-02-10  Christian Bruel  <christian.bruel@st.com>
12859
12860         PR target/42841
12861         * config/sh/sh.c (find_barrier): Increase length for non delayed
12862         conditional branches.
12863
12864 2010-02-10  Christian Bruel  <christian.bruel@st.com>
12865
12866         * config/sh/sh.c (find_barrier): Don't emit a CP inside the GP setting.
12867
12868 2010-02-10  Jakub Jelinek  <jakub@redhat.com>
12869
12870         * builtins.c (set_builtin_user_assembler_name): Also handle
12871         ffs if int is smaller than word.
12872
12873 2010-02-09  Vladimir Makarov  <vmakarov@redhat.com>
12874
12875         PR middle-end/42973
12876         * ira-conflicts.c (get_dup): Remove.
12877         (process_reg_shuffles): Add new parameter.  Use it as an
12878         additional guard for copy generation.
12879         (add_insn_allocno_copies): Rewrite.
12880
12881 2010-02-09  Alexander Monakov  <amonakov@ispras.ru>
12882
12883         * common.opt (fsched2-use-traces): Preserved for backward
12884         compatibility.
12885         * doc/invoke.texi: Remove the documentation about option
12886         -fsched2-use-traces.
12887         * sched-rgn.c (rest_of_handle_sched2): Remove usage of
12888         flag_sched2_use_traces.
12889         * opts.c (common_handle_option): Add OPT_fsched2_use_traces to
12890         the backward compatibility flag section.
12891
12892 2010-02-09  Richard Guenther  <rguenther@suse.de>
12893
12894         PR tree-optimization/43008
12895         * tree-ssa-structalias.c (handle_lhs_call): Pass in the fndecl,
12896         make HEAP variables initialized from global memory if they
12897         are not known builtin functions.
12898         (find_func_aliases): Adjust.
12899
12900 2010-02-09  Richard Guenther  <rguenther@suse.de>
12901
12902         PR tree-optimization/43000
12903         * tree-vrp.c (vrp_int_const_binop): Only handle unsigned
12904         arithmetic manually.
12905
12906 2010-02-08  Jakub Jelinek  <jakub@redhat.com>
12907
12908         PR tree-optimization/42931
12909         * tree-loop-linear.c (try_interchange_loops): Don't call
12910         double_int_mul if estimated_loop_iterations failed.
12911
12912 2010-02-08  Martin Jambor  <mjambor@suse.cz>
12913
12914         PR middle-end/42898
12915         * tree-sra.c (build_accesses_from_assign): Do not mark in
12916         should_scalarize_away_bitmap if stmt has volatile ops.
12917         (sra_modify_assign): Do not process assigns piecemeal if if stmt
12918         has volatile ops.
12919
12920 2010-02-08  Joern Rennecke  <joern.rennecke@embecosm.com>
12921
12922         * doc/tm.texi (TARGET_UNWIND_WORD_MODE): Document.
12923
12924 2010-02-07  Adam Nemet  <adambnmet@gmail.com>
12925
12926         * config/mips/mips.md (*<optab>_trunc<mode>_exts): Fix comment
12927         before the pattern.
12928
12929 2010-02-07  Andrew Pinski  <pinskia@gmail.com>
12930
12931         PR middle-end/42946
12932         * df-core.c (df_finish_pass): Change type of saved_flags to int.
12933
12934 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
12935
12936         PR middle-end/42988
12937         * graphite-dependences.c (dependence_polyhedron): Set PDDR_KIND
12938         to unknown_dependence.
12939         (graphite_legal_transform_dr): Handle the unknown_dependence.
12940         (graphite_carried_dependence_level_k): Same.
12941
12942 2010-02-07  Sebastian Pop  <sebastian.pop@amd.com>
12943
12944         * ChangeLog.graphite: Remove testsuite/ or gcc/testsuite/.
12945
12946 2010-02-07  Richard Guenther  <rguenther@suse.de>
12947
12948         PR middle-end/42991
12949         * expr.c (get_inner_reference): Always initialize *pbitsize.
12950
12951 2010-02-07  Richard Guenther  <rguenther@suse.de>
12952
12953         PR middle-end/42956
12954         * gimplify.c (gimple_fold_indirect_ref): Avoid generating
12955         new ARRAY_REFs on variable size element or minimal index arrays.
12956         Complete.
12957         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Use
12958         gimple_fold_indirect_ref.
12959
12960 2010-02-06  Richard Earnshaw  <rearnsha@arm.com>
12961
12962         PR target/42957
12963         * arm.c (arm_override_options): Just return if the user has specified
12964         an invalid fpu name.
12965
12966 2010-02-03  Jason Merrill  <jason@redhat.com>
12967
12968         PR c++/42870
12969         * config/i386/cygming.h (ASM_OUTPUT_DEF_FROM_DECLS): Call
12970         i386_pe_maybe_record_exported_symbol.
12971
12972 2010-02-05  Steve Ellcey  <sje@cup.hp.com>
12973
12974         PR target/42924
12975         * config/pa/pa.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
12976         (pa_delegitimize_address): New function.
12977
12978 2010-02-05  Ozkan Sezer  <sezeroz@gmail.com>
12979
12980         * config/i386/msformat-c.c (ms_printf_length_specs): Set the
12981         scalar_identity_flag for the size_t/ptrdiff_t %Id and %Iu specs.
12982
12983 2010-02-05  Richard Guenther  <rguenther@suse.de>
12984
12985         PR lto/42762
12986         * lto-streamer-in.c (get_resolution): Deal with references
12987         to undefined functions.
12988
12989 2010-02-05  Richard Guenther  <rguenther@suse.de>
12990
12991         * tree-ssa-ccp.c (get_symbol_constant_value): Strip all conversions.
12992         (fold_const_aggregate_ref): Likewise.
12993         (ccp_fold_stmt): Substitute loads.
12994         (maybe_fold_reference): Verify types before substituting.
12995         Unshare properly.
12996         (fold_gimple_assign): Unshare properly.
12997         (fold_stmt_1): Insert conversion if necessary before replacing the RHS.
12998
12999 2010-02-05  Nathan Froyd  <froydnj@codesourcery.com>
13000
13001         * config/rs6000/rs6000.c (rs6000_override_options): Invert check
13002         for rs6000_gen_cell_microcode.
13003
13004 2010-02-04  Richard Guenther  <rguenther@suse.de>
13005
13006         PR rtl-optimization/42952
13007         * dse.c (const_or_frame_p): Remove MEM handling.
13008
13009 2010-02-04  Nick Clifton  <nickc@redhat.com>
13010
13011         * config/mn10300/mn10300.c (TARGET_ASM_OUTPUT_MI_THUNK): Define.
13012         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
13013         (function_arg): Use NULL_RTX and FIRST_ARGUMENT_REGNUM.
13014         (mn10300_asm_output_mi_thunk): New function.
13015         (mn10300_can_output_mu_thunk): New function.
13016         * config/mn10300/mn10300.h (FIRST_ARGUMENT_REGNUM): Define.
13017         (FUNCTION_ARG_REGNO_P): Fix comment.  Accept d0 and d1.
13018         (FUNCTION_ARG): Delete incorrect comment.
13019
13020 2010-02-03  Jason Merrill  <jason@redhat.com>
13021
13022         PR c++/40138
13023         * fold-const.c (operand_equal_p): Handle erroneous types.
13024
13025 2010-02-03  Kaushik Phatak  <kaushik.phatak@kpitcummins.com>
13026
13027         * config/h8300/h8300.md (can_delay): Fix attibute condition.
13028
13029 2010-02-03  Vladimir Makarov  <vmakarov@redhat.com>
13030
13031         PR rtl-optimization/42941
13032         * sched-deps.c (setup_insn_reg_pressure_info): Use xcalloc instead
13033         of xmalloc.
13034
13035 2010-02-03  Jason Merrill  <jason@redhat.com>
13036
13037         PR c++/35652
13038         * builtins.c (c_strlen): Use EXPR_LOCATION in diagnostics.
13039
13040 2010-02-03  Alexandre Oliva  <aoliva@redhat.com>
13041
13042         PR debug/42896
13043         * cselib.h (struct cselib_val_struct): Add uid.  Rename value to hash.
13044         (cselib_reset_table): Renamed from...
13045         (cselib_reset_table_with_next_value): ... this.
13046         (cselib_get_next_uid): Renamed from...
13047         (cselib_get_next_unknown_value): ... this.
13048         * cselib.c (next_uid): Renamed from...
13049         (next_unknown_value): ... this.
13050         (cselib_clear_table): Adjust.
13051         (cselib_reset_table): Adjust.  Renamed from...
13052         (cselib_reset_table_with_next_value): ... this.
13053         (cselib_get_next_uid): Adjust.  Renamed from...
13054         (cselib_get_next_unknown_value): ... this.
13055         (get_value_hash): Use hash.
13056         (cselib_hash_rtx): Likewise.
13057         (new_cselib_val): Adjust.  Set and dump uid.
13058         (cselib_lookup_mem): Pass next_uid as hash.
13059         (cselib_subst_to_values): Likewise.
13060         (cselib_log_lookup): Dump uid.
13061         (cselib_lookup): Pass next_uid as hash.  Adjust.
13062         (cselib_process_insn): Adjust.
13063         (cselib_init): Initialize next_uid.
13064         (cselib_finish): Adjust.
13065         (dump_cselib_table): Likewise.
13066         * dse.c (canon_address): Dump value uid.
13067         * print-rtl.c (print_rtx): Print value uid.
13068         * var-tracking.c (VARIABLE_HASH_VAL): Dropped.
13069         (dvuid): New type.
13070         (dv_uid): New function, sort of renamed from...
13071         (dv_htab_hash): ... this, reimplemented in terms of it and...
13072         (dv_uid2hash): ... this.  New.
13073         (variable_htab_eq): Drop excess assertions.
13074         (tie_break_pointers): Removed.
13075         (canon_value_cmp): Compare uids.
13076         (variable_post_merge_New_vals): Print uids.
13077         (vt_add_function_parameters): Adjust.
13078         (vt_initialize): Reset table.  Adjust.
13079
13080 2010-02-03  Richard Guenther  <rguenther@suse.de>
13081
13082         PR tree-optimization/42944
13083         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle calloc.
13084         (call_may_clobber_ref_p_1): Likewise.  Properly handle
13085         malloc and calloc clobbering errno.
13086
13087 2010-02-03  Steven Bosscher  <steven@gcc.gnu.org>
13088
13089         * doc/invoke.texi: Fix name of sched1 dump.
13090
13091         * opts.c (decode_options): Set flag_tree_switch_conversion
13092         only conditionally on optimize >= 2.
13093
13094         * gcse.c: Assorted comment fixes in pass description.
13095
13096 2010-02-03  Anthony Green  <green@moxielogic.com>
13097
13098         * config/moxie/moxie.c (moxie_asm_trampoline_template): Introduce
13099         nop padding in order to maintain alignment of storage location of
13100         target function address.
13101         (moxie_trampoline_init): Store target function address at newly
13102         aligned location.
13103         * config/moxie/moxie.h (TRAMPOLINE_ALIGNMENT): Increase alignment
13104         to 32.
13105         (TRAMPOLINE_SIZE): Increase size by 2 bytes for alignment padding.
13106
13107 2010-02-03  Richard Guenther  <rguenther@suse.de>
13108
13109         PR middle-end/42927
13110         * tree-cfg.c (verify_gimple_assign_binary): Fix shift verification.
13111
13112 2010-02-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13113
13114         * config.gcc: Reenable check for obsolete targets.
13115         Obsolete alpha*-dec-osf4*, alpha*-dec-osf5.0*, mips-sgi-irix5*,
13116         mips-sgi-irix6.[0-4]*.
13117
13118 2010-02-02  Nick Clifton  <nickc@redhat.com>
13119
13120         * config/rx/rx.c (rx_is_legitimate_constant): Treat a maximum
13121         constant size of 4 as being the same as 0.
13122         * doc/invoke.texi (RX Options): Document that -mmax-constant-size
13123         can take values in the range 0..4.
13124
13125 2010-02-02  Jack Howarth  <howarth@bromo.med.uc.edu>
13126
13127         PR java/41991
13128         * unwind-dw2-fde-darwin.c: Re-export _Unwind_FindEnclosingFunction()
13129         as _darwin10_Unwind_FindEnclosingFunction().
13130         * libgcc-libsystem.ver: New.
13131
13132 2010-02-01  Vladimir Makarov  <vmakarov@redhat.com>
13133
13134         PR target/41399
13135         * sched-deps.c (sched_analyze_insn): Ignore fixed registers for
13136         implicitly set registers.
13137
13138 2010-02-01  Richard Earnshaw  <rearnsha@arm.com>
13139
13140         * arm.c (FL_FOR_ARCH_7A): is also a superset of ARMv6K.
13141         (arm_override_options): Allow automatic selection of the thread
13142         pointer register if thumb2.
13143         (legitimize_pic_address): Improve code sequences for Thumb2.
13144         (arm_call_tls_get_addr): Likewise.
13145         (legitimize_tls_address): Likewise.
13146         * arm.md (pic_load_addr_arm): Delete.  Replace with ...
13147         (pic_load_addr_32bit): ... this.  New named pattern.
13148         * thumb2.md (pic_load_addr_thumb2): Delete.
13149         (pic_load_dot_plus_four): Delete.
13150         (tls_load_dot_plus_four): New named pattern.
13151
13152 2010-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13153
13154         PR libgomp/29986
13155         * doc/install.texi (Specific): Add sparc-sun-solaris2.10 entry.
13156         Document fix for TLS bug.
13157
13158 2010-01-31  Richard Guenther  <rguenther@suse.de>
13159
13160         * tree-sra.c (ptr_parm_has_direct_uses): Rewrite to be
13161         conservatively correct.
13162
13163 2010-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13164
13165         PR target/42850
13166         Revert:
13167         2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13168
13169         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
13170
13171 2010-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13172
13173         * doc/install.texi: Update recommended GMP/MPFR/MPC versions.
13174
13175 2010-01-31  Kai Tietz  <kai.tietz@onevision.com>
13176
13177         * config.gcc: Adjust order of makefile fragments for mingw targets.
13178
13179 2010-01-31  Richard Guenther  <rguenther@suse.de>
13180
13181         PR middle-end/42898
13182         * gimplify.c (gimplify_init_constructor): For volatile LHS
13183         initialize a temporary.
13184
13185 2010-01-31  Matthias Klose  <doko@ubuntu.com>
13186
13187         * configure.ac: Fix __stack_chk_fail check for cross builds configured
13188         --with-headers
13189         * configure: Regenerate.
13190
13191 2010-01-29  Eric Botcazou  <ebotcazou@adacore.com>
13192
13193         * tree-ssa-alias.c (same_type_for_tbaa): Return -1 if the types have
13194         the same alias set and their sizes different constantness.
13195         (aliasing_component_refs_p): Revert 2009-10-24 change.
13196
13197 2010-01-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13198
13199         * config/sparc/sparc.c (sparc_elf_asm_named_section): Declare decl
13200         unused.
13201
13202 2010-01-29  Richard Guenther  <rguenther@suse.de>
13203
13204         * tree-ssa-ccp.c (ccp_fold_stmt): Unshare values we substitute.
13205         Assert we successfully updated the call.
13206
13207 2010-01-29  Jakub Jelinek  <jakub@redhat.com>
13208
13209         PR rtl-optimization/42889
13210         * df.h (df_set_bb_dirty_nonlr): New prototype.
13211         * df-core.c (df_set_bb_dirty_nonlr): New function.
13212         * df-scan.c (df_insn_rescan): Call it instead of
13213         df_set_bb_dirty for DEBUG_INSNs.
13214
13215 2010-01-29  Richard Guenther  <rguenther@suse.de>
13216
13217         PR middle-end/37448
13218         * ipa-inline.c (cgraph_decide_inlining_incrementally): Avoid
13219         quadratic behavior in most cases.
13220
13221 2010-01-28  Uros Bizjak  <ubizjak@gmail.com>
13222
13223         PR target/42891
13224         * config/i386/i386.c (ix86_expand_int_movcc): Convert tmp to SImode
13225         in the call to gen_x86_movsicc_0_m1.
13226
13227 2010-01-28  Richard Guenther  <rguenther@suse.de>
13228
13229         PR tree-optimization/42871
13230         * tree-ssa-pre.c (phi_translate_set): Make sure to retain leaders.
13231
13232 2010-01-28  Richard Guenther  <rguenther@suse.de>
13233
13234         * tree-ssa-ccp.c (ccp_fold_stmt): Fold calls and propagate
13235         into call arguments.
13236
13237 2010-01-28  Richard Guenther  <rguenther@suse.de>
13238
13239         PR middle-end/42883
13240         * tree-cfgcleanup.c (remove_forwarder_block): Do not remove
13241         the forwarder if the destination is an EH landing pad.
13242
13243 2010-01-28  Razya Ladelsky  <razya@il.ibm.com>
13244
13245         * tree-parloops.c (transform_to_exit_first_loop): Update the basic
13246         block list passed to gimple_duplicate_sese_tail.
13247         (parallelize_loops): Avoid parallelization when the function
13248         has_nonlocal_label.
13249         Avoid parallelization when the preheader is IRREDUCIBLE.
13250         Try to optimize when estimated_loop_iterations_int is unresolved.
13251         Add the loop's location to the dump file.
13252         * tree-cfg.c (add_phi_args_after_redirect): Remove.
13253         (gimple_duplicate_sese_tail): Remove the check for the latch.
13254         Redirect nexits to the exit block.
13255         Remove handling of the incoming edges to the latch.
13256         Redirect the backedge from the copied latch to the exit bb.
13257
13258 2010-01-28  Michael Matz  <matz@suse.de>
13259
13260         PR target/42881
13261         * config/i386/i386.c (ix86_expand_vector_init_duplicate):
13262         Wrap force_reg into a sequence, emit it before user.
13263
13264 2010-01-28  Stephen Thomas  <stephen.thomas@arm.com>
13265
13266         * config/arm/arm.md (bswapsi2): Add support for bswapsi2.
13267         (arm_rev): New.
13268         (arm_legacy_rev): Likewise.
13269         (thumb_legacy_rev): Likewise.
13270
13271 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
13272
13273         * dwarf2out.c (mem_loc_descriptor): Remove special casing of
13274         CONSTANT_POOL_ADDRESS_P SYMBOL_REFs.  If for MEM recursive call
13275         on MEM's address failed, try avoid_constant_pool_reference and
13276         recurse if it returned something different.
13277         (loc_descriptor): If for MEM mem_loc_descriptor failed on the
13278         address, try avoid_constant_pool_reference and recurse if it
13279         returned something different.
13280         (dw_loc_list_1): If for MEM mem_loc_descriptor failed on the
13281         address and avoid_constant_pool_reference returned something
13282         different, don't set have_address.
13283
13284 2010-01-27  Alexandre Oliva  <aoliva@redhat.com>
13285
13286         PR debug/42861
13287         * var-tracking.c (val_store): Add modified argument, obey it.
13288         Adjust callers.
13289         (count_uses): Move down logging of main.
13290         (compute_bb_dataflow): Use val_store for MO_VAL_USEs that
13291         don't need resolution.
13292         (emit_notes_in_bb): Likewise.
13293
13294 2010-01-27  Richard Guenther  <rguenther@suse.de>
13295
13296         PR middle-end/42878
13297         * tree-inline.c (remap_decl): Delay remapping of SSA name
13298         default definitions until we need them.
13299
13300 2010-01-27  Jakub Jelinek  <jakub@redhat.com>
13301
13302         * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Redefine.
13303         (rs6000_delegitimize_address): New function.
13304
13305         * config/s390/s390.c (s390_delegitimize_address): Call
13306         delegitimize_mem_from_attrs.
13307
13308         PR middle-end/42874
13309         * tree-inline.c (cannot_copy_type_1): Removed.
13310         (copy_forbidden): Don't forbid copying of functions containing
13311         records/unions with variable length fields.
13312
13313 2010-01-27  Christian Bruel  <christian.bruel@st.com>
13314
13315         Revert:
13316         PR target/42841
13317         * config/sh/sh.c (find_barrier): Increase length for non delayed
13318         conditional branches.
13319
13320 2010-01-27  Matthias Klose  <doko@ubuntu.com>
13321
13322         * configure.ac (gnu-unique-object): Fix ldd version check.
13323         * configure: Regenerate.
13324
13325 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13326
13327         * config/sparc/sparc.c (sparc_elf_asm_named_section): Test for
13328         HAVE_GNU_AS value.
13329         * config/sparc/sysv4.h [HAVE_GNU_AS] (TARGET_ASM_NAMED_SECTION):
13330         Test for HAVE_GNU_AS value.
13331
13332 2010-01-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13333
13334         * config.gcc (mips-sgi-irix[56]*): Set use_gcc_stdint.
13335         * config/mips/iris.h (INT8_TYPE, INT16_TYPE, INT32_TYPE,
13336         INT64_TYPE): Define.
13337         (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define.
13338         (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
13339         INT_LEAST64_TYPE): Define.
13340         (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE,
13341         UINT_LEAST64_TYPE): Define.
13342         (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE)
13343         INT_FAST64_TYPE): Define.
13344         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
13345         UINT_FAST64_TYPE): Define.
13346         (INTMAX_TYPE, UINTMAX_TYPE): Define.
13347         (INTPTR_TYPE, UINTPTR_TYPE): Define.
13348         (SIG_ATOMIC_TYPE): Define.
13349
13350 2010-01-26  Richard Guenther  <rguenther@suse.de>
13351
13352         * df-scan.c (df_scan_set_bb_info): Remove assert.
13353         (df_insn_rescan_debug_internal): Merge asserts.
13354         (df_install_ref): Likewise.
13355         (df_mark_reg): Use bitmap_set_range.
13356         (df_hard_reg_used_p): Remove assert.
13357         (df_hard_reg_used_count): Likewise.
13358
13359 2010-01-26  Richard Guenther  <rguenther@suse.de>
13360
13361         PR rtl-optimization/42685
13362         * web.c (web_main): Ignore DEBUG_INSNs.
13363
13364 2010-01-26  Joern Rennecke  <amylaar@spamcop.net>
13365
13366         * doc/tm.texi (TARGET_HANDLE_C_OPTION): Explain arguments.
13367
13368         (TARGET_RESOLVE_OVERLOADED_BUILTIN): Add loc parameter.
13369         Fix types of fndecl and arglist parameters.
13370
13371 2010-01-26  Richard Guenther  <rguenther@suse.de>
13372
13373         PR middle-end/42806
13374         * tree-eh.c (unsplit_eh): Skip debug insns.
13375
13376 2010-01-26  Richard Guenther  <rguenther@suse.de>
13377
13378         PR tree-optimization/42250
13379         * ipa-type-escape.c (type_escape_execute): Do not analyze clones.
13380
13381 2010-01-26  Jakub Jelinek  <jakub@redhat.com>
13382
13383         PR fortran/42866
13384         * omp-low.c (expand_omp_sections): Only use single_pred if
13385         l2_bb is single_pred_p.
13386
13387 2010-01-25  Christian Bruel  <christian.bruel@st.com>
13388
13389         PR target/42841
13390         * config/sh/sh.c (find_barrier): Increase length for non delayed
13391         conditional branches.
13392         (sh_insn_length_adjustment): Use JUMP_TABLE_DATA_P.
13393
13394 2010-01-24  David S. Miller  <davem@davemloft.net>
13395
13396         * config/sparc/sysv4.h (TARGET_ASM_NAMED_SECTION): Only
13397         define if not using GAS.
13398         * config/sparc/sparc.c (sparc_elf_asm_named_section):
13399         Likewise.  Delete SECTION_MERGE code, which is only applicable
13400         when using GAS.
13401
13402 2010-01-24  Mark Mitchell  <mark@codesourcery.com>
13403
13404         PR c++/42748
13405         * config/arm/arm.c (arm_mangle_type): Do not warn about changes to
13406         mangling of va_list in system headers.
13407
13408 2010-01-23  Toon Moene  <toon@moene.org>
13409
13410         * tree-predcom.c (combine_chains): Return NULL, not false.
13411
13412 2010-01-23  Joern Rennecke  <amylaar@spamcop.net>
13413
13414         * tree-loop-distribution.c (distribute_loop): Fix declaration and
13415         initialization of variable res to agree with return type.
13416
13417 2010-01-22  Steve Ellcey  <sje@cup.hp.com>
13418
13419         * Makefile.in (tree-sra.o): Add $(EXPR_H) dependency.
13420         * tree-sra.c: Add include of expr.h.
13421
13422 2010-01-22  Jakub Jelinek  <jakub@redhat.com>
13423
13424         * tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
13425         insert the debug stmt on the single non-EH edge from the stmt.
13426
13427 2010-01-22  Richard Henderson  <rth@redhat.com>
13428
13429         PR tree-opt/42833
13430         * tree-sra.c (sra_modify_assign): Delay re-gimplification of
13431         the RHS until after generate_subtree_copies has insertted its
13432         code before the current statement.
13433
13434 2010-01-22  Joern Rennecke  <amylaar@spamcop.net>
13435
13436         * doc/tm.texi (TARGET_MIN_DIVISIONS_FOR_RECIP_MUL): Fix return type.
13437
13438         * gcc-plugin.h (plugin_init): Use "C" likage for c++.
13439
13440 2010-01-21  Martin Jambor  <mjambor@suse.cz>
13441
13442         PR tree-optimization/42585
13443         * tree-sra.c (struct access): New field grp_total_scalarization.
13444         (dump_access): Dump the new field.
13445         (should_scalarize_away_bitmap): New variable.
13446         (cannot_scalarize_away_bitmap): Likewise.
13447         (sra_initialize): Allocate new bitmaps.
13448         (sra_deinitialize): Free new bitmaps.
13449         (create_access_1): New function.
13450         (create_access): Parts moved to create_access_1.
13451         (type_consists_of_records_p): New function.
13452         (completely_scalarize_record): Likewise.
13453         (build_access_from_expr): Set bit in cannot_scalarize_away_bitmap.
13454         (build_accesses_from_assign): Set bits in should_scalarize_away_bitmap.
13455         (sort_and_splice_var_accesses): Hint groups with a total_scalarization
13456         access.
13457         (analyze_all_variable_accesses): Completely scalarize small eligible
13458         records.
13459
13460 2010-01-21  Martin Jambor  <mjambor@suse.cz>
13461
13462         * tree-sra.c (build_ref_for_offset_1): Allow for zero size fields.
13463
13464 2010-01-21  Andrew Haley  <aph@redhat.com>
13465
13466         * gcc.c (process_command): Move lang_specific_driver before
13467         setting cc_libexec_prefix.
13468
13469 2010-01-21  Richard Guenther  <rguenther@suse.de>
13470
13471         PR middle-end/19988
13472         * fold-const.c (negate_expr_p): Pretend only negative
13473         real constants are easily negatable.
13474
13475 2010-01-20  Janis Johnson  <janis187@us.ibm.com>
13476             Jason Merrill  <jason@redhat.com>
13477
13478         * tree.h (TYPE_TRANSPARENT_UNION): Replace with ...
13479         (TYPE_TRANSPARENT_AGGR): this, for union and record.
13480         * calls.c (initialize argument_information): Handle it.
13481         * c-common.c (handle_transparent_union_attribute): Use new name.
13482         * c-decl.c (finish_struct): Ditto.
13483         * c-typeck.c (type_lists_compatible_p): Ditto.
13484         (convert_for_assignment): Use new name and also handle record.
13485         * function.c (aggregate_value_p): Handle it.
13486         (pass_by_reference): Ditto.
13487         (assign_parm_data_types): Ditto.
13488         * print-tree.c (print_node): Ditto.
13489         * lto-streamer-in.c (unpack_ts_type_value_fields): Ditto.
13490         * lto-streamer-out.c (pack_ts_type_value_fields): Ditto.
13491         * tree.c (first_field): New fn.
13492
13493 2010-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
13494
13495         PR target/42818
13496         * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Always apply wrappers,
13497         even when linking statically, for now.
13498
13499 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
13500
13501         PR debug/42715
13502         * var-tracking.c (use_type): Choose MO_VAL_SET for REGs set
13503         without a cselib val.
13504         (count_uses): Accept MO_VAL_SET with no val on stores.
13505         (add_stores): Likewise.
13506
13507 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
13508
13509         * var-tracking.c (check_value_val): Add a compile time assertion.
13510         (dv_is_decl_p): Simplify.
13511         (dv_as_decl, dv_as_value, dv_from_decl, dv_from_value): Only use
13512         gcc_assert if ENABLE_CHECKING.
13513
13514 2010-01-20  Alexandre Oliva  <aoliva@redhat.com>
13515
13516         PR debug/42782
13517         * var-tracking.c: Include tree-flow.h.
13518         (mem_dies_at_call): New.
13519         (dataflow_set_preserve_mem_locs): Use it.
13520         (dataflow_set_remove_mem_locs): Likewise.
13521         (dump_var): Renamed from dump_variable.  Adjust all callers.
13522         (dump_var_slot): Renamed from dump_variable_slot.  Likewise.
13523         * Makefile.in (var-tracking.o): Adjust deps.
13524
13525 2010-01-20  Joern Rennecke  <amylaar@spamcop.net>
13526
13527         * doc/tm.texi (TARGET_SCHED_SET_SCHED_FLAGS): Fix argument list.
13528
13529 2010-01-20  Richard Guenther  <rguenther@suse.de>
13530
13531         PR tree-optimization/42717
13532         * tree-ssa-dce.c (get_live_post_dom): Remove.
13533         (forward_edge_to_pdom): Take an arbitrary edge to copy
13534         degenerate PHI args from.
13535         (remove_dead_stmt): Use the first post-dominator even if it
13536         does not contain live statements as redirection destination.
13537
13538 2010-01-20  Richard Guenther  <rguenther@suse.de>
13539
13540         * tree-inline.c (estimate_num_insns): Handle EH builtins.
13541
13542 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
13543
13544         * sel-sched.c (create_speculation_check): Remove set but not used
13545         variable twin.
13546         (try_transformation_cache): Remove set but not used variable ds.
13547         (calculate_privileged_insns): Remove set but not used variables
13548         cur_insn and min_spec_insn.
13549         (find_best_expr): Remove set but not used variable avail_n.
13550         * tree-predcom.c (base_names_in_chain_on): Remove set but not used
13551         variable e.
13552         * cgraphunit.c (assemble_thunk): Remove set but not used variable
13553         false_label.
13554         * haifa-sched.c (remove_notes): Remove set but not used variable prev.
13555         * graphite-clast-to-gimple.c (gloog): Remove set but not used variable
13556         new_scop_exit_edge.
13557
13558 2010-01-20  Felyza Wishbringer  <fwishbringer@gmail.com>
13559
13560         PR bootstrap/42786
13561         * config.gcc (i[34567]86-*-*): Fix handling of athlon64 and athlon-fx
13562         cpu types.  Add support for *-sse3 cpu types.
13563         (x86_64-*-*): Ditto.
13564
13565 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
13566
13567         PR middle-end/42803
13568         * varasm.c (narrowing_initializer_constant_valid_p): Add CACHE
13569         argument, call initializer_constant_valid_p_1 instead of
13570         initializer_constant_valid_p, pass CACHE to it, return NULL
13571         immediately if first call returns NULL.
13572         (initializer_constant_valid_p_1): New function.
13573         (initializer_constant_valid_p): Use it.
13574
13575 2010-01-20  Thomas Quinot  <quinot@adacore.com>
13576
13577         * tree.def (PLACEHOLDER_EXPR): Fix comment.
13578
13579 2010-01-20  Jakub Jelinek  <jakub@redhat.com>
13580
13581         * dwarf2out.c (mem_loc_descriptor): Use DW_OP_mod for UMOD instead
13582         of MOD, handle MOD using DW_OP_{over,over,div,mul,minus}.
13583         (loc_list_from_tree): Don't handle unsigned division.  Handle
13584         signed modulo using DW_OP_{over,over,div,mul,minus}.
13585         * unwind-dw2.c (execute_stack_op): Handle DW_OP_mod using unsigned
13586         modulo instead of signed.
13587
13588 2010-01-20  DJ Delorie  <dj@redhat.com>
13589
13590         * config/h8300/h8300.c (F): Add "in_epilogue" flag.
13591         (Fpa): Pass it
13592         (h8300_emit_stack_adjustment): Propogate it.
13593         (push): Pass it.
13594         (h8300_expand_prologue): Likewise.
13595         (h8300_expand_epilogue): Likewise.
13596
13597 2010-01-19  Michael Matz  <matz@suse.de>
13598
13599         PR tree-optimization/41783
13600         * tree-data-ref.c (toplevel): Include flags.h.
13601         (dump_data_dependence_relation):  Also dump the inputs if the
13602         result will be unknown.
13603         (split_constant_offset_1): Look through some conversions.
13604         * tree-predcom.c (determine_roots_comp): Restart a new chain if
13605         the offset from last element is too large.
13606         (ref_at_iteration): Deal also with MISALIGNED_INDIRECT_REF.
13607         (reassociate_to_the_same_stmt): Handle vector registers.
13608         * tree-vect-data-refs.c (vect_equal_offsets): Handle unary operations
13609         (e.g. conversions).
13610         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop): Add
13611         wide_prolog_niters argument, emit widening instructions.
13612         (vect_do_peeling_for_alignment): Adjust caller, use widened
13613         variant of the iteration cound.
13614         * Makefile.in (tree-data-ref.o): Add $(FLAGS_H).
13615
13616 2010-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13617
13618         PR target/38697
13619         * config/arm/neon-testgen.m (emit_automatics): New parameter
13620         features. Adjust for Fixed_return_reg feature.
13621         (test_intrinsic): Call emit_automatics with new feature.
13622         * config/arm/neon.ml: Update copyright years.
13623         (features): New Fixed_return_reg feature.
13624         (ops): Update feature for Vget_low.
13625
13626 2010-01-19  Jakub Jelinek  <jakub@redhat.com>
13627
13628         PR tree-optimization/42719
13629         * tree-outof-ssa.c (trivially_conflicts_p): Don't consider debug
13630         stmt uses.
13631
13632         PR debug/42728
13633         * fwprop.c (all_uses_available_at): Return false if def_set dest
13634         is a REG that is used in def_insn.
13635
13636 2010-01-19  Joern Rennecke  <amylaar@spamcop.net>
13637
13638         * doc/tm.texi (TARGET_FIXED_CONDITION_CODE_REGS): Add argument names.
13639
13640         (TARGET_CC_MODES_COMPATIBLE): Put return value in braces.
13641         Add argument names.
13642
13643         (TARGET_SCHED_INIT_SCHED_CONTEXT): Clarify language.
13644
13645         * target.h (struct gcc_target) <secondary_reload>: Change type
13646         of last argument to secondary_reload_info *.
13647
13648 2010-01-18  Uros Bizjak  <ubizjak@gmail.com>
13649
13650         PR target/42774
13651         * config/alpha/predicates.md (aligned_memory_operand): Return 0 for
13652         memory references with unaligned offsets.  Remove CQImode handling.
13653         (unaligned_memory_operand): Return 1 for memory references with
13654         unaligned offsets.  Remove CQImode handling.
13655
13656 2010-01-18  Richard Guenther  <rguenther@suse.de>
13657
13658         PR middle-end/39954
13659         * cfgexpand.c (expand_call_stmt): TER pointer arguments in
13660         builtin calls.
13661
13662 2010-01-18  Richard Guenther  <rguenther@suse.de>
13663
13664         PR tree-optimization/42781
13665         * tree-ssa-structalias.c (find_what_var_points_to): Skip
13666         restrict processing only if the original variable was artificial.
13667
13668 2010-01-18  Joern Rennecke  <amylaar@spamcop.net>
13669
13670         * doc/tm.texi (TARGET_ASM_FUNCTION_EPILOGUE): Update text on where to
13671         find number of popped argument bytes.
13672
13673         (TARGET_INVALID_WITHIN_DOLOOP): Put return value in braces.
13674         Fix the text that describes the return value for invalid insns.
13675
13676         (TARGET_SCHED_NEEDS_BLOCK_P): Fix return type.  Fix argument list.
13677
13678         (TARGET_SCHED_IS_COSTLY_DEPENDENCE): Fix argument types.
13679         Clarify what 'cost of the -dependence' is.  Fix quoting.
13680
13681         * toplev.c (default_get_pch_validity): Rename argument to "sz".
13682         * doc/tm.texi (TARGET_GET_PCH_VALIDITY): Likewise.
13683
13684 2010-01-17  Jakub Jelinek  <jakub@redhat.com>
13685
13686         * dwarf2out.c (mem_loc_descriptor): Don't ICE on
13687         {S,U}S_{PLUS,MINUS,NEG,ABS,ASHIFT}.
13688
13689 2010-01-17  Richard Guenther  <rguenther@suse.de>
13690
13691         PR middle-end/42248
13692         * function.c (split_complex_args): Take a VEC to modify.
13693         (assign_parms_augmented_arg_list): Build a VEC instead of
13694         a chain of PARM_DECLs.
13695         (assign_parms_unsplit_complex): Take a VEC of arguments.
13696         Do not fixup unmodified parms.
13697         (assign_parms): Deal with the VEC.
13698         (gimplify_parameters): Likewise.
13699
13700 2010-01-17  Richard Guenther  <rguenther@suse.de>
13701
13702         * tree-ssa-uncprop.c (uncprop_into_successor_phis): Fix PHI
13703         node existence check.
13704         * tree-vect-loop.c (vect_analyze_loop_form): Likewise.
13705         * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
13706         * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
13707         * tree-cfg.c (gimple_execute_on_growing_pred): Likewise.
13708         (gimple_execute_on_growing_pred): Likewise.
13709
13710 2010-01-17  Richard Guenther  <rguenther@suse.de>
13711
13712         PR tree-optimization/42773
13713         * tree-ssa-pre.c (phi_translate_set): Fix check for PHI node existence.
13714         (compute_antic_aux): Likewise.
13715         (compute_partial_antic_aux): Likewise.
13716
13717 2010-01-17  Jie Zhang  <jie.zhang@analog.com>
13718
13719         PR debug/42767
13720         * dwarf2out.c (mem_loc_descriptor): Handle SS_TRUNCATE
13721         and US_TRUNCATE.
13722
13723 2010-01-17  Joern Rennecke  <amylaar@spamcop.net>
13724
13725         * doc/tm.texi (TARGET_INIT_LIBFUNCS): Put @findex entries in order of
13726         appearance.
13727
13728         (TARGET_LEGITIMATE_ADDRESS_P): Add return type.
13729         Fix markup for strict argument.
13730
13731         (TARGET_SCHED_REORDER2): Fix argument types.
13732
13733         (TARGET_SCHED_DFA_PRE_CYCLE_INSN): Fix return type.
13734         (TARGET_SCHED_DFA_POST_CYCLE_INSN): Likewise.
13735
13736         (TARGET_SCHED_DFA_PRE_ADVANCE_CYCLE): Fix name.
13737         (TARGET_SCHED_DFA_POST_ADVANCE_CYCLE): Likewise.
13738
13739         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD):
13740         Add argument name.
13741
13742         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Remove duplicate documentation.
13743         (TARGET_SCHED_INIT_SCHED_CONTEXT): Likewise.
13744         (TARGET_SCHED_SET_SCHED_CONTEXT): Likewise.
13745         (TARGET_SCHED_CLEAR_SCHED_CONTEXT): Likewise.
13746         (TARGET_SCHED_FREE_SCHED_CONTEXT): Likewise.
13747
13748         (TARGET_SCHED_SET_SCHED_CONTEXT): Fix typo.
13749
13750         (TARGET_SCHED_GEN_SPEC_CHECK): Fix name.
13751
13752         (TARGET_ASM_RELOC_RW_MASK): Add return type.
13753         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Fix return type.
13754
13755         (TARGET_STRIP_NAME_ENCODING): Fix markup of return type and parameter.
13756
13757         (TARGET_ASM_FILE_START): Put @findex before paragraph start.
13758         Use prototype.
13759
13760         (TARGET_ASM_NAMED_SECTION): Fix argument list.
13761
13762         (TARGET_HAVE_NAMED_SECTIONS): Use @deftypevr.
13763         (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Likewise.
13764
13765         (TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Use @deftypevr.
13766
13767         (TARGET_ASM_ASSEMBLE_VISIBILITY): Fix argument types.
13768
13769         (TARGET_ASM_MARK_DECL_PRESERVED): Fix argument and markup
13770         referring to it.  Fix language.
13771
13772         (TARGET_HAVE_CTORS_DTORS): Use @deftypevr.
13773
13774         (TARGET_ASM_FINAL_POSTSCAN_INSN): Adjust name of first argument.
13775
13776         (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument types.
13777
13778         (TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL): Add type to argument.
13779
13780         (TARGET_UNWIND_EMIT): Remove space between 'FILE *' and
13781         '@var{stream}.  Remove stray 'and'.
13782
13783         (TARGET_ARM_EABI_UNWINDER): Use @deftypevr.
13784
13785         (TARGET_ASM_OUTPUT_DWARF_DTPREL): Adjust name of first argument.
13786
13787         (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Add missing article.
13788
13789         (TARGET_OPTION_VALID_ATTRIBUTE_P): Fix name, it was
13790         misspelled as TARGET_VALID_OPTION_ATTRIBUTE_P.
13791
13792         (TARGET_GET_PCH_VALIDITY): Put 'void *' in braces.
13793         Fix description of return value.
13794         Rename argument "sz" to "len."
13795
13796         (TARGET_CXX_GUARD_MASK_BIT): Add missing article.
13797         Clarify meaning of 'true' return value.
13798
13799         (TARGET_SHIFT_TRUNCATION_MASK): Fix return type.
13800
13801         (TARGET_MODE_REP_EXTENDED): Fix two inconsisent uses of
13802         rep_mode versus mode_rep.
13803
13804         (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Document.
13805
13806         (TARGET_BUILTIN_DECL): Fix name.
13807
13808         (TARGET_COMMUTATIVE_P): Fix type of first argument.
13809
13810         (TARGET_SET_CURRENT_FUNCTION): Mention possibility of cfun being NULL.
13811
13812         (TARGET_BRANCH_TARGET_REGISTER_CLASS): Fix return type.
13813
13814         (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document as macro instead of hook.
13815
13816         (TARGET_RELAXED_ORDERING): Use @deftypevr.
13817
13818         (TARGET_GET_DRAP_RTX): Note that this is a hook.
13819         Clarify language.
13820
13821         (TARGET_BUILTIN_RECIPROCAL): Fix argument types.
13822         Rename argument tm_fn to md_fn.
13823
13824         (TARGET_OPTION_PRINT): Fix argument list.
13825
13826 2010-01-16  Harsha Jagasia  <harsha.jagasia@amd.com>
13827
13828         PR target/42664
13829         * config/i386/i386.c (ix86_fixup_binary_operands):
13830         Revert FMA4 fixup of operands.
13831
13832 2010-01-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
13833
13834         PR gcc/42525
13835         * Makefile.in (write_entries_to_file, install-plugin):
13836         Use \012 instead of \n with tr.
13837
13838 2010-01-16  Richard Sandiford  <r.sandiford@uk.ibm.com>
13839
13840         * configure.ac (HAVE_AS_REF): New C macro.
13841         * configure: Regenerate.
13842         * config.in: Likewise.
13843         * collect2.c (main): Only postpone SCAN_DWEH to the second pass
13844         if HAVE_AS_REF.
13845         * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Only define
13846         if HAVE_AS_REF.
13847
13848 2010-01-16  Joern Rennecke  <amylaar@spamcop.net>
13849
13850         * doc/tm.texi (TARGET_USE_BLOCKS_FOR_CONSTANT_P): Fix argument types.
13851
13852         (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Fix argument types.
13853
13854         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Fix argument types.
13855
13856         (TARGET_SCHED_ALLOC_SCHED_CONTEXT): Put 'void *' in braces.
13857
13858         (TARGET_IN_SMALL_DATA_P): Fix argument type.
13859
13860         (TARGET_BINDS_LOCAL_P): Fix argument type.
13861
13862         (TARGET_ASM_FILE_END): Use prototype.
13863
13864         (TARGET_ASM_RECORD_GCC_SWITCHES): Don't put 'int' in braces.
13865
13866         (TARGET_DWARF_CALLING_CONVENTION): Fix argument type.
13867
13868         (TARGET_COMP_TYPE_ATTRIBUTES): Fix argument types.
13869
13870         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Fix argument type.
13871
13872         (TARGET_EMUTLS_VAR_ALIGN_FIXED): Don't put 'bool' in braces.
13873         (TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS): Likewise.
13874
13875         (TARGET_PCH_VALID_P): Put 'const char *' in braces.
13876         (TARGET_CHECK_PCH_TARGET_FLAGS): Likewise.
13877
13878         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Don't put 'bool' in braces.
13879         (TARGET_ADDR_SPACE_SUBSET_P): Likewise.
13880         (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Don't put 'rtx' in braces.
13881         (TARGET_ADDR_SPACE_CONVERT): Likewise.
13882
13883         (TARGET_CASE_VALUES_THRESHOLD): Put 'unsigned int' in braces.
13884
13885         (TARGET_MACHINE_DEPENDENT_REORG: Use prototype.
13886
13887         (TARGET_INIT_BUILTINS): Use prototype.
13888
13889         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
13890         Put 'const char *' in braces.  Fix parameter types.
13891         (TARGET_INVALID_CONVERSION): Fix parameter types.
13892         (TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Likewise.
13893         (TARGET_INVALID_PARAMETER_TYPE, TARGET_INVALID_RETURN_TYPE): Likewise.
13894
13895         (TARGET_PROMOTED_TYPE): Remove braces around 'tree'.
13896         Fix argument type.
13897
13898         (TARGET_CONVERT_TO_TYPE): Remove braces around 'tree'.
13899
13900         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Remove braces around 'bool'.
13901
13902 2010-01-15  Joern Rennecke  <amylaar@spamcop.net>
13903
13904         * doc/tm.texi (TARGET_HELP): Fix return type.
13905
13906         (TARGET_PROMOTE_FUNCTION_MODE): Put 'enum machine_mode'
13907         in braces.  Fix argument types.
13908
13909         (TARGET_LIBGCC_CMP_RETURN_MODE): Use prototype.
13910
13911         (TARGET_LIBGCC_SHIFT_COUNT_MODE): Use prototype.
13912
13913         (TARGET_MS_BITFIELD_LAYOUT_P): Fix argument type.
13914
13915         (TARGET_DECIMAL_FLOAT_SUPPORTED_P): Don't put 'bool' in braces.
13916         (TARGET_FIXED_POINT_SUPPORTED_P): Likewise.
13917
13918         (TARGET_MANGLE_TYPE): Fix argument types.
13919
13920         (TARGET_IRA_COVER_CLASSES): Use prototype.
13921
13922         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Fix return type.  Use prototype.
13923
13924         (TARGET_CAN_ELIMINATE): Use identifiers for argument names.
13925
13926         (TARGET_PROMOTE_PROTOTYPES): Fix argument type.
13927
13928         (TARGET_MUST_PASS_IN_STACK): Fix argument type.
13929
13930         (TARGET_CALLEE_COPIES): Fix argument types.
13931
13932         (TARGET_SPLIT_COMPLEX_ARG): Fix argument type.
13933
13934         (TARGET_GIMPLIFY_VA_ARG_EXPR): Fix argument types.
13935
13936         (TARGET_FUNCTION_VALUE): Fix argument types.
13937
13938         (TARGET_RETURN_IN_MSB): Fix argument type.
13939
13940         (TARGET_RETURN_IN_MEMORY): Fix argument types.
13941
13942         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Fix argument types.
13943
13944         (TARGET_EXTRA_LIVE_ON_ENTRY): Fix argument type.
13945
13946         (TARGET_STRICT_ARGUMENT_NAMING): Make literal in text
13947         agree with return type.
13948
13949         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Add Prototype.
13950
13951 2010-01-15  Jing Yu  <jingyu@google.com>
13952
13953         PR rtl-optimization/42691
13954         * combine.c (try_combine): Set changed_i3_dest to 1 when I2 and I3 set
13955         a pseudo to a constant and are merged, and adjust comments.
13956
13957 2010-01-15  Eric Botcazou  <ebotcazou@adacore.com>
13958
13959         * config/i386/sse.md (avx_vperm2f128<mode>3): Fix typo.
13960
13961 2010-01-15  Richard Guenther  <rguenther@suse.de>
13962
13963         PR middle-end/42739
13964         * tree-cfgcleanup.c (remove_forwarder_block): Move destination
13965         labels of computed or non-local gotos to the destination.
13966         * tree-cfg.c (gimple_verify_flow_info): Verify that a EH
13967         landing pad label is the first label.
13968
13969 2010-01-15  Richard Guenther  <rguenther@suse.de>
13970
13971         * tree-ssa-loop-im.c (gen_lsm_tmp_name): Fix bogus fallthru.
13972
13973 2010-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
13974
13975         PR target/42747
13976         * config/rs6000/rs6000.md (sqrtdf2): Split into expander and insn
13977         to allow generation of the xssqrtdp instruction on power7.
13978         (sqrtdf2_fpr): Ditto.
13979
13980 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
13981
13982         PR middle-end/42674
13983         * c-decl.c (finish_function): Don't emit -Wreturn-type warnings in
13984         functions with noreturn attribute.
13985
13986         PR c++/42608
13987         * varasm.c (declare_weak): Add weak attribute to decl if it
13988         doesn't have one already.
13989         (assemble_external): Only add decls to weak_decls if they also
13990         have weak attribute.
13991
13992 2010-01-14  Alexandre Oliva  <aoliva@redhat.com>
13993
13994         * var-tracking.c (var_reg_delete): Don't delete the association
13995         between REGs and values or one-part variables if the register
13996         isn't clobbered.
13997
13998 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
13999
14000         PR debug/42657
14001         * tree-inline.c (copy_debug_stmt): Don't reset debug stmt just
14002         because its first operand is a non-localized variable.
14003
14004 2010-01-14  Martin Jambor  <mjambor@suse.cz>
14005
14006         PR tree-optimization/42706
14007         * tree-sra.c (encountered_recursive_call): New variable.
14008         (encountered_unchangable_recursive_call): Likewise.
14009         (sra_initialize): Initialize both new variables.
14010         (callsite_has_enough_arguments_p): New function.
14011         (scan_function): Call decl and flags check only for IPA-SRA, check
14012         whether there is a recursive call and whether it has enough arguments.
14013         (all_callers_have_enough_arguments_p): New function.
14014         (convert_callers): Look for recursive calls only when
14015         encountered_recursive_call is set.
14016         (ipa_early_sra): Bail out either if
14017         !all_callers_have_enough_arguments_p or
14018         encountered_unchangable_recursive_call.
14019
14020 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
14021
14022         * sel-sched.c: Add 2010 to copyright years.
14023         * sel-sched-ir.c: Likewise.
14024         * sel-sched-ir.h: Likewise.
14025
14026 2010-01-14  Martin Jambor  <mjambor@suse.cz>
14027
14028         PR tree-optimization/42714
14029         * tree-sra.c (sra_ipa_modify_assign): Handle incompatible-type
14030         constructors specially.
14031
14032 2010-01-14  Andi Kleen  <ak@linux.intel.com>
14033
14034         * config/i386/drivers-i386.c (detect_caches_intel):
14035         Add l2sizekb parameter and fill in.
14036         (host_detect_local_cpu): Add l2sizekb, fill in.
14037         Add Atom small cache heuristic.
14038
14039 2010-01-14  Andi Kleen  <ak@linux.intel.com>
14040
14041         * config/i386/drivers-i386.c (detect_caches_cpuid4):
14042         Add level3 parameter and fill in.
14043         (detect_caches_intel): Handle level3 cache.
14044
14045 2010-01-14  Andi Kleen  <ak@linux.intel.com>
14046
14047         * config/i386/drivers-i386.c (host_detect_local_cpu):
14048         Fix core duo detection.
14049
14050 2010-01-14  Andi Kleen  <ak@linux.intel.com>
14051
14052         * config/i386/drivers-i386.c (host_detect_local_cpu):
14053         Fix Atom detection.
14054
14055 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
14056
14057         * config/rs6000/rs6000.c (rs6000_variable_issue): Rename to...
14058         (rs6000_variable_issue_1): this.  Use...
14059         (rs6000_variable_issue): here.  Reimplement.  Print debug info.
14060
14061 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
14062
14063         * sel-sched-ir.c (sel_restore_other_notes): Rename to
14064         sel_restore_notes.  Update all callers.  Call reemit_notes
14065         for all insns.
14066
14067 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
14068
14069         PR rtl-optimization/42246
14070         * sel-sched-ir.h (get_all_loop_exits): Include exits from inner
14071         loops.
14072
14073 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
14074
14075         * sel-sched.c (compute_av_set_at_bb_end): Do not test that number of
14076         all successors is the same as number of successors in current region.
14077
14078 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
14079
14080         * sel-sched.c (maybe_emit_renaming_copy): Exit early when expression
14081         to rename is not separable.  Otherwise check that its LHS is not NULL.
14082
14083 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
14084
14085         * sel-sched.c (choose_best_reg_1):  Loop over all regs for mode.
14086
14087 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
14088
14089         * sel-sched.c (mark_unavailable_hard_regs): Do not try to search
14090         available registers when failed to discover LHS register class.
14091         Fix indentation.  Update comment.
14092
14093 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
14094             Alexander Monakov  <amonakov@ispras.ru>
14095
14096         PR rtl-optimization/42389
14097         * sel-sched.c (advance_one_cycle): Set FENCE_ISSUE_MORE
14098         to can_issue_more.
14099         (advance_state_on_fence): Likewise.
14100         (sel_target_adjust_priority): Print debug output only when
14101         sched_verbose >= 4, not 2.
14102         (get_expr_cost): Do not issue all unique insns on the next cycle.
14103         (fill_insns): Initialize can_issue_more from the value saved
14104         with the fence.
14105         * sel-sched-ir.c (flist_add): New parameter issue_more.
14106         Init FENCE_ISSUE_MORE with it.
14107         (merge_fences): Likewise.
14108         (init_fences): Update call to flist_add.
14109         (add_to_fences, add_clean_fence_to_fences)
14110         (add_dirty_fence_to_fences): Likewise.
14111         (move_fence_to_fences): Update call to merge_fences.
14112         (invoke_reorder_hooks): Do not reset can_issue_more on insns from
14113         sched groups.
14114         * sel-sched-ir.h (struct _fence): New field issue_more.
14115         (FENCE_ISSUE_MORE): New accessor macro.
14116
14117 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
14118
14119         PR rtl-optimization/42388
14120         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not delete empty blocks
14121         that have no predecessors nor successors.  Do not call move_bb_info
14122         for empty blocks outside of current region.
14123
14124 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
14125
14126         PR rtl-optimization/42294
14127         * sel-sched-ir.h (struct _sel_insn_data): Update comment.
14128         * sel-sched.c (move_exprs_to_boundary): Transitively add all
14129         originators' originators.
14130
14131 2010-01-14  Alexander Monakov  <amonakov@ispras.ru>
14132
14133         PR rtl-optimization/39453
14134         PR rtl-optimization/42246
14135         * sel-sched-ir.c (considered_for_pipelining_p): Do not test
14136         for pipelining_p.
14137         (sel_add_loop_preheaders): Add preheader to last_added_blocks.
14138
14139 2010-01-14  Andrey Belevantsev  <abel@ispras.ru>
14140             Alexander Monakov  <amonakov@ispras.ru>
14141
14142         PR middle-end/42245
14143         * sel-sched-ir.c (sel_recompute_toporder): New.  Use it...
14144         (maybe_tidy_empty_bb): ... here.  Make static.  Add new
14145         argument.  Update all callers.
14146         (tidy_control_flow): ... and here.  Recompute topological order
14147         of basic blocks in region if necessary.
14148         (sel_redirect_edge_and_branch): Change return type.  Return true
14149         if topological order might have been invalidated.
14150         (purge_empty_blocks): Export and move from...
14151         * sel-sched.c (purge_empty_blocks): ... here.
14152         * sel-sched-ir.h (sel_redirect_edge_and_branch): Update prototype.
14153         (maybe_tidy_empty_bb): Delete prototype.
14154         (purge_empty_blocks): Declare.
14155
14156 2010-01-14  Andrey Belevantsev <abel@ispras.ru>
14157
14158         PR rtl-optimization/42249
14159         * sel-sched.c (try_replace_dest_reg): When chosen register
14160         and original register is the same, do not bail out early, but
14161         still check all original insns for validity of replacing destination
14162         register.  Set EXPR_TARGET_AVAILABLE to 1 before leaving function
14163         in this case.
14164
14165 2010-01-14  Jakub Jelinek  <jakub@redhat.com>
14166
14167         PR c/42721
14168         Port from no-undefined-overflow branch:
14169         2009-03-09  Richard Guenther  <rguenther@suse.de>
14170
14171         * fold-const.c (add_double_with_sign): Fix unsigned overflow detection.
14172
14173 2010-01-14  Richard Guenther  <rguenther@suse.de>
14174
14175         PR lto/42665
14176         * gimple.c (iterative_hash_gimple_type): Avoid hashing error_mark_node.
14177
14178 2010-01-14  Ira Rosen  <irar@il.ibm.com>
14179
14180         PR tree-optimization/42709
14181         * tree-vect-slp.c (vect_get_constant_vectors): Use constant's type
14182         as scalar type in creation of constant vector operand.
14183
14184 2010-01-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
14185
14186         PR testsuite/42414
14187         * Makefile.in ($(TESTSUITEDIR)/site.exp, check-%)
14188         (check-parallel-%): Match `testsuite' directory component only
14189         at the end.
14190
14191 2010-01-14  Shujing Zhao  <pearly.zhao@oracle.com>
14192
14193         PR translation/39521
14194         * gcc.c (do_spec_1): Wrapped the error and notice messages of specs
14195         strings with _().
14196
14197 2010-01-13  Richard Guenther  <rguenther@suse.de>
14198
14199         PR tree-optimization/42730
14200         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Add shortcut for
14201         offset zero.
14202
14203 2010-01-13  Steve Ellcey  <sje@cup.hp.com>
14204
14205         PR target/pr42542
14206         * config/ia64/ia64.c (ia64_expand_vecint_compare): Convert GTU to GT
14207         for V2SI by subtracting (-(INT MAX) - 1) from both operands to make
14208         them signed.
14209
14210 2010-01-13  Bernd Schmidt  <bernd.schmidt@analog.com>
14211
14212         * config/bfin/libgcc-bfin.ver: Regenerate based on current
14213         libgcc-std.ver.  Add entries for ___smulsi3_highpart and
14214         ___umulsi3_highpart.
14215
14216         * config/bfin/bfin.c (bfin_reorg): Call run_selective_scheduling
14217         rather than schedule_insns if the pass is enabled.
14218
14219 2010-01-13  Martin Jambor  <mjambor@suse.cz>
14220
14221         PR tree-optimization/42704
14222         * tree-sra.c (sra_modify_assign): Do not delete assignments to
14223         SSA_NAMEs.
14224
14225 2010-01-13  Martin Jambor  <mjambor@suse.cz>
14226
14227         PR tree-optimization/42703
14228         * tree-sra.c (analyze_access_subtree): Check that we can build a
14229         reference to the original data within the aggregate.
14230
14231 2010-01-13  Richard Guenther  <rguenther@suse.de>
14232
14233         PR tree-optimization/42705
14234         * tree-ssa-reassoc.c (build_and_add_sum): Insert stmts after labels.
14235
14236 2010-01-13  Richard Guenther  <rguenther@suse.de>
14237
14238         PR middle-end/42716
14239         * fold-const.c (fold_unary_loc): Fold INDIRECT_REFs.
14240
14241 2010-01-13  Jakub Jelinek  <jakub@redhat.com>
14242
14243         PR debug/41371
14244         * var-tracking.c (values_to_unmark): New variable.
14245         (find_loc_in_1pdv): Clear VALUE_RECURSED_INTO of values in
14246         values_to_unmark vector.  Moved body to...
14247         (find_loc_in_1pdv_1): ... this.  Don't clear VALUE_RECURSED_INTO,
14248         instead queue it into values_to_unmark vector.
14249         (vt_find_locations): Free values_to_unmark vector.
14250
14251 2010-01-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
14252
14253         * config/s390/s390.c (override_options): Set
14254         default of max-pending-list-length to 256
14255
14256 2010-01-13  Richard Guenther  <rguenther@suse.de>
14257
14258         PR lto/42678
14259         * tree-pass.h (PROP_gimple_lcx): New.
14260         * cfgexpand.c (pass_expand): Require PROP_gimple_lcx.
14261         * passes.c (init_optimization_passes): Move pass_lower_complex_O0
14262         before the final cleanup_eh.
14263         (dump_properties): Dump PROP_gimple_lcx.
14264         * tree-complex.c (pass_lower_complex): Provide PROP_gimple_lcx.
14265         (tree_lower_complex_O0): Remove.
14266         (gate_no_optimization): Run if PROP_gimple_lcx is not set.
14267         (pass_lower_complex_O0): Provide PROP_gimple_lcx.  Run
14268         tree_lower_complex, schedule TODO_update_ssa.
14269         * lto-streamer-out.c (output_function): Stream the functions
14270         properties.
14271         * lto-streamer-in.c (input_function): Likewise.
14272         (lto_read_body): Do not override them here.
14273
14274 2010-01-12  Joseph Myers  <joseph@codesourcery.com>
14275
14276         PR c/42708
14277         * c-typeck.c (build_c_cast): Fold value cast to union type before
14278         wrapping it in a CONSTRUCTOR.
14279
14280 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
14281
14282         PR rtl-optimization/42699
14283         * cse.c (cse_insn): Optimize lhs ZERO_EXTRACT if only CONST_INTs are
14284         involved.
14285
14286 2010-01-12  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14287
14288         * config/mips/iris6.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
14289         SUBTARGET_WARN_UNUSED_SPEC): Move ...
14290         config/mips/iris.h (SUBTARGET_DONT_WARN_UNUSED_SPEC,
14291         SUBTARGET_WARN_UNUSED_SPEC): ... here
14292         * config/mips/iris5.h (LIBGCC_SPEC): Define.
14293
14294 2010-01-12  Julian Brown  <julian@codesourcery.com>
14295
14296         * config/arm/neon-schedgen.ml (Utils): Don't try to
14297         open missing module.
14298         (find_with_result): New.
14299
14300 2010-01-12  Jakub Jelinek  <jakub@redhat.com>
14301
14302         PR debug/42662
14303         * simplify-rtx.c (simplify_relational_operation_1): Avoid invalid rtx
14304         sharing when canonicalizing ({lt,ge}u (plus a b) b).
14305
14306         PR tree-optimization/42645
14307         * tree-inline.c (processing_debug_stmt): Move earlier.  Make static.
14308         (remap_ssa_name): If processing_debug_stmt and name wasn't found in
14309         decl_map, set processing_debug_stmt to -1 and return name without
14310         any remapping.
14311
14312 2010-01-11  Dave Korn  <dave.korn.cygwin@gmail.com>
14313
14314         * doc/install.texi (Specific#x-x-cygwin): Document minimum required
14315         binutils version, and reword target configuration description.
14316
14317 2010-01-11  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
14318
14319         * config/avr/avr.h (LINKER_NAME): Remove.
14320
14321 2010-01-11  Janis Johnson  <janis187@us.ibm.com>
14322
14323         PR target/42416
14324         * config/rs6000/rs6000.c (rs6000_override_options): On targets
14325         that support VSX, warn for -mno-altivec if vsx is not disabled,
14326         and disable vsx.
14327
14328 2010-01-11  Joseph Myers  <joseph@codesourcery.com>
14329             Shujing Zhao  <pearly.zhao@oracle.com>
14330
14331         PR translation/42469
14332         * common.opt (Wframe-larger-than=, fcompare-debug=, fdbg-cnt=,
14333         fira-verbose=, flto-compression-level=, fplugin-arg-): Use tab
14334         character between option name and help text.
14335         * c.opt (imultilib): Likewise.
14336
14337 2010-01-10  Rafael Avila de Espindola  <espindola@google.com>
14338
14339         * lto-streamer-out.c (output_unreferenced_globals): Output static
14340         variables.
14341
14342 2010-01-10  Steven Bosscher  <steven@gcc.gnu.org>
14343
14344         PR rtl-optimization/42621
14345         * bb-reorder.c (gate_duplicated_computed_gotos): Only run if not
14346         optimizing for size.
14347         (duplicate_computed_gotos): Remove now-redundant check.
14348
14349 2010-01-10  Steve Ellcey  <sje@cup.hp.com>
14350
14351         PR target/37454
14352         * configure.ac: Save and restore LDFLAGS and LIBS
14353         * configure: Regenerate.
14354
14355 2010-01-10  Richard Guenther  <rguenther@suse.de>
14356
14357         PR middle-end/42667
14358         * builtins.c (fold_builtin_strlen): Add type argument and
14359         convert the resulting length to it.
14360         (fold_builtin_1): Adjust.
14361
14362 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
14363
14364         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Shorten
14365         sequence for DImode constants >= 0x80000000UL <= 0xFFFFFFFFUL by
14366         1 insn.
14367         (num_insns_constant_wide): Adjust for that change.
14368
14369 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14370
14371         PR debug/42631
14372         * web.c (union_defs): Add used argument, to combine uses of
14373         uninitialized regs.
14374         (entry_register): Adjust type and tests of used argument.
14375         (web_main): Widen used for new use.  Pass it to union_defs.
14376         * df.h (union_defs): Adjust prototype.
14377
14378 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14379
14380         PR debug/42630
14381         * loop-unroll.c (referenced_in_one_insn_in_loop_p): Count debug
14382         uses in new incoming argument.  Free body.
14383         (reset_debug_uses_in_loop): New.
14384         (analyze_insn_to_expand_var): Call the latter if the former found
14385         anything.  Fix whitespace.  Reject invalid dest overlaps before
14386         going through all insns in the loop.
14387
14388 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14389
14390         PR debug/42629
14391         * haifa-sched.c (dying_use_p): Debug insns don't count.
14392
14393 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14394
14395         PR middle-end/42363
14396         * gimplify.c (gimplify_modify_expr): Drop lhs on noreturn calls.
14397         * tree-cfg.c (is_ctrl_altering_stmt): Don't compute flags twice.
14398         (verify_gimple_call): Reject LHS in noreturn calls.
14399
14400 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14401
14402         PR debug/42604
14403         PR debug/42395
14404         * tree-vect-loop-manip.c (adjust_info): New type.
14405         (adjust_vec): New pointer to vector.
14406         (adjust_debug_stmts_now, adjust_vec_debug_stmts): New.
14407         (adjust_debug_stmts, adjust_phi_and_debug_stmts): New.
14408         (slpeel_update_phis_for_duplicate_loop): Use them.
14409         (slpeel_update_phi_nodes_for_guard1): Likewise.
14410         (slpeel_update_phi_nodes_for_guard2): Likewise.
14411         (slpeel_tree_peel_loop_to_edge): Likewise.
14412         (vect_update_ivs_after_vectorizer): Likewise.
14413
14414 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14415
14416         * vec.h (DEF_VEC_ALLOC_FUNC_O_STACK): Drop excess paren.
14417         (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise.
14418
14419 2010-01-09  Alexandre Oliva  <aoliva@redhat.com>
14420
14421         * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Silence
14422         bogus uninitialized warning.
14423
14424 2010-01-09  Richard Guenther  <rguenther@suse.de>
14425
14426         PR middle-end/42512
14427         * tree-scalar-evolution.c (interpret_loop_phi): Make sure
14428         the evolution is compatible with the initial condition.
14429
14430 2010-01-09  Jakub Jelinek  <jakub@redhat.com>
14431
14432         * gcc.c (process_command): Update copyright notice dates.
14433         * gcov.c (print_version): Likewise.
14434         * gcov-dump.c (print_version): Likewise.
14435         * mips-tfile.c (main): Likewise.
14436         * mips-tdump.c (main): Likewise.
14437
14438 2010-01-08  Andy Hutchinson  <hutchinsonandy@gcc.gnu.org>
14439
14440         PR target/41885
14441         * config/avr/avr.md (rotlqi3): Add CONST_INT_P check.
14442         (rotlhi3): Delete.
14443         (rotlhi3_8): Delete.
14444         (rotlsi3): Delete.
14445         (rotlsi3_8): Delete.
14446         (rotlsi3_16): Delete.
14447         (rotlsi3_24): Delete.
14448         (rotl<mode>3): New.
14449         (*rotw<mode>3): New.
14450         (*rotb<mode>3): New.
14451         * config/avr/avr.c (avr_rotate_bytes): New function.
14452         * config/avr/avr-proto.h (avr_rotate_bytes): New function.
14453
14454 2010-01-08  Steve Ellcey  <sje@cup.hp.com>
14455
14456         PR target/37454
14457         * configure.ac: Modify -rdynamic check.
14458         * configure: Regenerate.
14459
14460 2010-01-08  DJ Delorie  <dj@redhat.com>
14461
14462         * config/sh/sh.c (sh_expand_epilogue): Fix interrupt handler
14463         register popping order.
14464
14465 2010-01-08  Richard Guenther  <rguenther@suse.de>
14466
14467         PR lto/42528
14468         * c.opt (fsigned-char): Also let LTO handle this option.
14469         (funsigned-char): Likewise.
14470
14471 2010-01-07  Richard Guenther  <rguenther@suse.de>
14472
14473         * gimple.h (gss_for_code): Wrap gcc_assert in ENABLE_CHECKING.
14474         (gimple_op): Likewise.
14475         (gimple_op_ptr): Likewise.
14476         (gimple_assign_set_lhs): Remove gcc_assert.
14477         (gimple_assign_set_rhs1): Likewise.
14478         (gimple_assign_set_rhs2): Likewise.
14479         (gimple_call_set_lhs): Likewise.
14480         (gimple_call_set_fn): Likewise.
14481         (gimple_call_set_fndecl): Likewise.
14482         (gimple_call_fndecl): Likewise.
14483         (gimple_call_return_type): Likewise.
14484         (gimple_call_set_chain): Likewise.
14485         (gimple_call_num_args): Likewise.
14486         (gimple_call_set_arg): Likewise.
14487         (gimple_cond_set_code): Likewise.
14488         (gimple_cond_set_lhs): Likewise.
14489         (gimple_cond_set_rhs): Likewise.
14490         (gimple_cond_set_true_label): Likewise.
14491         (gimple_cond_set_false_label): Likewise.
14492         (gimple_label_set_label): Likewise.
14493         (gimple_goto_set_dest): Likewise.
14494         (gimple_debug_bind_get_var): Wrap gcc_assert in ENABLE_CHECKING.
14495         (gimple_debug_bind_get_value): Likewise.
14496         (gimple_debug_bind_get_value_ptr): Likewise.
14497         (gimple_debug_bind_set_var): Likewise.
14498         (gimple_debug_bind_set_value): Likewise.
14499         (gimple_debug_bind_reset_value): Likewise.
14500         (gimple_debug_bind_has_value_p): Likewise.
14501         (gimple_return_retval_ptr): Remove gcc_assert.
14502         (gimple_return_retval): Likewise.
14503         (gimple_return_set_retval): Likewise.
14504         * tree-flow.h (struct gimple_df): Remove nonlocal_all member.
14505         (safe_referenced_var_iterator): Remove.
14506         (FOR_EACH_REFERENCED_VAR_SAFE): Likewise.
14507         * tree-flow-inline.h (gimple_nonlocal_all): Remove.
14508         (fill_referenced_var_vec): Remove.
14509         (first_readonly_imm_use): Remove redundant gcc_assert.
14510         (phi_arg_index_from_use): Combine gcc_asserts.
14511         (move_use_after_head): Wrap gcc_assert in ENABLE_CHECKING.
14512         (first_imm_use_stmt): Remove redundant gcc_assert.
14513         * tree-cfg.c (verify_gimple_call): Verify function and chain
14514         operands.  Verify arguments.
14515         (verify_types_in_gimple_stmt): Verify condition code and labels.
14516
14517 2010-01-07  Richard Guenther  <rguenther@suse.de>
14518
14519         PR tree-optimization/42641
14520         * sese.c (rename_map_elt_info): Use the SSA name version, do
14521         not hash pointers.
14522
14523 2010-01-07  Jakub Jelinek  <jakub@redhat.com>
14524
14525         PR tree-optimization/42625
14526         * cgraph.c (cgraph_make_node_local): Clear DECL_COMDAT*,
14527         TREE_PUBLIC, DECL_WEAK and DECL_EXTERNAL also for same_body aliases.
14528
14529 2010-01-07  Duncan Sands  <baldrick@free.fr>
14530
14531         * Makefile.in (PLUGIN_HEADERS): Add version.h.
14532
14533 2010-01-07  Uros Bizjak  <ubizjak@gmail.com>
14534
14535         PR target/42511
14536         * ifcvt.c (dead_or_predicable): Also remove REG_EQUAL note when
14537         note itself is not function_invariant_p.
14538
14539 2009-01-07  Steven Bosscher  <steven@gcc.gnu.org>
14540
14541         * gcse.c (execute_rtl_cprop, execute_rtl_pre, execute_rtl_hoist):
14542         Do not add the DF_NOTE problem.
14543         * store-motion.c (execute_rtl_store_motion): Likewise.
14544
14545 2010-01-07  Martin Jambor  <mjambor@suse.cz>
14546
14547         PR tree-optimization/42157
14548         * tree-sra.c (compare_access_positions): Stabilize sort if both
14549         accesses have integer types, return zero immediately if they are the
14550         same.
14551
14552 2010-01-06  Richard Henderson  <rth@redhat.com>
14553
14554         PR middle-end/41883
14555         * haifa-sched.c (add_to_note_list): Merge into ...
14556         (concat_note_lists): ... here, and ...
14557         (unlink_other_notes, rm_other_notes): Merge into...
14558         (remove_notes): ... here.  Create REG_SAVE_NOTEs for
14559         NOTE_INSN_EPILOGUE_BEG.
14560
14561 2010-01-06  Richard Guenther  <rguenther@suse.de>
14562
14563         * ipa-inline.c (cgraph_decide_inlining_incrementally): Do
14564         not inline regular functions into always-inline functions.
14565
14566 2010-01-06  Nick Clifton  <nickc@redhat.com>
14567
14568         * config/rx/rx.h (enum rx_cpu_type): Add RX200.
14569         (CC1_SPEC): Issue an error message if -mcpu=rx200 and -fpu are
14570         used together.
14571         (OVERRIDE_OPTIONS): Delete.
14572         (OPTIMIZATION_OPTIONS): Define.
14573         (ALLOW_RX_FPU_INSNS): Define only in terms of -fpu option.
14574         * config/rx/rx.c (rx_handle_option): Issue an error message if
14575         -mcpu=rx200 and -fpu are used together.
14576         (rx_set_optimization_options): New function.  Issue an error
14577         message if an optimization attribute attempts to reset the FPU/
14578         math optimization pairing.
14579         * config/rx/rx-protos.h (rx_set_optimization_options): Prototype.
14580         * config/rx/rx.opt: Set the default to 32-bit doubles.
14581         * config/rx/t-rx: Add multilibs for -nofpu option.
14582         * doc/invoke.texi: Update documentation of RX options.
14583
14584 2010-01-06  Richard Guenther  <rguenther@suse.de>
14585
14586         * tree-ssa-pre.c (name_to_id): New global.
14587         (alloc_expression_id): Simplify SSA name handling.
14588         (lookup_expression_id): Likewise.
14589         (init_pre): Zero name_to_id.
14590         (fini_pre): Free it.
14591
14592 2010-01-06  Uros Bizjak  <ubizjak@gmail.com>
14593
14594         * ifcvt.c (if_convert): Output slim multiple dumps with TDF_SLIM.
14595
14596 2010-01-05  H.J. Lu  <hongjiu.lu@intel.com>
14597
14598         PR target/42542
14599         * config/i386/sse.md (smaxv2di3): New.
14600         (umaxv2di3): Likewise.
14601         (sminv2di3): Likewise.
14602         (uminv2di3): Likewise.
14603
14604 2010-01-05  Eric Botcazou  <ebotcazou@adacore.com>
14605
14606         PR target/42564
14607         * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): Delete.
14608         * config/sparc/sparc-protos.h (legitimize_pic_address): Likewise.
14609         (legitimize_tls_address): Likewise.
14610         (sparc_tls_referenced_p): Likewise.
14611         * config/sparc/sparc.c (sparc_expand_move): Use legitimize_tls_address
14612         and adjust calls to legitimize_pic_address.
14613         (legitimate_constant_p) Use sparc_tls_referenced_p.
14614         (legitimate_pic_operand_p): Likewise.
14615         (sparc_legitimate_address_p): Do not use SPARC_SYMBOL_REF_TLS_P.
14616         (sparc_tls_symbol_ref_1): Delete.
14617         (sparc_tls_referenced_p): Make static, recognize specific patterns.
14618         (legitimize_tls_address): Make static, handle CONST patterns.
14619         (legitimize_pic_address): Make static, remove unused parameter and
14620         adjust recursive calls.
14621         (sparc_legitimize_address): Make static, use sparc_tls_referenced_p
14622         and adjust call to legitimize_pic_address.
14623         (sparc_output_mi_thunk): Likewise.
14624
14625 2010-01-05  Paolo Bonzini  <bonzini@gnu.rg>
14626             H.J. Lu  <hongjiu.lu@intel.com>
14627
14628         PR target/42542
14629         * config/i386/i386.c (ix86_expand_int_vcond): Convert GTU to GT
14630         for V4SI and V2DI by subtracting (-(INT MAX) - 1) from both
14631         operands to make them signed.
14632
14633         Revert:
14634         2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
14635
14636         PR target/42542
14637         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
14638         GTU to GT for V4SI and V2DI.
14639
14640         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
14641         (umin<mode>3): Removed.
14642         (uminv8hi3): New.
14643         (uminv4si3): Likewise.
14644
14645 2010-01-05  Martin Jambor  <mjambor@suse.cz>
14646
14647         PR tree-optimization/42462
14648         * ipa-inline.c (compute_inline_parameters): Pass node->decl instead of
14649         current_function_decl to helper functions and macros.
14650
14651 2010-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14652
14653         PR bootstrap/41771
14654         * flags.h: Don't include real.h.
14655         (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS,
14656         HONOR_SIGN_DEPENDENT_ROUNDING): Move ...
14657         * real.h (HONOR_NANS, HONOR_SNANS, HONOR_INFINITIES,
14658         HONOR_SIGNED_ZEROS, HONOR_SIGN_DEPENDENT_ROUNDING): ... here.
14659         * dominance.c: Update copyright.
14660         * gimple.c (walk_gimple_op): Remove inline.
14661         * tree-ssa-reassoc.c: Include real.h.
14662         * Makefile.in (FLAGS_H): Remove $(REAL_H).
14663         (tree-ssa-reassoc.o): Depend on $(REAL_H).
14664
14665 2010-01-05  Nick Clifton  <nickc@redhat.com>
14666
14667         * config/rx/rx.c (rx_get_stack_layout): Fix allocation of second
14668         register to push into the stack frame when the accumulator has to
14669         be saved during interrupts.
14670
14671 2010-01-05  Eric Fisher  <joefoxreal@gmail.com>
14672
14673         * doc/invoke.texi: Remove the documentation about option
14674         -Wunreachable-code.
14675         * common.opt (Wunreachable-code):  Preserved for backward
14676         compatibility.
14677         * tree-cfg.c: Remove the implementation of -Wunreachable-code.
14678         * opts.c (common_handle_option): Add OPT_Wunreachable_code to
14679         the backward compatibility flag section.
14680
14681 2010-01-05  Richard Guenther  <rguenther@suse.de>
14682
14683         * tree-ssa-pre.c (bitmap_value_insert_into_set): Optimize.
14684
14685 2010-01-05  Jakub Jelinek  <jakub@redhat.com>
14686
14687         PR other/42611
14688         * cfgexpand.c (expand_one_var): Diagnose too large variables.
14689
14690         PR tree-optimization/42508
14691         * tree-sra.c (convert_callers): Check for recursive call
14692         by comparing cgraph nodes instead of decls.
14693         (modify_function): Call ipa_modify_formal_parameters also
14694         on all same_body aliases.
14695
14696         * cgraphunit.c (cgraph_materialize_all_clones): Compare
14697         cgraph nodes when checking for same_body aliases.
14698
14699 2010-01-05  Richard Guenther  <rguenther@suse.de>
14700
14701         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Avoid redundant
14702         allocation and lookup.
14703         (get_or_alloc_expr_for_constant): Likewise.
14704         (phi_translate): Sink allocation.
14705
14706 2010-01-04  Richard Guenther  <rguenther@suse.de>
14707
14708         * tree-ssa-sccvn.c (get_or_alloc_constant_value_id): Allocate
14709         a new entry only if needed.
14710         * tree-ssa-dom.c (lookup_avail_expr): Likewise.
14711         * tree-ssa-coalesce.c (find_coalesce_pair): Avoid one
14712         hashtable lookup.
14713         * tree-ssa-pre.c (sorted_array_from_bitmap_set): Pre-allocate
14714         the result array.
14715         (phi_translate): Handle CONSTANTs early.
14716
14717 2010-01-04  Martin Jambor  <mjambor@suse.cz>
14718
14719         PR tree-optimization/42398
14720         * tree-sra.c (struct access): Removed flag grp_different_types.
14721         (dump_access): Do not dump the removed flag.
14722         (sort_and_splice_var_accesses): Do not set the removed flag.
14723         (sra_modify_expr): Check for type compatibility directly.
14724
14725 2010-01-04  Martin Jambor  <mjambor@suse.cz>
14726
14727         PR tree-optimization/42366
14728         * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on
14729         edges with variable number of parameters.
14730         * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done
14731         flag instead of asserting it.
14732         (ipa_read_node_info): Read uses_analysis_done flag.
14733
14734 2010-01-04  Richard Guenther  <rguenther@suse.de>
14735
14736         * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use
14737         iterative_hash_* as intended.
14738         (vn_reference_compute_hash): Likewise.  Simplify hashing
14739         SSA names.
14740         (vn_reference_lookup_2): Likewise.
14741         (vn_nary_op_compute_hash): Likewise.
14742         (vn_phi_compute_hash): Likewise.
14743         (expressions_equal_p): Remove strange code.
14744         * tree-ssa-pre.c (pre_expr_eq): Use gcc_unreachable ().
14745         (pre_expr_hash): Likewise.  Simplify hashing SSA names.
14746         (bitmap_insert_into_set_1): Take value-id as parameter.
14747         (add_to_value): Pass it.
14748         (bitmap_insert_into_set): Likewise.
14749         (bitmap_value_insert_into_set): Likewise.  Remove redundant check.
14750
14751 2010-01-04  Jakub Jelinek  <jakub@redhat.com>
14752
14753         PR driver/42442
14754         * gcc.c (SWITCH_IGNORE_PERMANENTLY): Define.
14755         (do_self_spec): For switches with SWITCH_IGNORE set set also
14756         SWITCH_IGNORE_PERMANENTLY.
14757         (check_live_switch): Check SWITCH_IGNORE_PERMANENTLY instead
14758         of SWITCH_IGNORE.
14759
14760 2010-01-04  Rafael Avila de Espindola  <espindola@google.com>
14761
14762         * lto-streamer-out.c (output_unreferenced_globals): Output the full
14763         tree of an unreferenced global var.
14764
14765 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
14766
14767         PR target/42542
14768         * config/i386/i386.c (ix86_expand_int_vcond): Don't convert
14769         GTU to GT for V4SI and V2DI.
14770
14771         * config/i386/sse.md (umaxv4si3): Enabled for SSE4.1 and XOP.
14772         (umin<mode>3): Removed.
14773         (uminv8hi3): New.
14774         (uminv4si3): Likewise.
14775
14776 2010-01-04  H.J. Lu  <hongjiu.lu@intel.com>
14777
14778         PR lto/42581
14779         * collect2.c (main): Turn on trace in collect2 if -v is passed
14780         to gcc with LTO.
14781
14782 2010-01-03  Jerry Quinn  <jlquinn@optonline.net>
14783
14784         * doc/c-tree.texi (RETURN_STMT): Change to RETURN_EXPR.  Update
14785         description of expression operand.
14786
14787 2010-01-03  Andrew Jenner  <andrew@codesourcery.com>
14788
14789         * configure.ac: Add install-html to target_list for Make-hooks.
14790         * configure: Regenerate.
14791         * fortran/Make-lang.in (F95_HTMLFILES): New.
14792         (fortran.html): Use it.
14793         (fortran.install-html): New.
14794         * Makefile.in (install-html): Add lang.install-html.
14795         * java/Make-lang.in (JAVA_HTMLFILES): New.
14796         (java.html): Use it.
14797         (java.install-html): New.
14798         * objc/Make-lang.in (objc.install-html): New.
14799         * objcp/Make-lang.in (obj-c++.install-html): New.
14800         * cp/Make-lang.in (c++.install-html): New.
14801         * ada/gcc-interface/Make-lang.in (ada.install-html): New.
14802         * lto/Make-lang.in (lto.install-html): New.
14803
14804 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
14805
14806         PR lto/42520
14807         * gcc.c (LINK_COMMAND_SPEC): Pass -m* and -v to -plugin-opt.
14808
14809 2009-01-03  Steven Bosscher  <steven@gcc.gnu.org>
14810
14811         PR rtl-optimization/41862
14812         * store-motion.c (store_killed_in_insn, compute_store_table,
14813         remove_reachable_equiv_notes, replace_store_insn,
14814         build_store_vectors): Ignore all DEBUG_INSNs.
14815
14816 2010-01-03  H.J. Lu  <hongjiu.lu@intel.com>
14817
14818         PR lto/41564
14819         * common.opt: Add dumpdir.
14820
14821         * gcc.c (cc1_options): Add "-dumpbase %B" only if -dumpbase
14822         isn't specified.
14823         (option_map): Add --dumpdir.
14824
14825         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add dumpdir.
14826
14827         * lto-wrapper.c (run_gcc): Add -dumpbase and -dumpdir for -o.
14828
14829         * opts.c (decode_options): Try dump_dir_name first if
14830         dump_base_name isn't an absolute path.
14831         (common_handle_option): Handle OPT_dumpdir.
14832
14833         * toplev.c (dump_dir_name): New.
14834         (print_switch_values): Also ignore -dumpdir.
14835
14836         * toplev.h (dump_dir_name): New.
14837
14838 2010-01-03  Richard Guenther  <rguenther@suse.de>
14839
14840         PR tree-optimization/42589
14841         * tree-ssa-math-opts.c (execute_optimize_bswap): Allow
14842         double-word expansion of bswap32.
14843
14844 2010-01-03  Steven Bosscher  <steven@gcc.gnu.org>
14845
14846         * postreload-gcse.c (insert_expr_in_table): Replace BLOCK_NUM
14847         with BLOCK_FOR_INSN.
14848         * auto-inc-dec.c (attempt_change, get_next_ref, find_inc): Likewise.
14849         * ifcvt.c (noce_get_alt_condition, noce_try_abs,
14850         noce_process_if_block): Likewise.
14851         * gcse.c (compute_local_properties, insert_expr_in_table,
14852         insert_set_in_table, canon_list_insert, find_avail_set,
14853         pre_insert_copy_insn): Likewise.
14854
14855         * basic-block.h (BLOCK_NUM): Move from here...
14856         * sched-int.h (BLOCK_NUM): ... to here to localize it in the scheduler.
14857
14858 2010-01-03  Richard Guenther  <rguenther@suse.de>
14859
14860         PR tree-optimization/42438
14861         * tree-ssa-pre.c (struct bb_bitmap_sets): Add
14862         contains_may_not_return_call flag.
14863         (BB_MAY_NOTRETURN): New.
14864         (valid_in_sets): Trapping nary operations are not valid
14865         in blocks that may not return.
14866         (insert_into_preds_of_block): Remove check for trapping expressions.
14867         (compute_avail): Compute also BB_MAY_NOTRETURN.
14868
14869 2010-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
14870
14871         * doc/invoke.texi: Add 2010 to copyright years.
14872
14873 2010-01-03  Eric Botcazou  <ebotcazou@adacore.com>
14874
14875         * config/sparc/sparc.c: Fix formatting nits.
14876
14877 2010-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
14878             Alexander Monakov  <amonakov@ispras.ru>
14879
14880         * doc/invoke.texi (Optimize Options): Reword introduction a bit.
14881
14882 2010-01-02  Richard Guenther  <rguenther@suse.de>
14883
14884         PR middle-end/42577
14885         * tree-vrp.c (check_all_array_refs): Skip non-excutable blocks.
14886         (simplify_switch_using_ranges): Mark to be removed edges
14887         as non-executable.
14888
14889 2010-01-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14890
14891         * config/pa/t-slibgcc-dwarf-ver (SHLIB_SOVERSION): Bump by two.
14892
14893         * collect2.c (scan_libraries): Add missing argument in call to
14894         scan_prog_file.
14895
14896 2010-01-02  Uros Bizjak  <ubizjak@gmail.com>
14897
14898         PR target/42448
14899         * config/alpha/predicates.md (aligned_memory_operand): Return false
14900         for CQImode.
14901         (unaligned_memory_operand): Return true for CQImode.
14902         * config/alpha/alpha.c (get_aligned_mem): Assert that location
14903         doesn not cross aligned SImode word boundary.
14904
14905 2010-01-02  Anatoly Sokolov  <aesok@post.ru>
14906
14907         * config/avr/avr.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, XEXP_):
14908         Remove.
14909         * config/avr/avr-protos.h (avr_init_once, avr_optimization_options,
14910         avr_change_section, avr_reg_class_from_letter) : Remove declaration.
14911
14912 2010-01-02  Richard Guenther  <rguenther@suse.de>
14913
14914         PR lto/41597
14915         * toplev.c (compile_file): Emit LTO marker properly.  Change
14916         it to __gnu_lto_v1.
14917         * collect2.c (scan_prog_file): Adjust for changed LTO marker.
14918
14919 2010-01-01  Richard Guenther  <rguenther@suse.de>
14920
14921         PR debug/42455
14922         * tree-sra.c (analyze_all_variable_accesses): Work in DECL_UID order.
14923
14924 2010-01-01  Richard Guenther  <rguenther@suse.de>
14925
14926         PR c/42570
14927         * c-decl.c (grokdeclarator): For zero-size arrays force
14928         structural equality checks as layout_type does.
14929
14930 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
14931
14932         * builtins.c: Update copyright to 2010.
14933
14934 2010-01-01  H.J. Lu  <hongjiu.lu@intel.com>
14935
14936         PR lto/42531
14937         * lto-streamer-out.c (produce_asm): Revert the last change.
14938         (copy_function): Likewise.
14939
14940         * lto-streamer.c (lto_get_section_name): Skip any leading
14941         asterisk in name.
14942
14943 2010-01-01  Richard Guenther  <rguenther@suse.de>
14944
14945         PR middle-end/42559
14946         * builtins.c (get_object_alignment): Do not use DECL_ALIGN
14947         for LABEL_DECLs.
14948
14949 \f
14950 Copyright (C) 2010 Free Software Foundation, Inc.
14951
14952 Copying and distribution of this file, with or without modification,
14953 are permitted in any medium without royalty provided the copyright
14954 notice and this notice are preserved.