]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
PR target/39634
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
50ec89c7 12009-04-09 Alan Modra <amodra@bigpond.net.au>
2
3 PR target/39634
4 * config.gcc (powerpc64-*-linux*): Always build biarch.
5
482c1ea0 62009-04-09 Joseph Myers <joseph@codesourcery.com>
7
8 PR c/39613
9 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
10 it and pedwarn if this results in an INTEGER_CST.
11
fec76ae9 122009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13
14 * doc/install.texi: Update minimum GMP version. Remove obsolete
15 text in MPFR section.
16
a974aa3e 172009-04-08 Jakub Jelinek <jakub@redhat.com>
18
19 * dwarf2out.c (class_scope_p): New static inline.
20 (class_or_namespace_scope_p): Use it.
21 (gen_variable_die): Use DW_TAG_member tag for static data member
22 declarations instead of DW_TAG_variable.
23
e1a7ccb9 24 PR middle-end/39573
25 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
26 variables.
27
94373fa5 282009-04-08 Richard Guenther <rguenther@suse.de>
29
30 * tree-ssa-sccvn.c (valueize_refs): Do not continue to
31 valueize random data.
32
b5e8a0bc 332009-04-08 David Edelsohn <edelsohn@gnu.org>
34
35 * config.gcc (aix tm_file): Add aix-stdint.h.
36 (aix tm clause use_gcc_stdint): Set to wrap.
37 * config/rs6000/aix-stdint.h: New file.
38
3a44a278 392009-04-08 Richard Guenther <rguenther@suse.de>
40
41 PR middle-end/36291
42 * tree-dfa.c (add_referenced_var): Do not recurse into
43 global initializers.
44 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
45 exposed variables.
46 (fold_const_aggregate_ref): Likewise.
47
c429965c 482009-04-08 Paolo Bonzini <bonzini@gnu.org>
49
50 * recog.c (ordered_comparison_operator): New.
51 * gensupport.c (std_preds): Add it.
52 * doc/md.texi (Machine-Independent Predicates): Document it.
53
48d5ef93 542009-04-08 Jan Hubicka <jh@suse.cz>
55
56 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
57 * function.h (rtl_eh): Remove exception_handler_label_map.
58 * except.c (ehl_hash, ehl_eq, add_ehl_entry,
59 remove_exception_handler_label, for_each_eh_label_1): Remove.
60 (rtl_remove_unreachable_regions): Remove.
61 (convert_from_eh_region_ranges): Do not remove unreachable regions.
62 (find_exception_handler_labels): Don't build the hashtable.
63 (maybe_remove_eh_handler): Remove.
64 (for_each_eh_label): Rewrite to walk the tree.
65 (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
66 * except.h (maybe_remove_eh_handler): Remove.
67 * passes.c (init_optimization_passes): Schedule second EH cleanup
68 before out-of-ssa.
69 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
70 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
71
cbb955b0 722009-04-08 Paolo Bonzini <bonzini@gnu.org>
73
74 * genoutput.c (validate_optab_operands): New.
75 (gen_insn, gen_expand): Call it.
76
77 * genflags.c (gen_insn): Detect misused iterators.
78 (main): Pass line_no to gen_insn, exit with status 1 on error.
79
80 * genextract.c (line_no): Make global.
81 (VEC_safe_set_locstr): Change assertion to error message.
82 (main): Exit with status 1 on error.
83
9a8bed72 842009-04-08 Joseph Myers <joseph@codesourcery.com>
85
86 PR c/39614
87 PR c/39673
88 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
89 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
90 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
91 * c-convert.c (convert): Do not call fold on results of conversion
92 functions when the result is a C_MAYBE_CONST_EXPR.
93 * c-parser.c (c_parser_postfix_expression): Do not fold condition
94 of __builtin_choose_expr.
95 * c-typeck.c (remove_c_maybe_const_expr): New.
96 (build_unary_op, build_conditional_expr, build_compound_expr,
97 build_binary_op, c_objc_common_truthvalue_conversion): Call
98 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
99 integer operands.
100
87de4c68 1012009-04-08 Bingfeng Mei <bmei@broadcom.com>
102
103 * fold-const.c (const_binop): Combine two VECTOR_CST under operation
104 CODE to produce a new one. Add a prototype to use fold_convert_const
105
1e37e2e4 1062009-04-08 Danny Smith <dannysmith@users.sourceforge.net>
107
108 PR bootstrap/39660
109 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
110 mix declarations and code.
111
c68bcf58 1122009-04-08 Ben Elliston <bje@au.ibm.com>
113
114 * gcc.c: Replace `CC' with `GCC' throughout.
115
a015dc67 1162009-04-07 H.J. Lu <hongjiu.lu@intel.com>
117
118 * doc/invoke.texi: Document Atom support.
119
fc8ee10c 1202009-04-07 Jason Merrill <jason@redhat.com>
121
122 PR c++/25185
123 * c-common.h, c-common.c: Add flag_pretty_templates.
124 * c-opts.c (c_common_handle_option): Set it.
125 * c.opt: Add -fno-pretty-templates.
126 * doc/invoke.texi (C++ Dialect Options): Likewise.
127
9b57ed9f 1282009-04-07 Uros Bizjak <ubizjak@gmail.com>
129
130 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
131 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
132 (ia64_expand_builtin): Likewise.
133
9b973aa6 1342009-04-07 Martin Jambor <mjambor@suse.cz>
135
136 * tree-ssa-alias.c (refs_may_alias_p_1): Check for
137 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
138 ADDR_EXPRS are include too.
139
09347e88 1402009-04-07 Richard Guenther <rguenther@suse.de>
141
142 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
143 decls are only used if passes as parameters or if they are
144 local statics and the call is not to a builtin.
145 (call_may_clobber_ref_p_1): Likewise.
146
da4963ce 1472009-04-07 Paolo Bonzini <bonzini@gnu.org>
148
149 * expr.c (do_store_flag): Remove last argument. Simplify code
150 to avoid duplication of tests already done by can_compare_p.
151 (expand_expr_real_1): Adjust caller.
152
235155da 1532009-04-07 Paolo Bonzini <bonzini@gnu.org>
154
9b57ed9f 155 * optabs.c (can_compare_p): Test the predicate of a
156 cbranch and cstore pattern.
235155da 157
2040a7e4 1582009-04-07 Paolo Bonzini <bonzini@gnu.org>
159
9b57ed9f 160 * expr.c (convert_move): Use emit_store_flag instead of
161 "emulating" it.
2040a7e4 162
a5f5a6f7 1632009-04-07 Paolo Bonzini <bonzini@gnu.org>
164
9b57ed9f 165 * config/i386/i386.c (ix86_compare_emitted): Remove.
166 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
167 ix86_compare_op0 like ix86_compare_emitted used to be handled.
168 * config/i386/i386.h (ix86_compare_emitted): Remove.
169 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
170 instead of ix86_compare_emitted.
171 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
a5f5a6f7 172
fa22494c 1732009-04-07 Andrew Stubbs <ams@codesourcery.com>
174
175 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
176 Add t-sysroot-suffix to tmake_file.
177 * config/print-sysroot-suffix.sh: New file.
178 * config/t-sysroot-suffix: New file.
179
e73bbd21 1802009-04-07 Ben Elliston <bje@au.ibm.com>
181
182 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
183 as the latter produces a warning when the target does not support
184 infinity.
185
d5cd42ef 1862009-04-07 Ben Elliston <bje@au.ibm.com>
187
188 * dfp.c: Replace type punning assignments with memcpy throughout.
189 * Makefile.in (dfp.o-warn): Remove.
190
4e5e2802 1912009-04-07 Alan Modra <amodra@bigpond.net.au>
192
193 PR target/39634
194 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
195 Include soft-fp/t-softfp after rs6000/t-linux64.
196
30904b2c 1972009-04-06 Eric Botcazou <ebotcazou@adacore.com>
198
199 * stor-layout.c (set_sizetype): Use the full precision of their
200 machine mode for bitsize types.
201
3544e448 2022009-04-06 H.J. Lu <hongjiu.lu@intel.com>
203
204 * config/i386/i386.md: Revert 2 accidental checkins.
205
fbfe006e 2062009-04-06 Joey Ye <joey.ye@intel.com>
207 Xuepeng Guo <xuepeng.guo@intel.com>
208 H.J. Lu <hongjiu.lu@intel.com>
209
210 Atom pipeline model, tuning and insn selection.
211 * config.gcc (atom): Add atom config options and target.
212
213 * config/i386/atom.md: New.
214
215 * config/i386/i386.c (atom_cost): New cost.
216 (m_ATOM): New macro flag.
217 (initial_ix86_tune_features): Set m_ATOM.
218 (x86_accumulate_outgoing_args): Likewise.
219 (x86_arch_always_fancy_math_387): Likewise.
220 (processor_target): Add Atom cost.
221 (cpu_names): Add Atom cpu name.
222 (override_options): Set Atom ISA.
223 (ix86_issue_rate): New case PROCESSOR_ATOM.
224 (ix86_adjust_cost): Likewise.
225
226 * config/i386/i386.h (TARGET_ATOM): New target macro.
227 (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
228 (TARGET_OPT_AGU): New target option.
229 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
230 (processor_type): Add PROCESSOR_ATOM.
231
232 * config/i386/i386.md (cpu): Add new value "atom".
233 (use_carry, movu): New attr.
234 (atom.md): Include atom.md.
235 (adddi3_carry_rex64): Set attr "use_carry".
236 (addqi3_carry): Likewise.
237 (addhi3_carry): Likewise.
238 (addsi3_carry): Likewise.
239 (*addsi3_carry_zext): Likewise.
240 (subdi3_carry_rex64): Likewise.
241 (subqi3_carry): Likewise.
242 (subhi3_carry): Likewise.
243 (subsi3_carry): Likewise.
244 (x86_movdicc_0_m1_rex64): Likewise.
245 (*x86_movdicc_0_m1_se): Likewise.
246 (x86_movsicc_0_m1): Likewise.
247 (*x86_movsicc_0_m1_se): Likewise.
248 (*adddi_1_rex64): Emit add insn as much as possible.
249 (*addsi_1): Likewise.
250 (return_internal): Set atom_unit.
251 (return_internal_long): Likewise.
252 (return_pop_internal): Likewise.
253 (*rcpsf2_sse): Set atom_sse_attr attr.
254 (*qrt<mode>2_sse): Likewise.
255 (*prefetch_sse): Likewise.
256
257 * config/i386/i386-c.c (ix86_target_macros_internal): New case
258 PROCESSOR_ATOM.
259 (ix86_target_macros_internal): Likewise.
260
261 * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
262 (*prefetch_sse_rex): Likewise.
263 (sse_rcpv4sf2): Likewise.
264 (sse_vmrcpv4sf2): Likewise.
265 (sse_sqrtv4sf2): Likewise.
266 (<sse>_vmsqrt<mode>2): Likewise.
267 (sse_ldmxcsr): Likewise.
268 (sse_stmxcsr): Likewise.
269 (*sse_sfence): Likewise.
270 (sse2_clflush): Likewise.
271 (*sse2_mfence): Likewise.
272 (*sse2_lfence): Likewise.
273 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
274 (<sse>_movup<ssemodesuffixf2c>): Likewise.
275 (avx_movdqu<avxmodesuffix>): Likewise.
276 (avx_lddqu<avxmodesuffix>): Likewise.
277 (sse2_movntv2di): Change attr "type" to "ssemov".
278 (sse2_movntsi): Likewise.
279 (rsqrtv8sf2): Change attr "type" to "sseadd".
280 (sse3_addsubv2df3): Set attr "atom_unit".
281 (sse3_h<plusminus_insn>v4sf3): Likewise.
282 (*sse2_pmaddwd): Likewise.
283 (*vec_extractv2di_1_rex64): Likewise.
284 (*vec_extractv2di_1_avx): Likewise.
285 (sse2_psadbw): Likewise.
286 (ssse3_phaddwv8hi3): Likewise.
287 (ssse3_phaddwv4hi3): Likewise.
288 (ssse3_phadddv4si3): Likewise.
289 (ssse3_phadddv2si3): Likewise.
290 (ssse3_phaddswv8hi3): Likewise.
291 (ssse3_phaddswv4hi3): Likewise.
292 (ssse3_phsubwv8hi3): Likewise.
293 (ssse3_phsubwv4hi3): Likewise.
294 (ssse3_phsubdv4si3): Likewise.
295 (ssse3_phsubdv2si3): Likewise.
296 (ssse3_phsubswv8hi3): Likewise.
297 (ssse3_phsubswv4hi3): Likewise.
298 (ssse3_pmaddubsw128): Likewise.
299 (sse3_pmaddubsw: Likewise.
300 (ssse3_palignrti): Likewise.
301 (ssse3_palignrdi): Likewise.
302
ad659dc9 3032009-04-06 Gerald Pfeifer <gerald@pfeifer.com>
304
305 * doc/install.texi (Specific): Fix two cross-references to MinGW.
306
220307de 3072009-04-06 Richard Guenther <rguenther@suse.de>
308
309 PR tree-optimization/28868
310 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
311 of which PHI results we inserted.
312 (insert_into_preds_of_block): Record inserted PHIs.
313 (eliminate): Eliminate redundant PHI nodes.
314 (init_pre): Init inserted_phi_names.
315
0fefde02 3162009-04-06 Richard Guenther <rguenther@suse.de>
317
318 PR tree-optimization/39643
319 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
320 IMAGPART_EXPRs of complex constants.
321 (execute_fold_all_builtins): If we folded a call queue
322 TODO_update_address_taken.
323
b07ddb92 3242009-04-06 Jan Hubicka <jh@suse.cz>
325
326 PR middle-end/39659
327 * except.c (remove_unreachable_regions): Propagate may_contain_throw
328 flag.
329
85714674 3302009-04-06 Andrew Stubbs <ams@codesourcery.com>
331
332 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
333 delay slot.
334 (ic_invalidate_array): Likewise.
335
c2fd5e89 3362009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com>
337
338 * calls.c (emit_library_call_value_1): Fix a problem with parameter
339 alignment for library calls.
340
8953973a 3412009-04-06 Danny Smith <dannysmith@users.sourceforge.net>
342
343 * config.gcc (mingw32 tm_file): Add mingw-stdint.h.
344 (mingw32 tm clause use_gcc_stdint): Set to wrap.
345 * config/i386/mingw-stdint.h: New file.
346
eb04d2de 3472009-04-05 Richard Guenther <rguenther@suse.de>
348
349 PR tree-optimization/39648
350 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
351 our &A vs. &A[0] IL deficiencies.
352
0f656a57 3532009-04-04 Jan Hubicka <jh@suse.cz>
354
eb04d2de 355 * except.c (sjlj_find_directly_reachable_regions): Be ready for
356 removed toplevel regions.
0f656a57 357 (sjlj_mark_call_sites): Likewise.
358
615180dd 3592009-04-04 Dave Korn <dave.korn.cygwin@gmail.com>
360
361 * config.gcc (cygwin tm_file): Add cygwin-stdint.h.
362 (cygwin tm clause use_gcc_stdint): Set to wrap.
363 * config/i386/cygwin-stdint.h: New file.
364
23a3430d 3652009-04-04 Richard Guenther <rguenther@suse.de>
366
367 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
368 * tree-ssa-copy.c (init_copy_prop): Do not propagate through
369 single-argument PHIs if we are in loop-closed SSA form.
370 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
371 for the pre-condition.
372 (slpeel_tree_peel_loop_to_edge): Likewise.
373 (vect_build_loop_niters): Take an optional sequence to append stmts.
374 (vect_generate_tmps_on_preheader): Likewise.
375 (vect_do_peeling_for_loop_bound): Take extra guards for the
376 pre-condition.
377 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply
378 the cost model check.
379 (vect_loop_versioning): Take stmt and stmt list to put pre-condition
380 guards if we are going to peel. Do not apply versioning in that
381 case.
382 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
383 (vect_do_peeling_for_loop_bound): Likewise.
384 * tree-vect-loop.c (vect_transform_loop): If we are peeling for
385 loop bound only record extra pre-conditions, do not apply loop
386 versioning.
387
42e901a3 3882009-04-04 Richard Guenther <rguenther@suse.de>
389
390 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
391 renaming code.
392
87490e08 3932009-04-04 Jan Hubicka <jh@suse.cz>
394
395 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
396 last_basic_block for size of bb->index indexed array.
397 * bt-load.c (compute_defs_uses_and_gen, compute_kill,
398 compute_out, link_btr_uses, build_btr_def_use_webs,
399 build_btr_def_use_webs, migrate_btr_defs): Likewise.
400
686e094c 4012009-04-04 Jan Hubicka <jh@suse.cz>
402
403 * except.c (remove_eh_handler_and_replace): Break out from ...
404 (remove_eh_handler): ... here.
405 (bring_to_root): New function.
406 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
407 handled ones, bring others to root of tree.
408
3bd82487 4092009-04-04 Jan Hubicka <jh@suse.cz>
410
74eed1ed 411 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
412 (all_phis_safe_to_merge): New function.
413 (update_info): New structure.
414 (make_eh_edge_and_update_phi, update_eh_edges): New functions.
415 (cleanup_empty_eh): Update SSA if possible.
3bd82487 416
17fbf1b8 4172009-04-04 Richard Guenther <rguenther@suse.de>
418
419 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
420 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
421 (append_vuse): Likewise.
422
d02454a0 4232009-04-04 Jakub Jelinek <jakub@redhat.com>
424
425 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
426 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
427 instead of REG_UNSAVED for DW_CFA_undefined.
428 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
429 (uw_update_context): If RA column is REG_UNDEFINED, mark it as
430 outermost frame.
431
19f6bf8d 4322009-04-04 Richard Earnshaw <rearnsha@arm.com>
433
434 PR target/39501
435 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
436 * testsuite/gcc.c-torture/execute/pr39501.c: New file.
437 * testsuite/gcc.c-torture/execute/pr39501.x: New file.
438
d12dee9c 4392009-04-04 Richard Guenther <rguenther@suse.de>
440
441 PR tree-optimization/8781
442 PR tree-optimization/37892
443 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
444 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
445 (valueize_refs): Call it for *& valueizations.
446 (shared_reference_ops_from_ref): Rename to ...
447 (valueize_shared_reference_ops_from_ref): ... this and valueize.
448 (shared_reference_ops_from_call): Rename to ...
449 (valueize_shared_reference_ops_from_call): ... this and valueize.
450 (vn_reference_lookup): Update.
451 (visit_reference_op_call): Likewise.
452 * tree-ssa-pre.c (phi_translate_1): Fold *&.
453 (eliminate): Value-replace the call address in call statements.
454
507b89a4 4552009-04-04 Richard Guenther <rguenther@suse.de>
456
457 PR tree-optimization/39636
458 * tree-ssa-forwprop.c
459 (forward_propagate_addr_into_variable_array_index): Check for
460 GIMPLE_ASSIGN before accessing the rhs code.
461
4a83184b 4622009-04-03 Jason Merrill <jason@redhat.com>
463
464 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
465
d363dedc 4662009-04-03 Steve Ellcey <sje@cup.hp.com>
467
468 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
469 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
470 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
471 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
472 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
473 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
474 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
475 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
476 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
477 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
478 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
479 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
480 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
481 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
482 sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
483 Use fr_reg_or_fp01_operand instead of fr_register_operand
484
485 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
486 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
487 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
488
2dd81ece 4892009-04-03 Vladimir Makarov <vmakarov@redhat.com>
490
acc6de19 491 PR rtl-optimization/39607
492 PR rtl-optimization/39631
2dd81ece 493 Revert
494 2009-03-30 Vladimir Makarov <vmakarov@redhat.com>
495 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
496 instead of DF_LR_OUT.
497 * ira-lives.c (process_bb_node_lives): Ditto.
498 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
499 instead of DF_LR_{OUT,IN}.
500 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
501 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
502
41709826 5032009-04-03 Steven Bosscher <steven@gcc.gnu.org>
504
505 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
506 (execute_lower_omp): Always run but take the short way out if -fopenmp
507 is not given.
508 (gate_lower_omp): Remove, forcing the pass manager to always run the
509 pass and always set PROP_gimple_lomp.
510 (pass_lower_omp): Remove gate function.
511 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
512 PROP_trees. Instead, require it.
513 * ipa-cp.c (pass_ipa_cp): Likewise.
514 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
515 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
516 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
517 and PROP_gimple_leh.
518
dd277d48 5192009-04-03 Richard Guenther <rguenther@suse.de>
520
521 PR middle-end/13146
522 PR tree-optimization/23940
523 PR tree-optimization/33237
524 PR middle-end/33974
525 PR middle-end/34093
526 PR tree-optimization/36201
527 PR tree-optimization/36230
528 PR tree-optimization/38049
529 PR tree-optimization/38207
530 PR tree-optimization/38230
531 PR tree-optimization/38301
532 PR tree-optimization/38585
533 PR middle-end/38895
534 PR tree-optimization/38985
535 PR tree-optimization/39299
536 * tree-ssa-structalias.h: Remove.
537 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
538 (NULL_DEF_OPERAND_P): Make of type def_operand_p.
539 (struct vuse_element_d): Remove.
540 (struct vuse_vec_d): Likewise.
541 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
542 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
543 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
544 VUSE_ELEMENT_VAR): Likewise.
545 (struct voptype_d): Likewise.
546 (NUM_VOP_FREE_BUCKETS): Likewise.
547 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
548 (struct stmt_operands_d): Remove.
549 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
550 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
551 VDEF_NUM, VDEF_VECT): Likewise.
552 (copy_virtual_operands): Remove.
553 (operand_build_cmp): Likewise.
554 (create_ssa_artificial_load_stmt): Likewise.
555 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
556 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
557 vuse_index and mayuse_index members. Pack and move done and iter_type
558 members to the front.
559 (SSA_OP_VMAYUSE): Remove.
560 (SSA_OP_VIRTUAL_USES): Adjust.
561 (FOR_EACH_SSA_VDEF_OPERAND): Remove.
562 (unlink_stmt_vdef): Declare.
563 (add_to_addressable_set): Remove.
564 * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
565 (vrp_visit_stmt): Likewise.
566 * doc/tree-ssa.texi (Alias analysis): Update.
567 * doc/invoke.texi (max-aliased-vops): Remove docs.
568 (avg-aliased-vops): Likewise.
569 * tree-into-ssa.c (syms_to_rename): Remove.
570 (need_to_update_vops_p): Likewise.
571 (need_to_initialize_update_ssa_p): Rename to ...
572 (update_ssa_initialized_fn): ... this. Track function we are
573 initialized for.
574 (symbol_marked_for_renaming): Simplify.
575 (add_new_name_mapping): Do not set need_to_update_vops_p.
576 (dump_currdefs): Use SYMS_TO_RENAME.
577 (rewrite_update_stmt): Always walk all uses/defs.
578 (dump_update_ssa): Adjust.
579 (init_update_ssa): Take function argument. Track what we are
580 initialized for.
581 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
582 (create_new_def_for): Initialize for cfun, assert we are initialized
583 for cfun.
584 (mark_sym_for_renaming): Simplify.
585 (mark_set_for_renaming): Do not initialize update-ssa.
586 (need_ssa_update_p): Simplify. Take function argument.
587 (name_mappings_registered_p): Assert we ask for the correct function.
588 (name_registered_for_update_p): Likewise.
589 (ssa_names_to_replace): Likewise.
590 (release_ssa_name_after_update_ssa): Likewise.
591 (update_ssa): Likewise. Use SYMS_TO_RENAME.
592 (dump_decl_set): Do not print a newline.
593 (debug_decl_set): Do it here.
594 (dump_update_ssa): And here.
595 * tree-ssa-loop-im.c (move_computations): Adjust.
596 (movement_possibility): Likewise.
597 (determine_max_movement): Likewise.
598 (gather_mem_refs_stmt): Likewise.
599 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
600 or NAME_MEMORY_TAG.
601 * tree-complex.c (update_all_vops): Remove.
602 (expand_complex_move): Adjust.
603 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
604 Simplify test for memory referencing statement. Exclude
605 non-invariant ADDR_EXPRs.
606 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
607 * tree-loop-distribution.c (generate_memset_zero): Adjust.
608 (rdg_flag_uses): Likewise.
609 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
610 related code.
611 (tree_optimize_tail_calls_1): Also split the
612 edge from the entry block if we have degenerate PHI nodes in
613 the first basic block.
614 * tree.c (init_ttree): Remove memory-tag related code.
615 (tree_code_size): Likewise.
616 (tree_node_structure): Likewise.
617 (build7_stat): Re-write to be build6_stat.
618 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
619 (SSA_VAR_P): Adjust.
620 (struct tree_memory_tag): Remove.
621 (struct tree_memory_partition_tag): Likewise.
622 (union tree_node): Adjust.
623 (build7): Re-write to be build6.
624 * tree-pass.h (pass_reset_cc_flags): Remove.
625 (TODO_update_address_taken): New flag.
626 (pass_simple_dse): Remove.
627 * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
628 * params.h (MAX_ALIASED_VOPS): Remove.
629 (AVG_ALIASED_VOPS): Likewise.
630 * omp-low.c (expand_omp_taskreg): Update SSA form.
631 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
632 aliases the lhs in a copy stmt.
633 * tree-ssa-dse.c (struct address_walk_data): Remove.
634 (memory_ssa_name_same): Likewise.
635 (memory_address_same): Likewise.
636 (get_kill_of_stmt_lhs): Likewise.
637 (dse_possible_dead_store_p): Simplify, use the oracle. Handle
638 unused stores. Look through PHI nodes into post-dominated regions.
639 (dse_optimize_stmt): Simplify. Properly remove stores.
640 (tree_ssa_dse): Compute dominators.
641 (execute_simple_dse): Remove.
642 (pass_simple_dse): Likewise.
643 * ipa-reference.c (scan_stmt_for_static_refs): Open-code
644 gimple_loaded_syms and gimple_stored_syms computation.
645 * toplev.c (dump_memory_report): Dump alias and pta stats.
646 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
647 (vn_reference_eq): Likewise.
648 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
649 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
650 valueize_vuses): Remove.
651 (get_def_ref_stmt_vuses): Simplify. Rename to ...
652 (get_def_ref_stmt_vuse): ... this.
653 (vn_reference_lookup_2): New function.
654 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
655 walking equivalent vuses. Simplify.
656 (vn_reference_lookup): Likewise.
657 (vn_reference_insert): Likewise.
658 (vn_reference_insert_pieces): Likewise.
659 (visit_reference_op_call): Simplify.
660 (visit_reference_op_load): Likewise.
661 (visit_reference_op_store): Likewise.
662 (init_scc_vn): Remove shared_lookup_vuses initialization.
663 (free_scc_vn): Remove shared_lookup_vuses freeing.
664 (sort_vuses, sort_vuses_heap): Remove.
665 (get_ref_from_reference_ops): Export.
666 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
667 vector with single vuse pointer.
668 (vn_reference_lookup_pieces, vn_reference_lookup,
669 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
670 (shared_vuses_from_stmt): Remove.
671 (get_ref_from_reference_ops): Declare.
672 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
673 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
674 memory-tag related code.
675 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
676 (likely_value): Add comment, skip static-chain of call statements.
677 (surely_varying_stmt_p): Adjust.
678 (gimplify_and_update_call_from_tree): Likewise.
679 (execute_fold_all_builtins): Do not rebuild alias info.
680 (gimplify_and_update_call_from_tree): Properly update VOPs.
681 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
682 (copy_ref_info): Remove memory-tag related code.
683 * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
684 * ipa-pure-const.c (check_decl): Remove memory-tag related code.
685 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
686 computation.
687 * tree-ssa-dom.c (gimple_p): Remove typedef.
688 (eliminate_redundant_computations): Adjust.
689 (record_equivalences_from_stmt): Likewise.
690 (avail_expr_hash): Likewise.
691 (avail_expr_eq): Likewise.
692 * tree-ssa-propagate.c (update_call_from_tree): Properly
693 update VOPs.
694 (stmt_makes_single_load): Likewise.
695 (stmt_makes_single_store): Likewise.
696 * tree-ssa-alias.c: Rewrite completely.
697 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
698 debug_mem_sym_stats, dump_mem_sym_stats_for_var,
699 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
700 delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
701 dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
702 Remove public functions.
703 (pass_reset_cc_flags): Remove.
704 (pass_build_alias): Move ...
705 * tree-ssa-structalias.c (pass_build_alias): ... here.
706 * tree-ssa-alias.c (may_be_aliased): Move ...
707 * tree-flow-inline.h (may_be_aliased): ... here.
708 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
709 count_uses_and_derefs): Move ...
710 * gimple.c: ... here.
711 * gimple.h (count_uses_and_derefs): Declare.
712 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
713 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
714 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
715 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
716 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
717 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
718 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
719 New functions.
720 * tree-dfa.c (refs_may_alias_p): Move ...
721 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend.
722 * tree-ssa-alias.h: New file.
723 * tree-ssa-sink.c (is_hidden_global_store): Adjust.
724 (statement_sink_location): Likewise.
725 * opts.c (decode_options): Do not adjust max-aliased-vops or
726 avg-aliased-vops values.
727 * timevar.def (TV_TREE_MAY_ALIAS): Remove.
728 (TV_CALL_CLOBBER): Likewise.
729 (TV_FLOW_SENSITIVE): Likewise.
730 (TV_FLOW_INSENSITIVE): Likewise.
731 (TV_MEMORY_PARTITIONING): Likewise.
732 (TV_ALIAS_STMT_WALK): New timevar.
733 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
734 * tree-ssa-address.c (create_mem_ref_raw): Use build6.
735 (get_address_description): Remove memory-tag related code.
736 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
737 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
738 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
739 and immediate uses in statements. Document.
740 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
741 (dump_symbols): Remove.
742 (dump_gimple_mem_ops): Do not dump loaded or stored syms.
743 * alias.c (get_deref_alias_set): New function split out from ...
744 (get_alias_set): ... here.
745 * alias.h (get_deref_alias_set): Declare.
746 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
747 type parameter. Remove restrict pointer handling. Create a
748 ref-all pointer in case type-based alias sets do not conflict.
749 (vect_analyze_data_refs): Remove SMT related code.
750 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
751 (vectorizable_load): Likewise.
752 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
753 (DR_SYMBOL_TAG, DR_VOPS): Remove.
754 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
755 Ignore vops and SMTs.
756 (dr_analyze_alias): Likewise..
757 (free_data_ref): Likewise.
758 (create_data_ref): Likewise.
759 (analyze_all_data_dependences): Likewise.
760 (get_references_in_stmt): Adjust.
761 * tree-flow-inline.h (gimple_aliases_computed_p,
762 gimple_addressable_vars, gimple_call_clobbered_vars,
763 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
764 factoring_name_p, mark_call_clobbered, clear_call_clobbered,
765 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
766 gimple_mem_ref_stats): Remove.
767 (gimple_vop): New function.
768 (op_iter_next_use): Remove vuses and mayuses cases.
769 (op_iter_next_def): Remove vdefs case.
770 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
771 (clear_and_done_ssa_iter): Do not set removed fields.
772 (op_iter_init): Likewise. Skip vuse and/or vdef if requested.
773 Assert we are not iterating over vuses or vdefs if not also
774 iterating over uses or defs.
775 (op_iter_init_use): Likewise.
776 (op_iter_init_def): Likewise.
777 (op_iter_next_vdef): Remove.
778 (op_iter_next_mustdef): Likewise.
779 (op_iter_init_vdef): Likewise.
780 (compare_ssa_operands_equal): Likewise.
781 (link_use_stmts_after): Handle vuse operand.
782 (is_call_used): Use is_call_clobbered.
783 (is_call_clobbered): Global variables are always call clobbered,
784 query the call-clobbers bitmap.
785 (mark_call_clobbered): Ignore global variables.
786 (clear_call_clobbered): Likewise.
787 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
788 virtual operands sanity check.
789 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
790 Remove.
791 (TARGET_MEM_REF): Remove TMR_TAG operand.
792 * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
793 Remove call-clobber related code.
794 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag.
795 (dump_variable): Do not dump SMTs, memory stats, may-aliases or
796 partitions or escape reason.
797 (get_single_def_stmt, get_single_def_stmt_from_phi,
798 get_single_def_stmt_with_phi): Remove.
799 (dump_referenced_vars): Tidy.
800 (get_ref_base_and_extent): Allow bare decls.
801 (collect_dfa_stats): Adjust.
802 * graphite.c (rename_variables_in_stmt): Adjust.
803 (graphite_copy_stmts_from_block): Likewise.
804 (translate_clast): Likewise.
805 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
806 (EXPR_DIES): New.
807 (translate_vuse_through_block): Use the oracle.
808 (phi_translate_1): Adjust.
809 (value_dies_in_block_x): Use the oracle. Cache the outcome
810 in EXPR_DIES.
811 (valid_in_sets): Check if the VUSE for
812 a REFERENCE is available.
813 (eliminate): Do not remove stmts during elimination,
814 instead queue and remove them afterwards.
815 (do_pre): Do not rebuild alias info.
816 (pass_pre): Run TODO_rebuild_alias before PRE.
817 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
818 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
819 (mark_all_v_defs_stmt): Remove.
820 (mark_all_v_defs_seq): Adjust.
821 (sra_replace): Likewise.
822 (scalarize_use): Likewise.
823 (scalarize_copy): Likewise.
824 (scalarize_init): Likewise.
825 (scalarize_ldst): Likewise.
826 (todoflags): Remove.
827 (tree_sra): Do not rebuild alias info.
828 (tree_sra_early): Adjust.
829 (pass_sra): Run TODO_update_address_taken before SRA.
830 * tree-predcom.c (set_alias_info): Remove.
831 (prepare_initializers_chain): Do not call it.
832 (mark_virtual_ops_for_renaming): Adjust.
833 (mark_virtual_ops_for_renaming_list): Remove.
834 (initialize_root_vars): Adjust.
835 (initialize_root_vars_lm): Likewise.
836 (prepare_initializers_chain): Likewise.
837 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
838 (may_propagate_copy_into_stmt): Likewise.
839 (merge_alias_info): Do nothing for now.
840 (propagate_tree_value_into_stmt): Adjust.
841 (stmt_may_generate_copy): Likewise.
842 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
843 not mark symbols for renaming.
844 (forward_propagate_addr_expr): Match up push/pop_stmt_changes
845 with the same statement, make sure to update the new pointed-to one.
846 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
847 call statements, do not mark symbols for renaming.
848 (mark_operand_necessary): Dump something.
849 (ref_may_be_aliased): New function.
850 (mark_aliased_reaching_defs_necessary_1): New helper function.
851 (mark_aliased_reaching_defs_necessary): Likewise.
852 (mark_all_reaching_defs_necessary_1): Likewise.
853 (mark_all_reaching_defs_necessary): Likewise.
854 (propagate_necessity): Do not process virtual PHIs. For
855 non-aliased loads mark all reaching definitions as necessary.
856 For aliased loads and stores mark the immediate dominating
857 aliased clobbers as necessary.
858 (visited): New global static.
859 (perform_tree_ssa_dce): Free visited bitmap after propagating
860 necessity.
861 (remove_dead_phis): Perform simple dead virtual PHI removal.
862 (remove_dead_stmt): Properly unlink virtual operands when
863 removing stores.
864 (eliminate_unnecessary_stmts): Schedule PHI removal after
865 stmt removal.
866 * tree-ssa-ter.c (is_replaceable_p): Adjust.
867 (process_replaceable): Likewise.
868 (find_replaceable_in_bb): Likewise.
869 * tree-ssa.c (verify_ssa_name): Verify all VOPs are
870 based on the single gimple vop.
871 (verify_flow_insensitive_alias_info): Remove.
872 (verify_flow_sensitive_alias_info): Likewise.
873 (verify_call_clobbering): Likewise.
874 (verify_memory_partitions): Likewise.
875 (verify_alias_info): Likewise.
876 (verify_ssa): Adjust..
877 (execute_update_addresses_taken): Export. Update SSA
878 manually. Optimize only when optimizing. Use a local bitmap.
879 (pass_update_address_taken): Remove TODO_update_ssa, add
880 TODO_dump_func.
881 (pass_update_address_taken): Just use TODO_update_address_taken.
882 (init_tree_ssa): Do not initialize addressable_vars.
883 (verify_ssa): Verify new VUSE / VDEF properties.
884 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
885 Do not call verify_alias_info.
886 (delete_tree_ssa): Clear the VUSE, VDEF operands.
887 Do not free the loaded and stored syms bitmaps. Reset the escaped
888 and callused solutions. Do not free addressable_vars.
889 Remove memory-tag related code.
890 (warn_uninitialized_var): Aliases are always available.
891 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
892 * lambda-code.c (can_put_in_inner_loop): Adjust.
893 (can_put_after_inner_loop): Likewise.
894 (perfect_nestify): Likewise.
895 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
896 (vect_gen_widened_results_half): Remove CALL_EXPR handling.
897 (vectorizable_conversion): Do not mark symbols for renaming.
898 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
899 (expand_call_inline): Unlink the calls virtual operands before
900 replacing it.
901 (tree_function_versioning): Do not call update_ssa if we are not
902 updating clones. Simplify.
903 * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
904 (propagate_with_phi): Likewise..
905 * tree-outof-ssa.c (create_temp): Remove memory tag and call
906 clobber code. Assert we are not aliased or global.
907 * tree-flow.h: Include tree-ssa-alias.h
908 (enum escape_type): Remove.
909 (struct mem_sym_stats_d): Likewise.
910 (struct mem_ref_stats_d): Likewise.
911 (struct gimple_df): Add vop member. Remove global_var,
912 call_clobbered_vars, call_used_vars, addressable_vars,
913 aliases_compted_p and mem_ref_stats members. Add syms_to_rename,
914 escaped and callused members.
915 (struct ptr_info_def): Remove all members, add points-to solution
916 member pt.
917 (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
918 call_clobbered, escape_mask, mpt and symbol_mem_tag members.
919 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
920 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
921 (tree-ssa-alias.o): Likewise.
922 (toplev.o): Add tree-ssa-alias.h
923 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
924 * gimple.c (gimple_set_bb): Fix off-by-one error.
925 (is_gimple_reg): Do not handle memory tags.
926 (gimple_copy): Also copy virtual operands.
927 Delay updating the statement. Do not reset loaded and stored syms.
928 (gimple_set_stored_syms): Remove.
929 (gimple_set_loaded_syms): Likewise.
930 (gimple_call_copy_skip_args): Copy the virtual operands
931 and mark the new statement modified.
932 * tree-ssa-structalias.c (may_alias_p): Remove.
933 (set_uids_in_ptset): Take the alias set to prune with as
934 parameter. Fold in the alias test of may_alias_p.
935 (compute_points_to_sets): Compute whether a ptr is dereferenced
936 in a local sbitmap.
937 (process_constraint): Deal with &ANYTHING on the lhs, reject all
938 other ADDRESSOF constraints on the lhs.
939 (get_constraint_for_component_ref): Assert that we don't get
940 ADDRESSOF constraints from the base of the reference.
941 Properly generate UNKNOWN_OFFSET for DEREF if needed.
942 (struct variable_info): Remove collapsed_to member.
943 (get_varinfo_fc): Remove.
944 (new_var_info): Do not set collapsed_to.
945 (dump_constraint): Do not follow cycles.
946 (dump_constraint_graph): Likewise.
947 (build_pred_graph): Likewise.
948 (build_succ_graph): Likewise.
949 (rewrite_constraints): Likewise.
950 (do_simple_structure_copy): Remove.
951 (do_rhs_deref_structure_copy): Remove.
952 (do_lhs_deref_structure_copy): Remove.
953 (collapse_rest_of_var): Remove.
954 (do_structure_copy): Re-implement.
955 (pta_stats): New global variable.
956 (dump_pta_stats): New function.
957 (struct constraint_expr): Make offset signed.
958 (UNKNOWN_OFFSET): Define special value.
959 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
960 (solution_set_expand): New helper function split out from ...
961 (do_sd_constraint): ... here.
962 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets.
963 (do_ds_constraint): Likewise.
964 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED
965 and CALLUSED = *CALLUSED.
966 (set_union_with_increment): Make inc argument signed.
967 (type_safe): Remove.
968 (get_constraint_for_ptr_offset): Handle unknown and negative
969 constant offsets.
970 (first_vi_for_offset): Handle offsets before start. Bail
971 out early for offsets beyond the variable extent.
972 (first_or_preceding_vi_for_offset): New function.
973 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
974 Together with ESCAPED = *ESCAPED this properly computes reachability.
975 (find_what_var_points_to): New function.
976 (find_what_p_points_to): Implement in terms of find_what_var_points_to.
977 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
978 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
979 pt_solutions_intersect): New functions.
980 (compute_call_used_vars): Remove.
981 (compute_may_aliases): New main entry into PTA computation.
982 * gimple.h (gimple_p): New typedef.
983 (struct gimple_statement_base): Remove references_memory_p.
984 (struct gimple_statement_with_memory_ops_base): Remove
985 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse
986 members.
987 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
988 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
989 gimple_set_references_memory): Remove.
990 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
991 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
992 New functions.
993 * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
994 (verify_expr): Allow RESULT_DECL.
995 (gimple_duplicate_bb): Do not copy virtual operands.
996 (gimple_duplicate_sese_region): Adjust.
997 (gimple_duplicate_sese_tail): Likewise.
998 (mark_virtual_ops_in_region): Remove.
999 (move_sese_region_to_fn): Do not call it.
1000 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
1001 and pass_simple_dse.
1002 (execute_function_todo): Handle TODO_update_address_taken,
1003 call execute_update_addresses_taken for TODO_rebuild_alias.
1004 (execute_todo): Adjust.
1005 (execute_one_pass): Init dump files early.
1006 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
1007 call-clobbered.
1008 (create_general_new_stmt): Clear vops.
1009 * tree-ssa-reassoc.c (get_rank): Adjust.
1010 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
1011 symbols for renaming.
1012 * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
1013 (PARAM_AVG_ALIASED_VOPS): Likewise.
1014 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
1015 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
1016 * tree-ssa-operands.c: Simplify for new virtual operand
1017 representation.
1018 (operand_build_cmp, copy_virtual_operands,
1019 create_ssa_artificial_load_stmt, add_to_addressable_set,
1020 gimple_add_to_addresses_taken): Remove public functions.
1021 (unlink_stmt_vdef): New function.
1022
8d40ea45 10232009-04-03 Alan Modra <amodra@bigpond.net.au>
1024
1025 * config.gcc (powerpc-*-linux*): Merge variants.
1026
0bfaf4c4 10272009-04-02 Chao-ying Fu <fu@mips.com>
1028 James Grosbach <james.grosbach@microchip.com>
1029
1030 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
1031 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
1032 cop0_sp_offset.
1033 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
1034 keep_interrupts_masked_p, use_debug_exception_return_p.
1035 (mips_attribute_table): Add interrupt, use_shadow_register_set,
1036 keep_interrupts_masked, use_debug_exception_return.
1037 (mips_interrupt_type_p, mips_use_shadow_register_set_p,
1038 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
1039 New functions.
1040 (mips_function_ok_for_sibcall): Return false for interrupt handlers.
1041 (mips_print_operand): Process COP0 registers to print $0 .. $31
1042 correctly for GAS to process.
1043 (mips_interrupt_extra_call_saved_reg_p): New function.
1044 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
1045 extra registers.
1046 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
1047 (mips_compute_frame_info): Add supports for interrupt context that
1048 includes doubleword accumulators and COP0 registers.
1049 (mips_for_each_saved_acc): New function.
1050 (mips_for_each_saved_gpr_and_fpr): Change the function name from
1051 mips_for_each_saved_reg.
1052 (mips_save_reg): Save accumulators.
1053 (mips_kernel_reg_p): A new for_each_rtx callback.
1054 (mips_expand_prologue): Support interrupt handlers.
1055 (mips_restore_reg): Restore accumulators.
1056 (mips_expand_epilogue): Support interrupt handlers.
1057 (mips_can_use_return_insn): Return false for interrupt handlers.
1058 (mips_epilogue_uses): New function.
1059 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
1060 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
1061 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
1062 cop0_move): New instructions.
1063 * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
1064 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
1065 defines.
1066 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
1067 New defines.
1068 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
1069 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
1070 interrupt handlers, we use K0 as the temporary register.
1071 (EPILOGUE_USES): Change to a function call.
1072 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
1073 handlers, we use K0 as the temporary register.
1074
1075 * doc/extend.texi (Function Attributes): Document interrupt,
1076 use_shadow_register_set, keep_interrupts_masked,
1077 use_debug_exception_return for MIPS attributes.
1078
47b92737 10792009-04-03 Alan Modra <amodra@bigpond.net.au>
1080
1081 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
1082 Remove a number of t-files from tmake_file.
1083 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
1084 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
1085 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
1086 target_prototype, not TARGET_PROTOTYPE.
1087 (LINK_OS_GNU_SPEC): Define.
1088 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
1089 and darwin-ldoubdle.c.
1090
cc92bc82 10912009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com>
1092
1093 PR driver/39293
1094 * gcc.c (save_temps_flag): Add support for -save-temps=obj.
1095 (cpp_options): Ditto.
1096 (default_compilers): Ditto.
1097 (display_help): Ditto.
1098 (process_command): Ditto.
1099 (do_spec_1): Ditto.
1100 (set_input): Use lbasename instead of duplicate code.
1101 (save_temps_prefix): New static for -save-temps=obj.
1102 (save_temps_length): Ditto.
1103
1104 * doc/invoke.texi (-save-temps=obj): Document new variant to
1105 -save-temps switch.
1106
1c2a5380 11072009-04-02 Jeff Law <law@redhat.com>
1108
1109 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
1110 variable.
1111
1301d110 11122009-04-02 H.J. Lu <hongjiu.lu@intel.com>
1113
1114 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
1115 * configure: Regenerated.
1116
14bd221c 11172009-04-02 Rafael Avila de Espindola <espindola@google.com>
1118
1119 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
1120 share the argument list.
1121
64f3398b 11222009-04-02 Rafael Avila de Espindola <espindola@google.com>
1123
1124 Merge
1125
1126 2009-02-12 Diego Novillo <dnovillo@google.com>
1127
1301d110 1128 * varpool.c (debug_varpool): New.
1129 * cgraph.h (debug_varpool): Declare.
64f3398b 1130
0727d268 11312009-04-02 Jan Hubicka <jh@suse.cz>
1132
1133 * passes.c (init_optimization_passes): Remove two copies of ehcleanup
1134 pass.
1135
3bc1f2c4 11362009-04-02 H.J. Lu <hongjiu.lu@intel.com>
1137
1138 * config/i386/i386.c (ix86_abi): Move initialization to ...
1139 (override_options): Here.
1140
e1190e3a 11412009-04-02 Christian Bruel <christian.bruel@st.com>
1142
1143 * config/sh/sh.c (sh_dwarf_register_span): New function.
1144 (TARGET_DWARF_REGISTER_SPAN): Define.
1145 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
1146
792672f0 11472009-04-02 Ira Rosen <irar@il.ibm.com>
1148
1149 PR tree-optimization/39595
1150 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
1151 interleaved loads group is not greater than the SLP group size.
1152
1c47b3e8 11532009-04-02 Rafael Avila de Espindola <espindola@google.com>
1154
1155 * builtins.c (is_builtin_name): New.
1156 (called_as_built_in): Use is_builtin_name.
1157 * tree.h (is_builtin_name): New.
1158 * varasm.c (incorporeal_function_p): Use is_builtin_name
1159
42aaa915 11602009-04-02 Andrew Stubbs <ams@codesourcery.com>
1161
1162 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
1163
41771881 11642009-04-02 Dodji Seketeli <dodji@redhat.com>
1165
1166 PR c++/26693
1167 * c-decl.c: (clone_underlying_type): Move this ...
1168 * c-common.c (set_underlying_type): ... here.
1169 Also, make sure the function properly sets TYPE_STUB_DECL() on
1170 the newly created typedef variant type.
1171 * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
1172 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry points.
1173
ac9b13de 11742009-04-02 Richard Guenther <rguenther@suse.de>
1175
1176 PR tree-optimization/37221
1177 * tree-flow.h (degenerate_phi_result): Declare.
1178 * tree-ssa-dom.c (degenerate_phi_result): Export.
1179 * tree-scalar-evolution.c (analyze_initial_condition): If
1180 the initial condition is defined by a degenerate PHI node
1181 use the degenerate value.
1182
959aa063 11832009-04-01 Eric Botcazou <ebotcazou@adacore.com>
1184
1185 PR rtl-optimization/39588
1186 * combine.c (merge_outer_ops): Do not set the constant when this
1187 is not necessary.
1188 (simplify_shift_const_1): Do not modify it either in this case.
1189
9e0aee4b 11902009-04-01 Steven Bosscher <steven@gcc.gnu.org>
1191
1192 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
1193 tuning is deprecated if -mtune value is set to an Itanium1 variant.
1194
f8ed6d41 11952009-04-01 Janis Johnson <janis187@us.ibm.com>
1196
1197 PR c/29027
1198 * c-lex.c (interpret_float): Default (no suffix) is double.
1199
098581e0 12002009-04-1 Xinliang David Li <davidxl@google.com>
1201
1202 * config/i386/i386.c (legitimate_constant_p): Recognize
1203 all one vector constant.
1204
6718899e 12052009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1206
1207 * gcc/config/vax/vax.c: Add #includes to silence warnings.
1208 Change #include order to silence two warnings.
1209
12102009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1211
1212 * gcc/config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
1213 (ASM_SPEC): Pass -k to the assembler for PIC code.
1214
12152009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1216
1217 * gcc/config.gcc: Add vax-*-linux* to the switch.
1218 * gcc/config/vax/linux.h: New file. (TARGET_VERSION,
1219 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
1220
12212009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1222
1223 * gcc/config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
1224 Use predicate macros instead of GET_CODE() == foo.
1225 * gcc/config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
1226 ashlsi3, rotrsi3, <unnamed>): Likewise.
1227
12282009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1229
1230 * gcc/config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
1231 jbbccihi, jbbccisi): Remova trailing whitespace.
1232 * gcc/config/vax/constraints.md: Likewise.
1233 * gcc/config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
1234 * gcc/config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
1235 * gcc/config/vax/predicates.md: Likewise.
1236 * gcc/config/vax/vax.c (print_operand_address, vax_output_int_move,
1237 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
1238 * gcc/config/vax/vax.h: Likewise.
1239 * gcc/config/vax/vax.md (nonlocal_goto): Likewise.
1240
12412009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1242
1243 * gcc/config/vax/vax.c (vax_float_literal, vax_output_int_move)
1244 (indirectable_address_p, adjacent_operands_p): Add spaces around
1245 braces.
1246 * gcc/config/vax/vax-protos.h (adjacent_operands_p): Likewise.
1247
12482009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1249
1250 * gcc/config/vax/vax.c (legitimate_constant_address_p,
1251 legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
1252 index_term_p, reg_plus_index_p, legitimate_address_p,
1253 vax_mode_dependent_address_p): Update comments to match functions
1254 modified by the recent int->bool conversion.
1255
12562009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1257
1258 * gcc/config/vax/builtins.md: Update copyright message.
1259 * gcc/config/vax/constraints.md: Likewise.
1260 * gcc/config/vax/netbsd-elf.h: Likewise.
1261 * gcc/config/vax/predicates.md: Likewise.
1262 * gcc/config/vax/vax-protos.h: Likewise.
1263 * gcc/config/vax/vax.c: Likewise.
1264 * gcc/config/vax/vax.h: Likewise.
1265 * gcc/config/vax/vax.md: Likewise.
1266 * gcc/config/vax/vax.opt: Likewise.
1267
12682009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de>
1269
1270 * gcc/config/vax/builtins.md (ffssi2, ffssi2_internal,
1271 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
1272 * gcc/config/vax/constraints.md (B, R): Likewise.
1273 * gcc/config/vax/predicates.md (external_memory_operand,
1274 nonimmediate_addsub_di_operand): Likewise.
1275 * gcc/config/vax/vax.c (vax_output_int_add): Likewise.
1276 * gcc/config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
1277 untyped_call): Likewise.
1278
12792009-04-01 Matt Thomas <matt@3am-software.com>
1280
1281 * config/vax/predicates.md: New file. (symbolic_operand,
1282 local_symbolic_operand, external_symbolic_operand,
1283 external_const_operand, nonsymbolic_operand, external_memory_operand,
1284 indirect_memory_operand, indexed_memory_operand,
1285 illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
1286 nonimmediate_addsub_di_operand, general_addsub_di_operand): New
1287 predicate.
1288 * config/vax/constraints.md: New file. (Z0, U06, U08, U16, CN6, S08,
1289 S16, I, J, K, L, M, N, O, G, Q, B, R, T): New constraint.
1290 * config/vax/builtins.md: New file. (ffssi2, ffssi2_internal,
1291 sync_lock_test_and_set<mode>, jbbssiqi, jbbssihi, jbbssisi,
1292 sync_lock_release<mode>, jbbcciqi, jbbccihi, jbbccisi): Define.
1293 * config/vax/vax.opt (mqmath): Add option.
1294 * config/vax/vax.md (isfx): Extend with DI.
1295 (VAXintQH, VAXintQHSD): Define.
1296 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
1297 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
1298 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
1299 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
1300 (movdi): Update constraints and use vax_output_int_move().
1301 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
1302 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
1303 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
1304 nonlocal_goto): New.
1305 (mov<mode>): Extend accepted operand types.
1306 (subdi3_old): Rename from subdi3, change update constraints and use
1307 a new implementation.
1308 * gcc/config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
1309 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
1310 MOVE_RATIO, CLEAR_RATIO): Define.
1311 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
1312 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
1313 (PRINT_OPERAND): Redefine using a function instead of inlined code.
1314 * gcc/config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
1315 (split_quadword_operands): Make static and really allow variable
1316 splitting.
1317 (print_operand_address): Update for PIC generation.
1318 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
1319 indexable_address_p, fixup_mathdi_operand,
1320 vax_expand_addsub_di_operands, adjacent_operands_p): New.
1321 (vax_float_literal, legitimate_constant_p,
1322 indirectable_constant_address_p, index_term_p,
1323 reg_plus_index_p): Return bool instead of int.
1324 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
1325 where needed.
1326 (vax_output_int_move, vax_output_int_add): Extend to allow PIC
1327 generation.
1328 (vax_output_conditional_branch): Indent.
1329 (legitimate_constant_address_p, indirectable_constant_address_p,
1330 indirectable_address_p, nonindexed_address_p, legitimate_address_p,
1331 vax_mode_dependent_address_p): Return bool instead of int, update for
1332 PIC generation.
1333 * config/vax/vax-protos.h (legitimate_constant_address_p,
1334 legitimate_constant_p, legitimate_address_p,
1335 vax_mode_dependent_address_p): Change declaration to bool.
1336 (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
1337 vax_expand_addsub_di_operands, vax_output_int_subtract,
1338 vax_output_movmemsi): Declare.
1339 (split_quadword_operands, vax_float_literal): Delete declaration.
1340 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
1341 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
1342 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
1343 ASM_OUTPUT_DWARF_PCREL): Define.
1344 (ASM_SPEC): Change definition to allow PIC generation.
1345
c6afd8f1 13462009-04-01 Jakub Jelinek <jakub@redhat.com>
1347
1348 PR target/39226
1349 * config/rs6000/rs6000.md (andsi3_internal5_nomc,
1350 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
1351 (booldi3_internal3): Use boolean_or_operator instead of
1352 boolean_operator.
1353
ce4e9a43 13542009-04-01 Joseph Myers <joseph@codesourcery.com>
1355
1356 PR c/39605
1357 * c-decl.c (grokdeclarator): Pedwarn for file-scope array
1358 declarator whose size is not an integer constant expression but
1359 folds to an integer constant, then treat it as a constant
1360 subsequently.
1361
04b63ffe 13622009-04-01 Richard Guenther <rguenther@suse.de>
1363
1364 * fold-const.c (fold_plusminus_mult_expr): Do not fold
1365 i * 4 + 2 to (i * 2 + 1) * 2.
1366
0930c694 13672009-04-01 Jakub Jelinek <jakub@redhat.com>
1368
1369 PR c/37772
1370 * c-parser.c (c_parser_asm_statement): Skip until close paren and
1371 return if c_parser_asm_string_literal returned NULL.
1372
c46bf770 13732009-04-01 Nick Clifton <nickc@redhat.com>
1374
1375 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
1376 already defined.
1377 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
1378 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the
1379 other typedefs to avoid conflicts with libgcc2.c. Define labels
1380 to gain 16-bit bit-manipulation functions from libgcc2.c and then
1381 include it.
1382 * config/m32c/m32c-lib2-trapv.c: New file. Define labels
1383 to gain 16-bit trapping arithmetic functions from libgcc2.c and
1384 then include it.
1385
b5240a18 13862009-04-01 Rafael Avila de Espindola <espindola@google.com>
1387
1388 * varasm.c (default_function_rodata_section): Declare DOT as const char*.
1389
4ccce102 13902009-04-01 Kai Tietz <kai.tietz@onevision.com>
1391 Andrey Galkin <agalkin@hypercom.com>
1392
1393 PR/39492
1394 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
1395 Make object_name unique for each process.
1396
4a04f4b4 13972009-04-01 Jakub Jelinek <jakub@redhat.com>
1398
1399 PR other/39591
1400 * omp-low.c (remove_exit_barrier): Don't optimize if there are any
1401 addressable variables in the parallel that could go out of scope while
1402 running queued tasks.
1403
b4a3be2d 14042009-04-01 Anatoly Sokolov <aesok@post.ru>
1405
1406 * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
1407 (CASE_VALUES_THRESHOLD): Redefine.
1408 * config/avr/avr.c (avr_override_options): Remove initialization of
1409 avr_case_values_threshold variable.
1410 (avr_case_values_threshold): Remove variable. Add new function.
1411 * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
1412 * config/avr/avr.opt (mno-tablejump): Remove option.
1413 * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
1414
ac2a837e 14152009-04-01 DJ Delorie <dj@redhat.com>
1416
1417 * varasm.c (default_function_rodata_section): Don't assume
1418 anything about where the first '.' in the section name is.
1419
7cad077c 14202009-04-01 Alan Modra <amodra@bigpond.net.au>
1421
1422 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
1423 rs6000_emit_stack_tie.
1424
a5877c89 14252009-03-31 Ian Lance Taylor <iant@google.com>
1426
1427 * tree-eh.c (tree_remove_unreachable_handlers): Compare
1428 gimple_code with GIMPLE_RESX, not RESX.
1429
9e6687c8 14302009-03-31 Joseph Myers <joseph@codesourcery.com>
1431
1432 * c-common.c (c_get_ident): New.
1433 (c_common_nodes_and_builtins): Call it for type names that may be
1434 NULL.
1435
aa5ba529 14362009-04-01 Ben Elliston <bje@au.ibm.com>
1437
1438 * config/rs6000/sysv4.opt (msdata): Improve option description.
1439
3f970e2e 14402009-03-31 Steve Ellcey <sje@cup.hp.com>
1441
1442 * config/ia64/ia64.md (divsf3_internal_lat): Remove.
1443 (divdf3_internal_lat): Remove.
1444 (divxf3_internal_lat): Remove.
1445 (divxf3_internal_thr): Remove.
1446 (divxf): Use divxf3_internal.
1447 * config/ia64/div.md (divsf3_internal_lat): New.
1448 (divdf3_internal_lat): New.
1449 (divxf3_internal): New.
1450
f3449a3c 14512009-03-31 Joseph Myers <joseph@codesourcery.com>
1452
1453 PR c/448
1454 * Makefile.in (USE_GCC_STDINT): Define.
1455 (stmp-int-hdrs): Install stdint.h if applicable.
1456 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
1457 if known.
1458 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
1459 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
1460 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
1461 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1462 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1463 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1464 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1465 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1466 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1467 (c_common_nodes_and_builtins): Initialize
1468 underlying_wchar_type_node. Do not initialize
1469 signed_wchar_type_node or unsigned_wchar_type_node. Initialize
1470 nodes for new types.
1471 (c_stddef_cpp_builtins): Define macros for new types.
1472 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
1473 Remove.
1474 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
1475 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
1476 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
1477 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
1478 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
1479 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
1480 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
1481 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
1482 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
1483 (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
1484 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
1485 int16_type_node, int32_type_node, int64_type_node,
1486 uint8_type_node, uint16_type_node, c_uint32_type_node,
1487 c_uint64_type_node, int_least8_type_node, int_least16_type_node,
1488 int_least32_type_node, int_least64_type_node,
1489 uint_least8_type_node, uint_least16_type_node,
1490 uint_least32_type_node, uint_least64_type_node,
1491 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
1492 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
1493 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
1494 uintptr_type_node): Define.
1495 * c-cppbuiltin.c (builtin_define_constants,
1496 builtin_define_type_minmax): New.
1497 (builtin_define_stdint_macros): Define more macros.
1498 (c_cpp_builtins): Define more limit macros.
1499 (type_suffix): New.
1500 (builtin_define_type_max): Define in terms of
1501 builtin_define_type_minmax. Remove is_long parameter. All
1502 callers changed.
1503 * config.gcc (use_gcc_stdint): Define.
1504 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
1505 Add newlib-stdint.h for generic targets.
1506 * config/glibc-stdint.h, config/newlib-stdint.h,
1507 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
1508 * config/m32c/m32c.h (UINTPTR_TYPE): Define.
1509 * config/score/score.h (UINTPTR_TYPE): Define.
1510 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
1511 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
1512 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1513 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1514 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1515 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1516 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1517 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
1518 * config/spu/spu.h (STDINT_LONG32): Define.
1519 * configure.ac (use_gcc_stdint): Substitute.
1520 * configure: Regenerate.
1521 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
1522 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
1523 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
1524 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
1525 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
1526 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
1527 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
1528 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
1529 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
1530 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
1531 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
1532 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
1533 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
1534 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
1535 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
1536 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
1537 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
1538 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
1539 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
1540 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
1541 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
1542 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
1543 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
1544 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
1545 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
1546 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
1547 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
1548 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
1549 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
1550
9bb5f693 15512009-03-31 Bernd Schmidt <bernd.schmidt@analog.com>
1552
1553 * loop-iv.c (suitable_set_for_replacement): Renamed from
1554 simplify_using_assignment; changed to return bool and to accept new
1555 args DEST and SRC. Return true iff we find a source/destination pair
1556 that can be used to make a replacement, and fill SRC and DEST if so.
1557 Remove arg ALTERED. Don't deal with altered regs here. All callers
1558 changed.
1559 (simplify_using_initial_values): Deal with altered regs here and track
1560 more precisely the effect they have on the validity of our expression.
1561
7f7a6f4a 1562 * loop-iv.c (simplify_using_condition): A condition of the form
1563 (EQ REG CONST) can be used to simply make a substitution.
1564 (simplify_using_initial_values): Keep track of conditions we have seen
1565 and keep using them to simplify new expressions, while applying the
1566 same substitutions to them as to the expression.
1567
d2cb78ca 1568 * simplify-rtx.c (simplify_relational_operation_1): Simplify
1569 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
1570 GEU/LTU reversed.
1571
f77c1bb0 1572 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers
1573 changed. Use this when trying to improve the upper bound.
1574 Generate the comparison by using simplify_gen_relational.
1575
b908751e 1576 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
1577
767cb310 1578 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
1579 functions.
1580 (simplify_using_assignment, simplify_using_initial_values): Call
1581 replace_in_expr to make replacements. Call replace_single_def_regs
1582 once on the initial version of the expression.
1583
ee933f51 15842009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1585
9b57ed9f 1586 PR target/27237
ee933f51 1587 * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
1588
172e662b 15892009-03-31 Richard Guenther <rguenther@suse.de>
1590
1591 PR middle-end/31029
1592 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
1593 equality comparisons. Fold C - X CMP X if C % 2 == 1.
1594
401d1fb3 15952009-03-31 Richard Guenther <rguenther@suse.de>
1596
1597 * tree.h (div_if_zero_remainder): Declare.
1598 * fold-const.c (div_if_zero_remainder): Export.
1599 * tree-ssa-forwprop.c
1600 (forward_propagate_addr_into_variable_array_index): Handle
1601 constant array index addition outside of the variable index.
1602
eedfcb26 16032009-03-31 Joseph Myers <joseph@codesourcery.com>
1604
1605 PR target/39592
1606 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
1607 define_splits, floatunssi<mode>2): Require x87 conversions from
1608 DImode to be permitted.
1609
ff903809 16102009-03-31 Joseph Myers <joseph@codesourcery.com>
1611
1612 PR preprocessor/15638
1613 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
1614
47f11e84 16152009-03-31 Richard Guenther <rguenther@suse.de>
1616
1617 PR middle-end/23401
1618 PR middle-end/27810
1619 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
1620 (struct tree_decl_with_vis): Remove gimple_formal_temp member.
1621 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
1622 a separate statement.
1623 * gimplify.c (pop_gimplify_context): Remove formal temp handling.
1624 (lookup_tmp_var): Likewise.
1625 (is_gimple_formal_tmp_or_call_rhs): Remove.
1626 (is_gimple_reg_or_call_rhs): Rename to ...
1627 (is_gimple_reg_rhs_or_call): ... this.
1628 (is_gimple_mem_or_call_rhs): Rename to ...
1629 (is_gimple_mem_rhs_or_call): ... this.
1630 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set
1631 DECL_GIMPLE_REG_P only if is_formal is true.
1632 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround
1633 for non-proper post-modify expression gimplification.
1634 (gimplify_self_mod_expr): For post-modify expressions gimplify
1635 the lvalue to a minimal lvalue.
1636 (rhs_predicate_for): Remove formal temp case.
1637 (gimplify_modify_expr_rhs): Likewise.
1638 (gimplify_addr_expr): Use is_gimple_reg.
1639 (gimplify_expr): Remove formal temp cases.
1640 (gimple_regimplify_operands): Likewise.
1641 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
1642 and FILTER_EXPR like constants.
1643 * gimple.c (walk_gimple_op): Fix val_only initialization, use
1644 is_gimple_reg.
1645 (is_gimple_formal_tmp_rhs): Remove.
1646 (is_gimple_reg_rhs): Remove special casing.
1647 (is_gimple_mem_rhs): Fix.
1648 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
1649 (is_gimple_formal_tmp_var): Remove.
1650 (is_gimple_formal_tmp_reg): Likewise.
1651 (is_gimple_min_lval): Allow invariant component ref parts.
1652 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
1653 is_gimple_formal_tmp_reg): Remove declarations.
1654 * tree-cfg.c (verify_expr): Verify that variables with address
1655 taken do not have DECL_GIMPLE_REG_P set.
1656 * tree-mudflap.c (mf_build_check_statement_for): Use
1657 force_gimple_operand instead of gimplify_expr.
1658
7af239b5 16592009-03-31 Ayal Zaks <zaks@il.ibm.com>
1660
1661 * modulo-sched.c (sms_schedule_by_order): Pass the actual
1662 schedulable rows to compute_split_row.
1663
09271b9d 16642009-03-31 Ben Elliston <bje@au.ibm.com>
1665
1666 PR target/31635
1667 * config/rs6000/rs6000.c (rs6000_handle_option): Handle
1668 OPT_mvrsave.
1669
d46ea878 16702009-03-31 Alan Modra <amodra@bigpond.net.au>
1671
1672 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
1673 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
1674 * configure: Regenerate.
1675 * config.in: Regenerate.
1676 * config/rs6000/rs6000.opt (mtls-markers): Add.
1677 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
1678 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
1679 (tls_ld_aix, tls_ld_sysv): Likewise.
1680 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
1681 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
1682
6ce64557 16832009-03-31 Alan Modra <amodra@bigpond.net.au>
1684
1685 * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
1686
d6d5ab2d 16872009-03-30 Jan Hubicka <jh@suse.cz>
1688
6ce64557 1689 * tree-eh.c (make_eh_edges): Set probability 100% to first edge
1690 out of RESX.
1691 (tree_remove_unreachable_handlers): Cleanup EH predecestor
1692 detection and label handling.
d6d5ab2d 1693
951e5184 16942009-03-30 Vladimir Makarov <vmakarov@redhat.com>
1695
1696 * ira-int.h (ira_allocno): Rename left_conflicts_num to
1697 left_conflicts_size.
1698 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
1699 ALLOCNO_LEFT_CONFLICTS_SIZE.
1700
1701 * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
1702 remove_allocno_from_bucket_and_push,
1703 allocno_spill_priority_compare, push_allocnos_to_stack,
1704 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
1705 instead of ALLOCNO_LEFT_CONFLICTS_NUM.
1706 (setup_allocno_left_conflicts_num): Ditto. Rename to
1707 setup_allocno_left_conflicts_size.
1708 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
1709 instead of ALLOCNO_LEFT_CONFLICTS_NUM and
1710 setup_allocno_left_conflicts_size instead of
1711 setup_allocno_left_conflicts_num.
1712
1713 * ira-build.c (ira_create_allocno): Use
1714 ALLOCNO_LEFT_CONFLICTS_SIZE instead of
1715 ALLOCNO_LEFT_CONFLICTS_NUM.
1716
cb250333 17172009-03-30 Vladimir Makarov <vmakarov@redhat.com>
1718
1719 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
1720 instead of DF_LR_OUT.
1721
1722 * ira-lives.c (process_bb_node_lives): Ditto.
1723
1724 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
1725 instead of DF_LR_{OUT,IN}.
1726
1727 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
1728
1729 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
1730
dfcd8d23 17312009-03-30 Jan Hubicka <jh@suse.cz>
1732
1733 * except.c (label_to_region_map): Fix thinko.
1734
a7bc9181 17352009-03-30 Steve Ellcey <sje@cup.hp.com>
1736
1737 PR middle-end/38237
1738 * tree.h (tree_find_value): New declaration.
1739 * tree.c (tree_find_value): New function.
1740 * varasm.c (assemble_external): Avoid duplicate entries on lists.
1741
6fb80942 17422009-03-30 Jakub Jelinek <jakub@redhat.com>
1743
1744 PR debug/39563
1745 * c-decl.c (struct c_binding): Add locus field.
1746 (bind): Add locus argument, set locus field from it.
1747 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
1748 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
1749 (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
1750 implicitly_declare, undeclared_variable, lookup_label,
1751 declare_label, c_make_fname_decl, c_builtin_function,
1752 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
1753 bind callers.
1754
076a4c5c 17552008-03-30 H.J. Lu <hongjiu.lu@intel.com>
1756
1757 PR target/38781
1758 * config/i386/i386.c (classify_argument): Check total size of
1759 structure.
1760
ba3a7ba0 17612009-03-30 Martin Jambor <mjambor@suse.cz>
1762
1763 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
1764 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
1765 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
1766 respectively.
1767
1768 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
1769 seen_variable_array_ref while also traversing a union.
1770
1771 * tree-inline.c (optimize_inline_calls): Do not call
1772 cgraph_node_remove_callees.
1773 * cgraphbuild.c (remove_cgraph_callee_edges): New function.
1774 (pass_remove_cgraph_callee_edges): New variable.
1775 * passes.c (init_optimization_passes): Add
1776 pass_remove_cgraph_callee_edges after early inlining and before all
1777 late intraprocedural passes.
1778
1779 * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
1780
914301dc 17812009-03-30 Paolo Bonzini <bonzini@gnu.org>
1782
1783 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
1784 Fix typos in names.
1785
0d79facf 17862009-03-30 Paolo Bonzini <bonzini@gnu.org>
1787
9b57ed9f 1788 * combine.c (simplify_comparison): Use have_insn_for.
1789 * dojump.c (do_jump): Likewise.
0d79facf 1790
bbc6e6c4 17912009-03-30 Paolo Bonzini <bonzini@gnu.org>
1792
1793 * config/sparc/sparc.c (sparc_compare_emitted): Remove.
1794 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
1795 sparc_compare_op0 like sparc_compare_emitted used to be handled.
1796 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
1797 instead of sparc_compare_emitted.
1798 * config/sparc/sparc.h (sparc_compare_emitted): Remove.
1799 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
1800 instead of sparc_compare_emitted.
1801
ee4d588d 18022009-03-30 Paolo Bonzini <bonzini@gnu.org>
1803
1804 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
1805 enter/exit cfglayout mode.
1806 (pass_partition_block): Require it.
1807 * combine.c (find_single_use, reg_dead_at_p): Use CFG.
1808 (combine_instructions): Track basic blocks instead of labels.
1809 (update_cfg_for_uncondjump): New.
1810 (try_combine): Use it. Update jumps after rescanning.
1811 (pass_combine): Require PROP_cfglayout.
1812 * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
1813
30678076 18142009-03-30 Paolo Bonzini <bonzini@gnu.org>
1815
9b57ed9f 1816 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
1817 Provide/destroy PROP_cfglayout respectively.
1818 * gcse.c (pass_jump_bypass, pass_gcse): Require it.
1819 * tree-pass.h (PROP_cfglayout): New.
30678076 1820
62126877 18212009-03-30 Paolo Bonzini <bonzini@gnu.org>
1822
1823 * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
1824 fold_convert_const_fixed_from_fixed,
1825 fold_convert_const_fixed_from_int,
1826 fold_convert_const_fixed_from_real, fold_negate_const): Do not
1827 set TREE_CONSTANT_OVERFLOW.
1828 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
1829 * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
1830
fb85abff 18312009-03-30 Ira Rosen <irar@il.ibm.com>
1832
1833 * tree-vect-loop-manip.c: New file.
1834 * tree-vectorizer.c: Update documentation and included files.
1835 (vect_loop_location): Make extern.
1836 (rename_use_op): Move to tree-vect-loop-manip.c
1837 (rename_variables_in_bb, rename_variables_in_loop,
1838 slpeel_update_phis_for_duplicate_loop,
1839 slpeel_update_phi_nodes_for_guard1,
1840 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
1841 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
1842 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
1843 set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
1844 find_loop_location): Likewise.
1845 (new_stmt_vec_info): Move to tree-vect-stmts.c.
1846 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
1847 get_vectype_for_scalar_type, vect_is_simple_use,
1848 supportable_widening_operation, supportable_narrowing_operation):
1849 Likewise.
1850 (bb_in_loop_p): Move to tree-vect-loop.c.
1851 (new_loop_vec_info, destroy_loop_vec_info,
1852 reduction_code_for_scalar_code, report_vect_op,
1853 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
1854 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
1855 (vect_supportable_dr_alignment): Likewise.
1856 * tree-vectorizer.h (tree-data-ref.h): Include.
1857 (vect_loop_location): Declare.
1858 Reorganize function declarations according to the new file structure.
1859 * tree-vect-loop.c: New file.
1860 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
1861 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
1862 * tree-vect-data-refs.c: New file.
1863 * tree-vect-patterns.c (timevar.h): Don't include.
1864 * tree-vect-stmts.c: New file.
1865 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
1866 tree-vect-slp.c, tree-vect-loop.c.
1867 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
1868 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
1869 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
1870 (tree-vect-analyze.o): Remove.
1871 (tree-vect-transform.o): Likewise.
1872 (tree-vect-data-refs.o): Add rule.
1873 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
1874 tree-vect-slp.o): Likewise.
1875 (tree-vect-patterns.o): Remove redundant dependencies.
1876 (tree-vectorizer.o): Likewise.
1877 * tree-vect-slp.c: New file.
1878
0863a8f4 18792009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
1880
1881 * optc-gen.awk: Warn if an option flag has multiple different
1882 help strings.
1883
0606fb97 18842009-03-30 Sebastian Pop <sebastian.pop@amd.com>
1885
1886 * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
1887 -floop-block): Document dependences on PPL, CLooG and Graphite.
1888
c6418a4e 18892009-03-30 Joseph Myers <joseph@codesourcery.com>
1890
1891 PR rtl-optimization/323
1892 * c-common.c (c_fully_fold, convert_and_check,
1893 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
1894 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
1895 * c-common.def (EXCESS_PRECISION_EXPR): New.
1896 * c-cppbuiltin.c (builtin_define_float_constants): Define
1897 constants with enough digits for long double.
1898 * c-lex.c (interpret_float): Interpret constant with excess
1899 precision where appropriate.
1900 * c-opts.c (c_common_post_options): Set
1901 flag_excess_precision_cmdline. Give an error for
1902 -fexcess-precision=standard for C++ for processors where the
1903 option is significant.
1904 * c-parser.c (c_parser_conditional_expression): Handle excess
1905 precision in condition.
1906 * c-typeck.c (convert_arguments): Handle arguments with excess
1907 precision.
1908 (build_unary_op): Move excess precision outside operation.
1909 (build_conditional_expr): Likewise.
1910 (build_compound_expr): Likewise.
1911 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
1912 (build_modify_expr): Handle excess precision in RHS.
1913 (convert_for_assignment): Handle excess precision in converted
1914 value.
1915 (digest_init, output_init_element, process_init_element): Handle
1916 excess precision in initializer.
1917 (c_finish_return): Handle excess precision in return value.
1918 (build_binary_op): Handle excess precision in operands and add
1919 excess precision as needed for operation.
1920 * common.opt (-fexcess-precision=): New option.
1921 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
1922 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
1923 For standard excess precision, output explicit conversion to and
1924 truncation from XFmode.
1925 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
1926 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
1927 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
1928 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
1929 define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
1930 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
1931 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
1932 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
1933 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
1934 define_splits, sqrt<mode>2): Disable where appropriate for
1935 standard excess precision.
1936 * convert.c (convert_to_real): Do not shorten arithmetic to type
1937 for which excess precision would be used.
1938 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
1939 * doc/invoke.texi (-fexcess-precision=): Document option.
1940 (-mfpmath=): Correct index entry.
1941 * flags.h (enum excess_precision, flag_excess_precision_cmdline,
1942 flag_excess_precision): New.
1943 * langhooks.c (lhd_post_options): Set
1944 flag_excess_precision_cmdline.
1945 * opts.c (common_handle_option): Handle -fexcess-precision=.
1946 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
1947 init_excess_precision): New.
1948 (lang_dependent_init_target): Call init_excess_precision.
1949 * tree.c (excess_precision_type): New.
1950 * tree.h (excess_precision_type): Declare.
1951
7666d572 19522009-03-30 Joseph Myers <joseph@codesourcery.com>
1953
1954 PR c/35235
1955 * c-typeck.c (build_component_ref): Do not copy qualifiers from
1956 non-lvalue to component.
1957
7f5f3953 19582009-03-29 Joseph Myers <joseph@codesourcery.com>
1959
1960 PR preprocessor/34695
1961 * Makefile.in (c-opts.o): Depend on c-tree.h.
1962 * c-common.c: Move down include of diagnostic.h.
1963 (done_lexing, c_cpp_error): New.
1964 * c-common.h (done_lexing): Declare.
1965 * c-decl.c (c_write_global_declarations): Don't check cpp_errors
1966 (parse_in).
1967 * c-opts.c: Include c-tree.h.
1968 (c_common_init_options): Set preprocessor error callback.
1969 (c_common_handle_option): Do not set preprocessor
1970 inhibit_warnings, warnings_are_errors, warn_system_headers,
1971 pedantic_errors or inhibit_warnings flags.
1972 (c_common_post_options): Do not check cpp_errors (parse_in).
1973 (c_common_finish): Do not output dependencies if there were
1974 errors. Do not check return value of cpp_finish.
1975 * c-ppoutput.c (pp_file_change): Set input_location.
1976 * c-tree.h (c_cpp_error): Declare.
1977 * diagnostic.c (diagnostic_set_info_translated): Also initialize
1978 override_column.
1979 (diagnostic_build_prefix): Check override_column.
1980 * diagnostic.h (diagnostic_info): Add override_column field.
1981 (diagnostic_override_column): Define.
1982
862f468c 19832009-03-28 Paolo Bonzini <bonzini@gnu.org>
1984
aca60c7b 1985 * c-common.c (c_expand_expr, c_staticp): Remove.
1986 * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
1987 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
1988 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
1989 * c-gimplify.c (gimplify_compound_literal_expr,
1990 optimize_compound_literals_in_ctor): Remove.
1991 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
1992 * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
1993 * c-semantics.c (emit_local_var): Remove.
1994
1995 * langhooks-def.h (lhd_expand_expr): Remove.
1996 * langhooks.c (lhd_expand_expr): Remove.
1997 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
1998
1999 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
2000 handling from c-semantics.c; don't call into langhook.
2001 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
2002 * gimplify.c (gimplify_compound_literal_expr,
2003 optimize_compound_literals_in_ctor): Move from c-gimplify.c.
2004 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
2005 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
2006 as was done in c-gimplify.c.
2007 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
2008 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
2009 Move from c-common.h.
2010 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
862f468c 2011
2012 * tree.c (staticp): Do not call langhook.
2013 * langhooks.c (lhd_staticp): Delete.
2014 * langhooks-def.h (lhd_staticp): Delete prototype.
2015 (LANG_HOOKS_STATICP): Delete.
2016 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
2017
aca60c7b 2018 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
2019 instead of DECL_STMTs.
862f468c 2020
a75b1c71 20212009-03-29 Joseph Myers <joseph@codesourcery.com>
2022
2023 PR c/456
2024 PR c/5675
2025 PR c/19976
2026 PR c/29116
2027 PR c/31871
2028 PR c/35198
2029 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
2030 void_type_node.
2031 (fold_call_expr): Return a NOP_EXPR from folding rather than the
2032 contained expression.
aca60c7b 2033 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
a75b1c71 2034 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold
2035 conditional expressions for C.
2036 (decl_constant_value_for_optimization): Move from
aca60c7b 2037 decl_constant_value_for_broken_optimization in c-typeck.c. Check
a75b1c71 2038 whether optimizing and that the expression is a VAR_DECL not of
2039 array type instead of doing such checks in the caller. Do not
2040 check pedantic. Call gcc_unreachable for C++.
2041 * c-common.def (C_MAYBE_CONST_EXPR): New.
2042 * c-common.h (c_fully_fold, c_save_expr,
2043 decl_constant_value_for_optimization): New prototypes.
2044 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
2045 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
2046 EXPR_INT_CONST_OPERANDS): Define.
2047 * c-convert.c (convert): Strip nops from expression.
2048 * c-decl.c (groktypename): Take extra parameters expr and
2049 expr_const_operands. Update call to grokdeclarator.
2050 (start_decl): Update call to grokdeclarator. Add statement for
2051 expressions used in type of decl.
2052 (grokparm): Update call to grokdeclarator.
2053 (push_parm_decl): Update call to grokdeclarator.
2054 (build_compound_literal): Add parameter non_const and build a
2055 C_MAYBE_COSNT_EXPR if applicable.
2056 (grokdeclarator): Take extra parameters expr and
2057 expr_const_operands. Track expressions used in declaration
2058 specifiers and declarators. Fold array sizes and track whether
2059 they are constant expressions and whether they are integer
2060 constant expressions.
2061 (parser_xref_tag): Set expr and expr_const_operands fields in
2062 return value.
2063 (grokfield): Update call to grokdeclarator.
2064 (start_function): Update call to grokdeclarator.
2065 (build_null_declspecs): Set expr and expr_const_operands fields in
2066 return value.
2067 (declspecs_add_type): Handle expressions in typeof specifiers.
2068 * c-parser.c (c_parser_declspecs): Set expr and
2069 expr_const_operands fields for declaration specifiers.
2070 (c_parser_enum_specifier): Likewise.
2071 (c_parser_struct_or_union_specifier): Likewise.
2072 (c_parser_typeof_specifier): Likewise. Update call to
2073 groktypename. Fold expression as needed. Return expressions with
2074 type instead of adding statements.
2075 (c_parser_attributes): Update calls to c_parser_expr_list.
2076 (c_parser_statement_after_labels): Fold expression before passing
2077 to objc_build_throw_stmt.
2078 (c_parser_condition): Fold expression.
2079 (c_parser_asm_operands): Fold expression.
2080 (c_parser_conditional_expression): Use c_save_expr. Update call
2081 to build_conditional_expr.
2082 (c_parser_alignof_expression): Update call to groktypename.
2083 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
2084 original_code. Fold expression argument of va_arg. Create
2085 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
2086 argument to va_arg. Update calls to groktypename. Fold array
2087 index for offsetof. Verify that first argument to
2088 __builtin_choose_expr has integer type.
2089 (c_parser_postfix_expression_after_paren_type): Update calls to
2090 groktypename and build_compound_literal. Handle expressions with
2091 side effects in type name.
2092 (c_parser_postfix_expression_after_primary): Update call to
2093 c_parser_expr_list. Set original_code for calls to
2094 __builtin_constant_p.
2095 (c_parser_expr_list): Take extra parameter fold_p. Fold
2096 expressions if requested.
2097 (c_parser_objc_type_name): Update call to groktypename.
2098 (c_parser_objc_synchronized_statement): Fold expression.
2099 (c_parser_objc_receiver): Fold expression.
2100 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
2101 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
2102 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
2103 * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
2104 (struct c_typespec): Add elements expr and expr_const_operands.
2105 (struct c_declspecs): Add elements expr and expr_const_operands.
2106 (groktypename, build_conditional_expr, build_compound_literal):
2107 Update prototypes.
2108 (in_late_binary_op): Declare.
2109 * c-typeck.c (note_integer_operands): New function.
2110 (in_late_binary_op): New variable.
2111 (decl_constant_value_for_broken_optimization): Move to c-common.c
2112 and rename to decl_constant_value_for_optimization.
2113 (default_function_array_conversion): Do not strip nops.
2114 (default_conversion): Do not call
2115 decl_constant_value_for_broken_optimization.
2116 (build_array_ref): Do not fold result.
2117 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for
2118 result when operand is a VLA.
2119 (c_expr_sizeof_type): Update call to groktypename. Handle
2120 expressions included in type name. Use C_MAYBE_CONST_EXPR for
2121 result when operand names a VLA type.
2122 (build_function_call): Update call to build_compound_literal.
2123 Only fold result for calls to __builtin_* functions. Strip
2124 NOP_EXPR from INTEGER_CST returned from such functions. Fold
2125 the function designator.
2126 (convert_arguments): Fold arguments. Update call to
2127 convert_for_assignment.
2128 (build_unary_op): Handle increment and decrement of
2129 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and
2130 decrement earlier. Fold operand of increment and decrement.
2131 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being
2132 built for integer operand. Wrap returns that are INTEGER_CSTs
2133 without being integer constant expressions or that have integer
2134 constant operands without being INTEGER_CSTs.
2135 (lvalue_p): Handle C_MAYBE_CONST_EXPR.
2136 (build_conditional_expr): Add operand ifexp_bcp. Track whether
2137 result is an integer constant expression or can be used in
2138 unevaluated parts of one and avoid folding and wrap as
2139 appropriate. Fold operands before possibly doing -Wsign-compare
2140 warnings.
2141 (build_compound_expr): Wrap result for C99 if operands can be used
2142 in integer constant expressions.
2143 (build_c_cast): Update call to digest_init. Do not ignore
2144 overflow from casting floating-point constants to integers. Wrap
2145 results that could be confused with integer constant expressions,
2146 null pointer constants or floating-point constants.
2147 (c_cast_expr): Update call to groktypename. Handle expressions
2148 included in type name.
2149 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold
2150 lhs inside possible SAVE_EXPR. Fold RHS before assignment.
2151 Update calls to convert_for_assignment.
2152 (convert_for_assignment): Take new parameter
2153 null_pointer_constant. Do not strip nops or call
2154 decl_constant_value_for_broken_optimization. Set
2155 in_late_binary_op for conversions to boolean.
2156 (store_init_value): Update call to digest_init.
2157 (digest_init): Take new parameter null_pointer_constant. Do not
2158 call decl_constant_value_for_broken_optimization. pedwarn for
2159 initializers not constant expressions. Update calls to
2160 convert_for_assignment.
2161 (constructor_nonconst): New.
2162 (struct constructor_stack): Add nonconst element.
2163 (really_start_incremental_init, push_init_level, pop_init_level):
2164 Handle constructor_nonconst and nonconst element.
2165 (set_init_index): Call constant_expression_warning for array
2166 designators.
2167 (output_init_element): Fold value. Set constructor_nonconst as
2168 applicable. pedwarn for initializers not constant expressions.
2169 Update call to digest_init. Call constant_expression_warning
2170 where constant initializers are required.
2171 (process_init_element): Use c_save_expr.
2172 (c_finish_goto_ptr): Fold expression.
2173 (c_finish_return): Fold return value. Update call to
2174 convert_for_assignment.
2175 (c_start_case): Fold switch expression.
2176 (c_process_expr_stmt): Fold expression.
2177 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
aca60c7b 2178 ensure statement expression is not evaluated in constant expression.
a75b1c71 2179 (build_binary_op): Track whether results are integer constant
2180 expressions or may occur in such, disable folding and wrap results
2181 as applicable. Fold operands for -Wsign-compare warnings unless
2182 in_late_binary_op.
2183 (c_objc_common_truthvalue_conversion): Handle results folded to
2184 integer constants that are not integer constant expressions.
2185 * doc/extend.texi: Document when typeof operands are evaluated,
2186 that condition of __builtin_choose_expr is an integer constant
2187 expression, and more about use of __builtin_constant_p in
2188 initializers.
2189
088cc5d5 21902009-03-29 Richard Guenther <rguenther@suse.de>
2191
2192 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
2193 propagate addresses of array references.
2194
68e09621 21952009-03-29 Steven Bosscher <steven@gcc.gnu.org>
2196
2197 * regmove.c (perhaps_ends_bb_p): Remove.
2198 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block
2199 from INSN and check that the main loop stays within that basic block.
2200 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
2201 (regmove_forward_pass): Split out from regmove_optimize. Use
2202 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
2203 (regmove_backward_pass): Split out from regmove_optimize. Use
2204 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
2205 (regmove_optimize): Simplify.
2206
40513f40 22072009-03-29 H.J. Lu <hongjiu.lu@intel.com>
2208
2209 PR target/39545
2210 * config/i386/i386.c (classify_argument): Ignore flexible array
2211 member in struct and warn ABI change.
2212
0d3a7d37 22132009-03-29 H.J. Lu <hongjiu.lu@intel.com>
2214
2215 * config/i386/i386-protos.h (ix86_agi_dependent): New.
2216
2217 * config/i386/i386.c (ix86_agi_dependent): Rewrite.
2218 (ix86_adjust_cost): Updated.
2219
4c5fcca6 22202009-03-29 Jan Hubicka <jh@suse.cz>
2221
2222 PR middle-end/28850
2223 * tree-pass.h (pass_cleanup_eh): New function.
2224 (remove_unreachable_regions): Break code handling RTL
2225 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
2226 that can not be reached by runtime.
2227 (can_be_reached_by_runtime): New function.
2228 (label_to_region_map): New function.
2229 (num_eh_regions): New function.
2230 (rtl_remove_unreachable_regions): New function.
2231 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
2232 (remove_eh_region): New function.
2233 * except.h: Include sbitmap and vecprim.
2234 (remove_eh_region, remove_unreachable_regions, label_to_region_map,
2235 num_eh_regions): Declare.
2236 * passes.c (init_optimization_passes): Schedule cleanup_eh.
aca60c7b 2237 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
4c5fcca6 2238 * tree-eh.c (tree_remove_unreachable_handlers): New function.
2239 (tree_empty_eh_handler_p): New function.
2240 (cleanup_empty_eh): New function.
2241 (cleanup_eh): New function.
2242 (pass_cleanup_eh): New function.
2243
b8c0c866 22442009-03-29 Jan Hubicka <jh@suse.cz>
2245
2246 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
2247 for removed regions.
2248
bb22691b 22492009-03-29 Jan Hubicka <jh@suse.cz>
2250
2251 * except.c (dump_eh_tree): Dump all datastructures.
2252
cd451a8b 22532009-03-29 Jan Hubicka <jh@suse.cz>
2254
2255 * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
2256 (duplicate_eh_regions_1): Likewise.
2257 (duplicate_eh_regions): Likewise; cleanup code gorwing the region
2258 vector; call EH verification.
2259 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
2260 Be ready for region being removed.
2261
ffa800d1 22622009-03-29 Jan Hubicka <jh@suse.cz>
2263
2264 * bitmap.c (bitmap_last_set_bit): New function.
2265 * bitmap.h (bitmap_last_set_bit): Declare.
2266
1cf4a36a 22672009-03-29 David Ayers <ayers@fsfe.org>
2268
2269 PR objc/27377
2270 * c-typeck.c (build_conditional_expr): Emit ObjC warnings
2271 by calling objc_compare_types and surpress warnings about
2272 incompatible C pointers that are compatible ObjC pointers.
2273
22742009-03-29 Adam Nemet <anemet@caviumnetworks.com>
69428266 2275
2276 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
2277 call initialize_inline_failed.
2278 (initialize_inline_failed): Move it from here ...
2279 * cgraph.c (initialize_inline_failed): ... to here.
2280 (cgraph_create_edge): Call initialize_inline_failed rather than
2281 setting inline_failed directly.
2282
d093f898 22832009-03-29 Ben Elliston <bje@au.ibm.com>
2284
2285 PR target/32542
2286 * sysv4.opt (msdata): Improve comment.
2287 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
2288 * sysv4.h (SVR4_ASM_SPEC): Likewise.
2289
df6a567a 22902009-03-29 Ben Elliston <bje@au.ibm.com>
2291
2292 PR target/30451
2293 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
2294 load and store attributes.
2295
29c63a97 22962009-03-29 Ben Elliston <bje@au.ibm.com>
2297
2298 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
2299 (ix86_init_builtins): Add built-in function __builtin_huge_valq.
2300 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
2301 * doc/extend.texi (X86 Built-in Functions): Add index entries for
2302 __builtin_infq and __builtin_huge_valq.
2303
ec4b52e7 23042009-03-28 Anatoly Sokolov <aesok@post.ru>
2305
2306 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
2307 atmega8m1 devices.
2308 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
2309 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
2310
43fb76c1 23112009-03-28 Xinliang David Li <davidxl@google.com>
2312
2313 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
2314 (do_dbg_cnt): New function.
2315
b5cebd44 23162009-03-28 Jan Hubicka <jh@suse.cz>
2317
2318 Merge from pretty-ipa:
2319
2320 2009-03-27 Jan Hubicka <jh@suse.cz>
aca60c7b 2321
b5cebd44 2322 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
2323 * tree-pass.h (function_called_by_processed_nodes_p): Declare.
2324 * passes.c (function_called_by_processed_nodes_p): New.
2325 * ipa-pure-const.c (check_call): Fix handling of operands.
2326 (analyze_function): Dump debug output for skipped bodies.
2327 (local_pure_const): Use function_called_by_processed_nodes_p.
2328 * dwarf2out.c (reference_to_unused): Use output.
2329 * passes.c (do_per_function_toporder): Likewise.
2330
2331 2008-11-12 Jan Hubicka <jh@suse.cz>
2332
2333 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
2334 * ipa-pure-const.c (funct_state_d): Add can throw field; make
2335 state_set_in_source enum
2336 (check_decl): Ignore memory tags; do not set fake looping flags;
2337 dump diagnostics.
2338 (check_operand, check_tree, check_rhs_var, check_lhs_var,
2339 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
2340 (check_call, analyze_function): Rewrite.
2341 (check_stmt): New.
2342 (add_new_function): Update call of analyze_function.
2343 (generate_summary): Add call of analyze_function.
2344 (propagate): Propagate can_throw; handle state_set_in_source correctly.
2345 (local_pure_const): New function.
2346 (pass_local_pure_const): New pass.
2347 * ipa-inline.c (inline_transform): Set after_inlining.
2348 * tree-eh.c (stmt_can_throw_external): New.
2349 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
2350 work with aliasing built.
2351 * tree-flow.h (stmt_can_throw_external): New.
2352 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
2353 and local pure/const pass in early and late optimization queue.
aca60c7b 2354
1c4607fd 23552009-03-28 Martin Jambor <mjambor@suse.cz>
2356
2357 * fold-const.c (get_pointer_modulus_and_residue): New parameter
2358 allow_func_align.
2359 (fold_binary): Allow function decl aligment consideration is the
2360 second argument is integer constant one.
2361 * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
2362 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
2363 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
2364
b0d29d1c 23652009-03-28 Jan Hubicka <jh@suse.cz>
2366
2367 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
2368 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
2369 * function.h (rtl_data): Add nothrow flag.
2370 * except.c (set_nothrow_function_flags): Use crtl->nothrow;
2371 set DECL_NOTHROW for AVAILABLE functions.
2372
bf4a1edf 23732009-03-28 Jakub Jelinek <jakub@redhat.com>
2374
69dfb43a 2375 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
2376 following vector keyword has expansion starting with pixel or bool
2377 keyword, expand vector to __vector and pixel or bool to __pixel or
2378 __bool.
2379
bf4a1edf 2380 PR c++/39554
2381 * opts.c (warning_disallowed_functions, warn_disallowed_functions,
2382 warn_if_disallowed_function_p): Removed.
2383 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
2384 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
2385 warning_if_disallowed_function_p.
2386 * flags.h (warn_if_disallowed_function_p,
2387 warn_disallowed_functions): Removed.
2388 * common.opt (Wdisallowed-function-list=): Removed.
2389 * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
2390
c256d781 23912009-03-28 Richard Guenther <rguenther@suse.de>
2392
2393 PR tree-optimization/38723
2394 * tree-ssa-pre.c (compute_avail): Add all default definitions to
2395 the entry block.
2396
74a5c8eb 23972009-03-28 Jan Hubicka <jh@suse.cz>
2398
2399 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
2400 test introduced by my previous patch.
2401
59ce9604 24022009-03-28 Richard Guenther <rguenther@suse.de>
2403
2404 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
2405 the PHIs value undefined.
2406
6cb239e5 24072009-03-28 Jan Hubicka <jh@suse.cz>
2408
2409 * tree-pass.h (pass_fixup_cfg): New pass.
2410 * ipa-inline.c (inline_transform): Set
2411 always_inline_functions_inlined/after_inlining.
2412 * tree-optimize.c (execute_fixup_cfg): Do not set them here.
2413 (pass_fixup_cfg): New pass.
2414 * passes.c (init_optimization_passes): Add fixup_cfg.
2415
aeb38861 24162009-03-28 Richard Guenther <rguenther@suse.de>
2417
2418 PR tree-optimization/38458
2419 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
2420 argument use the arguments copy-of value.
2421
8edeb88b 24222009-03-28 Richard Guenther <rguenther@suse.de>
2423
2424 PR tree-optimization/38180
2425 * tree-ssa-ccp.c (get_default_value): Simplify.
2426 (likely_value): Likewise.
2427 (surely_varying_stmt_p): Properly handle VOP case.
2428 (ccp_initialize): Likewise.
2429 (ccp_fold): Handle propagating through *&.
2430 (fold_const_aggregate_ref): Also handle decls.
2431
09fc9532 24322009-03-28 Jan Hubicka <jh@suse.cz>
2433
2434 * cgraph.c (dump_cgraph_node): Add replace output flag by process.
2435 * cgraph.h (cgraph_node): Likewise.
2436 * cgraphunit.c (cgraph_process_new_functions): Set process flag.
2437 (cgraph_reset_node): Use process flag.
2438 (cgraph_mark_functions_to_output): Likewise.
2439 (cgraph_expand_function): Likewise.
2440 (cgraph_expand_all_functions): Likewise.
2441 (cgraph_output_in_order): Likewise.
2442 * dwarf2out.c (reference_to_unused): Likewise.
2443 * passes.c do_per_function_toporder): Likewise.
2444
326a9581 24452009-03-28 Jan Hubicka <jh@suse.cz>
2446
2447 Bring from lto-branch:
aca60c7b 2448
326a9581 2449 2008-09-03 Doug Kwan <dougkwan@google.com>
2450
2451 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
2452 enums instead of reason strings.
2453 * cgraph.c (cgraph_create_edge): Same.
2454 (cgraph_inline_failed_string): New function.
2455 * cgraph.h (cgraph_inline_failed_t): New enum type.
2456 (cgraph_inline_failed_string): New prototype.
2457 (struct cgraph_edge): Change type of INLINED_FAILED from constant
2458 char pointer to cgraph_inline_failed_t.
2459 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
2460 (cgraph_default_inline_p): Ditto.
2461 * gcc/cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
2462 to cgraph_inline_failed_t pointer.
2463 * cif-code.def: New file.
2464 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
2465 reason string.
2466 (cgraph_check_inline_limits): Change type of REASON to pointer to
2467 cgraph_inline_failed_t. Replace reason strings with enums.
2468 (cgraph_default_inline_p): Ditto.
2469 (cgraph_recursive_inlining_p): Ditto.
2470 (update_caller_keys): Change type of FAILED_REASON to
2471 cgraph_inline_failed_t.
2472 (cgraph_set_inline_failed): Change type of REASON to pointer to
2473 cgraph_inline_failed_t. Call cgraph_inline_failed_string to
2474 convert enums to strings for text output.
2475 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
2476 to be of type cgraph_inline_failed_t. Replace reason strings with
2477 enums. Call cgraph_inline_failed_string to covert enums
2478 to strings for text output.
2479 (cgraph_decide_inlining): Replace reason strings with enums.
2480 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
2481 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string
2482 for text output.
2483 * tree-inline.c (expand_call_inline): Change type of REASON
2484 to cgraph_inline_failed_t. Replace reason strings with enums.
2485 Call cgraph_inline_failed_string for text output.
2486 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
2487 (cgraph.o): Ditto.
2488
77b5eabc 24892009-03-28 Jan Hubicka <jh@suse.cz>
2490
2491 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
2492 cgraph_clone_node): Remove master clone handling.
2493 (cgraph_is_master_clone, cgraph_master_clone): Remove.
2494 * cgraph.h (master_clone): Remove.
2495 (cgraph_is_master_clone, cgraph_master_clone): Remove.
2496 * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
2497 (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
2498
cc76f102 24992009-03-28 Jan Hubicka <jh@suse.cz>
2500
2501 * cgraph.c (cgraph_function_body_availability): Functions declared
2502 inline are always safe to assume that it is not going to be replaced.
2503
63295314 25042009-03-28 Richard Guenther <rguenther@suse.de>
2505
2506 PR tree-optimization/38513
2507 * tree-ssa-pre.c (eliminate): Remove redundant stores.
2508 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
2509 EXC_PTR_EXPR and FILTER_EXPR.
2510 (get_ref_from_reference_ops): Likewise.
2511
d360ad90 25122009-03-28 Richard Guenther <rguenther@suse.de>
2513
2514 PR tree-optimization/38968
2515 * tree-vect-analyze.c (vect_compute_data_ref_alignment):
2516 Use FLOOR_MOD_EXPR to compute misalignment.
2517
c82f3b60 25182009-03-28 Richard Guenther <rguenther@suse.de>
2519
2520 PR tree-optimization/37795
2521 * tree.h (combine_comparisons): Declare.
2522 * fold-const.c (combine_comparisons): Export.
2523 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
2524 comparisons.
2525 (ifcombine_iforif): Use combine_comparisons.
2526
a5bfef5b 25272009-03-28 Jan Hubicka <jh@suse.cz>
2528
2529 * tree-eh.c (inlinable_call_p): New function.
2530 (make_eh_edges): Use it.
2531 (verify_eh_edges): Use it.
2532 (stmt_can_throw_external, stmt_can_throw_internal): Use it.
2533 * except.c (reachable_next_level): Add inlinable_function argument
2534 (sjlj_find_directly_reachable_regions): Update.
2535 (add_reachable_handler): Do not set saw_any_handlers.
2536 (reachable_next_level): Handle MUST_NOT_THROW more curefully.
2537 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
2538 Add new inlinable call parameter.
2539 (can_throw_internal, can_throw_external): Update.
2540 * except.h (can_throw_internal_1, can_throw_external_1,
2541 foreach_reachable_handler): Update declaration.
2542
f2397fc4 25432009-03-28 Joseph Myers <joseph@codesourcery.com>
2544
2545 * config/arm/t-arm-coff, config/h8300/coff.h,
2546 config/i386/i386-aout.h, config/i386/i386-coff.h,
2547 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
2548 config/pdp11/2bsd.h, config/rs6000/aix41.h,
2549 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
2550 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
2551 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
2552 sys-types.h: Remove.
2553 * Makefile.in: Remove protoize and fixproto support and references
2554 in comments.
2555 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
2556 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
2557 Remove.
2558 (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
2559 (MOSTLYCLEANFILES): Remove protoize$(exeext) and
2560 unprotoize$(exeext).
2561 (rest.encap): Don't depend on $(STMP_FIXPROTO)
2562 (.PHONY): Don't depend on proto.
2563 (libgcc-support): Don't depend on $(STMP_FIXPROTO).
2564 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
2565 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
2566 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
2567 build/gen-protos.o, build/scan.o, xsys-protos.h,
2568 build/fix-header$(build_exeext), build/fix-header.o,
2569 build/scan-decls.o, fixhdr.ready, stmp-fixproto,
2570 stmp-install-fixproto): Remove.
2571 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
2572 SYSCALLS.c or fixproto files.
2573 (install-common): Don't install protoize.
2574 (install-headers-tar, install-headers-cpio, install-headers-cp):
2575 Don't depend on $(STMP_FIXPROTO).
2576 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
2577 install fixproto files or write out fixproto settings.
2578 (uninstall): Don't uninstall protoize.
2579 * config.gcc (use_fixproto): Remove.
2580 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
2581 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
2582 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
2583 * config/m32r/t-linux (STMP_FIXPROTO): Remove.
2584 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
2585 * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
2586 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
2587 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
2588 * config/t-svr4 (FIXPROTO_DEFINES): Remove.
2589 * config/t-vxworks (STMP_FIXPROTO): Remove.
2590 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
2591 STMP_FIXPROTO): Remove.
2592 * config.in, configure: Regenerate.
2593 * crtstuff.c (gid_t, uid_t): Don't undefine.
2594 * doc/install.texi: Change m68k-coff to m68k-elf in example.
2595 (arm-*-coff, arm-*-aout: Remove target entries.
2596 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
2597 Remove mention of AIX 4.1.
2598 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
2599 * doc/invoke.texi (Running Protoize): Remove.
2600 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
2601 (Protoize Caveats): Remove.
2602 * tsystem.h: Update comments on headers assumed to exist.
2603
08ed847d 26042009-03-27 Vladimir Makarov <vmakarov@redhat.com>
2605
2606 * genautomata.c: Add a new year to the copyright. Add a new
2607 reference.
2608 (struct insn_reserv_decl): Add comments for member bypass_list.
2609 (find_bypass): Remove.
2610 (insert_bypass): New.
2611 (process_decls): Use insert_bypass.
2612 (output_internal_insn_latency_func): Output all bypasses with the
2613 same input insn in one switch case.
2614
2615 * rtl.def (define_bypass): Describe bypass choice.
2616 * doc/md.texi (define_bypass): Ditto.
2617
8e353ea6 26182009-03-27 Richard Guenther <rguenther@suse.de>
2619
2620 * gimplify.c (mark_addressable): Export.
2621 * tree-flow.h (mark_addressable): Declare.
2622 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
2623 * tree-ssa.c (verify_phi_args): Verify that address taken
2624 variables have TREE_ADDRESSABLE set.
2625
26262009-03-27 Richard Guenther <rguenther@suse.de>
2627
2628 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
2629 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling.
2630 Do not mark decls TREE_ADDRESSABLE.
2631 (build_fold_addr_expr): Adjust.
2632 (fold_addr_expr): Remove.
2633 (fold_unary): Use build_fold_addr_expr.
2634 (fold_comparison): Likewise.
2635 (split_address_to_core_and_offset): Likewise.
2636 * coverage.c (tree_coverage_counter_addr): Mark the array decl
2637 TREE_ADDRESSABLE.
2638 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
2639 (gimplify_modify_expr_to_memcpy): Mark source and destination
2640 addressable.
2641 * omp-low.c (create_omp_child_function): Mark the object decl
2642 TREE_ADDRESSABLE.
2643 (lower_rec_input_clauses): Mark the var we take the address of
2644 TREE_ADDRESSABLE.
2645 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
2646
16fe3089 26472009-03-27 H.J. Lu <hongjiu.lu@intel.com>
2648
2649 PR middle-end/39315
2650 * cfgexpand.c (expand_one_stack_var_at): Change alignment
2651 limit to MAX_SUPPORTED_STACK_ALIGNMENT.
2652
9d1d1fab 26532009-03-27 Richard Guenther <rguenther@suse.de>
2654
2655 PR tree-optimization/39120
2656 * tree-ssa-structalias.c (handle_rhs_call): Fill out return
2657 constraints.
2658 (handle_lhs_call): Process return constraints. Add escape
2659 constraints if necessary.
2660 (handle_const_call): Fill out return constraints. Make nested
2661 case more precise. Avoid consttmp if possible.
2662 (handle_pure_call): Fill out return constraints. Avoid
2663 callused if possible.
2664 (find_func_aliases): Simplify call handling.
2665
26662009-03-27 Richard Guenther <rguenther@suse.de>
2667
2668 PR tree-optimization/39120
2669 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
2670 as a representative.
2671 (solve_graph): Do propagate CALLUSED.
2672 (handle_pure_call): Use a scalar constraint from CALLUSED for
2673 the return value.
2674 (find_what_p_points_to): CALLUSED shall not appear in poins-to
2675 solutions.
2676
7cfdc2f0 26772009-03-27 H.J. Lu <hongjiu.lu@intel.com>
2678
2679 PR c/39323
2680 * c-common.c (handle_aligned_attribute): Properly check alignment
2681 overflow. Use (1U << i) instead of (1 << i).
2682
aca60c7b 2683 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
7cfdc2f0 2684
2685 * expr.h (get_mem_align_offset): Updated.
2686
2687 * tree.h (tree_decl_common): Change align to "unsigned int" and
2688 move it before pointer_alias_set.
2689
3f863bef 26902009-03-27 H.J. Lu <hongjiu.lu@intel.com>
2691 Jakub Jelinek <jakub@redhat.com>
2692
2693 PR target/38034
2694 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
2695 gr_register_operand with gr_reg_or_0_operand.
2696 (cmpxchg_rel_di): Likewise.
2697 (sync_lock_test_and_set<mode>): Likewise.
2698
9680c846 26992009-03-27 H.J. Lu <hongjiu.lu@intel.com>
2700
2701 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
2702 (true_regnum): Likewise.
2703
2704 * rtlanal.c (subreg_info): Moved to ...
2705 * rtl.h (subreg_info): Here. New.
2706 (subreg_get_info): New.
2707
2708 * rtlanal.c (subreg_get_info): Make it extern.
2709
0e4d11df 27102009-03-27 H.J. Lu <hongjiu.lu@intel.com>
2711
2712 PR target/39472
2713 * config/i386/i386.c (ix86_abi): New.
2714 (override_options): Handle -mabi=.
aca60c7b 2715 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
0e4d11df 2716 (ix86_call_abi_override): Likewise.
2717 (init_cumulative_args): Likewise.
2718 (function_arg_advance): Likewise.
2719 (function_arg_64): Likewise.
2720 (function_arg): Likewise.
2721 (ix86_pass_by_reference): Likewise.
2722 (ix86_function_value_regno_p): Likewise.
2723 (ix86_build_builtin_va_list_abi): Likewise.
2724 (setup_incoming_varargs_64): Likewise.
2725 (is_va_list_char_pointer): Likewise.
2726 (ix86_init_machine_status): Likewise.
aca60c7b 2727 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
0e4d11df 2728 (ix86_function_type_abi): Return enum calling_abi. Rewrite
2729 for 64bit. Replace DEFAULT_ABI with ix86_abi.
aca60c7b 2730 (ix86_function_abi): Make it static and return enum calling_abi.
0e4d11df 2731 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI
2732 with ix86_abi.
2733 (ix86_fn_abi_va_list): Updated.
2734
2735 * config/i386/i386.h (ix86_abi): New.
2736 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
2737 (CONDITIONAL_REGISTER_USAGE): Likewise.
2738 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
2739 (machine_function): Likewise.
2740
2741 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
2742 with ix86_abi.
2743 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
2744 (STACK_BOUNDARY): Likewise.
2745 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
2746
2747 * config/i386/i386.opt (mabi=): New.
2748
2749 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
2750 return enum calling_abi.
2751 (ix86_function_type_abi): Likewise.
2752 (ix86_function_abi): Removed.
2753
2754 * doc/invoke.texi: Document -mabi= option for x86.
2755
656ec810 27562009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2757
2758 * builtins.c (real_dconstp): Delete.
2759 (fold_builtin_logarithm): Remove inaccurate log(e) special case.
2760
cb3582e7 27612009-03-27 Dodji Seketeli <dodji@redhat.com>
2762 Jakub Jelinek <jakub@redhat.com>
2763
2764 PR debug/37959
2765 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
2766 (gen_subprogram_die): When a function is explicit, generate the
2767 DW_AT_explicit attribute.
2768 * langhooks.h (struct lang_hooks_for_decls): Add
2769 function_decl_explicit_p langhook.
2770 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
2771 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
2772
38150ede 27732009-03-27 Jakub Jelinek <jakub@redhat.com>
2774
3f95c690 2775 * builtins.c (fold_builtin_memory_op): Optimize memmove
2776 into memcpy if we can prove source and destination don't overlap.
2777
38150ede 2778 * tree-inline.c: Include gt-tree-inline.h.
2779 (clone_fn_id_num): New variable.
2780 (clone_function_name): New function.
2781 (tree_function_versioning): Use it.
2782 * Makefile.in (GTFILES): Add tree-inline.c.
2783
08da3d21 27842009-03-27 Mark Mitchell <mark@codesourcery.com>
2785
2786 * BASE-VER: Change to 4.5.0.
2787
e19b015b 27882009-03-27 Xinliang David Li <davidxl@google.com>
2789
2790 PR tree-optimization/39557
2791 * tree-ssa.c (warn_uninitialized_vars): free postdom info.
2792
b87f0847 27932009-03-27 Xinliang David Li <davidxl@google.com>
2794
2795 PR tree-optimization/39548
2796 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
2797 candidate check.
2798
545ba0d7 27992009-03-27 H.J. Lu <hongjiu.lu@intel.com>
2800
2801 * c-common.c (pointer_int_sum): Use %wd on return from
2802 tree_low_cst.
2803
482c9a19 28042009-03-27 H.J. Lu <hongjiu.lu@intel.com>
2805
2806 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
2807 on return from tree_low_cst.
2808
1f1d68a6 28092009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
2810
2811 PR c++/36799
aca60c7b 2812 * ginclude/stdarg.h (va_copy): Define also for
2813 __GXX_EXPERIMENTAL_CXX0X__.
1f1d68a6 2814
d924b670 28152009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2816
2817 PR c++/35652
2818 * builtins.h (c_strlen): Do not warn here.
2819 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
2820 * c-common.c (pointer_int_sum): Take an explicit location.
2821 Warn about offsets out of bounds.
2822 * c-common.h (pointer_int_sum): Adjust declaration.
2823
1ab73152 28242009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2825
d924b670 2826 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
2827 markup glitch.
1ab73152 2828
f4858d06 28292009-03-26 Jakub Jelinek <jakub@redhat.com>
2830
2831 PR c++/39554
2832 * opts.c (warn_if_disallowed_function_p): Don't assume
2833 get_callee_fndecl must return non-NULL.
2834
d9cee1b1 28352009-03-26 Vladimir Makarov <vmakarov@redhat.com>
2836
2837 PR rtl-optimization/39522
2838 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
2839 when reg_reloaded_valid is set.
2840
204cb876 28412009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2842
2843 * config/spu/divv2df3.c: New file.
2844 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
2845 (DPBIT_FUNCS): Filter out _div_df.
2846
1fd36c3a 28472009-03-26 Bernd Schmidt <bernd.schmidt@analog.com>
2848
2849 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
2850 a jump insn, count that jump in the distance to the loop start.
2851
dc9b0799 28522009-03-25 Kaz Kojima <kkojima@gcc.gnu.org>
2853
2854 PR target/39523
2855 * config/sh/sh.c (calc_live_regs): Fix condition for global
2856 registers except PIC_OFFSET_TABLE_REGNUM.
2857
6609be22 28582009-03-25 Kai Tietz <kai.tietz@onevision.com>
2859
2860 PR/39518
2861 * doc/invoke.texi (-mconsole): New.
2862 (-mcygwin): New.
2863 (-mno-cygwin): New.
2864 (-mdll): New.
2865 (-mnop-fun-dllimport): New.
2866 (-mthread): New.
2867 (-mwin32): New.
2868 (-mwindows): New.
2869 (sub section "i386 and x86-64 Windows Options"): New.
2870
2ccb7f3f 28712009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org>
2872
2873 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
2874 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
2875
5211387e 28762009-03-25 Richard Guenther <rguenther@suse.de>
2877
2878 PR middle-end/39497
2879 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
2880 of -Wno-error.
2881
686d79e0 28822009-03-25 Andrey Belevantsev <abel@ispras.ru>
2883
2884 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
2885 neither of haifa/selective schedulers are working.
2886
850fc3f0 28872009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2888
2889 * doc/invoke.texi (Debugging Options): Fix description of
2890 -fno-merge-debug-strings.
2891
10178ded 28922009-03-24 Hans-Peter Nilsson <hp@axis.com>
2893
d1640684 2894 * config/cris/libgcc.ver: New version-script.
2895 * config/cris/t-linux (SHLIB_MAPFILES): Use it.
2896
10178ded 2897 * configure.ac <GAS features, nop mnemonic>: Add pattern
2898 crisv32-*-* for "nop".
aca60c7b 2899 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
10178ded 2900 * configure: Regenerate.
2901
416dafb3 29022009-03-24 Ira Rosen <irar@il.ibm.com>
2903
2904 PR tree-optimization/39529
2905 * tree-vect-transform.c (vect_create_data_ref_ptr): Call
2906 mark_sym_for_renaming for the tag copied to the new vector
2907 pointer.
2908
68ecbaec 29092009-03-24 Arthur Loiret <aloiret@debian.org>
2910
aca60c7b 2911 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
68ecbaec 2912 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
2913 EXTRA_SPEC_FUNCTIONS.
2914 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
2915 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
2916 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
2917 -march and -mtune options.
2918
f8873a45 29192009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org>
2920
2921 * config/m68k/t-rtems: Add m5329 multilib.
2922
ab977c1f 29232009-03-24 Dodji Seketeli <dodji@redhat.com>
2924 Jakub Jelinek <jakub@redhat.com>
2925
2926 PR debug/39524
2927 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
2928 nodes.
2929
4390875c 29302009-03-23 Jakub Jelinek <jakub@redhat.com>
2931
2932 PR c/39495
2933 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
2934 instead of c_parser_expression_conv, if original_code isn't one of the
2935 4 allowed comparison codes, fail.
2936
9fac1c66 29372009-03-23 Richard Guenther <rguenther@suse.de>
2938
2939 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
2940 * tree.h (struct tree_type): Likewise.
2941 * reload.h (struct insn_chain): Likewise.
2942 * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
2943 * function.h (struct function): Likewise.
2944 * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
2945
b7d1c9e6 29462009-03-23 Jakub Jelinek <jakub@redhat.com>
2947
2948 PR tree-optimization/39516
2949 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
2950
f824d860 29512009-03-23 Bingfeng Mei <bmei@broadcom.com>
2952
2953 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
2954 should be set true if BITS_PER_WORD of target is bigger than 32
2955
f8cf5d4c 29562009-03-22 Hans-Peter Nilsson <hp@axis.com>
2957
2958 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
2959 Translate -B-options to -rpath-link. Correct existing
2960 rpath-link and conditionalize on !nostdlib.
2961
8898b2ef 29622009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2963
2964 * doc/extend.texi (Function Attributes, Variable Attributes):
2965 Fix typos.
2966 * doc/invoke.texi (Debugging Options, Optimize Options)
2967 (i386 and x86-64 Options, MCore Options): Likewise.
2968
4b1ab129 29692009-03-20 Jakub Jelinek <jakub@redhat.com>
2970
2971 PR debug/37890
2972 * dwarf2out.c (gen_namespace_die): Add context_die argument and use
2973 it for block local namespace aliases.
2974 (gen_decl_die): Pass context_die to gen_namespace_die.
2975
e060ba36 29762009-03-19 Jakub Jelinek <jakub@redhat.com>
2977
2978 PR c/39495
2979 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
2980 minimum or maximum value.
2981
42f43a38 29822009-03-19 Alexandre Oliva <aoliva@redhat.com>
2983
2984 * reginfo.c (globalize_reg): Recompute derived reg sets.
2985
76d89866 29862009-03-19 Ozkan Sezer <sezeroz@gmail.com>
2987
2988 PR target/39063
2989 * libgcc2.c (mprotect): Do not use signed arguments for
2990 VirtualProtect, use DWORD arguments. Also fix the 'may
2991 be used uninitialized' warning for the np variable.
2992
99198add 29932009-03-19 Jakub Jelinek <jakub@redhat.com>
2994
2995 PR target/39496
2996 * config/i386/i386.c (ix86_function_regparm): Don't optimize local
2997 functions using regparm calling conventions when not optimizing.
2998 (ix86_function_sseregparm): Similarly for sseregparm calling
2999 conventions.
3000
63ca8934 30012009-03-19 Li Feng <nemokingdom@gmail.com>
3002
3003 PR middle-end/39500
3004 * tree-data-ref.c (analyze_subscript_affine_affine): There is no
3005 dependence if the first conflict is after niter iterations.
3006
c5fe58d7 30072009-03-19 Hans-Peter Nilsson <hp@axis.com>
3008
3009 PR middle-end/38609
3010 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
3011 functions with dynamic stack-pointer adjustments.
3012
d4669bca 30132009-03-19 Ben Elliston <bje@au.ibm.com>
3014
3015 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
3016 option; change to -msdata=data.
3017
286c29e2 30182009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3019
3020 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
3021 and -fopenmp.
3022
0e55c4d0 30232009-03-18 Eric Botcazou <ebotcazou@adacore.com>
3024
3025 PR target/35180
3026 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
3027
5de57ebe 30282009-03-18 Sandra Loosemore <sandra@codesourcery.com>
3029
3030 * doc/invoke.texi (Code Gen Options): Expand discussion of
3031 -fno-common.
3032
0ac758f7 30332009-03-18 Jakub Jelinek <jakub@redhat.com>
3034
3035 * dse.c (struct group_info): Reorder fields for 64-bit hosts.
3036 * matrix-reorg.c (struct matrix_info): Likewise.
3037 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
3038 * rtl.h (struct mem_attrs): Likewise.
3039 * df.h (struct df): Likewise.
3040 * tree-data-ref.h (struct data_dependence_relation): Likewise.
3041 * ira-int.h (struct ira_allocno): Likewise.
3042 * df-scan.c (struct df_collection_rec): Likewise.
3043 * ira.c (struct equivalence): Likewise.
3044 * function.c (struct temp_slot): Likewise.
3045 * cfgloop.h (struct loop): Likewise.
3046
f24ccada 3047 PR debug/39485
3048 * function.c (use_register_for_decl): When not optimizing, disregard
3049 register keyword for variables with types containing methods.
3050
8fa85fc5 30512009-03-18 Sebastian Pop <sebastian.pop@amd.com>
3052
3053 PR middle-end/39447
3054 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
3055 (is_simple_operand): Call contains_component_ref_p before calling data
3056 reference analysis that would fail on COMPONENT_REFs.
3057
3058 * tree-vrp.c (search_for_addr_array): Fix formatting.
3059
a39f4102 30602009-03-18 Richard Guenther <rguenther@suse.de>
3061
3062 * tree-vect-transform.c (vect_loop_versioning): Fold the
3063 generated comparisons.
3064 * tree-vectorizer.c (set_prologue_iterations): Likewise.
3065 (slpeel_tree_peel_loop_to_edge): Likewise.
3066
b8048da5 30672009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3068
fad6b6bb 3069 PR middle-end/37805
3070 * opts.c (print_specific_help): In addition to `undocumented',
3071 accept `separate' and `joined' flags if passed alone. Describe
3072 output by the first matched one of those.
3073 (common_handle_option): Skip over empty strings.
3074 * gcc.c (display_help): Fix help string for `--help='.
3075 * doc/invoke.texi (Option Summary, Overall Options): With
3076 `--help=', classes and qualifiers can both be repeated, but
3077 only the latter can be negated. One should not pass only
3078 negated qualifiers. Fix markup and examples.
3079
b8048da5 3080 Revert
3081 2008-10-14 Jakub Jelinek <jakub@redhat.com>
3082 PR middle-end/37805
3083 * opts.c (common_handle_option): Don't ICE on -fhelp=joined
3084 and -fhelp=separate.
3085
9247818a 30862009-03-17 Jing Yu <jingyu@google.com>
3087
3088 PR middle-end/39378
a3b7452d 3089 * function.h (struct rtl_data): Move is_thunk from here...
3090 (struct function): ...to here.
3091 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
9247818a 3092 * varasm.c (assemble_start_function): Change is_thunk from crtl to
3093 cfun.
a3b7452d 3094 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
3095 cfun.
3096 (alpha_does_function_need_gp, alpha_start_function): Likewise.
3097 (alpha_output_function_end_prologue): Likewise.
3098 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
3099 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
3100 (rs6000_output_function_epilogue): Likewise.
3101 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
9247818a 3102
d849db06 31032009-03-17 Uros Bizjak <ubizjak@gmail.com>
3104
3105 PR target/39482
3106 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
3107 from different units in a single alternative.
3108 (*truncdfsf_i387): Ditto.
3109 (*truncxfsf2_mixed): Ditto.
3110 (*truncxfdf2_mixed): Ditto.
3111
31334434 31122009-03-17 Jakub Jelinek <jakub@redhat.com>
3113
169f8686 3114 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
3115 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
3116
4595b0f9 3117 PR debug/39474
3118 * tree-ssa-live.c (remove_unused_locals): Don't remove local
3119 unused non-artificial variables when not optimizing.
3120
157e283b 3121 PR debug/39471
3122 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
3123 DW_TAG_imported_module even if decl is IMPORTED_DECL with
3124 NAMESPACE_DECL in its DECL_INITIAL.
3125
979d3efc 3126 PR middle-end/39443
3127 * optabs.c (set_user_assembler_libfunc): New function.
3128 * expr.h (set_user_assembler_libfunc): New prototype.
3129 * c-common.c: Include libfuncs.h.
3130 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
3131 for memcmp, memset, memcpy, memmove and abort.
3132 * Makefile.in (c-common.o): Depend on libfuncs.h.
3133
31334434 3134 PR debug/39412
3135 * dwarf2out.c (gen_inlined_enumeration_type_die,
3136 gen_inlined_structure_type_die, gen_inlined_union_type_die,
3137 gen_tagged_type_instantiation_die): Removed.
3138 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
3139 do nothing.
3140
c158ae09 31412009-03-17 Janis Johnson <janis187@us.ibm.com>
3142
3143 PR testsuite/38526
3144 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
3145 its use.
3146 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
3147 (check-parallel-%): Ditto.
3148 (check-consistency): Ditto.
3149
d4138574 31502009-03-17 Kai Tietz <kai.tietz@onevision.com>
3151
3152 * ipa-struct-reorg.c (create_general_new_stmt): Initialize
3153 local variable rhs by NULL_TREE.
3154
dc8c96bb 31552009-03-17 H.J. Lu <hongjiu.lu@intel.com>
3156
3157 PR target/39477
d849db06 3158 * doc/extend.texi: Correct register behavior for regparm on Intel 386.
dc8c96bb 3159
462bc935 31602009-03-17 H.J. Lu <hongjiu.lu@intel.com>
3161
3162 PR target/39476
d849db06 3163 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
462bc935 3164
31652009-03-17 H.J. Lu <hongjiu.lu@intel.com>
4543b422 3166
3167 PR target/39473
3168 * config/i386/i386.c (ix86_expand_call): Check extra clobbers
3169 for ms->sysv ABI calls only in 64bit mode.
3170
3171 * config/i386/i386.md (untyped_call): Support 32bit.
3172
ff8d1746 31732009-03-16 H.J. Lu <hongjiu.lu@intel.com>
3174
3175 * doc/extend.texi: Replace x86_65 with x86_64.
3176
1095b81d 31772009-03-16 Jakub Jelinek <jakub@redhat.com>
3178
3179 PR tree-optimization/39455
3180 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
3181 mismatches for POINTER_TYPE_P (type).
3182 (number_of_iterations_le): Likewise.
3183
15d6a8ce 31842009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com>
3185
3186 * config/picochip/picochip.c: Removed profiling support.
3187 * config/picochip/picochip.md: Removed profiling instruction.
3188 * config/picochip/picochip.h: Removed profiling builtin.
3189
5bc96548 31902009-03-16 Joseph Myers <joseph@codesourcery.com>
3191
3192 * doc/install.texi (--with-host-libstdcxx): Document.
3193
7846db34 31942009-03-14 Anatoly Sokolov <aesok@post.ru>
3195
3196 PR target/34299
3197 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
3198 generate a warning if the function name does not begin with
3199 "__vector" and the function has either the 'signal' or 'interrupt'
3200 attribute, from here to ...
3201 (avr_declare_function_name): ...here. New function.
3202 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
3203 * config/avr/avr-protos.h (avr_declare_function_name): Declare.
3204
6026d749 32052009-03-14 Jakub Jelinek <jakub@redhat.com>
3206
3207 PR bootstrap/39454
3208 * cse.c (fold_rtx): Don't modify original const_arg1 when
3209 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
3210 separate variable instead.
3211 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
3212 from out of range shift counts.
3213 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
3214
747c6be5 32152008-03-13 Catherine Moore <clm@codesourcery.com>
3216
d849db06 3217 * gcc/config/i386/x-mingw32 (host-mingw32.o): Replace
747c6be5 3218 diagnostic.h with $(DIAGNOSTIC_H).
3219
1f477a18 32202008-03-12 Jakub Jelinek <jakub@redhat.com>
3221
3222 PR target/39431
3223 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
3224 predicate.
3225 * config/i386/sync.md (sync_compare_and_swap<mode>,
3226 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
3227 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
3228 into a register.
3229 (sync_double_compare_and_swapdi_pic,
3230 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
3231 cmpxchg8b_pic_memory_operand instead of just memory_operand.
3232
7e17a1bf 32332009-03-12 H.J. Lu <hongjiu.lu@intel.com>
3234
3235 PR target/39445
d849db06 3236 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
7e17a1bf 3237
01a3edef 32382009-03-12 H.J. Lu <hongjiu.lu@intel.com>
3239
3240 PR target/39327
3241 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
3242 (avx_addsubv4df3): Likewise.
3243 (*avx_addsubv4sf3): Likewise.
3244 (sse3_addsubv4sf3): Likewise.
3245
57183b55 32462009-03-12 H.J. Lu <hongjiu.lu@intel.com>
3247
3248 PR target/38824
d849db06 3249 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
57183b55 3250
3b95aad3 32512009-03-12 Vladimir Makarov <vmakarov@redhat.com>
3252
3253 PR debug/39432
3254 * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
3255 * ira-conflicts.c (ira_build_conflicts): Prohibit call used
3256 registers for allocnos created from user-defined variables.
3257
8d72495d 32582009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3259
3260 PR target/39181
3261 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
3262 of non-integer mode as well.
3263
cf219ecd 32642009-03-11 Adam Nemet <anemet@caviumnetworks.com>
3265
3266 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
3267 for functions for which the parameter types are unknown.
3268
76cbc2a0 32692009-03-11 Jakub Jelinek <jakub@redhat.com>
3270
3271 PR target/39137
d849db06 3272 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
76cbc2a0 3273 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
3274 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
3275 * config/i386/i386.c (ix86_local_alignment): For
3276 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
3277 long long variables on the stack to avoid dynamic realignment.
3278 Allow the first argument to be a decl rather than type.
3279 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
3280
18061948 32812009-03-11 Nick Clifton <nickc@redhat.com>
3282
3283 PR target/5362
a37dec0c 3284 * config/mcore/mcore.opt: Remove deprecated m4align and m8align
3285 options.
3286 Add description to mno-lsim option.
3287 * config/mcore/mcore.h: Remove comment about deprecated m4align
3288 option.
3289 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
3290 * doc/invoke.texi: Add description of mno-lsim and
3291 mstack-increment options.
3292
18061948 3293 * config/fr30/fr30.opt: Document the -mno-lsim option.
3294 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
3295 and -mno-lsim options.
3296
944017fd 32972009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3298
3299 * fold-const.c (fold_comparison): Only call fold_inf_compare
3300 if the mode supports infinities.
3301
93ef9154 33022009-03-11 Jason Merrill <jason@redhat.com>
3303
3304 PR debug/39086
3305 * tree-nrv.c (tree_nrv): Don't do this optimization if the front
3306 end already did. Notice GIMPLE_CALL modifications of the result.
3307 Don't copy debug information from an ignored decl or a decl from
3308 another function.
3309
e927e2b8 33102009-03-10 Richard Guenther <rguenther@suse.de>
3311 Nathan Froyd <froydnj@codesourcery.com>
3312
3313 PR middle-end/37850
d849db06 3314 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
e927e2b8 3315 (__divMODE3): Likewise.
3316
48855189 33172009-03-09 Jakub Jelinek <jakub@redhat.com>
3318
3319 PR tree-optimization/39394
3320 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
3321 DECL_SIZE_UNIT of variable length FIELD_DECLs.
3322
af7eac22 33232009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3324
3325 * recog.c (verfiy_changes): Disallow renaming of hard regs in
3326 inline asms for register asm ("") declarations.
3327
4ce9876e 33282009-03-09 Eric Botcazou <ebotcazou@adacore.com>
3329
3330 * fold-const.c (fold_unary): Fix comment.
3331
928059d5 33322009-03-07 Jan Hubicka <jh@suse.cz>
3333
3334 PR target/39361
0648196e 3335 * tree-inline.c (setup_one_parameter): Do replacement of const
3336 argument by constant in SSA form.
928059d5 3337
c9b50df7 33382009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3339
3340 PR middle-end/38028
3341 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
3342 determine alignment passed to assign_stack_local.
3343 (assign_parms_unsplit_complex): Likewise.
3344 * except.c (sjlj_build_landing_pads): Likewise.
3345
ebcb0478 33462009-03-06 Jakub Jelinek <jakub@redhat.com>
3347
82eb5a11 3348 PR middle-end/39360
3349 * tree-flow.h (add_referenced_var): Return bool instead of void.
3350 * tree-dfa.c (add_referenced_var): Return result of
3351 referenced_var_check_and_insert call.
3352 * tree-inline.c (expand_call_inline): Call add_referenced_var instead
3353 of referenced_var_check_and_insert.
3354
ebcb0478 3355 PR debug/39372
d849db06 3356 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
ebcb0478 3357 (gen_variable_die): Emit DW_AT_location on abstract static variable's
3358 DIE, don't emit it if abstract origin already has it.
3359 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
3360 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
3361
6d92fc03 33622009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3363
aca60c7b 3364 * genpreds.c (needs_variable): Fix parentheses at variable name
6d92fc03 3365 detection.
3366 (write_tm_constrs_h): Indent generated code.
3367
1fe1c6f5 33682009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3369
3370 * doc/extend.texi (Function Attributes): Add documentation
3371 for isr attributes.
3372
5a798e1e 33732009-03-06 Jakub Jelinek <jakub@redhat.com>
3374
3375 PR debug/39387
3376 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
3377 take locus from its DECL_SOURCE_LOCATION instead of input_location.
3378
05f566a9 33792009-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
3380
3381 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
3382 the loop as bad.
3383
227f485e 33842009-03-05 Jakub Jelinek <jakub@redhat.com>
3385
3386 PR debug/39379
3387 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
3388 with blocks containing IMPORTED_DECLs in BLOCK_VARS.
3389
a6ccab35 33902009-03-05 Uros Bizjak <ubizjak@gmail.com>
3391
3392 * config/i386/i386.md (R8_REG, R9_REG): New constants.
3393 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
3394 constants instead of magic numbers.
3395 (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
3396 (QI_REG_P): Ditto.
3397 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
3398 (x86_64_ms_abi_int_parameter_registers): Ditto.
3399 (x86_64_int_return_registers): Ditto.
0d22f439 3400 (ix86_maybe_switch_abi): Ditto.
a6ccab35 3401 (ix86_expand_call): Ditto for clobbered_registers array.
3402 (ix86_hard_regno_mode_ok): Ditto.
3403 (x86_extended_QIreg_mentioned_p): Ditto.
3404
ea138c98 34052009-03-05 J"orn Rennecke <joern.rennecke@arc.com>
3406
a6ccab35 3407 PR tree-optimization/39349
1595fd95 3408 * cse.c (cse_insn): Fix loop to stop at VOIDmode.
3409
ea138c98 3410 * combine.c (gen_lowpart_for_combine): Use omode when generating
3411 clobber.
3412
242753ba 34132009-03-04 J"orn Rennecke <joern.rennecke@arc.com>
3414
a6ccab35 3415 PR rtl-optimization/39235
242753ba 3416 * loop-iv.c (get_simple_loop_desc): Use XCNEW.
3417
7299be85 34182009-03-04 Zdenek Dvorak <ook@ucw.cz>
3419
3420 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
3421
a4c8b601 34222009-03-04 Richard Guenther <rguenther@suse.de>
3423
3424 PR tree-optimization/39362
3425 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
3426 that occur in abnormal PHIs should be varying.
3427
76610704 34282009-03-04 Zdenek Dvorak <ook@ucw.cz>
3429
3430 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
3431 Extend comments.
3432 (simple_iv): Take loop as an argument instead of statement.
3433 * tree-scalar-evolution.h (simple_iv): Declaration changed.
3434 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
3435 to simple_iv.
3436 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
3437 Ditto.
3438 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
3439 * matrix-reorg.c (analyze_transpose): Ditto.
3440 * tree-data-ref.c (dr_analyze_innermost): Ditto.
3441 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
3442 * tree-predcom.c (ref_at_iteration): Ditto.
3443 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
3444
f13e5f6d 34452009-03-04 Richard Guenther <rguenther@suse.de>
3446
3447 PR tree-optimization/39358
3448 * tree-ssa-structalias.c (do_sd_constraint): Fix check for
3449 escaped_id and callused_id.
3450 (solve_graph): Likewise.
3451
0cb9a712 34522009-03-04 Richard Guenther <rguenther@suse.de>
3453
3454 PR tree-optimization/39339
3455 * tree-sra.c (try_instantiate_multiple_fields): Make it
3456 no longer ICE on the above.
3457
cfb75cdf 34582009-03-03 Joseph Myers <joseph@codesourcery.com>
3459
3460 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
3461 that fits within Pmode.
3462
838bd0ed 34632009-03-03 Steve Ellcey <sje@cup.hp.com>
3464
3465 PR middle-end/10109
3466 * tm.texi (LIBCALL_VALUE): Update description.
3467
e5e13288 34682009-03-03 Steve Ellcey <sje@cup.hp.com>
3469
3470 PR middle-end/34443
3471 * doc/extend.texi (section): Update description.
3472
463cc256 34732009-03-03 H.J. Lu <hongjiu.lu@intel.com>
3474
3475 PR middle-end/39345
3476 * tree-inline.c (remapped_type): New.
3477 (can_be_nonlocal): Call remapped_type instead of remap_type.
3478
072866b6 34792009-03-03 Jakub Jelinek <jakub@redhat.com>
3480
3481 PR fortran/39354
3482 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
3483 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
3484
b430e8d9 34852009-03-03 Richard Guenther <rguenther@suse.de>
3486
3487 PR middle-end/39272
3488 * tree.c (tree_nonartificial_location): New function.
3489 * tree.h (tree_nonartificial_location): Declare.
3490 * builtins.c (expand_builtin_memory_chk): Provide location
3491 of the call location for artificial function pieces.
3492 (maybe_emit_chk_warning): Likewise.
3493 (maybe_emit_sprintf_chk_warning): Likewise.
3494 (maybe_emit_free_warning): Likewise.
3495 * expr.c (expand_expr_real_1): Likewise.
3496
bc79a76b 34972009-03-03 Jakub Jelinek <jakub@redhat.com>
3498
3499 PR tree-optimization/39343
3500 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
3501 COMPONENT_REF t has ARRAY_TYPE.
3502
41c18990 35032009-03-02 Sebastian Pop <sebastian.pop@amd.com>
3504
3505 PR middle-end/39335
3506 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
3507 when the type precision of the induction variable should be
3508 larger than the type precision of nit.
3509 (gen_parallel_loop): Update use of canonicalize_loop_ivs.
3510 * graphite.c (graphite_loop_normal_form): Same.
3511 * tree-flow.h (canonicalize_loop_ivs): Update declaration.
3512
32096e82 35132009-03-02 Uros Bizjak <ubizjak@gmail.com>
3514
3515 * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
3516 (*call_1_rex64_ms_sysv): Use named constants instead of magic
a6ccab35 3517 numbers to describe clobbered registers.
32096e82 3518 (*call_value_0_rex64_ms_sysv): Ditto.
a6ccab35 3519 * config/i386/mmx.md (mmx_emms): Ditto.
3520 (mmx_femms): Ditto.
32096e82 3521
b8f6667e 35222009-03-02 Richard Sandiford <rdsandiford@googlemail.com>
3523
3524 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
3525 of ABI_64.
3526
a08dfd55 35272009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3528
3529 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
3530 (spu_section_type_flags): New function.
3531
c81d1104 35322009-03-02 Uros Bizjak <ubizjak@gmail.com>
3533
3534 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
3535 reg_class_contents of FLOAT_REGS into a temporary.
3536
ed243388 35372009-03-02 Richard Guenther <rguenther@suse.de>
c81d1104 3538 Ira Rosen <irar@il.ibm.com>
ed243388 3539
3540 PR tree-optimization/39318
3541 * tree-vect-transform.c (vectorizable_call): Transfer the EH region
3542 information to the vectorized statement.
3543
c4bb7475 35442009-03-01 Uros Bizjak <ubizjak@gmail.com>
3545
4d5fae72 3546 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
3547 variable. Use defined names instead of magic constants for REX SSE
3548 registers.
c4bb7475 3549
d2263ebb 35502009-03-01 Richard Guenther <rguenther@suse.de>
3551
3552 PR tree-optimization/39331
3553 * omp-low.c (lower_send_shared_vars): Do not receive new
3554 values for the reference of DECL_BY_REFERENCE parms or results.
3555
4b5d70fd 35562009-03-01 Jan Hubicka <jh@suse.cz>
3557
3558 PR debug/39267
3559 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
3560 BLOCK_NONLOCALIZED_VAR): New macros.
3561 (tree_block): Add nonlocalized_vars.
79283bdc 3562 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
3563 gen_decl_die): Add origin argument. Allow generation of die with
3564 origin at hand only.
4b5d70fd 3565 (gen_member_die, gen_type_die_with_usage, force_decl_die,
79283bdc 3566 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
3567 of gen_*.
4b5d70fd 3568 (gen_block_die): Fix checking for unused blocks.
3569 (process_scope_var): Break out from .... ; work with origins only.
3570 (decls_for_scope) ... here; process nonlocalized list.
3571 (dwarf2out_ignore_block): Look for nonlocalized vars.
79283bdc 3572 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
3573 vars.
4b5d70fd 3574 (dump_scope_block): Dump them.
3575 * tree-inline.c (remap_decls): Handle nonlocalized vars.
3576 (remap_block): Likewise.
3577 (can_be_nonlocal): New predicate.
3578 (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
3579
9af964d4 35802009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3581
3582 * configure: Regenerate.
3583
a43fd3a5 35842009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
3585
e6a03973 3586 * optc-gen.awk: No need to duplicate option flags twice.
d849db06 3587 Reuse help texts for duplicate options which do not have any.
e6a03973 3588
53f9a00b 3589 * gcc.c (display_help): Document --version.
3590
0445c349 3591 * gcc.c (main): If print_help_list and verbose_flag, ensure
3592 driver output comes before subprocess output.
3593
1df76a79 3594 * optc-gen.awk: Assign all remaining fields to help string,
3595 space-separated, for multi-line help in *.opt.
3596
d7381490 3597 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
3598 -Wno-pedantic-ms-format is for MinGW targets only.
3599
a43fd3a5 3600 * doc/options.texi (Option file format): Fix bad indentation,
3601 restoring dropped sentence.
3602
3d280f42 36032009-02-28 Jan Hubicka <jh@suse.cz>
3604
3605 * tree-inline.c (tree_function_versioning): Output debug info.
3606
12e12890 36072009-02-28 Jan Hubicka <jh@suse.cz>
3608
3609 PR debug/39267
3610 * tree-inline.c (setup_one_parameter): Do not copy propagate
3611 arguments when not optimizing.
3612
5e56456b 36132009-02-28 H.J. Lu <hongjiu.lu@intel.com>
3614
3615 PR target/39327
3616 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
3617 (avx_addsubv4df3): Likewise.
3618 (*avx_addsubv4sf3): Likewise.
3619 (sse3_addsubv4sf3): Likewise.
3620 (*avx_addsubv2df3): Likewise.
3621 (sse3_addsubv2df3): Likewise.
3622 (avx_unpckhps256): Correct item selectors.
3623 (avx_unpcklps256): Likewise.
3624 (avx_unpckhpd256): Likewise.
3625 (avx_unpcklpd256): Likewise.
3626
a8305131 36272009-02-28 Jan Hubicka <jh@suse.cz>
3628
3629 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
3630 static vars.
3631 (copy_arguments_for_versioning): If var is declared don't declare it.
3632 (tree_function_versioning): First setup substitutions and then copy
3633 args.
3634
89f29a1b 36352009-02-27 Jan Hubicka <jh@suse.cz>
3636
3637 PR debug/39267
3638 * cgraph.h (varpool_output_debug_info): Remove.
3639 * cgraphunit.c (varpool_output_debug_info): Remove.
3640 * dwarf2out.c (deferred_locations_struct): New struct
3641 (deferred_locations): New type.
3642 (deferred_locations_list): New static var.
3643 (deffer_location): New function.
3644 (gen_variable_die): Use it.
3645 (decls_for_scope): Output info on local static vars.
3646 (dwarf2out_finish): Process deferred locations.
3647 * varpool.c (varpool_output_debug_info): Remove.
3648
cee43f7e 36492009-02-27 Jan Hubicka <jh@suse.cz>
3650
3651 PR debug/39267
3652 * tree.h (TREE_PROTECTED): Fix comment.
3653 (BLOCK_HANDLER_BLOCK): Remove.
3654 (struct tree_block): Remove handler_block add body_block.
3655 (inlined_function_outer_scope_p): New.
3656 (is_body_block): Remove.
3657 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
3658 * dwarf2out.c (is_inlined_entry_point): Remove.
3659 (add_high_low_attributes): Use inlined_function_outer_scope_p.
a12d48b6 3660 (gen_block_die): Use is_inlined_entry_point check. Remove body block
3661 code.
cee43f7e 3662 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
3663 * gimplify.c (gimplify_expr): Gimplify body blocks.
a12d48b6 3664 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
3665 block with multiple subblocks.
cee43f7e 3666 (dump_scope_block): Prettier output; dump more flags and info.
3667 (dump_scope_blocks): New.
3668 (remove_unused_locals): Use dump_scope_blocks.
3669 * tree-flow.h (dump_scope_blocks): Declare.
3670 * tree-cfg.c (execute_build_cfg): Dump scope blocks.
3671 * stmt.c (is_body_block): Remove.
3672 * tree-inline.c (remap_block): Copy BODY_BLOCK info.
3673 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
3674
74e261f8 36752009-02-27 Sebastian Pop <sebastian.pop@amd.com>
3676
3677 PR middle-end/39308
3678 * graphite.c (graphite_loop_normal_form): Do not call
3679 number_of_iterations_exit from a gcc_assert.
3680
512d9edf 36812009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3682
aca60c7b 3683 * gcc/config/s390/s390.c (s390_swap_cmp): Look for conditional
512d9edf 3684 jumps if COND is NULL.
3685 (find_cond_jump): New function.
3686 (s390_z10_optimize_cmp): Handling for reg-reg compares added.
3687 * gcc/config/s390/s390.md: Remove z10_cobra attribute value.
3688
f8fff44e 36892009-02-26 Uros Bizjak <ubizjak@gmail.com>
3690
3691 * config/alpha/alpha.h (alpha_expand_mov): Return false if
3692 force_const_mem returns NULL_RTX.
3693
673c690d 36942009-02-26 Jan Hubicka <jh@suse.cz>
3695
3696 PR debug/39267
3697 * cgraph.h (varpool_output_debug_info): Remove.
3698 * cgraphunit.c (varpool_output_debug_info): Remove.
3699 * dwarf2out.c (deferred_locations_struct): New struct
3700 (deferred_locations): New type.
3701 (deferred_locations_list): New static var.
3702 (deffer_location): New function.
3703 (gen_variable_die): Use it.
3704 (decls_for_scope): Output info on local static vars.
3705 (dwarf2out_finish): Process deferred locations.
3706 * varpool.c (varpool_output_debug_info): Remove.
3707
a330630f 37082009-02-25 H.J. Lu <hongjiu.lu@intel.com>
7216a350 3709
3710 PR rtl-optimization/39241
3711 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
3712 to subreg_offset_representable_p.
3713
1e176869 37142009-02-25 Paolo Bonzini <bonzini@gnu.org>
3715
3716 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
3717 execute function prototype. Get f and nregs from max_reg_num
3718 and get_insns. Remove the first backward pass as it's dead,
3719 guard the forward pass by flag_expensive_optimizations.
3720 (rest_of_handle_regmove): Delete.
3721 (pass_regmove): Replace it with regmove_optimize.
3722
28efe441 37232009-02-25 Martin Jambor <mjambor@suse.cz>
3724
3725 PR tree-optimization/39259
3726 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
a6ccab35 3727 calls_alloca function flags.
28efe441 3728 (copy_bb): Set calls_setjmp and alls_alloca function flags if such
3729 calls are detected.
3730
e7dd8234 37312009-02-25 Paolo Bonzini <bonzini@gnu.org>
3732
3733 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
3734 flags_set_1_rtx, flags_set_1_set): Delete.
3735 (regmove_optimize): Do not call mark_flags_life_zones.
3736
3e0af691 37372009-02-24 Julian Brown <julian@codesourcery.com>
3738
3739 PR target/35965
3740 * config/arm/arm.c (require_pic_register): Only set
3741 cfun->machine->pic_reg once per function.
3742
95e9d9cd 37432009-02-24 Sandra Loosemore <sandra@codesourcery.com>
3744
3745 * doc/invoke.texi (Link Options): Document an easier way to pass
f8fff44e 3746 options that take arguments to the GNU linker using -Xlinker and -Wl.
95e9d9cd 3747
bbe1a1e9 37482009-02-24 Steve Ellcey <sje@cup.hp.com>
3749
3750 PR target/33785
3751 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
3752
dbc4ace1 37532009-02-24 Richard Guenther <rguenther@suse.de>
3754
3755 PR debug/39285
3756 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
3757
29474274 37582009-02-24 Richard Guenther <rguenther@suse.de>
7216a350 3759 Zdenek Dvorak <ook@ucw.cz>
29474274 3760
3761 PR tree-optimization/39233
3762 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
3763 from converting them to a generic type.
3764
70c06b9d 37652009-02-23 Sebastian Pop <sebastian.pop@amd.com>
3766
3767 PR tree-optimization/39260
3768 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
3769 contains a condition with a real type.
3770 (build_scop_conditions_1): Conditions are always last_stmt of a bb.
3771
a9d778f8 37722009-02-23 Jason Merrill <jason@redhat.com>
3773
3774 PR c++/38880
3775 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
3776 narrowing_initializer_constant_valid_p.
3777 (narrowing_initializer_constant_valid_p): Don't return
3778 null_pointer_node for adding a pointer to itself.
3779
8b7d416a 37802009-02-23 Jan Hubicka <jh@suse.cz>
3781
3782 PR c/12245
f8fff44e 3783 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
3784 resizing.
8b7d416a 3785
36267649 37862009-02-23 Jan Hubicka <jh@suse.cz>
3787
f8fff44e 3788 PR tree-optimization/37709
3789 * tree.c (block_ultimate_origin): Move here from dwarf2out.
3790 * tree.h (block_ultimate_origin): Declare.
3791 * dwarf2out.c (block_ultimate_origin): Move to tree.c
36267649 3792 * tree-ssa-live.c (remove_unused_scope_block_p):
3793 Eliminate blocks containig no instructions nor live variables nor
3794 nested blocks.
3795 (dump_scope_block): New function.
3796 (remove_unused_locals): Enable removal of dead blocks by default;
f8fff44e 3797 enable dumping at TDF_DETAILS.
36267649 3798
a330630f 37992009-02-21 H.J. Lu <hongjiu.lu@intel.com>
d9984eae 3800
3801 * config/i386/i386.c (classify_argument): Don't allow COImode
3802 and OImode.
3803 (function_arg_advance_32): Don't allow OImode.
3804 (function_arg_32): Likewise.
3805 (function_value_32): Likewise.
3806 (return_in_memory_32): Likewise.
3807 (function_arg_64): Remove OImode comment.
3808
a330630f 38092009-02-21 H.J. Lu <hongjiu.lu@intel.com>
f65f962c 3810
3811 PR target/39261
3812 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
3813 ix86_expand_vector_set for V4DImode in 64bit mode only.
3814 (ix86_expand_vector_init_one_var): Likewise.
3815
c08b0c04 38162009-02-21 Sebastian Pop <sebastian.pop@amd.com>
3817
3818 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
3819
c0efe3c3 38202009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
3821
71cca459 3822 PR bootstrap/39257
c0efe3c3 3823 * loop-iv.c: Revert last change.
3824 * emit-rtl.c: Likewise.
3825
a330630f 38262009-02-21 H.J. Lu <hongjiu.lu@intel.com>
6c37e539 3827
3828 PR target/39256
3829 * config/i386/i386.c (type_natural_mode): Remove an extra
3830 space in the warning message.
3831 (function_value_32): Handle 32-byte vector modes.
3832 (return_in_memory_32): Likewise.
3833
c2c24c89 38342009-02-21 Richard Sandiford <rdsandiford@googlemail.com>
3835
3836 * loop-iv.c (truncate_value): New function.
3837 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
3838 of lowpart_subreg.
3839 (lowpart_subreg): Move to...
3840 * emit-rtl.c: ...here.
3841
59c236cd 38422009-02-21 Danny Smith <dannysmith@users.sourceforge.net>
09869175 3843
59c236cd 3844 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
3845 accidental and undocumented change at revision 140860.
3846
54ad443f 38472009-02-21 Joseph Myers <joseph@codesourcery.com>
3848
3849 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
3850 take gimple_seq * arguments.
3851 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
3852 types_compatible_p langhook.
3853
fb20d2ee 38542009-02-20 Mark Mitchell <mark@codesourcery.com>
09869175 3855 Joseph Myers <joseph@codesourcery.com>
fb20d2ee 3856
3857 * config/arm/arm.c (arm_builtin_va_list): New function.
3858 (arm_expand_builtin_va_start): Likewise.
3859 (arm_gimplify_va_arg_expr): Likewise.
3860 (TARGET_BUILD_BUILTIN_VA_LIST): Define.
3861 (TARGET_BUILD_BUILTIN_VA_START): Likewise.
3862 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
3863 (va_list_type): New variable.
3864 (arm_mangle_type): Mangle va_list_type appropriately.
3865
86482d6b 38662009-02-20 Jakub Jelinek <jakub@redhat.com>
3867
3868 PR middle-end/39157
3869 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
3870 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
3871 * params.def (loop-invariant-max-bbs-in-loop): New parameter.
3872 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
3873 parameter to 1000 for -O1 by default.
3874 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
3875 parameter.
3876 * loop-invariant.c: Include params.h.
3877 (move_loop_invariants): Don't call move_single_loop_invariants on
3878 very large loops.
3879
9a0cf170 38802009-02-20 Jaka Mocnik <jaka@xlab.si>
3881
3882 * calls.c (emit_library_call_value_1): Use slot_offset instead of
3883 offset when calculating bounds for indexing stack_usage_map. Fixes
3884 a buffer overflow with certain target setups.
3885
4681dd41 38862009-02-20 Jakub Jelinek <jakub@redhat.com>
3887
3888 PR target/39240
3889 * calls.c (expand_call): Clear try_tail_call if caller and callee
3890 disagree in promotion of function return value.
3891
2d9d8740 38922009-02-19 Jakub Jelinek <jakub@redhat.com>
3893
3894 PR target/39175
3895 * c-common.c (c_determine_visibility): If visibility changed and
3896 DECL_RTL has been already set, call make_decl_rtl to update symbol
3897 flags.
3898
e3040053 38992009-02-19 H.J. Lu <hongjiu.lu@intel.com>
3900
3901 PR c++/39188
3902 * varasm.c (assemble_variable): Don't check DECL_NAME when
3903 globalizing a variable.
3904
ad0e7a06 39052009-02-19 Joseph Myers <joseph@codesourcery.com>
3906
3907 PR c/38483
3908 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
3909 expression before any __builtin_trap call.
3910 * c-typeck.c (build_function_call): Convert and check function
3911 arguments before generating a call to a trap. Evaluate the
3912 function arguments before the trap.
3913
a7a2dd08 39142009-02-19 Uros Bizjak <ubizjak@gmail.com>
3915
3916 PR target/39228
3917 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
3918 (UNSPEC_FXAM_MEM): New unspec.
3919 (fxam<mode>2_i387_with_temp): New insn and split pattern.
3920 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through
3921 memory using fxam<mode>2_i387_with_temp to remove excess precision.
3922
c5168a9e 39232009-02-19 Richard Guenther <rguenther@suse.de>
3924
3925 PR tree-optimization/39207
3926 PR tree-optimization/39074
3927 * tree-ssa-structalias.c (storedanything_id, var_storedanything,
3928 storedanything_tree): New.
3929 (do_ds_constraint): Simplify ANYTHING shortcutting. Update
a7a2dd08 3930 the STOREDANYTHING solution if the lhs solution contains ANYTHING.
c5168a9e 3931 (build_succ_graph): Add edges from STOREDANYTHING to all
3932 non-direct nodes.
3933 (init_base_vars): Initialize STOREDANYTHING.
3934 (compute_points_to_sets): Free substitution info after
3935 building the succ graph.
3936 (ipa_pta_execute): Likewise.
3937
3938 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
3939 field.
3940 (do_ds_constraint): Do not add to special var or non-pointer
3941 field solutions.
3942 (type_could_have_pointers): Split out from ...
3943 (could_have_pointers): ... here. For arrays use the element type.
3944 (create_variable_info_for): Initialize may_have_pointers.
3945 (new_var_info): Likewise.
3946 (handle_lhs_call): Make the HEAP variable unknown-sized.
3947 (intra_create_variable_infos): Use a type with pointers for
3948 PARM_NOALIAS, make it unknown-sized.
3949
f36b5ce0 39502009-02-18 H.J. Lu <hongjiu.lu@intel.com>
3951
3952 PR target/39224
a7a2dd08 3953 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
f36b5ce0 3954
807bf718 39552009-02-18 Jason Merrill <jason@redhat.com>
3956
3957 PR target/39179
3958 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
3959 value if DECL_EXTERNAL.
3960 * tree-sra.c (sra_walk_gimple_assign): Likewise.
3961 * target.h (gcc_target::binds_local_p): Clarify "module".
3962 * tree.h (TREE_PUBLIC): Clarify "module".
3963
f29980e5 39642009-02-17 Xuepeng Guo <xuepeng.guo@intel.com>
3965
3966 PR target/38891
3967 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
3968 initialization for MS_ABI prior to the hunk of !TARGET_MMX.
3969
58beda63 39702009-02-17 H.J. Lu <hongjiu.lu@intel.com>
3971
3972 PR target/39082
3973 * c.opt (Wabi): Support C and ObjC.
3974 (Wpsabi): New.
3975
3976 * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
3977
3978 * config/i386/i386.c (classify_argument): Warn once about the ABI
3979 change when passing union with long double.
3980
3981 * doc/invoke.texi: Update -Wabi for warning psABI changes.
3982
22d77a94 39832009-02-18 Joseph Myers <joseph@codesourcery.com>
3984
3985 PR c/35447
3986 * c-parser.c (c_parser_compound_statement): Always enter and leave
3987 a scope.
3988
492e3336 39892009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3990
3991 PR target/34587
3992 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
3993
b6eab06c 39942009-02-18 Jakub Jelinek <jakub@redhat.com>
3995
3996 PR tree-optimization/36922
3997 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
3998 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
3999 Likewise.
4000
4f0507c2 40012009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
4002
4003 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
4004 to 0 for EABI64.
4005
be83ab34 40062009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
4007
4008 * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
4009
aa6a48b8 40102009-02-17 Richard Sandiford <rdsandiford@googlemail.com>
4011
4012 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
4013 tree sharing.
4014
0f604f19 40152009-02-17 Ruan Beihong <ruanbeihong@gmail.com>
4016 Richard Sandiford <rdsandiford@googlemail.com>
4017
4018 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
4019 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
4020 (loongson_biadd): ...this.
4021
1ab8a912 40222009-02-17 Richard Guenther <rguenther@suse.de>
4023
4024 PR tree-optimization/39202
4025 * tree-ssa-structalias.c (do_structure_copy): Before collapsing
4026 a var make sure to follow existing collapses.
4027
aa03bd5e 40282009-02-17 Richard Guenther <rguenther@suse.de>
4029
4030 PR middle-end/39214
4031 * langhooks.c (lhd_print_error_function): Check for NULL block.
4032
f46bc821 40332009-02-17 Richard Guenther <rguenther@suse.de>
4034
4035 PR tree-optimization/39204
4036 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
4037 of the PHI arg.
4038
974645ce 40392009-02-17 Uros Bizjak <ubizjak@gmail.com>
4040
4041 * config/soft-fp/double.h: Update from glibc CVS.
4042
7197c469 40432009-02-17 Richard Guenther <rguenther@suse.de>
4044
4045 PR tree-optimization/39207
4046 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
4047 strict-aliasing warnings for pointers pointing to NULL.
4048
1646bf33 40492009-02-16 Joseph Myers <joseph@codesourcery.com>
4050
4051 PR c/35446
4052 * c-parser.c (c_parser_braced_init): Call pop_init_level when
4053 skipping until next close brace.
4054
0fb2a998 40552009-02-16 H.J. Lu <hongjiu.lu@intel.com>
4056
4057 PR target/37049
4058 * config/i386/i386.c (ix86_expand_push): Set memory alignment
4059 to function argument boundary.
4060
a1a75b07 40612009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com>
4062
4063 * config/picochip/picochip.md (lea_add): Allow any nonimmediate
4064 in the lea_add. Reload eventually constraints it properly.
4065 * config/picochip/constraints.md : Remove the target constraint
4066 "b", since it is not needed anymore.
4067
320084b9 40682009-02-16 Jakub Jelinek <jakub@redhat.com>
4069
4070 * gthr-dce.h: Uglify function parameter and local variable names.
4071 * gthr-gnat.h: Likewise.
4072 * gthr-mipssde.h: Likewise.
4073 * gthr-nks.h: Likewise.
4074 * gthr-posix95.h: Likewise.
4075 * gthr-posix.h: Likewise.
4076 * gthr-rtems.h: Likewise.
4077 * gthr-single.h: Likewise.
4078 * gthr-solaris.h: Likewise.
4079 * gthr-tpf.h: Likewise.
4080 * gthr-vxworks.h: Likewise.
4081 * gthr-win32.h: Likewise.
4082
fde73de8 40832009-02-15 H.J. Lu <hongjiu.lu@intel.com>
4084
4085 PR target/39196
4086 * config/i386/i386.md: Restrict the new peephole2 to move
4087 between MMX/SSE registers.
4088
b5c49426 40892009-02-15 Richard Guenther <rguenther@suse.de>
4090
4091 Revert
4092 2009-02-13 Richard Guenther <rguenther@suse.de>
4093
4094 * configure.ac: Enable LFS.
4095 * configure: Re-generate.
4096 * config.in: Likewise.
4097
70ca06f8 40982009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4099
4100 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
4101 spu_srqwbyte, spu_srqwbytebc): Define.
4102 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
4103 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
4104 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
4105 "shrqby_<mode>"): New insn-and-split patterns.
4106 * config/spu/spu.c (expand_builtin_args): Determine and return
4107 number of operands using spu_builtin_description data.
4108 (spu_expand_builtin_1): Use it.
4109
c49d20be 41102009-02-13 Steve Ellcey <sje@cup.hp.com>
4111
4112 PR target/38056
4113 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
4114 TARGET_CONST_GP.
4115
c81f43ee 41162009-02-13 H.J. Lu <hongjiu.lu@intel.com>
4117
4118 PR target/39149
4119 * config/i386/i386.c (override_options): Correct warning
a6ccab35 4120 messages for -malign-loops, -malign-jumps and -malign-functions.
c81f43ee 4121
bc0a240f 41222009-02-13 H.J. Lu <hongjiu.lu@intel.com>
4123
4124 PR target/39152
4125 * config/i386/i386.md: Restrict the new peephole2 to move
4126 between the general purpose registers.
4127
79a817bf 41282009-02-13 H.J. Lu <hongjiu.lu@intel.com>
4129
4130 PR target/39162
4131 * config/i386/i386.c (type_natural_mode): Add a new argument.
a7a2dd08 4132 Return the original mode and warn ABI change if vector size is 32byte.
79a817bf 4133 (function_arg_advance): Updated.
4134 (function_arg): Likewise.
4135 (ix86_function_value): Likewise.
4136 (ix86_return_in_memory): Likewise.
4137 (ix86_sol10_return_in_memory): Likewise.
4138 (ix86_gimplify_va_arg): Likewise.
4139 (function_arg_32): Don't warn ABX ABI change here.
4140 (function_arg_64): Likewise.
4141
a330630f 41422009-02-13 Bernd Schmidt <bernd.schmidt@analog.com>
27440859 4143
4144 * loop-iv.c (implies_p): In the final case, test that operands 0
4145 of the two comparisons match.
4146
462ce619 4147 * config/bfin/bfin.c (find_prev_insn_start): New function.
4148 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
4149 (find_next_insn_start): Move.
4150
76549266 41512009-02-13 Richard Guenther <rguenther@suse.de>
4152
4153 * configure.ac: Enable LFS.
4154 * configure: Re-generate.
4155 * config.in: Likewise.
4156
1bbf1c2f 41572009-02-13 Joseph Myers <joseph@codesourcery.com>
4158
4159 PR c/35444
4160 * c-parser.c (c_parser_parms_list_declarator): Discard pending
4161 sizes on syntax error after some arguments have been parsed.
4162
ce2801fe 41632009-02-12 Jakub Jelinek <jakub@redhat.com>
4164
4165 * doc/invoke.texi (-fira): Remove.
4166
ac502adf 41672009-02-12 H.J. Lu <hongjiu.lu@intel.com>
4168
4169 * caller-save.c: Replace regclass.c with reginfo.c in comments.
4170 * recog.c: Likewise.
4171 * rtl.h: Likewise.
4172
8b21beb2 41732009-02-12 Uros Bizjak <ubizjak@gmail.com>
4174
4175 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
4176 (umul_ppmm): Likewise.
4177 (count_leading_zeros): Likewise.
4178 (count_trailing_zeros): Likewise.
4179 (UMUL_TIME): Likewise.
4180
41812009-02-12 H.J. Lu <hongjiu.lu@intel.com>
4182
24200b28 4183 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
4184 soft-fp/t-softfp to tmake_file.
8b21beb2 4185
4186 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
24200b28 4187 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
4188 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
4189 IA64_BUILTIN_INFQ]: New.
8b21beb2 4190 (ia64_init_builtins): Initialize __builtin_infq,
4191 __builtin_fabsq and __builtin_copysignq if not HPUX.
4192 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
4193 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
4194
4195 * config/ia64/lib1funcs.asm (__divtf3): Define only if
4196 SHARED is defined.
4197 (__fixtfti): Likewise.
4198 (__fixunstfti): Likewise.
4199 (__floattitf): Likewise.
4200
4201 * config/ia64/libgcc-glibc.ver: New.
4202 * config/ia64/t-fprules-softfp: Likewise.
4203 * config/ia64/sfp-machine.h: Likewise.
4204
4205 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
4206 (LIBGCC2_TF_CEXT): Likewise.
4207 (TF_SIZE): Likewise.
4208 (TARGET_INIT_LIBFUNCS): Likewise.
4209
24200b28 4210 * config/ia64/t-glibc (SHLINB_MAPFILES):
a7a2dd08 4211 Add $(srcdir)/config/ia64/libgcc-glibc.ver.
8b21beb2 4212
cffe3086 42132009-02-12 H.J. Lu <hongjiu.lu@intel.com>
4214
4215 * config/i386/i386.c (construct_container): Rewrite processing
4216 BLKmode with X86_64_SSE_CLASS.
4217
fbfa3312 42182009-02-12 Paolo Bonzini <bonzini@gnu.org>
4219
4220 PR target/39152
4221 * config/i386/i386.md: Replace simplify_replace_rtx with
4222 replace_rtx in the new peephole2.
4223
38b64900 42242009-02-12 Nathan Sidwell <nathan@codesourcery.com>
4225
4226 * doc/invoke.texi (Optimize Options): Stop claiming inlining and
4227 loop unrolling do not happen at -O2.
4228
674ca8bf 42292009-02-12 Michael Matz <matz@suse.de>
4230
4231 * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
4232
e1b3cc49 42332009-02-12 Jakub Jelinek <jakub@redhat.com>
4234
4235 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
4236 for -g3.
4237
0fbcd2eb 42382009-02-12 Ben Elliston <bje@au.ibm.com>
4239
4240 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
4241 patterns when updating the back chain. Missed in the 2009-02-10
4242 change.
4243
0e86dff0 42442009-02-11 Janis Johnson <janis187@us.ibm.com>
4245
4246 * doc/extend.texi (Decimal Floating Types): Update identifier of
4247 draft TR and list of missing support.
4248
2a92826d 42492009-02-11 Jakub Jelinek <jakub@redhat.com>
4250
4251 PR middle-end/39154
4252 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
4253 bit to variable length decl's flags, add it also to its
4254 pointer replacement variable.
4255
73c5e2aa 42562009-02-11 Uros Bizjak <ubizjak@gmail.com>
4257 Jakub Jelinek <jakub@redhat.com>
4258
4259 PR target/39118
4260 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
4261 (memory_blockage): New expander.
4262 (*memory_blockage): New insn pattern.
4263 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
4264 instead of general blockage at the end of function prologue when
4265 frame pointer is used to access red zone area. Do not emit blockage
4266 when profiling, it is emitted in generic code.
4267 (ix86_expand_epilogue): Emit memory_blockage at the beginning of
4268 function epilogue when frame pointer is used to access red zone area.
4269
486a1b16 42702009-02-11 Paolo Bonzini <bonzini@gnu.org>
4271
b899e808 4272 PR target/38824
486a1b16 4273 * config/i386/i386.md: Add two new peephole2 to avoid mov followed
4274 by arithmetic with memory operands.
4275 * config/i386/predicates.md (commutative_operator): New.
4276
560db68e 42772009-02-10 Janis Johnson <janis187@us.ibm.com>
4278
4279 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
4280 bulleted lists.
4281
892fdb03 42822009-02-10 Eric Botcazou <ebotcazou@adacore.com>
4283
4284 * alias.h (record_alias_subset): Declare.
4285 * alias.c (record_alias_subset): Make global.
4286
4ef8346d 42872009-02-10 Nick Clifton <nickc@redhat.com>
4288
4289 * tree-parloops.c: Change license to GPLv3.
4290 * ipa-struct-reorg.c: Change license to GPLv3.
4291 * ipa-struct-reorg.h: Change license to GPLv3.
4292
fc92befb 42932009-02-10 Steve Ellcey <sje@cup.hp.com>
4294
4295 PR c/39084
4296 * c-decl.c (start_struct): Return NULL on error.
4297
e15deb4b 42982009-02-10 Jakub Jelinek <jakub@redhat.com>
4299
16ccc50c 4300 PR middle-end/39124
4301 * cfgloopmanip.c (remove_path): Call remove_bbs after
4302 cancel_loop_tree, not before it.
4303
e15deb4b 4304 PR target/39139
73c5e2aa 4305 * function.h (struct function): Add has_local_explicit_reg_vars bit.
e15deb4b 4306 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
4307 VAR_DECLs were seen.
4308 * tree-ssa-live.c (remove_unused_locals): Recompute
4309 cfun->has_local_explicit_reg_vars.
4310 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
4311 copies or clearings if cfun->has_local_explicit_reg_vars.
4312
a9c1f295 43132009-02-10 Uros Bizjak <ubizjak@gmail.com>
4314
4315 PR target/39118
4316 * config/i386/i386.c (expand_prologue): Emit blockage at the end
4317 of function prologue when frame pointer is used to access
4318 red zone area.
4319
c85b2faf 43202009-02-10 Richard Guenther <rguenther@suse.de>
4321
4322 PR middle-end/39127
4323 * gimplify.c (gimple_regimplify_operands): Always look if
4324 we need to create a temporary.
4325
8d093dba 43262009-02-10 Richard Guenther <rguenther@suse.de>
4327
4328 PR tree-optimization/39132
4329 * tree-loop-distribution.c (todo): New global var.
4330 (generate_memset_zero): Trigger TODO_rebuild_alias.
4331 (tree_loop_distribution): Return todo.
4332
edd93683 43332009-02-10 H.J. Lu <hongjiu.lu@intel.com>
4334
4335 PR target/39119
4336 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
4337 (x86_64_reg_class_name): Removed.
4338 (classify_argument): Return 0 if bytes > 32. Return 0 if the
4339 first one isn't X86_64_SSE_CLASS or any other ones aren't
4340 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn
4341 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
4342 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS
4343 and 3 X86_64_SSEUP_CLASS.
4344 (construct_container): Remove X86_64_AVX_CLASS. Handle 4
4345 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
4346
2b6975a6 43472009-02-10 Ben Elliston <bje@au.ibm.com>
4348
4349 * config/rs6000/rs6000.md (allocate_stack): Always use an update
4350 form instruction to update the stack back chain word, even if the
4351 user has disabled the generation of update instructions.
4352 (movdi_<mode>_update_stack): New.
4353 (movsi_update_stack): Likewise.
4354 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
4355 always use an update form instruction to update the stack back
4356 chain word.
4357
a72d4b7d 43582009-02-09 Sebastian Pop <sebastian.pop@amd.com>
4359
4360 PR middle-end/38953
73c5e2aa 4361 * graphite.c (if_region_set_false_region): After moving a region in
4362 the false branch of a condition, remove the empty dummy basic block.
a72d4b7d 4363 (gloog): Remove wrong fix for PR38953.
4364
1f915911 43652009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
4366
4367 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
4368 generation due to implicit sign extension.
4369
bbe1fc8f 43702009-02-09 Eric Botcazou <ebotcazou@adacore.com>
4371
4372 PR middle-end/38981
4373 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
4374 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
4375
fd494669 43762009-02-09 Richard Guenther <rguenther@suse.de>
4377
4378 PR middle-end/35202
4379 * convert.c (convert_to_real): Disable (float)fn((double)x)
4380 to fnf(x) conversion if errno differences may occur and
4381 -fmath-errno is set.
4382
a64bd5e4 43832009-02-07 Anatoly Sokolov <aesok@post.ru>
4384
4385 * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
4386 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
4387 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
4388
9e830260 43892009-02-06 Joseph Myers <joseph@codesourcery.com>
4390
4391 PR c/35434
4392 * c-common.c (handle_alias_attribute): Disallow attribute for
4393 anything not a FUNCTION_DECL or VAR_DECL.
4394
42dc1cf5 43952009-02-06 Janis Johnson <janis187@us.ibm.com>
4396
4397 PR c/39035
4398 * real.c (do_compare): Special-case compare of zero against
4399 decimal float value.
4400
0af147a4 44012009-02-06 Joseph Myers <joseph@codesourcery.com>
4402
4403 PR c/36432
4404 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
4405 as indicating flexible array members unless the field itself is
4406 being declarared as the incomplete array.
4407
68b2f511 44082009-02-06 Jan Hubicka <jh@suse.cz>
4409
4410 PR tree-optimization/38844
4411 * ipa-inline.c (try_inline): Stop inlining recursion when edge
4412 is already inlined.
4413
dac59c04 44142009-02-06 Richard Guenther <rguenther@suse.de>
4415
4416 PR middle-end/38977
4417 * tree-cfg.c (need_fake_edge_p): Force a fake edge for
4418 fork because we may expand it as __gcov_fork.
4419
2314f2ef 44202009-02-06 Nick Clifton <nickc@redhat.com>
4421
a9c1f295 4422 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
2314f2ef 4423
3d2d7de7 44242009-02-06 Paolo Bonzini <bonzini@gnu.org>
4425
4426 PR tree-optimization/35659
4427 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
4428 vn_phi_eq): Shortcut if hashcode does not match.
4429 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
4430 NULL operands.
4431 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
4432 and avoid iterative_hash_expr.
4433 (FOR_EACH_VALUE_ID_IN_SET): New.
4434 (value_id_compare): Remove.
4435 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
4436 sort expressions by value id.
4437
07d27c98 44382009-02-05 Kaz Kojima <kkojima@gcc.gnu.org>
4439
4440 PR target/38991
4441 * config/sh/predicates.md (general_movsrc_operand): Don't check
4442 the subreg of system registers here.
4443
f014e39d 44442009-02-05 Jakub Jelinek <jakub@redhat.com>
4445
4446 PR c++/39106
4447 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
4448 on the copied decl.
4449
99e9b19f 44502009-02-05 Paolo Bonzini <bonzini@gnu.org>
4451
4452 PR rtl-optimization/39110
4453 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
4454 addresses, not aligned ones.
4455
707dd2b0 44562009-02-05 Daniel Berlin <dberlin@dberlin.org>
4457 Richard Guenther <rguenther@suse.de>
4458
4459 PR tree-optimization/39100
4460 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
4461 comment says and add edges.
4462
c34f8a78 44632009-02-05 Joseph Myers <joseph@codesourcery.com>
4464
4465 PR c/35435
4466 * c-common.c (handle_tls_model_attribute): Ignore attribute for
4467 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
4468
7f28086c 44692009-02-04 Tobias Grosser <grosser@fim.uni-passau.de>
4470
4471 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
4472 sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
4473 register_bb_in_sese, new_sese, free_sese): Moved.
4474 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
4475 outermost_loop_in_scop, build_scop_iteration_domain,
4476 expand_scalar_variables_ssa_name, get_vdef_before_scop,
4477 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
4478 Use loop_in_sese_p instead of loop_in_scop_p.
4479 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
4480 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
4481 (scopdet_basic_block_info): Fix bug in scop detection.
4482 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
4483 eq_loop_to_cloog_loop): Remove.
4484 (nb_loops_around_loop_in_scop, nb_loop
4485 ref_nb_loops): Moved here...
4486 * graphite.h (ref_nb_loops): ... from here.
4487 (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
4488 (loop_domain_dim, loop_iteration_vector_dim): Remove.
4489 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
4490 * testsuite/gcc.dg/graphite/scop-19.c: New
4491
0eee494e 44922009-02-04 Paolo Bonzini <bonzini@gnu.org>
4493 Hans-Peter Nilsson <hp@axis.com>
4494
4495 PR rtl-optimization/37889
4496 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
4497 Move offset handling from PLUS to before the switch. Use new
4498 arguments when considering SYMBOL_REFs too.
4499 (rtx_addr_can_trap_p): Pass dummy offset and size.
4500 (enum may_trap_p_flags): Remove.
4501 (may_trap_p_1): Pass size from MEM_SIZE.
4502
4503 PR rtl-optimization/38921
4504 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
4505 * rtl.h (may_trap_after_code_motion_p): Delete prototype.
4506 * rtlanal.c (may_trap_after_code_motion_p): Delete.
4507 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
4508
810c9e65 45092009-02-04 H.J. Lu <hongjiu.lu@intel.com>
4510
4511 AVX Programming Reference (January, 2009)
4512 * config/i386/sse.md (*vpclmulqdq): New.
4513
73d3c8f2 45142009-02-04 Jakub Jelinek <jakub@redhat.com>
4515
4516 PR tree-optimization/38977
4517 PR gcov-profile/38292
6db00048 4518 * calls.c (special_function_p): Disregard __builtin_ prefix.
73d3c8f2 4519
fe898823 45202009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com>
4521
4522 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
4523 non-indexable addresses even before reload.
4524
51428eb1 45252009-02-03 Joseph Myers <joseph@codesourcery.com>
4526
4527 PR c/29129
4528 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
4529 as having variable size. Do not give an error for unnamed
4530 parameters with [*] declarators. Give a warning for type names
4531 with [*] declarators and mark them as variable size.
4532 * c-parser.c (c_parser_sizeof_expression): Do not give an error
4533 for sizeof applied to [*] type names.
4534
4f4106ef 45352009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com>
4536
4537 PR C++/36607
4538 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
4539
5a371c77 45402009-02-03 Jakub Jelinek <jakub@redhat.com>
4541
4542 * gcc.c (process_command): Update copyright notice dates.
4543 * gcov.c (print_version): Likewise.
4544 * gcov-dump.c (print_version): Likewise.
4545 * mips-tfile.c (main): Likewise.
4546 * mips-tdump.c (main): Likewise.
4547
e5d71db4 45482009-02-03 Joseph Myers <joseph@codesourcery.com>
4549
4550 PR c/35433
4551 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
4552 for composite type involving a zero-length array type.
4553
14e882ea 45542009-02-03 Jakub Jelinek <jakub@redhat.com>
4555
fbcb9be4 4556 PR target/35318
4557 * function.c (match_asm_constraints_1): Skip over
4558 initial optional % in the constraint.
4559
14e882ea 4560 PR inline-asm/39059
4561 * c-parser.c (c_parser_postfix_expression): If fixed point is not
4562 supported, don't accept FIXED_CSTs.
4563 * c-decl.c (finish_declspecs): Error if fixed point is not supported
4564 and _Sat is used without _Fract/_Accum. Set specs->type to
4565 integer_type_node for cts_fract/cts_accum if fixed point is not
4566 supported.
4567
f4b3ca46 45682009-02-02 Catherine Moore <clm@codesourcery.com>
4569
a9c1f295 4570 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
f4b3ca46 4571
0a959c1d 45722009-02-02 Richard Sandiford <rdsandiford@googlemail.com>
4573
4574 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
4575 (ABI_HAS_64BIT_SYMBOLS): Use it.
4576 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
4577
2f02c19f 45782009-02-02 Paul Brook <paul@codesourcery.com>
4579
4580 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
4581
cde8f1c8 45822009-02-02 Jakub Jelinek <jakub@redhat.com>
4583
4584 PR inline-asm/39058
4585 * recog.h (asm_operand_ok): Add constraints argument.
4586 * recog.c (asm_operand_ok): Likewise. If it is set, for digits
4587 recurse on matching constraint.
4588 (check_asm_operands): Pass constraints as 3rd argument to
4589 asm_operand_ok. Don't look up matching constraint here.
4590 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
4591 to asm_operand_ok.
4592
e366f125 45932009-02-02 Ben Elliston <bje@au.ibm.com>
4594
4595 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
4596 TARGET_NARROW_VOLATILE_BITFIELD macro names.
4597
a3caf955 45982009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
4599
a2853397 4600 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
4601 information. Remove some obsolete information. Reorganize.
4602
a3caf955 4603 * config/pa/fptr.c: Revert license to GPL 2.
4604 * config/pa/milli64.S: Likewise.
4605
8cae609c 46062009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
4607
4608 PR target/38904
4609 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass
4610 LIBRARY name in, instead of hard-coding it.
4611 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an
4612 extra target make frag to tmake_files according to EH model.
4613 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise.
4614 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target
4615 frags that define makefile variable EH_MODEL appropriately.
4616 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment.
4617 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or
4618 to "-sjlj" according to type of EH configured.
4619 (LIBGCC_SONAME): Concatenate it to shared library base name.
4620 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or
4621 to "_sjlj" according to type of EH configured.
4622 (LIBGCC_SONAME): Concatenate it to shared library base name.
4623 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL.
4624 (SHLIB_LINK): Add missing semicolon to if-else construct.
4625 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
4626 string value of "pe_dll" command-line option.
4627 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper.
4628 (SHLIB_SONAME): Use it when overriding t-cygming default.
4629 (SHLIB_IMPLIB): Override t-cygming default.
4630 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as
4631 string value of "pe_dll" command-line option.
4632
27ed8c87 46332009-01-31 Dave Korn <dave.korn.cygwin@gmail.com>
4634
4635 PR target/38952
4636 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
6db00048 4637 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
27ed8c87 4638
98de8b69 46392009-01-31 Richard Guenther <rguenther@suse.de>
4640
4641 PR tree-optimization/38937
4642 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
4643 computing the transitive closure.
4644
c019af4d 46452009-01-30 Richard Guenther <rguenther@suse.de>
4646
4647 PR tree-optimization/39041
4648 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
4649 Propagate variable indices only if the types match for this stmt.
4650
709cdea6 46512009-01-30 Jakub Jelinek <jakub@redhat.com>
4652
4653 PR target/39013
4654 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
4655 inline but never defined.
4656
a7a2dd08 46572009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com>
26e8b800 4658
4659 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
4660 (*insv_h_di_reg_extimm): New insn.
4661 (*insv_l<mode>_reg_extimm): New insn.
4662
46632009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
3b31ea78 4664
4665 * config/picochip/picochip.c (flag_conserve_stack): set
4666 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
4667 fconserve-stack. Reduce call-overhead used by inliner.
4668
26e8b800 46692009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com>
c45dd88a 4670
4671 PR/38157
4672 * common.opt (flag_conserve_stack): Initialised to zero.
4673
dbc128e8 46742009-01-30 Kai Tietz <kai.tietz@onevision.com>
4675
4676 PR/39002
4677 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
4678 (ix86_expand_epilogue): Take nsseregs in account to use proper restore
4679 method.
4680
ac50b6ef 46812009-01-29 H.J. Lu <hongjiu.lu@intel.com>
4682
4683 * ira-color.c (allocno_reload_assign): Update comments.
4684 * regmove.c (regmove_optimize): Likewise.
4685
4686 * ra.h: Removed.
4687
3bef4012 46882009-01-29 Robert Millan <rmh@aybabtu.com>
4689
4690 * gcc/config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
4691 * gcc/config/i386/kopensolaris-gnu.h: New file. Undefine
4692 `MD_UNWIND_SUPPORT'.
4693 * gcc/config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
4694
82b19557 46952009-01-29 Kazu Hirata <kazu@codesourcery.com>
4696
4697 PR tree-optimization/39007
4698 * tree-loop-distribution.c (generate_builtin): Use
4699 recompute_dominator to compute the immediate dominator of the
4700 basic block just after the loop.
4701
a330630f 47022009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
53ae77bf 4703
4704 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
4705 (ASM_OUTPUT_DWARF_PCREL): Define.
4706
a330630f 47072009-01-29 Vladimir Makarov <vmakarov@redhat.com>
cf709bf6 4708
4709 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
4710 * doc/passes.texi: Remove entries about regclass, local-alloc, and
4711 global. Modify entries about regmove and IRA.
4712
4713 * ra-conflict.c: Remove the file.
4714
4715 * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
4716
4717 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
4718 (pass_regclass_init): Rename to pass_reginfo_init.
4719
4720 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
4721
4722 * toplev.h (flag_ira): Remove.
4723
4724 * caller-save.c (setup_save_areas): Remove flag_ira.
4725
6db00048 4726 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
cf709bf6 4727
4728 * global.c: Remove the file.
4729
aca60c7b 4730 * opts.c (decode_options): Remove flag_ira.
cf709bf6 4731
4732 * hard-reg-set.h (losing_caller_save_reg_set): Remove.
4733
4734 * regmove.c: Modify file description.
4735 (find_use_as_address, try_auto_increment): Define them only if
4736 AUTO_INC_DEC is defined.
4737 (replacement_quality, replace_in_call_usage, fixup_match_1,
4738 stable_and_no_regs_but_for_p): Remove.
4739 (reg_set_in_bb): Make it static.
4740 (regmove_optimize): Remove flag_ira and code which worked for
4741 !flag_ira.
4742
4743 * local-alloc.c: Remove the file.
4744
4745 * common.opt (fira): Remove.
4746
4747 * ira.c: Include except.h.
4748 (eliminable_regset): Move from global.c.
4749 (mark_elimination): Ditto. Remove flag_ira.
4750 (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
4751 equiv_mem_modified, validate_equiv_mem_from_store,
4752 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
4753 contains_replace_regs, memref_referenced_p, memref_used_between_p,
4754 no_equiv, recorded_label_ref): Move from local-alloc.c.
4755 (update_equiv_regs): Ditto. Make it static.
4756 (print_insn_chain, print_insn_chains): Move it from global.c.
6db00048 4757 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira.
cf709bf6 4758 (build_insn_chain): Ditto. Make it static.
4759 (ra_init_live_subregs): Move from ra-conflict.c. Make it static.
4760 Rename to init_live_subregs.
4761 (gate_ira): Remove flag_ira.
4762
4763 * regclass.c: Rename reginfo.c. Change file description.
4764 (FORBIDDEN_INC_DEC_CLASSES): Remove.
a9c1f295 4765 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
cf709bf6 4766 (init_reg_sets_1): Remove code for evaluation of
4767 reg_class_superclasses and losing_caller_save_reg_set.
4768 (init_regs): Remove init_reg_autoinc.
4769 (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
4770 ok_for_base_p_nonstrict): Remove.
6db00048 4771 (regclass_init): Rename to reginfo_init. Don't initialize init_cost.
cf709bf6 4772 (pass_regclass_init): Rename to pass_reginfo_init. Modify
4773 corresponding entries.
4774 (dump_regclass, record_operand_costs, scan_one_insn,
4775 init_reg_autoinc, regclass, record_reg_classes, copy_cost,
4776 record_address_regs, auto_inc_dec_reg_p): Remove.
4777 (gt-regclass.h): Rename to gt-reginfo.h.
4778
4779 * rtl.h (dump_global_regs, retry_global_alloc,
6db00048 4780 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
cf709bf6 4781
4782 * Makefile.in (RA_H): Remove.
4783 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
4784 Rename regclass.o to reginfo.o.
4785 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to
4786 gt-reginfo.h.
4787 (global.o, local-alloc.o, ra-conflict.o): Remove entries.
4788 (GTFILES): Rename regclass.c to reginfo.c.
4789
4790 * passes.c (init_optimization_passes): Remove pass_local_alloc and
6db00048 4791 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init.
cf709bf6 4792
4793 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
4794 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
4795 Remove flag_ira.
a7a2dd08 4796 (finish_spills): Ditto. Remove code for !flag_ira.
cf709bf6 4797
237805dd 47982009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com>
b85ccd2c 4799
4800 PR middle-end/35854
4801 * doc/invoke.texi (rtl debug options): Complete rewrite.
4802 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
4803 to auto_inc_dec".
4804 * mode-switching.c (pass_mode_switching): Rename pass from
4805 "mode-sw" to "mode_sw".
4806 * except.c (pass_convert_to_eh_ranges): Rename pass from
4807 "eh-ranges" to "eh_ranges".
4808 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
4809 to "subreg1".
4810
4811
de353418 48122009-01-29 Andrey Belevantsev <abel@ispras.ru>
4813 Alexander Monakov <amonakov@ispras.ru>
4814
4815 PR middle-end/38857
4816 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
4817 register.
4818 (move_exprs_to_boundary): Change return type and pass through
4819 should_move from move_op. Relax assert. Update usage ...
4820 (schedule_expr_on_boundary): ... here. Use should_move instead of
4821 cant_move.
4822 (move_op_orig_expr_found): Indicate that insn was disconnected from
4823 stream.
4824 (code_motion_process_successors): Do not call after_merge_succs
4825 callback if original expression was not found when traversing any of
4826 the branches.
4827 (code_motion_path_driver): Change return type. Update prototype.
4828 (move_op): Update comment. Add a new parameter (should_move). Update
4829 prototype. Set *should_move based on indication provided by
4830 move_op_orig_expr_found.
4831
2fdf186f 48322009-01-28 Pat Haugen <pthaugen@us.ibm.com>
4833
4834 * doc/invoke.texi (avoid-indexed-addresses): Document new option.
4835 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
4836 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
4837 * config/rs6000/rs6000.c (rs6000_override_options): Default
4838 avoid-indexed-addresses on for Power6, off for everything else.
4839 (avoiding_indexed_address_p): New function.
4840 (rs6000_legitimize_address): Use it.
4841 (rs6000_legitimate_address): Likewise.
4842 * config/rs6000/rs6000.md (movXX_updateX): Likewise
4843
c6b3a2da 48442009-01-28 Kazu Hirata <kazu@codesourcery.com>
4845
4846 PR tree-optimization/38997
4847 * tree-loop-distribution.c (generate_memset_zero): Use
4848 POINTER_PLUS_EXPR for a pointer addition.
4849
21676467 48502009-01-28 Andreas Krebbel <krebbel1@de.ibm.com>
4851
4852 * config/s390/s390.md (bswap<mode>2): New pattern added.
4853
d3bada4b 48542009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
4855
4856 * config/s390/s390.md (*tls_load_31): Added type attribute.
4857
9925e185 48582009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
4859
4860 * config/s390/s390.md: Fix a few comments.
4861
94ab3c8a 48622009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com>
4863
4864 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
4865 (*tm<mode>_full): Fixed z10prop attribute.
4866 (*tst<mode>_extimm): Fixed z10prop attribute.
4867 (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
4868 (*tstqiCCT_cconly): Fixed z10prop attribute.
4869 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
4870 (*movsi_larl): Fixed z10prop attribute.
4871 (*movsi_zarch): Fixed z10prop attribute.
4872 (*movsi_eas): Fixed z10prop attribute.
4873 (*movhi): Fixed z10prop attribute.
4874 (*movqi): Fixed z10prop attribute.
4875 (*movstrictqi): Fixed z10prop attribute.
4876 (*mov<mode>): Fixed z10prop attribute.
4877 (*movcc): Fixed z10prop attribute.
4878 (*sethighpartdi_64): Fixed z10prop attribute.
4879 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
4880 (*negdi2_sign_cc): Fixed z10prop attribute.
4881 (*negdi2_sign): Fixed z10prop attribute.
4882 (*absdi2_sign_cc): Fixed z10prop attribute.
4883 (*absdi2_sign): Fixed z10prop attribute.
4884 (*negabsdi2_sign_cc): Fixed z10prop attribute.
4885 (*negabsdi2_sign): Fixed z10prop attribute.
4886 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
4887 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
4888 (doloop_si64): Fixed z10prop attribute.
4889 (doloop_si31): Fixed z10prop attribute.
4890 (doloop_long): Fixed z10prop attribute.
4891 (indirect_jump): Fixed z10prop attribute.
4892 (nop): Fixed z10prop attribute.
4893 (main_base_64): Fixed z10prop attribute.
4894 (reload_base_64): Fixed z10prop attribute.
4895
d1b5f73a 48962009-01-28 Jakub Jelinek <jakub@redhat.com>
4897
4898 PR rtl-optimization/38740
a7a2dd08 4899 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
4900 if !optimize.
d1b5f73a 4901 * config/mips/mips.c (mips_reorg): Likewise.
4902
3dc4c394 49032009-01-28 Richard Guenther <rguenther@suse.de>
4904
4905 PR tree-optimization/38926
4906 * tree-ssa-pre.c (add_to_value): Assert we add only expressions
4907 with the correct value id to a value.
4908 (do_regular_insertion): Use the value number of edoubleprime
4909 for the value number of the expr.
4910
4911 Revert
4912 2008-08-21 Richard Guenther <rguenther@suse.de>
6db00048 4913
c9e47fec 4914 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
4915 a PHI ask VN if it is already available.
4916 * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
4917 * tree-ssa-sccvn.c (vn_phi_lookup): Export.
3dc4c394 4918
61349811 49192009-01-28 Jakub Jelinek <jakub@redhat.com>
4920
4921 PR middle-end/38934
4922 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
4923 set to varying whenever max has TREE_OVERFLOW set, similarly
4924 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
4925
a98de126 49262009-01-28 Richard Guenther <rguenther@suse.de>
4927
4928 PR middle-end/38908
4929 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
4930 uninitialized aggregate uses in call arguments.
4931
7f70ef19 49322009-01-28 Paolo Bonzini <bonzini@gnu.org>
4933
4934 PR tree-optimization/38984
4935 * tree-ssa-structalias.c (get_constraints_for_1): Do not use
4936 the nothing_id variable if -fno-delete-null-pointer-checks.
4937
8d4c7d80 49382009-01-28 Uros Bizjak <ubizjak@gmail.com>
4939
4940 PR target/38988
4941 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
4942 (set_got_offset_rex64): Ditto.
4943
2687629f 49442009-01-27 H.J. Lu <hongjiu.lu@intel.com>
4945
4946 PR target/38941
4947 * doc/extend.texi: Improve local variable with asm reg.
4948
7a6a48c9 49492009-01-27 Adam Nemet <anemet@caviumnetworks.com>
4950
4951 * c.opt (Wpacked-bitfield-compat): Change init value to -1.
4952 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
4953 was not supplied then set warn_packed_bitfield_compat to the
4954 default value of 1.
4955 * stor-layout.c (place_field): Check warn_packed_bitfield_compat
4956 against 1.
4957
57a28426 49582009-01-27 Richard Guenther <rguenther@suse.de>
4959
4960 PR tree-optimization/38503
4961 * cfgexpand.c (expand_gimple_basic_block): Ignore
4962 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
4963 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
4964 variables that cannot have TBAA applied.
4965 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
4966 statements.
4967
c9e47fec 49682009-01-27 Uros Bizjak <ubizjak@gmail.com>
9a7965a1 4969
4970 PR middle-end/38969
4971 * calls.c (initialize_argument_information): Do not wrap complex
4972 arguments in SAVE_EXPR.
4973
f1d36ba6 49742009-01-26 Andreas Tobler <a.tobler@schweiz.org>
4975
4976 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
c3f75928 4977 (INSTALL_LIBGCC): Revert typo commit.
f1d36ba6 4978
234294b2 49792009-01-26 Richard Guenther <rguenther@suse.de>
4980
4981 PR tree-optimization/38745
4982 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
4983 from special handling.
4984
1fdf9a6c 49852009-01-26 Richard Guenther <rguenther@suse.de>
4986
4987 PR tree-optimization/38745
4988 * tree-ssa.c (execute_update_addresses_taken): Do not include
4989 variables that cannot possibly be a register in not_reg_needs.
4990 Do not clear TREE_ADDRESSABLE on vars that may not become
4991 registers.
4992 * tree-ssa.c (update_alias_info_1): Include those in the set
4993 of addressable vars.
4994
f0e4d727 49952009-01-26 Richard Guenther <rguenther@suse.de>
4996
4997 PR middle-end/38851
4998 * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
4999 * tree-ssa-dse.c: Include langhooks.h
5000 (execute_simple_dse): Remove stores with zero size.
5001
e7e7c0fe 50022009-01-24 Jakub Jelinek <jakub@redhat.com>
5003
5004 PR c/38957
5005 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
5006 as PLUS_EXPR.
5007
e6d46e27 50082009-01-24 Julian Brown <julian@codesourcery.com>
5009
5010 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
5011 config/arm/linux-atomic.c.
5012 * config/arm/linux-atomic.c: New.
5013
9a6bab39 50142009-01-24 Eric Botcazou <ebotcazou@adacore.com>
5015
5016 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
5017 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
5018 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
5019
1d86d4d7 50202009-01-24 H.J. Lu <hongjiu.lu@intel.com>
5021
5022 PR c/38938
d83d28c1 5023 * c-opts.c (c_common_handle_option): Update warn_pointer_sign
1d86d4d7 5024 properly.
5025
8db3fb7b 50262009-01-24 Sebastian Pop <sebastian.pop@amd.com>
5027
5028 PR tree-optimization/38953
5029 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
5030 (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
5031 (gloog): Split the exit of the scop when the scop exit is a loop exit.
5032 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
5033 changed the CFG.
5034
c52acdd2 50352009-01-24 Paul Brook <paul@codesourcery.com>
5036
5037 * config/arm/neon.md (neon_type): Move to arm.md.
5038 (neon_mov<VSTRUCT>): Add neon_type attribute.
5039 * config/arm/arm.md (neon_type): Move to here.
5040 (conds): Add "unconditioal" and use as default for NEON insns.
5041
f3d84bf8 50422009-01-24 Ben Elliston <bje@au.ibm.com>
5043
5044 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
5045 void *' warning from -Wc++-compat.
5046 * Makefile.in (dominance.o-warn): Remove.
5047
a330630f 50482009-01-23 Paolo Bonzini <bonzini@gnu.org>
cd30b839 5049
5050 PR tree-optimization/38932
5051 * fold-const.c (fold_unary_ignore_overflow): New.
5052 * tree.h (fold_unary_ignore_overflow): Declare.
5053 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
5054 * tree-ssa-sccvn.c (visit_reference_op_load,
5055 simplify_unary_expression): Likewise.
5056
9fd767c5 50572009-01-22 Adam Nemet <anemet@caviumnetworks.com>
5058
5059 * c-decl.c (finish_struct): Move code to set DECL_PACKED after
5060 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields
5061 regardless of their type.
5062 * c-common.c (handle_packed_attribute): Don't ignore packed on
5063 bitfields.
5064 * c.opt (Wpacked-bitfield-compat): New warning option.
5065 * stor-layout.c (place_field): Warn if offset of a field changed.
5066 * doc/extend.texi (packed): Mention the ABI change.
5067 * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
5068 (Warning Options): Add it to the list.
5069
71ee8477 50702009-01-22 H.J. Lu <hongjiu.lu@intel.com>
5071
5072 * c-opts.c (c_common_post_options): Fix a typo in comments.
5073
1a07ca64 50742009-01-22 Steve Ellcey <sje@cup.hp.com>
5075
5076 PR middle-end/38615
5077 * gimplify.c (gimplify_init_constructor): Fix promotion of const
5078 variables to static.
5079 * doc/invoke.texi (-fmerge-all-constants): Update description.
5080
a6f6ff30 50812009-01-22 Uros Bizjak <ubizjak@gmail.com>
5082
5083 PR target/38931
5084 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
5085 (*movdi_1_rex64): Use type "mmx" for alternative 5.
5086
93fa3baa 50872009-01-22 Richard Earnshaw <rearnsha@arm.com>
5088
5089 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
5090 a word boundary.
5091 (LOCAL_ALIGNMENT): Similarly.
5092
da941808 50932009-01-22 Mark Shinwell <shinwell@codesourcery.com>
a6f6ff30 5094 Joseph Myers <joseph@codesourcery.com>
da941808 5095
5096 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
5097 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
5098 * config/arm/arm-tune.md: Regenerate.
5099 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
5100 -march=iwmmxt2.
5101
00bd398c 51022009-01-22 Mark Shinwell <shinwell@codesourcery.com>
5103
5104 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
5105 version number to five.
5106
b2694749 51072009-01-22 Dodji Seketeli <dodji@redhat.com>
5108
5109 PR c++/38930
aca60c7b 5110 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
b2694749 5111 * c-common.c (set_underlying_type): Likewise.
5112 (is_typedef_decl ): Likewise
5113 * tree.h: Likewise
5114 (set_underlying_type): Likewise.
5115 (is_typedef_type): Likewise.
5116
8aad8efd 51172009-01-21 Vladimir Makarov <vmakarov@redhat.com>
5118
5119 PR middle-end/38587
5120 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
5121 crossing setjmps.
5122
8f057ffc 51232009-01-21 Dave Korn <dave.korn.cygwin@gmail.com>
5124
5125 PR bootstrap/37660
5126 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro.
5127 (LIBGCC_SPEC): Don't define.
5128 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC.
5129
f92492f7 51302009-01-21 Uros Bizjak <ubizjak@gmail.com>
5131
5132 PR rtl-optimization/38879
5133 * alias.c (base_alias_check): Unaligned access via AND address can
5134 alias all surrounding object types except those with sizes equal
5135 or wider than the size of unaligned access.
5136
c973dc47 51372009-01-21 Dodji Seketeli <dodji@redhat.com>
5138
5139 PR c++/26693
aca60c7b 5140 * c-decl.c (clone_underlying_type): Move this ...
c973dc47 5141 * c-common.c (set_underlying_type): ... here.
f92492f7 5142 Also, make sure the function properly sets TYPE_STUB_DECL() on
c973dc47 5143 the newly created typedef variant type.
5144 (is_typedef_decl ): New entry point.
5145 * tree.h: Added a new member member_types_needing_access_check to
5146 struct tree_decl_non_common.
5147 (set_underlying_type): New entry point.
5148 (is_typedef_type): Likewise.
5149
6e93a4c8 51502009-01-21 Bingfeng Mei <bmei@broadcom.com>
5151
5152 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
5153 Check whether two instructions have memory references that
5154 belong to conflicting alias sets. walk_mems_1 and walk_mems_2
5155 are helper functions for traversing.
5156 * alias.h (insn_alias_sets_confilict_p): New prototypes.
5157 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
5158 not to draw dependency edge for instructions with non-conflicting
5159 alias sets.
5160
a698e1ec 51612009-01-20 Joseph Myers <joseph@codesourcery.com>
5162
5163 PR other/38758
a7a2dd08 5164 * longlong.h: Update copyright years. Use soft-fp license notice.
5165 Sync __clz_tab declaration with glibc.
a698e1ec 5166
b84fdfe2 51672009-01-20 Steve Ellcey <sje@cup.hp.com>
5168
5169 PR target/30687
5170 * doc/extend.texi (syscall_linkage): New.
5171 (version_id): Modify.
5172
c4d6ac81 51732009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com>
f92492f7 5174 Richard Guenther <rguenther@suse.de>
c4d6ac81 5175
5176 PR tree-optimization/38747
5177 PR tree-optimization/38748
5178 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
5179 conversion if the base address is an indirect reference and the
5180 aliasing sets could cause issues.
5181
d3399492 51822009-01-20 Sebastian Pop <sebastian.pop@amd.com>
5183
5184 * common.opt (fgraphite, fgraphite-identity): Add comment for
5185 explaining why these options are not documented.
5186
aa3f15b6 51872009-01-20 Sebastian Pop <sebastian.pop@amd.com>
5188
5189 * graphite.c (stmt_simple_for_scop_p): Also handle cases when
5190 gimple_call_lhs is NULL.
5191
a330630f 51922009-01-20 Paolo Bonzini <bonzini@gnu.org>
e077413c 5193
5194 PR target/38868
5195 * emit-rtl.c (adjust_address_1): Make sure memref is never
5196 overwritten.
5197
8c2fa2f7 51982009-01-20 Ben Elliston <bje@au.ibm.com>
5199
5200 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
f92492f7 5201 const qualifier from arg parameter. Remove unnecessary cast to char *.
8c2fa2f7 5202 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
5203 const qualifier from arg 2.
5204
94cd11b9 52052009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
5206
f92492f7 5207 * config/darwin.h: Add static-libgfortran to LINK_SPEC.
94cd11b9 5208
c950adc6 52092009-01-19 Vladimir Makarov <vmakarov@redhat.com>
5210
5211 PR c/38869
5212 * rtl.h (reinit_regs): New prototype.
5213 * regclass.c: Include ira.h.
5214 (reinit_regs): New.
5215 * Makefile.in (regclass.o): Add ira.h.
5216 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
5217
02421213 52182009-01-18 H.J. Lu <hongjiu.lu@intel.com>
5219
5220 PR target/38736
5221 * c-common.c (handle_aligned_attribute): Use
5222 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
5223 default alignment value.
5224
5225 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
5226
5227 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
5228 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
5229
5230 * doc/extend.texi: Update __attribute__ ((aligned)). Document
5231 __BIGGEST_ALIGNMENT__.
5232
5233 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
5234
2ac47fdf 52352009-01-18 Richard Guenther <rguenther@suse.de>
5236
5237 PR tree-optimization/38819
5238 * tree-flow.h (operation_could_trap_helper_p): Declare.
5239 * tree-eh.c (operation_could_trap_helper_p): Export.
5240 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
5241 * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
5242 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
5243 are about to insert a possibly trapping instruction and fail
5244 in this case.
5245
b338dafb 52462009-01-18 Andreas Schwab <schwab@suse.de>
5247
5248 * doc/install.texi (Configuration): Remove obsolete paragraph
5249 about use of --with-gnu-ld with --with-gnu-as.
5250
91f54ca3 52512009-01-18 Kazu Hirata <kazu@codesourcery.com>
5252
5253 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
5254 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
5255 Follow spelling conventions.
5256
76cd80c7 52572009-01-18 Ben Elliston <bje@au.ibm.com>
5258
5259 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
5260 C++ warning about implicit conversion from void * to struct
5261 bitmap_head_def *.
5262 (bitmap_obstack_free): Likewise for bitmap_element *.
df1573c4 5263 * Makefile.in (bitmap.o-warn): Remove.
76cd80c7 5264
89bcc083 52652009-01-17 Dave Korn <dave.korn.cygwin@gmail.com>
5266
5267 * Makefile.in (BACKENDLIBS): Reorder to match dependencies.
5268
3c560c26 52692009-01-17 Sebastian Pop <sebastian.pop@amd.com>
5270 Tobias Grosser <tobi.grosser@amd.com>
5271
5272 * graphite.c (graphite_trans_scop_block): Do not block single
5273 nested loops.
5274
e106fc2e 52752009-01-16 Alexandre Oliva <aoliva@redhat.com>
5276
5277 * ebitmap.h (ebitmap_iter_init): Initialize all fields.
5278 * ipa-struct-reorg.c (gen_struct_type): Replace known-true
5279 test with assertion.
5280
cd6342bd 52812009-01-16 Richard Guenther <rguenther@suse.de>
5282
5283 PR tree-optimization/38835
5284 PR middle-end/36227
5285 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
5286 and INT + PTR -> (INT)(PTR p+ INT) folding.
5287 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
5288
298bbd8d 52892009-01-16 Adam Nemet <anemet@caviumnetworks.com>
5290
5291 PR target/38554
5292 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
5293 the subreg from a lowpart subreg if it is also casting the value.
5294
9e5f07d3 52952009-01-16 Sebastian Pop <sebastian.pop@amd.com>
5296 Tobias Grosser <tobi.grosser@amd.com>
5297
5298 * graphite.c (compare_prefix_loops): New.
5299 (build_scop_canonical_schedules): Rewritten.
5300 (graphite_transform_loops): Move build_scop_canonical_schedules
5301 after build_scop_iteration_domain.
5302
35fb1eb0 53032009-01-16 Sebastian Pop <sebastian.pop@amd.com>
5304 Tobias Grosser <tobi.grosser@amd.com>
5305
5306 * graphite.c (add_conditions_to_domain): Add the loops to
5307 the dimension of the iteration domain. Do copy the domain
5308 only when it exists.
5309 (build_scop_conditions_1): Do not call add_conditions_to_domain.
5310 (add_conditions_to_constraints): New.
5311 (can_generate_code_stmt, can_generate_code): Removed.
5312 (gloog): Do not call can_generate_code.
5313 (graphite_transform_loops): Call add_conditions_to_constraints
5314 after building the iteration domain.
5315
99e2edfd 53162009-01-16 Jakub Jelinek <jakub@redhat.com>
5317
5318 PR tree-optimization/38789
5319 * tree-ssa-threadedge.c
5320 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
5321 __builtin_constant_p.
5322
237805dd 53232009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com>
cff725a2 5324
5325 * dce.c (delete_unmarked_insns): Reversed the order that insns are
5326 examined before deleting them.
5327
daaa06b2 53282009-01-16 Richard Earnshaw <rearnsha@arm.com>
5329
5330 * function.c (aggregate_value_p): Correctly extract the function
5331 type from CALL_EXPR_FN lookup.
5332
237805dd 53332009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com>
e262db7d 5334
5335 * config/picochip/picochip.c (picochip_override_options): Revert
5336 CFI asm flag disable commited previously.
5337
d635c475 53382009-01-15 Sebastian Pop <sebastian.pop@amd.com>
5339 Tobias Grosser <tobi.grosser@amd.com>
5340 Jan Sjodin <jan.sjodin@amd.com>
5341
5342 * graphite.c (scan_tree_for_params): On substractions negate
5343 all the coefficients of the term.
5344 (clast_to_gcc_expression_red): New. Handle reduction expressions
5345 of more than two operands.
5346 (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
5347 (get_vdef_before_scop): Handle also the case of default definitions.
5348
f5b7c8a5 53492009-01-15 Richard Sandiford <rdsandiford@googlemail.com>
5350
5351 * caller-save.c (add_used_regs_1, add_used_regs): New functions.
5352 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
5353 Also use them when walking CALL_INSN_FUNCTION_USAGE.
5354
9e1c1bf0 53552009-01-15 H.J. Lu <hongjiu.lu@intel.com>
5356 Joey Ye <joey.ye@intel.com>
5357
5358 PR middle-end/37843
5359 * cfgexpand.c (expand_stack_alignment): Don't update stack
5360 boundary nor check incoming stack boundary here.
5361 (gimple_expand_cfg): Update stack boundary and check incoming
5362 stack boundary here.
5363
237805dd 53642009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com>
66aca59d 5365
f92492f7 5366 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
66aca59d 5367
eb940a48 53682009-01-14 Jakub Jelinek <jakub@redhat.com>
5369
5370 PR rtl-optimization/38245
5371 * calls.c (expand_call): Add stack arguments to
5372 CALL_INSN_FUNCTION_USAGE even for pure calls (when
5373 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
5374 in regs and partially in memory or BLKmode arguments.
5375 (emit_library_call_value_1): Add stack arguments to
5376 CALL_INSN_FUNCTION_USAGE even for pure calls (when
5377 ACCUMULATE_OUTGOING_ARGS).
5378 * dce.c: Include tm_p.h.
5379 (find_call_stack_args): New function.
5380 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES
5381 argument.
5382 (mark_insn): Call find_call_stack_args for CALL_Ps.
5383 (prescan_insns_for_dce): Walk insns backwards in bb rather than
5384 forwards. Allocate and free arg_stores bitmap if needed, pass it
5385 down to deletable_insn_p, don't mark stores set in arg_stores
5386 bitmap, clear the bitmap at the beginning of each bb.
5387 * Makefile.in (dce.o): Depend on $(TM_P_H).
5388
26f62ff4 53892009-01-14 Michael Meissner <gnu@the-meissners.org>
5390
5391 PR target/22599
f92492f7 5392 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
5393 to make sure the insn is a conditional test (bug 22599). Reformat a
5394 few long lines.
26f62ff4 5395
87736b69 53962009-01-14 Sebastian Pop <sebastian.pop@amd.com>
5397
5398 PR middle-end/38431
5399 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
5400 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
5401 (gloog): Do not call cleanup_tree_cfg.
5402 (graphite_transform_loops): Call cleanup_tree_cfg after all
5403 scops have been code generated.
5404
4dbb1e0c 54052009-01-14 Basile Starynkevitch <basile@starynkevitch.net>
5406 * doc/gty.texi (Invoking the garbage collector): Added new node
5407 and section documenting ggc_collect.
5408
48d49ced 54092009-01-14 Richard Guenther <rguenther@suse.de>
5410
5411 PR tree-optimization/38826
5412 PR middle-end/38477
5413 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
5414 initialization notes only if we actually emitted a warning.
5415 (intra_create_variable_infos): Add constraints for a result decl
5416 that is passed by hidden reference.
5417 (build_pred_graph): Mark all related variables non-direct on
5418 address-taking.
5419
bef7b1de 54202009-01-14 Nick Clifton <nickc@redhat.com>
5421
5422 * ira-conflicts.c: Include addresses.h for the definition of
5423 base_reg_class.
f92492f7 5424 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
5425 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
bef7b1de 5426
cab55469 54272009-01-13 Vladimir Makarov <vmakarov@redhat.com>
5428
5429 PR target/38811
5430 * Makefile.in (ira-lives.o): Add except.h.
5431
5432 * ira-lives.c: Include except.h.
5433 (process_bb_node_lives): Process can_throw_internal.
5434
cac5cd08 54352009-01-13 Jakub Jelinek <jakub@redhat.com>
5436
5437 PR rtl-optimization/38774
5438 * combine.c (simplify_set): When undoing cc_use change, don't do
5439 PUT_CODE on the newly created comparison, but instead put back the
5440 old comparison.
5441
309ef6b4 54422009-01-13 Joseph Myers <joseph@codesourcery.com>
5443
5444 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
5445 values. Remove duplicate arm8 entry.
5446
1ffa850c 54472009-01-13 Sebastian Pop <sebastian.pop@amd.com>
5448
5449 PR tree-optimization/38786
5450 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
5451 the SSA_NAME case of expand_scalar_variables_expr.
5452 Set the type of an expression to the type of its assign statement.
5453 (expand_scalar_variables_expr): Also gather the scalar computation
5454 used to index the memory access. Do not pass loop_p.
5455 Fix comment. Stop recursion on tcc_constant or tcc_declaration.
5456 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
8d4c7d80 5457 the gimple_stmt_iterator where it inserts new code.
5458 Do not pass loop_p.
1ffa850c 5459 (copy_bb_and_scalar_dependences): Do not pass loop_p.
5460 (translate_clast): Update call to copy_bb_and_scalar_dependences.
5461
de540910 54622009-01-13 Sebastian Pop <sebastian.pop@amd.com>
5463
5464 * graphite.h (debug_value): Removed.
5465 * graphite.c (debug_value): Removed.
5466
3d1f6e40 54672009-01-13 Richard Earnshaw <rearnsha@arm.com>
5468
f92492f7 5469 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
5470 ldrd/strd with two 32-bit instructions.
3d1f6e40 5471
0f978633 54722009-01-13 Richard Earnshaw <rearnsha@arm.com>
5473
f92492f7 5474 * config/arm/arm.c (struct processors): Pass for speed down into
5475 cost helper functions.
0f978633 5476 (const_ok_for_op): Handle COMPARE and inequality nodes.
5477 (arm_rtx_costs_1): Rewrite.
5478 (arm_size_rtx_costs): Update prototype.
5479 (arm_rtx_costs): Pass speed down to helper functions.
5480 (arm_slowmul_rtx_costs): Rework cost calculations.
5481 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
5482 (arm_9e_rtx_costs): Likewise.
5483
d6c48eee 54842009-01-13 Uros Bizjak <ubizjak@gmail.com>
5485
5486 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
f92492f7 5487 relocations of local symbols wider than UNITS_PER_WORD are not valid.
d6c48eee 5488 (alpha_legitimize_address): Do not split local symbols wider than
5489 UNITS_PER_WORD into HIGH/LO_SUM parts.
5490
91e64380 54912009-01-13 Danny Smith <dannysmith@users.sourceforge.net>
5492
5493 PR bootstrap/38580
5494 * gcc.c (process_command): Replace call to execvp with calls
5495 to pex_one and exit.
5496
4addc9bf 54972009-01-03 Anatoly Sokolov <aesok@post.ru>
5498
5499 PR target/29141
5500 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
5501 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
5502 variant for devices with 3-byte PC.
aca60c7b 5503 (__tablejump_elpm__): New.
4addc9bf 5504
f0d0d842 55052009-01-12 Jakub Jelinek <jakub@redhat.com>
5506
5507 PR c/32041
5508 * c-parser.c (c_parser_postfix_expression): Allow `->' in
5509 offsetof member-designator, handle it as `[0].'.
5510
55e0e460 55112009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5512
5513 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
5514 function when not using named sections on targets with named sections
5515 if branch distance is less than 262132.
5516
afb33771 55172009-01-12 Richard Earnshaw <rearnsha@arm.com>
5518
5519 * combine.c (combine_instructions): Recompute
5520 optimize_this_for_speed_p for each BB in the main combine loop.
5521
a6c1b5f0 55222009-01-12 Tomas Bily <tbily@suse.cz>
5523
5524 PR middlend/38385
d6c48eee 5525 * tree-loop-distribution.c (prop_phis): New function.
5526 (generate_builtin): Call prop_phis.
5527 * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
a6c1b5f0 5528
3a43bfe9 55292009-01-12 Jakub Jelinek <jakub@redhat.com>
5530
5531 PR tree-optimization/38807
5532 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
5533 gimple_visited_p unless stmt is GIMPLE_ASSIGN.
5534
95fb59aa 55352009-01-11 Adam Nemet <anemet@caviumnetworks.com>
5536
5537 * expmed.c (store_bit_field_1): Properly truncate the paradoxical
5538 subreg of op0 to the original op0.
5539
237805dd 55402009-01-11 Laurent GUERBY <laurent@guerby.net>
e0b61fdb 5541
5542 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
5543
a32384d7 55442009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de>
5545
5546 PR debug/7055
5547 * gcc/mips-tfile.c (parse_def): Fix parsing of def strings
5548 starting with digits.
5549
a9467ac5 55502009-01-10 Jakub Jelinek <jakub@redhat.com>
5551
5552 PR target/38695
5553 * config/arm/arm.c (arm_is_long_call_p): Don't call
5554 arm_function_in_section_p if decl isn't a FUNCTION_DECL.
5555
100329af 55562009-01-09 Steven Bosscher <steven@gcc.gnu.org>
5557
5558 * regrename.c (regrename_optimize): Fix dumping.
5559 (find_oldest_value_reg): Preserve REG_POINTER.
5560 (copy_hardreg_forward_1): Likewise.
5561
51e52fe3 55622009-01-09 Diego Novillo <dnovillo@google.com>
5563
6db00048 5564 * gimple.h (struct gimple_statement_base) <uid>: Document
51e52fe3 5565 the restrictions on its use.
5566 (gimple_uid): Tidy.
5567 (gimple_set_uid): Tidy.
5568
e1e05028 55692009-01-09 Jakub Jelinek <jakub@redhat.com>
5570
5571 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
5572 zero guard even if align_bytes != 0 and count is smaller than
5573 size_needed.
5574
a330630f 55752009-01-09 Vladimir Makarov <vmakarov@redhat.com>
0c42b4f4 5576
5577 PR rtl-optimization/38495
d6c48eee 5578 * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
0c42b4f4 5579 (add_range_and_copies_from_move_list): Print all added ranges.
5580 Add ranges to memory optimized destination.
5581
8f538fc3 55822009-01-09 Jakub Jelinek <jakub@redhat.com>
5583
ede11ffa 5584 PR target/38686
5585 PR target/38708
5586 * config/i386/i386.c (override_options): Reject
5587 -mstringop-strategy=rep_8byte with -m32.
5588 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
5589 to 1. Do count comparison against epilogue_size_needed at compile
5590 time even when count_exp was constant forced into register. For
5591 size_needed don't jump to epilogue, instead just avoid aligning
5592 and invoke the body algorithm. If need_zero_guard, add zero guard
5593 even if count is non-zero, but smaller than size_needed + number of
5594 bytes that could be stored for alignment.
5595 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
5596 to 1. If need_zero_guard, add zero guard even if count is non-zero,
5597 but smaller than size_needed + number of bytes that could be stored
5598 for alignment. Compare size_needed with epilogue_size_needed instead
5599 of desired_align - align, don't adjust size_needed, pass
5600 epilogue_size_needed to the epilogue expanders.
5601
8f538fc3 5602 PR c/35742
d6c48eee 5603 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
8f538fc3 5604
21a47bc9 56052009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5606
5607 * pa.c (last_address): Change to unsigned.
5608 (update_total_code_bytes): Change argument to unsigned. Don't
5609 check if insn addresses are set.
5610 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
5611 addresses are not set.
5612 (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
5613
ce090c51 56142009-01-09 Nick Clifton <nickc@redhat.com>
5615
5616 * config/sh/symbian.c: Replace uses of DECL_INLINE with
5617 DECL_DECLARED_INLINE_P.
5618
4e7cb1c5 56192009-01-09 Jakub Jelinek <jakub@redhat.com>
5620
70b6a6e8 5621 PR middle-end/38347
5622 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
5623 GET_MODE (op0) in operand_subword_force calls.
5624
4e7cb1c5 5625 PR middle-end/38771
5626 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
5627 fold_convert arg0 operands to TREE_TYPE (op0) first.
5628
d0388252 56292009-01-08 Vladimir Makarov <vmakarov@redhat.com>
5630
5631 * params.def (ira-max-conflict-table-size): Decrease default value
5632 to 1000.
5633
12c697cd 56342009-01-08 Jakub Jelinek <jakub@redhat.com>
5635
5636 PR tree-optimization/37031
5637 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
5638 on parameter_set.
5639 (build_access_matrix): Reserve correct size for AM_MATRIX vector,
5640 allocate it using gc instead of heap, use VEC_quick_push instead of
5641 VEC_safe_push.
5642 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
5643 instead of heap, use VEC_quick_push instead of VEC_safe_push.
5644 * tree-data-ref.h (struct access_matrix): Change matrix to gc
5645 allocated vector from heap allocated.
5646 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
5647 * tree-loop-linear.c (linear_transform_loops): Allocate nest
5648 vector only after perfect_loop_nest_depth call.
5649
59835a90 56502009-01-08 Sebastian Pop <sebastian.pop@amd.com>
5651 Jan Sjodin <jan.sjodin@amd.com>
5652
5653 PR tree-optimization/38559
5654 * graphite.c (debug_value, copy_constraint,
5655 swap_constraint_variables, scale_constraint_variable, ): New.
5656 (get_lower_bound, get_upper_bound): Removed.
5657 (graphite_trans_bb_strip_mine): Clean up this code that works
5658 only for constant number of iterations. Fully copy upper and
5659 lower bound constraints, not only the constant part of them.
5660 * graphite.h (debug_value): Declared.
5661
1c48f190 56622009-01-08 Ira Rosen <irar@il.ibm.com>
5663
5664 PR tree-optimization/37194
5665 * tree-vect-transform.c (vect_estimate_min_profitable_iters):
5666 Don't add the cost of cost model guard in prologue to scalar
5667 outside cost in case of known number of iterations.
5668
9538c1d1 56692009-01-07 Nathan Froyd <froydnj@codesourcery.com>
5670 Alan Modra <amodra@bigpond.net.au>
5671
5672 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
5673 non-word-aligned REG+CONST addressing.
5674
292add68 56752009-01-07 Uros Bizjak <ubizjak@gmail.com>
5676
5677 PR target/38706
5678 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
5679 free_after_compilation when outputting a thunk.
5680 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
5681 Do not call free_after_compilation here.
5682
bbc3ff90 56832009-01-07 Uros Bizjak <ubizjak@gmail.com>
5684
5685 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
bbc3ff90 5686 (ix86_valid_target_attribute_inner_p): Ditto.
5687
145bdf6a 56882009-01-07 Jan Sjodin <jan.sjodin@amd.com>
5689
5690 PR tree-optimization/38492
5691 PR tree-optimization/38498
5692 * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
5693 * tree-chrec.h (scev_is_linear_expression): Declared.
5694 * graphite.c (graphite_cannot_represent_loop_niter): New.
5695 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
5696 (graphite_loop_normal_form): Use gcc_assert.
5697 (scan_tree_for_params): Use CASE_CONVERT.
5698 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
5699 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
5700 Use gcc_assert. Discard scops that contain unhandled cases.
5701 (build_scop_conditions): Return a boolean status for unhandled cases.
5702 (strip_mine_profitable_p): Print the loop number, not its depth.
5703 (is_interchange_valid): Pass the depth of the loop nest, don't
5704 recompute it wrongly.
5705 (graphite_trans_bb_block): Same.
5706 (graphite_trans_bb_block): Print tentative of loop blocking.
5707 (graphite_trans_scop_block): Do not print that the loop has been
5708 blocked.
5709 (graphite_transform_loops): Do not handle scops that contain condition
5710 scalar phi nodes.
5711
b49a1e34 57122009-01-07 H.J. Lu <hongjiu.lu@intel.com>
5713
5714 AVX Programming Reference (December, 2008)
5715 * config/i386/avxintrin.h (_mm256_stream_si256): New.
5716 (_mm256_stream_pd): Likewise.
5717 (_mm256_stream_ps): Likewise.
5718
5719 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
5720 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
5721 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
5722 (bdesc_special_args): Add __builtin_ia32_movntdq256,
5723 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
5724 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
5725 (ix86_expand_special_args_builtin): Likewise.
5726
5727 * config/i386/sse.md (AVXMODEDI): New.
5728 (avx_movnt<mode>): Likewise.
5729 (avx_movnt<mode>): Likewise.
5730 (<sse>_movnt<mode>): Remove AVX support.
5731 (sse2_movntv2di): Likewise.
5732
4f1351a2 57332009-01-07 Richard Guenther <rguenther@suse.de>
5734
5735 PR middle-end/38751
5736 * fold-const.c (extract_muldiv): Remove obsolete comment.
5737 (fold_plusminus_mult_expr): Undo MINUS_EXPR
5738 to PLUS_EXPR canonicalization for the canonicalization.
5739
aad359a1 57402009-01-07 Gerald Pfeifer <gerald@pfeifer.com>
5741
5742 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
5743 hosted cross-compilers generating less efficient code.
5744
2061be83 57452009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
5746
5747 * function.h (rtl_data): Add a dbr_scheduled_p field.
5748 * reorg.c (dbr_schedule): Set it.
5749 (gate_handle_delay_slots): Check it.
5750 * config/mips/mips.c (mips_base_delayed_branch): Delete.
5751 (mips_reorg): Check flag_delayed_branch instead of
5752 mips_base_delayed_branch.
5753 (mips_override_options): Don't set mips_base_delayed_branch
5754 or flag_delayed_branch.
5755
6b806743 57562009-01-06 Richard Sandiford <rdsandiford@googlemail.com>
5757
5758 PR rtl-optimization/38426.
5759 * ira.c (ira): Set current_function_is_leaf earlier.
5760
095050fc 57612009-01-06 Jakub Jelinek <jakub@redhat.com>
5762
5763 PR rtl-optimization/38722
5764 * combine.c (try_combine): Don't modify PATTERN (i3) and notes
5765 too early, only set a flag and modify after last possible
5766 undo_all point.
5767
0c87fb2b 57682009-01-06 Janis Johnson <janis187@us.ibm.com>
5769
5770 PR c/34252
5771 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
5772 * real.c (decimal_single_format): Correct values of emin and emax.
5773 (decimal_double_format): Ditto.
5774 (decimal_quad_format): Ditto.
5775 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
5776 computation of DECnn_MIN and DECnn_MAX for corrected values of
5777 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of
5778 __DECnn_MIN__, and adjust its computation for the corrected value
5779 of emin.
5780
710ab45a 57812009-01-06 Jan Hubicka <jh@suse.cz>
5782
5783 PR target/38744
f92492f7 5784 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
710ab45a 5785
0a46e111 57862009-01-06 Gerald Pfeifer <gerald@pfeifer.com>
5787
5788 * doc/contrib.texi (Contributors): Slightly adjust the end note.
5789 Add Robert Clark to the list of testers.
5790
30095c10 57912009-01-06 Jan Hubicka <jh@suse.cz>
237805dd 5792 Kai Tietz <kai.tietz@onevision.com>
30095c10 5793
f92492f7 5794 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
5795 * config/i386/i386.c (ix86_expand_call): Add clobbers.
30095c10 5796
acb79b5c 57972009-01-06 Jan Hubicka <jh@suse.cz>
237805dd 5798 Kai Tietz <kai.tietz@onevision.com>
acb79b5c 5799
f92492f7 5800 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
5801 for w64 ABI.
5802 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
acb79b5c 5803 (ix86_nsaved_regs): Count only general purpose regs.
5804 (ix86_nsaved_sseregs): New.
5805 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
5806 to 16 for w64; compute padding and size of sse reg save area.
bbc3ff90 5807 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
5808 general purpose regs.
acb79b5c 5809 (ix86_emit_save_sse_regs_using_mov): New.
5810 (ix86_expand_prologue): Save SSE regs if needed.
5811 (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
5812 (ix86_emit_restore_sse_regs_using_mov): New.
5813 (ix86_expand_epilogue): Save SSE regs if needed.
5814
90a81a4b 58152009-01-06 Jan Hubicka <jh@suse.cz>
237805dd 5816 Kai Tietz <kai.tietz@onevision.com>
90a81a4b 5817
f92492f7 5818 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
5819 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
5820 functions when accumulate outgoing args is off.
90a81a4b 5821
7521b07f 58222009-01-06 H.J. Lu <hongjiu.lu@intel.com>
5823
5824 PR bootstrap/38742
5825 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
5826 before using pseudos_have_intersected_live_ranges_p.
5827
5828 * ira-int.h (ira_assert): Always define.
5829
dbd61cd0 58302009-01-06 H.J. Lu <hongjiu.lu@intel.com>
5831
5832 AVX Programming Reference (December, 2008)
5833 * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
5834 (_mm256_permute2_pd): Likewise.
5835 (_mm_permute2_ps): Likewise.
5836 (_mm256_permute2_ps): Likewise.
5837 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
5838 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
5839
5840 * config/i386/i386.c (ix86_builtins): Remove
5841 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
5842 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
5843 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
5844 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
5845 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
5846 (bdesc_args): Remove __builtin_ia32_vpermil2pd,
5847 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
5848 __builtin_ia32_vpermil2ps256.
5849 (ix86_init_mmx_sse_builtins): Updated.
5850 (ix86_expand_args_builtin): Likewise.
5851
c4b36071 58522009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
5853
dbd61cd0 5854 * pa.c (output_call): Relocate non-jump insns in the delay slot of
5855 long absolute calls when generating PA 2.0 code.
c4b36071 5856
95c83f01 58572009-01-05 Vladimir Makarov <vmakarov@redhat.com>
5858
5859 PR rtl-optimization/38583
5860 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
5861
5862 * params.def (ira-max-conflict-table-size): New.
5863
5864 * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
5865
5866 * ira.h (ira_conflicts_p): New external definition.
5867
5868 * ira-conflicts.c (build_conflict_bit_table): Do not build too big
5869 table. Report this. Return result of building.
5870 (ira_build_conflicts): Use ira_conflicts_p. Check result of
5871 building conflict table.
5872
bbc3ff90 5873 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
95c83f01 5874 (ira_color): Use ira_conflicts_p.
5875
5876 * global.c: Include ira.h.
5877 (pseudo_for_reload_consideration_p, build_insn_chain): Use
5878 ira_conflicts_p.
5879
5880 * Makefile.in (global.o): Add ira.h.
5881
5882 * ira-build.c (mark_all_loops_for_removal,
5883 propagate_some_info_from_allocno): New.
5884 (remove_unnecessary_allocnos): Call
5885 propagate_some_info_from_allocno.
5886 (remove_low_level_allocnos): New.
5887 (remove_unnecessary_regions): Add parameter. Call
5888 mark_all_loops_for_removal and remove_low_level_allocnos. Pass
5889 parameter to remove_unnecessary_regions.
5890 (ira_build): Remove all regions but root if the conflict table was
5891 not built. Update conflict hard regs for allocnos crossing calls.
5892
5893 * ira.c (ira_conflicts_p): New global.
5894 (ira): Define and use ira_conflicts_p.
5895
5896 * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
5897 count_spilled_pseudo, find_reg, alter_reg, finish_spills,
bbc3ff90 5898 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
95c83f01 5899
da279129 59002009-01-06 Ben Elliston <bje@au.ibm.com>
5901
5902 * gengtype-lex.l (YY_NO_INPUT): Define.
5903
7ec31215 59042009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com>
5905
5906 PR c/34911
da279129 5907 * c-common.c (handle_vector_size_attribute): Also reject
5908 BOOLEAN_TYPE types.
7ec31215 5909
d51c4d4c 59102009-01-05 Sebastian Pop <sebastian.pop@amd.com>
5911
5912 PR tree-optimization/38492
5913 * graphite.c (rename_map_elt, debug_rename_elt,
bbc3ff90 5914 debug_rename_map_1, debug_rename_map, new_rename_map_elt,
5915 rename_map_elt_info, eq_rename_map_elts,
5916 get_new_name_from_old_name, bb_in_sese_p): Moved around.
d51c4d4c 5917 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
5918 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
5919 (sese_build_livein_liveouts): New.
5920 (new_sese, free_sese): New.
5921 (new_scop): Call new_sese.
5922 (free_scop): Call free_sese.
5923 (rename_variables_from_edge, rename_phis_end_scop): Removed.
5924 (register_old_new_names): Renamed register_old_and_new_names.
5925 (register_scop_liveout_renames, add_loop_exit_phis,
5926 insert_loop_close_phis, struct igp,
5927 default_liveout_before_guard, add_guard_exit_phis,
5928 insert_guard_phis, copy_renames): New.
5929 (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
5930 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
5931 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
5932 (scop_adjust_phis_for_liveouts): New.
5933 (gloog): Call scop_adjust_phis_for_liveouts.
5934
5935 * graphite.h (struct sese): Documented. Added fields liveout,
bbc3ff90 5936 num_ver and livein.
d51c4d4c 5937 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
5938 (new_sese, free_sese, sese_build_livein_liveouts): Declared.
5939 (struct scop): Added field liveout_renames.
5940 (SCOP_LIVEOUT_RENAMES): New.
5941
57c0fd3c 59422009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
5943
5944 PR tree-optimization/38510
5945 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
5946 (translate_clast): Call recompute_all_dominators before
5947 graphite_verify.
5948 (gloog): Call recompute_all_dominators before graphite_verify.
5949
59502009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
237805dd 5951 Jan Sjodin <jan.sjodin@amd.com>
57c0fd3c 5952
5953 PR tree-optimization/38500
5954 * graphite.c (create_sese_edges): Call fix_loop_structure after
5955 splitting blocks.
5956
237805dd 59572009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
e4c85211 5958
5959 * config.gcc: Add m32r*-*-rtems*.
5960 * config/m32r/rtems.h: New file.
5961
e7ae053d 59622009-01-05 Ben Elliston <bje@au.ibm.com>
5963
5964 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
5965 (.po.pox): Likewise.
5966 (po/gcc.pot): Likewise.
5967
aad5aaaf 59682009-01-04 David S. Miller <davem@davemloft.net>
5969
5970 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
5971 (STARTING_FRAME_OFFSET): Always set to zero.
5972
f323bb78 59732009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
5974
5975 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
5976 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
5977 fixed-point types, and vectors of the same.
5978
b73796fa 59792009-01-04 Richard Sandiford <rdsandiford@googlemail.com>
5980
5981 * config/mips/sync.md (*mb_barrier): Rename to...
5982 (*memory_barrier): ...this.
5983
c17add59 59842009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com>
5985
5986 * doc/extend.texi (Function Attributes): Move @cindex after @item
6c6bce65 5987 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
c17add59 5988 and put in alphabetical order. Fix 'target' name and put in order.
5989 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
5990 typos.
5991
dc178856 59922009-01-04 Uros Bizjak <ubizjak@gmail.com>
5993
5994 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
5995 (memory_barrier): Expand as unspec instead of unspec_volatile.
5996 Remove mem:BLK from insn operands. Use Pmode scratch register.
5997 (*memory_barrier): Define as unspec instead of unspec_volatile.
5998 Use (match_dup 0) as input operand.
5999
6000 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
6001 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
6002 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode
6003 scratch register. Remove operand 1.
6004 (*stbar): Define as unspec instead of unspec_volatile.
6005 Use (match_dup 0) as input operand, remove (const_int 8).
6006 (*membar): Define as unspec instead of unspec_volatile.
6007 Use (match_dup 0) as input operand, remove input operand 2.
6008
6009 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
6010 (memory_barrier): Expand as unspec instead of unspec_volatile.
6011 Remove mem:BLK from insn operands. Use Pmode scratch register.
6012 (*memory_barrier): Define as unspec instead of unspec_volatile.
6013 Use (match_dup 0) as input operand.
6014
6015 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
6016 Remove mem:BLK from insn operands. Use Pmode scratch register.
6017 Set volatile flag on operand 0.
6018 (*memory_barrier): New insn pattern.
6019
6020 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
6021 insn operands.
6022 (*memory_barrier): Use (match_dup 0) as input operand.
6023
6024 * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
6025 Remove mem:BLK from insn operands. Use Pmode scratch register.
6026 Set volatile flag on operand 0.
bbc3ff90 6027 (*mb_internal): New insn pattern.
dc178856 6028
6029 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
6030
fef299ce 60312009-01-04 Steven Bosscher <steven@gcc.gnu.org>
6032
6033 PR middle-end/38586
6034 * function.c (struct temp_slot): Move to the section of the file
6035 that deals with temp slots. Remove field 'address'.
6036 (temp_slot_address_table): New hash table of address -> temp slot.
6037 (struct temp_slot_address_entry): New struct, items for the table.
6038 (temp_slot_address_compute_hash, temp_slot_address_hash,
6039 temp_slot_address_eq, insert_temp_slot_address): Support functions
6040 for the new table.
6041 (find_temp_slot_from_address): Rewrite to use the new hash table.
6042 (remove_unused_temp_slot_addresses): Remove addresses of temp
6043 slots that have been made available.
6044 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
6045 worker function for remove_unused_temp_slot_addresses.
6046 (assign_stack_temp_for_type): Don't clear the temp slot address list.
6047 Add the temp slot address to the address -> temp slot map.
6048 (update_temp_slot_address): Update via insert_temp_slot_address.
6049 (free_temp_slots): Call remove_unused_temp_slot_addresses.
6050 (pop_temp_slots): Likewise.
6051 (init_temp_slots): Allocate the address -> temp slot map, or empty
6052 the map if it is already allocated.
6053 (prepare_function_start): Initialize temp slot processing.
6054
961c8f72 60552009-01-04 Steven Bosscher <steven@gcc.gnu.org>
6056
6057 PR middle-end/38584
6058 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
6059 Calculate the size of all stack vars assuming no packing of stack
6060 vars will happen, replacing a quadratic algorithm with a linear one.
6061
c2ef487a 60622009-01-03 Jakub Jelinek <jakub@redhat.com>
6063
6064 PR target/38707
6065 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
6066 can't be used.
6067
d2472193 60682009-01-03 Diego Novillo <dnovillo@google.com>
6069
6070 * doc/contrib.texi: Update contributions.
6071
062b4460 60722009-01-03 Jakub Jelinek <jakub@redhat.com>
6073
6f52ebeb 6074 PR c++/38705
6075 * builtins.c (fold_builtin_memory_op): Give up if either operand
6076 is volatile. Set srctype or desttype to non-qualified version
6077 of the other type.
6078
062b4460 6079 PR c/38700
6080 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
6081 and FUNCTION_DECLs.
6082
237805dd 60832009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com>
7e009ff5 6084
6085 PR rtl-optimization/35805
6086 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
6087 problem if fast dce is able to remove any instructions.
6088 * dce.c (dce_process_block): Fix dump message.
6089
c9f77b30 60902009-01-02 Mark Mitchell <mark@codesourcery.com>
6091
6092 PR 33649
6093 * tree-ssa-pre.c (compute_antic): Correct loop bounds.
6094
e70f5f27 60952009-01-02 Jakub Jelinek <jakub@redhat.com>
6096
6097 PR middle-end/38690
6098 * tree-flow.h (op_code_prio, op_prio): New prototypes.
6099 * tree-pretty-print.c (op_code_prio): New function.
6100 (op_prio): No longer static. Use op_code_prio.
6101 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
6102 Use op_prio and op_code_prio to determine if () should be
6103 printed around operand(s) or not.
6104
6105 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
6106 dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
6107 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
6108 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
6109 pp_character instead of pp_string for single letter printing.
6110
db8edef0 61112009-01-02 Richard Sandiford <rdsandiford@googlemail.com>
6112
6113 * doc/extend.texi: Fix '#pragma GCC option' typo.
6114
237805dd 61152009-01-02 Richard Guenther <rguenther@suse.de>
6d37614e 6116
e6f4e61f 6117 * doc/install.texi (--enable-checking): Mention different
6118 default for stage1.
6119 (--enable-stage1-checking): Document.
6d37614e 6120
d3a42176 61212009-01-01 Andrew Pinski <pinskia@gmail.com>
6122
6123 PR middle-end/30142
6124 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR
6125 case to be an error.
6126
5c8520a4 61272009-01-02 Ben Elliston <bje@au.ibm.com>
6128
6129 * config/fp-bit.h (pack_d): Constify argument.
6130 * config/fp-bit.c (makenan): Constify return type. Remove casts.
6131 (isnan): Constify argument.
6132 (isinf): Likewise.
6133 (iszero): Likewise.
6134 (pack_d): Likewise.
6135 (_fpadd_parts): Constify return type.
6136 (_fpmul_parts): Likewise.
6137 (_fpdiv_parts): Likewise.
6138
d241bf0d 61392009-01-01 Jakub Jelinek <jakub@redhat.com>
6140
6141 PR c/36489
6142 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only
6143 warn about overwriting initializer with side-effects or
6144 -Woverride-init if !IMPLICIT.
6145 (output_init_element): Likewise. Pass IMPLICIT down to
6146 add_pending_init.
6147 (process_init_element): Add IMPLICIT argument. Pass it down
6148 to output_init_element.
6149 (push_init_element, pop_init_level, set_designator): Adjust
6150 process_init_element callers.
6151 (set_nonincremental_init, set_nonincremental_init_from_string):
6152 Adjust add_pending_init callers.
6153 (output_pending_init_elements): Adjust output_init_element callers.
6154 * c-tree.h (process_init_element): Adjust prototype.
6155 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
6156 process_init_element callers.