OSDN Git Service

Fix formatting
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2009-05-20  Eric Botcazou  <ebotcazou@adacore.com>
2
3         * fold-const.c (build_fold_addr_expr_with_type): Take the address of
4         the operand of VIEW_CONVERT_EXPR.
5
6 2009-05-20  H.J. Lu  <hongjiu.lu@intel.com>
7
8         * config/i386/driver-i386.c (host_detect_local_cpu): Check
9         extended family and model for Intel processors.  Support Intel
10         Atom.
11
12 2009-05-20  Olivier Hainque  <hainque@adacore.com>
13
14         * gstab.h (stab_code_type): Define, to be used instead of the
15         __stab_debug_code enum, made anonymous.  Add 2009 to the copyright
16         notice.
17         * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use
18         occurrences by stab_code_type.
19         * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused.
20
21 2009-05-20  Martin Jambor  <mjambor@suse.cz>
22
23         * tree-flow.h (insert_edge_copies_seq): Undeclare.
24         (sra_insert_before): Likewise.
25         (sra_insert_after): Likewise.
26         (sra_init_cache): Likewise.
27         (sra_type_can_be_decomposed_p): Likewise.
28         * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c
29         * tree-sra.c (sra_type_can_be_decomposed_p): Made static.
30         (sra_insert_before): Likewise.
31         (sra_insert_after): Likewise.
32         (sra_init_cache): Likewise.
33         (insert_edge_copies_seq): Made static and moved upwards.
34
35         * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch
36         case.
37
38         * tree-flow-inline.h (contains_view_convert_expr_p): New function.
39
40         * ipa-prop.c (get_ssa_def_if_simple_copy): New function.
41         (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip
42         simple copies.
43
44 2009-05-20  Richard Guenther  <rguenther@suse.de>
45
46         * expr.c (expand_expr_real_1): Avoid calling do_store_flag
47         with mismatched comparison modes.
48
49 2009-05-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
50     
51         * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM.
52         (peephole ior (reg, int) -> mov, ior): Refactored for only ARM.
53         * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic
54         with shifts for Thumb2.
55         (orsi_notsi): New for orn.
56         (*thumb_orsi_notshiftsi_si): Allow orn with shifts.
57         (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2.
58         * config/arm/arm.c (const_ok_for_op): Split case for IOR for
59         Thumb2.
60         (arm_gen_constant): Set can_invert for IOR and Thumb2, Add
61         comments. Don't invert remainder for IOR.
62         
63 2009-05-19  Zdenek Dvorak  <ook@ucw.cz>
64
65         PR tree-optimization/40087
66         * tree-ssa-loop-niter.c (number_of_iterations_ne_max,
67         number_of_iterations_ne): Rename never_infinite argument.
68         (number_of_iterations_lt_to_ne, number_of_iterations_lt,
69         number_of_iterations_le): Handle pointer-type ivs when
70         exit_must_be_taken is false.
71         (number_of_iterations_cond):  Do not always assume that
72         exit_must_be_taken if the control variable is a pointer.
73
74 2009-05-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
75
76         * c-typeck.c (build_binary_op): Allow % on integal vectors.
77         * doc/extend.texi (Vector Extension): Document that % is allowed too.
78
79 2009-05-19  H.J. Lu  <hongjiu.lu@intel.com>
80
81         * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check
82         ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN.
83
84 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
85
86         PR c/40172
87         * c.opt (Wlogical-op): Disabled by default.
88         * c-opt (c_common_post_options): Do not enable Wlogical-op with
89         Wextra.
90         * doc/invoke.texi (Wlogical-op): Likewise.
91         
92 2009-05-19  Eric Botcazou  <ebotcazou@adacore.com>
93
94         * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn
95         into CASE_CONVERT.
96         <PLUS_EXPR>: Strip useless type conversions instead of type nops.
97         Propagate the type of the first operand.
98         <ASSERT_EXPR>: Simplify.
99         (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type.
100         Rewrite using the RHS code as discriminant.
101         <NOP_EXPR>: Turn into CASE_CONVERT.
102         <PLUS_EXPR>: Propagate the type of the first operand.
103
104 2009-05-19  Steve Ellcey  <sje@cup.hp.com>
105
106         * config/ia64/ia64-protos.h (ia64_dconst_0_5): New.
107         (ia64_dconst_0_375): New.
108         * config/ia64/ia64.c (ia64_override_options): Remove
109         -minline-sqrt-min-latency warning.
110         (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New.
111         (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New
112         * config/ia64/ia64.md (*sqrt_approx): Remove.
113         (sqrtsf2): Remove #if 0.
114         (sqrtsf2_internal_thr): Rewrite and move to div.md.
115         (sqrtdf): Remove assert.
116         (sqrtdf2_internal_thr): Rewrite and move to div.md.
117         (sqrtxf2): Remove #if 0.
118         (sqrtxf2_internal_thr): Rewrite and move to div.md.
119         * div.md (sqrt_approx_rf): New.
120         (sqrtsf2_internal_thr): New implementation.
121         (sqrtsf2_internal_lat): New.
122         (sqrtdf2_internal_thr: New implementation.
123         (sqrtxf2_internal): New implementation.
124
125 2009-05-19  Francois-Xavier Coudert  <fxcoudert@gmail.com>
126             Hans-Peter Nilsson  <hp@axis.com>
127
128         * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE)
129         (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE)
130         (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE)
131         (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE)
132         (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE)
133         (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE)
134         (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE)
135         (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE)
136         (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE)
137         (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here...
138         * c-common.c: ...from here.
139
140 2009-05-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
141
142         * c-common.c (warn_logical_operator): Remove unnecessary
143         conditionals.
144
145 2009-05-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
146
147         * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types.
148
149 2009-05-19  Ben Elliston  <bje@au.ibm.com>
150
151         * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning
152         assignments with memcpy calls.
153         (add_fdes): Likewise.
154         (binary_search_unencoded_fdes): Likewise.
155         (linear_search_fdes): Eliminate type puns.
156         
157 2009-05-19  Richard Guenther  <rguenther@suse.de>
158
159         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do
160         not falsely claim to have propagated into all uses.
161
162 2009-05-19  Ben Elliston  <bje@au.ibm.com>
163
164         * doc/invoke.texi (C Dialect Options): Update OpenMP specification
165         version to v3.0.
166
167 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
168
169         * config/sh/sh-protos.h (sh_legitimate_address_p): Remove.
170         * config/sh/sh.c (sh_legitimate_address_p): Make static.
171         (TARGET_LEGITIMATE_ADDRESS_P): New.
172         * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
173         * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
174         
175 2009-05-18  Dodji Seketeli  <dodji@redhat.com>
176
177         PR debug/40109
178         * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a
179         child of the containing namespace's DIE.
180
181 2009-05-18  Adam Nemet  <anemet@caviumnetworks.com>
182
183         * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>,
184         *zero_extendhi_truncqi):  Move after the zero_extend patterns.
185         (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the
186         extend patterns.
187
188 2009-05-18  H.J. Lu  <hongjiu.lu@intel.com>
189
190         PR target/39942
191         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace
192         gen_align with gen_pad.
193         (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of
194         #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN.
195
196         * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New.
197         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise.
198
199         * config/i386/i386.md (align): Renamed to ...
200         (pad): This.  Replace ASM_OUTPUT_MAX_SKIP_ALIGN with
201         ASM_OUTPUT_MAX_SKIP_PAD.
202
203 2009-05-18  Andreas Schwab  <schwab@linux-m68k.org>
204
205         * config.gcc: Fix variable syntax.
206
207         PR target/39531
208         * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies
209         before calling exact_log2.
210         (output_iorsi3): Likewise.
211         (output_xorsi3): Likewise.
212
213 2009-05-18  Kaz Kojima  <kkojima@gcc.gnu.org>
214
215         * config/sh/sh.c (expand_cbranchdi4): Use a scratch register
216         for the none zero constant operand except for EQ and NE
217         comprisons even when the first operand is R0.
218
219 2009-05-18  Andreas Krebbel  <krebbel1@de.ibm.com>
220
221         * config/s390/2064.md: Remove trailing whitespaces.
222         * config/s390/2084.md: Likewise.
223         * config/s390/constraints.md: Likewise.
224         * config/s390/fixdfdi.h: Likewise.
225         * config/s390/libgcc-glibc.ver: Likewise.
226         * config/s390/s390-modes.def: Likewise.
227         * config/s390/s390-protos.h: Likewise.
228         * config/s390/s390.c: Likewise.
229         * config/s390/s390.h: Likewise.
230         * config/s390/s390.md: Likewise.
231         * config/s390/tpf-unwind.h: Likewise.
232
233 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
234
235         * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature.
236
237 2009-05-18  Maxim Kuvyrkov  <maxim@codesourcery.com>
238
239         M68K TLS support.
240         * configure.ac (m68k-*-*): Check if binutils support TLS.
241         * configure: Regenerate.
242         * config/m68k/predicates.md (symbolic_operand): Extend comment.
243         * config/m68k/constraints.md (Cu): New constraint.
244         * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove.
245         (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants.
246         (movsi): Handle TLS symbols.
247         (addsi3_5200): Handle XTLS symbols, indent.
248         * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare.
249         (m68k_tls_reference_p): Declare.
250         (m68k_legitimize_address): Declare.
251         (m68k_unwrap_symbol): Declare.
252         * config/m68k/m68k.opt (mxtls): New option.
253         * config/m68k/m68k.c (ggc.h): Include.
254         (m68k_output_dwarf_dtprel): Implement hook.
255         (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define.
256         (m68k_expand_prologue): Load GOT pointer when function needs it.
257         (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols.
258         (m68k_legitimate_constant_address_p): Same.
259         (m68k_decompose_address): Handle TLS references.
260         (m68k_get_gp): New static function.
261         (enum m68k_reloc): New contants.
262         (TLS_RELOC_P): New macro.
263         (m68k_wrap_symbol): New static function.
264         (m68k_unwrap_symbol): New function.
265         (m68k_final_prescan_insn_1): New static function.
266         (m68k_final_prescan_insn): New function.
267         (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static
268         functions.
269         (legitimize_pic_address): Handle TLS references..
270         (m68k_tls_get_addr, m68k_get_tls_get_addr)
271         (m68k_libcall_value_in_a0_p)
272         (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp)
273         (m68k_call_m68k_read_tp): Helper variables and functions for ...
274         (m68k_legitimize_tls_address): Handle TLS references.
275         (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p):
276         New functions.
277         (m68k_legitimize_address): Handle TLS symbols.
278         (m68k_get_reloc_decoration): New static function.
279         (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and
280         UNSPEC_RELOC32.
281         (m68k_output_dwarf_dtprel): Implement hook.
282         (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32.
283         (m68k_libcall_value): Return result in A0 instead of D0 when asked by
284         m68k_call_* routines.
285         (sched_attr_op_type): Handle TLS symbols.
286         (gt-m68k.h): Include.
287         * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
288         (LEGITIMATE_PIC_OPERAND_P): Support TLS.
289
290 2009-05-18  Martin Jambor  <mjambor@suse.cz>
291
292         * ipa-prop.c (ipa_check_stmt_modifications): Removed.
293         (visit_store_addr_for_mod_analysis): New function.
294         (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops.
295         (determine_cst_member_ptr): Use gimple_assign_single_p.
296         (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p.
297         (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of
298         operands.  Don't check number of operands of a NOP_EXPR.
299
300 2009-05-18  Eric Fisher  <joefoxreal@gmail.com>
301
302         * doc/tree-ssa.texi (SSA Operands): Fix a mistake.
303
304 2009-05-17  Manuel López-Ibáñez  <manu@gcc.gnu.org>
305
306         PR c/40172
307         * c-common.c (warn_logical_operator): Don't warn if one of
308         expression isn't always true or false.
309
310 2009-05-17  Kai Tietz  <kai.tietz@onevision.com>
311
312         * config/i386/biarch32.h: New file.
313         * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file.
314
315 2009-05-17  Adam Nemet  <anemet@caviumnetworks.com>
316
317         * config/mips/mips.md (*zero_extend<mode>_trunchi,
318         *zero_extend<mode>_truncqi): Merge these into ...
319         (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern.
320         Name the pattern following this as *zero_extendhi_truncqi.
321
322 2009-05-16  Brad Lucier  <lucier@math.purdue.edu>
323
324         PR middle-end/39301
325         * hwint.h: Add macro HOST_WIDEST_INT_PRINT.
326         * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT.
327         (output_info): Make field HOST_WIDEST_INT.
328         (print_statistics): Use HOST_WIDEST_INT_PRINT.
329         (dump_bitmat_statistics): Same.
330
331 2009-05-16  Francois-Xavier Coudert  <fxcoudert@gmail.com>
332
333         * config.gcc (use_gcc_stdint):  Set to wrap.
334         * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
335         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
336         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
337         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
338         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
339         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
340         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
341         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
342
343 2009-05-16  Joseph Myers  <joseph@codesourcery.com>
344
345         * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and
346         tune_64.
347         * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT):
348         Move definitions earlier.
349         (OPT_ARCH64, OPT_ARCH32): Define.
350         (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32
351         and tune_64.
352
353 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
354
355         PR target/40153
356         * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name
357         implies.
358
359 2009-05-16  Richard Earnshaw  <rearnsha@arm.com>
360
361         * arm.md (movdi2): Copy non-reg values to DImode registers.
362
363 2009-05-16  Jakub Jelinek  <jakub@redhat.com>
364
365         PR target/39942
366         * final.c (label_to_max_skip): New function.
367         (label_to_alignment): Only use LABEL_TO_ALIGNMENT if
368         CODE_LABEL_NUMBER <= max_labelno.
369         * output.h (label_to_max_skip): New prototype.
370         * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to...
371         (ix86_avoid_jump_mispredicts): ... this.  Don't define if
372         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.  Update comment.
373         Handle CODE_LABELs with >= 16 byte alignment or with
374         max_skip == (1 << align) - 1.
375         (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if
376         ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined.
377
378         PR target/39942
379         * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second
380         .p2align 3 if MAX_SKIP is smaller than 7.
381         * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
382
383 2009-05-15  Ian Lance Taylor  <iant@google.com>
384
385         * alias.c (struct alias_set_entry_d): Rename from struct
386         alias_set_entry.  Change all uses.
387         * except.c (struct call_site_record_d): Rename from struct
388         call_site_record.  Change all uses.
389         * except.h (struct eh_region_d): Rename from struct eh_region.
390         Change all uses.
391         * gcse.c (struct hash_table_d): Rename from struct hash_table.
392         Change all uses.
393         * graphite.c (struct ivtype_map_elt_d): Rename fromstruct
394         ivtype_map_elt.  Change all uses.
395         (struct rename_map_elt_d): Rename fromstruct rename_map_elt.
396         Change all uses.
397         (struct ifsese_d): Rename fromstruct ifsese.  Change all uses.
398         * graphite.h (struct name_tree_d): Rename from struct name_tree.
399         Change all uses.
400         (struct sese_d): Rename from struct sese.  Change all uses.
401         * omega.h (struct eqn_d): Rename from struct eqn.  Change all
402         uses.
403         (struct omega_pb_d): Rename from struct omega_pb.  Change all
404         uses.
405         * optabs.h (struct optab_d): Rename from struct optab.  Change all
406         uses.
407         (struct convert_optab_d): Rename from struct convert_optab.
408         Change all uses.
409         * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct
410         ipa_opt_pass.  Change all uses.
411         * tree-predcom.c (struct dref_d): Rename from struct dref.  Change
412         all uses.
413
414         * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already
415         defined as a typedef.
416         (grokdeclarator): If -Wc++-compat, warn if a typedef is already
417         defined as a tag.
418
419 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
420
421         PR 16302
422         * fold-const.c (make_range,build_range_check,merge_ranges): Move
423         declaration to...
424         (merge_ranges): Returns bool. 
425         * tree.h (make_range): .. to here.
426         (build_range_check): Likewise.
427         (merge_ranges): Likewise. Renamed from merge_ranges.
428         * c-typeck.c (parser_build_binary_op): Update calls to
429         warn_logical_operator.
430         * c-common.c (warn_logical_operator): Add new warning.
431         * c-common.h (warn_logical_operator): Update declaration.
432         
433 2009-05-15  Manuel López-Ibáñez  <manu@gcc.gnu.org>
434
435         * ira-conflicts.c (add_insn_allocno_copies): Fix wrong
436         conditional.
437         
438 2009-05-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
439
440         * doc/install.texi: Document MPC requirements, flags etc.
441
442         * builtins.c (do_mpc_arg1, fold_builtin_ccos): New.
443         (fold_builtin_cexp): Ensure we get a complex REAL_TYPE.
444         Evaluate constant arguments.
445         (fold_builtin_carg): Ensure we get a complex REAL_TYPE.
446         (fold_builtin_1): Likewise, also evaluate constant arguments.
447         Remove superfluous break.
448         (do_mpc_ckconv): New.
449         * real.h: Include mpc.h.
450         * toplev.c (print_version): Output MPC version info if available.
451
452 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
453
454         * fold-const.c (fold_convert_const_real_from_real): Check for
455         overflow.
456
457 2009-05-15  H.J. Lu  <hongjiu.lu@intel.com>
458
459         * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p
460         only once.
461
462 2009-05-15  Jan Hubicka  <jh@suse.cz>
463
464         * doc/invoke.texi (max-early-inliner-iterations): New flag.
465         * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE.
466         (try_inline): Fix return value.
467         (cgraph_decide_inlining_incrementally): Honor new value.
468         (cgraph_early_inlining): Handle indirect inlining.
469         * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New.
470
471 2009-05-15  Jan Hubicka  <jh@suse.cz>
472
473         * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag.
474         * cgraphunit.c (cgraph_finalize_function): Set it.
475         (cgraph_expand_function): Use it.
476
477 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
478
479         * real.c (encode_ieee_half): Define.
480         (decode_ieee_half): Define.
481         (ieee_half_format): Define.
482         (arm_half_format): Define.
483         * real.h (ieee_half_format): Declare.
484         (arm_half_format): Declare.
485
486 2009-05-15  Sandra Loosemore  <sandra@codesourcery.com>
487
488         * optabs.c (prepare_float_lib_cmp):  Test that the comparison,
489         swapped, and reversed optabs exist before trying to use them.
490
491 2009-05-15  Paul Brook  <paul@codesourcery.com>
492             Sandra Loosemore  <sandra@codesourcery.com>
493
494         * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure
495         loads.  Allow PRE_DEC.
496         (output_move_neon): Handle PRE_DEC.
497         (arm_print_operand): Add 'A' for neon structure loads.
498         * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype.
499         * config/arm/neon.md (neon_mov): Update comment.
500         * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand
501         calls.
502         (Um): New constraint.
503
504 2009-05-15  Jan Hubicka  <jh@suse.cz>
505
506         Revert the following patch until testsuite fallout is fixed:
507         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
508         * cgraph.h (struct inline_summary): New filed self_wize,
509         size_inlining_benefit, self_time and time_inlining_benefit.
510         (struct cgraph_global_info): Replace insns by time ans size fields.
511         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
512         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
513         (ipcp_update_callgraph): Do not touch function bodies.
514         * ipa-inline.c: Include except.h
515         MAX_TIME: New constant.
516         (overall_insns): Remove
517         (overall_size, max_benefit): New static variables.
518         (cgraph_estimate_time_after_inlining): New function.
519         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
520         (cgraph_clone_inlined_nodes): Update size.
521         (cgraph_mark_inline_edge): Update size.
522         (cgraph_estimate_growth): Use size info.
523         (cgraph_check_inline_limits): Check size.
524         (cgraph_default_inline_p): Likewise.
525         (cgraph_edge_badness): Compute badness based on benefit and size cost.
526         (cgraph_decide_recursive_inlining): Check size.
527         (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
528         times.
529         (cgraph_decide_inlining): Likewise.
530         (cgraph_decide_inlining_incrementally): Likewise; honor
531         PARAM_EARLY_INLINING_INSNS.
532         (likely_eliminated_by_inlining_p): New predicate.
533         (estimate_function_body_sizes): New function.
534         (compute_inline_parameters): Use it.
535         * except.c (must_not_throw_labels): New function.
536         * except.h (must_not_throw_labels): Declare.
537         * tree-inline.c (init_inline_once): Kill inlining_weigths
538         * tree-ssa-structalias.c: Avoid uninitialized warning.
539         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
540         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
541         (PARAM_INLINE_CALL_COST): Remove.
542         (PARAM_EARLY_INLINING_INSNS): New.
543
544 2009-05-15  Richard Guenther  <rguenther@suse.de>
545
546         * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals,
547         not TODO_update_ssa.
548
549 2009-05-15  Richard Guenther  <rguenther@suse.de>
550
551         PR tree-optimization/39999
552         * gimple.h (gimple_expr_type): Use the expression type looking
553         through useless conversions.
554         * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type.
555         (vn_nary_op_insert_stmt): Likewise.
556         (simplify_binary_expression): Likewise.
557
558 2009-05-15  Richard Guenther  <rguenther@suse.de>
559
560         * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
561         New options, enabled by default.
562         * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta):
563         Document.
564         * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop.
565         * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop.
566         * tree-ssa-structalias.c (gate_tree_pta): New function.
567         (pass_build_alias): Use it.
568
569 2009-05-15  Joseph Myers  <joseph@codesourcery.com>
570
571         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
572         recurse on an invariant address if a conversion from a pointer
573         type to a wider integer type is involved.
574
575 2009-05-15  Jan Hubicka  <jh@suse.cz>
576
577         * cgraph.c (dump_cgraph_node): Dump size/time/benefit.
578         * cgraph.h (struct inline_summary): New filed self_wize,
579         size_inlining_benefit, self_time and time_inlining_benefit.
580         (struct cgraph_global_info): Replace insns by time ans size fields.
581         * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size
582         (ipcp_estimate_growth, ipcp_insert_stage): Likewise.
583         (ipcp_update_callgraph): Do not touch function bodies.
584         * ipa-inline.c: Include except.h
585         MAX_TIME: New constant.
586         (overall_insns): Remove
587         (overall_size, max_benefit): New static variables.
588         (cgraph_estimate_time_after_inlining): New function.
589         (cgraph_estimate_size_after_inlining): Rewrite using benefits.
590         (cgraph_clone_inlined_nodes): Update size.
591         (cgraph_mark_inline_edge): Update size.
592         (cgraph_estimate_growth): Use size info.
593         (cgraph_check_inline_limits): Check size.
594         (cgraph_default_inline_p): Likewise.
595         (cgraph_edge_badness): Compute badness based on benefit and size cost.
596         (cgraph_decide_recursive_inlining): Check size.
597         (cgraph_decide_inlining_of_small_function): Update size; dump sizes and
598         times.
599         (cgraph_decide_inlining): Likewise.
600         (cgraph_decide_inlining_incrementally): Likewise; honor
601         PARAM_EARLY_INLINING_INSNS.
602         (likely_eliminated_by_inlining_p): New predicate.
603         (estimate_function_body_sizes): New function.
604         (compute_inline_parameters): Use it.
605         * except.c (must_not_throw_labels): New function.
606         * except.h (must_not_throw_labels): Declare.
607         * tree-inline.c (init_inline_once): Kill inlining_weigths
608         * tree-ssa-structalias.c: Avoid uninitialized warning.
609         * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300.
610         (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60.
611         (PARAM_INLINE_CALL_COST): Remove.
612         (PARAM_EARLY_INLINING_INSNS): New.
613         doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update.
614         (inline-call-cost): Remove.
615         (early-inlining-insns): New.
616
617 2009-05-15  Eric Botcazou  <ebotcazou@adacore.com>
618
619         * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters.  Use them
620         for bounds.
621         (print_int_cst_bounds_in_octal_p): Likewise.
622         (dbxout_type): Adjust calls to above functions.  Be prepared to deal
623         with subtypes.
624         * dwarf2out.c (base_type_die): Likewise.
625         (is_subrange_type): Delete.
626         (subrange_type_die): Add LOW and HIGH parameters.  Use them for bounds.
627         (modified_type_die): Call subrange_type_for_debug_p on subtypes.
628         * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it if
629         the destination type is boolean.
630         (build_range_check): Do not special-case subtypes.
631         (fold_sign_changed_comparison): Likewise.
632         (fold_unary): Likewise.
633         * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define.
634         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS.
635         * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds.
636         * tree.c (subrange_type_for_debug_p): New predicate based on the former
637         is_subrange_type.
638         * tree.h (subrange_type_for_debug_p): Declare.
639         * tree-chrec.c (avoid_arithmetics_in_type_p): Delete.
640         (convert_affine_scev): Remove call to above function.
641         (chrec_convert_aggressive): Likewise.
642         * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return
643         false for conversions involving subtypes.
644         * tree-vrp.c (vrp_val_max): Do not special-case subtypes.
645         (vrp_val_min): Likewise.
646         (needs_overflow_infinity): Likewise.
647         (extract_range_from_unary_expr): Likewise.
648
649 2009-05-15  Paolo Bonzini  <bonzini@gnu.org>
650
651         * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS.
652         * config/frv/frv.c: Likewise.
653         * config/s390/s390.c: Likewise.
654         * config/sparc/sparc.h: Likewise.
655         * config/i386/i386.h: Likewise.
656         * config/i386/i386.c: Likewise.
657         * config/crx/crx.c: Likewise.
658         * config/m68hc11/m68hc11.h: Likewise.
659         * config/iq2000/iq2000.c: Likewise.
660         * config/mn10300/mn10300.h: Likewise.
661         * config/mn10300/mn10300.c: Likewise.
662         * config/m68k/m68k.c: Likewise.
663         * config/rs6000/rs6000.c: Likewise.
664         * config/rs6000/xcoff.h: Likewise.
665         * config/rs6000/linux64.h: Likewise.
666         * config/rs6000/sysv4.h: Likewise.
667         * config/score/score3.c: Likewise.
668         * config/score/score7.c: Likewise.
669         * config/score/score.c: Likewise.
670         * config/arm/arm.md: Likewise.
671         * config/mips/mips.c: Likewise.
672         * config/mips/mips.md: Likewise.
673         * config/bfin/bfin.h: Likewise.
674         * config/pa/pa.c: Likewise.
675         * config/pa/constraints.md: Likewise.
676
677         * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete.
678         * config/pdp11/pdp11.c (legitimate_address_p): Delete.
679         * config/pdp11/pdp11.h: Use memory_address_p instead.
680
681 2009-05-14  Ian Lance Taylor  <iant@google.com>
682
683         * passes.c (finish_optimization_passes): Change i to int.
684         * plugin.c (plugins_active_p): Change event to int.
685         (dump_active_plugins): Likewise.
686         * reginfo.c (invalid_mode_change_p): Change to to unsigned int.
687         Add cast.
688         * tree.c (tree_range_check_failed): Change c to unsigned int.
689         (omp_clause_range_check_failed): Likewise.
690         (build_common_builtin_nodes): Change mode to int.  Add cast.
691         * config/ia64/ia64.c (is_emitted): Change r to unsigned int.
692         (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise.
693
694         * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using
695         ++ or -- with a variable of enum type.
696
697 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
698
699         PR driver/40144
700         * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op.
701
702 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
703
704         * store-motion.c: Do not include params.h
705         * Makefile.in: Fix dependencies for various files.
706
707 2009-05-14  Steven Bosscher  <steven@gcc.gnu.org>
708
709         * auto-inc-dec.c: Fix pass description, remove apparent
710         accidental duplication.
711
712 2009-05-14  H.J. Lu  <hongjiu.lu@intel.com>
713
714         PR middle-end/40147
715         * ipa-utils.h (memory_identifier_string): Moved to ...
716         * tree.h (memory_identifier_string): Here.  Add GTY(()).
717
718 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
719
720         * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this
721         in the former documentation of...
722         (GO_IF_LEGITIMATE_ADDRESS): ... this.
723         * ira-conflicts.c (get_dup_num): Use address_operand.
724         * targhooks.c (default_legitimate_address_p): New.
725         * targhooks.h (default_legitimate_address_p): New.
726         * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]:
727         Call hook.
728         * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook.
729         * target.h (struct target): Add legitimate_address_p.
730         * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New.
731         (TARGET_INITIALIZER): Include it.
732
733         * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
734         * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove.
735         * config/alpha/alpha.c (alpha_legitimate_address_p): Make static.
736         (TARGET_LEGITIMATE_ADDRESS_P): New.
737
738         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
739         (REG_OK_STRICT_P): Delete.
740         * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to...
741         (frv_legitimate_address_p_1): ... this.
742         * config/frv/frv.c (frv_legitimate_address_p): Forward to...
743         (frv_legitimate_address_p_1): ... the renamed old
744         frv_legitimate_address_p.
745         * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p.
746         (TARGET_LEGITIMATE_ADDRESS_P): New.
747
748         * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
749         * config/s390/s390-protos.h (legitimate_address_p): Remove.
750         * config/s390/s390.c (legitimate_address_p): Rename to...
751         (s390_legitimate_address_p): ... this, make static.
752         (legitimize_address): Adjust call.
753         (TARGET_LEGITIMATE_ADDRESS_P): New.
754         * config/s390/constraints.md ("e"): Call strict_memory_address_p.
755
756         * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
757         * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove.
758         * config/m32c/m32c.c (m32c_legitimate_address_p): Make static.
759         (TARGET_LEGITIMATE_ADDRESS_P): New.
760
761         * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
762         * config/spu/spu-protos.h (spu_legitimate_address): Remove.
763         * config/spu/spu.c (spu_legitimate_address): Rename to...
764         (spu_legitimate_address_p): ... this, make static.
765         (TARGET_LEGITIMATE_ADDRESS_P): New.
766
767         * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
768         * config/sparc/sparc-protos.h (legitimate_address_p): Remove.
769         * config/sparc/sparc.c (legitimate_address_p): Rename to...
770         (sparc_legitimate_address_p): ... this, make static and return bool.
771         (legitimize_address): Adjust call.
772         (TARGET_LEGITIMATE_ADDRESS_P): New.
773
774         * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
775         * config/i386/i386-protos.h (legitimate_address_p): Remove.
776         * config/i386/i386.c (legitimate_address_p): Rename to...
777         (ix86_legitimate_address_p): ... this, make static.
778         (constant_address_p): Move after it, adjust call.
779         (TARGET_LEGITIMATE_ADDRESS_P): New.
780
781         * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
782         * config/avr/avr-protos.h (legitimate_address_p): Remove.
783         * config/avr/avr.c (legitimate_address_p): Rename to...
784         (avr_legitimate_address_p): ... this, make static.
785         (legitimize_address): Adjust call.
786         (TARGET_LEGITIMATE_ADDRESS_P): New.
787
788         * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
789         * config/crx/crx-protos.h (crx_legitimate_address_p): Remove.
790         * config/crx/crx.c (crx_legitimate_address_p): Make static.
791         (TARGET_LEGITIMATE_ADDRESS_P): New.
792
793         * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
794         * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove.
795         * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static.
796         (TARGET_LEGITIMATE_ADDRESS_P): New.
797
798         * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
799         * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p):
800         Remove.
801         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
802         Make static.
803         (TARGET_LEGITIMATE_ADDRESS_P): New.
804
805         * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
806         * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address):
807         Remove.
808         * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address):
809         Rename to...
810         (m68hc11_legitimate_address_p): ... this, make static.
811         (go_if_legitimate_address_internal): Rename to...
812         (m68hc11_legitimate_address_p_1): ... this.
813         (legitimize_address): Adjust call.
814         (TARGET_LEGITIMATE_ADDRESS_P): New.
815
816         * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
817         * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p):
818         Remove.
819         * config/iq2000/iq2000.c (iq2000_legitimate_address_p):
820         Make static.
821         (TARGET_LEGITIMATE_ADDRESS_P): New.
822
823         * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
824         * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove.
825         * config/mn10300/mn10300.c (legitimate_address_p): Rename to...
826         (mn10300_legitimate_address_p): ... this, make static.
827         (TARGET_LEGITIMATE_ADDRESS_P): New.
828
829         * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
830         * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove.
831         * config/m68k/m68k.c (m68k_legitimate_address_p): Make static.
832         (TARGET_LEGITIMATE_ADDRESS_P): New.
833
834         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
835         (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete.
836         (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above.
837         * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
838         * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove.
839         * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to...
840         (rs6000_legitimate_address_p): ... this, make static.
841         (TARGET_LEGITIMATE_ADDRESS_P): New.
842         (REG_MODE_OK_FOR_BASE_P): Delete.
843         (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P.
844
845         * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
846         * config/picochip/picochip-protos.h (picochip_legitimate_address_p):
847         Delete.
848         * config/picochip/picochip.c (picochip_legitimate_address_p): Make
849         static, adjust types.
850         (TARGET_LEGITIMATE_ADDRESS_P): New.
851
852         * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
853         * config/score/score.c (score_address_p): Rename to...
854         (score_legitimate_address_p): ... this.
855         (TARGET_LEGITIMATE_ADDRESS_P): New.
856         * config/score/score3.c (score3_address_p): Rename to...
857         (score3_legitimate_address_p): ... this.
858         * config/score/score7.c (score7_address_p): Rename to...
859         (score7_legitimate_address_p): ... this.
860
861         * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS,
862         THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS,
863         GO_IF_LEGITIMATE_ADDRESS): Delete.
864         * config/arm/arm-protos.h (thumb1_legitimate_address_p,
865         thumb2_legitimate_address_p): Delete.
866         (arm_legitimate_address_p): Rename to...
867         (arm_legitimate_address_outer_p): ... this.
868         * config/arm/constraints.md ("Uq"): Adjust call.
869         * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise.
870         * config/arm/arm.c (arm_legitimate_address_p): New, rename old one to...
871         (arm_legitimate_address_outer_p): ... this.
872         (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make static.
873         (TARGET_LEGITIMATE_ADDRESS_P): New.
874
875         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
876         * config/mips/mips-protos.h (mips_legitimate_address_p): Remove.
877         * config/mips/mips.c (mips_legitimate_address_p): ... Make static.
878         (TARGET_LEGITIMATE_ADDRESS_P): New.
879
880         * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
881         * config/vax/vax-protos.h (legitimate_address_p): Remove.
882         * config/vax/vax.c (legitimate_address_p): Rename to...
883         (vax_legitimate_address_p): ... this, make static.
884         (TARGET_LEGITIMATE_ADDRESS_P): New.
885
886         * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
887         * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove.
888         * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static.
889         (TARGET_LEGITIMATE_ADDRESS_P): New.
890
891         * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
892         * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove.
893         * config/mmix/mmix.c (mmix_legitimate_address): Rename to...
894         (mmix_legitimate_address_p): ... this, make static.
895         (TARGET_LEGITIMATE_ADDRESS_P): New.
896
897         * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete.
898         * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove.
899         * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static.
900         (TARGET_LEGITIMATE_ADDRESS_P): New.
901
902 2009-05-14  Paolo Bonzini  <bonzini@gnu.org>
903
904         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling
905         of MODE_COMPLEX_INT.
906
907 2009-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
908
909         * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to
910         LCT_NORMAL in function call.
911         * mips-tdump.c (print_file_desc): Add cast to enum type.
912         * mips-tfile.c (add_ext_symbol): Add casts to enum types.
913         (mark_stabs): Add casts to enum types.
914         (parse_stabs_common): Add casts to enum types.
915
916 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
917
918         * config/mips/mips.c (mips_print_operand) <REG, MEM, default>:
919         Check for invalid values of LETTER.
920
921 2009-05-13  Taras Glek  <tglek@mozilla.com>
922
923         * attribs.c (register_attribute): moved out attribute registration into
924         register_attribute.
925         * doc/plugins.texi: Documented register_attribute and PLUGIN_ATTRIBUTES.
926         * gcc-plugin.h: Added forward decl for register_attribute.
927         * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES.
928         * plugin.c (register_callback, invoke_plugin_callbacks): Added
929         PLUGIN_ATTRIBUTES boilerplate.
930
931 2009-05-14  Dave Korn  <dave.korn.cygwin@gmail.com>
932
933         * config/i386/msformat-c.c (ms_printf_length_specs):  Use enumeration
934         values even in sentinel and empty entries.
935         (ms_printf_flag_specs):  Likewise.
936         (ms_scanf_flag_specs):  Likewise.
937         (ms_strftime_flag_specs):  Likewise.
938         (ms_print_char_table):  Likewise.
939         (ms_scan_char_table):  Likewise.
940         (ms_time_char_table):  Likewise.
941
942 2009-05-13  Doug Kwan  <dougkwan@google.com>
943
944         * tree-ssa-sccvn.c (compare_ops): Stabilize qsort.
945
946 2009-05-13  Adam Nemet  <anemet@caviumnetworks.com>
947
948         * config/mips/mips.md (store): Add attributes for QI and HI.
949         Update comment.
950         (truncdisi2, truncdihi2, truncdiqi2): Merge these into ...
951         (truncdi<mode>2): ... this new pattern.
952
953 2009-05-13  Brad Hards  <bradh@kde.org>
954
955         * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi.
956
957 2009-05-14  Jakub Jelinek  <jakub@redhat.com>
958             Ben Elliston <bje@au.ibm.com>
959
960         PR middle-end/40035
961         * dse.c (check_mem_read_rtx): Guard against width == -1.
962
963 2009-05-13  Michael Matz  <matz@suse.de>
964
965         PR middle-end/39976
966         * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function.
967         (trivially_conflicts_p): New function.
968         (insert_backedge_copies): Use it.
969
970 2009-05-13  Janis Johnson  <janis187@us.ibm.com>
971
972         * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_.
973         (handle_stdc_pragma): Use new enum constant names.
974         (handle_pragma_float_const_decimal64): Ditto.
975
976 2009-05-13  Ian Lance Taylor  <iant@google.com>
977
978         * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not
979         tree.def.
980
981 2009-05-13  Nathan Sidwell  <nathan@codesourcery.com>
982
983         * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX.
984         * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455
985         multilibs.
986         * config/m68k/m68k.h (FL_UCLINUX): Define.
987
988 2009-05-13  Jan Hubicka  <jh@suse.cz>
989
990         * options.c (gfc_post_options): -fwhole-program imply -fwhole-file.
991
992 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
993
994         * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
995         unless -fschedule-insns is specified.
996
997 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
998
999         PR target/39561
1000         * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
1001         TARGET_EXPAND_CBRANCHDI4.
1002         * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4.
1003         * config/sh/sh.opt (mexpand-cbranchdi): Remove.
1004         (cmpeqdi): Fix comment.
1005
1006 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
1007
1008         * config/sh/sh-protos.h (sh_legitimate_index_p): Declare.
1009         (sh_legitimate_address_p): Likewise.
1010         * config/sh/sh.c (sh_legitimate_index_p): New.
1011         (sh_legitimate_address_p): Likewise.
1012         * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter.
1013         (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise.
1014         (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove.
1015         (MAYBE_BASE_REGISTER_RTX_P): New macro.
1016         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
1017         (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P.
1018         (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P.
1019         (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p.
1020         (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p.
1021
1022 2009-05-12  Jan Hubicka  <jh@suse.cz>
1023
1024         * tree-inline.c (estimate_operator_cost): Add operands;
1025         when division happens by constant, it is cheap.
1026         (estimate_num_insns): Loads and stores are not having cost of 0;
1027         EH magic stuff is cheap; when computing runtime cost of switch,
1028         use log2 base of amount of its cases; builtin_expect has cost of 0;
1029         compute cost for moving return value of call.
1030         (init_inline_once): Initialize time_based flags.
1031         * tree-inline.h (eni_weights_d): Add time_based flag.
1032
1033 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
1034
1035         * df-core.c: Update head documentation.
1036
1037 2009-05-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
1038
1039         PR bootstrap/40118
1040         * rs6000.c (rs6000_generate_compare): Use op1b instead of
1041         shadowing exisiting variable op1.
1042
1043 2009-05-12  Uros Bizjak  <ubizjak@gmail.com>
1044
1045         PR target/37179
1046         * config/i386/driver-i386.c (processor_signatures): New enum.
1047         (SIG_GEODE): Move from vendor_signatures to processor_signatures.
1048         (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE
1049         processor signature to detect geode processor.
1050
1051 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
1052
1053         Revert:
1054
1055         2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
1056
1057         * optabs.c (prepare_cmp_insn): Temporarily disable test that
1058         causes spurious differences between trunk and cond-optab branch.
1059
1060 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
1061
1062         * dojump.c (compare_from_rtx): Delete.
1063         * expmed.c (emit_store_flag): Only try cstore_optab.  Canonicalize
1064         any MODE_CC mode to the cstorecc4 pattern.  Use prepare_operand, fail
1065         if the comparison does not satisfy the predicate; test predicates for
1066         operands 2 and 3 of a cstore pattern.  Don't try cstore optab
1067         further if one existing pattern fails.
1068         * expr.h (compare_from_rtx): Delete.
1069         (prepare_operand): Declare it.
1070         * optabs.c: Change "lib call" to "libcall" throughout.
1071         (bcc_gen_fctn, setcc_gen_code, trap_rtx,
1072         HAVE_conditional_trap, emit_cmp_insn): Delete.
1073         (can_compare_p): Delete cmp_optab case.
1074         (prepare_float_lib_cmp): Return an rtx and a machine mode.
1075         Accept other parameters by value.
1076         (prepare_operand): Make non-static.
1077         (prepare_cmp_insn): Return an rtx and a machine mode.  Accept
1078         other parameters by value.  Try to widen operands here based on
1079         an optab_methods argument and looking at cbranch_optab.
1080         (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening
1081         loop.  Use cbranch_optab directly.
1082         (emit_cmp_and_jump_insns): Fix comment.  Adjust call to
1083         prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete
1084         assertion.
1085         (emit_conditional_move, emit_conditional_add): Inline what's needed
1086         of compare_from_rtx, using new prepare_cmp_insn for the rest.
1087         (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab
1088         with COMPARE.  Move cmov_optab and cstore_optab above
1089         with cbranch_optab, move cmp_optab down with ucmp_optab,
1090         remove tst_otpab.  Do not initialize trap_rtx.
1091         (gen_cond_trap): Do it here.  Use ctrap_optab.  Test predicate
1092         for trap code.  Do not check HAVE_conditional_trap.  Use
1093         prepare_cmp_insn.  Accept no predicate for operand 3.
1094         * optabs.h (OTI_cmp): Mark as used only for libcalls.
1095         (OTI_ctrap, ctrap_optab): New.
1096         (tst_optab): Delete.
1097         (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete.
1098         * ifcvt.c (find_if_header): Replace HAVE_conditional_trap
1099         with lookup of ctrap_optab.
1100         * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn,
1101         setcc_gen_code): Delete.
1102         (ctrap_optab): New.
1103
1104         * combine.c (combine_simplify_rtx, simplify_set): Do not
1105         special case comparing against zero for cc0 machines.
1106         * simplify-rtx.c (simplify_binary_operation_1): Never remove
1107         COMPARE on cc0 machines.
1108         (simplify_relational_operation): Return a new expression when
1109         a COMPARE could be removed.
1110         * final.c (final_scan_insn): Compare cc_status values
1111         against LHS of a (compare FOO (const_int 0)) cc0 source.
1112         Also check if cc_status.value is the full compare.
1113
1114         * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete.
1115         (cstoreMM4): Document.
1116         (conditional_trap): Document ctrapMM4 instead.
1117         (sync_compare_and_swapMM): Refer to cbranchcc4.
1118         (Dependent Patterns): Eliminate obsolete information referring to
1119         the old jump optimization phase.
1120         (Canonicalization): Include cbranchcc4 case, omit canonicalization
1121         of compares with 0 on cc0 machines.
1122         (Jump Patterns): Refer to MODE_CC jump patterns preferably,
1123         avoiding references to cc0.  Remove text about storing operands
1124         in cmpMM.
1125         * doc/tm.texi (Condition Codes): Include blurb on different
1126         condition code representations, separate into subsections for
1127         CC0, MODE_CC and conditional execution.
1128
1129         * config/alpha/alpha-protos.h (alpha_emit_conditional_branch,
1130         alpha_emit_setcc): Accept operands and a machine mode.
1131         * config/alpha/alpha.c (alpha_emit_conditional_branch):
1132         Get code/op0/op1 from operands, use machine mode argument
1133         instead of alpha_compare.fp_p.  Emit the branch here.
1134         (alpha_emit_setcc): Likewise, and return boolean.
1135         (alpha_emit_conditional_move): Likewise.  Assert that
1136         cmp_op_mode == cmp_mode, and simplify accordingly.
1137         * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete.
1138         * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete.
1139         (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4):
1140         Delete.
1141         (stack probe test): Use cbranchdi4.
1142         * config/alpha/predicates.md (alpha_cbranch_operator): New.
1143
1144         * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 
1145         * config/arc/arc.h (movsicc, movsfcc): Use it.
1146         (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove.
1147         (cbranchsi4, cstoresi4): New.
1148         (cmpsi, bCC and sCC expanders): Remove. 
1149
1150         * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete.
1151         * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete.
1152         * config/arm/predicates.md (arm_comparison_operator): Only include
1153         floating-point operators if there is a hardware floating-point unit.
1154         * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT,
1155         deferring to cbranch_cc and cstore_cc respectively.
1156         (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4,
1157         cbranch_cc, cstore_cc): New.
1158         (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and
1159         arm_compare_op1.
1160         (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete.
1161
1162         * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype.
1163         * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand
1164         as an argument.
1165         (adjust_insn_length): Adjust calls.
1166         (avr_reorg): Handle (compare (foo) (const_int 0)).
1167         * config/avr/avr.md (tstqi, tsthi, tstsi): Remove.
1168         (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize.
1169         (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity.
1170         (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here.
1171         (bCC): Remove.
1172         (cbranchqi4, cbranchhi4, cbranchsi4): New.
1173         (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE.
1174
1175         * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete.
1176         (cbranchsi4, cstorebi4, cstoresi4): New.
1177         (movbisi): This insn is duplicate, split it to zero_extend.
1178         * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete
1179         (bfin_gen_compare): Do not use them.  Emit VOIDmode SET, not BImode.
1180         (bfin_optimize_loop): Use cbranch expander.
1181         * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete.
1182         * config/bfin/predicates.md (bfin_cbranch_operator): Rename to...
1183         (bfin_bimode_comparison_operator): ... this.
1184         (bfin_direct_comparison_operator): New.
1185  
1186         * config/cris/cris.c (cris_normal_notice_update_cc): Look
1187         inside (compare FOO (const_int 0)).
1188         (cris_rtx_costs): Handle ZERO_EXTRACT.
1189         * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete.
1190         (*tstdi_non_v32): Fold in *cmpdi_non_v32.
1191         (*tstdi_v32): Delete.
1192         (*cmpdi_non_v32): Add M alternative for operand 1.
1193         (cmpsi, cmp<mode>): Make private.
1194         (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS
1195         with COMPARE.
1196         (cbranch<mode>4, cbranchdi4, cstore<mode>4): New.
1197
1198         * config/crx/crx.md (cstore<mode>4, cbranchcc4): New.
1199         (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete.
1200         (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator.
1201         (cc_reg_operand): New.
1202         (any_cond): Delete.
1203         * config/crx/crx.c (crx_compare_op0, crx_compare_op1,
1204         crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete.
1205         * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete.
1206         * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch,
1207         crx_expand_scond): Delete.
1208
1209         * config/fr30/fr30.md (cmp<mode>, bCC): Delete.
1210         (cbranchsi4): New.
1211         * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete
1212         * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete.
1213
1214         * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4,
1215         cstoresi4, cstoresf4, cstoredf4): New.
1216         (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove.
1217         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
1218         Receive the entire operands array.
1219         * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete.
1220         * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete.
1221         * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc):
1222         Get test/op0/op1 from the operands array.
1223         (frv_emit_cond_move): Get test/op0/op1 from the test_rtx.
1224
1225         * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands.
1226         (h8300_expand_store): New.
1227         * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO
1228         (const_int 0)).
1229         (h8300_expand_branch): Emit compare here.  Adjust for new arguments.
1230         (h8300_expand_store): New.
1231         * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE
1232         or do not try to produce (set (cc0) REG).
1233         (peepholes): Wrap arguments with COMPARE.  Add a peephole to
1234         change a compare into a move to a scratch register.  Disable some
1235         peepholes when comparing with zero.
1236         (tstsi, tsthi, tstsi, cmpqi): Make private.
1237         (cmphi): Delete.
1238         (bCC, sCC): Delete.
1239         (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4,
1240         cstoresi4): New.
1241
1242         * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc,
1243         ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1.
1244         (ix86_emit_i387_log1p): Use gen_cbranchxf4.
1245         (ix86_emit_i387_log1p): Use cbranchxf2.
1246         (ix86_expand_setcc): Return void.
1247         * config/i386/i386-protos.h (ix86_expand_setcc): Return void.
1248         * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf,
1249         cmp<MODEF>, cmpcc): Remove.
1250         (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4,
1251         cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4,
1252         cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New.
1253         (sCC and bCC expanders): Remove.
1254         (stack_protect_test): Use cbranchcc4.
1255
1256         * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1):
1257         Delete.
1258         (ia64_expand_compare): Accept three rtx by reference and return void.
1259         * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete.
1260         (ia64_expand_compare): Replace op0/op1 with *op0/*op1.  Get code
1261         from *expr.  Update *expr with the BImode comparison to do.
1262         * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf,
1263         cmptf, bCC, sCC, conditional_trap): Delete.
1264         (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 
1265         cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4,
1266         cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4,
1267         ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New.
1268         * config/ia64/predicates.md (ia64_cbranch_operator): New.
1269
1270         * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change
1271         type of last argument.
1272         * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove.
1273         (gen_conditional_branch): Get code/cmp0/cmp1 from operands,
1274         use machine mode argument instead of branch_type.  Remove dead
1275         code for floating-point comparisons.
1276         * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove.
1277         * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC):
1278         Remove.
1279         (cbranchsi4, cstoresi4): New.
1280         * config/iq2000/predicates.md (reg_or_const_operand): New.
1281
1282         * config/m32c/m32c.md (cbranch splitter): Use match_op_dup.
1283         * config/m32c/m32c.md (any_cond, gl_cond): Delete.
1284         (b<code>_op): Rewrite to...
1285         (bcc_op): ... this, using match_operator.
1286         (s<code>_op): Rewrite to...
1287         (scc_op): ... this, using match_operator.
1288         (s<code>_24_op): Rewrite to...
1289         (scc_op_24): ... this, using match_operator.
1290         (s<code>_<mode>): Rewrite to...
1291         (cstore<mode>4): ... this, using match_operator.
1292         (s<code>_<mode>_24): Rewrite to...
1293         (cstore<mode>4_24): ... this, using match_operator.
1294         * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare,
1295         m32c_unpend_compare, m32c_expand_scc): Delete.
1296         * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0,
1297         m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete.
1298         (m32c_expand_movcc): Change NE to EQ if necessary.
1299         (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code.
1300
1301         * config/m32r/m32r-protos.h (gen_cond_store): New.
1302         * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete.
1303         (gen_cond_store): New, from sCC patterns.
1304         (m32r_expand_block_move): Use cbranchsi4.
1305         * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete.
1306         * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete.
1307         (cbranchsi4, cstoresi4): New.
1308         
1309         * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1):
1310         Delete.
1311         (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT.
1312         (m68hc11_notice_update_cc): Look into a compare with 0.
1313         * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1):
1314         Delete.
1315         * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi,
1316         cmphi, cmpqi, bCC): Delete.
1317         (cbranchsi4, cbranchhi4, cbranchqi4): New.
1318         (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used,
1319         bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg
1320         sets with COMPARE.
1321
1322         * config/m68k/predicates.md (m68k_cstore_comparison_operator,
1323         const0_operand, const1_operand, m68k_subword_comparison_operand): New.
1324         * config/m68k/constraints.md (H): New.
1325         * config/m68k/m68k.md (tstdi): Remove define_expand, use name for
1326         the define_insn below.
1327         (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete.
1328         (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal,
1329         *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed
1330         patterns): Wrap RHS with COMPARE.
1331         (tst<FP>_68881, tst<FP>_cf): Use const0_operand.
1332         (*cmpdi_internal): Name this pattern.
1333         (cmpdi): Change to define_insn.
1334         (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4,
1335         cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New.
1336         (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator
1337         predicate.
1338         (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered,
1339         sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete
1340         (conditional_trap): Change to...
1341         (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these.
1342         (*conditional_trap): Use the ordered_comparison_operator and
1343         const1_operand predicates.
1344         * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete.
1345         (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap.
1346         (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE.
1347         * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete.
1348
1349         * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1,
1350         mcore_modify_comparison, mcore_gen_compare_reg): Remove.
1351         (mcore_gen_compare): New. 
1352         * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete.
1353         (mcore_modify_comparison, mcore_gen_compare_reg): Fold into...
1354         (mcore_gen_compare): ... this.
1355         * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove.
1356         (cbranchsi4, cstoresi4): New, using mcore_gen_compare.
1357         (stack probe pattern): Use cbranchsi4.
1358
1359         * config/mips/predicates.md (mips_cstore_operator): New.
1360         * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands.
1361         * config/mips/mips.md (any_cond): Delete.
1362         (conditional_trap): Rename to ctrap<GPR:mode>4.  Adjust predicates,
1363         always succeed.
1364         (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2,
1365         fixuns_truncsfdi2): Use cbranch patterns.
1366         (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 
1367         (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4.
1368         Adjust call to mips_expand_conditional_branch.
1369         (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to
1370         cstore<GPR:mode>4.
1371         * config/mips/mips-protos.h (mips_expand_conditional_branch,
1372         mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes.
1373         * config/mips/mips.c (cmp_operands): Delete.
1374         (mips_emit_compare): Get comparison operands from *op0/*op1.
1375         (mips_expand_scc): Get code/op0/op1/target from operands.  Assert
1376         that it succeeds.  Use op0/op1 instead of cmp_operands.
1377         (mips_expand_conditional_branch, mips_expand_conditional_move,
1378         mips_expand_conditional_trap): Likewise.
1379         (mips_block_move_loop): Use cbranch patterns. 
1380         * config/mips/mips.h (cmp_operands): Delete.
1381
1382         * config/mmix/mmix.c (mmix_valid_comparison): Delete.
1383         (mmix_gen_compare_reg): Just return a register in the right CC mode.
1384         * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New.
1385         * config/mmix/mmix.md (cmpdi, cmpdf): Remove.
1386         (*cmpcc_folded): Rename to...
1387         (*cmpdi_folded): this.
1388         (*cmpcc): Rename to...
1389         (*cmps): ... this.
1390         (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg.
1391         (bCC): Remove.
1392         (cbranchdi4): New.
1393         (cbranchdf4): New.  Handle invalid comparisons here.
1394         * config/mmix/predicates.md (float_comparison_operator): New.
1395
1396         * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and
1397         zero_extract to be cheap in (compare (zero_extract) (const_int 0).
1398         * config/mn10300/mn10300.md (tst): Delete.
1399         (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi):
1400         Name these patterns and wrap RHS in a compare.
1401         (*cmpsi): Make this pattern private.  Include tst.
1402         (*cmpsf): Make this pattern private.
1403         (and and zero_extract cc0 set): Wrap RHS in a COMPARE.
1404         (compare with zero peepholes): Likewise.
1405         (bCC): Remove.
1406         (cbranchsi4, cbranchsf4): New.
1407         (casesi): Use cbranchsi4.
1408
1409         * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1,
1410         hppa_branch_type): Delete.
1411         (return_addr_rtx): Use cbranchsi4.
1412         (emit_bcond_fp): Accept all operands.  Replace CODE with NE.
1413         Emit CCFPmode comparison here.
1414         (gen_cmp_fp): Delete, now part of emit_bcond_fp.
1415         * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1,
1416         hppa_branch_type): Delete.
1417         * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete.
1418         (movsicc, movdicc): Remove references to hppa_compare_op0,
1419         hppa_compare_op1 and compare_from_rtx.
1420         (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New.
1421         (casesi): Use cbranchsi4.
1422
1423         * config/pdp11/pdp11-protos.h (output_jump): Change prototype.
1424         * config/pdp11/pdp11.c (output_jump): Embed opcodes here.
1425         * config/pdp11/pdp11.md (register_or_const0_operand): New.
1426         (cmpdf, cmphi, cmpqi): Make private.  Add tst alternatives.
1427         (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete.
1428         (bCC): Delete.
1429         (cbranchdf4, cbranchhi4, cbranchqi4): New.
1430         (*branch, *branch_inverted): New.
1431
1432         * config/picochip/picochip.md (cbranchhi4): Use
1433         ordered_comparison_operator.
1434         (cmphi, bCC): Remove.
1435
1436         * config/rs6000/predicates.md (rs6000_cbranch_operator): New.
1437         (trap_comparison_operator): Delete.
1438         * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND,
1439         rs6000_emit_cbranch): Accept mode and operands.
1440         * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1,
1441         rs6000_compare_fp_p): Delete.   
1442         (rs6000_generate_compare): Accept mode and comparison.  Extract code
1443         and op0/op1 from there.  Replace references to rs6000_compare_op0
1444         and rs6000_compare_op1.
1445         (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and
1446         extract result from passed operands.
1447         (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and
1448         extract loc from passed operands.
1449         (rs6000_emit_cmove): Likewise.
1450         * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1,
1451         rs6000_compare_fp_p): Delete.
1452         * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete.
1453         (cbranch<GPR>4, cbranch<FP>4): New.
1454         (cstore<mode>4): New.  Consolidate here all choices about when to use
1455         portable or specialized sCC sequences.
1456         (stack_protect_test): Use cbranchsi4.
1457         (conditional_trap): Replace with ctrap<GPR>4.
1458         (conditional trap insn): Replace trap_comparison_operator with
1459         ordered_comparison_operator. 
1460
1461         * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete.
1462         (s390_emit_prologue): Use ctrap.
1463         * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete.
1464         * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator):
1465         New predicates replacing...
1466         * config/s390/s390.md (COMPARE, SCOND): ... these iterators.
1467         (cmp<GPR>, cmp<FP>, cmpcc): Delete.
1468         (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch.
1469         (add<mode>cc): Do not use s390_compare_op0/op1.
1470         (s<code>): Change to...
1471         (cstore<mode>4): ... this. Do not use s390_compare_op0/op1.
1472         (seq): Change to...
1473         (cstorecc4): ... this.  Handle EQ or NE equally.
1474         (*sne): Un-privatize for use in cstorecc4.
1475         (b<code>): Change to...
1476         (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these.
1477         (conditional_trap): Replace with...
1478         (ctrap<GPR>4, ctrap<FP>4): ... these.
1479         (stack_protect): Use cbranchcc4.
1480
1481         * config/score/score-conv.h (cmp_op0, cmp_op1): Delete.
1482         * config/score/score-protos.h (score_gen_cmp): Delete.
1483         * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete.
1484         (score_block_move-loop): Use cbranchsi4.
1485         * config/score/score.md (cbranchsi4): New.
1486         (cmpsi, bCC): Delete.
1487         * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete.
1488         (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
1489         * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete.
1490         (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1.
1491         * config/score/score3.h (score3_gen_cmp): Delete.
1492         * config/score/score7.h (score7_gen_cmp): Delete.
1493
1494         * config/sh/sh-protos.h (prepare_scc_operands): Rename to...
1495         (sh_emit_scc_to_t): ... this.  Return void.
1496         (from_compare): Rename to...
1497         (sh_emit_compare_and_branch): ... this.
1498         (sh_emit_compare_and_set): New.
1499         (sh_expand_t_scc): Accept operands.
1500         * config/sh/predicates.md (sh_float_comparison_operator): New.
1501         * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete.
1502         (prepare_scc_operands): Rename to...
1503         (sh_emit_scc_to_t): ... this.  Return void.  Get op0/op1 from
1504         arguments.
1505         (sh_emit_cheap_store_flag): New.
1506         (sh_emit_set_t_insn): New.
1507         (from_compare): Rename to...
1508         (sh_emit_compare_and_branch): ... this.  Accept mode.  Rewrite
1509         handling of TARGET_SH2E floating point to avoid recursive call.
1510         Generate branch here.
1511         (sh_emit_compare_and_set): New.
1512         (sh_expand_t_scc): Get op0/op1 from arguments.
1513         (sh_emit_cheap_store_flag): New.
1514         * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi
1515         cases.
1516         (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint.
1517         (cmpsi, cmpdi, cmpsf, cmpdf): Delete.
1518         (movsicc, movdicc): Do nothing when it recreated operands from
1519         sh_compare_*. Use sh_emit_cheap_store_flag.  Adjust call to
1520         prepare_scc_operands (now sh_emit_scc_to_t).
1521         (udivdi3): Use cstoresi4.
1522         (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq,
1523         bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete.
1524         (cbranchint4_media, cbranchfp4_media): New.
1525         (casesi): Use cbranchdi4.
1526         (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered):
1527         Delete.
1528         (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New.
1529         (movnegt): Remove second operand.
1530         (cbranchsf4, cbranchdf4): New.
1531         (stack_protect): Use cbranchdi4/cbranchsi4.
1532
1533         * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete.
1534         (gen_compare_reg): Accept comparison, extract part of it to...
1535         (gen_compare_reg_1): ... this. 
1536         (gen_compare_operator): Delete.
1537         (gen_v9_scc): Accept separate destination, comparison code and arms.
1538         Do not use sparc_compare_op0/sparc_compare_op1.
1539         (emit_scc_insn, emit_conditional_branch_insn): New.
1540         (emit_v9_brxx): Make static.  Remove useless assertion.
1541         (sparc_emit_float_lib_cmp): Return RTL instead of calling
1542         emit_cmp_insn.
1543         (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4.
1544         * config/sparc/sparc-protos.h (gen_compare_reg,
1545         sparc_emit_float_lib_cmp): Adjust prototype.
1546         (emit_scc_insn, emit_conditional_branch_insn): New.
1547         (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete.
1548         * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete.
1549         * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all
1550         iterators to the top.
1551         (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend,
1552         snesi_special_extend, sCC, bCC, seqdi_special_trunc,
1553         snedi_special_trunc): Delete.
1554         (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc
1555         and snedi_special_trunc.
1556         (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4,
1557         cbranchdi4, cbranch<F:mode>4): New.
1558         (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp
1559         here.  Use gen_compare_reg instead of gen_compare_operator.
1560         (conditional_trap): Replace with...
1561         (ctrapsi4, ctrapdi4): ... this.
1562         (stack_protect_test): Use cbranchcc4.
1563
1564         * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second
1565         argument to rtx.
1566         * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 
1567         (spu_emit_branch_or_set): Get code/op0/op1 from second argument.
1568         Change spu_compare_op0/op1 to op0/op1 throughout.  Get target
1569         from operands[0] or operands[3] depending on is_set.
1570         * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove.
1571         * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>,
1572         cmpdf, bCC), sCC: Remove.
1573         (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 
1574         cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4,
1575         cstoredf4): New.
1576         (mov<mode>cc): Accept ordered_comparison_operator, adjust call to
1577         spu_emit_branch_or_set.
1578
1579         * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch):
1580         Add two arguments.
1581         * config/stormy16/stormy16.h (xstormy16_compare_op0,
1582         xstormy16_compare_op1): Delete.
1583         * config/stormy16/stormy16.c (xstormy16_compare_op0,
1584         xstormy16_compare_op1): Delete. 
1585         (xstormy16_emit_cbranch): Get op0/op1 from the new arguments.
1586         Adjust calls.
1587         * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New.
1588         (cmphi, cmpsi, bCC): Remove.
1589
1590         * config/v850/v850.md (tstsi, cmpsi): Fold into...
1591         (*cmpsi): ... this one.
1592         (cbranchsi4, cstoresi4): New.
1593         (bCC expanders): Delete.
1594         (sCC insns): Fold into...
1595         (*setcc): ... this one.
1596         (casesi): Do not use gen_cmpsi and gen_bgtu. 
1597         (various splits): Wrap "naked" RHS of a cc0 set with COMPARE.
1598         (movsicc): Simplify.
1599         * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE.
1600
1601         * config/vax/vax-protos.h (cond_name): New.
1602         (vax_output_conditional_branch): Remove.
1603         * config/vax/vax.c (cond_name): New.
1604         (vax_output_conditional_branch): Remove.
1605         * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name.
1606         * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove.
1607         (cmp<VAXint>, cmp<VAXfp>): Privatize.  Add constraints for tst.
1608         (bit<VAXint>): Wrap source with (compare).
1609         (b<code> and following unnamed pattern): Rename to *branch and
1610         *branch_reversed.  Change macroization to match_operator.
1611         (cbranch<VAXint>4, cbranch<VAXfp>4): New.
1612
1613         * config/xtensa/predicates.md (xtensa_cstoresi_operator): New.
1614         * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch):
1615         Change last argument to machine_mode.
1616         (xtensa_expand_scc): Add machine_mode argument.
1617         * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove.
1618         (gen_conditional_move, xtensa_expand_conditional_branch,
1619         xtensa_expand_scc, xtensa_expand_conditional_move): Use mode
1620         instead of branch_type, fetch cmp0/cmp1/test_code from operands[].
1621         Adjust operand numbers.
1622         * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type):
1623         Delete.
1624         * config/xtensa/xtensa.md (any_cond, any_scc): Delete.
1625         (cmpsi, cmpsf, b<code>, s<code>): Delete.
1626         (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New.
1627
1628 2009-05-12  Paolo Bonzini  <bonzini@gnu.org>
1629
1630         * optabs.c (prepare_cmp_insn): Temporarily disable test that
1631         causes spurious differences between trunk and cond-optab branch.
1632
1633 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
1634
1635         PR target/37137
1636         * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document.
1637
1638 2009-05-12  Alexandre Oliva  <aoliva@redhat.com>
1639
1640         * tree.c (iterative_hash_pointer): Delete.
1641         (iterative_hash_expr): Short-circuit handling of NULL pointer.
1642         Hash UIDs and versions of SSA names.  Don't special-case built-in
1643         function declarations.
1644
1645 2009-05-11  Ian Lance Taylor  <iant@google.com>
1646
1647         PR bootstrap/40103
1648         * graphite.c: Force -Wc++-compat to only be a warning before
1649         #including "cloog/cloog.h".
1650
1651 2009-05-11  Martin Jambor  <mjambor@suse.cz>
1652
1653         * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
1654         
1655 2009-05-11  Jan Hubicka  <jh@suse.cz>
1656
1657         * tree-ssa-loop-ivcanon.c: Include target.h
1658         (struct loop_size): new structure.
1659         (constant_after_peeling): New predicate.
1660         (tree_estimate_loop_size): New function.
1661         (estimated_unrolled_size): Rewrite for new estimates.
1662         (try_unroll_loop_completely): Use new estimates.
1663         * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
1664
1665 2009-05-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>
1666
1667         * config/spu/spu-c.c (spu_categorize_keyword): Update for recent
1668         libcpp interface change.
1669         (spu_macro_to_expand): Likewise.
1670
1671 2009-05-11  Paolo Bonzini  <bonzini@gnu.org>
1672
1673         PR tree-optimization/40026
1674         * gimplify.c (gimplify_init_constructor): Change initial conditional
1675         to assertion.  Rewrite TREE_OPERAND (*expr_p, 1) after
1676         optimize_compound_literals_in_ctor.
1677
1678 2009-05-11  Nathan Sidwell  <nathan@codesourcery.com>
1679
1680         * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx):
1681         New devices.
1682         * doc/invoke.texi (M680x0 Options): Document new coldfire cpus.
1683
1684 2009-05-11  H.J. Lu  <hongjiu.lu@intel.com>
1685
1686         * tree-vect-data-refs.c (vect_analyze_group_access): Use
1687         HOST_WIDE_INT for gap.
1688
1689 2009-05-11  Ira Rosen  <irar@il.ibm.com>
1690
1691         PR tree-optimization/40074
1692         * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into
1693         account in group size and step comparison.
1694
1695 2009-05-11  Richard Guenther  <rguenther@suse.de>
1696
1697         * passes.c (init_optimization_passes): Strip now incorrect comment.
1698         (execute_function_todo): Do not set PROP_alias.
1699         * tree-pass.h (PROP_alias): Remove.
1700         * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias.
1701         * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias.
1702         * tree-nrv.c (pass_return_slot): Likewise.
1703         * tree-object-size.c (pass_object_sizes): Likewise.
1704         * tree-ssa-dom.c (pass_dominator): Likewise.
1705         (pass_phi_only_cprop): Likewise.
1706         * tree-ssa-dse.c (pass_dse): Likewise.
1707         * tree-ssa-phiopt.c (pass_phiopt): Likewise.
1708         (pass_cselim): Likewise.
1709         * tree-ssa-pre.c (pass_pre): Likewise.
1710         (pass_fre): Likewise.
1711         * tree-ssa-reassoc.c (pass_reassoc): Likewise.
1712         * tree-ssa-sink.c (pass_sink_code): Likewise.
1713         * tree-stdarg.c (pass_stdarg): Likewise.
1714         * tree-tailcall.c (pass_tail_calls): Likewise.
1715         * tree-vrp.c (pass_vrp): Likewise.
1716
1717 2009-05-10  Ian Lance Taylor  <iant@google.com>
1718
1719         * basic-block.h (enum profile_status): Break out of struct
1720         control_flow_graph.
1721         * cgraph.h (struct inline_summary): Break out of struct
1722         cgraph_local_info.
1723         * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out
1724         of struct cgraph_order_sort.
1725         * combine.c (enum undo_kind): New enum, broken out of struct undo.
1726         * cse.c (struct branch_path): Break out of struct
1727         cse_basic_block_data.
1728         * except.h (enum eh_region_type): Break out of struct eh_region.
1729         * gcc.c (enum add_del): Break out of struct modify_target.
1730         * genrecog.c (enum decision_type): Break out of struct decision_test.
1731         * ggc-page.c (struct ggc_pch_ondisk): Break out of struct
1732         ggc_pch_data.
1733         * matrix-reorg.c (struct free_info): Break out of struct matrix_info.
1734         * regmove.c (enum match_use): New enum, broken out of struct match.
1735         * sched-int.h (enum post_call_group): New enum, broken out of
1736         struct deps.
1737         (struct deps_reg): Break out of struct deps.
1738         * target.h (struct asm_int_op): Break out of struct gcc_target.
1739         * tree-eh.c (struct goto_queue_node): Break out of struct
1740         leh_tf_state.
1741         * tree-inline.h (enum copy_body_cge_which): Break out of
1742         copy_body_data.
1743         * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass.
1744
1745         * c-decl.c (in_struct, struct_types): New static variables.
1746         (pushtag): Add loc parameter.  Change all callers.
1747         (lookup_tag): Add ploc parameter.  Change all callers.
1748         (check_compound_literal_type): New function.
1749         (parser_xref_tag): Add loc parameter.  Change all callers.  If
1750         -Wc++-compat, warn about struct/union/enum types defined within a
1751         struct or union.
1752         (start_struct): Add enclosing_in_struct, enclosing_struct_types,
1753         and loc parameters.  Change all callers.  Change error calls to
1754         error_at, using loc.  For a redefinition, if the location of the
1755         original definition is known, report it.  Set in_struct and
1756         struct_types.  If -Wc++-compat warn if in sizeof, typeof, or alignof.
1757         (finish_struct): Add new parameters enclosing_in_struct and
1758         enclosing_struct_types.  Change all callers.  Set
1759         C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined
1760         in the struct.  If in a struct, add this struct to struct_types.
1761         (start_enum): Add loc parameter.  Change all callers.  Use
1762         error_at for errors, using loc.  For a redefinition, if the
1763         location of the original definition is known, report it.  If in a
1764         struct, add this enum type to struct_types.  If -Wc++-compat warn
1765         if in sizeof, typeof, or alignof.
1766         * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat.
1767         (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate.
1768         (c_parser_enum_specifier): Get enum location for start_enum.
1769         (c_parser_struct_or_union_specifier): Get struct location for
1770         start_struct.  Save in_struct and struct_types status between
1771         start_struct and finish_struct.
1772         (c_parser_cast_expression): Get location of cast.
1773         (c_parser_alignof_expression): Get location of type.
1774         (c_parser_postfix_expression): Likewise.
1775         (c_parser_postfix_expression_after_paren_type): Add type_loc
1776         parameter.  Change all callers.  Call check_compound_literal_type.
1777         Use type_loc for error about variable size type.
1778         * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use
1779         of an enum constant from an enum type defined in a struct or union.
1780         (c_cast_expr): Add loc parameter.  Change all callers.  If
1781         -Wc++-compat, warn about defining a type in a cast.
1782         * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define.
1783         (start_enum, start_struct, finish_struct): Update declarations.
1784         (parser_xref_tag, c_cast_expr): Update declarations.
1785         (check_compound_literal_type): Declare.
1786
1787 2009-05-11  Ben Elliston  <bje@au.ibm.com>
1788
1789         * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update
1790         for recent libcpp interface change.
1791         (rs6000_macro_to_expand): Likewise.
1792
1793 2009-05-10  Michael Matz  <matz@suse.de>
1794
1795         PR target/40031
1796         * config/arm/arm.c (require_pic_register): Emit on entry edge,
1797         not at entry of function.
1798
1799 2009-05-10  Richard Guenther  <rguenther@suse.de>
1800
1801         PR tree-optimization/40081
1802         Revert
1803         * tree-sra.c (instantiate_element): Instantiate scalar replacements
1804         using the main variant of the element type.  Do not fiddle with
1805         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1806
1807         * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose
1808         structs with volatile fields.
1809
1810 2009-05-10  Jan Hubicka  <jh@suse.cz>
1811
1812         * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare.
1813         (estimate_move_cost): Assert that it does not get called for
1814         VOID_TYPE_P.
1815         (estimate_num_insns): Skip VOID types in argument handling.
1816         (optimize_inline_calls): Delete unreachable blocks and verify that
1817         callgraph is valid.
1818
1819 2009-05-10  Jan Hubicka  <jh@suse.cz>
1820
1821         * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node.
1822         * cgraph.c (cgraph_mark_address_taken_node): New function.
1823         (dump_cgraph_node): Dump new flag.
1824         * cgraph.h (struct cgraph_node): Add address_taken.
1825         (cgraph_mark_address_taken_node): New function.
1826         * ipa.c (cgraph_postorder): Prioritize functions with address taken
1827         since new direct calls can be born.
1828
1829 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1830
1831         * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in
1832         tok->val.node.node.
1833
1834 2009-05-10  Jan Hubicka  <jh@suse.cz>
1835
1836         PR middle-end/40084
1837         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call
1838         argument; rewrite.
1839         (cgraph_update_edges_for_call_stmt): Take old_decl argument.
1840         * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype.
1841         * tree-inline.c (copy_bb): Set frequency correctly.
1842         (fold_marked_statements): Update call to
1843         cgraph_update_edges_for_call_stmt.
1844
1845 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1846
1847         * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for
1848         identifiers in diagnostics.
1849         * config/arm/arm.c (arm_handle_fndecl_attribute,
1850         arm_handle_isr_attribute): Likewise.
1851         * config/avr/avr.c (avr_handle_progmem_attribute,
1852         avr_handle_fndecl_attribute, avr_handle_fntype_attribute):
1853         Likewise.
1854         * config/bfin/bfin.c (handle_int_attribute,
1855         bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute,
1856         bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute,
1857         bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute):
1858         Likewise.
1859         * config/darwin.c (darwin_handle_kext_attribute,
1860         darwin_handle_weak_import_attribute): Likewise.
1861         * config/h8300/h8300.c (h8300_handle_fndecl_attribute,
1862         h8300_handle_eightbit_data_attribute,
1863         h8300_handle_tiny_data_attribute): Likewise.
1864         * config/i386/i386.c (ix86_handle_cconv_attribute,
1865         ix86_handle_abi_attribute, ix86_handle_struct_attribute):
1866         Likewise.
1867         * config/i386/winnt.c (ix86_handle_shared_attribute,
1868         ix86_handle_selectany_attribute): Likewise.
1869         * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
1870         * config/m32c/m32c.c (function_vector_handler): Likewise.
1871         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute,
1872         m68hc11_handle_fntype_attribute): Likewise.
1873         * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
1874         * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
1875         * config/mips/mips.c (mips_insert_attributes,
1876         mips_merge_decl_attributes, mips_expand_builtin): Likewise.
1877         * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute,
1878         rs6000_handle_struct_attribute): Likewise.
1879         * config/sh/sh.c (sh_insert_attributes,
1880         sh_handle_resbank_handler_attribute,
1881         sh_handle_interrupt_handler_attribute,
1882         sh2a_handle_function_vector_handler_attribute,
1883         sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute):
1884         Likewise.
1885         * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise.
1886         * config/spu/spu.c (spu_handle_fndecl_attribute,
1887         spu_handle_vector_attribute): Likewise.
1888         * config/stormy16/stormy16.c
1889         (xstormy16_handle_interrupt_attribute): Likewise.
1890         * config/v850/v850-c.c (ghs_pragma_section): Likewise.
1891         * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
1892
1893 2009-05-10  Joseph Myers  <joseph@codesourcery.com>
1894
1895         * pretty-print.h (struct pretty_print_info): Add
1896         translate_identifiers.
1897         (pp_translate_identifiers): New.
1898         (pp_identifier): Only conditionally translate identifier to locale
1899         character set.
1900         * pretty-print.c (pp_construct): Set pp_translate_identifiers.
1901         (pp_base_tree_identifier): Only conditionally translate identifier
1902         to locale character set.
1903         * c-pretty-print.c (M_): Define.
1904         (pp_c_type_specifier, pp_c_primary_expression): Mark English
1905         fragments for conditional translation with M_.
1906         * tree-pretty-print.c (maybe_init_pretty_print): Disable
1907         identifier translation.
1908
1909 2009-05-10  Richard Guenther  <rguenther@suse.de>
1910
1911         PR tree-optimization/40081
1912         * tree-sra.c (instantiate_element): Instantiate scalar replacements
1913         using the main variant of the element type.  Do not fiddle with
1914         TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS.
1915
1916 2009-05-09  Jan Hubicka  <jh@suse.cz>
1917
1918         PR middle-end/40080
1919         * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect
1920         indirect calls; verify cgraph afterwards.
1921
1922 2009-05-09  Jan Hubicka  <jh@suse.cz>
1923
1924         PR bootstrap/40082
1925         * ipa.c (update_inlined_to_pointer): New function.
1926         (cgraph_remove_unreachable_nodes): Use it.
1927
1928 2009-05-09  Jan Hubicka  <jh@suse.cz>
1929
1930         * tree-eh.c (struct leh_state): Remove prev_try.
1931         (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do
1932         not track prev_try.
1933         * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 
1934         copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label,
1935         remove_eh_handler_and_replace, foreach_reachable_handler,
1936         verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer.
1937         * except.h (struct eh_region): Remove eh_region_u_cleanup.
1938         (gen_eh_region_cleanup): Update prototype.
1939
1940 2009-05-09  Jan Hubicka  <jh@suse.cz>
1941
1942         PR middle-end/40043
1943         * except.c (copy_eh_region): Always set prev_try.
1944         (redirect_eh_edge_to_label): Find outer try.
1945         (foreach_reachable_handler): When looking for prev try
1946         handle case where previous try is not going to be taken.
1947
1948 2009-05-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
1949
1950         PR tree-optimization/40049
1951         * tree-vect-stmts.c (vectorizable_operation): If the machine has
1952         only vector/vector shifts, convert the type of the constant to the
1953         appropriate type to avoid building incorrect trees, which
1954         eventually have problems with garbage collection.
1955
1956 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
1957
1958         * fold-const.c (fold_binary): Do not fold multiplication by 1 or
1959         -1 for complex floating-point types if honoring signed zeros.
1960
1961 2009-05-08  Jan Hubicka  <jh@suse.cz>
1962
1963         * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function
1964         argument; handle correctly when profile is absent.
1965         (build_cgraph_edges): Update.
1966         (rebuild_cgraph_edges): Update.
1967         * cgraph.c: Do not include varray.h.
1968         (cgraph_set_call_stmt_including_clones): New function.
1969         (cgraph_create_edge_including_clones): Likewise
1970         (cgraph_update_edges_for_call_stmt_node): New static cfunction.
1971         (cgraph_update_edges_for_call_stmt): Handle clones.
1972         (cgraph_remove_node): Handle clone tree.
1973         (cgraph_remove_node_and_inline_clones): New function.
1974         (dump_cgraph_node): Dump clone tree.
1975         (cgraph_clone_node): Handle clone tree.
1976         (clone_function_name): Bring here from tree-inline.c.
1977         (cgraph_create_virtual_clone): New function.
1978         * cgraph.h (ipa_replace_map): Move here from ipa.h.
1979         (cgraph_clone_info): New function.
1980         (strut cgraph_node): Add clone_info and new clone tree pointers.
1981         (cgraph_remove_node_and_inline_clones,
1982         cgraph_set_call_stmt_including_clones,
1983         cgraph_create_edge_including_clones,
1984         cgraph_create_virtual_clone): Declare.
1985         (cgraph_function_versioning): Use VEC argument.
1986         (compute_call_stmt_bb_frequency): Update prototype.
1987         (cgraph_materialize_all_clones): New function.
1988         * ipa-cp.c (ipcp_update_cloned_node): Remove.
1989         (ipcp_create_replace_map): Update to VECtors.
1990         (ipcp_update_callgraph): Use virtual clones.
1991         (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove.
1992         (ipcp_update_profiling): Do not update local profiling.
1993         (ipcp_insert_stage): Use VECtors and virtual clones.
1994         * cgraphunit.c (verify_cgraph_node): Verify clone tree.
1995         (clone_of_p): New function.
1996         (cgraph_preserve_function_body_p): Use clone tree.
1997         (cgraph_optimize): Materialize clones.
1998         (cgraph_function_versioning): Update for VECtors.
1999         (save_inline_function_body): Use clone tree.
2000         (cgraph_materialize_clone): New function.
2001         (cgraph_materialize_all_clones): Likewise.
2002         * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags.
2003         * ipa.c: Include gimple.h.
2004         (cgraph_remove_unreachable_nodes): Use clone tree.
2005         * ipa-prop.c (ipa_note_param_call): Update call to
2006         compute_call_stmt_bb_frequencycall.
2007         * ipa-prop.h (ipa_replace_map): Move to cgraph.h.
2008         * tree-inline.c: Do not include varray.h or gt-tree-inline.h.
2009         (copy_bb): Handle updating of clone tree; add new edge when new call
2010         appears.
2011         (expand_call_inline): Be strict about every call having edge.
2012         (clone_fn_id_num, clone_function_name): Move to cgraph.c.
2013         (delete_unreachable_blocks_update_callgraph): New function.
2014         (tree_function_versioning): Use VECtors; always remove unreachable
2015         blocks and fold conditionals.
2016         * tree-inline.h: Do not include varray.h.
2017         (tree_function_versioning): Remove.
2018         * Makefile.in (GTFILES): Remove tree-inline.c
2019         * passes.c (do_per_function): Do only functions having body.
2020         * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone
2021         tree.
2022
2023 2009-05-08  H.J. Lu  <hongjiu.lu@intel.com>
2024             Andrew Morrow  <acm@google.com>
2025
2026         PR c/36892
2027         * c-common.c (c_common_attribute_table): Permit deprecated
2028         attribute to take an optional argument.
2029         (handle_deprecated_attribute): If the optional argument to
2030         __attribute__((deprecated)) is not a string ignore the attribute
2031         and emit a warning.
2032
2033         * c-decl.c (grokdeclarator): Updated warn_deprecated_use call.
2034         * c-typeck.c (build_component_ref): Likewise.
2035         (build_external_ref): Likewise.
2036
2037         * toplev.c (warn_deprecated_use): Add an attribute argument.
2038         Emit the message associated with __attribute__((deprecated)).
2039
2040         * toplev.h (warn_deprecated_use): Updated.
2041
2042         * doc/extend.texi: Document new optional parameter to
2043         __attribute__((deprecated))
2044
2045 2009-05-08  Michael Eager <eager@eagercon.com>
2046
2047         * config/rs6000/rs6000.md (*movdf_softfloat32): replace
2048         !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT.
2049
2050 2009-05-08  Richard Guenther  <rguenther@suse.de>
2051
2052         PR tree-optimization/40062
2053         * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi):
2054         Avoid exponential behavior.
2055
2056 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
2057
2058         PR rtl-optimization/33928
2059         PR 26854
2060         * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween,
2061         process_uses, build_single_def_use_links): New.
2062         (update_df): Update use_def_ref.
2063         (forward_propagate_into): Use get_def_for_use instead of use-def
2064         chains.
2065         (fwprop_init): Call build_single_def_use_links and let it initialize
2066         dataflow.
2067         (fwprop_done): Free use_def_ref.
2068         (fwprop_addr): Eliminate duplicate call to df_set_flags.
2069         * df-problems.c (df_rd_simulate_artificial_defs_at_top, 
2070         df_rd_simulate_one_insn): New.
2071         (df_rd_bb_local_compute_process_def): Update head comment.
2072         (df_chain_create_bb): Use the new RD simulation functions.
2073         * df.h (df_rd_simulate_artificial_defs_at_top, 
2074         df_rd_simulate_one_insn): New.
2075         * opts.c (decode_options): Enable fwprop at -O1.
2076         * doc/invoke.texi (-fforward-propagate): Document this.
2077
2078 2009-05-08  Joseph Myers  <joseph@codesourcery.com>
2079
2080         PR c/24581
2081         * c-typeck.c (build_binary_op): Handle arithmetic between one real
2082         and one complex operand specially.
2083         * tree-complex.c (some_nonzerop): Do not identify a real value as
2084         zero if flag_signed_zeros.
2085
2086 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
2087
2088         PR rtl-optimization/33928
2089         * loop-invariant.c (record_use): Fix && vs. || mishap.
2090
2091 2009-05-08  Paolo Bonzini  <bonzini@gnu.org>
2092
2093         PR rtl-optimization/33928
2094         * loop-invariant.c (struct use): Add addr_use_p.
2095         (struct def): Add n_addr_uses.
2096         (struct invariant): Add cheap_address.
2097         (create_new_invariant): Set cheap_address.
2098         (record_use): Accept df_ref.  Set addr_use_p and update n_addr_uses.
2099         (record_uses): Pass df_ref to record_use.
2100         (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses
2101         used only as such.
2102
2103 2009-05-08  Kaz Kojima  <kkojima@gcc.gnu.org>
2104
2105         * config/sh/sh.c: Do not include c-pragma.h.
2106
2107 2009-05-07  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2108
2109         * config/spu/spu.c: Remove include of c-common.h.
2110
2111 2009-05-07  Janis Johnson  <janis187@us.ibm.com>
2112
2113         PR c/39037
2114         * c-common.h (mark_valid_location_for_stdc_pragma,
2115         valid_location_for_stdc_pragma_p, set_float_const_decimal64,
2116         clear_float_const_decimal64, float_const_decimal64_p): New.
2117         * c.opt (Wunsuffixed-float-constants): New.
2118         * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for
2119         unsuffixed float constant, handle new warning.
2120         * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants.
2121         * c-decl.c (c_scope): New flag float_const_decimal64.
2122         (set_float_const_decimal64, clear_float_const_decimal64,
2123         float_const_decimal64_p): New.
2124         (push_scope): Set new flag.
2125         * c-parser.c (c_parser_translation_unit): Mark when it's valid
2126         to use STDC pragmas.
2127         (c_parser_external_declaration): Ditto.
2128         (c_parser_compound_statement_nostart): Ditto.
2129         * c-pragma.c (valid_location_for_stdc_pragma,
2130         mark_valid_location_for_stdc_pragma,
2131         valid_location_for_stdc_pragma_p, handle_stdc_pragma,
2132         handle_pragma_float_const_decimal64): New.
2133         (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64.
2134         * cp/semantics.c (valid_location_for_stdc_pragma_p,
2135         set_float_const_decimal64, clear_float_const_decimal64,
2136         float_const_decimal64_p): New dummy functions.
2137         * doc/extend.texi (Decimal Float): Remove statement that the
2138         pragma, and suffix for double constants, are not supported.
2139         * doc/invoke.texi (Warning Options): List new option.
2140         (-Wunsuffixed-float-constants): New.
2141
2142 2009-05-08  Steven Bosscher  <steven@gcc.gnu.org>
2143
2144         * config/i386/i386.c: Do not include c-common.h.
2145
2146 2009-05-07  Mark Heffernan  <meheff@google.com>
2147
2148         * doc/invoke.texi (Debugging Options): Document change of debugging
2149         dump location.
2150         * opts.c (decode_options): Make dump_base_name relative to
2151         aux_base_name directory.
2152
2153 2009-05-07  Hariharan Sandanagobalane <hariharan@picochip.com>
2154
2155         * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added.
2156         * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton.
2157
2158 2009-05-07  Rafael Avila de Espindola  <espindola@google.com>
2159
2160         * Makefile.in (install-plugin): Simplify a bit.
2161
2162 2009-05-07  Paolo Bonzini  <bonzini@gnu.org>
2163
2164         * Makefile.in (OBJS-common): Add regcprop.o.
2165         (regcprop.o): New.
2166         * timevar.def (TV_CPROP_REGISTERS): New.
2167         * regrename.c (regrename_optimize): Return 0.
2168         (rest_of_handle_regrename): Delete.
2169         (pass_rename_registers): Point to regrename_optimize.
2170         (struct value_data_entry, struct value_data, 
2171         kill_value_one_regno, kill_value_regno, kill_value,
2172         set_value_regno, init_value_data, kill_clobbered_value,
2173         kill_set_value, kill_autoinc_value, copy_value,
2174         mode_change_ok, maybe_mode_change, find_oldest_value_reg,
2175         replace_oldest_value_reg, replace_oldest_value_addr,
2176         replace_oldest_value_mem, copyprop_hardreg_forward_1,
2177         debug_value_data, validate_value_data): Move...
2178         * regcprop.c: ... here.
2179         (rest_of_handle_cprop): Delete.
2180         (pass_cprop_hardreg): Point to copyprop_hardreg_forward.
2181
2182 2009-05-07  Jakub Jelinek  <jakub@redhat.com>
2183
2184         PR middle-end/40057
2185         * dojump.c (prefer_and_bit_test): Use immed_double_const instead of
2186         GEN_INT for 1 << bitnum.
2187         (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of
2188         build_int_cst_type.
2189
2190 2009-05-07  Uros Bizjak  <ubizjak@gmail.com>
2191
2192         * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]:
2193         Remove wrong description of "nand" operation.
2194
2195 2009-05-06  Richard Guenther  <rguenther@suse.de>
2196             Adam Nemet  <anemet@caviumnetworks.com>
2197
2198         * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the
2199         comment.  Add that if LHS is not a gimple register, then RHS1 has
2200         to be a single object (GIMPLE_SINGLE_RHS).
2201
2202 2009-05-06  Adam Nemet  <anemet@caviumnetworks.com>
2203
2204         * expr.c (get_def_for_expr): Move it up in the file.
2205         (store_field): When expanding a bit-field store, look at the
2206         defining gimple stmt for the masking conversion.
2207
2208 2009-05-06  Janis Johnson  <janis187@us.ibm.com>
2209
2210         PR middle-end/39986
2211         * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64,
2212         decode_decimal64, encode_decimal128, decode_decimal128): Avoid
2213         32-bit memcpy into long.
2214
2215 2009-05-06  Jakub Jelinek  <jakub@redhat.com>
2216
2217         * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX.
2218         (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling
2219         new_reg_loc_descr.
2220         (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0
2221         instead of appending DW_OP_deref*.
2222
2223 2009-05-06  Michael Matz  <matz@suse.de>
2224
2225         PR middle-end/40021
2226         * cfgexpand.c (maybe_cleanup_end_of_block): New static function.
2227         (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps.
2228
2229 2009-05-06  Rafael Avila de Espindola  <espindola@google.com>
2230
2231         * Makefile.in (install-plugin): Fix srcdir handling.
2232
2233 2009-05-06  Andrey Belevantsev  <abel@ispras.ru>
2234
2235         * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF
2236         when processing for not_regs_needed bitmap.
2237         * gimple.c (walk_stmt_load_store_addr_ops): When visiting address,
2238         handle TARGET_MEM_REF in lhs.  Check TMR_BASE for NULL while 
2239         handling it for rhs. 
2240
2241 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2242
2243         * config/i386/i386.md (unnamed inc/dec peephole): Use
2244         optimize_insn_for_size_p instead of optimize_size.
2245         * config/i386/predicates.md (incdec_operand): Likewise.
2246         (aligned_operand): Likewise.
2247         * config/i386/sse.md (divv8sf3): Likewise.
2248         (sqrtv8sf2): Likewise.
2249
2250 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2251
2252         * config/i386/i386.c (ix86_build_signbit_mask): Make it static.
2253
2254         * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed.
2255
2256 2009-05-06  H.J. Lu  <hongjiu.lu@intel.com>
2257
2258         * config/i386/i386.md (*avx_<code><mode>3_finite): Replace
2259         ssemodesuffixf2c with avxmodesuffixf2c.
2260
2261 2009-05-06  Joseph Myers  <joseph@codesourcery.com>
2262
2263         PR c/40032
2264         * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field.
2265
2266 2009-05-05  Jakub Jelinek  <jakub@redhat.com>
2267
2268         * tree.h: Remove DECL_BY_REFERENCE from private_flag comment.
2269         (struct tree_base): Adjust spacing for 8 bit boundaries.
2270         (struct tree_decl_common): Add decl_by_reference_flag bit.
2271         (DECL_BY_REFERENCE): Adjust.
2272         * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL,
2273         print DECL_BY_REFERENCE bit.
2274         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change.
2275         * dwarf2out.c (loc_by_reference, gen_decl_die): Check
2276         DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones.
2277         (gen_variable_die): Likewise.  Check TREE_PRIVATE/TREE_PROTECTED
2278         unconditionally.
2279
2280         PR middle-end/39666
2281         * gimplify.c (gimplify_switch_expr): If case labels cover the whole
2282         range of the type, but default label is missing, add it with one
2283         of the existing labels instead of adding a new label for it.
2284
2285 2009-05-05  Joseph Myers  <joseph@codesourcery.com>
2286
2287         * dwarf.h: Remove.
2288
2289 2009-05-05  Rafael Avila de Espindola  <espindola@google.com>
2290
2291         * Makefile.in (enable_plugin, plugin_includedir): New.
2292         (install): Depend on install-plugin.
2293         (PLUGIN_HEADERS): New.
2294         (install-plugin): New.
2295         * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64.
2296
2297 2009-05-05  Richard Guenther  <rguenther@suse.de>
2298
2299         PR tree-optimization/40022
2300         * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for
2301         the only vuse.
2302         (phivn_valid_p): Fix tuplification error, simplify.
2303         (phiprop_insert_phi): Add dumps.
2304         (propagate_with_phi): Simplify.
2305
2306 2009-05-05  Richard Guenther  <rguenther@suse.de>
2307
2308         PR middle-end/40023
2309         * builtins.c (gimplify_va_arg_expr): Properly build the address.
2310
2311 2009-05-05  Shujing Zhao  <pearly.zhao@oracle.com>
2312
2313         * tree.h (strip_float_extensions): Remove duplicate declaration.
2314         (build_low_bits_mask, debug_fold_checksum, expand_function_end,
2315         expand_function_start, stack_protect_prologue, stack_protect_epilogue,
2316         block_ultimate_origin): Rearrange the declarations line to match the
2317         comment that indicates the .c file which the functions are defined.
2318         (dwarf2out_*, set_decl_rtl): Add comment.
2319         (get_base_address): Adjust comment.
2320         (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the
2321         declarations line and add comment.
2322         (is_builtin_name): Add blank after function name, for clarity.
2323
2324 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
2325
2326         * attribs.c (decl_attributes): Use %qE for identifiers in
2327         diagnostics.
2328         * cgraphunit.c (verify_cgraph_node): Translate function names to
2329         locale character set in diagnostics.
2330         * coverage.c (get_coverage_counts): Use %qE for identifiers in
2331         diagnostics.
2332         * doc/invoke.texi (-finstrument-functions-exclude-function-list):
2333         Document that functions are named in UTF-8.
2334         * expr.c (expand_expr_real_1): Translate function names to locale
2335         character set in diagnostics.
2336         * gimplify.c (omp_notice_variable, omp_is_private,
2337         gimplify_scan_omp_clauses): Use %qE for identifiers in
2338         diagnostics.
2339         * langhooks.c (lhd_print_error_function): Translate function names
2340         to locale character set.
2341         * langhooks.h (decl_printable_name): Document that return value is
2342         in internal character set.
2343         * stmt.c: Include pretty-print.h
2344         (tree_conflicts_with_clobbers_p): Use %qE for identifiers in
2345         diagnostics.
2346         (resolve_operand_name_1): Translate named operand name to locale
2347         character set.
2348         * stor-layout.c (finalize_record_size): Use %qE for identifiers in
2349         diagnostics.
2350         * toplev.c (announce_function): Translate function names to locale
2351         character set.
2352         (warn_deprecated_use): Use %qE for identifiers in diagnostics.
2353         (default_tree_printer): Use pp_identifier or translate identifiers
2354         to locale character set.  Mark "<anonymous>" for translation.
2355         * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE
2356         for identifiers in diagnostics.
2357         * tree.c (handle_dll_attribute): Use %qE for identifiers in
2358         diagnostics.
2359         * varasm.c (output_constructor): Use %qE for identifiers in
2360         diagnostics.
2361
2362 2009-05-04  Rafael Avila de Espindola  <espindola@google.com>
2363
2364         * configure.ac: use ` ` instead of $()
2365         * configure: Regenerate.
2366
2367 2009-05-05  Ben Elliston  <bje@au.ibm.com>
2368
2369         * config/pa/linux-atomic.c: Eliminate conditional include of
2370         errno.h on non-LP64 systems to simplify build requirements.
2371
2372 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
2373
2374         * c-common.c (handle_mode_attribute): Use %qE for identifiers in
2375         diagnostics.
2376         * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree
2377         and pass value to identifier_to_locale.
2378         (warn_variable_length_array): Make name a tree.
2379         (grokdeclarator): Separate diagnostic texts for named and unnamed
2380         declarators.  Use %qE for named declarators.
2381         * c-parser.c (c_lex_one_token): Use %qE for identifiers in
2382         diagnostics.
2383         * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for
2384         identifiers in diagnostics.
2385         * c-typeck.c (push_member_name, start_init): Pass identifiers to
2386         identifier_to_locale.  Mark "anonymous" strings for translation.
2387
2388 2009-05-04  Michael Eager <eager@eagercon.com>
2389
2390         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
2391         address for DImode/DFmode only if double-precision FP regs.
2392
2393 2009-05-04  Michael Eager <eager@eagercon.com>
2394
2395         * config/rs6000/rs6000.c (rs6000_libcall_value): Add
2396         TARGET_SINGLE_FLOAT check.
2397
2398 2009-05-04  Michael Eager <eager@eagercon.com>
2399
2400         * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
2401
2402 2009-05-04  Michael Eager <eager@eagercon.com>
2403
2404         * gcc/config.gcc: (powerpc-xilinx-eabi*): Add tm t-xilinx
2405         * config/rs6000/t-xilinx: New
2406
2407 2009-05-04  Paolo Bonzini  <bonzini@gnu.org>
2408
2409         * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation.
2410         * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete.
2411         * gcc/explow.c (memory_address): Use target hook.
2412         * gcc/targhooks.c (default_legitimize_address): New.
2413         * gcc/targhooks.h (default_legitimize_address): New.
2414         * gcc/target.h (legitimize_address): New.
2415         * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New.
2416         (TARGET_INITIALIZER): Include it.
2417         * gcc/system.h (LEGITIMIZE_ADDRESS): Poison.
2418
2419         * config/bfin/bfin-protos.h (legitimize_address): Remove.
2420         * config/bfin/bfin.c (legitimize_address): Remove.
2421         * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove.
2422         * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address):
2423         Remove.
2424         * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove.
2425         * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove.
2426
2427         * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS,
2428         THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete.
2429         * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete.
2430         * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete.
2431         * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete.
2432         * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete.
2433         * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete.
2434         * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete.
2435         * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete.
2436         * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete.
2437         * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete.
2438         * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete.
2439         * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete.
2440         * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete.
2441         * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete.
2442         * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete.
2443         * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete.
2444         * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete.
2445         * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete.
2446         * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete.
2447         * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete.
2448         * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete.
2449         * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete.
2450
2451         * gcc/config/s390/s390-protos.h (legitimize_address): Delete.
2452         * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete.
2453         * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete.
2454         * gcc/config/i386/i386-protos.h (legitimize_address): Delete.
2455         * gcc/config/avr/avr-protos.h (legitimize_address): Delete.
2456         * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete.
2457         * gcc/config/score/score-protos.h (score_legitimize_address): Delete.
2458         * gcc/config/arm/arm-protos.h (arm_legitimize_address,
2459         (thumb_legitimize_address): Delete.
2460         * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete.
2461         * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete.
2462         * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete.
2463         * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete.
2464         * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete.
2465         * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address):
2466         Delete.
2467         * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address):
2468         Delete.
2469
2470         * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version.
2471         * config/m32c/m32c.c (m32c_legitimize_address): Standardize.
2472         * config/m32r/m32r.c (m32r_legitimize_address): New.
2473         * config/m68k/m68k.c (m68k_legitimize_address): New.
2474         * config/score/score.c (score_legitimize_address): Standardize.
2475         * config/score/score3.c (score3_legitimize_address): Standardize.
2476         * config/score/score3.h (score3_legitimize_address): Adjust.
2477         * config/score/score7.c (score7_legitimize_address): Standardize.
2478         * config/score/score7.h (score7_legitimize_address): Adjust.
2479         * config/sh/sh.c (sh_legitimize_address): New.
2480         * config/iq2000/iq2000.c (iq2000_legitimize_address): New.
2481
2482         * gcc/config/s390/s390.c (legitimize_address): Rename to...
2483         (s390_legitimize_address): ... this.
2484         * gcc/config/sparc/sparc.c (legitimize_address): Rename to...
2485         (sparc_legitimize_address): ... this.
2486         * gcc/config/i386/i386.c (legitimize_address): Rename to...
2487         (ix86_legitimize_address): ... this.
2488         * gcc/config/avr/avr.c (legitimize_address): Rename to...
2489         (avr_legitimize_address): ... this.
2490         * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to...
2491         (mn10300_legitimize_address): ... this.
2492         * config/alpha/alpha.c (alpha_legitimize_address): Wrap...
2493         (alpha_legitimize_address_1): ... the old alpha_legitimize_address.
2494         (alpha_expand_mov): Adjust call.
2495
2496         * config/frv/frv.c (frv_legitimize_address): Return x on failure.
2497         * config/spu/spu.c (spu_legitimize_address): Likewise.
2498         * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise.
2499         * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise.
2500
2501 2009-05-04  Joseph Myers  <joseph@codesourcery.com>
2502
2503         * intl.c (locale_encoding, locale_utf8): New.
2504         (gcc_init_libintl): Initialize locale_encoding and locale_utf8.
2505         * intl.h (locale_encoding, locale_utf8): Declare.
2506         * pretty-print.c: Include ggc.h.  Include iconv.h if HAVE_ICONV.
2507         (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale):
2508         New.
2509         * pretty-print.h (pp_identifier): Call identifier_to_locale on ID
2510         argument.
2511         (pp_tree_identifier): Define to call pp_base_tree_identifier.
2512         (pp_base_tree_identifier): Declare as function.
2513         (identifier_to_locale): Declare.
2514         * Makefile.in (pretty-print.o): Update dependencies.
2515         * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics.
2516
2517 2009-05-04  Richard Guenther  <rguenther@suse.de>
2518
2519         PR middle-end/40015
2520         * builtins.c (fold_builtin_memory_op): Do not decay to element
2521         type if the size matches the whole array.
2522
2523 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
2524
2525         * expmed.c (synth_mult): When trying out a shift, pass the result
2526         of a signed shift.
2527
2528 2009-05-04  Kazu Hirata  <kazu@codesourcery.com>
2529
2530         * expmed.c (shiftsub_cost): Rename to shiftsub0_cost.
2531         (shiftsub1_cost): New.
2532         (init_expmed): Compute shiftsub1_cost.
2533         (synth_mult): Optimize multiplications by constants of the form
2534         -(2^^m-1) for some constant positive integer m.
2535
2536 2009-05-03  Richard Guenther  <rguenther@suse.de>
2537
2538         PR c/39983
2539         * c-typeck.c (array_to_pointer_conversion): Do not built
2540         ADDR_EXPRs of arrays of pointer-to-element type.
2541         * c-gimplify.c (c_gimplify_expr): Revert change fixing
2542         up wrong ADDR_EXPRs after-the-fact.
2543         * c-common.c (strict_aliasing_warning): Strip pointer
2544         conversions for obtaining the original type.
2545         * builtins.c (fold_builtin_memset): Handle array types.
2546         (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs
2547         and array types
2548
2549 2009-05-03  Richard Guenther  <rguenther@suse.de>
2550
2551         PR middle-end/23329
2552         * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set.
2553         Do not lose casts from array types with unknown extent to array
2554         types with known extent.
2555         * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for
2556         alias set compatibility.
2557
2558 2009-05-03  Manuel López-Ibáñez  <manu@gcc.gnu.org>
2559
2560         * flags.h (extra_warnings): Delete.
2561         * toplev.c (process_options): Handle Wuninitialized here.
2562         * opts.c (extra_warnings): Delete.
2563         (set_Wextra): Delete.
2564         (common_handle_option): -Wextra can be handled automatically.
2565         * c-opts.c (c_common_handle_option): Delete obsolete code.
2566         (c_common_post_options): Simplify comment.
2567         * common.opt (W): Add Var.
2568         (Wextra): Add Var.
2569         (Wuninitialized): Initialize to -1.
2570
2571 2009-05-03  Adam Nemet  <anemet@caviumnetworks.com>
2572             Richard Guenther  <rguenther@suse.de>
2573
2574         * expr.c (get_def_for_expr): New function.
2575         (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with
2576         SSA rather than trees.
2577         <MULT_EXPR>: Likewise.  Use subexp0 and subexp1 instead of
2578         TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1).
2579         
2580 2009-05-03  Joseph Myers  <joseph@codesourcery.com>
2581
2582         * c-common.c (reswords): Add _Imaginary.
2583         * c-common.c (enum rid): Add RID_IMAGINARY.
2584
2585 2009-05-03  Paolo Bonzini  <bonzini@gnu.org>
2586
2587         * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation.
2588         Patch by Richard Guenther.
2589
2590 2009-05-03  Anatoly Sokolov  <aesok@post.ru>
2591
2592         * defaults.h (FRAME_POINTER_REQUIRED): Provide default.
2593         * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation.
2594         * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete.
2595         * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete.
2596         * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete.
2597         * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete.
2598         * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete.
2599         * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete.
2600         * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete.
2601         * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete.
2602         * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete.
2603         * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete.
2604         * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete.
2605         * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete.
2606         * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete.
2607         * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete.
2608         * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete.
2609         * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete.
2610
2611 2009-05-02  Richard Guenther  <rguenther@suse.de>
2612
2613         PR tree-optimization/39940
2614         * tree-ssa-pre.c (eliminate): Make sure we may propagate before
2615         doing so.
2616
2617 2009-05-02  Richard Guenther  <rguenther@suse.de>
2618
2619         PR middle-end/40001
2620         * tree-ssa.c (execute_update_addresses_taken): Properly check
2621         if we can mark a variable DECL_GIMPLE_REG_P.
2622         * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P
2623         back to the end of the function.
2624         (is_gimple_reg_type): Remove complex type special casing.
2625         * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P
2626         if not optimizing.
2627
2628 2009-05-02  Ben Elliston  <bje@au.ibm.com>
2629
2630         * doc/collect2.texi (Collect2): Document search path behaviour
2631         when configured with --with-ld.
2632
2633 2009-05-02  Jan Hubicka  <jh@suse.cz>
2634
2635         * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical
2636         parameter; update callers.
2637         (coalesce_cost_edge): EH edges are costier because they needs
2638         splitting even if not critical and even more costier when there are
2639         multiple EH predecestors.
2640
2641 2009-05-02  Jan Hubicka  <jh@suse.cz>
2642
2643         * except.c (remove_eh_handler_and_replace): Handle updating after
2644         removing TRY blocks.
2645
2646 2009-05-02  Eric Botcazou  <ebotcazou@adacore.com>
2647
2648         * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
2649
2650 2009-05-02  Steven Bosscher  <steven@gcc.gnu.org>
2651
2652         * varasm.c: Do not include c-pragma.h.
2653         * attribs.c: Do not incude c-common.h.
2654
2655 2009-05-01  Michael Matz  <matz@suse.de>
2656
2657         * calls.c (initialize_argument_information): Handle SSA names like
2658         decls with a non MEM_P DECL_RTL.
2659
2660 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
2661
2662         * ipa-reference.c: Do not include c-common.h, include splay-tree.h.
2663         * ipa-utils.c: Likewise.
2664         * ipa-type-escape.c: Likewise.
2665         * cgraphunit.c Do not include c-common.h.
2666         * ipa-pure-const.c: Likewise.
2667         * tree-if-conv.c: Likewise.
2668         * matrix-reorg.c: Do not include c-common.h and c-tree.h.
2669         * ipa-struct-reorg.c: Likewise.
2670         * tree-nomudflap.c: Likewise.
2671         * tree-ssa-structalias.c: Likewise.
2672
2673 2009-05-01  Steven Bosscher  <steven@gcc.gnu.org>
2674
2675         * store-motion.c: Many cleanups to make this pass a first-class
2676         citizen instead of an appendix to gcse load motion.  Add TODO list
2677         to make this pass faster/cleaner/better.
2678
2679         (struct ls_expr): Post gcse.c-split cleanups.
2680         Rename to st_expr.  Rename "loads" field to "antic_stores".  Rename
2681         "stores" field to "avail_stores".
2682         (pre_ldst_mems): Rename to store_motion_mems.
2683         (pre_ldst_table): Rename to store_motion_mems_table.
2684         (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users.
2685         (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users.
2686         (ldst_entry): Rename to st_expr_entry, update users.
2687         (free_ldst_entry): Rename to free_st_expr_entry, update users.
2688         (free_ldst_mems): Rename to free_store_motion_mems, update users.
2689         (enumerate_ldsts): Rename to enumerate_store_motion_mems,
2690         update caller.
2691         (first_ls_expr): Rename to first_st_expr, update users.
2692         (next_ls_expr): Rename to next_st_expr, update users.
2693         (print_ldst_list): Rename to print_store_motion_mems.  Print names of
2694         fields properly for store motion instead of names inherited from load
2695         motion in gcse.c.
2696         (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove.
2697         (LAST_AVAIL_CHECK_FAILURE): Explain what this is.  Undefine when we
2698         are done with it.
2699
2700         (ae_kill): Rename to st_kill, update users.
2701         (ae_gen): Rename to st_avloc, update users.
2702         (transp): Rename to st_transp, update users.
2703         (pre_insert_map): Rename to st_insert_map, update users.
2704         (pre_delete_map): Rename to st_delete_map, update users.
2705         (insert_store, build_store_vectors, free_store_memory,
2706         one_store_motion_pass): Update for abovementioned changes.
2707
2708         (gcse_subst_count, gcse_create_count): Remove.
2709         (one_store_motion_pass): New statistics counters "n_stores_deleted"
2710         and "n_stores_created", local variables.
2711
2712         (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to
2713         use for_each_rtx.
2714
2715         (regvec, compute_store_table_current_insn): Remove.
2716         (reg_set_info, reg_clear_last_set): Remove.
2717         (compute_store_table): Use DF caches instead of local dataflow
2718         solvers.
2719
2720 2009-05-01  Joseph Myers  <joseph@codesourcery.com>
2721
2722         * c-objc-common.c (c_tree_printer): Print identifiers with
2723         pp_identifier, not pp_string.  Mark "({anonymous})" for
2724         translation.
2725         * c-pretty-print.c (pp_c_ws_string): New.
2726         (pp_c_cv_qualifier, pp_c_type_specifier,
2727         pp_c_specifier_qualifier_list, pp_c_parameter_type_list,
2728         pp_c_storage_class_specifier, pp_c_function_specifier,
2729         pp_c_attributes, pp_c_bool_constant, pp_c_constant,
2730         pp_c_primary_expression, pp_c_postfix_expression,
2731         pp_c_unary_expression, pp_c_shift_expression,
2732         pp_c_relational_expression, pp_c_equality_expression,
2733         pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly
2734         use pp_string and pp_c_ws_string in place of pp_identifier and
2735         pp_c_identifier for non-identifiers.  Mark English strings for
2736         translation.
2737         * c-pretty-print.h (pp_c_ws_string): Declare.
2738
2739 2009-04-30  Paul Pluzhnikov  <ppluzhnikov@google.com>
2740             Roland McGrath <roland@redhat.com>
2741
2742         * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support.
2743         (ENABLE_LD_BUILDID): New configuration option.
2744         * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID]
2745         (LINK_BUILDID_SPEC): New macro.
2746         (init_spec): If defined, prepend it between LINK_EH_SPEC and
2747         link_spec.
2748         * doc/install.texi: Document --enable-linker-build-id option.
2749         * configure: Rebuild.
2750         * config.in: Rebuild.
2751
2752 2009-04-30  Adam Nemet  <anemet@caviumnetworks.com>
2753
2754         * config/mips/mips.h (FRAME_GROWS_DOWNWARD,
2755         MIPS_GP_SAVE_AREA_SIZE): Define new macros.
2756         (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD.  Use
2757         MIPS_GP_SAVE_AREA_SIZE.
2758         * config/mips/mips.c (struct mips_frame_info): Update comment
2759         before arg_pointer_offset and hard_frame_pointer_offset.
2760         (mips_compute_frame_info): Update diagram before function: to
2761         correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to
2762         indicate the position of frame_pointer_rtx with -fstack-protector and
2763         to show args_size.  Don't allocate cprestore area for leaf functions
2764         if FRAME_GROWS_DOWNWARD.  Use MIPS_GP_SAVE_AREA_SIZE to set
2765         cprestore_size.
2766         (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD.
2767
2768 2009-04-30  Michael Matz  <matz@suse.de>
2769
2770         PR tree-optimization/39955
2771         * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.
2772
2773 2009-04-30  Dave Korn  <dave.korn.cygwin@gmail.com>
2774
2775         * ira.c (setup_cover_and_important_classes):  Use safe macro
2776         REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint
2777         directly.
2778         * genpreds.c (write_tm_preds_h):  Output suitable definition of
2779         REG_CLASS_FOR_CONSTRAINT.
2780
2781 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
2782
2783         * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value
2784         instead of an int.
2785         * bitmap.c (bitmap_descriptor): Likewise.
2786         * ggc-common.c (loc_descriptor): Likewise.
2787         * varray.c (varray_descriptor): Likewise.
2788         * vec.c (vec_descriptor): Likewise.
2789
2790 2009-04-30  Eric Botcazou  <ebotcazou@adacore.com>
2791
2792         * Makefile.in (dce.o): Add $(EXCEPT_H).
2793         * dce.c: Include except.h and delete redundant vector definitions.
2794         (deletable_insn_p): Return false for non-call insns that can throw
2795         if DF is running.
2796
2797 2009-04-30  Steven Bosscher  <steven@gcc.gnu.org>
2798
2799         * gcse.c (ae_gen): Remove.
2800         (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p
2801         and make non-static function to make it available in store-motion.c.
2802         Update call sites with search-and-replace.
2803         (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok,
2804         extract_mentioned_regs, extract_mentioned_regs_helper,
2805         find_moveable_store, compute_store_table, load_kills_store, find_loads,
2806         store_killed_in_insn, store_killed_after, store_killed_before,
2807         build_store_vectors, insert_insn_start_basic_block, insert-store,
2808         remove_reachable_equiv_notes, replace_store_insn, delete_store,
2809         free_store_memory, one_store_motion_pass, gate_rtl_store_motion,
2810         execute_rtl_store_motion, pass_rtl_store_motion): Move to...
2811         * store-motion.c: ...new file.  Also copy data structures from gcse.c
2812         and clean up to remove parts not used by store motion.
2813         * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype.
2814         * Makefile.in (store-motion.o): New rule. Add to OBJS-common.
2815
2816 2009-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2817
2818         PR target/38571
2819         * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb
2820         when optimizing for size.
2821
2822 2009-04-30  Hans-Peter Nilsson  <hp@axis.com>
2823
2824         * gcse.c (gcse_constant_p): Fix typo in last change.
2825
2826 2009-04-30  Rafael Avila de Espindola  <espindola@google.com>
2827
2828         * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined.
2829
2830 2009-04-30  Andreas Krebbel  <krebbel1@de.ibm.com>
2831
2832         * gcse.c (gcse_constant_p): Make sure the constant is sharable.
2833
2834 2009-04-29  James E. Wilson  <wilson@codesourcery.com>
2835
2836         * config/mips/mips.c (mips_add_offset): Use gen_int_mode for
2837         CONST_HIGH_PART result.
2838
2839 2009-04-29  Anatoly Sokolov  <aesok@post.ru>
2840
2841         * config/avr/avr.c (initial_elimination_offset): Rename to
2842         avr_initial_elimination_offset.
2843         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p,
2844         change return type to bool.
2845         (avr_can_eliminate): New function.
2846         * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate.
2847         (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p.
2848         (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset.
2849         * config/avr/avr-protos.h (initial_elimination_offset): Rename to
2850         avr_initial_elimination_offset.
2851         (frame_pointer_required_p): Rename to avr_frame_pointer_required_p.
2852         (avr_initial_elimination_offset): Define.
2853
2854 2009-04-29  Eric Botcazou  <ebotcazou@adacore.com>
2855             Steven Bosscher  <steven@gcc.gnu.org>
2856
2857         PR rtl-optimization/39938
2858         * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H).
2859         * cfgrtl.c: Include insn-attr.h.
2860         (rest_of_pass_free_cfg): New function.
2861         (pass_free_cfg): Use rest_of_pass_free_cfg as execute function.
2862         * resource.c (init_resource_info): Remove call to df_analyze.
2863
2864 2009-04-29  Richard Guenther  <rguenther@suse.de>
2865
2866         PR target/39943
2867         * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only
2868         allow conversion to signed integers.
2869
2870 2009-04-29  Richard Guenther  <rguenther@suse.de>
2871
2872         * tree-cfg.c (verify_gimple_assign_binary): Allow vector
2873         shifts of floating point vectors if the shift amount is
2874         a constant multiple of the element size.
2875
2876 2009-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
2877             Michael Matz  <matz@suse.de>
2878
2879         PR middle-end/39927
2880         PR bootstrap/39929
2881         * tree-outof-ssa.c (emit_partition_copy): New function.
2882         (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge,
2883         insert_part_to_rtx_on_edge): Perform the partition base var
2884         copy using emit_partition_copy.
2885         (insert_value_copy_on_edge): Convert constants to the right mode.
2886         (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter.
2887         (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge.
2888
2889 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2890
2891         * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg,
2892         scan backwards to try to find a constant to initialize it.
2893
2894         * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last
2895         insn before the loop_end instruction, don't look past labels.
2896
2897 2009-04-29  Richard Guenther  <rguenther@suse.de>
2898
2899         PR middle-end/39937
2900         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not
2901         loose type conversions.
2902         (forward_propagate_addr_expr): Fix tuplification bug.  Remove
2903         stmts only if there are no uses of its definition.
2904
2905 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2906
2907         * config/bfin/bfin.h (splitting_loops): Declare.
2908         * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315):
2909         Reorder bit definitions to be ascending.
2910         (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros.
2911         * config/bfin/bfin.c (splitting_loops): New variable.
2912         (bfin_cpus): Add WA_LOAD_LCREGS as needed.
2913         (struct loop_info): Remove members INIT and LOOP_INIT.
2914         (bfin_optimize_loop): Don't set them.  Reorder the code that generates
2915         the LSETUP sequence.  Allow LC to be loaded from any register, but
2916         also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS.
2917         (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops
2918         set to 1.
2919         * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead
2920         of reload_completed.
2921
2922         From Jie Zhang:
2923         * config/bfin/bfin.md (movsi_insn): Refine constraints.
2924
2925 2009-04-29  Rafael Avila de Espindola  <espindola@google.com>
2926
2927         * Makefile.in (PLUGIN_VERSION_H): New.
2928         (OBJS-common): Remove plugin-version.o.
2929         (plugin.o): Depend on (PLUGIN_VERSION_H).
2930         (plugin-version.o): Remove.
2931         * configure: Regenerate
2932         * configure.ac: Create plugin-version.h.
2933         * gcc-plugin.h (plugin_gcc_version): Remove.
2934         (plugin_default_version_check): Change signature.
2935         * plugin-version.c: Remove.
2936         * plugin.c: Include plugin-version.h.
2937         (str_plugin_gcc_version_name): Remove.
2938         (try_init_one_plugin): Pass gcc version to plugin_init.
2939         (plugin_default_version_check): Both gcc and plugin versions are now
2940         arguments.
2941
2942 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2943         
2944         * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of
2945         problematic last insns.  Test for TYPE_CALL rather than CALL_P.
2946         Remove special case testing for last insn of inner loops. Don't fail
2947         if the loop ends with a jump, emit an extra nop instead.
2948
2949         * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of
2950         DREGS rather than comparing directly.  Remove code that tries to
2951         account for latencies.
2952
2953 2009-04-29  Richard Guenther  <rguenther@suse.de>
2954
2955         PR tree-optimization/39941
2956         * tree-ssa-pre.c (eliminate): Schedule update-ssa after
2957         eliminating an indirect call.
2958
2959 2009-04-29  Richard Guenther  <rguenther@suse.de>
2960
2961         * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue
2962         parameter.  Allow invariants as base if !require_lvalue.
2963         (verify_gimple_assign_single): Adjust.
2964
2965 2009-04-29  Bernd Schmidt  <bernd.schmidt@analog.com>
2966
2967         * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro.
2968         (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts,
2969         ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3,
2970         ssubhi3, ssaddhi3_parts and sssubhi3_parts.
2971         (flag_mulhi3_parts): Produce a HImode output rather than trying to set
2972         a VEC_SELECT.
2973         * config/bfin/bfin.c (bfin_expand_builtin,
2974         case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly.
2975
2976 2009-04-28  Richard Guenther  <rguenther@suse.de>
2977
2978         * tree-vect-loop.c (get_initial_def_for_induction): Use
2979         correct types for pointer increment.
2980
2981 2009-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2982
2983         * toplev.c (print_version): Update GMP version string calculation.
2984
2985 2009-04-28  Eric Botcazou  <ebotcazou@adacore.com>
2986
2987         PR rtl-optimization/39938
2988         * resource.c (init_resource_info): Add call to df_analyze.
2989
2990 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
2991
2992         * config/alpha/alpha.md (usegp): Cast the result of
2993         alpha_find_lo_sum_using_gp to enum attr_usegp.
2994         * config/alpha/alpha.c (override_options): Remove end-of-structure
2995         marker element from cpu_table.  Use array size of cpu_table to handle
2996         -mcpu and -mtune options.
2997         (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE.
2998
2999 2009-04-28  Joseph Myers  <joseph@codesourcery.com>
3000
3001         * config.gcc (powerpc*-*-* | rs6000-*-*): Add
3002         rs6000/option-defaults.h to tm_file.  Support cpu_32, cpu_64,
3003         tune_32 and tune_64.
3004         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
3005         support on PowerPC.
3006         * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ...
3007         * config/rs6000/option-defaults.h: ... here.  New file.
3008         (OPT_64, OPT_32): Define.
3009         (MASK_64BIT): Define to 0 if not already defined.
3010         (OPT_ARCH64, OPT_ARCH32): Define.
3011         (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32
3012         and tune_64.
3013
3014 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3015
3016         * config/arm/arm.c (arm_override_options): Emit error on using
3017         fpa with AAPCS.
3018
3019 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
3020
3021         PR rtl-optimization/39914
3022         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
3023         registers for allocnos created from user-defined variables only
3024         when not optimizing.
3025
3026 2009-04-28  Richard Guenther  <rguenther@suse.de>
3027
3028         PR middle-end/39937
3029         * fold-const.c (fold_binary): Use distribute_real_division only
3030         on float types.
3031
3032 2009-04-28  Steve Ellcey  <sje@cup.hp.com>
3033
3034         * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and
3035         add hpux-stdint.h to tm_file.
3036         (hppa[12]*-*-hpux11*): Ditto.
3037         (ia64*-*-hpux*): Ditto.
3038         * config/hpux-stdint.h: New.
3039         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set
3040         __STDC_EXT__ for all compiles.
3041         * config/pa/pa-hpux.h: Ditto.
3042         * config/pa/pa-hpux10.h: Ditto.
3043         * config/pa/pa-hpux11.h: Ditto.
3044
3045 2009-04-28  Catherine Moore  <clm@codesourcery.com>
3046
3047         * debug.h (set_name): Add comment.
3048
3049 2009-04-28  Andrew Pinski  <pinskia@gmail.com>
3050
3051         PR target/39929
3052         * config/darwin.c (machopic_gen_offset): Check
3053         currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE.
3054         * config/arm/arm.c (require_pic_register): Likewise.
3055
3056 2009-04-28  Paolo Bonzini  <bonzini@gnu.org>
3057
3058         * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN,
3059         m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES,
3060         m32c_promote_prototypes): Delete.
3061
3062 2009-04-28  Michael Matz  <matz@suse.de>
3063
3064         PR middle-end/39922
3065         * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert
3066         constants.
3067
3068 2009-04-28  Richard Guenther  <rguenther@suse.de>
3069
3070         * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error.
3071
3072 2009-04-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3073
3074         * config/arm/arm-cores.def: Add support for arm1156t2f-s.
3075         * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s.
3076         * config/arm/arm-tune.md: Regenerate.
3077
3078 2009-04-28  Alexander Monakov  <amonakov@ispras.ru>
3079
3080         * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a
3081         block if there are complex incoming edges.
3082         (sel_merge_blocks): Remove useless assert.
3083         (sel_redirect_edge_and_branch): Check that edge was redirected.
3084         * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert.
3085         (sel_find_rgns): Delete declaration.
3086         * sel-sched.c (purge_empty_blocks): Attempt to remove first block of
3087         the region when it is not a preheader.
3088
3089 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
3090
3091         PR c/39323
3092         * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h
3093
3094 2009-04-28  Richard Guenther  <rguenther@suse.de>
3095
3096         * tree.h (SSA_NAME_VALUE): Remove.
3097         (struct tree_ssa_name): Remove value_handle member.
3098         * tree-vrp.c (execute_vrp): Initialize/free the value-handle
3099         array for jump threading.
3100         * tree-ssa-propagate.c (ssa_prop_init): Do not initialize
3101         SSA_NAME_VALUEs.
3102         * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs.
3103         * tree-flow.h (threadedge_initialize_values): Declare.
3104         (threadedge_finalize_values): Likewise.
3105         * tree-ssa-threadedge.c (ssa_name_values): New global variable.
3106         (SSA_NAME_VALUE): Define.
3107         (threadedge_initialize_values): New function.
3108         (threadedge_finalize_values): Likewise.
3109         * tree-ssa-dom.c (ssa_name_values): New global variable.
3110         (SSA_NAME_VALUE): Define.
3111         (tree_ssa_dominator_optimize): Initialize/free the value-handle array.
3112
3113 2009-04-28  Ira Rosen  <irar@il.ibm.com>
3114
3115         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
3116         Use REPORT_VECTORIZED_LOCATIONS instead 
3117         REPORT_VECTORIZED_LOOPS.
3118         * tree-vectorizer.c (vect_verbosity_level): Make static.
3119         (vect_loop_location): Rename to vect_location.
3120         (vect_set_verbosity_level): Update comment.
3121         (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS
3122         and vect_location.
3123         (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS
3124         and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS
3125         instead REPORT_UNVECTORIZED_LOOPS.
3126         * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def
3127         and vect_loop_def to vect_external_def and vect_internal_def.
3128         (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS
3129         and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 
3130         REPORT_UNVECTORIZED_LOCATIONS.
3131         (enum vect_relevant): Update comment. Rename vect_unused_in_loop
3132         and vect_used_in_loop and to vect_unused_in_scope and 
3133         vect_used_in_scope.
3134         (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope.
3135         (vect_verbosity_level): Remove declaration.
3136         (vect_analyze_operations): Likewise.
3137         (vect_analyze_stmt): Declare.
3138         * tree-vect-loop.c (vect_determine_vectorization_factor): Use
3139         REPORT_UNVECTORIZED_LOCATIONS.
3140         (vect_get_loop_niters): Fix indentation.
3141         (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS.
3142         (vect_analyze_loop_operations): New function.
3143         (vect_analyze_loop): Call vect_analyze_loop_operations instead of
3144         vect_analyze_operations.
3145         (vect_is_simple_reduction): Use new names.
3146         (vectorizable_live_operation, vect_transform_loop): Likewise.
3147         * tree-vect-data-refs.c (vect_check_interleaving): Add a return value
3148         to specify whether the data references can be a part of interleaving
3149         chain.
3150         (vect_analyze_data_ref_dependence): Use new names.
3151         (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise.
3152         (vect_create_addr_base_for_vector_ref): Remove redundant code.
3153         * tree-vect-patterns.c (widened_name_p): Use new names.
3154         (vect_recog_dot_prod_pattern): Likewise.
3155         * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names.
3156         (process_use, vect_mark_stmts_to_be_vectorized, 
3157         vect_model_simple_cost, vect_model_store_cost,
3158         vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy,
3159         vectorizable_call, vectorizable_conversion, vectorizable_assignment,
3160         vectorizable_operation, vectorizable_type_demotion,
3161         vectorizable_type_promotion, vectorizable_store, vectorizable_load,
3162         vectorizable_condition): Likewise.
3163         (vect_analyze_operations): Split into vect_analyze_loop_operations
3164         and ...
3165         (vect_analyze_stmt): ... new function.
3166         (new_stmt_vec_info): Use new names.
3167         (vect_is_simple_use): Use new names and fix comment.
3168         * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names.
3169         (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise.
3170
3171 2009-04-28  Uros Bizjak  <ubizjak@gmail.com>
3172
3173         PR target/39911
3174         * config/i386/i386.c (print_operand) ['Z']: Handle floating point
3175         and integer modes for x87 operands.  Do not ICE for unsupported size,
3176         generate error instead.  Generate error for unsupported operand types.
3177         ['z']: Do not handle HImode memory operands specially.  Warning
3178         for floating-point operands.  Fallthru to 'Z' for unsupported operand
3179         types.  Do not ICE for unsupported size, generate error instead.
3180         (output_387_binary_op): Use %Z to output operands.
3181         (output_fp_compare): Ditto.
3182         (output_387_reg_move): Ditto.
3183
3184 2009-04-28  Ben Elliston  <bje@au.ibm.com>
3185
3186         PR c++/35652
3187         Revert:
3188
3189         2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
3190
3191         * builtins.c (c_strlen): Do not warn here.
3192         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
3193         * c-common.c (pointer_int_sum): Take an explicit location.
3194         Warn about offsets out of bounds.
3195         * c-common.h (pointer_int_sum): Adjust declaration.
3196
3197 2009-04-27  Ian Lance Taylor  <iant@google.com>
3198
3199         * collect2.c (is_ctor_dtor): Change type of ret field in struct
3200         names to symkind.
3201         * dce.c (run_fast_df_dce): Change type of old_flags to int.
3202         * df-core.c (df_set_flags): Change return type to int.  Change
3203         type of old_flags to int.
3204         (df_clear_flags): Likewise.
3205         * df-scan.c (df_def_record_1): Change 0 to VOIDmode.
3206         (df_get_conditional_uses): Likewise.
3207         * df.h (df_set_flags, df_clear_flags): Update declarations.
3208         * dwarf2out.c (struct indirect_string_node): Change type of form
3209         field to enum dwarf_form.
3210         (AT_string_form): Change return type to enum dwarf_form.
3211         * fixed-value.c (fixed_compare): Add cast to enum type.
3212         * fwprop.c (update_df): Change 0 to VOIDmode.
3213         * gensupport.c: Change 0 to UNKNOWN.
3214         * gimple.h (gimple_cond_code): Add cast to enum type.
3215         * haifa-sched.c (reemit_notes): Add cast to enum type.
3216         * hooks.c (hook_int_void_no_regs): Remove function.
3217         * hooks.h (hook_int_void_no_regs): Remove declaration.
3218         * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode.
3219         * predict.c (combine_predictions_for_insn): Add casts to enum type.
3220         * real.c (real_arithmetic): Add cast to enum type.
3221         (real_compare): Likewise.
3222         * target.h (struct gcc_target): Change return type of
3223         branch_target_register_class to enum reg_class.
3224         * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as
3225         default_branch_target_register_class.
3226         * targhooks.c (default_branch_target_register_class): New function.
3227         * targhooks.h (default_branch_target_register_class): Declare.
3228         * tree-data-ref.c (print_direction_vector): Add cast to enum type.
3229         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove
3230         cast to int.
3231         * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to
3232         ERROR_MARK.
3233         * tree-vect-slp.c (vect_build_slp_tree): Change 0 to
3234         vect_uninitialized_def.  Change 0 to ERROR_MARK.
3235         * tree-vect-stmts.c (supportable_widening_operation): Don't
3236         initialize icode1 and icode2.
3237         * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def.
3238         * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none
3239         and to STD_C89.
3240         (cmn_err_flag_specs): Change 0 to STD_C89.
3241         (cmn_err_char_table): Likewise.
3242         * config/arm/arm.c (get_arm_condition_code): Change type of code
3243         to enum arm_cond_code.
3244         (IWMMXT_BUILTIN): Change 0 to UNKNOWN.
3245         (IWMMXT_BUILTIN2): Likewise.
3246         (neon_builtin_type_bits): Don't define typedef.
3247         (neon_builtin_datum): Change type of bits field to int.
3248         (arm_expand_neon_args): Add cast to enum type.
3249         * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to
3250         TLS_MODEL_NONE.
3251         * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN.  Add
3252         casts to enum type.
3253         * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to
3254         MIPS_FP_COND_f.
3255         * config/mips/mips.md (jal_macro): Return enum constant.
3256         (single_insn): Likewise.
3257         * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to
3258         CODE_FOR_nothing.
3259         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3260         casts to enum type.
3261         * config/s390/s390.c (s390_tune_flags): Change type to int.
3262         (s390_arch_flags): Likewise.
3263         (s390_handle_arch_option): Change flags field of struct pta to int.
3264         * config/s390/s390.h (s390_tune_flags): Update declaration.
3265         (s390_arch_flags): Likewise.
3266         * config/sh/sh.c (prepare_move_operands): Compare
3267         tls_symbolic_operand result with enum constant.
3268         (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND.
3269         (sh_expand_prologue): Add cast to enum type.
3270         (sh_expand_epilogue): Likewise.
3271         (tls_symbolic_operand): Change return type to enum tls_model.
3272         (fpscr_set_from_mem): Add cast to enum type.
3273         (legitimize_pic_address): Compare tls_symbolic_operand result with
3274         enum constant.
3275         (sh_target_reg_class): Change return type to enum reg_class.
3276         * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to
3277         PROCESSOR_xxx.
3278         * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration.
3279         * config/sparc/sparc.c (sparc_override_options): Add cast to enum type.
3280         * config/sparc/sparc.md (empty_delay_slot): Return enum constant.
3281         (pic, calls_alloca, calls_eh_return, leaf_function): Likewise.
3282         (delayed_branch, tls_call_delay): Likewise.
3283         (eligible_for_sibcall_delay): Likewise.
3284         (eligible_for_return_delay): Likewise. 
3285         * config/spu/spu.c (expand_builtin_args): Add cast to enum type.
3286         (spu_expand_builtin_1): Likewise.
3287
3288         * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings
3289         for all types of conversions.
3290         (output_init_element): Issue -Wc++-compat warning if needed when
3291         initializing a bitfield with enum type.
3292         * c-parser.c (c_parser_expression): Set original_type to
3293         original_type of right hand operand of comman operator.
3294
3295 2009-04-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3296
3297         * doc/c-tree.texi (Types, Functions, Expression trees): Fix
3298         grammar nits.
3299         * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise.
3300         * doc/cpp.texi (Standard Predefined Macros)
3301         (Implementation-defined behavior): Likewise.
3302         * doc/extend.texi (Function Attributes, Type Attributes): Likewise.
3303         * doc/gimple.texi (GIMPLE Exception Handling)
3304         (@code{GIMPLE_ASSIGN}): Likewise.
3305         * doc/install.texi (Prerequisites, Configuration, Specific): Likewise.
3306         * doc/invoke.texi (Warning Options, Optimize Options)
3307         (AVR Options, Darwin Options): Likewise.
3308         (Optimize Options): Reformulate -fwhole-program description.
3309         * doc/loop.texi (Lambda): Likewise.
3310         * doc/md.texi (Output Template, Define Constraints)
3311         (Standard Names, Insn Splitting): Likewise.
3312         * doc/options.texi (Option properties): Likewise.
3313         * doc/passes.texi (Tree-SSA passes): Likewise.
3314         * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise.
3315         * doc/tm.texi (Register Classes, Old Constraints, Scalar Return)
3316         (File Names and DBX): Likewise.
3317         * doc/trouble.texi (Incompatibilities): Likewise.
3318
3319 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
3320
3321         * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint
3322         instruction is correct.
3323
3324 2009-04-27  Trevor Smigiel  <trevor_smigiel@playstation.sony.com>
3325
3326         Allow non-constant arguments to conversion intrinsics.
3327         * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare.
3328         * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New.
3329         * spu.c (print_operand): Handle 'v' and 'w'.
3330         (exp2_immediate_p, spu_gen_exp2): Define.
3331         * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0,
3332         spu_convtf_1): Update parameter descriptions.
3333         * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update.
3334         * constraints.md ('v', 'w'): New.
3335         * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU):
3336         Remove.
3337         (i2f, I2F): New define_mode_attr.
3338         (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2,
3339         floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2,
3340         fixuns_truncv4sfv4si2):  Update to use mode attribute.
3341         (float<mode><i2f>2_mul, float<mode><i2f>2_div,
3342         fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul,
3343         floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New
3344         patterns for combine.
3345
3346 2009-04-27  Steven Bosscher  <steven@gcc.gnu.org>
3347
3348         * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove
3349         (cprop, hoist, pre, store_motion): New debug counters.
3350         * tree-pass.h (pass_tracer): Move to list of gimple passes, it
3351         is not an RTL pass anymore.
3352         (pass_profiling): Remove extern decl for pass removed in 2005.
3353         (pass_gcse, pass_jump_bypass): Remove.
3354         * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts
3355         to 0 for clean state.
3356         * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration.
3357         * cse.c (gate_handle_cse_after_global_opts,
3358         rest_of_handle_cse_after_global_opts): New functions.
3359         (pass_cse_after_global_opts): New pass, does local CSE.
3360         * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove.
3361         (TV_CPROP): New timevar.
3362         * gcse.c (flag_rerun_cse_after_global_opts): New global variable.
3363         (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars.
3364         (gcse_main, recompute_all_luids): Remove.
3365         (compute_hash_table_work): Call max_reg_num instead of reading
3366         max_gcse_regno.
3367         (cprop_jump): Don't set run_jump_opt_after_gcse.
3368         (constprop_register): Always allow to alter jumps.
3369         (cprop_insn): Likewise.
3370         (do_local_cprop): Likewise.
3371         (local_cprop_pass): Likewise.  Return non-zero if something changed.
3372         (cprop): Remove function, fold interesting bits into one_cprop_pass.
3373         (find_implicit_sets): Add note about missed optimization opportunity.
3374         (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the
3375         pass_rtl_cprop execute function.
3376         Don't bother tracking the pass number, each pass gets its own dumpfile
3377         now anyway.
3378         Always allow to alter jumpsand bypass jumps.
3379         (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set
3380         will just find no suitable set.
3381         (pre_edge_insert): Fix dumping, this function is for PRE only.
3382         (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the
3383         pass_rtl_pre execute function.
3384         (hoist_code): Return non-zero if something changed.  Keep track of
3385         substitutions and insertions for statistics gathering similar to PRE.
3386         (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass,
3387         called from the pass_rtl_hoist execute function.  Show pass statistics.
3388         (compute_store_table): Use max_reg_num directly instead of using the
3389         formerly global max_gcse_regno.
3390         (build_store_vectors): Likewise.
3391         (replace_store_insn): Fix dumping.
3392         (store_motion): Rename to ...
3393         (one_store_motion_pass): ... this.  Rewrite to be "the" STORE_MOTION
3394         pass, called from the pass_rtl_store_motion execute function.  Keep
3395         track of substitutions and insertions for statistics gathering similar
3396         to PRE.
3397         (bypass_jumps): Remove, fold interesting bits into ...
3398         (one_cprop_pass): ... this.  Rewrite to be "the" CPROP pass, called
3399         from the pass_rtl_cprop execute function.
3400         (gate_handle_jump_bypass, rest_of_handle_jump_bypass,
3401         pass_jump_bypass): Remove.
3402         (gate_handle_gcse, rest_of_handle_gcse): Remove.
3403         (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New.
3404         (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New.
3405         (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New.
3406         (gate_rtl_store_motion, execute_rtl_store_motion,
3407         pass_rtl_store_motion): New.
3408         * common.opt: Remove flag_cse_skip_blocks, adjust documentation to
3409         make it clear that -fcse-skip-blocks is a no-op for backward compat.
3410         * passes.c (init_optimization_passes): Remove pass_gcse and
3411         pass_jump_bypass.  Schedule cprop, pre, hoist, cprop, store_motion,
3412         and cse_after_global_opts in place of pass_gcse.  Schedule cprop
3413         instead of pass_jump_bypass.
3414
3415 2009-04-27  Richard Guenther  <rguenther@suse.de>
3416
3417         PR middle-end/39928
3418         * gimplify.c (gimplify_expr): If we are required to create
3419         a temporary make sure it ends up as register.
3420
3421 2009-04-27  H.J. Lu  <hongjiu.lu@intel.com>
3422
3423         PR target/39903
3424         * config/i386/i386.c (construct_container): Don't call
3425         gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS,
3426         X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS.
3427
3428 2009-04-27  Michael Matz  <matz@suse.de>
3429
3430         * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap.
3431         (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT.
3432         * tree-ssa-live.h: (find_replaceable_exprs): Return a bitmap.
3433         (dump_replaceable_exprs): Take a bitmap.
3434         * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of
3435         array.
3436         (expand_gimple_basic_block): Likewise.
3437         * tree-ssa-ter.c (struct temp_expr_table_d): Make
3438         replaceable_expressions member a bitmap.
3439         (free_temp_expr_table): Pass back and deal with bitmap, not gimple*.
3440         (mark_replaceable): Likewise.
3441         (find_replaceable_in_bb, dump_replaceable_exprs): Likewise.
3442         * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap.
3443
3444 2009-04-27  Richard Guenther  <rguenther@suse.de>
3445
3446         * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards.
3447         (verify_stmts): Dispatch to gimple/type verification code.
3448         * tree-inline.c (remap_gimple_op_r): Work around C++ FE
3449         issue with call argument types.
3450
3451 2009-04-27  Michael Matz  <matz@suse.de>
3452
3453         * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove.
3454         (init_update_ssa, delete_update_ssa, update_ssa): Remove references
3455         to above.
3456
3457 2009-04-27  Richard Sandiford  <rdsandiford@googlemail.com>
3458             Eric Botcazou  <ebotcazou@adacore.com>
3459
3460         * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up
3461         a label's basic block.
3462         (mark_target_live_regs): Tidy and rework obsolete comments.
3463         Change back DF problem to LIVE.  If a label starts a basic block,
3464         assume that all registers that used to be live then still are.
3465         (init_resource_info): If a label starts a basic block, set its
3466         BLOCK_FOR_INSN accordingly.
3467         (fini_resource_info): Undo the setting of BLOCK_FOR_INSN.
3468
3469 2009-04-27  Richard Guenther  <rguenther@suse.de>
3470
3471         * tree-flow-inline.h (function_ann): Remove.
3472         (get_function_ann): Likewise.
3473         * tree-dfa.c (create_function_ann): Remove.
3474         * tree-flow.h (struct static_var_ann_d): Remove.
3475         (struct function_ann_d): Likewise.
3476         (union tree_ann_d): Remove fdecl member.
3477         (function_ann_t): Remove.
3478         (function_ann, get_function_ann, create_function_ann): Remove
3479         declarations.
3480
3481 2009-04-27  Uros Bizjak  <ubizjak@gmail.com>
3482
3483         * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code.
3484
3485 2009-04-27  Jan Hubicka  <jh@suse.cz>
3486
3487         * ipa-pure-const.c (struct funct_state_d): New fields
3488         state_previously_known, looping_previously_known; remove
3489         state_set_in_source.
3490         (analyze_function): Use new fields.
3491         (propagate): Avoid assumption that state_set_in_source imply
3492         nonlooping.
3493
3494         * tree-ssa-loop-niter.c (finite_loop_p): New function.
3495         * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it.
3496         * cfgloop.h (finite_loop_p): Declare.
3497
3498 2009-04-26  Michael Matz  <matz@suse.de>
3499
3500         * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members.
3501
3502 2009-04-26  Michael Matz  <matz@suse.de>
3503
3504         * tree-pass.h (pass_del_ssa, pass_mark_used_blocks,
3505         pass_free_cfg_annotations, pass_free_datastructures): Remove decls.
3506         * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks,
3507         pass_mark_used_blocks): Remove.
3508         * tree-optimize.c (pass_free_datastructures,
3509         execute_free_cfg_annotations, pass_free_cfg_annotations): Remove.
3510         * passes.c (init_optimization_passes): Don't call
3511         pass_mark_used_blocks, remove dead code.
3512
3513 2009-04-26  H.J. Lu  <hongjiu.lu@intel.com>
3514
3515         * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED.
3516         * tree-ssa-live.h (register_ssa_partition): Likewise.
3517
3518 2009-04-26  Michael Matz  <matz@suse.de>
3519
3520         Expand from SSA.
3521         * builtins.c (fold_builtin_next_arg): Handle SSA names.
3522         * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly.
3523         * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful
3524         SSA names. 
3525         (compare_pairs): Swap cost comparison.
3526         (coalesce_ssa_name): Don't use change_partition_var.
3527         * tree-nrv.c (struct nrv_data): Add modified member.
3528         (finalize_nrv_r): Set it.
3529         (tree_nrv): Use it to update statements.
3530         (pass_nrv): Require PROP_ssa.
3531         * tree-mudflap.c (mf_decl_cache_locals,
3532         mf_build_check_statement_for): Use make_rename_temp.
3533         (pass_mudflap_2): Require PROP_ssa, run ssa update at finish.
3534         * alias.c (find_base_decl): Handle SSA names.
3535         * emit-rtl (set_reg_attrs_for_parm): Make non-static.
3536         (component_ref_for_mem_expr): Don't leak SSA names into RTL.
3537         * rtl.h (set_reg_attrs_for_parm): Declare.
3538         * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename
3539         to "optimized", remove unused locals at finish.
3540         (execute_free_datastructures): Make global, call
3541         delete_tree_cfg_annotations.
3542         (execute_free_cfg_annotations): Don't call
3543         delete_tree_cfg_annotations.
3544
3545         * ssaexpand.h: New file.
3546         * expr.c (toplevel): Include ssaexpand.h.
3547         (expand_assignment): Handle SSA names the same as register variables.
3548         (expand_expr_real_1): Expand SSA names.
3549         * cfgexpand.c (toplevel): Include ssaexpand.h.
3550         (SA): New global variable.
3551         (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates.
3552         (SSAVAR): New macro.
3553         (set_rtl): New helper function.
3554         (add_stack_var): Deal with SSA names, use set_rtl.
3555         (expand_one_stack_var_at): Likewise.
3556         (expand_one_stack_var): Deal with SSA names.
3557         (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker
3558         before unique numbers.
3559         (expand_stack_vars): Use set_rtl.
3560         (expand_one_var): Accept SSA names, add asserts for them, feed them
3561         to above subroutines.
3562         (expand_used_vars): Expand all partitions (without default defs),
3563         then only the local decls (ignoring those expanded already).
3564         (expand_gimple_cond): Remove edges when jumpif() expands an
3565         unconditional jump.
3566         (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here,
3567         or remove abnormal edges.  Ignore insns setting the LHS of a TERed
3568         SSA name.
3569         (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize
3570         members of SA; deal with PARM_DECL partitions here; expand
3571         all PHI nodes, free tree datastructures and SA.  Commit instructions
3572         on edges, clear EDGE_EXECUTABLE and remove abnormal edges here.
3573         (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow
3574         info and statements at start, collect garbage at finish.
3575         * tree-ssa-live.h (struct _var_map): Remove partition_to_var member.
3576         (VAR_ANN_PARTITION) Remove.
3577         (change_partition_var): Don't declare.
3578         (partition_to_var): Always return SSA names.
3579         (var_to_partition): Only accept SSA names.
3580         (register_ssa_partition): Only check argument.
3581         * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var
3582         member.
3583         (delete_var_map): Don't free it.
3584         (var_union): Only accept SSA names, simplify.
3585         (partition_view_init): Mark only useful SSA names as used.
3586         (partition_view_fini): Only deal with SSA names.
3587         (change_partition_var): Remove.
3588         (dump_var_map): Use ssa_name instead of partition_to_var member.
3589         * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL
3590         basic blocks.
3591         * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h.
3592         (struct _elim_graph): New member const_dests; nodes member vector of
3593         ints.
3594         (set_location_for_edge): New static helper.
3595         (create_temp): Remove.
3596         (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge,
3597         insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions.
3598         (new_elim_graph): Allocate const_dests member.
3599         (clean_elim_graph): Truncate const_dests member.
3600         (delete_elim_graph): Free const_dests member.
3601         (elim_graph_size): Adapt to new type of nodes member.
3602         (elim_graph_add_node): Likewise.
3603         (eliminate_name): Likewise.
3604         (eliminate_build): Don't take basic block argument, deal only with
3605         partition numbers, not variables.
3606         (get_temp_reg): New static helper.
3607         (elim_create): Use it, deal with RTL temporaries instead of trees.
3608         (eliminate_phi): Adjust all calls to new signature.
3609         (assign_vars, replace_use_variable, replace_def_variable): Remove.
3610         (rewrite_trees): Only do checking.
3611         (edge_leader, stmt_list, leader_has_match, leader_match): Remove.
3612         (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p,
3613         init_analyze_edges_for_bb, fini_analyze_edges_for_bb,
3614         contains_tree_r, MAX_STMTS_IN_LATCH,
3615         process_single_block_loop_latch, analyze_edges_for_bb,
3616         perform_edge_inserts): Remove.
3617         (expand_phi_nodes): New global function.
3618         (remove_ssa_form): Take ssaexpand parameter.  Don't call removed
3619         functions, initialize new parameter, remember partitions having a
3620         default def.
3621         (finish_out_of_ssa): New global function.
3622         (rewrite_out_of_ssa): Make global.  Adjust call to remove_ssa_form,
3623         don't reset in_ssa_p here, don't disable TER when mudflap.
3624         (pass_del_ssa): Remove.
3625         * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and
3626         partition members.
3627         (execute_free_datastructures): Declare.
3628         * Makefile.in (SSAEXPAND_H): New variable.
3629         (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H.
3630         * basic-block.h (commit_one_edge_insertion): Declare.
3631         * passes.c (init_optimization_passes): Move pass_nrv and
3632         pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove
3633         pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations.
3634         * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare.
3635         (redirect_branch_edge): Deal with super block when expanding, split
3636         out jump patching itself into ...
3637         (patch_jump_insn): ... here, new static helper.
3638
3639 2009-04-26  Michael Matz  <matz@suse.de>
3640
3641         * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate
3642         beyond num_ssa_names.
3643         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
3644         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
3645
3646 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
3647
3648         PR inline-asm/39543
3649         * fwprop.c (forward_propagate_asm): New function.
3650         (forward_propagate_and_simplify): Propagate also into __asm, if it
3651         doesn't increase the number of referenced registers.
3652
3653         PR c/39889
3654         * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
3655
3656 2009-04-26  Jakub Jelinek  <jakub@redhat.com>
3657
3658         * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
3659         note_nonlocal_vla_type for nonlocal VLAs.
3660         (note_nonlocal_vla_type, note_nonlocal_block_vlas,
3661         contains_remapped_vars, remap_vla_decls): New functions.
3662         (convert_nonlocal_reference_stmt): If not optimizing, call
3663         note_nonlocal_block_vlas on GIMPLE_BIND block vars.
3664         (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified
3665         if it wasn't found in var_map.
3666         (finalize_nesting_tree_1): Call remap_vla_decls.  If outermost
3667         GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain
3668         to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling
3669         declare_vars.
3670         * gimplify.c (nonlocal_vlas): New variable.
3671         (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local
3672         referenced VLAs.
3673         (gimplify_body): Create and destroy nonlocal_vlas.
3674
3675         * dwarf2out.c (loc_descr_plus_const): New function.
3676         (build_cfa_aligned_loc, tls_mem_loc_descriptor,
3677         mem_loc_descriptor, loc_descriptor_from_tree_1,
3678         descr_info_loc, gen_variable_die): Use it.
3679
3680         * tree.h (DECL_BY_REFERENCE): Note that it is also valid for
3681         !TREE_STATIC VAR_DECLs.
3682         * dwarf2out.c (loc_by_reference, gen_decl_die): Handle
3683         DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs.
3684         (gen_variable_die): Likewise.  Don't look at TREE_PRIVATE if
3685         DECL_BY_REFERENCE is valid.
3686         * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE
3687         for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs.
3688         * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl):
3689         Copy DECL_BY_REFERENCE.
3690         (struct nesting_copy_body_data): New type.
3691         (nesting_copy_decl): New function.
3692         (finalize_nesting_tree_1): Remap types of debug_var_chain variables,
3693         if they have variable length.
3694
3695 2009-04-26  Michael Matz  <matz@suse.de>
3696
3697         * tree-sra.c (sra_build_assignment): Don't use into_ssa mode,
3698         mark new temporaries for renaming.
3699
3700 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
3701
3702         PR c/39581
3703         * c-decl.c (global_bindings_p): Return negative value.
3704         (c_variable_size): New.  Based on variable_size from
3705         stor-layout.c.
3706         (grokdeclarator): Call c_variable_size not variable_size.
3707
3708 2009-04-26  Uros Bizjak  <ubizjak@gmail.com>
3709
3710         * config/i386/i386.c (print_operand) ['z']: Fix typo.
3711
3712 2009-04-26  Kai Tietz  <kai.tietz@onevision.com>
3713
3714         * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR):
3715         Redefine it to just use mingw/include.
3716         (ASM_SPEC): Rules for -m32 and -m64.
3717         (LINK_SPEC): Use Likewise.
3718         (SPEC_32): New define.
3719         (SPEC_64): Likewise.
3720         (SUB_LINK_SPEC): Likewise.
3721         (MULTILIB_DEFAULTS): New define.
3722         * config/i386/t-mingw-w64 (MULTILIB_OPTIONS):
3723         Add multilib options.
3724         (MULTILIB_DIRNAMES): Likewise.
3725         (MULTILIB_OSDIRNAMES): Likewise.
3726         (LIBGCC): Likewise.
3727         (INSTALL_LIBGCC): Likewise.
3728
3729 2009-04-26  Joseph Myers  <joseph@codesourcery.com>
3730
3731         PR c/39556
3732         * c-tree.h (enum c_inline_static_type): New.
3733         (record_inline_static): Declare.
3734         * c-decl.c (struct c_inline_static, c_inline_statics,
3735         record_inline_static, check_inline_statics): New.
3736         (pop_file_scope): Call check_inline_statics.
3737         (start_decl): Call record_inline_static instead of pedwarning
3738         directly for static in inline function.
3739         * c-typeck.c (build_external_ref): Call record_inline_static
3740         instead of pedwarning directly for static referenced in inline
3741         function.
3742
3743 2009-04-26  Steven Bosscher  <steven@gcc.gnu.org>
3744
3745         * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is
3746         not new but only being rescanned.
3747         * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set,
3748         reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block,
3749         alloc_reg_set_mem, free_reg_set_mem, record_one_set,
3750         record_set_info, compute_set, grealloc): Remove.
3751         (recompute_all_luids): New function.
3752         (gcse_main): Don't compute sets, and don't do related memory
3753         allocations/free-ing.  If something changed before the end of the
3754         pass, update LUIDs using recompute_all_luids.
3755         (alloc_gcse_mem): Don't compute LUIDs.  Don't allocate reg_set memory.
3756         (free_gcse_mem): Don't free it either.
3757         (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info):
3758         Use the df insn LUIDs.
3759         (load_killed_in_block): Likewise.
3760         (compute_hash_table_work): Don't compute reg_set_in_block.
3761         (compute_transp): Use DF_REG_DEF_CHAINs.
3762         (local_cprop_pass): Don't use compute_sets and related functions.
3763         (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass):
3764         Use get_max_uid() instead of max_cuid.
3765         (insert_insn_end_basic_block, pre_insert_copy_insn,
3766         update_ld_motion_stores): Don't try to
3767         keep reg_set tables up to date.
3768         (pre_insert_copies): Use df insn LUIDs.
3769         (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P.
3770         (reg_set_info): Don't use extra bitmap argument.
3771         (compute_store_table): Don't compute reg_set_in_block.  Use DF scan
3772         information to compute regs_set_in_block.
3773         (free_store_memory, store_motion): Don't nullify reg_set_in_block.
3774         (bypass_jumps): Don't use compute_sets and friends.
3775
3776 2009-04-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3777
3778         PR testsuite/39710
3779         * opts.c (undocumented_msg): Do not leave blank even with
3780         ENABLE_CHECKING.
3781
3782 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3783
3784         * c-decl.c (build_enumerator): Allow values folding to integer
3785         constants but not integer constant expressions with a pedwarn if
3786         pedantic.
3787
3788 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3789
3790         PR c/39582
3791         * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR
3792         with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length
3793         type is an integer constant.
3794
3795 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
3796
3797         PR target/39897
3798         * config/i386/i386.c (print_operand) ['z']: Revert handling of
3799         HImode operands.
3800
3801 2009-04-25  Joseph Myers  <joseph@codesourcery.com>
3802
3803         PR c/39564
3804         * c-decl.c (grokdeclarator): Diagnose declarations of functions
3805         with variably modified return type and no storage class
3806         specifiers, except for the case of nested functions.  Distinguish
3807         extern declarations of functions with variably modified return
3808         types from those of objects with variably modified types.
3809
3810 2009-04-25  Jan Hubicka  <jh@suse.cz>
3811
3812         * tree.c (list_equal_p): New function.
3813         * tree.h (list_equal_p): Declare.
3814         * coretypes.h (edge_def, edge, const_edge, basic_block_def
3815         basic_block_def, basic_block, const_basic_block): New.
3816         * tree-eh.c (make_eh_edge): EH edges are not abnormal.
3817         (redirect_eh_edge): New function.
3818         (make_eh_edge_update_phi): EH edges are not abnormal.
3819         * except.c: Include tree-flow.h.
3820         (list_match): New function.
3821         (eh_region_replaceable_by_p): New function.
3822         (replace_region): New function.
3823         (hash_type_list): New function.
3824         (hash_eh_region): New function.
3825         (eh_regions_equal_p): New function.
3826         (merge_peers): New function.
3827         (remove_unreachable_regions): Verify EH tree when checking;
3828         merge peers.
3829         (copy_eh_region_1): New function.
3830         (copy_eh_region): New function.
3831         (push_reachable_handler): New function.
3832         (build_post_landing_pads, dw2_build_landing_pads): Be ready for
3833         regions without label but with live RESX.
3834         * except.h (redirect_eh_edge_to_label): New.
3835         * tree-flow.h (redirect_eh_edge): New.
3836         * coretypes.h (edge_def, edge, const_edge, basic_block_def
3837         basic_block_def, basic_block, const_basic_block): Remove.
3838         * Makefile.in (except.o): Add dependency on tree-flow.h
3839         * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges.
3840         * basic-block.h (edge, const_edge, basic_block, const_basic_block):
3841         Remove.
3842
3843 2009-04-25  Eric Botcazou  <ebotcazou@adacore.com>
3844
3845         PR bootstrap/39645
3846         * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE
3847         on the destination of memcpy.
3848
3849 2009-04-25  Paolo Bonzini  <bonzini@gnu.org>
3850
3851         * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P,
3852         REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P,
3853         REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference.
3854
3855 2009-04-25  Jan Hubicka  <jh@suse.cz>
3856
3857         * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels.
3858         (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region
3859         to be reached by different label than left.
3860         (update_eh_edges): Update comment; remove edge_to_remove if possible
3861         and return true if suceeded.
3862         (cleanup_empty_eh): Accept sharing map; handle shared regions.
3863         (cleanup_eh): Compute sharing map.
3864         * except.c (remove_eh_handler_and_replace): Add argument if we should
3865         update regions.
3866         (remove_unreachable_regions): Update for label sharing.
3867         (label_to_region_map): Likewise.
3868         (get_next_region_sharing_label): New function.
3869         (remove_eh_handler_and_replace): Add update_catch_try parameter; update
3870         prev_try pointers.
3871         (remove_eh_handler): Update.
3872         (remove_eh_region_and_replace_by_outer_of): New function.
3873         * except.h (struct eh_region): Add next_region_sharing_label.
3874         (remove_eh_region_and_replace_by_outer_of,
3875         get_next_region_sharing_label): Declare.
3876         * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify.
3877
3878 2009-04-25  Jan Hubicka  <jh@suse.cz>
3879
3880         * tree-cfg.c (split_critical_edges): Split also edges where we can't
3881         insert code even if they are not critical.
3882
3883 2009-04-25  Jan Hubicka  <jh@suse.cz>
3884
3885         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3886         (gimple_can_remove_branch_p): EH edges won't remove branch by
3887         redirection.
3888         * tree-inline.c (update_ssa_across_abnormal_edges): Do handle
3889         updating of non-abnormal EH edges.
3890         * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable.
3891         (gimple_can_remove_branch_p): EH edges are unremovable by redirection.
3892         (split_critical_edges): Split also edges where emitting code on them
3893         will lead to splitting later.
3894
3895 2009-04-25  Uros Bizjak  <ubizjak@gmail.com>
3896             H.J. Lu  <hongjiu.lu@intel.com>
3897
3898         PR target/39590
3899         * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether
3900         the configured assembler supports fildq and fistpq mnemonics.
3901         (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS.
3902         * configure: Regenerated.
3903         * config.in: Ditto.
3904
3905         * config/i386/i386.c (print_operand): Handle 'Z'.
3906         ['z']: Remove handling of special fild/fist suffixes.
3907         (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn.
3908         * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output
3909         suffix of fild insn.
3910         (*floatsi<mode>2_vector_mixed): Ditto.
3911         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto.
3912         (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto.
3913         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
3914         (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto.
3915         * config/i386/gas.h (GAS_MNEMONICS): Remove.
3916
3917 2009-04-25  Ben Elliston  <bje@au.ibm.com>
3918  
3919         * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as
3920         the source of a set operation.
3921
3922 2009-04-25  Anatoly Sokolov  <aesok@post.ru>
3923
3924         * target.h (struct gcc_target): Add case_values_threshold field.
3925         * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New.
3926         (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD.
3927         * targhooks.c (default_case_values_threshold): New function.
3928         * targhooks.h (default_case_values_threshold): Declare function.
3929         * stmt.c (expand_case): Use case_values_threshold target hook.
3930         * expr.h (case_values_threshold): Remove declartation.
3931         * expr.c (case_values_threshold): Remove function.
3932         * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation.
3933
3934         * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro.
3935         * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3936         (avr_case_values_threshold): Declare as static.
3937         * config/avr/avr-protos.h (avr_case_values_threshold): Remove.
3938
3939         * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro.
3940         * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro.
3941         (mn10300_case_values_threshold): New function.
3942
3943 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
3944
3945         * ira.c (setup_cover_and_important_classes): Add enum cast.
3946
3947 2009-04-24  Vladimir Makarov  <vmakarov@redhat.com>
3948
3949         * genpreds.c (write_enum_constraint_num): Output definition of
3950         CONSTRAINT_NUM_DEFINED_P macro.
3951         * ira.c (setup_cover_and_important_classes): Use
3952         CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef.
3953         
3954 2009-04-24  DJ Delorie  <dj@redhat.com>
3955
3956         * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test
3957         __SH2A_SINGLE_ONLY__ also.
3958
3959 2009-04-24  Steve Ellcey  <sje@cup.hp.com>
3960
3961         * config/ia64/ia64.md (movfs_internal): Allow flt constants.
3962         (movdf_internal): Ditto.
3963         * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow
3964         SFmode and DFmode constants.
3965         (ia64_print_operand): Add 'G' format for printing
3966         floating point constants.
3967
3968 2009-04-24  Richard Guenther  <rguenther@suse.de>
3969
3970         * tree-vrp.c (extract_range_from_binary_expr): Handle overflow
3971         from unsigned additions.
3972
3973 2009-04-24  Joseph Myers  <joseph@codesourcery.com>
3974
3975         * c-typeck.c (set_init_index): Allow array designators that are
3976         not integer constant expressions with a pedwarn if pedantic.
3977
3978 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
3979
3980         * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is
3981         zero if no overlap in nonzero bits between the operands.
3982
3983 2009-04-24  Ian Lance Taylor  <iant@google.com>
3984
3985         * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice.
3986         (record_dead_and_set_regs): Likewise.
3987         * df.h (struct df_mw_hardreg): Change flags field to int.
3988         (struct df_base_ref): Likewise.
3989         (struct df): Change changeable_flags field to int.
3990         * df-scan.c (df_defs_record): Change clobber_flags to int.
3991         * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum
3992         constants rather than #define macros.
3993         (enum dwarf_attribute, enum dwarf_location_atom): Likewise.
3994         (enum dwarf_type, enum dwarf_endianity_encoding): Likewise.
3995         (enum dwarf_calling_convention): Likewise.
3996         (enum dwarf_line_number_x_ops): Likewise.
3997         (enum dwarf_call_frame_info): Likewise.
3998         (enum dwarf_source_language): Likewise.
3999         * dwarf2out.c (int_loc_descriptor): Add cast to enum type.
4000         (add_calling_convention_attribute): Likewise.
4001         * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type.
4002         (combine_comparisons): Change compcode to int.  Add cast to enum type.
4003         * genrecog.c (maybe_both_true_2): Change c to int.
4004         (write_switch): Likewise.  Add cast to enum type.
4005         * gimplify.c (gimplify_omp_for): Handle return values from
4006         gimplify_expr using MIN rather than bitwise or.
4007         (gimplify_expr): Add cast to enum type.
4008         * ipa-prop.c (update_jump_functions_after_inlining): Change
4009         IPA_BOTTOM to IPA_JF_UNKNOWN.
4010         * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int.
4011         Add casts to enum type.
4012         (setup_cover_and_important_classes): Change cl to int.  Add casts
4013         to enum type.
4014         (setup_class_translate): Change cl and mode to int.
4015         (ira_init_once): Change mode to int.
4016         (free_register_move_costs): Likewise.
4017         (setup_prohibited_mode_move_regs): Add casts to enum type.
4018         * langhooks.c (add_builtin_function_common): Rework assertion that
4019         value fits bitfield.
4020         * mcf.c (add_fixup_edge): Change type parameter to edge_type.
4021         * omega.c (omega_do_elimination): Avoid math on enum types.
4022         * optabs.c (expand_vec_shift_expr): Remove casts to int.
4023         * opts.c (set_debug_level): Change 2 to enum constant.  Use new
4024         int local to handle integral_argment value.
4025         * regmove.c (try_auto_increment): Change PUT_MODE to
4026         PUT_REG_NOTE_KIND.
4027         * reload.c (push_secondary_reload): Add casts to enum type.
4028         (secondary_reload_class, find_valid_class): Likewise.
4029         * reload1.c (emit_input_reload_insns): Likewise.
4030         * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise.
4031         * sel-sched.c (init_hard_regs_data): Change cur_mode to int.
4032         * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum
4033         constant.
4034         * tree.c (build_common_builtin_nodes): Add casts to enum type.
4035         * tree-complex.c (complex_lattice_t): Typedef to int rather than
4036         enum type.
4037         (expand_complex_libcall): Add casts to enum type.
4038         * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant.
4039         * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code
4040         with ERROR_MARK, not NUM_TREE_CODES.
4041         (vect_create_epilog_for_reduction): Likewise.
4042         (vectorizable_reduction): Don't initialize epiloc_reduc_code.
4043         When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES.
4044         * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to
4045         enum machine_mode.
4046         * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to
4047         vect_unused_in_loop.  Change 0 to loop_vect.
4048         * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type.
4049         * var-tracking.c (get_init_value): Change return type to enum
4050         var_init_status.
4051         * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T.
4052         * config/arm/arm.c (fp_model_for_fpu): Change to array to enum
4053         arm_fp_model.
4054         (arm_override_options): Add casts to enum type.
4055         (arm_emit_tls_decoration): Likewise.
4056         * config/i386/i386.c (ix86_function_specific_restore): Add casts
4057         to enum type.
4058         * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise.
4059         * config/ia64/ia64.c (ia64_expand_compare): Change magic to int.
4060         * config/rs6000/rs6000.c (rs6000_override_options): Add casts to
4061         enum type.
4062         * config/s390/s390.c (code_for_builtin_64): Change to array of
4063         enum insn_code.
4064         (code_for_builtin_31): Likewise.
4065         (s390_expand_builtin): Change code_for_builtin to enum insn_code
4066         const *.
4067         * config/sparc/sparc.c (sparc_override_options): Change value
4068         field in struct code_model to enum cmodel.  In initializer change
4069         0 to NULL and add cast to enum type.
4070
4071         * c-typeck.c (build_modify_expr): Add lhs_origtype parameter.
4072         Change all callers.  Issue a -Wc++-compat warning using
4073         lhs_origtype if necessary.
4074         (convert_for_assignment): Issue -Wc++-compat warnings about
4075         invalid conversions to enum type on assignment.
4076         * c-common.h (build_modify_expr): Update declaration.
4077
4078 2009-04-24  Nick Clifton  <nickc@redhat.com>
4079
4080         * config/iq2000/iq2000.c (function_arg): Handle TImode values.
4081         (function_arg_advance): Likewise.
4082         * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the
4083         5th alternative.
4084
4085 2009-04-24  Andreas Krebbel  <krebbel1@de.ibm.com>
4086
4087         * config/s390/constraints.md ('I', 'J'): Fix condition.
4088
4089 2009-04-24  Diego Novillo  <dnovillo@google.com>
4090
4091         * gengtype-parse.c (parse_error): Add newline after message.
4092
4093 2009-04-24  H.J. Lu  <hongjiu.lu@intel.com>
4094
4095         * config/i386/sse.md (avxmodesuffixs): Removed.
4096         (*avx_pinsr<avxmodesuffixs>): Renamed to ...
4097         (*avx_pinsr<ssevecsize>): This.
4098
4099 2009-04-24  Bernd Schmidt  <bernd.schmidt@analog.com>
4100
4101         * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes;
4102         follow chains of regs with a single definition, and allow expressions
4103         that are function_invariant_p.
4104         (simple_rhs_p): Allow expressions that are function_invariant_p.
4105
4106 2009-04-24  Paolo Bonzini  <bonzini@gnu.org>
4107
4108         PR middle-end/39867
4109         * fold-const.c (fold_cond_expr_with_comparison): When folding
4110         > and >= to MAX, make sure the MAX uses the same type as the
4111         comparison's operands.
4112
4113 2009-04-24  Nick Clifton  <nickc@redhat.com>
4114
4115         * config/frv/frv.c (frv_frame_access): Do not use reg+reg
4116         addressing for DImode accesses.
4117         (frv_print_operand_address): Handle PLUS case.
4118         * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed.
4119
4120 2009-04-24  Jakub Jelinek  <jakub@redhat.com>
4121
4122         PR rtl-optimization/39794
4123         * alias.c (canon_true_dependence): Add x_addr argument.
4124         * rtl.h (canon_true_dependence): Adjust prototype.
4125         * cse.c (check_dependence): Adjust canon_true_dependence callers.
4126         * cselib.c (cselib_invalidate_mem): Likewise.
4127         * gcse.c (compute_transp): Likewise.
4128         * dse.c (scan_reads_nospill): Likewise.
4129         (record_store, check_mem_read_rtx): Likewise.  For non-const-or-frame
4130         addresses pass base->val_rtx as mem_addr, for const-or-frame addresses
4131         canon_base_addr of the group, plus optional offset.
4132         (struct group_info): Rename canon_base_mem to
4133         canon_base_addr.
4134         (get_group_info): Set canon_base_addr to canon_rtx of base, not
4135         canon_rtx of base_mem.
4136
4137 2009-04-23  Paolo Bonzini  <bonzini@gnu.org>
4138
4139         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
4140         Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS.
4141
4142 2009-04-23  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4143
4144         * config/spu/spu-builtins.h: Delete file.
4145
4146         * config/spu/spu.h (enum spu_builtin_type): Move here from
4147         spu-builtins.h.
4148         (struct spu_builtin_description): Likewise.  Add GTY marker.
4149         Do not use enum spu_function_code or enum insn_code.
4150         (spu_builtins): Add extern declaration.
4151
4152         * config/spu/spu.c: Do not include "spu-builtins.h".
4153         (enum spu_function_code, enum spu_builtin_type_index,
4154         V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
4155         V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
4156         unsigned_V8HI_type_node, unsigned_V4SI_type_node,
4157         unsigned_V2DI_type_node): Move here from spu-builtins.h.
4158         (spu_builtin_types): Make static.  Add GTY marker.
4159         (spu_builtins): Add extern declaration with GTY marker.
4160         Include "gt-spu.h".
4161
4162         * config/spu/spu-c.c: Do not include "spu-builtins.h".
4163         (spu_resolve_overloaded_builtin): Do not use spu_function_code.
4164         Check programmatically whether all parameters are scalar.
4165
4166         * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
4167
4168 2009-04-23  Eric Botcazou  <ebotcazou@adacore.com>
4169
4170         * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct
4171         assignment from the constructor either if the target is volatile.
4172
4173 2009-04-23  Daniel Jacobowitz  <dan@codesourcery.com>
4174
4175         * config/arm/arm.md (insv): Do not share operands[0].
4176
4177 2009-04-23  Nathan Sidwell  <nathan@codesourcery.com>
4178
4179         * config/vxlib-tls.c (active_tls_threads): Delete.
4180         (delete_hook_installed): New.
4181         (tls_delete_hook): Don't delete the delete hook.
4182         (tls_destructor): Delete it here.
4183         (__gthread_set_specific): Adjust installing the delete hook.
4184         (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and
4185         __gthread_leave_tsd_dtor_context.
4186
4187 2009-04-23  Rafael Avila de Espindola  <espindola@google.com>
4188
4189         * c-format.c (gcc_tdiag_char_table): Add support for %E.
4190
4191 2009-04-23  Uros Bizjak  <ubizjak@gmail.com>
4192
4193         * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to
4194         enum type.
4195         (alpha_rtx_costs): Ditto.
4196         (emit_unlikely_jump): Use add_reg_note.
4197         (emit_frame_store_1): Ditto.
4198         (alpha_expand_prologue): Ditto.
4199         (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
4200         * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note.
4201
4202 2009-04-23  Nick Clifton  <nickc@redhat.com>
4203
4204         * config/v850/v850.md (epilogue): Remove suppressed code.
4205         (return): Rename to return_simple and remove test of frame size.
4206         * config/v850/v850.c (expand_epilogue): Rename call to gen_return
4207         to gen_return_simple.
4208
4209 2009-04-22  Jing Yu  <jingyu@google.com>
4210
4211         PR testsuite/39781
4212         * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
4213
4214 2009-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4215
4216         PR C/31499
4217         * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE
4218         and RECORD_TYPE/UNION_TYPE.  When outputing the actual element and the
4219         value is a VECTOR_CST, the element type is the element type of the
4220         vector.
4221
4222 2009-04-22  DJ Delorie  <dj@redhat.com>
4223
4224         * config/m32c/m32c.h: Update GTY annotations to new syntax.
4225
4226 2009-04-22  Jakub Jelinek  <jakub@redhat.com>
4227
4228         * alias.c (find_base_term): Move around LO_SUM case, so that
4229         CONST falls through into PLUS/MINUS handling.
4230
4231         PR c/39855
4232         * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
4233         into 0, use omit_one_operand.
4234
4235 2009-04-23  Ben Elliston  <bje@au.ibm.com>
4236
4237         * config/rs6000/linux-unwind.h (get_regs): Remove type
4238         puns. Change the type of `pc' to an array of unsigned ints and
4239         update all users.  Constify frame24.
4240
4241 2009-04-22  DJ Delorie  <dj@redhat.com>
4242
4243         * config/m32c/m32c.c (m32c_special_page_vector_p): Move
4244         declarations before code.
4245         (current_function_special_page_vector): Likewise.
4246         (m32c_expand_insv): Silence a warning.
4247
4248 2009-04-21  Taras Glek  <tglek@mozilla.com>
4249
4250         * alias.c: Update GTY annotations to new syntax.
4251         * basic-block.h: Likewise.
4252         * bitmap.h: Likewise.
4253         * c-common.h: Likewise.
4254         * c-decl.c: Likewise.
4255         * c-parser.c: Likewise.
4256         * c-pragma.c: Likewise.
4257         * c-tree.h: Likewise.
4258         * cfgloop.h: Likewise.
4259         * cgraph.h: Likewise.
4260         * config/alpha/alpha.c: Likewise.
4261         * config/arm/arm.h: Likewise.
4262         * config/avr/avr.h: Likewise.
4263         * config/bfin/bfin.c: Likewise.
4264         * config/cris/cris.c: Likewise.
4265         * config/darwin.c: Likewise.
4266         * config/frv/frv.c: Likewise.
4267         * config/i386/i386.c: Likewise.
4268         * config/i386/i386.h: Likewise.
4269         * config/i386/winnt.c: Likewise.
4270         * config/ia64/ia64.h: Likewise.
4271         * config/iq2000/iq2000.c: Likewise.
4272         * config/mips/mips.c: Likewise.
4273         * config/mmix/mmix.h: Likewise.
4274         * config/pa/pa.c: Likewise.
4275         * config/pa/pa.h: Likewise.
4276         * config/rs6000/rs6000.c: Likewise.
4277         * config/s390/s390.c: Likewise.
4278         * config/sparc/sparc.c: Likewise.
4279         * config/xtensa/xtensa.c: Likewise.
4280         * cselib.h: Likewise.
4281         * dbxout.c: Likewise.
4282         * dwarf2out.c: Likewise.
4283         * except.c: Likewise.
4284         * except.h: Likewise.
4285         * fixed-value.h: Likewise.
4286         * function.c: Likewise.
4287         * function.h: Likewise.
4288         * gimple.h: Likewise.
4289         * integrate.c: Likewise.
4290         * optabs.c: Likewise.
4291         * output.h: Likewise.
4292         * real.h: Likewise.
4293         * rtl.h: Likewise.
4294         * stringpool.c: Likewise.
4295         * tree-data-ref.c: Likewise.
4296         * tree-flow.h: Likewise.
4297         * tree-scalar-evolution.c: Likewise.
4298         * tree-ssa-address.c: Likewise.
4299         * tree-ssa-alias.h: Likewise.
4300         * tree-ssa-operands.h: Likewise.
4301         * tree.c: Likewise.
4302         * tree.h: Likewise.
4303         * varasm.c: Likewise.
4304         * varray.h: Likewise.
4305         * vec.h: Likewise.
4306         * coretypes.h: Do not define GTY macro if it is already defined.
4307         * doc/gty.texi: Update GTY documentation to new syntax.
4308         * gengtype-lex.l: Enforce attribute-like syntax for GTY
4309         annotations on structs.
4310         * gengtype-parse.c: Likewise.
4311
4312 2009-04-22  Mark Heffernan  <meheff@google.com>
4313
4314         * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=.
4315
4316 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
4317
4318         * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand
4319         where appropriate.
4320
4321 2009-04-22  Kazu Hirata  <kazu@codesourcery.com>
4322
4323         * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift
4324         the same as a PLUS without a shift.  Increase the cost of a
4325         CONST_INT in MULT.
4326
4327 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4328
4329         * Makefile.in: Update dependencies.
4330         * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'.
4331         * errors.h: Remove bogus comment about compatibility.
4332         (warning): Update declaration.
4333         * genautomata.c: Update all calls to warning.
4334         * gimple.c: Do not include errors.h. Include toplev.h.
4335         * tree-ssa-structalias.c: Do not include errors.h.
4336         * omega.c: Likewise.
4337         * tree-ssa-reassoc.c: Likewise.
4338         * config/spu/spu-c.c: Likewise.
4339         * config/spu/t-spu-elf: Update dependencies.
4340
4341 2009-04-22  Richard Guenther  <rguenther@suse.de>
4342
4343         PR tree-optimization/39824
4344         * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
4345         make sure the types are compatible.
4346
4347 2009-04-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4348
4349         PR c++/14875
4350         * c-common.c (c_parse_error): Take a token_flags parameter.
4351         Use token_type for the token type instead.
4352         Pass token_flags to cpp_type2name.
4353         * c-common.h (c_parse_error): Update declaration.
4354         * c-parser.c (c_parser_error): Pass 0 as token flags.
4355
4356 2009-04-22  Andrey Belevantsev  <abel@ispras.ru>
4357
4358         PR rtl-optimization/39580
4359         * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 
4360         
4361 2009-04-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4362
4363         * function.c (expand_function_end): Do not emit a jump to the "naked"
4364         return label for fall-through returns.
4365         * except.c (sjlj_emit_function_exit): Always place the call to the
4366         unregister function at the location installed by expand_function_end.
4367
4368 2009-04-22  Richard Guenther  <rguenther@suse.de>
4369
4370         PR tree-optimization/39845
4371         * tree-switch-conversion.c (build_arrays): Add new referenced vars.
4372         (gen_inbound_check): Likewise.
4373
4374 2009-04-22  Nathan Sidwell  <nathan@codesourcery.com>
4375
4376         * gthr-vxworks.h (struct __gthread_once_t): Add alignment and
4377         padding for PPC.
4378         (__GTHREAD_ONCE_INIT): Adjust ppc initializer.
4379         * config/vxlib.c (__gthread_once): Add race guard for PPC.
4380
4381 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
4382
4383         * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op,
4384         sh_dynamicalize_shift_p, shl_and_scr_length): Truncate
4385         shift counts to avoid out-of-bounds array accesses.
4386
4387 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
4388
4389         * config/sparc/sparc.h (POINTER_SIZE): Fix comment.
4390         (Pmode): Move above.
4391
4392 2009-04-22  Uros Bizjak  <ubizjak@gmail.com>
4393
4394         * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P,
4395         NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of
4396         GET_CODE macro.  Use IN_RANGE macro where appropriate.
4397         * config/alpha/alpha.h: Ditto.
4398         * config/alpha/alpha.md: Ditto.
4399         * config/alpha/constraints.md: Ditto.
4400         * config/alpha/predicates.md: Ditto.
4401         
4402 2009-04-22  Paolo Bonzini  <bonzini@gnu.org>
4403
4404         * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default.
4405         * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4406         * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4407         * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4408         * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4409         * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4410         * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4411         * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4412         * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4413         * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4414         * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4415         * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4416         * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4417         * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4418         * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4419         * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4420         * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4421         * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4422         * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4423         * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4424         * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4425         * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4426         * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4427         * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4428         * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4429         * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4430         * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
4431
4432 2009-04-22  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
4433
4434         * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks
4435         references from comments.
4436         * cfgbuild.c: (count_basic_blocks): Delete.
4437         (find_basic_blocks_1): Delete.
4438         (find_basic_blocks): Delete.
4439         * except.c (finish_eh_generation): Make static.  Move comment from
4440         except.h here.  Remove find_basic_blocks references from comments.
4441         * except.h (finish_eh_generation): Delete.
4442         * basic-block.h (find_basic_blocks): Delete.
4443         * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block.
4444
4445 2009-04-22  Dave Korn  <dave.korn.cygwin@gmail.com>
4446
4447         * sdbout.c (sdbout_symbol):  Pass VOIDmode to eliminate_regs.
4448         (sdbout_parms):  Likewise.
4449
4450 2009-04-21  Kaz Kojima  <kkojima@gcc.gnu.org>
4451
4452         * config/sh/sh.c (prepare_cbranch_operands): Use
4453         LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing.
4454         (expand_cbranchdi4): Likewise.
4455         (from_compare): Add cast to enum type.
4456         (expand_cbranchsi4): Use add_reg_note.
4457         (output_stack_adjust, push, pop, sh_expand_prologue): Likewise.
4458         (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu.
4459         (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call.
4460         (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
4461         * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE
4462         instead of CODE_FOR_nothing.
4463         (cbranchdi4): Likewise.  Fix the order of arguments for
4464         gen_rtx_fmt_ee.
4465         (push_fpscr): Use add_reg_note.
4466         (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4,
4467         reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise.
4468         
4469 2009-04-21  Joseph Myers  <joseph@codesourcery.com>
4470
4471         * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998,
4472         ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
4473         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
4474         ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib,
4475         ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog,
4476         FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4,
4477         config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver,
4478         config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h,
4479         config/alpha/x-vms, config/arc/t-arc,
4480         config/arm/README-interworking, config/arm/arm-c.c,
4481         config/arm/gentune.sh, config/arm/libgcc-bpabi.ver,
4482         config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp,
4483         config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi,
4484         config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf,
4485         config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe,
4486         config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver,
4487         config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf,
4488         config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux,
4489         config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris,
4490         config/cris/t-elfmulti, config/crx/t-crx,
4491         config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def,
4492         config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver,
4493         config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh,
4494         config/h8300/t-h8300, config/i386/athlon.md,
4495         config/i386/darwin-libgcc.10.4.ver,
4496         config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver,
4497         config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc,
4498         config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386,
4499         config/i386/t-linux64, config/i386/t-nwld,
4500         config/i386/t-rtems-i386, config/i386/t-sol2-10,
4501         config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h,
4502         config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver,
4503         config/ia64/libgcc-ia64.ver, config/ia64/linux.h,
4504         config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64,
4505         config/iq2000/abi, config/iq2000/lib2extra-funcs.c,
4506         config/iq2000/t-iq2000, config/libgcc-glibc.ver,
4507         config/m32r/libgcc-glibc.ver, config/m32r/t-linux,
4508         config/m32r/t-m32r, config/m68hc11/t-m68hc11,
4509         config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs,
4510         config/m68k/t-uclinux, config/mcore/t-mcore,
4511         config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md,
4512         config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm,
4513         config/mips/crtn.asm, config/mips/irix-crti.asm,
4514         config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver,
4515         config/mips/mips-dsp.md, config/mips/mips-dspr2.md,
4516         config/mips/mips-fixed.md, config/mips/sb1.md,
4517         config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast,
4518         config/mips/t-iris6, config/mips/t-isa3264,
4519         config/mips/t-libgcc-mips16, config/mips/t-linux64,
4520         config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems,
4521         config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk,
4522         config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st,
4523         config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix,
4524         config/mn10300/t-linux, config/mn10300/t-mn10300,
4525         config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux,
4526         config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11,
4527         config/picochip/libgccExtras/clzsi2.asm,
4528         config/picochip/t-picochip, config/rs6000/darwin-ldouble-format,
4529         config/rs6000/darwin-libgcc.10.4.ver,
4530         config/rs6000/darwin-libgcc.10.5.ver,
4531         config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h,
4532         config/rs6000/t-aix43, config/rs6000/t-aix52,
4533         config/rs6000/t-darwin, config/rs6000/t-fprules,
4534         config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64,
4535         config/rs6000/t-lynx, config/rs6000/t-netbsd,
4536         config/rs6000/t-ppccomm, config/rs6000/t-ppcendian,
4537         config/rs6000/t-ppcgas, config/rs6000/t-rs6000,
4538         config/rs6000/t-rtems, config/rs6000/t-spe,
4539         config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver,
4540         config/score/t-score-elf, config/sh/divcost-analysis,
4541         config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh,
4542         config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian,
4543         config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h,
4544         config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h,
4545         config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2,
4546         config/stormy16/stormy-abi, config/stormy16/t-stormy16,
4547         config/t-darwin, config/t-libunwind, config/t-libunwind-elf,
4548         config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver,
4549         config/t-slibgcc-sld, config/t-sol2, config/t-vxworks,
4550         config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850,
4551         config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def,
4552         gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog,
4553         java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver,
4554         limitx.h, version.c, xcoff.h: Add copyright and license notices.
4555         * config/h8300/genmova.sh: Include copyright and license notices
4556         in generated output.
4557         * config/h8300/mova.md: Regenerate.
4558         * doc/install.texi2html: Include word "Copyright" in copyright
4559         notice and use name "Free Software Foundation, Inc.".
4560         * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002,
4561         ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006,
4562         ChangeLog-2007, ChangeLog-2008: Correct dates.
4563
4564 2009-04-21  Eric Botcazou  <ebotcazou@adacore.com>
4565
4566         * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build
4567         NE_EXPR operations as well.
4568         * c-parser.c (c_parser_condition): Do not set location information on
4569         the condition.
4570         (c_parser_conditional_expression): Likewise.
4571         (c_parser_binary_expression): Set location information on operators.
4572         * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if
4573         TRUTH_NOT_EXPR has been folded.
4574         * fold-const.c (fold_truth_not_expr): Copy location information from
4575         the incoming expression to the outgoing one.
4576         * gimplify.c (shortcut_cond_r): Add locus parameter.  Pass it to
4577         recursive calls on the LHS of the operator but pass that of the
4578         operator to recursive calls on the RHS of the operator.  Set it
4579         on the COND_EXPR.
4580         (shortcut_cond_expr): Set the locus of the operator on the second
4581         COND_EXPR and that of the expression on the first in degenerate cases.
4582         Pass the locus of the expression to calls to shortcut_cond_r.
4583         Set the locus of the 'then' block on the associated jump, if any.
4584         (gimplify_boolean_expr): Add locus parameter.  Set it on the COND_EXPR.
4585         (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer
4586         expression to call to gimplify_boolean_expr.
4587
4588 2009-04-21  Kai Tietz  <kai.tietz@onevision.com>
4589
4590         * config.gcc: Add additional configuration for
4591         i686-w64-mingw* and x86_64-w64-mingw* triplet.
4592         * config/i386/mingw-w64.h: New mingw-w64 specific header.
4593         (CPP_SPEC): Redefine for allowing -municode option.
4594         (STARTFILE_SPEC): Likewise.
4595         * config/i386/t-mingw-w64: New.
4596         * config/i386/mingw-w64.opt: New.
4597         (municode): Add new target option.
4598         * doc/invoke.texi (municode): Add documentation for new option.
4599
4600 2009-04-21  Ian Lance Taylor  <iant@google.com>
4601
4602         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4603         Correct test for number of arguments.
4604         * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
4605
4606 2009-04-21  Andreas Schwab  <schwab@linux-m68k.org>
4607
4608         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second
4609         argument of emit_library_call.
4610
4611 2009-04-21  Richard Guenther  <rguenther@suse.de>
4612
4613         PR middle-end/39829
4614         * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses
4615         inside VIEW_CONVERT_EXPRs.
4616
4617 2009-04-21  Martin Jambor  <mjambor@suse.cz>
4618
4619         * tree-switch-conversion.c (build_constructors): Split a long line.
4620         (constructor_contains_same_values_p): New function.
4621         (build_one_array): Create assigns of constants if possible, do not
4622         call mark_sym_for_renaming, call update_stmt.
4623         (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of
4624         make_rename_temp.  Do not call mark_symbols_for_renaming, call
4625         update_stmt.
4626         (gen_def_assigns): Do not call mark_symbols_for_renaming or
4627         find_new_referenced_vars, call update_stmt.
4628         (gen_inbound_check): Use create_tmp_var and create ssa names manually
4629         instead of calling make_rename_temp.  Do not call
4630         find_new_referenced_vars or mark_symbols_for_renaming, call
4631         update_stmt.
4632
4633 2009-04-21  Richard Guenther  <rguenther@suse.de>
4634
4635         PR tree-optimization/39827
4636         * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range.
4637         (tree_ssa_phiprop): Pass the correct array size.
4638
4639 2009-04-21  Uros Bizjak  <ubizjak@gmail.com>
4640
4641         * config/alpha/alpha.md (tune): Add cast to enum attr_tune.
4642
4643 2009-04-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4644
4645         PR 16202
4646         * c-typeck.c (lvalue_p): Move declaration ...
4647         * c-common.h (lvalue_p): ... to here.
4648         * c-common.c (candidate_equal_p): New.
4649         (add_tlist): Use it.
4650         (merge_tlist): Use it.
4651         (warn_for_collisions_1): Likewise.
4652         (warning_candidate_p): Accept more candidates.
4653         (verify_tree): A warning candidate can be an expression. Use
4654         candidate_equal_p.
4655
4656 2009-04-21  Ben Elliston  <bje@au.ibm.com>
4657
4658         PR target/5267
4659         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
4660         for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd
4661         options.  Remove -mcall-solaris documentation.
4662
4663 2009-04-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
4664
4665         PR c++/13358
4666         * doc/invoke.texi (-Wlong-long): Update description.
4667         * c-lex (interpret_integer): Only warn if there was no previous
4668         overflow and -Wlong-long is enabled.
4669         * c-decl.c (declspecs_add_type): Drop redundant flags.
4670         * c.opt (Wlong-long): Init to -1.
4671         * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long
4672         and front-end warn_long_long. Wlong-long only depends on other
4673         flags if it is uninitialized.
4674         * c-parser.c (disable_extension_diagnostics): warn_long_long is
4675         the same for CPP and FE.
4676         (restore_extension_diagnostics): Likewise.
4677
4678 2009-04-20  Ian Lance Taylor  <iant@google.com>
4679
4680         Fix enum conversions which are invalid in C++:
4681         * auto-inc-dec.c (attempt_change): Change 0 to SET in function call.
4682         * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call.
4683         * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call.
4684         * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type.
4685         * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call.
4686         (dbxout_parms): Likewise.
4687         * df-core.c (df_set_flags): Change changeable_flags parameter to int.
4688         (df_clear_flags): Likewise.
4689         * df-problems.c (df_rd_bb_local_compute_process_def): Change
4690         top_flag parameter to int.
4691         (df_chain_create_bb_process_use): Likewise.
4692         (df_chain_add_problem): Change chain_flags parameter to unsigned int.
4693         Remove cast.
4694         * df-scan.c (df_ref_create): Change ref_flags parameter to int.
4695         (df_ref_create_structure, df_def_record_1): Likewise.
4696         (df_defs_record, df_uses_record, df_get_call_refs): Likewise.
4697         (df_notes_rescan): Change 0 to VOIDmode in function call.
4698         (df_get_call_refs, df_insn_refs_collect): Likewise.
4699         (df_bb_regs_collect): Likewise.
4700         (df_entry_block_defs_collect): Likewise.
4701         (df_exit_block_uses_collect): Likewise.
4702         * df.h: Update declarations.
4703         * double-int.c (double_int_divmod): Add cast to enum type.
4704         * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode.
4705         * dwarf2out.c (new_reg_loc_descr): Add casts to enum type.
4706         (based_loc_descr): Likewise.
4707         (loc_descriptor_from_tree_1): Change first_op and second_op to
4708         enum dwarf_location_atom.  Add cast to enum type.
4709         * expmed.c (init_expmed): Change 0 to SET in function call.
4710         * expr.c (init_expr_target): Change 0 to VOIDmode in function call.
4711         (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call.
4712         (do_store_flag): Likewise.
4713         * fixed-value.h (struct fixed_value): Change mode to enum
4714         machine_mode.
4715         * function.c (assign_parms): Change 0 to VOIDmode in function call.
4716         * genautomata.c (insert_automaton_decl): Change 1 to INSERT in
4717         function call.
4718         (insert_insn_decl, insert_decl, insert_state): Likewise.
4719         (automata_list_finish): Likewise.
4720         * genrecog.c (process_define_predicate): Add cast to enum type.
4721         * gensupport.c (init_predicate_table): Add cast to enum type.
4722         * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in
4723         function call.
4724         (gimple_build_call_1, gimple_build_label): Likewise.
4725         (gimple_build_goto, gimple_build_asm_1): Likewise.
4726         (gimple_build_switch_1, gimple_build_cdt): Likewise.
4727         * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call.
4728         (enum fallback): Rename from enum fallback_t.
4729         (fallback_t): Typedef as int.
4730         * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to
4731         GSI_SAME_STMT in function call.
4732         * ira.c (setup_class_subset_and_memory_move_costs): Add casts to
4733         enum type.
4734         (setup_reg_class_relations): Likewise.
4735         (setup_reg_class_nregs): Change cl to int.  Add casts to enum type.
4736         (setup_prohibited_class_mode_regs): Add cast to enum type.
4737         (setup_prohibited_mode_move_regs): Likewise.
4738         * ira-costs.c (record_reg_classes): Change rclass to enum reg_class.
4739         (record_address_regs): Change i to enum reg_class.
4740         * lists.c (alloc_EXPR_LIST): Add cast to enum type.
4741         * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class.
4742         (GET_MODE_WIDER_MODE): Cast value to enum machine_mode.
4743         (GET_MODE_2XWIDER_MODE): Likewise.
4744         (GET_CLASS_NARROWEST_MODE): Likewise.
4745         * omp-low.c (expand_omp_for): Add cast to enum type.
4746         * optabs.c (debug_optab_libfuncs): Add casts to enum type.
4747         * opts.c (enable_warning_as_error): Change kind to diagostic_t.
4748         * postreload.c (reload_cse_simplify_operands): Change rclass local
4749         to enum reg_class.
4750         * predict.c (combine_predictions_for_insn): Change best_predictor
4751         and predictor to enum br_predictor.
4752         (combine_predictions_for_bb): Likewise.
4753         (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to
4754         use SET_PREDICT_EXPR_OUTCOME.
4755         * real.c (real_arithmetic): Change icode to code in function call.
4756         * reginfo.c (init_move_cost): Add casts to enum type.
4757         (init_reg_sets_1, init_fake_stack_mems): Likewise.
4758         * regmove.c (regclass_compatible_p): Change class0 and class1 to
4759         enum reg_class.
4760         * reload.c (find_valid_class): Add casts to enum type.
4761         (push_reload): Change 0 to NO_REGS in function call.
4762         (find_reloads): Change this_alternative to array of enum
4763         reg_class.  Remove some now-unnecessary casts.
4764         (make_memloc): Change 0 to VOIDmode in function call.
4765         * reload1.c (reload): Change 0 to VOIDmode in function call.
4766         (eliminate_regs_1, elimination_effects): Likewise.
4767         (eliminate_regs_in_insn): Likewise.
4768         (emit_input_reload_insns): Add cast to enum type.
4769         (delete_output_reload): Change 0 to VOIDmode in function call.
4770         * reorg.c (insn_sets_resource_p): Convert include_delayed_effects
4771         to enum type in function call.
4772         * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type.
4773         (SET_PREDICT_EXPR_OUTCOME): Define.
4774         * tree-dump.c (get_dump_file_info): Change phase parameter to int.
4775         (get_dump_file_name, dump_begin, dump_enabled_p): Likewise.
4776         (dump_initialized_p, dump_flag_name, dump_end): Likewise.
4777         (dump_function): Likewise.
4778         * tree-dump.h: Update declarations.
4779         * tree-pass.h: Update declarations.
4780         * varasm.c (assemble_integer): Change mclass to enum mode_class.
4781         * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to
4782         enum type.
4783         (arm_rtx_costs_1): Correct parenthesization.
4784         (arm_rtx_costs): Add casts to enum type.
4785         (adjacent_mem_locations): Reverse arguments to const_ok_for_op.
4786         (vfp_emit_fstmd): Use add_rg_note.
4787         (emit_multi_reg_push, emit_sfm): Likewise.
4788         (thumb_set_frame_pointer): Likewise.
4789         (arm_expand_prologue): Likewise.
4790         (arm_regno_class): Change return type to enum reg_class.
4791         (thumb1_expand_prologue): Use add_reg_note.
4792         * config/arm/arm-protos.h (arm_regno_class): Update declaration.
4793         * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL
4794         in function call.
4795         * config/arm/gentune.sh: Add cast to enum type.
4796         * config/arm/arm-tune.md: Rebuild.
4797         * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note.
4798         (ix86_split_fp_branch, predict_jump): Likewise.
4799         (ix86_expand_multi_arg_builtin): Change sub_code from enum
4800         insn_code to enum rtx_code.
4801         (ix86_builtin_vectorized_function): Add cast to enum type.
4802         * config/i386/i386.md (truncdfsf2): Change slot to enum
4803         ix86_stack_slot.
4804         (truncxf<mode>2, isinf<mode>2): Likewise.
4805         * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to
4806         enum type.
4807         * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note.
4808         (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise.
4809         (insert_bundle_state): Change 1 to INSERT in function call.
4810         (ia64_add_bundle_selector_before): Likewise.
4811         * config/ia64/ia64.md (cpu attr): Add cast to enum type.
4812         (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call.
4813         (restore_stack_nonlocal): Likewise.
4814         * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in
4815         function call.
4816         * config/mips/mips.c (mips_binary_cost): Change 0 to SET in
4817         function call.
4818         (mips_rtx_costs): Likewise.
4819         (mips_override_options): Add casts to enum type.
4820         * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL
4821         in function call.
4822         * config/pa/pa.c (legitimize_pic_address): Use add_reg_note.
4823         (store_reg, set_reg_plus_d): Likewise.
4824         (hppa_expand_prologue, hppa_profile_hook): Likewise.
4825         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
4826         cast to enum type.
4827         (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in
4828         function call.
4829         (emit_unlikely_jump): Use add_reg_note.
4830         (rs6000_emit_allocate_stack): Likewise.
4831         (rs6000_frame_related, rs6000_emit_prologue): Likewise.
4832         (output_toc): Change 1 to INSERT in function call.
4833         (output_profile_hook): Change 0 to LCT_NORMAL in function call.
4834         (rs6000_initialize_trampoline): Likewise.
4835         (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in
4836         function call.
4837         * config/s390/s390.c (s390_rtx_costs): Add cast to enum type.
4838         (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call.
4839         (s390_expand_setmem, s390_expand_cmpmem): Likewise.
4840         (save_gprs): Use add_reg_note.
4841         (s390_emit_prologue): Likewise.
4842         (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call.
4843         * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note.
4844         (sparc_fold_builtin): Add cast to enum type.
4845         * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to
4846         enum insn_code.
4847         (spu_expand_prologue): Use add_reg_note.
4848         (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call.
4849
4850 2009-04-20  Ian Lance Taylor  <iant@google.com>
4851
4852         * c-parser.c (c_parser_attributes): Change VEC back to tree list.
4853         (c_parser_postfix_expression_after_primary): Get VEC for list of
4854         arguments.  Get original types of arguments.  Call
4855         build_function_call_vec.
4856         (cached_expr_list_1, cached_expr_list_2): New static variables.
4857         (c_parser_expr_list): Change return type to VEC *.  Add
4858         p_orig_types parameter.  Change all callers.
4859         (c_parser_release_expr): New static function.
4860         (c_parser_vec_to_tree_list): New static function.
4861         * c-typeck.c (build_function_call): Rewrite to build a VEC and
4862         call build_function_call_vec.
4863         (build_function_call_vec): New function, based on old
4864         build_function_call.
4865         (convert_arguments): Remove nargs and argarray parameters.  Change
4866         values to a VEC.  Add origtypes parameter.
4867         (build_modify_expr): Add rhs_origtype parameter.  Change all callers.
4868         (convert_for_assignment): Add origtype parameter.  Change all
4869         callers.  If warn_cxx_compat, check for conversion to an enum
4870         type when calling a function.
4871         (store_init_value): Add origtype parameter.  Change all callers.
4872         (digest_init): Likewise.
4873         (struct init_node): Add origtype field.
4874         (add_pending_init): Add origtype parameter.  Change all callers.
4875         (output_init_element): Likewise.
4876         (output_pending_init_elements): Pass origtype from init_node to
4877         output_init_element.
4878         (process_init_element): Pass origtype from c_expr to
4879         output_init_element.
4880         (c_finish_return): Add origtype parameter.  Change all callers.
4881         * c-common.c (sync_resolve_size): Change params to VEC *.  Change
4882         caller.
4883         (sync_resolve_params): Likewise.
4884         (sync_resolve_return): Change params to first_param.  Change caller.
4885         (resolve_overloaded_builtins): Change params to VEC *.  Change
4886         callers.  Save first parameter around call to build_function_call_vec.
4887         * c-decl.c (finish_decl): Add origtype parameter.  Change all
4888         callers.  Call build_function_call_vec rather than
4889         build_function_call for cleanup.
4890         * c-tree.h: Update declarations.
4891         * c-common.h: Update declarations.
4892         * stub-objc.c (objc_rewrite_function_call): Change parameter from
4893         params to first_param.
4894         * target.h (struct gcc_target): Change resolve_overloaded_builtin
4895         params parameter from tree to void *.
4896         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4897         Change arglist parameter to have type void *, and to be a pointer
4898         to a VEC.
4899         * config/rs6000/rs6000-protos.h
4900         (altivec_resolve_overloaded_builtin): Update declaration.
4901         * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change
4902         fnargs parameter to have type void *, and to be a pointer to a
4903         VEC.  Call build_function_call_vec instead of
4904         build_function_call.
4905         * config/spu/spu-protos.h (spu_expand_builtin): Update declaration.
4906
4907 2009-04-20  Joey Ye  <joey.ye@intel.com>
4908             Xuepeng Guo  <xuepeng.guo@intel.com>
4909             H.J. Lu  <hongjiu.lu@intel.com>
4910
4911         * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
4912
4913         * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
4914         (IX86_LEA_PRIORITY): Likewise.
4915         (distance_non_agu_define): New function.
4916         (distance_agu_use): Likewise.
4917         (ix86_lea_for_add_ok): Likewise.
4918         (ix86_dep_by_shift_count): Likewise.
4919
4920         * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
4921         should split for LEA.
4922
4923         * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
4924         function.
4925         (ix86_dep_by_shift_count): Likewise.
4926
4927 2009-04-20  Richard Guenther  <rguenther@suse.de>
4928
4929         * expr.c (handled_component_p): Move ...
4930         * tree.h (handled_component_p): ... here.
4931         * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF,
4932         ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR
4933         and REALPART_EXPR to be in one group.
4934
4935 2009-04-20  Richard Guenther  <rguenther@suse.de>
4936
4937         * basic-block.h (get_all_dominated_blocks): Declare.
4938         * dominance.c (get_all_dominated_blocks): New function.
4939         * tree-cfg.c (get_all_dominated_blocks): Remove.
4940         (remove_edge_and_dominated_blocks): Adjust.
4941         * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ...
4942         (tree_ssa_phiprop): ... here.  Use get_all_dominated_blocks
4943         instead of recursing.
4944
4945 2009-04-20  Doug Kwan  <dougkwan@google.com>
4946
4947         * cgraph.h (cgraph_node_ptr): New type for vector functions.
4948         (struct cgraph_node_set_def): New type.
4949         (cgraph_node_set) New type. Also declare vector functions.
4950         (struct cgraph_node_set_element_def): New type.
4951         (cgraph_node_set_element): Ditto.
4952         (cgraph_node_set_iterator): New iterator type.
4953         (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add,
4954         cgraph_node_set_remove, dump_cgraph_node_set,
4955         debug_cgraph_node_set): New prototypes.
4956         (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p,
4957         cgraph_node_set_size): New inlines.
4958         * tree-pass.h (struct cgraph_node_set_def): New decl to avoid
4959         including cgraph.h.
4960         (struct ipa_opt_pass): Add struct cgraph_node_set_def
4961         argument to function 'write_summary'.
4962         * ipa.c: Include ggc.h.
4963         (hash_cgraph_node_set_element,
4964         eq_cgraph_node_set_element, cgraph_node_set_new,
4965         cgraph_node_set_add, cgraph_node_set_remove,
4966         cgraph_node_set_find, dump_cgraph_node_set,
4967         debug_cgraph_node_set): New functions.
4968         * Makefile.in (ipa.o): Add dependency on GGC_H.
4969
4970 2009-04-20  Ira Rosen  <irar@il.ibm.com>
4971
4972         PR tree-optimization/39675
4973         * tree-vect-loop.c (vect_transform_loop): Remove currently redundant
4974         check of the return code of vect_schedule_slp. Check that
4975         stmt_vec_info still exists for the statement, before checking its
4976         vectorization type.
4977
4978 2009-04-20  Michael Matz  <matz@suse.de>
4979
4980         * Makefile.in (generated_files): Take out $(simple_generated_c).
4981
4982 2009-04-19  Dave Korn  <dave.korn.cygwin@gmail.com>
4983
4984         * config/i386/cygwin-stdint.h (INTPTR_TYPE):  Remove "long".
4985         (UINTPTR_TYPE):  Likewise.
4986
4987 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4988
4989         PR c/37481
4990         * c-typeck.c (digest_init): Check for initializing an array with a
4991         string literal.
4992
4993 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
4994
4995         PR c/19771
4996         * c-semantics.c (pop_stmt_list): Propagate
4997         STATEMENT_LIST_HAS_LABEL to parent statement list.
4998
4999 2009-04-19  Adam Nemet  <anemet@caviumnetworks.com>
5000
5001         * config/mips/mips.h (mips_tune_attr): New macro.
5002         * config/mips/mips.md (cpu): Use it.
5003
5004 2009-04-19  Joseph Myers  <joseph@codesourcery.com>
5005
5006         PR c/38243
5007         * c-decl.c (shadow_tag_warned): Diagnose use of restrict when
5008         declaring a tag.
5009
5010 2009-04-19  Diego Novillo  <dnovillo@google.com>
5011
5012         * toplev.c (compile_file): Move call to coverage_finish ...
5013         * cgraphunit.c (ipa_passes): ... here.
5014         Call cgraph_process_new_functions.
5015         * ipa-utils.c (get_base_var): Handle CONSTRUCTOR.
5016         * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H.
5017
5018 2009-04-19  Jan Hubicka  <jh@suse.cz>
5019
5020         * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper
5021         cfun.
5022         (dump_cgraph_node): Dump can throw external flag.
5023         * ipa-pure-const.c (propagate): Fix propagation of nothrow flags.
5024
5025 2009-04-19  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5026
5027         PR c/32061
5028         PR c++/36954
5029         * doc/invoke.texi: Add -Wlogical-op to -Wextra.
5030         * common.opt (Wlogical-op): Move from here...
5031         * c.opt (Wlogical-op): ... to here.
5032         * c-typeck.c (parser_build_binary_op): Update call to
5033         warn_logical_operator.
5034         * c-opts.c (c_common_post_options): Enable warn_logical_op with
5035         extra_warnings.
5036         * c-common.c (warn_logical_op): Update.
5037         * c-common.h (warn_logical_op): Update declaration.
5038
5039 2009-04-19  Eric Botcazou  <ebotcazou@adacore.com>
5040
5041         * tree.c (protected_set_expr_location): Fix formatting.
5042
5043 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
5044
5045         PR c/27676
5046         * c-typeck.c (readonly_warning): new.
5047         (build_unary_op, build_modify_expr): Use readonly_warning for
5048         storing into something readonly but not const-qualified.
5049
5050 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
5051
5052         PR c/22367
5053         * c-typeck.c (build_unary_op): Check for taking address of
5054         expression of type void.
5055
5056 2009-04-18  Joseph Myers  <joseph@codesourcery.com>
5057
5058         PR c/35210
5059         * c-typeck.c (build_function_call): Check for calling a function
5060         with qualified void return types.  Call require_complete_type when
5061         generating a trap.
5062
5063 2009-04-18  Jan Hubicka  <jh@suse.cz>
5064
5065         * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt):
5066         Set nothrow flag.
5067         * cgraph.h (struct function): Reduce loop_nest to 30 bits; add
5068         can_throw_external flag.
5069         * ipa-reference.c (ipa_utils_reduced_inorder): Update call.
5070         * ipa-pure-const.c (ignore_edge): New function.
5071         (propagate): Compute order for NOTHROW computation; set NOTHROWs
5072         only over can_throw_external edges.
5073         (local_pure_const): Add nothrow flag.
5074         * ipa-utils.c (searchc): Add ignore_edge callback.
5075         (ipa_utils_reduced_inorder): Add ignore_edge callback.
5076         * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype.
5077         (set_nothrow_function_flags): Update cgraph.
5078         * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode.
5079
5080 2009-04-18  Richard Guenther  <rguenther@suse.de>
5081
5082         PR middle-end/39804
5083         * tree-ssa-ccp.c (fold_stmt_1): New function factored from ...
5084         (fold_stmt): ... this and ...
5085         (fold_stmt_inplace): ... this.
5086         (fold_stmt_1): Fold references in calls and asms.
5087         * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt.
5088
5089 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
5090
5091         * tree-vrp.c (ssa_name_nonzero_p): Remove.
5092         * tree.h: Remove the prototype for ssa_name_nonzero_p.
5093
5094 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
5095
5096         * tree.c (function_args_count): Remove.
5097         * tree.h: Remove the prototype for function_args_count.
5098
5099 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
5100
5101         * tree-iterator.c (expr_only): Remove.
5102         * tree.h: Remove the prototype for expr_only.
5103
5104 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
5105
5106         * reginfo.c (cannot_change_mode_set_regs): Remove.
5107         * rtl.h: Remove the prototype for cannot_change_mode_set_regs.
5108
5109 2009-04-08  Anatoly Sokolov  <aesok@post.ru>
5110
5111         * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check
5112         whether operands 0 and 1 overlaps.
5113
5114 2009-04-18  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5115
5116         PR middle-end/36902
5117         * tree-vrp.c (check_array_ref): Pass a location_t instead of a
5118         pointer. Use warning_at instead of warning.
5119         (search_for_addr_array): Likewise.
5120         (check_array_bounds): Likewise.
5121         (check_all_array_refs): Check that the incoming edge is not in the
5122         list of edges to be removed.
5123         (check_all_array_refs): Avoid the temporal pointer.
5124         (vrp_visit_cond_stmt): Fix typo.
5125         (simplify_switch_using_ranges): Handle the case where the switch
5126         index is an integer constant.
5127
5128 2009-04-18  Adam Nemet  <anemet@caviumnetworks.com>
5129
5130         * config/mips/mips.c (mips_final_postscan_insn): Make it static.
5131
5132 2009-04-18  Kazu Hirata  <kazu@codesourcery.com>
5133
5134         * doc/extend.texi, doc/invoke.texi: Fix typos.
5135
5136 2009-04-17  Cary Coutant  <ccoutant@google.com>
5137
5138         * tree-flow-inline.h (get_lineno): Fix inverted test.
5139
5140 2009-04-17  Diego Novillo  <dnovillo@google.com>
5141
5142         * tree-ssa-pre.c (create_expression_by_pieces): Remove
5143         assertion for AVAIL_OUT.
5144
5145 2009-04-17  Mike Frysinger  <vapier@gentoo.org>
5146
5147         PR target/38627
5148         * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack.
5149         * config/sh/linux-atomic.asm: Likewise.
5150
5151 2009-04-17  Diego Novillo  <dnovillo@google.com>
5152
5153         * except.c (debug_eh_tree): New.
5154         (struct eh_region, struct eh_status): Move ...
5155         * except.h: ... here.
5156         (add_type_for_runtime): Declare extern.
5157         (lookup_type_for_runtime): Likewise.
5158         (debug_eh_tree): Declare.
5159         * Makefile.in (GTFILES): List except.h before except.c
5160
5161 2009-04-17  Diego Novillo  <dnovillo@google.com>
5162
5163         * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL.
5164         * cgraphunit.c (cgraph_build_static_cdtor): Likewise.
5165         * tree-dfa.c (find_referenced_vars_in): Factor out of ...
5166         (find_vars_r): ... here.
5167         * tree-flow.h (find_referenced_vars_in): Declare.
5168         * tree-ssa-pre.c (create_expression_by_pieces): Assert
5169         that AVAIL_OUT exists for BLOCK.
5170         * Makefile.in (CGRAPH_H): Add dependency on cif-code.def
5171         (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H.
5172         (tree-parloops.o): Likewise.
5173
5174 2009-04-17  Simon Baldwin  <simonb@google.com>
5175
5176         * toplev.c (default_tree_printer): Add handling for %E format.
5177
5178 2009-04-17  Diego Novillo  <dnovillo@google.com>
5179
5180         * tree-pretty-print.c (dump_generic_node): Add break after
5181         TREE_BINFO handler.  Handle COMPLEX_TYPE, REAL_TYPE and
5182         FIXED_POINT_TYPE.  Handle NULL TREE_TYPEs.  Handle METHOD_TYPE and
5183         FUNCTION_TYPE together.  Call print_struct_decl when printing
5184         structures and TDF_SLIM is not given.
5185         (print_struct_decl): Fix logic for detecting recursion.
5186
5187 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
5188
5189         PR 31567
5190         * gcc.c (create_at_file): New.
5191         (compile_input_file_p): New.
5192         (do_spec_1): Use @args files for %i. Use create_at_file for %o.
5193         * main.c (main): Update call to toplev_main.
5194         * toplev.c (toplev_main): Change signature. Call expandargv.
5195         * toplev.h (toplev_main): Change signature.
5196
5197 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
5198
5199         * dwarf2out.c (field_byte_offset): Use the type size as the field size
5200         if the latter is not constant.
5201
5202 2009-04-17  David Edelsohn  <edelsohn@gnu.org>
5203
5204         * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing.
5205
5206 2009-04-17  Eric Botcazou  <ebotcazou@adacore.com>
5207
5208         * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
5209         * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
5210
5211 2009-04-17  Richard Guenther  <rguenther@suse.de>
5212
5213         * tree-ssa-structalias.c (get_constraint_for_component_ref):
5214         Handle component references view-converting an invariant address.
5215
5216 2009-04-17  Adam Nemet  <anemet@caviumnetworks.com>
5217
5218         * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS,
5219         TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET,
5220         TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS,
5221         TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO):
5222         Use @deftypevr rather than @deftypevar.
5223
5224 2009-04-17  Richard Guenther  <rguenther@suse.de>
5225
5226         * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification.
5227         (get_prop_source_stmt): Likewise.
5228         (can_propagate_from): Likewise.
5229
5230 2009-04-17  Andrew Stubbs  <ams@codesourcery.com>
5231
5232         * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG,
5233         TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG.
5234         (--with-multilib-list): Add default value.
5235         * configure: Regenerate.
5236         * Makefile.in (TM_ENDIAN_CONFIG): Define.
5237         (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define.
5238         * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG,
5239         TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG.
5240         Don't add default cpu to multilib list unnecessarily, but do enable
5241         the relevant compiler option..
5242         Add support for --with-multilib-list=<blank> and
5243         --with-multilib-list=!<somelib> to supress unwanted multilibs.
5244         * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables.
5245         (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables.
5246         (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and
5247         TM_MULTILIB_CONFIG.
5248         (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG.
5249         (MULTILIB_OSDIRNAMES): New variable.
5250         * config/sh/t-1e: Delete file.
5251         * config/sh/t-mlib-sh1: Delete file.
5252         * config/sh/t-mlib-sh2: Delete file.
5253         * config/sh/t-mlib-sh2a: Delete file.
5254         * config/sh/t-mlib-sh2a-nofpu: Delete file.
5255         * config/sh/t-mlib-sh2a-single: Delete file.
5256         * config/sh/t-mlib-sh2a-single-only: Delete file.
5257         * config/sh/t-mlib-sh2e: Delete file.
5258         * config/sh/t-mlib-sh3e: Delete file.
5259         * config/sh/t-mlib-sh4: Delete file.
5260         * config/sh/t-mlib-sh4-nofpu: Delete file.
5261         * config/sh/t-mlib-sh4-single: Delete file.
5262         * config/sh/t-mlib-sh4-single-only: Delete file.
5263         * config/sh/t-mlib-sh4a: Delete file.
5264         * config/sh/t-mlib-sh4a-nofpu: Delete file.
5265         * config/sh/t-mlib-sh4a-single: Delete file.
5266         * config/sh/t-mlib-sh4a-single-only: Delete file.
5267         * config/sh/t-mlib-sh4al: Delete file.
5268         * config/sh/t-mlib-sh5-32media: Delete file.
5269         * config/sh/t-mlib-sh5-32media-nofpu: Delete file.
5270         * config/sh/t-mlib-sh5-64media: Delete file.
5271         * config/sh/t-mlib-sh5-64media-nofpu: Delete file.
5272         * config/sh/t-mlib-sh5-compact: Delete file.
5273         * config/sh/t-mlib-sh5-compact-nofpu: Delete file.
5274         * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS.
5275         * doc/install.texi (Options specification): Add
5276         --with-multilib-list and --with-endian.
5277
5278 2009-04-17  Rafael Avila de Espindola  <espindola@google.com>
5279
5280         * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use
5281         REVISION_c.
5282         (OBJS-common): Add plugin-version.o.
5283         (plugin-version.o): New.
5284         * gcc-plugin.h (plugin_gcc_version): New.
5285         (plugin_default_version_check): New.
5286         (plugin_init_func, plugin_init): Add version argument.
5287         * plugin-version.c: New.
5288         * plugin.c (str_plugin_gcc_version_name): New.
5289         (try_init_one_plugin): Read plugin_gcc_version from the plugin and
5290         pass it to the init function.
5291         (plugin_default_version_check): New.
5292
5293 2009-04-17  Richard Guenther  <rguenther@suse.de>
5294
5295         * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA
5296         for decl-vs-decl disambiguation.
5297
5298 2009-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
5299
5300         * config/s390/s390.h (s390_tune_attr): New macro definition.
5301         * config/s390/s390.md (cpu attribute): Map to s390_tune_attr.
5302
5303 2009-04-17  Richard Guenther  <rguenther@suse.de>
5304
5305         * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove.
5306         (fold_stmt_r): Likewise.
5307         (maybe_fold_reference): New function.
5308         (fold_gimple_assign): Handle cases fold_stmt_r did.
5309         (fold_stmt): Do not use fold_stmt_r.
5310         (fold_stmt_inplace): Likewise.
5311
5312 2009-04-17  Richard Guenther  <rguenther@suse.de>
5313
5314         * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove.
5315         (record_equivalences_from_stmt): Remove useless checks and
5316         simplifications.
5317         * tree-ssa-pre.c (eliminate): Avoid converting a constant if
5318         the type is already suitable.
5319
5320 2009-04-17  Paolo Bonzini  <bonzini@gnu.org>
5321
5322         * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes.
5323
5324 2009-04-17  Uros Bizjak  <ubizjak@gmail.com>
5325
5326         * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef.
5327         (CMPtype): Define as __gcc_CMPtype.
5328
5329 2009-04-17  Aurelien Jarno  <aurelien@aurel32.net>
5330
5331         * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file
5332         for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*.
5333
5334 2009-04-17  Richard Guenther  <rguenther@suse.de>
5335
5336         PR tree-optimization/39746
5337         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove
5338         special-casing for builtins and static variable use/def.
5339         (call_may_clobber_ref_p_1): Likewise.
5340
5341 2009-04-16  Ian Lance Taylor  <iant@google.com>
5342
5343         * df.h: Include "timevar.h".
5344         (struct df_problem): Change tv_id field to timevar_id_t.
5345         * tree-pass.h: Include "timevar.h".
5346         (struct opt_pass): Change tv_id field to timevar_id_t.
5347         * timevar.h (timevar_id_t): Define TV_NONE.
5348         * passes.c (execute_one_ipa_transform_pass): Check for tv_id !=
5349         TV_NONE rather than tv_id != 0.
5350         (execute_one_pass): Likewise.
5351         * Makefile.in (DF_H): Add $(TIMEVAR_H).
5352         (TREE_PASS_H): Define.  Change all instances of tree-pass.h in
5353         dependencies to $(TREE_PASS_H).
5354         * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field
5355         to TV_NONE.
5356         (pass_branch_target_load_optimize2): Likewise.
5357         * cfglayout.c (pass_into_cfg_layout_mode): Likewise.
5358         (pass_outof_cfg_layout_mode): Likewise.
5359         * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise.
5360         (pass_rebuild_cgraph_edges): Likewise.
5361         (pass_remove_cgraph_callee_edges): Likewise.
5362         * df-core.c (pass_df_initialize_opt): Likewise.
5363         (pass_df_initialize_no_opt): Likewise.
5364         (pass_df_finish): Likewise.
5365         * emit-rtl.c (pass_unshare_all_rtl): Likewise.
5366         * except.c (pass_set_nothrow_function_flags): Likewise.
5367         (pass_convert_to_eh_region_ranges): Likewise.
5368         * final.c (pass_compute_alignments): Likewise.
5369         * function.c (pass_instantiate_virtual_regs): Likewise.
5370         (pass_init_function): Likewise.
5371         (pass_leaf_regs): Likewise.
5372         (pass_match_asm_constraints): Likewise.
5373         * gimple-low.c (pass_lower_cf): Likewise.
5374         (pass_mark_used_blocks): Likewise.
5375         * init-regs.c (pass_initialize_regs): Likewise.
5376         * integrate.c (pass_initial_value_sets): Likewise.
5377         * ira.c (pass_ira): Likewise.
5378         * jump.c (pass_cleanup_barriers): Likewise.
5379         * omp-low.c (pass_expand_omp): Likewise.
5380         (pass_lower_omp): Likewise.
5381         * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise.
5382         * recog.c (pass_split_all_insns): Likewise.
5383         (pass_split_after_reload): Likewise.
5384         (pass_split_before_regstack): Likewise.
5385         (pass_split_before_sched2): Likewise.
5386         (pass_split_for_shorten_branches): Likewise.
5387         * reginfo.c (pass_reginfo_init): Likewise.
5388         (pass_subregs_of_mode_init): Likewise.
5389         (pass_subregs_of_mode_finish): Likewise.
5390         * passes.c (pass_postreload): Likewise.
5391         * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise.
5392         * tree-cfg.c (pass_remove_useless_stmts): Likewise.
5393         (pass_warn_function_return): Likewise.
5394         (pass_warn_function_noreturn): Likewise.
5395         * tree-complex.c (pass_lower_complex): Likewise.
5396         (pass_lower_complex_O0): Likewise.
5397         * tree-if-conv.c (pass_if_conversion): Likewise.
5398         * tree-into-ssa.c (pass_build_ssa): Likewise.
5399         * tree-mudflap.c (pass_mudflap_1): Likewise.
5400         (pass_mudflap_2): Likewise.
5401         * tree-nomudflap.c (pass_mudflap_1): Likewise.
5402         (pass_mudflap_2): Likewise.
5403         * tree-nrv.c (pass_return_slot): Likewise.
5404         * tree-object-size.c (pass_object_sizes): Likewise.
5405         * tree-optimize.c (pass_all_optimizations): Likewise.
5406         (pass_early_local_passes): Likewise.
5407         (pass_all_early_optimizations): Likewise.
5408         (pass_cleanup_cfg): Likewise.
5409         (pass_cleanup_cfg_post_optimizing): Likewise.
5410         (pass_free_datastructures): Likewise.
5411         (pass_free_cfg_annotations): Likewise.
5412         (pass_fixup_cfg): Likewise.
5413         (pass_init_datastructures): Likewise.
5414         * tree-ssa.c (pass_early_warn_uninitialized): Likewise.
5415         (pass_late_warn_uninitialized): Likewise.
5416         (pass_update_address_taken): Likewise.
5417         * tree-ssa-ccp.c (pass_fold_builtins): Likewise.
5418         * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise.
5419         (pass_cse_sincos): Likewise.
5420         (pass_convert_to_rsqrt): Likewise.
5421         * tree-ssa-structalias.c (pass_build_alias): Likewise.
5422         * tree-stdarg.c (pass_stdarg): Likewise.
5423         * tree-tailcall.c (pass_tail_recursion): Likewise.
5424         (pass_tail_calls): Likewise.
5425         * tree-vect-generic.c (pass_lower_vector): Likewise.
5426         (pass_lower_vector_ssa): Likewise.
5427         * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise.
5428
5429 2009-04-16  Joseph Myers  <joseph@codesourcery.com>
5430
5431         * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in
5432         XLR entry.
5433         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC):
5434         Handle -march=xlr.
5435         * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move,
5436         logical and signext.
5437
5438 2009-04-16  Kaz Kojima  <kkojima@gcc.gnu.org>
5439
5440         PR target/39767
5441         * config/sh/predicates.md (arith_operand): Check if the operand
5442         of TRUNCATE is a REG.
5443
5444 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
5445
5446         * cfgrtl.c (delete_insn_chain_and_edges): Remove.
5447         * rtl.h: Remove the prototype for delete_insn_chain_and_edges.
5448
5449 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
5450
5451         * tree-iterator.c (tsi_split_statement_list_after,
5452         tsi_split_statement_list_before): Remove.
5453         * tree-iterator.h: Remove the prototypes for
5454         tsi_split_statement_list_after and tsi_split_statement_list_before.
5455
5456 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
5457
5458         * tree-ssa-propagate.c (stmt_makes_single_load): Remove.
5459         * tree-ssa-propagate.h: Remove the prototype for
5460         stmt_makes_single_load.
5461
5462 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
5463
5464         * emit-rtl.c (set_mem_attrs_from_reg): Remove.
5465         * rtl.h: Remove the prototype for set_mem_attrs_from_reg.
5466
5467 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
5468
5469         * tree-iterator.c (EXPR_LAST_BODY): Remove.
5470
5471 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
5472
5473         * except.c (eh_region_outer_p): Remove.
5474         * except.h: Remove the prototype for eh_region_outer_p.
5475
5476 2009-04-16  Kazu Hirata  <kazu@codesourcery.com>
5477
5478         * function.c (current_function_assembler_name): Remove.
5479         * function.h: Remove the prototype for
5480         current_function_assembler_name.
5481
5482 2009-04-16  Ian Lance Taylor  <iant@google.com>
5483
5484         * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note.
5485         (add_reg_note): Call alloc_reg_note.
5486         * rtl.h (alloc_reg_note): Declare.
5487         * combine.c (try_combine): Use alloc_reg_note.
5488         (recog_for_combine, move_deaths): Likewise.
5489         (distribute_notes): Use alloc_reg_note and add_reg_note.
5490         * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note.
5491         * combine-stack-adj.c (adjust_frame_related_expr): Likewise.
5492         * reload1.c (eliminate_regs_1): Use alloc_reg_note.
5493
5494 2009-04-16  Vladimir Makarov  <vmakarov@redhat.com>
5495
5496         PR rtl-optimization/39762
5497         * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
5498         ira_may_move_out_cost): Add comments about way of their usage.
5499         (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
5500
5501         * ira-conflicts.c (process_regs_for_copy): Use function
5502         ira_get_register_move_cost instead of global
5503         ira_register_move_cost.
5504
5505         * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
5506         color_pass, move_spill_restore, update_curr_costs): Ditto.
5507
5508         * ira-lives.c (process_single_reg_class_operands): Ditto.
5509
5510         * ira-emit.c (emit_move_list): Ditto.
5511
5512         * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
5513         (record_reg_classes): Ditto.  Use functions
5514         ira_get_register_move_cost and ira_get_may_move_cost instead of
5515         global vars ira_register_move_cost, ira_may_move_out_cost and
5516         ira_may_move_in_cost.
5517         (record_address_regs): Don't call ira_init_register_move_cost.
5518         Use function ira_get_may_move_cost instead of global
5519         ira_may_move_in_cost.
5520         (process_bb_node_for_hard_reg_moves): Use function
5521         ira_get_register_move_cost instead of global ira_register_move_cost.
5522         (ira_costs): Don't call ira_init_register_move_cost.
5523
5524 2009-04-16  Richard Guenther  <rguenther@suse.de>
5525
5526         * tree-cfg.c (verify_gimple_assign_binary):
5527         Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors.
5528         * ipa-struct-reorg.c (gen_size): Fold the built expressions.
5529         (create_general_new_stmt): Note that this function is broken.
5530
5531 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
5532
5533         * common.opt (fhelp): Add Var(help_flag).
5534         * gcc-plugin.h (plugin_info): Add help.
5535         * plugin.c (plugin_name_args): Add help.
5536         (register_plugin_info): Set plugin->help.
5537         (print_help_one_plugin): New.
5538         (print_plugins_help): New.
5539         * plugin.h (print_plugins_help): New.
5540         * toplev.c (toplev_main): Call print_plugins_help if needed.
5541
5542 2009-04-16  Richard Guenther  <rguenther@suse.de>
5543
5544         * gimple.c (gimple_copy): Do not clear addresses_taken bitmap.
5545         (gimple_ior_addresses_taken_1): New function.
5546         (gimple_ior_addresses_taken): Likewise.
5547         * gimple.h (struct gimple_statement_with_ops_base): Remove
5548         addresses_taken member.
5549         (gimple_ior_addresses_taken): Declare.
5550         (gimple_addresses_taken, gimple_addresses_taken_ptr,
5551         gimple_set_addresses_taken): Remove.
5552         * ipa-reference.c (mark_address): New function.
5553         (scan_stmt_for_static_refs): Use it for marking addresses taken.
5554         * tree-ssa-operands.c (add_to_addressable_set): Rename to ...
5555         (mark_address_taken): ... this.  Just set TREE_ADDRESSABLE.
5556         (gimple_add_to_addresses_taken): Remove.
5557         (get_tmr_operands): Call mark_address_taken.
5558         (get_asm_expr_operands): Likewise.
5559         (get_expr_operands): Likewise.
5560         (build_ssa_operands): Do not clear the addresses_taken bitmap.
5561         (free_stmt_operands): Do not free it.
5562         * tree-ssa.c (delete_tree_ssa): Likewise.
5563         (execute_update_addresses_taken): Use gimple_ior_addresses_taken.
5564
5565 2009-04-16  Richard Guenther  <rguenther@suse.de>
5566
5567         * gimple.h (walk_stmt_load_store_addr_ops): Declare.
5568         (walk_stmt_load_store_ops): Likewise.
5569         * gimple.c (get_base_loadstore): New function.
5570         (walk_stmt_load_store_addr_ops): Likewise.
5571         (walk_stmt_load_store_ops): Likewise.
5572         * ipa-pure-const.c (check_op): Simplify.
5573         (check_load, check_store): New functions.
5574         (check_stmt): Use walk_stmt_load_store_ops.
5575         * ipa-reference.c (mark_load): Adjust signature.
5576         (mark_store): Likewise.
5577         (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops.
5578
5579 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
5580
5581         * gcc-plugin.h (plugin_event): Add PLUGIN_INFO.
5582         (plugin_info): New.
5583         * opts.c (common_handle_option): Don't call print_version.
5584         * plugin.c (plugin_name_args): Add version.
5585         (register_plugin_info): New.
5586         (register_callback): Handle PLUGIN_INFO.
5587         (try_init_one_plugin): New.
5588         (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args
5589         if failed to init.
5590         (finalize_one_plugin): New.
5591         (finalize_plugins): New.
5592         (print_one_plugin): New.
5593         (print_plugins_versions): New.
5594         * plugin.h (print_plugins_versions): New.
5595         (finalize_plugins): New.
5596         * toplev.c (compile_file): Don't call initialize_plugins.
5597         (print_version): Call print_plugins_versions.
5598         (toplev_main): Call initialize_plugins. Print version if needed.
5599         Call finalize_plugins.
5600
5601 2009-04-16  Rafael Avila de Espindola  <espindola@google.com>
5602
5603         * common.opt (fversion): New.
5604         * gcc.c (print_version): New.
5605         (process_command): Don't print the version. Just set print_version.
5606         (main): Print version. Call subprocesses if print_version and
5607         verbose_flag are set.
5608         * opts.c (common_handle_option): Handle OPT_fversion.
5609
5610 2009-04-16  Richard Guenther  <rguenther@suse.de>
5611             Ira Rosen  <irar@il.ibm.com>
5612
5613         PR tree-optimization/39698
5614         * tree-vect-loop.c (get_initial_def_for_reduction): Use the
5615         type of the reduction variable.  Only generate the def if
5616         it is needed.
5617
5618         * omp-low.c (expand_omp_for_generic): When converting to a pointer
5619         make sure to first convert to an integer of the same precision.
5620         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain
5621         the type of the evolution correctly in computing the new
5622         induction variable base.
5623
5624 2009-04-16  Richard Guenther  <rguenther@suse.de>
5625
5626         PR middle-end/39625
5627         * tree-cfg.c (make_blocks): Split statements with to-be
5628         abnormal SSA names on the lhs.
5629
5630 2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
5631
5632         * c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
5633         Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
5634         * c-typeck.c (really_start_incremental_init): Likewise.
5635         * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
5636         (TARGET_INITIALIZER): Remove it.
5637         * target.h (struct target): Remove vector_opaque_p.
5638         * tree.c (build_opaque_vector_type): New.
5639         * tree.h (TYPE_VECTOR_OPAQUE): New.
5640         (build_opaque_vector_type): Declare.
5641         * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
5642         * config/rs6000/rs6000.c (build_opaque_vector_type,
5643         rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
5644         (rs6000_init_builtins): Use build_opaque_vector_type for
5645         opaque_V4SI_type_node.
5646
5647 2009-04-15  Catherine Moore  <clm@codesourcery.com>
5648
5649         * debug.h (set_name):  Declare.
5650         * dwarf2out.c (dwarf2out_set_name): Declare.
5651         (dwarf2_debug_hooks): Add set_name.
5652         (find_AT_string): New.
5653         (add_AT_string): Call find_AT_string.
5654         (dwarf2out_set_name): New.
5655         * cp/decl.c (grokdeclarator): Call set_name.
5656         * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing.
5657         * debug.c (do_nothing_debug_hooks):  Likewise.
5658         * dbxout.c (dbx_debug_hooks): Likewise.
5659         * sdbout.c (sdb_debug_hooks): Likewise.
5660
5661 2009-04-15  Michael Eager  <eager@eagercon.com>
5662
5663         * config/rs6000/rs6000.c (rs6000_function_value): Set function return
5664         reg for single-precision FPU.
5665         * config/rs6000/rs6000.md (movsi_internal1): Only for
5666         !TARGET_SINGLE_FPU.
5667         (movsi_internal1_single): New. Add pattern to move SI values to/from
5668         single-precision FP regs.
5669
5670 2009-04-15  Richard Guenther  <rguenther@suse.de>
5671
5672         * omp-low.c (lower_rec_input_clauses): Build correct address
5673         expressions.
5674         (expand_omp_for_generic): Fix multiplication type.
5675         * tree-loop-distribution.c (build_size_arg): Build a size_t argument.
5676         (generate_memset_zero): Fix types.
5677         * tree-profile.c (prepare_instrumented_value): Correctly
5678         widen a pointer.
5679
5680 2009-04-15  Ian Lance Taylor  <iant@google.com>
5681
5682         * c.opt (Wenum-compare): Enable for C and Objc.  Initialize to -1.
5683         * c-opts.c (c_common_handle_option): For C, set warn_enum_compare
5684         for -Wall and for -Wc++-compat.
5685         (c_common_post_options): For C++, set warn_enum_compare if not
5686         already set.
5687         * c-tree.h (struct c_expr): Add field original_type.
5688         (build_external_ref): Update declaration.
5689         * c-parser.c (c_parser_braced_init): Set original_type.
5690         (c_parser_initelt): Likewise.
5691         (c_parser_expr_no_commas): Likewise.
5692         (c_parser_conditional_expression): Likewise.
5693         (c_parser_cast_expression): Likewise.
5694         (c_parser_unary_expression): Likewise.  Pull setting of
5695         original_code to top of function.
5696         (c_parser_sizeof_expression): Set original_type.
5697         (c_parser_alignof_expression): Likewise.
5698         (c_parser_postfix_expression): Likewise.  Pull setting of
5699         original_code to top of function.
5700         (c_parser_postfix_expression_after_paren_type): Set original_type.
5701         (c_parser_postfix_expression_after_primary): Likewise.
5702         (c_parser_expression): Likewise.
5703         * c-typeck.c (build_external_ref): Add type parameter.  Change all
5704         callers.
5705         (c_expr_sizeof_expr): Set original_type field.
5706         (parser_build_unary_op): Likewise.
5707         (parser_build_binary_op): Likewise.  Optionally warn about
5708         comparisons of enums of different types.
5709         (digest_init): Set original_type field.
5710         (really_start_incremental_init): Likewise.
5711         (push_init_level, pop_init_level): Likewise.
5712         * doc/invoke.texi (Warning Options): -Wenum-compare now
5713         supported in C.
5714
5715 2009-04-15  Richard Guenther  <rguenther@suse.de>
5716
5717         * tree-ssa-pre.c (eliminate): When replacing a PHI node carry
5718         out a necessary conversion.
5719         * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to
5720         names we didn't value number.
5721         * tree-mudflap.c (mf_build_check_statement_for): Use correct types.
5722
5723 2009-04-15  Richard Guenther  <rguenther@suse.de>
5724
5725         PR tree-optimization/39764
5726         * tree-ssa-ccp.c (get_value): Canonicalize value with
5727         canonicalize_float_value.
5728
5729 2009-04-15  Jan Hubicka  <jh@suse.cz>
5730
5731         * builtins.def (va_start, va_end, va_copy): Fix my previous commit.
5732         Wrong version of patch.
5733
5734 2009-04-15  Jan Hubicka  <jh@suse.cz>
5735
5736         * builtins.def (va_start, va_end, va_copy): Mark nothrow.
5737
5738 2009-04-15  Nathan Sidwell  <nathan@codesourcery.com>
5739
5740         * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of
5741         our distinct integral and vector types.
5742
5743 2009-04-15  Rafael Avila de Espindola  <espindola@google.com>
5744
5745         * class.c (build_vtbl_ref_1): Remove call to assemble_external.
5746         * init.c (build_vtbl_address): Remove call to assemble_external.
5747
5748 2009-04-14  Daniel Jacobowitz  <dan@codesourcery.com>
5749
5750         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug
5751         output for other floating point modes.
5752
5753 2009-04-14  Diego Novillo  <dnovillo@google.com>
5754
5755         * diagnostic.c (diagnostic_report_diagnostic): Do not
5756         warn about loaded plugins for DK_ERROR and DK_WARNING.
5757         * c-decl.c (declspecs_add_type): Move call to
5758         invoke_plugin_callbacks ...
5759         * c-parser.c (c_parser_declspecs): ... here.
5760         * plugin.c (dump_active_plugins): Tidy output.
5761
5762 2009-04-14  Diego Novillo  <dnovillo@google.com>
5763             Le-Chun Wu  <lcwu@google.com>
5764
5765         * configure.ac: Add --enable-plugin support.
5766         Define ENABLE_PLUGIN and PLUGINLIBS when specified.
5767         * Makefile.in (PLUGIN_H): Define.
5768         Export ENABLE_PLUGIN and GMPINC to site.exp.
5769         Add PLUGINLIBS to link command.
5770         Add/modify dependencies for plugin.o and files including plugin.h.
5771         (plugin.o): New.
5772         * config.in: Regenerate.
5773
5774         * opts.c (common_handle_option): Handle OPT_fplugin_ and
5775         OPT_fplugin_arg_.
5776
5777 2009-04-14  Le-Chun Wu  <lcwu@google.com>
5778
5779         * tree-pass.h (register_one_dump_file): Add a prototype for
5780         register_one_dump_file.
5781         * toplev.c (compile_file): Call initialize_plugins.
5782         (do_compile): Call invoke_plugin_callbacks.
5783         (toplev_main): Call invoke_plugin_callbacks.
5784         * common.opt: Add -fplugin= and -fplugin-arg-.
5785         * gcc-plugin.h: New public header file for plugins to include.
5786         * plugin.c: New source file.
5787         * plugin.h: New internal header file.
5788         * passes.c (register_one_dump_file): Make it external.
5789
5790         * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks.
5791
5792 2009-04-14  Diego Novillo  <dnovillo@google.com>
5793
5794         * doc/plugins.texi: New.
5795         * doc/gccint.texi: Add reference to Plugins chapter.
5796         * doc/invoke.texi: Document -fplugin and -fplugin-arg
5797         * diagnostic.c (diagnostic_report_diagnostic): Warn about
5798         loaded plugins, if any.
5799         * timevar.def (TV_PLUGIN_INIT): Define.
5800         (TV_PLUGIN_RUN): Define.
5801         * plugin.c: Include timevar.h
5802         (plugins_active_p): New.
5803         (dump_active_plugins): New.
5804         (debug_active_plugins): New.
5805
5806 2009-04-14  Joseph Myers  <joseph@codesourcery.com>
5807
5808         * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute
5809         library paths.
5810         * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise.
5811
5812 2009-04-14  Kazu Hirata  <kazu@codesourcery.com>
5813
5814         * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift
5815         the same as a minus without a shift.
5816
5817 2009-04-14  Nick Clifton  <nickc@redhat.com>
5818
5819         * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that
5820         comparisons with small integers will always produce a short
5821         branch.
5822
5823 2009-04-14  Rafael Avila de Espindola  <espindola@google.com>
5824
5825         Merge:
5826         2008-12-19  Diego Novillo  <dnovillo@google.com>
5827
5828         * cgraph.c (dump_cgraph_node): Show memory address of NODE.
5829
5830 2009-04-14  Richard Guenther  <rguenther@suse.de>
5831
5832         * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code
5833         verification.
5834         (verify_gimple_assign_binary): Likewise.  Handle shifts and
5835         rotates correctly.
5836         (verify_gimple_phi): Print the mismatched argument position.
5837         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
5838         Fix types.
5839         (vect_update_init_of_dr): Likewise.
5840         * matrix-reorg.c (transform_access_sites): Do what the
5841         comment suggests.
5842         * omp-low.c (expand_omp_atomic_pipeline): Use the correct types.
5843
5844 2009-04-13  Michael Eager  <eager@eagercon.com>
5845
5846         * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu:
5847         _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL
5848         * config/rs6000/xilinx.h: New.  Spec for powerpc-xilinx-eabi
5849         * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file,
5850         remove duplicate config
5851
5852 2009-04-13  Dwarakanath Rajagopal  <dwarak.rajagopal@amd.com>
5853
5854         * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump
5855         file_name:line_number type locator of the call site.
5856
5857 2009-04-13  Vladimir Makarov  <vmakarov@redhat.com>
5858
5859         * genautomata.c: Put blank after comma.
5860         (automaton_decls): New.
5861         (struct unit_usage): Add comments to member next.
5862         (store_alt_unit_usage): Keep the list ordered.
5863         (unit_present_on_list_p, equal_alternatives_p): New.
5864         (check_regexp_units_distribution): Check units distribution
5865         correctness correctly.
5866         (main): Don't write automata if error is found.  Return correct
5867         exit code.
5868
5869         * config/m68k/cf.md (cfv4_ds): Remove.
5870         (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3,
5871         cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds.
5872
5873         * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4,
5874         power4-load-ext, power4-store, power4-store-update,
5875         power4-fpstore, power4-fpstore-update, power4-two, power4-three,
5876         power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp,
5877         power4-lmul, , power4-imul, power4-imul3, power4-sdiv,
5878         power4-sqrt, power4-isync): Modify reservation to make correct
5879         unit distribution to automata.
5880
5881         * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store,
5882         power5-store-update, power5-two, power5-three, power5-lmul,
5883         power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto.
5884
5885 2009-04-13  Adam Nemet  <anemet@caviumnetworks.com>
5886
5887         * except.c (pass_set_nothrow_function_flags): Set name and add
5888         TODO_dump_func.
5889         (set_nothrow_function_flags): Mention in the dump file when
5890         changing a function to nothrow.
5891
5892 2009-04-13  Ozkan Sezer  <sezeroz@gmail.com>
5893
5894         PR/39066
5895         * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__
5896         instead of unsigned long.
5897
5898 2009-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5899
5900         * config/arm/arm.c (return_used_this_function): Remove.
5901         (arm_output_function_prologue): Remove use of
5902         return_used_this_function.
5903         (output_return_instruction): Replace use of
5904         return_used_this_function
5905         by cfun->machine->return_used_this_function.
5906         (arm_output_epilogue): Likewise.
5907         (arm_output_function_epilogue): Likewise.
5908         (thumb_unexpanded_epilogue): Likewise.
5909         * config/arm/arm.h (struct machine_function):
5910         New member return_used_this_function.
5911
5912 2009-04-12  Mark Mitchell  <mark@codesourcery.com>
5913
5914         * doc/install.texi: Correct description of default directory for
5915         --with-gxx-include-dir.
5916
5917 2009-04-12  Eric Botcazou  <ebotcazou@adacore.com>
5918
5919         * fold-const.c (build_range_check): Properly deal with enumeral and
5920         boolean base types.
5921
5922 2009-04-12  Steven Bosscher  <steven@gcc.gnu.org>
5923
5924         * doc/invoke.texi (max_gcse_passes): Remove documentation.
5925         * params.def (PARAM_MAX_GCSE_PASSES): Remove.
5926         * params.h (MAX_GCSE_PASSES): Remove.
5927         * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2
5928         in sequence.  Remove ability to run multiple passes.
5929         (bypass_jumps): Report run as third CPROP pass.
5930
5931 2009-04-12  Adam Nemet  <anemet@caviumnetworks.com>
5932
5933         PR middle-end/39651
5934         * except.c (can_throw_external): Look at each insn in a SEQUENCE
5935         when deciding whether the whole SEQUENCE can throw.
5936
5937 2009-04-12  Uros Bizjak  <ubizjak@gmail.com>
5938
5939         PR target/39740
5940         * config/alpha/predicates.md (local_symbolic_operand): Return 1 for
5941         offseted label references.
5942
5943 2009-04-11  Jan Hubicka  <jh@suse.cz>
5944
5945         * tree-ssa-pre.c (eliminate): Fix call of update_stmt.
5946
5947 2009-04-11  Richard Guenther  <rguenther@suse.de>
5948
5949         PR middle-end/39732
5950         * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE
5951         return variables as TREE_ADDRESSABLE.
5952
5953 2009-04-11  Richard Guenther  <rguenther@suse.de>
5954
5955         PR tree-optimization/39713
5956         * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built
5957         reference trees have SSA_NAME operands.
5958
5959 2009-04-11  Richard Guenther  <rguenther@suse.de>
5960
5961         PR c/39712
5962         * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched
5963         address expressions.
5964
5965 2009-04-11  Dave Korn  <dave.korn.cygwin@gmail.com>
5966
5967         * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE):  Update to
5968         match changes in Cygwin 1.7
5969         (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE,
5970         UINT_FAST16_TYPE, UINT_FAST32_TYPE):  Likewise.
5971
5972 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
5973
5974         PR tree-optimization/39701
5975         * doc/invoke.texi (Optimization Options): Document change in
5976         meaning and initialization of -fdelete-null-pointer-checks.
5977
5978 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
5979
5980         PR middle-end/39701
5981         * common.opt (-fdelete-null-pointer-checks): Initialize to 1.
5982
5983         * opts.c (decode_options): Don't set flag_delete_null_pointer_checks
5984         here.
5985
5986         * doc/invoke.texi: Update -fdelete-null-pointer-checks.
5987
5988 2009-04-10  Chao-ying Fu  <fu@mips.com>
5989
5990         * doc/tm.texi (Instruction Output): Document
5991         TARGET_ASM_FINAL_POSTSCAN_INSN.
5992         * target.h (final_postscan_insn): New field in asm_out.
5993         * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
5994         (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN.
5995         * final.c (final_scan_insn): Call
5996         targetm.asm_out.final_postscan_insn after outputting
5997         an asm macro and a normal instruction.
5998
5999         * config/mips/mips.h (FINAL_PRESCAN_INSN): New define.
6000         * config/mips/mips-protos.h (mips_final_prescan_insn): Declare.
6001         * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback.
6002         (mips_final_prescan_insn, mips_final_postscan_insn): New functions.
6003         (TARGET_ASM_FINAL_POSTSCAN_INSN): New define.
6004
6005 2009-04-10  Paolo Bonzini  <bonzini@gnu.org>
6006
6007         PR middle-end/39701
6008         * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static
6009         variables as non-NULL even with -fdelete-null-pointer-checks.
6010
6011 2009-04-10  H.J. Lu  <hongjiu.lu@intel.com>
6012
6013         * config/rs6000/darwin-vecsave.asm: Remove extra "*/".
6014
6015 2009-04-09  H.J. Lu  <hongjiu.lu@intel.com>
6016
6017         PR target/39678
6018         * config/i386/i386.c (classify_argument): Handle SCmode with
6019         (bit_offset % 64) != 0.
6020
6021 2009-04-09  Sandra Loosemore  <sandra@codesourcery.com>
6022
6023         * doc/invoke.texi (Optimize Options): Add cross-reference to
6024         -Q --help=optimizers examples.
6025
6026 2009-04-10  Ben Elliston  <bje@au.ibm.com>
6027
6028         PR target/36800
6029         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set
6030         regalign for the reg == fpr and TDmode case.
6031
6032 2009-04-09  David Ayers  <ayers@fsfe.org>
6033
6034         PR objc/29200
6035         * objc/objc-act.c (warn_with_method): Remove helper function.
6036         (check_duplicates): Call warning and inform directly.
6037         (really_start_method): Likewise.
6038
6039 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
6040
6041         * expmed.c (expand_divmod): Always use a comparison for a division
6042         by a large unsigned integer.
6043
6044         * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls
6045         for things others than variables or functions as nonzero.
6046
6047 2009-04-09  Nick Clifton  <nickc@redhat.com>
6048
6049         * unwind-compat.c: Change copyright header to refer to version
6050         3 of the GNU General Public License with version 3.1 of the
6051         GCC Runtime Library Exception and to point readers at the
6052         COPYING3 and COPYING3.RUNTIME files and the FSF's license web page.
6053         * config/alpha/crtfastmath.c: Likewise.
6054         * config/alpha/linux-unwind.h: Likewise.
6055         * config/alpha/qrnnd.asm: Likewise.
6056         * config/alpha/vms-crt0-64.c: Likewise.
6057         * config/alpha/vms-crt0.c: Likewise.
6058         * config/alpha/vms-dwarf2.asm: Likewise.
6059         * config/alpha/vms-dwarf2eh.asm: Likewise.
6060         * config/alpha/vms-psxcrt0-64.c: Likewise.
6061         * config/alpha/vms-psxcrt0.c: Likewise.
6062         * config/alpha/vms_tramp.asm: Likewise.
6063         * config/arc/initfini.c: Likewise.
6064         * config/arc/lib1funcs.asm: Likewise.
6065         * config/arm/bpabi-v6m.S: Likewise.
6066         * config/arm/bpabi.S: Likewise.
6067         * config/arm/bpabi.c: Likewise.
6068         * config/arm/crti.asm: Likewise.
6069         * config/arm/crtn.asm: Likewise.
6070         * config/arm/ieee754-df.S: Likewise.
6071         * config/arm/ieee754-sf.S: Likewise.
6072         * config/arm/lib1funcs.asm: Likewise.
6073         * config/arm/libunwind.S: Likewise.
6074         * config/arm/linux-atomic.c: Likewise.
6075         * config/arm/mmintrin.h: Likewise.
6076         * config/arm/pr-support.c: Likewise.
6077         * config/arm/unaligned-funcs.c: Likewise.
6078         * config/arm/unwind-arm.c: Likewise.
6079         * config/arm/unwind-arm.h: Likewise.
6080         * config/avr/libgcc.S: Likewise.
6081         * config/bfin/crti.s: Likewise.
6082         * config/bfin/crtlibid.s: Likewise.
6083         * config/bfin/crtn.s: Likewise.
6084         * config/bfin/lib1funcs.asm: Likewise.
6085         * config/bfin/linux-unwind.h: Likewise.
6086         * config/cris/arit.c: Likewise.
6087         * config/cris/cris_abi_symbol.c: Likewise.
6088         * config/darwin-64.c: Likewise.
6089         * config/darwin-crt2.c: Likewise.
6090         * config/darwin-crt3.c: Likewise.
6091         * config/darwin.h: Likewise.
6092         * config/dbxelf.h: Likewise.
6093         * config/dfp-bit.c: Likewise.
6094         * config/dfp-bit.h: Likewise.
6095         * config/elfos.h: Likewise.
6096         * config/fixed-bit.c: Likewise.
6097         * config/fixed-bit.h: Likewise.
6098         * config/fp-bit.c: Likewise.
6099         * config/fp-bit.h: Likewise.
6100         * config/fr30/crti.asm: Likewise.
6101         * config/fr30/crtn.asm: Likewise.
6102         * config/fr30/lib1funcs.asm: Likewise.
6103         * config/freebsd-spec.h: Likewise.
6104         * config/frv/cmovd.c: Likewise.
6105         * config/frv/cmovh.c: Likewise.
6106         * config/frv/cmovw.c: Likewise.
6107         * config/frv/frvbegin.c: Likewise.
6108         * config/frv/frvend.c: Likewise.
6109         * config/frv/lib1funcs.asm: Likewise.
6110         * config/glibc-stdint.h: Likewise.
6111         * config/h8300/clzhi2.c: Likewise.
6112         * config/h8300/crti.asm: Likewise.
6113         * config/h8300/crtn.asm: Likewise.
6114         * config/h8300/ctzhi2.c: Likewise.
6115         * config/h8300/fixunssfsi.c: Likewise.
6116         * config/h8300/lib1funcs.asm: Likewise.
6117         * config/h8300/parityhi2.c: Likewise.
6118         * config/h8300/popcounthi2.c: Likewise.
6119         * config/i386/ammintrin.h: Likewise.
6120         * config/i386/att.h: Likewise.
6121         * config/i386/avxintrin.h: Likewise.
6122         * config/i386/biarch64.h: Likewise.
6123         * config/i386/bmmintrin.h: Likewise.
6124         * config/i386/cpuid.h: Likewise.
6125         * config/i386/cross-stdarg.h: Likewise.
6126         * config/i386/crtfastmath.c: Likewise.
6127         * config/i386/crtprec.c: Likewise.
6128         * config/i386/cygming-crtbegin.c: Likewise.
6129         * config/i386/cygming-crtend.c: Likewise.
6130         * config/i386/cygwin.asm: Likewise.
6131         * config/i386/emmintrin.h: Likewise.
6132         * config/i386/gmm_malloc.h: Likewise.
6133         * config/i386/gthr-win32.c: Likewise.
6134         * config/i386/i386.h: Likewise.
6135         * config/i386/immintrin.h: Likewise.
6136         * config/i386/linux-unwind.h: Likewise.
6137         * config/i386/linux64.h: Likewise.
6138         * config/i386/mm3dnow.h: Likewise.
6139         * config/i386/mmintrin-common.h: Likewise.
6140         * config/i386/mmintrin.h: Likewise.
6141         * config/i386/nmmintrin.h: Likewise.
6142         * config/i386/pmm_malloc.h: Likewise.
6143         * config/i386/pmmintrin.h: Likewise.
6144         * config/i386/smmintrin.h: Likewise.
6145         * config/i386/sol2-c1.asm: Likewise.
6146         * config/i386/sol2-ci.asm: Likewise.
6147         * config/i386/sol2-cn.asm: Likewise.
6148         * config/i386/sol2-gc1.asm: Likewise.
6149         * config/i386/tmmintrin.h: Likewise.
6150         * config/i386/unix.h: Likewise.
6151         * config/i386/w32-unwind.h: Likewise.
6152         * config/i386/wmmintrin.h: Likewise.
6153         * config/i386/x86-64.h: Likewise.
6154         * config/i386/x86intrin.h: Likewise.
6155         * config/i386/xmmintrin.h: Likewise.
6156         * config/ia64/crtbegin.asm: Likewise.
6157         * config/ia64/crtend.asm: Likewise.
6158         * config/ia64/crtfastmath.c: Likewise.
6159         * config/ia64/crti.asm: Likewise.
6160         * config/ia64/crtn.asm: Likewise.
6161         * config/ia64/fde-glibc.c: Likewise.
6162         * config/ia64/lib1funcs.asm: Likewise.
6163         * config/ia64/linux-unwind.h: Likewise.
6164         * config/ia64/quadlib.c: Likewise.
6165         * config/ia64/unwind-ia64.c: Likewise.
6166         * config/linux.h: Likewise.
6167         * config/m32c/m32c-lib1.S: Likewise.
6168         * config/m32c/m32c-lib2-trapv.c: Likewise.
6169         * config/m32c/m32c-lib2.c: Likewise.
6170         * config/m32r/initfini.c: Likewise.
6171         * config/m68hc11/larith.asm: Likewise.
6172         * config/m68hc11/m68hc11-crt0.S: Likewise.
6173         * config/m68k/cf.md: Likewise.
6174         * config/m68k/crti.s: Likewise.
6175         * config/m68k/crtn.s: Likewise.
6176         * config/m68k/lb1sf68.asm: Likewise.
6177         * config/m68k/linux-unwind.h: Likewise.
6178         * config/mcore/crti.asm: Likewise.
6179         * config/mcore/crtn.asm: Likewise.
6180         * config/mcore/lib1.asm: Likewise.
6181         * config/mips/linux-unwind.h: Likewise.
6182         * config/mips/loongson.h: Likewise.
6183         * config/mips/mips16.S: Likewise.
6184         * config/mmix/crti.asm: Likewise.
6185         * config/mmix/crtn.asm: Likewise.
6186         * config/pa/fptr.c: Likewise.
6187         * config/pa/hpux-unwind.h: Likewise.
6188         * config/pa/lib2funcs.asm: Likewise.
6189         * config/pa/linux-atomic.c: Likewise.
6190         * config/pa/linux-unwind.h: Likewise.
6191         * config/pa/milli64.S: Likewise.
6192         * config/pa/quadlib.c: Likewise.
6193         * config/pa/stublib.c: Likewise.
6194         * config/picochip/libgccExtras/adddi3.asm: Likewise.
6195         * config/picochip/libgccExtras/ashlsi3.asm: Likewise.
6196         * config/picochip/libgccExtras/ashlsi3.c: Likewise.
6197         * config/picochip/libgccExtras/ashrsi3.asm: Likewise.
6198         * config/picochip/libgccExtras/ashrsi3.c: Likewise.
6199         * config/picochip/libgccExtras/cmpsi2.asm: Likewise.
6200         * config/picochip/libgccExtras/divmod15.asm: Likewise.
6201         * config/picochip/libgccExtras/divmodhi4.asm: Likewise.
6202         * config/picochip/libgccExtras/divmodsi4.asm: Likewise.
6203         * config/picochip/libgccExtras/longjmp.asm: Likewise.
6204         * config/picochip/libgccExtras/lshrsi3.asm: Likewise.
6205         * config/picochip/libgccExtras/lshrsi3.c: Likewise.
6206         * config/picochip/libgccExtras/parityhi2.asm: Likewise.
6207         * config/picochip/libgccExtras/popcounthi2.asm: Likewise.
6208         * config/picochip/libgccExtras/setjmp.asm: Likewise.
6209         * config/picochip/libgccExtras/subdi3.asm: Likewise.
6210         * config/picochip/libgccExtras/ucmpsi2.asm: Likewise.
6211         * config/picochip/libgccExtras/udivmodhi4.asm: Likewise.
6212         * config/picochip/libgccExtras/udivmodsi4.asm: Likewise.
6213         * config/rs6000/750cl.h: Likewise.
6214         * config/rs6000/altivec.h: Likewise.
6215         * config/rs6000/biarch64.h: Likewise.
6216         * config/rs6000/crtresfpr.asm: Likewise.
6217         * config/rs6000/crtresgpr.asm: Likewise.
6218         * config/rs6000/crtresxfpr.asm: Likewise.
6219         * config/rs6000/crtresxgpr.asm: Likewise.
6220         * config/rs6000/crtsavfpr.asm: Likewise.
6221         * config/rs6000/crtsavgpr.asm: Likewise.
6222         * config/rs6000/darwin-asm.h: Likewise.
6223         * config/rs6000/darwin-fallback.c: Likewise.
6224         * config/rs6000/darwin-fpsave.asm: Likewise.
6225         * config/rs6000/darwin-ldouble.c: Likewise.
6226         * config/rs6000/darwin-tramp.asm: Likewise.
6227         * config/rs6000/darwin-unwind.h: Likewise.
6228         * config/rs6000/darwin-vecsave.asm: Likewise.
6229         * config/rs6000/darwin-world.asm: Likewise.
6230         * config/rs6000/e500crtres32gpr.asm: Likewise.
6231         * config/rs6000/e500crtres64gpr.asm: Likewise.
6232         * config/rs6000/e500crtres64gprctr.asm: Likewise.
6233         * config/rs6000/e500crtrest32gpr.asm: Likewise.
6234         * config/rs6000/e500crtrest64gpr.asm: Likewise.
6235         * config/rs6000/e500crtresx32gpr.asm: Likewise.
6236         * config/rs6000/e500crtresx64gpr.asm: Likewise.
6237         * config/rs6000/e500crtsav32gpr.asm: Likewise.
6238         * config/rs6000/e500crtsav64gpr.asm: Likewise.
6239         * config/rs6000/e500crtsav64gprctr.asm: Likewise.
6240         * config/rs6000/e500crtsavg32gpr.asm: Likewise.
6241         * config/rs6000/e500crtsavg64gpr.asm: Likewise.
6242         * config/rs6000/e500crtsavg64gprctr.asm: Likewise.
6243         * config/rs6000/eabi-ci.asm: Likewise.
6244         * config/rs6000/eabi-cn.asm: Likewise.
6245         * config/rs6000/eabi.asm: Likewise.
6246         * config/rs6000/linux-unwind.h: Likewise.
6247         * config/rs6000/linux64.h: Likewise.
6248         * config/rs6000/paired.h: Likewise.
6249         * config/rs6000/paired.md: Likewise.
6250         * config/rs6000/ppc64-fp.c: Likewise.
6251         * config/rs6000/ppu_intrinsics.h: Likewise.
6252         * config/rs6000/rs6000.h: Likewise.
6253         * config/rs6000/si2vmx.h: Likewise.
6254         * config/rs6000/sol-ci.asm: Likewise.
6255         * config/rs6000/sol-cn.asm: Likewise.
6256         * config/rs6000/spe.h: Likewise.
6257         * config/rs6000/spu2vmx.h: Likewise.
6258         * config/rs6000/sysv4.h: Likewise.
6259         * config/rs6000/tramp.asm: Likewise.
6260         * config/rs6000/vec_types.h: Likewise.
6261         * config/s390/linux-unwind.h: Likewise.
6262         * config/s390/tpf-unwind.h: Likewise.
6263         * config/score/crti.asm: Likewise.
6264         * config/score/crtn.asm: Likewise.
6265         * config/sh/crt1.asm: Likewise.
6266         * config/sh/crti.asm: Likewise.
6267         * config/sh/crtn.asm: Likewise.
6268         * config/sh/divtab-sh4-300.c: Likewise.
6269         * config/sh/divtab-sh4.c: Likewise.
6270         * config/sh/divtab.c: Likewise.
6271         * config/sh/lib1funcs-4-300.asm: Likewise.
6272         * config/sh/lib1funcs-Os-4-200.asm: Likewise.
6273         * config/sh/lib1funcs.asm: Likewise.
6274         * config/sh/lib1funcs.h: Likewise.
6275         * config/sh/linux-atomic.asm: Likewise.
6276         * config/sh/linux-unwind.h: Likewise.
6277         * config/sh/shmedia.h: Likewise.
6278         * config/sh/sshmedia.h: Likewise.
6279         * config/sh/ushmedia.h: Likewise.
6280         * config/sparc/crtfastmath.c: Likewise.
6281         * config/sparc/linux-unwind.h: Likewise.
6282         * config/sparc/sol2-c1.asm: Likewise.
6283         * config/sparc/sol2-ci.asm: Likewise.
6284         * config/sparc/sol2-cn.asm: Likewise.
6285         * config/spu/divmodti4.c: Likewise.
6286         * config/spu/divv2df3.c: Likewise.
6287         * config/spu/float_disf.c: Likewise.
6288         * config/spu/float_unsdidf.c: Likewise.
6289         * config/spu/float_unsdisf.c: Likewise.
6290         * config/spu/float_unssidf.c: Likewise.
6291         * config/spu/mfc_multi_tag_release.c: Likewise.
6292         * config/spu/mfc_multi_tag_reserve.c: Likewise.
6293         * config/spu/mfc_tag_release.c: Likewise.
6294         * config/spu/mfc_tag_reserve.c: Likewise.
6295         * config/spu/mfc_tag_table.c: Likewise.
6296         * config/spu/multi3.c: Likewise.
6297         * config/spu/spu_internals.h: Likewise.
6298         * config/spu/spu_intrinsics.h: Likewise.
6299         * config/spu/spu_mfcio.h: Likewise.
6300         * config/spu/vec_types.h: Likewise.
6301         * config/spu/vmx2spu.h: Likewise.
6302         * config/stormy16/stormy16-lib2.c: Likewise.
6303         * config/svr4.h: Likewise.
6304         * config/sync.c: Likewise.
6305         * config/v850/lib1funcs.asm: Likewise.
6306         * config/vxlib-tls.c: Likewise.
6307         * config/vxlib.c: Likewise.
6308         * config/vxworks-dummy.h: Likewise.
6309         * config/xtensa/crti.asm: Likewise.
6310         * config/xtensa/crtn.asm: Likewise.
6311         * config/xtensa/ieee754-df.S: Likewise.
6312         * config/xtensa/ieee754-sf.S: Likewise.
6313         * config/xtensa/lib1funcs.asm: Likewise.
6314         * config/xtensa/lib2funcs.S: Likewise.
6315         * config/xtensa/linux-unwind.h: Likewise.
6316         * config/xtensa/unwind-dw2-xtensa.c: Likewise.
6317         * config/xtensa/unwind-dw2-xtensa.h: Likewise.
6318         * coretypes.h: Likewise.
6319         * crtstuff.c: Likewise.
6320         * defaults.h: Likewise.
6321         * dwarf2.h: Likewise.
6322         * emutls.c: Likewise.
6323         * gbl-ctors.h: Likewise.
6324         * gcov-io.h: Likewise.
6325         * ginclude/float.h: Likewise.
6326         * ginclude/iso646.h: Likewise.
6327         * ginclude/stdarg.h: Likewise.
6328         * ginclude/stdbool.h: Likewise.
6329         * ginclude/stddef.h: Likewise.
6330         * ginclude/stdfix.h: Likewise.
6331         * ginclude/stdint-gcc.h: Likewise.
6332         * ginclude/tgmath.h: Likewise.
6333         * gthr-aix.h: Likewise.
6334         * gthr-dce.h: Likewise.
6335         * gthr-gnat.c: Likewise.
6336         * gthr-gnat.h: Likewise.
6337         * gthr-lynx.h: Likewise.
6338         * gthr-mipssde.h: Likewise.
6339         * gthr-nks.h: Likewise.
6340         * gthr-posix.c: Likewise.
6341         * gthr-posix.h: Likewise.
6342         * gthr-posix95.h: Likewise.
6343         * gthr-rtems.h: Likewise.
6344         * gthr-single.h: Likewise.
6345         * gthr-solaris.h: Likewise.
6346         * gthr-tpf.h: Likewise.
6347         * gthr-vxworks.h: Likewise.
6348         * gthr-win32.h: Likewise.
6349         * gthr.h: Likewise.
6350         * libgcc2.c: Likewise.
6351         * libgcc2.h: Likewise.
6352         * libgcov.c: Likewise.
6353         * tsystem.h: Likewise.
6354         * typeclass.h: Likewise.
6355         * unwind-c.c: Likewise.
6356         * unwind-compat.h: Likewise.
6357         * unwind-dw2-fde-compat.c: Likewise.
6358         * unwind-dw2-fde-darwin.c: Likewise.
6359         * unwind-dw2-fde-glibc.c: Likewise.
6360         * unwind-dw2-fde.c: Likewise.
6361         * unwind-dw2-fde.h: Likewise.
6362         * unwind-dw2.c: Likewise.
6363         * unwind-dw2.h: Likewise.
6364         * unwind-generic.h: Likewise.
6365         * unwind-pe.h: Likewise.
6366         * unwind-sjlj.c: Likewise.
6367         * unwind.inc: Likewise.
6368         * config/arm/neon-gen.ml: Change generated copyright header to
6369         refer to version 3 of the GNU General Public License with
6370         version 3.1 of the GCC Runtime Library Exception and to point
6371         readers at the COPYING3 and COPYING3.RUNTIME files and the
6372         FSF's license web page.
6373         * config/arm/arm_neon.h: Regenerate.
6374
6375 2009-04-09  Jakub Jelinek  <jakub@redhat.com>
6376
6377         * config/cris/cris.md: Change copyright header to refer to version
6378         3 of the GNU General Public License.
6379         * doc/install.texi2html: Change copyright header to refer to version
6380         3 of the GNU General Public License and to point readers at the
6381         COPYING3 file and the FSF's license web page.
6382         * config/vax/linux.h: Likewise.
6383
6384 2009-04-09  Paolo Bonzini  <bonzini@gnu.org>
6385
6386         * config/i386/i386.md (cmpcc): New.
6387         * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
6388         (sync_compare_and_swap_cc*): Delete.
6389
6390         * config/s390/s390.c (s390_compare_emitted): Remove.
6391         (s390_emit_compare): Handle MODE_CC s390_compare_op0 like
6392         s390_compare_emitted used to be handled.  Assert that modes match.
6393         (s390_emit_compare_and_swap): Use s390_emit_compare, do not
6394         refer to sync_compare_and_swap_ccsi.
6395         * config/s390/s390.h (s390_compare_emitted): Remove.
6396         * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
6397         instead of s390_compare_emitted.
6398         (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
6399         instead of s390_compare_emitted.
6400         * config/s390/s390.md (cmpcc): New.
6401         (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
6402         CC_REGNUM, do not pretend it's set.
6403         (sync_compare_and_swap_cc*): Delete.
6404         * config/s390/predicates.md (cc_reg_operand): New.
6405
6406         * expr.c (sync_compare_and_swap_cc): Delete.
6407         * optabs.h (sync_compare_and_swap_cc): Delete.
6408         * optabs.c (prepare_cmp_insn): Ignore which specific CCmode
6409         is being used with can_compare_p.
6410         (emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
6411         (find_cc_set): New.
6412         (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
6413         look for a MODE_CC set instead.  Use emit_store_flag.
6414         (expand_compare_and_swap_loop): Likewise, with some additional
6415         complication to avoid a force_reg when useless.  Use
6416         emit_cmp_and_jump_insns.
6417         * genopinit.c (optabs): Delete sync_compare_and_swap_cc.
6418         * doc/md.texi (sync_compare_and_swap_cc): Merge with
6419         sync_compare_and_swap documentation.
6420
6421 2009-04-09  Jan Hubicka  <jh@suse.cz>
6422
6423         * except.c (find_prev_try): Break out from ....
6424         (duplicate_eh_regions): ... here; properly update prev_try pointers
6425         when duplication part of tree.
6426         (dump_eh_tree): Improve dumping.
6427         (verify_eh_region): New.
6428         (verify_eh_tree): Use it.
6429
6430 2009-04-06  Richard Guenther  <rguenther@suse.de>
6431
6432         * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
6433         &ARRAY addresses by adjusting their types and prepending
6434         a conversion.
6435         * tree-cfg.c (verify_gimple_assign_single): Verify that
6436         addresses are correct.
6437
6438 2009-04-09  Richard Guenther  <rguenther@suse.de>
6439
6440         * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
6441         indices into an array reference if possible.
6442         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
6443         Fold POINTER_PLUS_EXPR statements with invariant address.
6444
6445 2009-04-09  Alan Modra  <amodra@bigpond.net.au>
6446
6447         PR target/39634
6448         * config.gcc (powerpc64-*-linux*): Always build biarch.
6449
6450 2009-04-09  Joseph Myers  <joseph@codesourcery.com>
6451
6452         PR c/39613
6453         * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
6454         it and pedwarn if this results in an INTEGER_CST.
6455
6456 2009-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6457
6458         * doc/install.texi: Update minimum GMP version.  Remove obsolete
6459         text in MPFR section.
6460
6461 2009-04-08  Jakub Jelinek  <jakub@redhat.com>
6462
6463         * dwarf2out.c (class_scope_p): New static inline.
6464         (class_or_namespace_scope_p): Use it.
6465         (gen_variable_die): Use DW_TAG_member tag for static data member
6466         declarations instead of DW_TAG_variable.
6467
6468         PR middle-end/39573
6469         * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls
6470         variables.
6471
6472 2009-04-08  Richard Guenther  <rguenther@suse.de>
6473
6474         * tree-ssa-sccvn.c (valueize_refs): Do not continue to
6475         valueize random data.
6476
6477 2009-04-08  David Edelsohn  <edelsohn@gnu.org>
6478
6479         * config.gcc (aix tm_file):  Add aix-stdint.h.
6480         (aix tm clause use_gcc_stdint):  Set to wrap.
6481         * config/rs6000/aix-stdint.h:  New file.
6482
6483 2009-04-08  Richard Guenther  <rguenther@suse.de>
6484
6485         PR middle-end/36291
6486         * tree-dfa.c (add_referenced_var): Do not recurse into
6487         global initializers.
6488         * tree-ssa-ccp.c (get_symbol_constant_value): Add newly
6489         exposed variables.
6490         (fold_const_aggregate_ref): Likewise.
6491
6492 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
6493
6494         * recog.c (ordered_comparison_operator): New.
6495         * gensupport.c (std_preds): Add it.
6496         * doc/md.texi (Machine-Independent Predicates): Document it.
6497
6498 2009-04-08  Jan Hubicka  <jh@suse.cz>
6499
6500         * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
6501         * function.h (rtl_eh): Remove exception_handler_label_map.
6502         * except.c (ehl_hash, ehl_eq, add_ehl_entry,
6503         remove_exception_handler_label, for_each_eh_label_1): Remove.
6504         (rtl_remove_unreachable_regions): Remove.
6505         (convert_from_eh_region_ranges): Do not remove unreachable regions.
6506         (find_exception_handler_labels): Don't build the hashtable.
6507         (maybe_remove_eh_handler): Remove.
6508         (for_each_eh_label): Rewrite to walk the tree.
6509         (rest_of_handle_eh): Do not cleanup cfg prior EH construction.
6510         * except.h (maybe_remove_eh_handler): Remove.
6511         * passes.c (init_optimization_passes): Schedule second EH cleanup
6512         before out-of-ssa.
6513         * cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
6514         cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
6515
6516 2009-04-08  Paolo Bonzini  <bonzini@gnu.org>
6517
6518         * genoutput.c (validate_optab_operands): New.
6519         (gen_insn, gen_expand): Call it.
6520
6521         * genflags.c (gen_insn): Detect misused iterators.
6522         (main): Pass line_no to gen_insn, exit with status 1 on error.
6523
6524         * genextract.c (line_no): Make global.
6525         (VEC_safe_set_locstr): Change assertion to error message.
6526         (main): Exit with status 1 on error.
6527
6528 2009-04-08  Joseph Myers  <joseph@codesourcery.com>
6529
6530         PR c/39614
6531         PR c/39673
6532         * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
6533         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
6534         EXPR_INT_CONST_OPERANDS): Remove duplicate definitions.
6535         * c-convert.c (convert): Do not call fold on results of conversion
6536         functions when the result is a C_MAYBE_CONST_EXPR.
6537         * c-parser.c (c_parser_postfix_expression): Do not fold condition
6538         of __builtin_choose_expr.
6539         * c-typeck.c (remove_c_maybe_const_expr): New.
6540         (build_unary_op, build_conditional_expr, build_compound_expr,
6541         build_binary_op, c_objc_common_truthvalue_conversion): Call
6542         remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with
6543         integer operands.
6544
6545 2009-04-08  Bingfeng Mei  <bmei@broadcom.com>
6546
6547         * fold-const.c (const_binop): Combine two VECTOR_CST under operation
6548         CODE to produce a new one. Add a prototype to use fold_convert_const
6549
6550 2009-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
6551
6552         PR bootstrap/39660
6553         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't
6554         mix declarations and code.
6555
6556 2009-04-08  Ben Elliston  <bje@au.ibm.com>
6557
6558         * gcc.c: Replace `CC' with `GCC' throughout.
6559
6560 2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
6561
6562         * doc/invoke.texi: Document Atom support.
6563
6564 2009-04-07  Jason Merrill  <jason@redhat.com>
6565
6566         PR c++/25185
6567         * c-common.h, c-common.c: Add flag_pretty_templates.
6568         * c-opts.c (c_common_handle_option): Set it.
6569         * c.opt: Add -fno-pretty-templates.
6570         * doc/invoke.texi (C++ Dialect Options): Likewise.
6571
6572 2009-04-07  Uros Bizjak  <ubizjak@gmail.com>
6573
6574         * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ.
6575         (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ.
6576         (ia64_expand_builtin): Likewise.
6577
6578 2009-04-07  Martin Jambor  <mjambor@suse.cz>
6579
6580         * tree-ssa-alias.c (refs_may_alias_p_1): Check for
6581         is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant
6582         ADDR_EXPRS are include too.
6583
6584 2009-04-07  Richard Guenther  <rguenther@suse.de>
6585
6586         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased
6587         decls are only used if passes as parameters or if they are
6588         local statics and the call is not to a builtin.
6589         (call_may_clobber_ref_p_1): Likewise.
6590
6591 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
6592
6593         * expr.c (do_store_flag): Remove last argument.  Simplify code
6594         to avoid duplication of tests already done by can_compare_p.
6595         (expand_expr_real_1): Adjust caller.
6596
6597 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
6598
6599         * optabs.c (can_compare_p): Test the predicate of a
6600         cbranch and cstore pattern.
6601
6602 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
6603
6604         * expr.c (convert_move): Use emit_store_flag instead of
6605         "emulating" it.
6606
6607 2009-04-07  Paolo Bonzini  <bonzini@gnu.org>
6608
6609         * config/i386/i386.c (ix86_compare_emitted): Remove.
6610         (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC
6611         ix86_compare_op0 like ix86_compare_emitted used to be handled.
6612         * config/i386/i386.h (ix86_compare_emitted): Remove.
6613         * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0
6614         instead of ix86_compare_emitted.
6615         * config/i386/sync.md (sync_compare_and_swap_cc): Likewise.
6616
6617 2009-04-07  Andrew Stubbs  <ams@codesourcery.com>
6618
6619         * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file.
6620         Add t-sysroot-suffix to tmake_file.
6621         * config/print-sysroot-suffix.sh: New file.
6622         * config/t-sysroot-suffix: New file.
6623
6624 2009-04-07  Ben Elliston  <bje@au.ibm.com>
6625
6626         * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf,
6627         as the latter produces a warning when the target does not support
6628         infinity.
6629
6630 2009-04-07  Ben Elliston  <bje@au.ibm.com>
6631
6632         * dfp.c: Replace type punning assignments with memcpy throughout.
6633         * Makefile.in (dfp.o-warn): Remove.
6634
6635 2009-04-07  Alan Modra  <amodra@bigpond.net.au>
6636
6637         PR target/39634
6638         * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*.
6639         Include soft-fp/t-softfp after rs6000/t-linux64.
6640
6641 2009-04-06  Eric Botcazou  <ebotcazou@adacore.com>
6642
6643         * stor-layout.c (set_sizetype): Use the full precision of their
6644         machine mode for bitsize types.
6645
6646 2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
6647
6648         * config/i386/i386.md: Revert 2 accidental checkins.
6649
6650 2009-04-06  Joey Ye  <joey.ye@intel.com>
6651             Xuepeng Guo  <xuepeng.guo@intel.com>
6652             H.J. Lu  <hongjiu.lu@intel.com>
6653
6654         Atom pipeline model, tuning and insn selection.
6655         * config.gcc (atom): Add atom config options and target.
6656
6657         * config/i386/atom.md: New.
6658
6659         * config/i386/i386.c (atom_cost): New cost.
6660         (m_ATOM): New macro flag.
6661         (initial_ix86_tune_features): Set m_ATOM.
6662         (x86_accumulate_outgoing_args): Likewise.
6663         (x86_arch_always_fancy_math_387): Likewise.
6664         (processor_target): Add Atom cost.
6665         (cpu_names): Add Atom cpu name.
6666         (override_options): Set Atom ISA.
6667         (ix86_issue_rate): New case PROCESSOR_ATOM.
6668         (ix86_adjust_cost): Likewise.
6669
6670         * config/i386/i386.h (TARGET_ATOM): New target macro.
6671         (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
6672         (TARGET_OPT_AGU): New target option.
6673         (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
6674         (processor_type): Add PROCESSOR_ATOM.
6675
6676         * config/i386/i386.md (cpu): Add new value "atom".
6677         (use_carry, movu): New attr.
6678         (atom.md): Include atom.md.
6679         (adddi3_carry_rex64): Set attr "use_carry".
6680         (addqi3_carry): Likewise.
6681         (addhi3_carry): Likewise.
6682         (addsi3_carry): Likewise.
6683         (*addsi3_carry_zext): Likewise.
6684         (subdi3_carry_rex64): Likewise.
6685         (subqi3_carry): Likewise.
6686         (subhi3_carry): Likewise.
6687         (subsi3_carry): Likewise.
6688         (x86_movdicc_0_m1_rex64): Likewise.
6689         (*x86_movdicc_0_m1_se): Likewise.
6690         (x86_movsicc_0_m1): Likewise.
6691         (*x86_movsicc_0_m1_se): Likewise.
6692         (*adddi_1_rex64): Emit add insn as much as possible.
6693         (*addsi_1): Likewise.
6694         (return_internal): Set atom_unit.
6695         (return_internal_long): Likewise.
6696         (return_pop_internal): Likewise.
6697         (*rcpsf2_sse): Set atom_sse_attr attr.
6698         (*qrt<mode>2_sse): Likewise.
6699         (*prefetch_sse): Likewise.
6700
6701         * config/i386/i386-c.c (ix86_target_macros_internal): New case
6702         PROCESSOR_ATOM.
6703         (ix86_target_macros_internal): Likewise.
6704
6705         * config/i386/sse.md (cpu): Set attr "atom_sse_attr".
6706         (*prefetch_sse_rex): Likewise.
6707         (sse_rcpv4sf2): Likewise.
6708         (sse_vmrcpv4sf2): Likewise.
6709         (sse_sqrtv4sf2): Likewise.
6710         (<sse>_vmsqrt<mode>2): Likewise.
6711         (sse_ldmxcsr): Likewise.
6712         (sse_stmxcsr): Likewise.
6713         (*sse_sfence): Likewise.
6714         (sse2_clflush): Likewise.
6715         (*sse2_mfence): Likewise.
6716         (*sse2_lfence): Likewise.
6717         (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu".
6718         (<sse>_movup<ssemodesuffixf2c>): Likewise.
6719         (avx_movdqu<avxmodesuffix>): Likewise.
6720         (avx_lddqu<avxmodesuffix>): Likewise.
6721         (sse2_movntv2di): Change attr "type" to "ssemov".
6722         (sse2_movntsi): Likewise.
6723         (rsqrtv8sf2): Change attr "type" to "sseadd".
6724         (sse3_addsubv2df3): Set attr "atom_unit".
6725         (sse3_h<plusminus_insn>v4sf3): Likewise.
6726         (*sse2_pmaddwd): Likewise.
6727         (*vec_extractv2di_1_rex64): Likewise.
6728         (*vec_extractv2di_1_avx): Likewise.
6729         (sse2_psadbw): Likewise.
6730         (ssse3_phaddwv8hi3): Likewise.
6731         (ssse3_phaddwv4hi3): Likewise.
6732         (ssse3_phadddv4si3): Likewise.
6733         (ssse3_phadddv2si3): Likewise.
6734         (ssse3_phaddswv8hi3): Likewise.
6735         (ssse3_phaddswv4hi3): Likewise.
6736         (ssse3_phsubwv8hi3): Likewise.
6737         (ssse3_phsubwv4hi3): Likewise.
6738         (ssse3_phsubdv4si3): Likewise.
6739         (ssse3_phsubdv2si3): Likewise.
6740         (ssse3_phsubswv8hi3): Likewise.
6741         (ssse3_phsubswv4hi3): Likewise.
6742         (ssse3_pmaddubsw128): Likewise.
6743         (sse3_pmaddubsw: Likewise.
6744         (ssse3_palignrti): Likewise.
6745         (ssse3_palignrdi): Likewise.
6746
6747 2009-04-06  Gerald Pfeifer  <gerald@pfeifer.com>
6748
6749         * doc/install.texi (Specific): Fix two cross-references to MinGW.
6750
6751 2009-04-06  Richard Guenther  <rguenther@suse.de>
6752
6753         PR tree-optimization/28868
6754         * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track
6755         of which PHI results we inserted.
6756         (insert_into_preds_of_block): Record inserted PHIs.
6757         (eliminate): Eliminate redundant PHI nodes.
6758         (init_pre): Init inserted_phi_names.
6759
6760 2009-04-06  Richard Guenther  <rguenther@suse.de>
6761
6762         PR tree-optimization/39643
6763         * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and
6764         IMAGPART_EXPRs of complex constants.
6765         (execute_fold_all_builtins): If we folded a call queue
6766         TODO_update_address_taken.
6767
6768 2009-04-06  Jan Hubicka  <jh@suse.cz>
6769
6770         PR middle-end/39659
6771         * except.c (remove_unreachable_regions): Propagate may_contain_throw
6772         flag.
6773
6774 2009-04-06  Andrew Stubbs  <ams@codesourcery.com>
6775
6776         * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the
6777         delay slot.
6778         (ic_invalidate_array): Likewise.
6779
6780 2009-04-06  Hariharan Sandanagobalane  <hariharan@picochip.com>
6781
6782         * calls.c (emit_library_call_value_1): Fix a problem with parameter
6783         alignment for library calls.
6784
6785 2009-04-06  Danny Smith  <dannysmith@users.sourceforge.net>
6786
6787         * config.gcc (mingw32 tm_file):  Add mingw-stdint.h.
6788         (mingw32 tm clause use_gcc_stdint):  Set to wrap.
6789         * config/i386/mingw-stdint.h:  New file.
6790
6791 2009-04-05  Richard Guenther  <rguenther@suse.de>
6792
6793         PR tree-optimization/39648
6794         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around
6795         our &A vs. &A[0] IL deficiencies.
6796
6797 2009-04-04  Jan Hubicka  <jh@suse.cz>
6798
6799         * except.c (sjlj_find_directly_reachable_regions): Be ready for
6800         removed toplevel regions.
6801         (sjlj_mark_call_sites): Likewise.
6802
6803 2009-04-04  Dave Korn  <dave.korn.cygwin@gmail.com>
6804
6805         * config.gcc (cygwin tm_file):  Add cygwin-stdint.h.
6806         (cygwin tm clause use_gcc_stdint):  Set to wrap.
6807         * config/i386/cygwin-stdint.h:  New file.
6808
6809 2009-04-04  Richard Guenther  <rguenther@suse.de>
6810
6811         * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency.
6812         * tree-ssa-copy.c (init_copy_prop): Do not propagate through
6813         single-argument PHIs if we are in loop-closed SSA form.
6814         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards
6815         for the pre-condition.
6816         (slpeel_tree_peel_loop_to_edge): Likewise.
6817         (vect_build_loop_niters): Take an optional sequence to append stmts.
6818         (vect_generate_tmps_on_preheader): Likewise.
6819         (vect_do_peeling_for_loop_bound): Take extra guards for the
6820         pre-condition.
6821         (vect_do_peeling_for_alignment): Adjust.  Unconditionally apply
6822         the cost model check.
6823         (vect_loop_versioning): Take stmt and stmt list to put pre-condition
6824         guards if we are going to peel.  Do not apply versioning in that case.
6825         * tree-vectorizer.h (vect_loop_versioning): Adjust declaration.
6826         (vect_do_peeling_for_loop_bound): Likewise.
6827         * tree-vect-loop.c (vect_transform_loop): If we are peeling for
6828         loop bound only record extra pre-conditions, do not apply loop
6829         versioning.
6830
6831 2009-04-04  Richard Guenther  <rguenther@suse.de>
6832
6833         * tree-ssa-operands.c (pop_stmt_changes): Remove automatic
6834         renaming code.
6835
6836 2009-04-04  Jan Hubicka  <jh@suse.cz>
6837
6838         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
6839         last_basic_block for size of bb->index indexed array.
6840         * bt-load.c (compute_defs_uses_and_gen, compute_kill,
6841         compute_out, link_btr_uses, build_btr_def_use_webs,
6842         build_btr_def_use_webs, migrate_btr_defs): Likewise.
6843
6844 2009-04-04  Jan Hubicka  <jh@suse.cz>
6845
6846         * except.c (remove_eh_handler_and_replace): Break out from ...
6847         (remove_eh_handler): ... here.
6848         (bring_to_root): New function.
6849         (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime
6850         handled ones, bring others to root of tree.
6851
6852 2009-04-04  Jan Hubicka  <jh@suse.cz>
6853
6854         * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully.
6855         (all_phis_safe_to_merge): New function.
6856         (update_info): New structure.
6857         (make_eh_edge_and_update_phi, update_eh_edges): New functions.
6858         (cleanup_empty_eh): Update SSA if possible.
6859
6860 2009-04-04  Richard Guenther  <rguenther@suse.de>
6861
6862         * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs.
6863         * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0.
6864         (append_vuse): Likewise.
6865
6866 2009-04-04  Jakub Jelinek  <jakub@redhat.com>
6867
6868         * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value.
6869         * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED
6870         instead of REG_UNSAVED for DW_CFA_undefined.
6871         (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED.
6872         (uw_update_context): If RA column is REG_UNDEFINED, mark it as
6873         outermost frame.
6874
6875 2009-04-04  Richard Earnshaw  <rearnsha@arm.com>
6876
6877         PR target/39501
6878         * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT.
6879         * testsuite/gcc.c-torture/execute/pr39501.c: New file.
6880         * testsuite/gcc.c-torture/execute/pr39501.x: New file.
6881
6882 2009-04-04  Richard Guenther  <rguenther@suse.de>
6883
6884         PR tree-optimization/8781
6885         PR tree-optimization/37892
6886         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare.
6887         * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function.
6888         (valueize_refs): Call it for *& valueizations.
6889         (shared_reference_ops_from_ref): Rename to ...
6890         (valueize_shared_reference_ops_from_ref): ... this and valueize.
6891         (shared_reference_ops_from_call): Rename to ...
6892         (valueize_shared_reference_ops_from_call): ... this and valueize.
6893         (vn_reference_lookup): Update.
6894         (visit_reference_op_call): Likewise.
6895         * tree-ssa-pre.c (phi_translate_1): Fold *&.
6896         (eliminate): Value-replace the call address in call statements.
6897
6898 2009-04-04  Richard Guenther  <rguenther@suse.de>
6899
6900         PR tree-optimization/39636
6901         * tree-ssa-forwprop.c
6902         (forward_propagate_addr_into_variable_array_index): Check for
6903         GIMPLE_ASSIGN before accessing the rhs code.
6904
6905 2009-04-03  Jason Merrill  <jason@redhat.com>
6906
6907         * stor-layout.c (set_sizetype): Set TYPE_CANONICAL.
6908
6909 2009-04-03  Steve Ellcey  <sje@cup.hp.com>
6910
6911         * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2,
6912         truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2,
6913         fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2,
6914         floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2,
6915         fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal,
6916         smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf,
6917         divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal,
6918         umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2,
6919         *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4,
6920         *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr,
6921         adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2,
6922         smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc,
6923         *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf,
6924         *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3,
6925         sqrtxf2, sqrtxf2_internal_thr, *recip_approx):
6926         Use fr_reg_or_fp01_operand instead of fr_register_operand
6927
6928         * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2,
6929         recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat,
6930         divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto.
6931
6932 2009-04-03  Vladimir Makarov  <vmakarov@redhat.com>
6933
6934         PR rtl-optimization/39607
6935         PR rtl-optimization/39631
6936
6937         Revert:
6938
6939         2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
6940         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
6941         instead of DF_LR_OUT.
6942         * ira-lives.c (process_bb_node_lives): Ditto.
6943         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
6944         instead of DF_LR_{OUT,IN}.
6945         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
6946         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
6947
6948 2009-04-03  Steven Bosscher  <steven@gcc.gnu.org>
6949
6950         * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp.
6951         (execute_lower_omp): Always run but take the short way out if -fopenmp
6952         is not given.
6953         (gate_lower_omp): Remove, forcing the pass manager to always run the
6954         pass and always set PROP_gimple_lomp.
6955         (pass_lower_omp): Remove gate function.
6956         * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide
6957         PROP_trees.  Instead, require it.
6958         * ipa-cp.c (pass_ipa_cp): Likewise.
6959         * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg.
6960         (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem.
6961         * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg
6962         and PROP_gimple_leh.
6963
6964 2009-04-03  Richard Guenther  <rguenther@suse.de>
6965
6966         PR middle-end/13146
6967         PR tree-optimization/23940
6968         PR tree-optimization/33237
6969         PR middle-end/33974
6970         PR middle-end/34093
6971         PR tree-optimization/36201
6972         PR tree-optimization/36230
6973         PR tree-optimization/38049
6974         PR tree-optimization/38207
6975         PR tree-optimization/38230
6976         PR tree-optimization/38301
6977         PR tree-optimization/38585
6978         PR middle-end/38895
6979         PR tree-optimization/38985
6980         PR tree-optimization/39299
6981         * tree-ssa-structalias.h: Remove.
6982         * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
6983         (NULL_DEF_OPERAND_P): Make of type def_operand_p.
6984         (struct vuse_element_d): Remove.
6985         (struct vuse_vec_d): Likewise.
6986         (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
6987         VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
6988         SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
6989         VUSE_ELEMENT_VAR): Likewise.
6990         (struct voptype_d): Likewise.
6991         (NUM_VOP_FREE_BUCKETS): Likewise.
6992         (struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
6993         (struct stmt_operands_d): Remove.
6994         (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
6995         VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
6996         VDEF_NUM, VDEF_VECT): Likewise.
6997         (copy_virtual_operands): Remove.
6998         (operand_build_cmp): Likewise.
6999         (create_ssa_artificial_load_stmt): Likewise.
7000         (enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
7001         (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
7002         vuse_index and mayuse_index members.  Pack and move done and iter_type
7003         members to the front.
7004         (SSA_OP_VMAYUSE): Remove.
7005         (SSA_OP_VIRTUAL_USES): Adjust.
7006         (FOR_EACH_SSA_VDEF_OPERAND): Remove.
7007         (unlink_stmt_vdef): Declare.
7008         (add_to_addressable_set): Remove.
7009         * tree-vrp.c (stmt_interesting_for_vrp): Adjust.
7010         (vrp_visit_stmt): Likewise.
7011         * doc/tree-ssa.texi (Alias analysis): Update.
7012         * doc/invoke.texi (max-aliased-vops): Remove docs.
7013         (avg-aliased-vops): Likewise.
7014         * tree-into-ssa.c (syms_to_rename): Remove.
7015         (need_to_update_vops_p): Likewise.
7016         (need_to_initialize_update_ssa_p): Rename to ...
7017         (update_ssa_initialized_fn): ... this.  Track function we are
7018         initialized for.
7019         (symbol_marked_for_renaming): Simplify.
7020         (add_new_name_mapping): Do not set need_to_update_vops_p.
7021         (dump_currdefs): Use SYMS_TO_RENAME.
7022         (rewrite_update_stmt): Always walk all uses/defs.
7023         (dump_update_ssa): Adjust.
7024         (init_update_ssa): Take function argument.  Track what we are
7025         initialized for.
7026         (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
7027         (create_new_def_for): Initialize for cfun, assert we are initialized
7028         for cfun.
7029         (mark_sym_for_renaming): Simplify.
7030         (mark_set_for_renaming): Do not initialize update-ssa.
7031         (need_ssa_update_p): Simplify.  Take function argument.
7032         (name_mappings_registered_p): Assert we ask for the correct function.
7033         (name_registered_for_update_p): Likewise.
7034         (ssa_names_to_replace): Likewise.
7035         (release_ssa_name_after_update_ssa): Likewise.
7036         (update_ssa): Likewise.  Use SYMS_TO_RENAME.
7037         (dump_decl_set): Do not print a newline.
7038         (debug_decl_set): Do it here.
7039         (dump_update_ssa): And here.
7040         * tree-ssa-loop-im.c (move_computations): Adjust.
7041         (movement_possibility): Likewise.
7042         (determine_max_movement): Likewise.
7043         (gather_mem_refs_stmt): Likewise.
7044         * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
7045         or NAME_MEMORY_TAG.
7046         * tree-complex.c (update_all_vops): Remove.
7047         (expand_complex_move): Adjust.
7048         * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
7049         Simplify test for memory referencing statement.  Exclude
7050         non-invariant ADDR_EXPRs.
7051         * tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
7052         * tree-loop-distribution.c (generate_memset_zero): Adjust.
7053         (rdg_flag_uses): Likewise.
7054         * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
7055         related code.
7056         (tree_optimize_tail_calls_1): Also split the
7057         edge from the entry block if we have degenerate PHI nodes in
7058         the first basic block.
7059         * tree.c (init_ttree): Remove memory-tag related code.
7060         (tree_code_size): Likewise.
7061         (tree_node_structure): Likewise.
7062         (build7_stat): Re-write to be build6_stat.
7063         * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
7064         (SSA_VAR_P): Adjust.
7065         (struct tree_memory_tag): Remove.
7066         (struct tree_memory_partition_tag): Likewise.
7067         (union tree_node): Adjust.
7068         (build7): Re-write to be build6.
7069         * tree-pass.h (pass_reset_cc_flags): Remove.
7070         (TODO_update_address_taken): New flag.
7071         (pass_simple_dse): Remove.
7072         * ipa-cp.c (ipcp_update_callgraph): Update SSA form.
7073         * params.h (MAX_ALIASED_VOPS): Remove.
7074         (AVG_ALIASED_VOPS): Likewise.
7075         * omp-low.c (expand_omp_taskreg): Update SSA form.
7076         * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
7077         aliases the lhs in a copy stmt.
7078         * tree-ssa-dse.c (struct address_walk_data): Remove.
7079         (memory_ssa_name_same): Likewise.
7080         (memory_address_same): Likewise.
7081         (get_kill_of_stmt_lhs): Likewise.
7082         (dse_possible_dead_store_p): Simplify, use the oracle.  Handle
7083         unused stores.  Look through PHI nodes into post-dominated regions.
7084         (dse_optimize_stmt): Simplify.  Properly remove stores.
7085         (tree_ssa_dse): Compute dominators.
7086         (execute_simple_dse): Remove.
7087         (pass_simple_dse): Likewise.
7088         * ipa-reference.c (scan_stmt_for_static_refs): Open-code
7089         gimple_loaded_syms and gimple_stored_syms computation.
7090         * toplev.c (dump_memory_report): Dump alias and pta stats.
7091         * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
7092         (vn_reference_eq): Likewise.
7093         (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
7094         copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
7095         valueize_vuses): Remove.
7096         (get_def_ref_stmt_vuses): Simplify.  Rename to ...
7097         (get_def_ref_stmt_vuse): ... this.
7098         (vn_reference_lookup_2): New function.
7099         (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
7100         walking equivalent vuses.  Simplify.
7101         (vn_reference_lookup): Likewise.
7102         (vn_reference_insert): Likewise.
7103         (vn_reference_insert_pieces): Likewise.
7104         (visit_reference_op_call): Simplify.
7105         (visit_reference_op_load): Likewise.
7106         (visit_reference_op_store): Likewise.
7107         (init_scc_vn): Remove shared_lookup_vuses initialization.
7108         (free_scc_vn): Remove shared_lookup_vuses freeing.
7109         (sort_vuses, sort_vuses_heap): Remove.
7110         (get_ref_from_reference_ops): Export.
7111         * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
7112         vector with single vuse pointer.
7113         (vn_reference_lookup_pieces, vn_reference_lookup,
7114         vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
7115         (shared_vuses_from_stmt): Remove.
7116         (get_ref_from_reference_ops): Declare.
7117         * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
7118         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
7119         memory-tag related code.
7120         * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
7121         (likely_value): Add comment, skip static-chain of call statements.
7122         (surely_varying_stmt_p): Adjust.
7123         (gimplify_and_update_call_from_tree): Likewise.
7124         (execute_fold_all_builtins): Do not rebuild alias info.
7125         (gimplify_and_update_call_from_tree): Properly update VOPs.
7126         * tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
7127         (copy_ref_info): Remove memory-tag related code.
7128         * tree-call-cdce.c (tree_call_cdce): Rename the VOP.
7129         * ipa-pure-const.c (check_decl): Remove memory-tag related code.
7130         (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
7131         computation.
7132         * tree-ssa-dom.c (gimple_p): Remove typedef.
7133         (eliminate_redundant_computations): Adjust.
7134         (record_equivalences_from_stmt): Likewise.
7135         (avail_expr_hash): Likewise.
7136         (avail_expr_eq): Likewise.
7137         * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs.
7138         (stmt_makes_single_load): Likewise.
7139         (stmt_makes_single_store): Likewise.
7140         * tree-ssa-alias.c: Rewrite completely.
7141         (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
7142         debug_mem_sym_stats, dump_mem_sym_stats_for_var,
7143         debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
7144         delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
7145         dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
7146         Remove public functions.
7147         (pass_reset_cc_flags): Remove.
7148         (pass_build_alias): Move ...
7149         * tree-ssa-structalias.c (pass_build_alias): ... here.
7150         * tree-ssa-alias.c (may_be_aliased): Move ...
7151         * tree-flow-inline.h (may_be_aliased): ... here.
7152         tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
7153         count_uses_and_derefs): Move ...
7154         * gimple.c: ... here.
7155         * gimple.h (count_uses_and_derefs): Declare.
7156         * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
7157         ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
7158         same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
7159         indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
7160         ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
7161         call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
7162         get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
7163         New functions.
7164         * tree-dfa.c (refs_may_alias_p): Move ...
7165         * tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
7166         * tree-ssa-alias.h: New file.
7167         * tree-ssa-sink.c (is_hidden_global_store): Adjust.
7168         (statement_sink_location): Likewise.
7169         * opts.c (decode_options): Do not adjust max-aliased-vops or
7170         avg-aliased-vops values.
7171         * timevar.def (TV_TREE_MAY_ALIAS): Remove.
7172         (TV_CALL_CLOBBER): Likewise.
7173         (TV_FLOW_SENSITIVE): Likewise.
7174         (TV_FLOW_INSENSITIVE): Likewise.
7175         (TV_MEMORY_PARTITIONING): Likewise.
7176         (TV_ALIAS_STMT_WALK): New timevar.
7177         * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
7178         * tree-ssa-address.c (create_mem_ref_raw): Use build6.
7179         (get_address_description): Remove memory-tag related code.
7180         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
7181         * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
7182         * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
7183         and immediate uses in statements.  Document.
7184         * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
7185         (dump_symbols): Remove.
7186         (dump_gimple_mem_ops): Do not dump loaded or stored syms.
7187         * alias.c (get_deref_alias_set): New function split out from ...
7188         (get_alias_set): ... here.
7189         * alias.h (get_deref_alias_set): Declare.
7190         * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
7191         type parameter.  Remove restrict pointer handling.  Create a
7192         ref-all pointer in case type-based alias sets do not conflict.
7193         (vect_analyze_data_refs): Remove SMT related code.
7194         * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
7195         (vectorizable_load): Likewise.
7196         * tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
7197         (DR_SYMBOL_TAG, DR_VOPS): Remove.
7198         * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
7199         Ignore vops and SMTs.
7200         (dr_analyze_alias): Likewise..
7201         (free_data_ref): Likewise.
7202         (create_data_ref): Likewise.
7203         (analyze_all_data_dependences): Likewise.
7204         (get_references_in_stmt): Adjust.
7205         * tree-flow-inline.h (gimple_aliases_computed_p,
7206         gimple_addressable_vars, gimple_call_clobbered_vars,
7207         gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
7208         factoring_name_p, mark_call_clobbered, clear_call_clobbered,
7209         compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
7210         gimple_mem_ref_stats): Remove.
7211         (gimple_vop): New function.
7212         (op_iter_next_use): Remove vuses and mayuses cases.
7213         (op_iter_next_def): Remove vdefs case.
7214         (op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
7215         (clear_and_done_ssa_iter): Do not set removed fields.
7216         (op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
7217         Assert we are not iterating over vuses or vdefs if not also
7218         iterating over uses or defs.
7219         (op_iter_init_use): Likewise.
7220         (op_iter_init_def): Likewise.
7221         (op_iter_next_vdef): Remove.
7222         (op_iter_next_mustdef): Likewise.
7223         (op_iter_init_vdef): Likewise.
7224         (compare_ssa_operands_equal): Likewise.
7225         (link_use_stmts_after): Handle vuse operand.
7226         (is_call_used): Use is_call_clobbered.
7227         (is_call_clobbered): Global variables are always call clobbered,
7228         query the call-clobbers bitmap.
7229         (mark_call_clobbered): Ignore global variables.
7230         (clear_call_clobbered): Likewise.
7231         * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
7232         virtual operands sanity check.
7233         * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
7234         Remove.
7235         (TARGET_MEM_REF): Remove TMR_TAG operand.
7236         * tree-dfa.c (add_referenced_var): Initialize call-clobber state.
7237         Remove call-clobber related code.
7238         (remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
7239         (dump_variable): Do not dump SMTs, memory stats, may-aliases or
7240         partitions or escape reason.
7241         (get_single_def_stmt, get_single_def_stmt_from_phi,
7242         get_single_def_stmt_with_phi): Remove.
7243         (dump_referenced_vars): Tidy.
7244         (get_ref_base_and_extent): Allow bare decls.
7245         (collect_dfa_stats): Adjust.
7246         * graphite.c (rename_variables_in_stmt): Adjust.
7247         (graphite_copy_stmts_from_block): Likewise.
7248         (translate_clast): Likewise.
7249         * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
7250         (EXPR_DIES): New.
7251         (translate_vuse_through_block): Use the oracle.
7252         (phi_translate_1): Adjust.
7253         (value_dies_in_block_x): Use the oracle.  Cache the outcome
7254         in EXPR_DIES.
7255         (valid_in_sets): Check if the VUSE for
7256         a REFERENCE is available.
7257         (eliminate): Do not remove stmts during elimination,
7258         instead queue and remove them afterwards.
7259         (do_pre): Do not rebuild alias info.
7260         (pass_pre): Run TODO_rebuild_alias before PRE.
7261         * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
7262         * tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
7263         (mark_all_v_defs_stmt): Remove.
7264         (mark_all_v_defs_seq): Adjust.
7265         (sra_replace): Likewise.
7266         (scalarize_use): Likewise.
7267         (scalarize_copy): Likewise.
7268         (scalarize_init): Likewise.
7269         (scalarize_ldst): Likewise.
7270         (todoflags): Remove.
7271         (tree_sra): Do not rebuild alias info.
7272         (tree_sra_early): Adjust.
7273         (pass_sra): Run TODO_update_address_taken before SRA.
7274         * tree-predcom.c (set_alias_info): Remove.
7275         (prepare_initializers_chain): Do not call it.
7276         (mark_virtual_ops_for_renaming): Adjust.
7277         (mark_virtual_ops_for_renaming_list): Remove.
7278         (initialize_root_vars): Adjust.
7279         (initialize_root_vars_lm): Likewise.
7280         (prepare_initializers_chain): Likewise.
7281         * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
7282         (may_propagate_copy_into_stmt): Likewise.
7283         (merge_alias_info): Do nothing for now.
7284         (propagate_tree_value_into_stmt): Adjust.
7285         (stmt_may_generate_copy): Likewise.
7286         * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
7287         not mark symbols for renaming.
7288         (forward_propagate_addr_expr): Match up push/pop_stmt_changes
7289         with the same statement, make sure to update the new pointed-to one.
7290         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
7291         call statements, do not mark symbols for renaming.
7292         (mark_operand_necessary): Dump something.
7293         (ref_may_be_aliased): New function.
7294         (mark_aliased_reaching_defs_necessary_1): New helper function.
7295         (mark_aliased_reaching_defs_necessary): Likewise.
7296         (mark_all_reaching_defs_necessary_1): Likewise.
7297         (mark_all_reaching_defs_necessary): Likewise.
7298         (propagate_necessity): Do not process virtual PHIs.  For
7299         non-aliased loads mark all reaching definitions as necessary.
7300         For aliased loads and stores mark the immediate dominating
7301         aliased clobbers as necessary.
7302         (visited): New global static.
7303         (perform_tree_ssa_dce): Free visited bitmap after propagating
7304         necessity.
7305         (remove_dead_phis): Perform simple dead virtual PHI removal.
7306         (remove_dead_stmt): Properly unlink virtual operands when
7307         removing stores.
7308         (eliminate_unnecessary_stmts): Schedule PHI removal after
7309         stmt removal.
7310         * tree-ssa-ter.c (is_replaceable_p): Adjust.
7311         (process_replaceable): Likewise.
7312         (find_replaceable_in_bb): Likewise.
7313         * tree-ssa.c (verify_ssa_name): Verify all VOPs are
7314         based on the single gimple vop.
7315         (verify_flow_insensitive_alias_info): Remove.
7316         (verify_flow_sensitive_alias_info): Likewise.
7317         (verify_call_clobbering): Likewise.
7318         (verify_memory_partitions): Likewise.
7319         (verify_alias_info): Likewise.
7320         (verify_ssa): Adjust..
7321         (execute_update_addresses_taken): Export.  Update SSA
7322         manually.  Optimize only when optimizing.  Use a local bitmap.
7323         (pass_update_address_taken): Remove TODO_update_ssa, add
7324         TODO_dump_func.
7325         (pass_update_address_taken): Just use TODO_update_address_taken.
7326         (init_tree_ssa): Do not initialize addressable_vars.
7327         (verify_ssa): Verify new VUSE / VDEF properties.
7328         Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
7329         Do not call verify_alias_info.
7330         (delete_tree_ssa): Clear the VUSE, VDEF operands.
7331         Do not free the loaded and stored syms bitmaps.  Reset the escaped
7332         and callused solutions.  Do not free addressable_vars.
7333         Remove memory-tag related code.
7334         (warn_uninitialized_var): Aliases are always available.
7335         * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
7336         * lambda-code.c (can_put_in_inner_loop): Adjust.
7337         (can_put_after_inner_loop): Likewise.
7338         (perfect_nestify): Likewise.
7339         * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
7340         (vect_gen_widened_results_half): Remove CALL_EXPR handling.
7341         (vectorizable_conversion): Do not mark symbols for renaming.
7342         * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
7343         (expand_call_inline): Unlink the calls virtual operands before
7344         replacing it.
7345         (tree_function_versioning): Do not call update_ssa if we are not
7346         updating clones.  Simplify.
7347         * tree-ssa-phiprop.c (phivn_valid_p): Adjust.
7348         (propagate_with_phi): Likewise..
7349         * tree-outof-ssa.c (create_temp): Remove memory tag and call
7350         clobber code.  Assert we are not aliased or global.
7351         * tree-flow.h: Include tree-ssa-alias.h
7352         (enum escape_type): Remove.
7353         (struct mem_sym_stats_d): Likewise.
7354         (struct mem_ref_stats_d): Likewise.
7355         (struct gimple_df): Add vop member.  Remove global_var,
7356         call_clobbered_vars, call_used_vars, addressable_vars,
7357         aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
7358         escaped and callused members.
7359         (struct ptr_info_def): Remove all members, add points-to solution
7360         member pt.
7361         (struct var_ann_d): Remove in_vuse_list, in_vdef_list,
7362         call_clobbered, escape_mask, mpt and symbol_mem_tag members.
7363         * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
7364         (tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
7365         (tree-ssa-alias.o): Likewise.
7366         (toplev.o): Add tree-ssa-alias.h
7367         (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
7368         * gimple.c (gimple_set_bb): Fix off-by-one error.
7369         (is_gimple_reg): Do not handle memory tags.
7370         (gimple_copy): Also copy virtual operands.
7371         Delay updating the statement.  Do not reset loaded and stored syms.
7372         (gimple_set_stored_syms): Remove.
7373         (gimple_set_loaded_syms): Likewise.
7374         (gimple_call_copy_skip_args): Copy the virtual operands
7375         and mark the new statement modified.
7376         * tree-ssa-structalias.c (may_alias_p): Remove.
7377         (set_uids_in_ptset): Take the alias set to prune with as
7378         parameter.  Fold in the alias test of may_alias_p.
7379         (compute_points_to_sets): Compute whether a ptr is dereferenced
7380         in a local sbitmap.
7381         (process_constraint): Deal with &ANYTHING on the lhs, reject all
7382         other ADDRESSOF constraints on the lhs.
7383         (get_constraint_for_component_ref): Assert that we don't get
7384         ADDRESSOF constraints from the base of the reference.
7385         Properly generate UNKNOWN_OFFSET for DEREF if needed.
7386         (struct variable_info): Remove collapsed_to member.
7387         (get_varinfo_fc): Remove.
7388         (new_var_info): Do not set collapsed_to.
7389         (dump_constraint): Do not follow cycles.
7390         (dump_constraint_graph): Likewise.
7391         (build_pred_graph): Likewise.
7392         (build_succ_graph): Likewise.
7393         (rewrite_constraints): Likewise.
7394         (do_simple_structure_copy): Remove.
7395         (do_rhs_deref_structure_copy): Remove.
7396         (do_lhs_deref_structure_copy): Remove.
7397         (collapse_rest_of_var): Remove.
7398         (do_structure_copy): Re-implement.
7399         (pta_stats): New global variable.
7400         (dump_pta_stats): New function.
7401         (struct constraint_expr): Make offset signed.
7402         (UNKNOWN_OFFSET): Define special value.
7403         (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
7404         (solution_set_expand): New helper function split out from ...
7405         (do_sd_constraint): ... here.
7406         (solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
7407         (do_ds_constraint): Likewise.
7408         (do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
7409         and CALLUSED = *CALLUSED.
7410         (set_union_with_increment): Make inc argument signed.
7411         (type_safe): Remove.
7412         (get_constraint_for_ptr_offset): Handle unknown and negative
7413         constant offsets.
7414         (first_vi_for_offset): Handle offsets before start.  Bail
7415         out early for offsets beyond the variable extent.
7416         (first_or_preceding_vi_for_offset): New function.
7417         (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
7418         Together with ESCAPED = *ESCAPED this properly computes reachability.
7419         (find_what_var_points_to): New function.
7420         (find_what_p_points_to): Implement in terms of find_what_var_points_to.
7421         (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
7422         pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
7423         pt_solutions_intersect): New functions.
7424         (compute_call_used_vars): Remove.
7425         (compute_may_aliases): New main entry into PTA computation.
7426         * gimple.h (gimple_p): New typedef.
7427         (struct gimple_statement_base): Remove references_memory_p.
7428         (struct gimple_statement_with_memory_ops_base): Remove
7429         vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
7430         members.
7431         (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
7432         gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
7433         gimple_set_references_memory): Remove.
7434         (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
7435         gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
7436         New functions.
7437         * tree-cfg.c (move_block_to_fn): Fix off-by-one error.
7438         (verify_expr): Allow RESULT_DECL.
7439         (gimple_duplicate_bb): Do not copy virtual operands.
7440         (gimple_duplicate_sese_region): Adjust.
7441         (gimple_duplicate_sese_tail): Likewise.
7442         (mark_virtual_ops_in_region): Remove.
7443         (move_sese_region_to_fn): Do not call it.
7444         * passes.c (init_optimization_passes): Remove pass_reset_cc_flags
7445         and pass_simple_dse.
7446         (execute_function_todo): Handle TODO_update_address_taken,
7447         call execute_update_addresses_taken for TODO_rebuild_alias.
7448         (execute_todo): Adjust.
7449         (execute_one_pass): Init dump files early.
7450         * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
7451         call-clobbered.
7452         (create_general_new_stmt): Clear vops.
7453         * tree-ssa-reassoc.c (get_rank): Adjust.
7454         * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
7455         symbols for renaming.
7456         * params.def (PARAM_MAX_ALIASED_VOPS): Remove.
7457         (PARAM_AVG_ALIASED_VOPS): Likewise.
7458         * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
7459         (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
7460         * tree-ssa-operands.c: Simplify for new virtual operand representation.
7461         (operand_build_cmp, copy_virtual_operands,
7462         create_ssa_artificial_load_stmt, add_to_addressable_set,
7463         gimple_add_to_addresses_taken): Remove public functions.
7464         (unlink_stmt_vdef): New function.
7465
7466 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
7467
7468         * config.gcc (powerpc-*-linux*): Merge variants.
7469
7470 2009-04-02  Chao-ying Fu  <fu@mips.com>
7471             James Grosbach  <james.grosbach@microchip.com>
7472
7473         * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc,
7474         num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset,
7475         cop0_sp_offset.
7476         (machine_function): Add interrupt_handler_p, use_shadow_register_set_p,
7477         keep_interrupts_masked_p, use_debug_exception_return_p.
7478         (mips_attribute_table): Add interrupt, use_shadow_register_set,
7479         keep_interrupts_masked, use_debug_exception_return.
7480         (mips_interrupt_type_p, mips_use_shadow_register_set_p,
7481         mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p):
7482         New functions.
7483         (mips_function_ok_for_sibcall): Return false for interrupt handlers.
7484         (mips_print_operand): Process COP0 registers to print $0 .. $31
7485         correctly for GAS to process.
7486         (mips_interrupt_extra_call_saved_reg_p): New function.
7487         (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check
7488         extra registers.
7489         (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
7490         (mips_compute_frame_info): Add supports for interrupt context that
7491         includes doubleword accumulators and COP0 registers.
7492         (mips_for_each_saved_acc): New function.
7493         (mips_for_each_saved_gpr_and_fpr): Change the function name from
7494         mips_for_each_saved_reg.
7495         (mips_save_reg): Save accumulators.
7496         (mips_kernel_reg_p): A new for_each_rtx callback.
7497         (mips_expand_prologue): Support interrupt handlers.
7498         (mips_restore_reg): Restore accumulators.
7499         (mips_expand_epilogue): Support interrupt handlers.
7500         (mips_can_use_return_insn): Return false for interrupt handlers.
7501         (mips_epilogue_uses): New function.
7502         * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI,
7503         UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC.
7504         (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr,
7505         cop0_move): New instructions.
7506         * config/mips/mips-protos.h (mips_epilogue_uses): Declare.
7507         * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New
7508         defines.
7509         (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM):
7510         New defines.
7511         (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines.
7512         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For
7513         interrupt handlers, we use K0 as the temporary register.
7514         (EPILOGUE_USES): Change to a function call.
7515         * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt
7516         handlers, we use K0 as the temporary register.
7517
7518         * doc/extend.texi (Function Attributes): Document interrupt,
7519         use_shadow_register_set, keep_interrupts_masked,
7520         use_debug_exception_return for MIPS attributes.
7521
7522 2009-04-03  Alan Modra  <amodra@bigpond.net.au>
7523
7524         * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file.
7525         Remove a number of t-files from tmake_file.
7526         * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype.
7527         * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define.
7528         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
7529         target_prototype, not TARGET_PROTOTYPE.
7530         (LINK_OS_GNU_SPEC): Define.
7531         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S
7532         and darwin-ldoubdle.c.
7533
7534 2009-04-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
7535
7536         PR driver/39293
7537         * gcc.c (save_temps_flag): Add support for -save-temps=obj.
7538         (cpp_options): Ditto.
7539         (default_compilers): Ditto.
7540         (display_help): Ditto.
7541         (process_command): Ditto.
7542         (do_spec_1): Ditto.
7543         (set_input): Use lbasename instead of duplicate code.
7544         (save_temps_prefix): New static for -save-temps=obj.
7545         (save_temps_length): Ditto.
7546
7547         * doc/invoke.texi (-save-temps=obj): Document new variant to
7548         -save-temps switch.
7549
7550 2009-04-02  Jeff Law  <law@redhat.com>
7551
7552         * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count"
7553         variable.
7554
7555 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7556
7557         * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2.
7558         * configure: Regenerated.
7559
7560 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
7561
7562         * c-decl.c (merge_decls): Make sure newdecl and olddecl don't
7563         share the argument list.
7564
7565 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
7566
7567         Merge
7568
7569         2009-02-12  Diego Novillo  <dnovillo@google.com>
7570
7571         * varpool.c (debug_varpool): New.
7572         * cgraph.h (debug_varpool): Declare.
7573
7574 2009-04-02  Jan Hubicka  <jh@suse.cz>
7575
7576         * passes.c (init_optimization_passes): Remove two copies of ehcleanup
7577         pass.
7578
7579 2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
7580
7581         * config/i386/i386.c (ix86_abi): Move initialization to ...
7582         (override_options): Here.
7583
7584 2009-04-02  Christian Bruel  <christian.bruel@st.com>
7585
7586         * config/sh/sh.c (sh_dwarf_register_span): New function.
7587         (TARGET_DWARF_REGISTER_SPAN): Define.
7588         * config/sh/sh-protos.h (sh_dwarf_register_span): Declare.
7589
7590 2009-04-02  Ira Rosen  <irar@il.ibm.com>
7591
7592         PR tree-optimization/39595
7593         * tree-vect-slp.c (vect_build_slp_tree): Check that the size of
7594         interleaved loads group is not  greater than the SLP group size.
7595
7596 2009-04-02  Rafael Avila de Espindola  <espindola@google.com>
7597
7598         * builtins.c (is_builtin_name): New.
7599         (called_as_built_in): Use is_builtin_name.
7600         * tree.h (is_builtin_name): New.
7601         * varasm.c (incorporeal_function_p): Use is_builtin_name
7602
7603 2009-04-02  Andrew Stubbs  <ams@codesourcery.com>
7604
7605         * config/sh/linux-unwind.h: Disable when inhibit_libc is defined.
7606
7607 2009-04-02  Dodji Seketeli  <dodji@redhat.com>
7608
7609         PR c++/26693
7610         * c-decl.c (clone_underlying_type): Move this ...
7611         * c-common.c (set_underlying_type): ... here.
7612         Also, make sure the function properly sets TYPE_STUB_DECL() on
7613         the newly created typedef variant type.
7614         * c-common.h (is_typedef_decl, set_underlying_type): Declare ...
7615         * c-common.c (is_typedef_decl, set_underlying_type): ... new entry
7616         points.
7617
7618 2009-04-02  Richard Guenther  <rguenther@suse.de>
7619
7620         PR tree-optimization/37221
7621         * tree-flow.h (degenerate_phi_result): Declare.
7622         * tree-ssa-dom.c (degenerate_phi_result): Export.
7623         * tree-scalar-evolution.c (analyze_initial_condition): If
7624         the initial condition is defined by a degenerate PHI node
7625         use the degenerate value.
7626
7627 2009-04-01  Eric Botcazou  <ebotcazou@adacore.com>
7628
7629         PR rtl-optimization/39588
7630         * combine.c (merge_outer_ops): Do not set the constant when this
7631         is not necessary.
7632         (simplify_shift_const_1): Do not modify it either in this case.
7633
7634 2009-04-01  Steven Bosscher  <steven@gcc.gnu.org>
7635
7636         * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1
7637         tuning is deprecated if -mtune value is set to an Itanium1 variant.
7638
7639 2009-04-01  Janis Johnson  <janis187@us.ibm.com>
7640
7641         PR c/29027
7642         * c-lex.c (interpret_float): Default (no suffix) is double.
7643
7644 2009-04-1  Xinliang David Li  <davidxl@google.com>
7645
7646         * config/i386/i386.c (legitimate_constant_p): Recognize
7647         all one vector constant.
7648
7649 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7650
7651         * config/vax/vax.c: Add #includes to silence warnings.
7652         Change #include order to silence two warnings.
7653
7654 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7655
7656         * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit.
7657         (ASM_SPEC): Pass -k to the assembler for PIC code.
7658
7659 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7660
7661         * config.gcc: Add vax-*-linux* to the switch.
7662         * config/vax/linux.h: New file. (TARGET_VERSION,
7663         TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define.
7664
7665 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7666
7667         * config/vax/vax.c (vax_output_int_move, adjacent_operands_p):
7668         Use predicate macros instead of GET_CODE() == foo.
7669         * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3,
7670         ashlsi3, rotrsi3, <unnamed>): Likewise.
7671
7672 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7673
7674         * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi,
7675         jbbccihi, jbbccisi): Remova trailing whitespace.
7676         * config/vax/constraints.md: Likewise.
7677         * config/vax/elf.h: (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
7678         * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise.
7679         * config/vax/predicates.md: Likewise.
7680         * config/vax/vax.c (print_operand_address, vax_output_int_move,
7681         vax_expand_addsub_di_operands, adjacent_operands_p): Likewise.
7682         * config/vax/vax.h: Likewise.
7683         * config/vax/vax.md (nonlocal_goto): Likewise.
7684
7685 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7686
7687         * config/vax/vax.c (vax_float_literal, vax_output_int_move)
7688         (indirectable_address_p, adjacent_operands_p): Add spaces around
7689         braces.
7690         * config/vax/vax-protos.h (adjacent_operands_p): Likewise.
7691
7692 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7693
7694         * config/vax/vax.c (legitimate_constant_address_p,
7695         legitimate_constant_p, indirectable_address_p, nonindexed_address_p,
7696         index_term_p, reg_plus_index_p, legitimate_address_p,
7697         vax_mode_dependent_address_p): Update comments to match functions
7698         modified by the recent int->bool conversion.
7699
7700 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7701
7702         * config/vax/builtins.md: Update copyright message.
7703         * config/vax/constraints.md: Likewise.
7704         * config/vax/netbsd-elf.h: Likewise.
7705         * config/vax/predicates.md: Likewise.
7706         * config/vax/vax-protos.h: Likewise.
7707         * config/vax/vax.c: Likewise.
7708         * config/vax/vax.h: Likewise.
7709         * config/vax/vax.md: Likewise.
7710         * config/vax/vax.opt: Likewise.
7711
7712 2009-04-01  Jan-Benedict Glaw  <jbglaw@jbglaw-dev.homezone.telefonica.de>
7713
7714         * config/vax/builtins.md (ffssi2, ffssi2_internal,
7715         sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention.
7716         * config/vax/constraints.md (B, R): Likewise.
7717         * config/vax/predicates.md (external_memory_operand,
7718         nonimmediate_addsub_di_operand): Likewise.
7719         * config/vax/vax.c (vax_output_int_add): Likewise.
7720         * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value,
7721         untyped_call): Likewise.
7722
7723 2009-04-01  Matt Thomas  <matt@3am-software.com>
7724
7725         * config/vax/predicates.md: New file.
7726         (symbolic_operand, local_symbolic_operand, external_symbolic_operand,
7727         external_const_operand, nonsymbolic_operand, external_memory_operand,
7728         indirect_memory_operand, indexed_memory_operand,
7729         illegal_blk_memory_operand, illegal_addsub_di_memory_operand,
7730         nonimmediate_addsub_di_operand, general_addsub_di_operand): New
7731         predicate.
7732         * config/vax/constraints.md: New file.
7733         (Z0, U06,  U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T):
7734         New constraint.
7735         * config/vax/builtins.md: New file.
7736         (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi,
7737         jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi,
7738         jbbccisi): Define.
7739         * config/vax/vax.opt (mqmath): Add option.
7740         * config/vax/vax.md (isfx): Extend with DI.
7741         (VAXintQH, VAXintQHSD): Define.
7742         (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2,
7743         mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>,
7744         and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2,
7745         one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints.
7746         (movdi): Update constraints and use vax_output_int_move().
7747         (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg,
7748         movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym,
7749         pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>,
7750         nonlocal_goto): New.
7751         (mov<mode>): Extend accepted operand types.
7752         (subdi3_old): Rename from subdi3, change update constraints and use
7753         a new implementation.
7754         * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space.
7755         (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS,
7756         MOVE_RATIO, CLEAR_RATIO): Define.
7757         (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P,
7758         CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete.
7759         (PRINT_OPERAND): Redefine using a function instead of inlined code.
7760         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
7761         (split_quadword_operands): Make static and really allow variable
7762         splitting.
7763         (print_operand_address): Update for PIC generation.
7764         (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract,
7765         indexable_address_p, fixup_mathdi_operand,
7766         vax_expand_addsub_di_operands, adjacent_operands_p): New.
7767         (vax_float_literal, legitimate_constant_p,
7768         indirectable_constant_address_p, index_term_p,
7769         reg_plus_index_p): Return bool instead of int.
7770         (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT
7771         where needed.
7772         (vax_output_int_move, vax_output_int_add): Extend to allow PIC
7773         generation.
7774         (vax_output_conditional_branch): Indent.
7775         (legitimate_constant_address_p, indirectable_constant_address_p,
7776         indirectable_address_p, nonindexed_address_p, legitimate_address_p,
7777         vax_mode_dependent_address_p): Return bool instead of int, update for
7778         PIC generation.
7779         * config/vax/vax-protos.h (legitimate_constant_address_p,
7780         legitimate_constant_p, legitimate_address_p,
7781         vax_mode_dependent_address_p): Change declaration to bool.
7782         (legitimate_pic_operand_p, adjacent_operands_p, print_operand,
7783         vax_expand_addsub_di_operands, vax_output_int_subtract,
7784         vax_output_movmemsi): Declare.
7785         (split_quadword_operands, vax_float_literal): Delete declaration.
7786         * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define.
7787         * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS,
7788         VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT,
7789         ASM_OUTPUT_DWARF_PCREL): Define.
7790         (ASM_SPEC): Change definition to allow PIC generation.
7791
7792 2009-04-01  Steve Ellcey  <sje@cup.hp.com>
7793
7794         * doc/sourcebuild.texi: Update front-end requirements.
7795
7796 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7797
7798         PR target/39226
7799         * config/rs6000/rs6000.md (andsi3_internal5_nomc,
7800         anddi3_internal2_nomc, anddi3_internal3_nomc): Removed.
7801         (booldi3_internal3): Use boolean_or_operator instead of
7802         boolean_operator.
7803
7804 2009-04-01  Joseph Myers  <joseph@codesourcery.com>
7805
7806         PR c/39605
7807         * c-decl.c (grokdeclarator): Pedwarn for file-scope array
7808         declarator whose size is not an integer constant expression but
7809         folds to an integer constant, then treat it as a constant
7810         subsequently.
7811
7812 2009-04-01  Richard Guenther  <rguenther@suse.de>
7813
7814         * fold-const.c (fold_plusminus_mult_expr): Do not fold
7815         i * 4 + 2 to (i * 2 + 1) * 2.
7816
7817 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7818
7819         PR c/37772
7820         * c-parser.c (c_parser_asm_statement): Skip until close paren and
7821         return if c_parser_asm_string_literal returned NULL.
7822
7823 2009-04-01  Nick Clifton  <nickc@redhat.com>
7824
7825         * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not
7826         already defined.
7827         * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c.
7828         * config/m32c/m32c-lib2.c: Remove unused typedefs.  Rename the
7829         other typedefs to avoid conflicts with libgcc2.c.  Define labels
7830         to gain 16-bit bit-manipulation functions from libgcc2.c and then
7831         include it.
7832         * config/m32c/m32c-lib2-trapv.c: New file.  Define labels
7833         to gain 16-bit trapping arithmetic functions from libgcc2.c and
7834         then include it.
7835
7836 2009-04-01  Rafael Avila de Espindola  <espindola@google.com>
7837
7838         * varasm.c (default_function_rodata_section): Declare DOT as
7839         const char*.
7840
7841 2009-04-01  Kai Tietz  <kai.tietz@onevision.com>
7842             Andrey Galkin  <agalkin@hypercom.com>
7843
7844         PR/39492
7845         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
7846         Make object_name unique for each process.
7847
7848 2009-04-01  Jakub Jelinek  <jakub@redhat.com>
7849
7850         PR other/39591
7851         * omp-low.c (remove_exit_barrier): Don't optimize if there are any
7852         addressable variables in the parallel that could go out of scope while
7853         running queued tasks.
7854
7855 2009-04-01  Anatoly Sokolov  <aesok@post.ru>
7856
7857         * config/avr/avr.h (avr_case_values_threshold): Remove declaration.
7858         (CASE_VALUES_THRESHOLD): Redefine.
7859         * config/avr/avr.c (avr_override_options): Remove initialization of
7860         avr_case_values_threshold variable.
7861         (avr_case_values_threshold): Remove variable. Add new function.
7862         * config/avr/avr-protos.h (avr_case_values_threshold): Declare.
7863         * config/avr/avr.opt (mno-tablejump): Remove option.
7864         * doc/invoke.texi (AVR Options): Remove -mno-tablejump.
7865
7866 2009-04-01  DJ Delorie  <dj@redhat.com>
7867
7868         * varasm.c (default_function_rodata_section): Don't assume
7869         anything about where the first '.' in the section name is.
7870
7871 2009-04-01  Alan Modra  <amodra@bigpond.net.au>
7872
7873         * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant
7874         rs6000_emit_stack_tie.
7875
7876 2009-03-31  Ian Lance Taylor  <iant@google.com>
7877
7878         * tree-eh.c (tree_remove_unreachable_handlers): Compare
7879         gimple_code with GIMPLE_RESX, not RESX.
7880
7881 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7882
7883         * c-common.c (c_get_ident): New.
7884         (c_common_nodes_and_builtins): Call it for type names that may be NULL.
7885
7886 2009-04-01  Ben Elliston  <bje@au.ibm.com>
7887
7888         * config/rs6000/sysv4.opt (msdata): Improve option description.
7889
7890 2009-03-31  Steve Ellcey  <sje@cup.hp.com>
7891
7892         * config/ia64/ia64.md (divsf3_internal_lat): Remove.
7893         (divdf3_internal_lat): Remove.
7894         (divxf3_internal_lat): Remove.
7895         (divxf3_internal_thr): Remove.
7896         (divxf): Use divxf3_internal.
7897         * config/ia64/div.md (divsf3_internal_lat): New.
7898         (divdf3_internal_lat): New.
7899         (divxf3_internal): New.
7900
7901 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
7902
7903         PR c/448
7904         * Makefile.in (USE_GCC_STDINT): Define.
7905         (stmp-int-hdrs): Install stdint.h if applicable.
7906         * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
7907         if known.
7908         (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
7909         (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
7910         UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7911         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7912         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7913         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7914         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7915         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7916         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7917         (c_common_nodes_and_builtins): Initialize
7918         underlying_wchar_type_node.  Do not initialize
7919         signed_wchar_type_node or unsigned_wchar_type_node.  Initialize
7920         nodes for new types.
7921         (c_stddef_cpp_builtins): Define macros for new types.
7922         * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
7923         Remove.
7924         (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
7925         CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
7926         CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
7927         CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
7928         CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
7929         CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
7930         CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
7931         CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
7932         CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
7933         (signed_wchar_type_node, unsigned_wchar_type_node): Remove.
7934         (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
7935         int16_type_node, int32_type_node, int64_type_node,
7936         uint8_type_node, uint16_type_node, c_uint32_type_node,
7937         c_uint64_type_node, int_least8_type_node, int_least16_type_node,
7938         int_least32_type_node, int_least64_type_node,
7939         uint_least8_type_node, uint_least16_type_node,
7940         uint_least32_type_node, uint_least64_type_node,
7941         int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
7942         int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
7943         uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
7944         uintptr_type_node): Define.
7945         * c-cppbuiltin.c (builtin_define_constants,
7946         builtin_define_type_minmax): New.
7947         (builtin_define_stdint_macros): Define more macros.
7948         (c_cpp_builtins): Define more limit macros.
7949         (type_suffix): New.
7950         (builtin_define_type_max): Define in terms of
7951         builtin_define_type_minmax.  Remove is_long parameter.  All
7952         callers changed.
7953         * config.gcc (use_gcc_stdint): Define.
7954         (tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
7955         Add newlib-stdint.h for generic targets.
7956         * config/glibc-stdint.h, config/newlib-stdint.h,
7957         ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
7958         * config/m32c/m32c.h (UINTPTR_TYPE): Define.
7959         * config/score/score.h (UINTPTR_TYPE): Define.
7960         * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
7961         INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
7962         UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7963         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7964         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7965         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7966         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7967         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
7968         * config/spu/spu.h (STDINT_LONG32): Define.
7969         * configure.ac (use_gcc_stdint): Substitute.
7970         * configure: Regenerate.
7971         * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
7972         __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
7973         __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
7974         __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
7975         __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
7976         __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
7977         __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
7978         __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
7979         __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
7980         __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
7981         __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
7982         __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
7983         __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
7984         __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
7985         __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
7986         __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
7987         __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
7988         __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
7989         __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
7990         __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
7991         __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
7992         * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
7993         INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
7994         INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
7995         INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
7996         UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
7997         INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
7998         UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
7999         UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
8000
8001 2009-03-31  Bernd Schmidt  <bernd.schmidt@analog.com>
8002
8003         * loop-iv.c (suitable_set_for_replacement): Renamed from
8004         simplify_using_assignment; changed to return bool and to accept new
8005         args DEST and SRC.  Return true iff we find a source/destination pair
8006         that can be used to make a replacement, and fill SRC and DEST if so.
8007         Remove arg ALTERED.  Don't deal with altered regs here.  All callers
8008         changed.
8009         (simplify_using_initial_values): Deal with altered regs here and track
8010         more precisely the effect they have on the validity of our expression.
8011
8012         * loop-iv.c (simplify_using_condition): A condition of the form
8013         (EQ REG CONST) can be used to simply make a substitution.
8014         (simplify_using_initial_values): Keep track of conditions we have seen
8015         and keep using them to simplify new expressions, while applying the
8016         same substitutions to them as to the expression.
8017
8018         * simplify-rtx.c (simplify_relational_operation_1): Simplify
8019         (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with
8020         GEU/LTU reversed.
8021
8022         * loop-iv.c (determine_max_iter): New arg OLD_NITER.  All callers
8023         changed.  Use this when trying to improve the upper bound.
8024         Generate the comparison by using simplify_gen_relational.
8025
8026         * loop-iv.c (simple_rhs_p): Allow more kinds of expressions.
8027
8028         * loop-iv.c (replace_single_def_regs, replace_in_expr): New static
8029         functions.
8030         (simplify_using_assignment, simplify_using_initial_values): Call
8031         replace_in_expr to make replacements.  Call replace_single_def_regs
8032         once on the initial version of the expression.
8033
8034 2009-03-31  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8035
8036         PR target/27237
8037         * doc/invoke.texi (ARM Options): Update documentation for -mthumb.
8038
8039 2009-03-31  Richard Guenther  <rguenther@suse.de>
8040
8041         PR middle-end/31029
8042         * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for
8043         equality comparisons.  Fold C - X CMP X if C % 2 == 1.
8044
8045 2009-03-31  Richard Guenther  <rguenther@suse.de>
8046
8047         * tree.h (div_if_zero_remainder): Declare.
8048         * fold-const.c (div_if_zero_remainder): Export.
8049         * tree-ssa-forwprop.c
8050         (forward_propagate_addr_into_variable_array_index): Handle
8051         constant array index addition outside of the variable index.
8052
8053 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
8054
8055         PR target/39592
8056         * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed
8057         define_splits, floatunssi<mode>2): Require x87 conversions from
8058         DImode to be permitted.
8059
8060 2009-03-31  Joseph Myers  <joseph@codesourcery.com>
8061
8062         PR preprocessor/15638
8063         * c-common.c (c_cpp_error): Handle CPP_DL_FATAL.
8064
8065 2009-03-31  Richard Guenther  <rguenther@suse.de>
8066
8067         PR middle-end/23401
8068         PR middle-end/27810
8069         * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove.
8070         (struct tree_decl_with_vis): Remove gimple_formal_temp member.
8071         * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to
8072         a separate statement.
8073         * gimplify.c (pop_gimplify_context): Remove formal temp handling.
8074         (lookup_tmp_var): Likewise.
8075         (is_gimple_formal_tmp_or_call_rhs): Remove.
8076         (is_gimple_reg_or_call_rhs): Rename to ...
8077         (is_gimple_reg_rhs_or_call): ... this.
8078         (is_gimple_mem_or_call_rhs): Rename to ...
8079         (is_gimple_mem_rhs_or_call): ... this.
8080         (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call.  Set
8081         DECL_GIMPLE_REG_P only if is_formal is true.
8082         (gimplify_compound_lval): Use is_gimple_reg.  Remove workaround
8083         for non-proper post-modify expression gimplification.
8084         (gimplify_self_mod_expr): For post-modify expressions gimplify
8085         the lvalue to a minimal lvalue.
8086         (rhs_predicate_for): Remove formal temp case.
8087         (gimplify_modify_expr_rhs): Likewise.
8088         (gimplify_addr_expr): Use is_gimple_reg.
8089         (gimplify_expr): Remove formal temp cases.
8090         (gimple_regimplify_operands): Likewise.
8091         * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR
8092         and FILTER_EXPR like constants.
8093         * gimple.c (walk_gimple_op): Fix val_only initialization, use
8094         is_gimple_reg.
8095         (is_gimple_formal_tmp_rhs): Remove.
8096         (is_gimple_reg_rhs): Remove special casing.
8097         (is_gimple_mem_rhs): Fix.
8098         (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier.
8099         (is_gimple_formal_tmp_var): Remove.
8100         (is_gimple_formal_tmp_reg): Likewise.
8101         (is_gimple_min_lval): Allow invariant component ref parts.
8102         * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var,
8103         is_gimple_formal_tmp_reg): Remove declarations.
8104         * tree-cfg.c (verify_expr): Verify that variables with address
8105         taken do not have DECL_GIMPLE_REG_P set.
8106         * tree-mudflap.c (mf_build_check_statement_for): Use
8107         force_gimple_operand instead of gimplify_expr.
8108
8109 2009-03-31  Ayal Zaks  <zaks@il.ibm.com>
8110
8111         * modulo-sched.c (sms_schedule_by_order): Pass the actual
8112         schedulable rows to compute_split_row.
8113
8114 2009-03-31  Ben Elliston  <bje@au.ibm.com>
8115
8116         PR target/31635
8117         * config/rs6000/rs6000.c (rs6000_handle_option): Handle
8118         OPT_mvrsave.
8119
8120 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
8121
8122         * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers.
8123         * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check.
8124         * configure: Regenerate.
8125         * config.in: Regenerate.
8126         * config/rs6000/rs6000.opt (mtls-markers): Add.
8127         * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define.
8128         * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter.
8129         (tls_ld_aix, tls_ld_sysv): Likewise.
8130         (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns.
8131         (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise.
8132
8133 2009-03-31  Alan Modra  <amodra@bigpond.net.au>
8134
8135         * config/spu/spu.c (spu_expand_prologue): Delete redundant code.
8136
8137 2009-03-30  Jan Hubicka  <jh@suse.cz>
8138
8139         * tree-eh.c (make_eh_edges): Set probability 100% to first edge
8140         out of RESX.
8141         (tree_remove_unreachable_handlers): Cleanup EH predecestor
8142         detection and label handling.
8143
8144 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
8145
8146         * ira-int.h (ira_allocno): Rename left_conflicts_num to
8147         left_conflicts_size.
8148         (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to
8149         ALLOCNO_LEFT_CONFLICTS_SIZE.
8150
8151         * ira-color.c (allocno_spill_priority, push_allocno_to_stack,
8152         remove_allocno_from_bucket_and_push,
8153         allocno_spill_priority_compare, push_allocnos_to_stack,
8154         setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE
8155         instead of ALLOCNO_LEFT_CONFLICTS_NUM.
8156         (setup_allocno_left_conflicts_num): Ditto.  Rename to
8157         setup_allocno_left_conflicts_size.
8158         (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE
8159         instead of ALLOCNO_LEFT_CONFLICTS_NUM and
8160         setup_allocno_left_conflicts_size instead of
8161         setup_allocno_left_conflicts_num.
8162
8163         * ira-build.c (ira_create_allocno): Use
8164         ALLOCNO_LEFT_CONFLICTS_SIZE instead of
8165         ALLOCNO_LEFT_CONFLICTS_NUM.
8166
8167 2009-03-30  Vladimir Makarov  <vmakarov@redhat.com>
8168
8169         * reload.c (push_reload, find_dummy_reload): Use df_get_live_out
8170         instead of DF_LR_OUT.
8171
8172         * ira-lives.c (process_bb_node_lives): Ditto.
8173
8174         * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in}
8175         instead of DF_LR_{OUT,IN}.
8176
8177         * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto.
8178
8179         * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto.
8180
8181 2009-03-30  Jan Hubicka  <jh@suse.cz>
8182
8183         * except.c (label_to_region_map): Fix thinko.
8184
8185 2009-03-30  Steve Ellcey  <sje@cup.hp.com>
8186
8187         PR middle-end/38237
8188         * tree.h (tree_find_value): New declaration.
8189         * tree.c (tree_find_value): New function.
8190         * varasm.c (assemble_external): Avoid duplicate entries on lists.
8191
8192 2009-03-30  Jakub Jelinek  <jakub@redhat.com>
8193
8194         PR debug/39563
8195         * c-decl.c (struct c_binding): Add locus field.
8196         (bind): Add locus argument, set locus field from it.
8197         (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL,
8198         add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS.
8199         (push_file_scope, pushtag, pushdecl, pushdecl_top_level,
8200         implicitly_declare, undeclared_variable, lookup_label,
8201         declare_label, c_make_fname_decl, c_builtin_function,
8202         c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust
8203         bind callers.
8204
8205 2009-03-30  H.J. Lu  <hongjiu.lu@intel.com>
8206
8207         PR target/38781
8208         * config/i386/i386.c (classify_argument): Check total size of
8209         structure.
8210
8211 2009-03-30  Martin Jambor  <mjambor@suse.cz>
8212
8213         * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST,
8214         IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN,
8215         IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH
8216         respectively.
8217
8218         * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if
8219         seen_variable_array_ref while also traversing a union.
8220
8221         * tree-inline.c (optimize_inline_calls): Do not call
8222         cgraph_node_remove_callees.
8223         * cgraphbuild.c (remove_cgraph_callee_edges): New function.
8224         (pass_remove_cgraph_callee_edges): New variable.
8225         * passes.c (init_optimization_passes): Add
8226         pass_remove_cgraph_callee_edges after early inlining and before all
8227         late intraprocedural passes.
8228
8229         * omp-low.c (expand_omp_taskreg): Always set current_function_decl.
8230
8231 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
8232
8233         * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis):
8234         Fix typos in names.
8235
8236 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
8237
8238         * combine.c (simplify_comparison): Use have_insn_for.
8239         * dojump.c (do_jump): Likewise.
8240
8241 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
8242
8243         * config/sparc/sparc.c (sparc_compare_emitted): Remove.
8244         (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC
8245         sparc_compare_op0 like sparc_compare_emitted used to be handled.
8246         (sparc_expand_compare_and_swap_12): Set sparc_compare_op0
8247         instead of sparc_compare_emitted.
8248         * config/sparc/sparc.h (sparc_compare_emitted): Remove.
8249         * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0
8250         instead of sparc_compare_emitted.
8251
8252 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
8253
8254         * bb-reorder.c (partition_hot_cold_basic_blocks): Do not
8255         enter/exit cfglayout mode.
8256         (pass_partition_block): Require it.
8257         * combine.c (find_single_use, reg_dead_at_p): Use CFG.
8258         (combine_instructions): Track basic blocks instead of labels.
8259         (update_cfg_for_uncondjump): New.
8260         (try_combine): Use it.  Update jumps after rescanning.
8261         (pass_combine): Require PROP_cfglayout.
8262         * passes.c (pass_outof_cfg_layout_mode): Move after regmove.
8263
8264 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
8265
8266         * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode):
8267         Provide/destroy PROP_cfglayout respectively.
8268         * gcse.c (pass_jump_bypass, pass_gcse): Require it.
8269         * tree-pass.h (PROP_cfglayout): New.
8270
8271 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
8272
8273         * fold-const.c (const_binop, fold_convert_const_real_from_fixed,
8274         fold_convert_const_fixed_from_fixed,
8275         fold_convert_const_fixed_from_int,
8276         fold_convert_const_fixed_from_real, fold_negate_const): Do not
8277         set TREE_CONSTANT_OVERFLOW.
8278         * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW.
8279         * tree.h (TREE_CONSTANT_OVERFLOW): Delete.
8280
8281 2009-03-30  Ira Rosen  <irar@il.ibm.com>
8282
8283         * tree-vect-loop-manip.c: New file.
8284         * tree-vectorizer.c: Update documentation and included files.
8285         (vect_loop_location): Make extern.
8286         (rename_use_op): Move to tree-vect-loop-manip.c
8287         (rename_variables_in_bb, rename_variables_in_loop,
8288         slpeel_update_phis_for_duplicate_loop,
8289         slpeel_update_phi_nodes_for_guard1,
8290         slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes,
8291         slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard,
8292         slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling,
8293         set_prologue_iterations, slpeel_tree_peel_loop_to_edge,
8294         find_loop_location): Likewise.
8295         (new_stmt_vec_info): Move to tree-vect-stmts.c.
8296         (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info,
8297         get_vectype_for_scalar_type, vect_is_simple_use,
8298         supportable_widening_operation, supportable_narrowing_operation):
8299         Likewise.
8300         (bb_in_loop_p): Move to tree-vect-loop.c.
8301         (new_loop_vec_info, destroy_loop_vec_info,
8302         reduction_code_for_scalar_code, report_vect_op,
8303         vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise.
8304         (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c.
8305         (vect_supportable_dr_alignment): Likewise.
8306         * tree-vectorizer.h (tree-data-ref.h): Include.
8307         (vect_loop_location): Declare.
8308         Reorganize function declarations according to the new file structure.
8309         * tree-vect-loop.c: New file.
8310         * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c,
8311         tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c.
8312         * tree-vect-data-refs.c: New file.
8313         * tree-vect-patterns.c (timevar.h): Don't include.
8314         * tree-vect-stmts.c: New file.
8315         * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c,
8316         tree-vect-slp.c, tree-vect-loop.c.
8317         * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and
8318         tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o,
8319         tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o.
8320         (tree-vect-analyze.o): Remove.
8321         (tree-vect-transform.o): Likewise.
8322         (tree-vect-data-refs.o): Add rule.
8323         (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o,
8324         tree-vect-slp.o): Likewise.
8325         (tree-vect-patterns.o): Remove redundant dependencies.
8326         (tree-vectorizer.o): Likewise.
8327         * tree-vect-slp.c: New file.
8328
8329 2009-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8330
8331         * optc-gen.awk: Warn if an option flag has multiple different
8332         help strings.
8333
8334 2009-03-30  Sebastian Pop  <sebastian.pop@amd.com>
8335
8336         * doc/invoke.texi (-floop-interchange, -floop-strip-mine,
8337         -floop-block): Document dependences on PPL, CLooG and Graphite.
8338
8339 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
8340
8341         PR rtl-optimization/323
8342         * c-common.c (c_fully_fold, convert_and_check,
8343         c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
8344         (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
8345         * c-common.def (EXCESS_PRECISION_EXPR): New.
8346         * c-cppbuiltin.c (builtin_define_float_constants): Define
8347         constants with enough digits for long double.
8348         * c-lex.c (interpret_float): Interpret constant with excess
8349         precision where appropriate.
8350         * c-opts.c (c_common_post_options): Set
8351         flag_excess_precision_cmdline.  Give an error for
8352         -fexcess-precision=standard for C++ for processors where the
8353         option is significant.
8354         * c-parser.c (c_parser_conditional_expression): Handle excess
8355         precision in condition.
8356         * c-typeck.c (convert_arguments): Handle arguments with excess
8357         precision.
8358         (build_unary_op): Move excess precision outside operation.
8359         (build_conditional_expr): Likewise.
8360         (build_compound_expr): Likewise.
8361         (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
8362         (build_modify_expr): Handle excess precision in RHS.
8363         (convert_for_assignment): Handle excess precision in converted
8364         value.
8365         (digest_init, output_init_element, process_init_element): Handle
8366         excess precision in initializer.
8367         (c_finish_return): Handle excess precision in return value.
8368         (build_binary_op): Handle excess precision in operands and add
8369         excess precision as needed for operation.
8370         * common.opt (-fexcess-precision=): New option.
8371         * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
8372         * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
8373         For standard excess precision, output explicit conversion to and
8374         truncation from XFmode.
8375         (*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
8376         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
8377         *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
8378         define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
8379         define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
8380         floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
8381         divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
8382         *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
8383         *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
8384         define_splits, sqrt<mode>2): Disable where appropriate for
8385         standard excess precision.
8386         * convert.c (convert_to_real): Do not shorten arithmetic to type
8387         for which excess precision would be used.
8388         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
8389         * doc/invoke.texi (-fexcess-precision=): Document option.
8390         (-mfpmath=): Correct index entry.
8391         * flags.h (enum excess_precision, flag_excess_precision_cmdline,
8392         flag_excess_precision): New.
8393         * langhooks.c (lhd_post_options): Set
8394         flag_excess_precision_cmdline.
8395         * opts.c (common_handle_option): Handle -fexcess-precision=.
8396         * toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
8397         init_excess_precision): New.
8398         (lang_dependent_init_target): Call init_excess_precision.
8399         * tree.c (excess_precision_type): New.
8400         * tree.h (excess_precision_type): Declare.
8401
8402 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
8403
8404         PR c/35235
8405         * c-typeck.c (build_component_ref): Do not copy qualifiers from
8406         non-lvalue to component.
8407
8408 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
8409
8410         PR preprocessor/34695
8411         * Makefile.in (c-opts.o): Depend on c-tree.h.
8412         * c-common.c: Move down include of diagnostic.h.
8413         (done_lexing, c_cpp_error): New.
8414         * c-common.h (done_lexing): Declare.
8415         * c-decl.c (c_write_global_declarations): Don't check cpp_errors
8416         (parse_in).
8417         * c-opts.c: Include c-tree.h.
8418         (c_common_init_options): Set preprocessor error callback.
8419         (c_common_handle_option): Do not set preprocessor
8420         inhibit_warnings, warnings_are_errors, warn_system_headers,
8421         pedantic_errors or inhibit_warnings flags.
8422         (c_common_post_options): Do not check cpp_errors (parse_in).
8423         (c_common_finish): Do not output dependencies if there were
8424         errors.  Do not check return value of cpp_finish.
8425         * c-ppoutput.c (pp_file_change): Set input_location.
8426         * c-tree.h (c_cpp_error): Declare.
8427         * diagnostic.c (diagnostic_set_info_translated): Also initialize
8428         override_column.
8429         (diagnostic_build_prefix): Check override_column.
8430         * diagnostic.h (diagnostic_info): Add override_column field.
8431         (diagnostic_override_column): Define.
8432
8433 2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
8434
8435         * c-common.c (c_expand_expr, c_staticp): Remove.
8436         * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
8437         * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
8438         COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
8439         * c-gimplify.c (gimplify_compound_literal_expr,
8440         optimize_compound_literals_in_ctor): Remove.
8441         (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
8442         * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
8443         * c-semantics.c (emit_local_var): Remove.
8444
8445         * langhooks-def.h (lhd_expand_expr): Remove.
8446         * langhooks.c (lhd_expand_expr): Remove.
8447         * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
8448
8449         * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
8450         handling from c-semantics.c; don't call into langhook.
8451         (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
8452         * gimplify.c (gimplify_compound_literal_expr,
8453         optimize_compound_literals_in_ctor): Move from c-gimplify.c.
8454         (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
8455         (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
8456         as was done in c-gimplify.c.
8457         * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
8458         * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
8459         Move from c-common.h.
8460         * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
8461
8462         * tree.c (staticp): Do not call langhook.
8463         * langhooks.c (lhd_staticp): Delete.
8464         * langhooks-def.h (lhd_staticp): Delete prototype.
8465         (LANG_HOOKS_STATICP): Delete.
8466         (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
8467
8468         * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
8469         instead of DECL_STMTs.
8470
8471 2009-03-29  Joseph Myers  <joseph@codesourcery.com>
8472
8473         PR c/456
8474         PR c/5675
8475         PR c/19976
8476         PR c/29116
8477         PR c/31871
8478         PR c/35198
8479         * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in
8480         void_type_node.
8481         (fold_call_expr): Return a NOP_EXPR from folding rather than the
8482         contained expression.
8483         * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New.
8484         (c_common_truthvalue_conversion): Use c_save_expr.  Do not fold
8485         conditional expressions for C.
8486         (decl_constant_value_for_optimization): Move from
8487         decl_constant_value_for_broken_optimization in c-typeck.c.  Check
8488         whether optimizing and that the expression is a VAR_DECL not of
8489         array type instead of doing such checks in the caller.  Do not
8490         check pedantic.  Call gcc_unreachable for C++.
8491         * c-common.def (C_MAYBE_CONST_EXPR): New.
8492         * c-common.h (c_fully_fold, c_save_expr,
8493         decl_constant_value_for_optimization): New prototypes.
8494         (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR,
8495         C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST,
8496         EXPR_INT_CONST_OPERANDS): Define.
8497         * c-convert.c (convert): Strip nops from expression.
8498         * c-decl.c (groktypename): Take extra parameters expr and
8499         expr_const_operands.  Update call to grokdeclarator.
8500         (start_decl): Update call to grokdeclarator.  Add statement for
8501         expressions used in type of decl.
8502         (grokparm): Update call to grokdeclarator.
8503         (push_parm_decl): Update call to grokdeclarator.
8504         (build_compound_literal): Add parameter non_const and build a
8505         C_MAYBE_COSNT_EXPR if applicable.
8506         (grokdeclarator): Take extra parameters expr and
8507         expr_const_operands.  Track expressions used in declaration
8508         specifiers and declarators.  Fold array sizes and track whether
8509         they are constant expressions and whether they are integer
8510         constant expressions.
8511         (parser_xref_tag): Set expr and expr_const_operands fields in
8512         return value.
8513         (grokfield): Update call to grokdeclarator.
8514         (start_function): Update call to grokdeclarator.
8515         (build_null_declspecs): Set expr and expr_const_operands fields in
8516         return value.
8517         (declspecs_add_type): Handle expressions in typeof specifiers.
8518         * c-parser.c (c_parser_declspecs): Set expr and
8519         expr_const_operands fields for declaration specifiers.
8520         (c_parser_enum_specifier): Likewise.
8521         (c_parser_struct_or_union_specifier): Likewise.
8522         (c_parser_typeof_specifier): Likewise.  Update call to
8523         groktypename.  Fold expression as needed.  Return expressions with
8524         type instead of adding statements.
8525         (c_parser_attributes): Update calls to c_parser_expr_list.
8526         (c_parser_statement_after_labels): Fold expression before passing
8527         to objc_build_throw_stmt.
8528         (c_parser_condition): Fold expression.
8529         (c_parser_asm_operands): Fold expression.
8530         (c_parser_conditional_expression): Use c_save_expr.  Update call
8531         to build_conditional_expr.
8532         (c_parser_alignof_expression): Update call to groktypename.
8533         (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as
8534         original_code.  Fold expression argument of va_arg.  Create
8535         C_MAYBE_CONST_EXPR to preserve side effects of expressions in type
8536         argument to va_arg.  Update calls to groktypename.  Fold array
8537         index for offsetof.  Verify that first argument to
8538         __builtin_choose_expr has integer type.
8539         (c_parser_postfix_expression_after_paren_type): Update calls to
8540         groktypename and build_compound_literal.  Handle expressions with
8541         side effects in type name.
8542         (c_parser_postfix_expression_after_primary): Update call to
8543         c_parser_expr_list.  Set original_code for calls to
8544         __builtin_constant_p.
8545         (c_parser_expr_list): Take extra parameter fold_p.  Fold
8546         expressions if requested.
8547         (c_parser_objc_type_name): Update call to groktypename.
8548         (c_parser_objc_synchronized_statement): Fold expression.
8549         (c_parser_objc_receiver): Fold expression.
8550         (c_parser_objc_keywordexpr): Update call to c_parser_expr_list.
8551         (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule,
8552         c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions.
8553         * c-tree.h (CONSTRUCTOR_NON_CONST): Define.
8554         (struct c_typespec): Add elements expr and expr_const_operands.
8555         (struct c_declspecs): Add elements expr and expr_const_operands.
8556         (groktypename, build_conditional_expr, build_compound_literal):
8557         Update prototypes.
8558         (in_late_binary_op): Declare.
8559         * c-typeck.c (note_integer_operands): New function.
8560         (in_late_binary_op): New variable.
8561         (decl_constant_value_for_broken_optimization): Move to c-common.c
8562         and rename to decl_constant_value_for_optimization.
8563         (default_function_array_conversion): Do not strip nops.
8564         (default_conversion): Do not call
8565         decl_constant_value_for_broken_optimization.
8566         (build_array_ref): Do not fold result.
8567         (c_expr_sizeof_expr): Fold operand.  Use C_MAYBE_CONST_EXPR for
8568         result when operand is a VLA.
8569         (c_expr_sizeof_type): Update call to groktypename.  Handle
8570         expressions included in type name.  Use C_MAYBE_CONST_EXPR for
8571         result when operand names a VLA type.
8572         (build_function_call): Update call to build_compound_literal.
8573         Only fold result for calls to __builtin_* functions.  Strip
8574         NOP_EXPR from INTEGER_CST returned from such functions.  Fold
8575         the function designator.
8576         (convert_arguments): Fold arguments.  Update call to
8577         convert_for_assignment.
8578         (build_unary_op): Handle increment and decrement of
8579         C_MAYBE_CONST_EXPR.  Move lvalue checks for increment and
8580         decrement earlier.  Fold operand of increment and decrement.
8581         Handle address of C_MAYBE_CONST_EXPR.  Only fold expression being
8582         built for integer operand.  Wrap returns that are INTEGER_CSTs
8583         without being integer constant expressions or that have integer
8584         constant operands without being INTEGER_CSTs.
8585         (lvalue_p): Handle C_MAYBE_CONST_EXPR.
8586         (build_conditional_expr): Add operand ifexp_bcp.  Track whether
8587         result is an integer constant expression or can be used in
8588         unevaluated parts of one and avoid folding and wrap as
8589         appropriate.  Fold operands before possibly doing -Wsign-compare
8590         warnings.
8591         (build_compound_expr): Wrap result for C99 if operands can be used
8592         in integer constant expressions.
8593         (build_c_cast): Update call to digest_init.  Do not ignore
8594         overflow from casting floating-point constants to integers.  Wrap
8595         results that could be confused with integer constant expressions,
8596         null pointer constants or floating-point constants.
8597         (c_cast_expr): Update call to groktypename.  Handle expressions
8598         included in type name.
8599         (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR.  Fold
8600         lhs inside possible SAVE_EXPR.  Fold RHS before assignment.
8601         Update calls to convert_for_assignment.
8602         (convert_for_assignment): Take new parameter
8603         null_pointer_constant.  Do not strip nops or call
8604         decl_constant_value_for_broken_optimization.  Set
8605         in_late_binary_op for conversions to boolean.
8606         (store_init_value): Update call to digest_init.
8607         (digest_init): Take new parameter null_pointer_constant.  Do not
8608         call decl_constant_value_for_broken_optimization.  pedwarn for
8609         initializers not constant expressions.  Update calls to
8610         convert_for_assignment.
8611         (constructor_nonconst): New.
8612         (struct constructor_stack): Add nonconst element.
8613         (really_start_incremental_init, push_init_level, pop_init_level):
8614         Handle constructor_nonconst and nonconst element.
8615         (set_init_index): Call constant_expression_warning for array
8616         designators.
8617         (output_init_element): Fold value.  Set constructor_nonconst as
8618         applicable.  pedwarn for initializers not constant expressions.
8619         Update call to digest_init.  Call constant_expression_warning
8620         where constant initializers are required.
8621         (process_init_element): Use c_save_expr.
8622         (c_finish_goto_ptr): Fold expression.
8623         (c_finish_return): Fold return value.  Update call to
8624         convert_for_assignment.
8625         (c_start_case): Fold switch expression.
8626         (c_process_expr_stmt): Fold expression.
8627         (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to
8628         ensure statement expression is not evaluated in constant expression.
8629         (build_binary_op): Track whether results are integer constant
8630         expressions or may occur in such, disable folding and wrap results
8631         as applicable.  Fold operands for -Wsign-compare warnings unless
8632         in_late_binary_op.
8633         (c_objc_common_truthvalue_conversion): Handle results folded to
8634         integer constants that are not integer constant expressions.
8635         * doc/extend.texi: Document when typeof operands are evaluated,
8636         that condition of __builtin_choose_expr is an integer constant
8637         expression, and more about use of __builtin_constant_p in
8638         initializers.
8639
8640 2009-03-29  Richard Guenther  <rguenther@suse.de>
8641
8642         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly
8643         propagate addresses of array references.
8644
8645 2009-03-29  Steven Bosscher  <steven@gcc.gnu.org>
8646
8647         * regmove.c (perhaps_ends_bb_p): Remove.
8648         (optimize_reg_copy_1): Don't call perhaps_ends_bb_p.  Get basic block
8649         from INSN and check that the main loop stays within that basic block.
8650         (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise.
8651         (regmove_forward_pass): Split out from regmove_optimize.  Use
8652         FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream.
8653         (regmove_backward_pass): Split out from regmove_optimize.  Use
8654         FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE.
8655         (regmove_optimize): Simplify.
8656
8657 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
8658
8659         PR target/39545
8660         * config/i386/i386.c (classify_argument): Ignore flexible array
8661         member in struct and warn ABI change.
8662
8663 2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
8664
8665         * config/i386/i386-protos.h (ix86_agi_dependent): New.
8666
8667         * config/i386/i386.c (ix86_agi_dependent): Rewrite.
8668         (ix86_adjust_cost): Updated.
8669
8670 2009-03-29  Jan Hubicka  <jh@suse.cz>
8671
8672         PR middle-end/28850
8673         * tree-pass.h (pass_cleanup_eh): New function.
8674         (remove_unreachable_regions): Break code handling RTL
8675         to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW
8676         that can not be reached by runtime.
8677         (can_be_reached_by_runtime): New function.
8678         (label_to_region_map): New function.
8679         (num_eh_regions): New function.
8680         (rtl_remove_unreachable_regions): New function.
8681         (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions.
8682         (remove_eh_region): New function.
8683         * except.h: Include sbitmap and vecprim.
8684         (remove_eh_region, remove_unreachable_regions, label_to_region_map,
8685         num_eh_regions): Declare.
8686         * passes.c (init_optimization_passes): Schedule cleanup_eh.
8687         * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it.
8688         * tree-eh.c (tree_remove_unreachable_handlers): New function.
8689         (tree_empty_eh_handler_p): New function.
8690         (cleanup_empty_eh): New function.
8691         (cleanup_eh): New function.
8692         (pass_cleanup_eh): New function.
8693
8694 2009-03-29  Jan Hubicka  <jh@suse.cz>
8695
8696         * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready
8697         for removed regions.
8698
8699 2009-03-29  Jan Hubicka  <jh@suse.cz>
8700
8701         * except.c (dump_eh_tree): Dump all datastructures.
8702
8703 2009-03-29  Jan Hubicka  <jh@suse.cz>
8704
8705         * except.c (duplicate_eh_regions_0): Handle AKA bitmap.
8706         (duplicate_eh_regions_1): Likewise.
8707         (duplicate_eh_regions): Likewise; cleanup code gorwing the region
8708         vector; call EH verification.
8709         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8710         Be ready for region being removed.
8711
8712 2009-03-29  Jan Hubicka  <jh@suse.cz>
8713
8714         * bitmap.c (bitmap_last_set_bit): New function.
8715         * bitmap.h (bitmap_last_set_bit): Declare.
8716
8717 2009-03-29  David Ayers  <ayers@fsfe.org>
8718
8719         PR objc/27377
8720         * c-typeck.c (build_conditional_expr): Emit ObjC warnings
8721         by calling objc_compare_types and surpress warnings about
8722         incompatible C pointers that are compatible ObjC pointers.
8723
8724 2009-03-29  Adam Nemet  <anemet@caviumnetworks.com>
8725
8726         * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't
8727         call initialize_inline_failed.
8728         (initialize_inline_failed): Move it from here ...
8729         * cgraph.c (initialize_inline_failed): ... to here.
8730         (cgraph_create_edge): Call initialize_inline_failed rather than
8731         setting inline_failed directly.
8732
8733 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8734
8735         PR target/32542
8736         * sysv4.opt (msdata): Improve comment.
8737         * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given.
8738         * sysv4.h (SVR4_ASM_SPEC): Likewise.
8739
8740 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8741
8742         PR target/30451
8743         * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of
8744         load and store attributes.
8745
8746 2009-03-29  Ben Elliston  <bje@au.ibm.com>
8747
8748         * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ.
8749         (ix86_init_builtins): Add built-in function __builtin_huge_valq.
8750         (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ.
8751         * doc/extend.texi (X86 Built-in Functions): Add index entries for
8752         __builtin_infq and __builtin_huge_valq.
8753
8754 2009-03-28  Anatoly Sokolov  <aesok@post.ru>
8755
8756         * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and
8757         atmega8m1 devices.
8758         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
8759         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.)
8760
8761 2009-03-28  Xinliang David Li  <davidxl@google.com>
8762
8763         * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support.
8764         (do_dbg_cnt): New function.
8765
8766 2009-03-28  Jan Hubicka  <jh@suse.cz>
8767
8768         Merge from pretty-ipa:
8769
8770         2009-03-27  Jan Hubicka  <jh@suse.cz>
8771
8772         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8773         * tree-pass.h (function_called_by_processed_nodes_p): Declare.
8774         * passes.c (function_called_by_processed_nodes_p): New.
8775         * ipa-pure-const.c (check_call): Fix handling of operands.
8776         (analyze_function): Dump debug output for skipped bodies.
8777         (local_pure_const): Use function_called_by_processed_nodes_p.
8778         * dwarf2out.c (reference_to_unused): Use output.
8779         * passes.c (do_per_function_toporder): Likewise.
8780
8781         2008-11-12  Jan Hubicka  <jh@suse.cz>
8782
8783         * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare.
8784         * ipa-pure-const.c (funct_state_d): Add can throw field; make
8785         state_set_in_source enum
8786         (check_decl): Ignore memory tags; do not set fake looping flags;
8787         dump diagnostics.
8788         (check_operand, check_tree, check_rhs_var, check_lhs_var,
8789         get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove.
8790         (check_call, analyze_function): Rewrite.
8791         (check_stmt): New.
8792         (add_new_function): Update call of analyze_function.
8793         (generate_summary): Add call of analyze_function.
8794         (propagate): Propagate can_throw; handle state_set_in_source correctly.
8795         (local_pure_const): New function.
8796         (pass_local_pure_const): New pass.
8797         * ipa-inline.c (inline_transform): Set after_inlining.
8798         * tree-eh.c (stmt_can_throw_external): New.
8799         * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining;
8800         work with aliasing built.
8801         * tree-flow.h (stmt_can_throw_external): New.
8802         * passes.c (init_optimization_passes): Schedule fixup_cfg pass early;
8803         and local pure/const pass in early and late optimization queue.
8804
8805 2009-03-28  Martin Jambor  <mjambor@suse.cz>
8806
8807         * fold-const.c (get_pointer_modulus_and_residue): New parameter
8808         allow_func_align.
8809         (fold_binary): Allow function decl aligment consideration is the
8810         second argument is integer constant one.
8811         * tree-ssa-forwprop.c (simplify_bitwise_and): New function.
8812         (tree_ssa_forward_propagate_single_use_vars): Handle assing statements
8813         with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and.
8814
8815 2009-03-28  Jan Hubicka  <jh@suse.cz>
8816
8817         * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow
8818         * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls.
8819         * function.h (rtl_data): Add nothrow flag.
8820         * except.c (set_nothrow_function_flags): Use crtl->nothrow;
8821         set DECL_NOTHROW for AVAILABLE functions.
8822
8823 2009-03-28  Jakub Jelinek  <jakub@redhat.com>
8824
8825         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro
8826         following vector keyword has expansion starting with pixel or bool
8827         keyword, expand vector to __vector and pixel or bool to __pixel or
8828         __bool.
8829
8830         PR c++/39554
8831         * opts.c (warning_disallowed_functions, warn_disallowed_functions,
8832         warn_if_disallowed_function_p): Removed.
8833         (common_handle_option): Don't handle OPT_Wdisallowed_function_list_.
8834         * c-parser.c (c_parser_postfix_expression_after_primary): Don't call
8835         warning_if_disallowed_function_p.
8836         * flags.h (warn_if_disallowed_function_p,
8837         warn_disallowed_functions): Removed.
8838         * common.opt (Wdisallowed-function-list=): Removed.
8839         * doc/invoke.texi (-Wdisallowed-function-list=): Removed.
8840
8841 2009-03-28  Richard Guenther  <rguenther@suse.de>
8842
8843         PR tree-optimization/38723
8844         * tree-ssa-pre.c (compute_avail): Add all default definitions to
8845         the entry block.
8846
8847 2009-03-28  Jan Hubicka  <jh@suse.cz>
8848
8849         * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed
8850         test introduced by my previous patch.
8851
8852 2009-03-28  Richard Guenther  <rguenther@suse.de>
8853
8854         * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave
8855         the PHIs value undefined.
8856
8857 2009-03-28  Jan Hubicka  <jh@suse.cz>
8858
8859         * tree-pass.h (pass_fixup_cfg): New pass.
8860         * ipa-inline.c (inline_transform): Set
8861         always_inline_functions_inlined/after_inlining.
8862         * tree-optimize.c (execute_fixup_cfg): Do not set them here.
8863         (pass_fixup_cfg): New pass.
8864         * passes.c (init_optimization_passes): Add fixup_cfg.
8865
8866 2009-03-28  Richard Guenther  <rguenther@suse.de>
8867
8868         PR tree-optimization/38458
8869         * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first
8870         argument use the arguments copy-of value.
8871
8872 2009-03-28  Richard Guenther  <rguenther@suse.de>
8873
8874         PR tree-optimization/38180
8875         * tree-ssa-ccp.c (get_default_value): Simplify.
8876         (likely_value): Likewise.
8877         (surely_varying_stmt_p): Properly handle VOP case.
8878         (ccp_initialize): Likewise.
8879         (ccp_fold): Handle propagating through *&.
8880         (fold_const_aggregate_ref): Also handle decls.
8881
8882 2009-03-28  Jan Hubicka  <jh@suse.cz>
8883
8884         * cgraph.c (dump_cgraph_node): Add replace output flag by process.
8885         * cgraph.h (cgraph_node): Likewise.
8886         * cgraphunit.c (cgraph_process_new_functions): Set process flag.
8887         (cgraph_reset_node): Use process flag.
8888         (cgraph_mark_functions_to_output): Likewise.
8889         (cgraph_expand_function): Likewise.
8890         (cgraph_expand_all_functions): Likewise.
8891         (cgraph_output_in_order): Likewise.
8892         * dwarf2out.c (reference_to_unused): Likewise.
8893         * passes.c do_per_function_toporder): Likewise.
8894
8895 2009-03-28  Jan Hubicka  <jh@suse.cz>
8896
8897         Bring from lto-branch:
8898
8899         2008-09-03  Doug Kwan  <dougkwan@google.com>
8900
8901         * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t
8902         enums instead of reason strings.
8903         * cgraph.c (cgraph_create_edge): Same.
8904         (cgraph_inline_failed_string): New function.
8905         * cgraph.h (cgraph_inline_failed_t): New enum type.
8906         (cgraph_inline_failed_string): New prototype.
8907         (struct cgraph_edge): Change type of INLINED_FAILED from constant
8908         char pointer to cgraph_inline_failed_t.
8909         (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t.
8910         (cgraph_default_inline_p): Ditto.
8911         * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON
8912         to cgraph_inline_failed_t pointer.
8913         * cif-code.def: New file.
8914         * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a
8915         reason string.
8916         (cgraph_check_inline_limits): Change type of REASON to pointer to
8917         cgraph_inline_failed_t.  Replace reason strings with enums.
8918         (cgraph_default_inline_p): Ditto.
8919         (cgraph_recursive_inlining_p): Ditto.
8920         (update_caller_keys): Change type of FAILED_REASON to
8921         cgraph_inline_failed_t.
8922         (cgraph_set_inline_failed): Change type of REASON to pointer to
8923         cgraph_inline_failed_t.  Call cgraph_inline_failed_string to
8924         convert enums to strings for text output.
8925         (cgraph_decide_inlining_of_small_function): Change FAILED_REASON
8926         to be of type cgraph_inline_failed_t.  Replace reason strings with
8927         enums.  Call cgraph_inline_failed_string to covert enums
8928         to strings for text output.
8929         (cgraph_decide_inlining): Replace reason strings with enums.
8930         (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON
8931         to cgraph_inline_failed_t type.  Call cgraph_inline_failed_string
8932         for text output.
8933         * tree-inline.c (expand_call_inline): Change type of REASON
8934         to cgraph_inline_failed_t.  Replace reason strings with enums.
8935         Call cgraph_inline_failed_string for text output.
8936         * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies.
8937         (cgraph.o): Ditto.
8938
8939 2009-03-28  Jan Hubicka  <jh@suse.cz>
8940
8941         * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node,
8942         cgraph_clone_node): Remove master clone handling.
8943         (cgraph_is_master_clone, cgraph_master_clone): Remove.
8944         * cgraph.h (master_clone): Remove.
8945         (cgraph_is_master_clone, cgraph_master_clone): Remove.
8946         * ipa-type-escape.c (type_escape_execute): Remove use of master clone.
8947         (tree-ssa-structalias.c (ipa_pta_execute): Likewise.
8948
8949 2009-03-28  Jan Hubicka  <jh@suse.cz>
8950
8951         * cgraph.c (cgraph_function_body_availability): Functions declared
8952         inline are always safe to assume that it is not going to be replaced.
8953
8954 2009-03-28  Richard Guenther  <rguenther@suse.de>
8955
8956         PR tree-optimization/38513
8957         * tree-ssa-pre.c (eliminate): Remove redundant stores.
8958         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
8959         EXC_PTR_EXPR and FILTER_EXPR.
8960         (get_ref_from_reference_ops): Likewise.
8961
8962 2009-03-28  Richard Guenther  <rguenther@suse.de>
8963
8964         PR tree-optimization/38968
8965         * tree-vect-analyze.c (vect_compute_data_ref_alignment):
8966         Use FLOOR_MOD_EXPR to compute misalignment.
8967
8968 2009-03-28  Richard Guenther  <rguenther@suse.de>
8969
8970         PR tree-optimization/37795
8971         * tree.h (combine_comparisons): Declare.
8972         * fold-const.c (combine_comparisons): Export.
8973         * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive
8974         comparisons.
8975         (ifcombine_iforif): Use combine_comparisons.
8976
8977 2009-03-28  Jan Hubicka  <jh@suse.cz>
8978
8979         * tree-eh.c (inlinable_call_p): New function.
8980         (make_eh_edges): Use it.
8981         (verify_eh_edges): Use it.
8982         (stmt_can_throw_external, stmt_can_throw_internal): Use it.
8983         * except.c (reachable_next_level): Add inlinable_function argument
8984         (sjlj_find_directly_reachable_regions): Update.
8985         (add_reachable_handler): Do not set saw_any_handlers.
8986         (reachable_next_level): Handle MUST_NOT_THROW more curefully.
8987         (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1):
8988         Add new inlinable call parameter.
8989         (can_throw_internal, can_throw_external): Update.
8990         * except.h (can_throw_internal_1, can_throw_external_1,
8991         foreach_reachable_handler): Update declaration.
8992
8993 2009-03-28  Joseph Myers  <joseph@codesourcery.com>
8994
8995         * config/arm/t-arm-coff, config/h8300/coff.h,
8996         config/i386/i386-aout.h, config/i386/i386-coff.h,
8997         config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
8998         config/pdp11/2bsd.h, config/rs6000/aix41.h,
8999         config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
9000         fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
9001         scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
9002         sys-types.h: Remove.
9003         * Makefile.in: Remove protoize and fixproto support and references
9004         in comments.
9005         (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
9006         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
9007         Remove.
9008         (ALL_HOST_OBJS): Remove $(PROTO_OBJS).
9009         (MOSTLYCLEANFILES): Remove protoize$(exeext) and
9010         unprotoize$(exeext).
9011         (rest.encap): Don't depend on $(STMP_FIXPROTO)
9012         (.PHONY): Don't depend on proto.
9013         (libgcc-support): Don't depend on $(STMP_FIXPROTO).
9014         (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
9015         protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
9016         deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
9017         build/gen-protos.o, build/scan.o, xsys-protos.h,
9018         build/fix-header$(build_exeext), build/fix-header.o,
9019         build/scan-decls.o, fixhdr.ready, stmp-fixproto,
9020         stmp-install-fixproto): Remove.
9021         (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
9022         SYSCALLS.c or fixproto files.
9023         (install-common): Don't install protoize.
9024         (install-headers-tar, install-headers-cpio, install-headers-cp):
9025         Don't depend on $(STMP_FIXPROTO).
9026         (install-mkheaders): Don't depend on $(STMP_FIXPROTO).  Don't
9027         install fixproto files or write out fixproto settings.
9028         (uninstall): Don't uninstall protoize.
9029         * config.gcc (use_fixproto): Remove.
9030         (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
9031         i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
9032         rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
9033         * config/m32r/t-linux (STMP_FIXPROTO): Remove.
9034         * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
9035         * config/mips/t-iris (FIXPROTO_DEFINES): Remove.
9036         * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
9037         * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
9038         * config/t-svr4 (FIXPROTO_DEFINES): Remove.
9039         * config/t-vxworks (STMP_FIXPROTO): Remove.
9040         * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
9041         STMP_FIXPROTO): Remove.
9042         * config.in, configure: Regenerate.
9043         * crtstuff.c (gid_t, uid_t): Don't undefine.
9044         * doc/install.texi: Change m68k-coff to m68k-elf in example.
9045         (arm-*-coff, arm-*-aout: Remove target entries.
9046         (*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
9047         Remove mention of AIX 4.1.
9048         (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
9049         * doc/invoke.texi (Running Protoize): Remove.
9050         * doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
9051         (Protoize Caveats): Remove.
9052         * tsystem.h: Update comments on headers assumed to exist.
9053
9054 2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
9055
9056         * genautomata.c: Add a new year to the copyright.  Add a new
9057         reference.
9058         (struct insn_reserv_decl): Add comments for member bypass_list.
9059         (find_bypass): Remove.
9060         (insert_bypass): New.
9061         (process_decls): Use insert_bypass.
9062         (output_internal_insn_latency_func): Output all bypasses with the
9063         same input insn in one switch case.
9064
9065         * rtl.def (define_bypass): Describe bypass choice.
9066         * doc/md.texi (define_bypass): Ditto.
9067
9068 2009-03-27  Richard Guenther  <rguenther@suse.de>
9069
9070         * gimplify.c (mark_addressable): Export.
9071         * tree-flow.h (mark_addressable): Declare.
9072         * tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
9073         * tree-ssa.c (verify_phi_args): Verify that address taken
9074         variables have TREE_ADDRESSABLE set.
9075
9076 2009-03-27  Richard Guenther  <rguenther@suse.de>
9077
9078         * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
9079         (build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
9080         Do not mark decls TREE_ADDRESSABLE.
9081         (build_fold_addr_expr): Adjust.
9082         (fold_addr_expr): Remove.
9083         (fold_unary): Use build_fold_addr_expr.
9084         (fold_comparison): Likewise.
9085         (split_address_to_core_and_offset): Likewise.
9086         * coverage.c (tree_coverage_counter_addr): Mark the array decl
9087         TREE_ADDRESSABLE.
9088         * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
9089         (gimplify_modify_expr_to_memcpy): Mark source and destination
9090         addressable.
9091         * omp-low.c (create_omp_child_function): Mark the object decl
9092         TREE_ADDRESSABLE.
9093         (lower_rec_input_clauses): Mark the var we take the address of
9094         TREE_ADDRESSABLE.
9095         (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
9096
9097 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9098
9099         PR middle-end/39315
9100         * cfgexpand.c (expand_one_stack_var_at): Change alignment
9101         limit to MAX_SUPPORTED_STACK_ALIGNMENT.
9102
9103 2009-03-27  Richard Guenther  <rguenther@suse.de>
9104
9105         PR tree-optimization/39120
9106         * tree-ssa-structalias.c (handle_rhs_call): Fill out return
9107         constraints.
9108         (handle_lhs_call): Process return constraints.  Add escape
9109         constraints if necessary.
9110         (handle_const_call): Fill out return constraints.  Make nested
9111         case more precise.  Avoid consttmp if possible.
9112         (handle_pure_call): Fill out return constraints.  Avoid
9113         callused if possible.
9114         (find_func_aliases): Simplify call handling.
9115
9116 2009-03-27  Richard Guenther  <rguenther@suse.de>
9117
9118         PR tree-optimization/39120
9119         * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED
9120         as a representative.
9121         (solve_graph): Do propagate CALLUSED.
9122         (handle_pure_call): Use a scalar constraint from CALLUSED for
9123         the return value.
9124         (find_what_p_points_to): CALLUSED shall not appear in poins-to
9125         solutions.
9126
9127 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9128
9129         PR c/39323
9130         * c-common.c (handle_aligned_attribute): Properly check alignment
9131         overflow.  Use (1U << i) instead of (1 << i).
9132
9133         * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align.
9134
9135         * expr.h (get_mem_align_offset): Updated.
9136
9137         * tree.h (tree_decl_common): Change align to "unsigned int" and
9138         move it before pointer_alias_set.
9139
9140 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9141             Jakub Jelinek  <jakub@redhat.com>
9142
9143         PR target/38034
9144         * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input
9145         gr_register_operand with gr_reg_or_0_operand.
9146         (cmpxchg_rel_di): Likewise.
9147         (sync_lock_test_and_set<mode>): Likewise.
9148
9149 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9150
9151         * jump.c (rtx_renumbered_equal_p): Use subreg_get_info.
9152         (true_regnum): Likewise.
9153
9154         * rtlanal.c (subreg_info): Moved to ...
9155         * rtl.h (subreg_info): Here.  New.
9156         (subreg_get_info): New.
9157
9158         * rtlanal.c (subreg_get_info): Make it extern.
9159
9160 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9161
9162         PR target/39472
9163         * config/i386/i386.c (ix86_abi): New.
9164         (override_options): Handle -mabi=.
9165         (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi.
9166         (ix86_call_abi_override): Likewise.
9167         (init_cumulative_args): Likewise.
9168         (function_arg_advance): Likewise.
9169         (function_arg_64): Likewise.
9170         (function_arg): Likewise.
9171         (ix86_pass_by_reference): Likewise.
9172         (ix86_function_value_regno_p): Likewise.
9173         (ix86_build_builtin_va_list_abi): Likewise.
9174         (setup_incoming_varargs_64): Likewise.
9175         (is_va_list_char_pointer): Likewise.
9176         (ix86_init_machine_status): Likewise.
9177         (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi.
9178         (ix86_function_type_abi): Return enum calling_abi.  Rewrite
9179         for 64bit.  Replace DEFAULT_ABI with ix86_abi.
9180         (ix86_function_abi): Make it static and return enum calling_abi.
9181         (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
9182         with ix86_abi.
9183         (ix86_fn_abi_va_list): Updated.
9184
9185         * config/i386/i386.h (ix86_abi): New.
9186         (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
9187         (CONDITIONAL_REGISTER_USAGE): Likewise.
9188         (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
9189         (machine_function): Likewise.
9190
9191         * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
9192         with ix86_abi.
9193         * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
9194         (STACK_BOUNDARY): Likewise.
9195         * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
9196
9197         * config/i386/i386.opt (mabi=): New.
9198
9199         * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
9200         return enum calling_abi.
9201         (ix86_function_type_abi): Likewise.
9202         (ix86_function_abi): Removed.
9203
9204         * doc/invoke.texi: Document -mabi= option for x86.
9205
9206 2009-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9207
9208         * builtins.c (real_dconstp): Delete.
9209         (fold_builtin_logarithm): Remove inaccurate log(e) special case.
9210
9211 2009-03-27  Dodji Seketeli  <dodji@redhat.com>
9212             Jakub Jelinek  <jakub@redhat.com>
9213
9214         PR debug/37959
9215         * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute.
9216         (gen_subprogram_die): When a function is explicit, generate the
9217         DW_AT_explicit attribute.
9218         * langhooks.h (struct lang_hooks_for_decls): Add
9219         function_decl_explicit_p langhook.
9220         * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define.
9221         (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P.
9222
9223 2009-03-27  Jakub Jelinek  <jakub@redhat.com>
9224
9225         * builtins.c (fold_builtin_memory_op): Optimize memmove
9226         into memcpy if we can prove source and destination don't overlap.
9227
9228         * tree-inline.c: Include gt-tree-inline.h.
9229         (clone_fn_id_num): New variable.
9230         (clone_function_name): New function.
9231         (tree_function_versioning): Use it.
9232         * Makefile.in (GTFILES): Add tree-inline.c.
9233
9234 2009-03-27  Mark Mitchell  <mark@codesourcery.com>
9235
9236         * BASE-VER: Change to 4.5.0.
9237
9238 2009-03-27  Xinliang David Li  <davidxl@google.com>
9239
9240         PR tree-optimization/39557
9241         * tree-ssa.c (warn_uninitialized_vars): free postdom info.
9242
9243 2009-03-27  Xinliang David Li  <davidxl@google.com>
9244
9245         PR tree-optimization/39548
9246         * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy
9247         candidate check.
9248
9249 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9250
9251         * c-common.c (pointer_int_sum): Use %wd on return from
9252         tree_low_cst.
9253
9254 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
9255
9256         * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC
9257         on return from tree_low_cst.
9258
9259 2009-03-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
9260
9261         PR c++/36799
9262         * ginclude/stdarg.h (va_copy): Define also for
9263         __GXX_EXPERIMENTAL_CXX0X__.
9264
9265 2009-03-27  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
9266
9267         PR c++/35652
9268         * builtins.h (c_strlen): Do not warn here.
9269         * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum.
9270         * c-common.c (pointer_int_sum): Take an explicit location.
9271         Warn about offsets out of bounds.
9272         * c-common.h (pointer_int_sum): Adjust declaration.
9273
9274 2009-03-26  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9275
9276         * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo
9277         markup glitch.
9278
9279 2009-03-26  Jakub Jelinek  <jakub@redhat.com>
9280
9281         PR c++/39554
9282         * opts.c (warn_if_disallowed_function_p): Don't assume
9283         get_callee_fndecl must return non-NULL.
9284
9285 2009-03-26  Vladimir Makarov  <vmakarov@redhat.com>
9286
9287         PR rtl-optimization/39522
9288         * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too
9289         when reg_reloaded_valid is set.
9290
9291 2009-03-26  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9292
9293         * config/spu/divv2df3.c: New file.
9294         * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it.
9295         (DPBIT_FUNCS): Filter out _div_df.
9296
9297 2009-03-26  Bernd Schmidt  <bernd.schmidt@analog.com>
9298
9299         * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before
9300         a jump insn, count that jump in the distance to the loop start.
9301
9302 2009-03-25  Kaz Kojima  <kkojima@gcc.gnu.org>
9303
9304         PR target/39523
9305         * config/sh/sh.c (calc_live_regs): Fix condition for global
9306         registers except PIC_OFFSET_TABLE_REGNUM.
9307
9308 2009-03-25  Kai Tietz  <kai.tietz@onevision.com>
9309
9310         PR/39518
9311         * doc/invoke.texi (-mconsole): New.
9312         (-mcygwin): New.
9313         (-mno-cygwin): New.
9314         (-mdll): New.
9315         (-mnop-fun-dllimport): New.
9316         (-mthread): New.
9317         (-mwin32): New.
9318         (-mwindows): New.
9319         (sub section "i386 and x86-64 Windows Options"): New.
9320
9321 2009-03-25  Ralf Corsépius  <ralf.corsepius@rtems.org>
9322
9323         * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC.
9324         * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS.
9325
9326 2009-03-25  Richard Guenther  <rguenther@suse.de>
9327
9328         PR middle-end/39497
9329         * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead
9330         of -Wno-error.
9331
9332 2009-03-25  Andrey Belevantsev  <abel@ispras.ru>
9333
9334         * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when
9335         neither of haifa/selective schedulers are working.
9336
9337 2009-03-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9338
9339         * doc/invoke.texi (Debugging Options): Fix description of
9340         -fno-merge-debug-strings.
9341
9342 2009-03-24  Hans-Peter Nilsson  <hp@axis.com>
9343
9344         * config/cris/libgcc.ver: New version-script.
9345         * config/cris/t-linux (SHLIB_MAPFILES): Use it.
9346
9347         * configure.ac <GAS features, nop mnemonic>: Add pattern
9348         crisv32-*-* for "nop".
9349         <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32.
9350         * configure: Regenerate.
9351
9352 2009-03-24  Ira Rosen  <irar@il.ibm.com>
9353
9354         PR tree-optimization/39529
9355         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
9356         mark_sym_for_renaming for the tag copied to the new vector
9357         pointer.
9358
9359 2009-03-24  Arthur Loiret  <aloiret@debian.org>
9360
9361         * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha.
9362         * config/alpha/linux.h (host_detect_local_cpu): Declare, add to
9363         EXTRA_SPEC_FUNCTIONS.
9364         (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros.
9365         * config/alpha/driver-alpha.c, config/alpha/x-alpha: New.
9366         * doc/invoke.texi (DEC Alpha Options): Document 'native' value for
9367         -march and -mtune options.
9368
9369 2009-03-24  Ralf Corsépius  <ralf.corsepius@rtems.org>
9370
9371         * config/m68k/t-rtems: Add m5329 multilib.
9372
9373 2009-03-24  Dodji Seketeli  <dodji@redhat.com>
9374             Jakub Jelinek  <jakub@redhat.com>
9375
9376         PR debug/39524
9377         * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration
9378         nodes.
9379
9380 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
9381
9382         PR c/39495
9383         * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression
9384         instead of c_parser_expression_conv, if original_code isn't one of the
9385         4 allowed comparison codes, fail.
9386
9387 2009-03-23  Richard Guenther  <rguenther@suse.de>
9388
9389         * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts.
9390         * tree.h (struct tree_type): Likewise.
9391         * reload.h (struct insn_chain): Likewise.
9392         * dwarf2out.c (struct dw_loc_descr_struct): Likewise.
9393         * function.h (struct function): Likewise.
9394         * tree-ssa-structalias.c (struct equiv_class_label): Likewise.
9395
9396 2009-03-23  Jakub Jelinek  <jakub@redhat.com>
9397
9398         PR tree-optimization/39516
9399         * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable.
9400
9401 2009-03-23  Bingfeng Mei  <bmei@broadcom.com>
9402
9403         * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint
9404         should be set true if BITS_PER_WORD of target is bigger than 32
9405
9406 2009-03-22  Hans-Peter Nilsson  <hp@axis.com>
9407
9408         * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC):
9409         Translate -B-options to -rpath-link.  Correct existing
9410         rpath-link and conditionalize on !nostdlib.
9411
9412 2009-03-22  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9413
9414         * doc/extend.texi (Function Attributes, Variable Attributes):
9415         Fix typos.
9416         * doc/invoke.texi (Debugging Options, Optimize Options)
9417         (i386 and x86-64 Options, MCore Options): Likewise.
9418
9419 2009-03-20  Jakub Jelinek  <jakub@redhat.com>
9420
9421         PR debug/37890
9422         * dwarf2out.c (gen_namespace_die): Add context_die argument and use
9423         it for block local namespace aliases.
9424         (gen_decl_die): Pass context_die to gen_namespace_die.
9425
9426 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
9427
9428         PR c/39495
9429         * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s
9430         minimum or maximum value.
9431
9432 2009-03-19  Alexandre Oliva  <aoliva@redhat.com>
9433
9434         * reginfo.c (globalize_reg): Recompute derived reg sets.
9435
9436 2009-03-19  Ozkan Sezer  <sezeroz@gmail.com>
9437
9438         PR target/39063
9439         * libgcc2.c (mprotect): Do not use signed arguments for
9440         VirtualProtect, use DWORD arguments.  Also fix the 'may
9441         be used uninitialized' warning for the np variable.
9442
9443 2009-03-19  Jakub Jelinek  <jakub@redhat.com>
9444
9445         PR target/39496
9446         * config/i386/i386.c (ix86_function_regparm): Don't optimize local
9447         functions using regparm calling conventions when not optimizing.
9448         (ix86_function_sseregparm): Similarly for sseregparm calling
9449         conventions.
9450
9451 2009-03-19  Li Feng  <nemokingdom@gmail.com>
9452
9453         PR middle-end/39500
9454         * tree-data-ref.c (analyze_subscript_affine_affine): There is no
9455         dependence if the first conflict is after niter iterations.
9456
9457 2009-03-19  Hans-Peter Nilsson  <hp@axis.com>
9458
9459         PR middle-end/38609
9460         * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all
9461         functions with dynamic stack-pointer adjustments.
9462
9463 2009-03-19  Ben Elliston  <bje@au.ibm.com>
9464
9465         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data
9466         option; change to -msdata=data.
9467
9468 2009-03-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9469
9470         * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers,
9471         and -fopenmp.
9472
9473 2009-03-18  Eric Botcazou  <ebotcazou@adacore.com>
9474
9475         PR target/35180
9476         * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output.
9477
9478 2009-03-18  Sandra Loosemore  <sandra@codesourcery.com>
9479
9480         * doc/invoke.texi (Code Gen Options): Expand discussion of
9481         -fno-common.
9482
9483 2009-03-18  Jakub Jelinek  <jakub@redhat.com>
9484
9485         * dse.c (struct group_info): Reorder fields for 64-bit hosts.
9486         * matrix-reorg.c (struct matrix_info): Likewise.
9487         * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise.
9488         * rtl.h (struct mem_attrs): Likewise.
9489         * df.h (struct df): Likewise.
9490         * tree-data-ref.h (struct data_dependence_relation): Likewise.
9491         * ira-int.h (struct ira_allocno): Likewise.
9492         * df-scan.c (struct df_collection_rec): Likewise.
9493         * ira.c (struct equivalence): Likewise.
9494         * function.c (struct temp_slot): Likewise.
9495         * cfgloop.h (struct loop): Likewise.
9496
9497         PR debug/39485
9498         * function.c (use_register_for_decl): When not optimizing, disregard
9499         register keyword for variables with types containing methods.
9500
9501 2009-03-18  Sebastian Pop  <sebastian.pop@amd.com>
9502
9503         PR middle-end/39447
9504         * graphite.c (exclude_component_ref): Renamed contains_component_ref_p.
9505         (is_simple_operand): Call contains_component_ref_p before calling data
9506         reference analysis that would fail on COMPONENT_REFs.
9507
9508         * tree-vrp.c (search_for_addr_array): Fix formatting.
9509
9510 2009-03-18  Richard Guenther  <rguenther@suse.de>
9511
9512         * tree-vect-transform.c (vect_loop_versioning): Fold the
9513         generated comparisons.
9514         * tree-vectorizer.c (set_prologue_iterations): Likewise.
9515         (slpeel_tree_peel_loop_to_edge): Likewise.
9516
9517 2009-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
9518
9519         PR middle-end/37805
9520         * opts.c (print_specific_help): In addition to `undocumented',
9521         accept `separate' and `joined' flags if passed alone.  Describe
9522         output by the first matched one of those.
9523         (common_handle_option): Skip over empty strings.
9524         * gcc.c (display_help): Fix help string for `--help='.
9525         * doc/invoke.texi (Option Summary, Overall Options): With
9526         `--help=', classes and qualifiers can both be repeated, but
9527         only the latter can be negated.  One should not pass only
9528         negated qualifiers.  Fix markup and examples.
9529
9530         Revert
9531         2008-10-14  Jakub Jelinek  <jakub@redhat.com>
9532         PR middle-end/37805
9533         * opts.c (common_handle_option): Don't ICE on -fhelp=joined
9534         and -fhelp=separate.
9535
9536 2009-03-17  Jing Yu  <jingyu@google.com>
9537
9538         PR middle-end/39378
9539         * function.h (struct rtl_data): Move is_thunk from here...
9540         (struct function): ...to here.
9541         * cp/method.c (use_thunk): Change is_thunk from crtl to cfun.
9542         * varasm.c (assemble_start_function): Change is_thunk from crtl to
9543         cfun.
9544         * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to
9545         cfun.
9546         (alpha_does_function_need_gp, alpha_start_function): Likewise.
9547         (alpha_output_function_end_prologue): Likewise.
9548         (alpha_end_function, alpha_output_mi_thunk_osf): Likewise.
9549         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise.
9550         (rs6000_output_function_epilogue): Likewise.
9551         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise.
9552
9553 2009-03-17  Uros Bizjak  <ubizjak@gmail.com>
9554
9555         PR target/39482
9556         * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers
9557         from different units in a single alternative.
9558         (*truncdfsf_i387): Ditto.
9559         (*truncxfsf2_mixed): Ditto.
9560         (*truncxfdf2_mixed): Ditto.
9561
9562 2009-03-17  Jakub Jelinek  <jakub@redhat.com>
9563
9564         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow
9565         non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL.
9566
9567         PR debug/39474
9568         * tree-ssa-live.c (remove_unused_locals): Don't remove local
9569         unused non-artificial variables when not optimizing.
9570
9571         PR debug/39471
9572         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit
9573         DW_TAG_imported_module even if decl is IMPORTED_DECL with
9574         NAMESPACE_DECL in its DECL_INITIAL.
9575
9576         PR middle-end/39443
9577         * optabs.c (set_user_assembler_libfunc): New function.
9578         * expr.h (set_user_assembler_libfunc): New prototype.
9579         * c-common.c: Include libfuncs.h.
9580         (set_builtin_user_assembler_name): Call set_user_assembler_libfunc
9581         for memcmp, memset, memcpy, memmove and abort.
9582         * Makefile.in (c-common.o): Depend on libfuncs.h.
9583
9584         PR debug/39412
9585         * dwarf2out.c (gen_inlined_enumeration_type_die,
9586         gen_inlined_structure_type_die, gen_inlined_union_type_die,
9587         gen_tagged_type_instantiation_die): Removed.
9588         (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin
9589         do nothing.
9590
9591 2009-03-17  Janis Johnson  <janis187@us.ibm.com>
9592
9593         PR testsuite/38526
9594         * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment
9595         its use.
9596         (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest.
9597         (check-parallel-%): Ditto.
9598         (check-consistency): Ditto.
9599
9600 2009-03-17  Kai Tietz  <kai.tietz@onevision.com>
9601
9602         * ipa-struct-reorg.c (create_general_new_stmt): Initialize
9603         local variable rhs by NULL_TREE.
9604
9605 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9606
9607         PR target/39477
9608         * doc/extend.texi: Correct register behavior for regparm on Intel 386.
9609
9610 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9611
9612         PR target/39476
9613         * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit.
9614
9615 2009-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9616
9617         PR target/39473
9618         * config/i386/i386.c (ix86_expand_call): Check extra clobbers
9619         for ms->sysv ABI calls only in 64bit mode.
9620
9621         * config/i386/i386.md (untyped_call): Support 32bit.
9622
9623 2009-03-16  H.J. Lu  <hongjiu.lu@intel.com>
9624
9625         * doc/extend.texi: Replace x86_65 with x86_64.
9626
9627 2009-03-16  Jakub Jelinek  <jakub@redhat.com>
9628
9629         PR tree-optimization/39455
9630         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types
9631         mismatches for POINTER_TYPE_P (type).
9632         (number_of_iterations_le): Likewise.
9633
9634 2009-03-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
9635
9636         * config/picochip/picochip.c: Removed profiling support.
9637         * config/picochip/picochip.md: Removed profiling instruction.
9638         * config/picochip/picochip.h: Removed profiling builtin.
9639
9640 2009-03-16  Joseph Myers  <joseph@codesourcery.com>
9641
9642         * doc/install.texi (--with-host-libstdcxx): Document.
9643
9644 2009-03-14  Anatoly Sokolov  <aesok@post.ru>
9645
9646         PR target/34299
9647         * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for
9648         generate a warning if the function name does not begin with
9649         "__vector" and the function has either the 'signal' or 'interrupt'
9650         attribute, from here to ...
9651         (avr_declare_function_name): ...here. New function.
9652         * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine.
9653         * config/avr/avr-protos.h (avr_declare_function_name): Declare.
9654
9655 2009-03-14  Jakub Jelinek  <jakub@redhat.com>
9656
9657         PR bootstrap/39454
9658         * cse.c (fold_rtx): Don't modify original const_arg1 when
9659         canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a
9660         separate variable instead.
9661         * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything
9662         from out of range shift counts.
9663         (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly.
9664
9665 2009-03-13  Catherine Moore  <clm@codesourcery.com>
9666
9667         * config/i386/x-mingw32 (host-mingw32.o): Replace
9668         diagnostic.h with $(DIAGNOSTIC_H).
9669
9670 2009-03-12  Jakub Jelinek  <jakub@redhat.com>
9671
9672         PR target/39431
9673         * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New
9674         predicate.
9675         * config/i386/sync.md (sync_compare_and_swap<mode>,
9676         sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check
9677         if operands[1] is cmpxchg8b_pic_memory_operand, if not force address
9678         into a register.
9679         (sync_double_compare_and_swapdi_pic,
9680         sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be
9681         cmpxchg8b_pic_memory_operand instead of just memory_operand.
9682
9683 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
9684
9685         PR target/39445
9686         * config/i386/i386.c (ix86_expand_push): Don't set memory alignment.
9687
9688 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
9689
9690         PR target/39327
9691         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
9692         (avx_addsubv4df3): Likewise.
9693         (*avx_addsubv4sf3): Likewise.
9694         (sse3_addsubv4sf3): Likewise.
9695
9696 2009-03-12  H.J. Lu  <hongjiu.lu@intel.com>
9697
9698         PR target/38824
9699         * config/i386/i386.md: Compare REGNO on the new peephole2 patterns.
9700
9701 2009-03-12  Vladimir Makarov  <vmakarov@redhat.com>
9702
9703         PR debug/39432
9704         * ira-int.h (struct allocno): Fix comment for calls_crossed_num.
9705         * ira-conflicts.c (ira_build_conflicts): Prohibit call used
9706         registers for allocnos created from user-defined variables.
9707
9708 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9709
9710         PR target/39181
9711         * config/spu/spu.c (spu_expand_mov): Handle invalid subregs
9712         of non-integer mode as well.
9713
9714 2009-03-11  Adam Nemet  <anemet@caviumnetworks.com>
9715
9716         * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P
9717         for functions for which the parameter types are unknown.
9718
9719 2009-03-11  Jakub Jelinek  <jakub@redhat.com>
9720
9721         PR target/39137
9722         * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro.
9723         * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined.
9724         * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define.
9725         * config/i386/i386.c (ix86_local_alignment): For
9726         -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for
9727         long long variables on the stack to avoid dynamic realignment.
9728         Allow the first argument to be a decl rather than type.
9729         * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document.
9730
9731 2009-03-11  Nick Clifton  <nickc@redhat.com>
9732
9733         PR target/5362
9734         * config/mcore/mcore.opt: Remove deprecated m4align and m8align
9735         options.
9736         Add description to mno-lsim option.
9737         * config/mcore/mcore.h: Remove comment about deprecated m4align
9738         option.
9739         (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN.
9740         * doc/invoke.texi: Add description of mno-lsim and
9741         mstack-increment options.
9742
9743         * config/fr30/fr30.opt: Document the -mno-lsim option.
9744         * doc/invoke.texi: Add descriptions of the FR30's -msmall-model
9745         and -mno-lsim options.
9746
9747 2009-03-11  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9748
9749         * fold-const.c (fold_comparison): Only call fold_inf_compare
9750         if the mode supports infinities.
9751
9752 2009-03-11  Jason Merrill  <jason@redhat.com>
9753
9754         PR debug/39086
9755         * tree-nrv.c (tree_nrv): Don't do this optimization if the front
9756         end already did.  Notice GIMPLE_CALL modifications of the result.
9757         Don't copy debug information from an ignored decl or a decl from
9758         another function.
9759
9760 2009-03-10  Richard Guenther  <rguenther@suse.de>
9761             Nathan Froyd  <froydnj@codesourcery.com>
9762
9763         PR middle-end/37850
9764         * libgcc2.c (__mulMODE3): Use explicit assignments to form the result.
9765         (__divMODE3): Likewise.
9766
9767 2009-03-09  Jakub Jelinek  <jakub@redhat.com>
9768
9769         PR tree-optimization/39394
9770         * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and
9771         DECL_SIZE_UNIT of variable length FIELD_DECLs.
9772
9773 2009-03-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
9774
9775         * recog.c (verfiy_changes): Disallow renaming of hard regs in
9776         inline asms for register asm ("") declarations.
9777
9778 2009-03-09  Eric Botcazou  <ebotcazou@adacore.com>
9779
9780         * fold-const.c (fold_unary): Fix comment.
9781
9782 2009-03-07  Jan Hubicka  <jh@suse.cz>
9783
9784         PR target/39361
9785         * tree-inline.c (setup_one_parameter): Do replacement of const
9786         argument by constant in SSA form.
9787
9788 2009-03-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9789
9790         PR middle-end/38028
9791         * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to
9792         determine alignment passed to assign_stack_local.
9793         (assign_parms_unsplit_complex): Likewise.
9794         * except.c (sjlj_build_landing_pads): Likewise.
9795
9796 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
9797
9798         PR middle-end/39360
9799         * tree-flow.h (add_referenced_var): Return bool instead of void.
9800         * tree-dfa.c (add_referenced_var): Return result of
9801         referenced_var_check_and_insert call.
9802         * tree-inline.c (expand_call_inline): Call add_referenced_var instead
9803         of referenced_var_check_and_insert.
9804
9805         PR debug/39372
9806         * dwarf2out.c (add_abstract_origin_attribute): Return origin_die.
9807         (gen_variable_die): Emit DW_AT_location on abstract static variable's
9808         DIE, don't emit it if abstract origin already has it.
9809         * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any
9810         BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless.
9811
9812 2009-03-06  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
9813
9814         * genpreds.c (needs_variable): Fix parentheses at variable name
9815         detection.
9816         (write_tm_constrs_h): Indent generated code.
9817
9818 2009-03-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9819
9820         * doc/extend.texi (Function Attributes): Add documentation
9821         for isr attributes.
9822
9823 2009-03-06  Jakub Jelinek  <jakub@redhat.com>
9824
9825         PR debug/39387
9826         * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL
9827         take locus from its DECL_SOURCE_LOCATION instead of input_location.
9828
9829 2009-03-05  Bernd Schmidt  <bernd.schmidt@analog.com>
9830
9831         * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark
9832         the loop as bad.
9833
9834 2009-03-05  Jakub Jelinek  <jakub@redhat.com>
9835
9836         PR debug/39379
9837         * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs
9838         with blocks containing IMPORTED_DECLs in BLOCK_VARS.
9839
9840 2009-03-05  Uros Bizjak  <ubizjak@gmail.com>
9841
9842         * config/i386/i386.md (R8_REG, R9_REG): New constants.
9843         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named
9844         constants instead of magic numbers.
9845         (HARD_REGNO_CALLER_SAVE_MODE): Ditto.
9846         (QI_REG_P): Ditto.
9847         * config/i386/i386.c (x86_64_int_parameter_registers): Ditto.
9848         (x86_64_ms_abi_int_parameter_registers): Ditto.
9849         (x86_64_int_return_registers): Ditto.
9850         (ix86_maybe_switch_abi): Ditto.
9851         (ix86_expand_call): Ditto for clobbered_registers array.
9852         (ix86_hard_regno_mode_ok): Ditto.
9853         (x86_extended_QIreg_mentioned_p): Ditto.
9854
9855 2009-03-05  J"orn Rennecke  <joern.rennecke@arc.com>
9856
9857         PR tree-optimization/39349
9858         * cse.c (cse_insn): Fix loop to stop at VOIDmode.
9859
9860         * combine.c (gen_lowpart_for_combine): Use omode when generating
9861         clobber.
9862
9863 2009-03-04  J"orn Rennecke  <joern.rennecke@arc.com>
9864
9865         PR rtl-optimization/39235
9866         * loop-iv.c (get_simple_loop_desc): Use XCNEW.
9867
9868 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
9869
9870         * graphite.c (nb_reductions_in_loop): Update simple_iv arguments.
9871
9872 2009-03-04  Richard Guenther  <rguenther@suse.de>
9873
9874         PR tree-optimization/39362
9875         * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs
9876         that occur in abnormal PHIs should be varying.
9877
9878 2009-03-04  Zdenek Dvorak  <ook@ucw.cz>
9879
9880         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop):
9881         Extend comments.
9882         (simple_iv):  Take loop as an argument instead of statement.
9883         * tree-scalar-evolution.h (simple_iv): Declaration changed.
9884         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls
9885         to simple_iv.
9886         * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev):
9887         Ditto.
9888         * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto.
9889         * matrix-reorg.c (analyze_transpose): Ditto.
9890         * tree-data-ref.c (dr_analyze_innermost): Ditto.
9891         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
9892         * tree-predcom.c (ref_at_iteration): Ditto.
9893         * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
9894
9895 2009-03-04  Richard Guenther  <rguenther@suse.de>
9896
9897         PR tree-optimization/39358
9898         * tree-ssa-structalias.c (do_sd_constraint): Fix check for
9899         escaped_id and callused_id.
9900         (solve_graph): Likewise.
9901
9902 2009-03-04  Richard Guenther  <rguenther@suse.de>
9903
9904         PR tree-optimization/39339
9905         * tree-sra.c (try_instantiate_multiple_fields): Make it
9906         no longer ICE on the above.
9907
9908 2009-03-03  Joseph Myers  <joseph@codesourcery.com>
9909
9910         * emit-rtl.c (adjust_address_1): Reduce offset to a signed value
9911         that fits within Pmode.
9912
9913 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
9914
9915         PR middle-end/10109
9916         * tm.texi (LIBCALL_VALUE): Update description.
9917
9918 2009-03-03  Steve Ellcey  <sje@cup.hp.com>
9919
9920         PR middle-end/34443
9921         * doc/extend.texi (section): Update description.
9922
9923 2009-03-03  H.J. Lu  <hongjiu.lu@intel.com>
9924
9925         PR middle-end/39345
9926         * tree-inline.c (remapped_type): New.
9927         (can_be_nonlocal): Call remapped_type instead of remap_type.
9928
9929 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
9930
9931         PR fortran/39354
9932         * gimplify.c (goa_stabilize_expr): Handle tcc_comparison,
9933         TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR.
9934
9935 2009-03-03  Richard Guenther  <rguenther@suse.de>
9936
9937         PR middle-end/39272
9938         * tree.c (tree_nonartificial_location): New function.
9939         * tree.h (tree_nonartificial_location): Declare.
9940         * builtins.c (expand_builtin_memory_chk): Provide location
9941         of the call location for artificial function pieces.
9942         (maybe_emit_chk_warning): Likewise.
9943         (maybe_emit_sprintf_chk_warning): Likewise.
9944         (maybe_emit_free_warning): Likewise.
9945         * expr.c (expand_expr_real_1): Likewise.
9946
9947 2009-03-03  Jakub Jelinek  <jakub@redhat.com>
9948
9949         PR tree-optimization/39343
9950         * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if
9951         COMPONENT_REF t has ARRAY_TYPE.
9952
9953 2009-03-02  Sebastian Pop  <sebastian.pop@amd.com>
9954
9955         PR middle-end/39335
9956         * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert
9957         when the type precision of the induction variable should be
9958         larger than the type precision of nit.
9959         (gen_parallel_loop): Update use of canonicalize_loop_ivs.
9960         * graphite.c (graphite_loop_normal_form): Same.
9961         * tree-flow.h (canonicalize_loop_ivs): Update declaration.
9962
9963 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
9964
9965         * config/i386/i386.md (ST?_REG, MM?_REG): New constants.
9966         (*call_1_rex64_ms_sysv): Use named constants instead of magic
9967         numbers to describe clobbered registers.
9968         (*call_value_0_rex64_ms_sysv): Ditto.
9969         * config/i386/mmx.md (mmx_emms): Ditto.
9970         (mmx_femms): Ditto.
9971
9972 2009-03-02  Richard Sandiford  <rdsandiford@googlemail.com>
9973
9974         * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling
9975         of ABI_64.
9976
9977 2009-03-02  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9978
9979         * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define.
9980         (spu_section_type_flags): New function.
9981
9982 2009-03-02  Uros Bizjak  <ubizjak@gmail.com>
9983
9984         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy
9985         reg_class_contents of FLOAT_REGS into a temporary.
9986
9987 2009-03-02  Richard Guenther  <rguenther@suse.de>
9988             Ira Rosen  <irar@il.ibm.com>
9989
9990         PR tree-optimization/39318
9991         * tree-vect-transform.c (vectorizable_call): Transfer the EH region
9992         information to the vectorized statement.
9993
9994 2009-03-01  Uros Bizjak  <ubizjak@gmail.com>
9995
9996         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i"
9997         variable.  Use defined names instead of magic constants for REX SSE
9998         registers.
9999
10000 2009-03-01  Richard Guenther  <rguenther@suse.de>
10001
10002         PR tree-optimization/39331
10003         * omp-low.c (lower_send_shared_vars): Do not receive new
10004         values for the reference of DECL_BY_REFERENCE parms or results.
10005
10006 2009-03-01  Jan Hubicka  <jh@suse.cz>
10007
10008         PR debug/39267
10009         * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS,
10010         BLOCK_NONLOCALIZED_VAR): New macros.
10011         (tree_block): Add nonlocalized_vars.
10012         * dwarf2out.c (gen_formal_parameter_die, gen_variable_die,
10013         gen_decl_die): Add origin argument.  Allow generation of die with
10014         origin at hand only.
10015         (gen_member_die, gen_type_die_with_usage, force_decl_die,
10016         declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use
10017         of gen_*.
10018         (gen_block_die): Fix checking for unused blocks.
10019         (process_scope_var): Break out from .... ; work with origins only.
10020         (decls_for_scope) ... here; process nonlocalized list.
10021         (dwarf2out_ignore_block): Look for nonlocalized vars.
10022         * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized
10023         vars.
10024         (dump_scope_block): Dump them.
10025         * tree-inline.c (remap_decls): Handle nonlocalized vars.
10026         (remap_block): Likewise.
10027         (can_be_nonlocal): New predicate.
10028         (copy_bind_expr, copy_gimple_bind): Update use of remap_block.
10029
10030 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10031
10032         * configure: Regenerate.
10033
10034 2009-03-01  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
10035
10036         * optc-gen.awk: No need to duplicate option flags twice.
10037         Reuse help texts for duplicate options which do not have any.
10038
10039         * gcc.c (display_help): Document --version.
10040
10041         * gcc.c (main): If print_help_list and verbose_flag, ensure
10042         driver output comes before subprocess output.
10043
10044         * optc-gen.awk: Assign all remaining fields to help string,
10045         space-separated, for multi-line help in *.opt.
10046
10047         * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only.
10048         -Wno-pedantic-ms-format is for MinGW targets only.
10049
10050         * doc/options.texi (Option file format): Fix bad indentation,
10051         restoring dropped sentence.
10052
10053 2009-02-28  Jan Hubicka  <jh@suse.cz>
10054
10055         * tree-inline.c (tree_function_versioning): Output debug info.
10056
10057 2009-02-28  Jan Hubicka  <jh@suse.cz>
10058
10059         PR debug/39267
10060         * tree-inline.c (setup_one_parameter): Do not copy propagate
10061         arguments when not optimizing.
10062
10063 2009-02-28  H.J. Lu  <hongjiu.lu@intel.com>
10064
10065         PR target/39327
10066         * config/i386/sse.md (avx_addsubv8sf3): Correct item bits.
10067         (avx_addsubv4df3): Likewise.
10068         (*avx_addsubv4sf3): Likewise.
10069         (sse3_addsubv4sf3): Likewise.
10070         (*avx_addsubv2df3): Likewise.
10071         (sse3_addsubv2df3): Likewise.
10072         (avx_unpckhps256): Correct item selectors.
10073         (avx_unpcklps256): Likewise.
10074         (avx_unpckhpd256): Likewise.
10075         (avx_unpcklpd256): Likewise.
10076
10077 2009-02-28  Jan Hubicka  <jh@suse.cz>
10078
10079         * tree-inline.c (expand_call_inline): Avoid duplicate declarations of
10080         static vars.
10081         (copy_arguments_for_versioning): If var is declared don't declare it.
10082         (tree_function_versioning): First setup substitutions and then copy
10083         args.
10084
10085 2009-02-27  Jan Hubicka  <jh@suse.cz>
10086
10087         PR debug/39267
10088         * cgraph.h (varpool_output_debug_info): Remove.
10089         * cgraphunit.c (varpool_output_debug_info): Remove.
10090         * dwarf2out.c (deferred_locations_struct): New struct
10091         (deferred_locations): New type.
10092         (deferred_locations_list): New static var.
10093         (deffer_location): New function.
10094         (gen_variable_die): Use it.
10095         (decls_for_scope): Output info on local static vars.
10096         (dwarf2out_finish): Process deferred locations.
10097         * varpool.c (varpool_output_debug_info): Remove.
10098
10099 2009-02-27  Jan Hubicka  <jh@suse.cz>
10100
10101         PR debug/39267
10102         * tree.h (TREE_PROTECTED): Fix comment.
10103         (BLOCK_HANDLER_BLOCK): Remove.
10104         (struct tree_block): Remove handler_block add body_block.
10105         (inlined_function_outer_scope_p): New.
10106         (is_body_block): Remove.
10107         * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK.
10108         * dwarf2out.c (is_inlined_entry_point): Remove.
10109         (add_high_low_attributes): Use inlined_function_outer_scope_p.
10110         (gen_block_die): Use is_inlined_entry_point check.  Remove body block
10111         code.
10112         * langhooks.h (struct lang_hooks): Remove no_bodu_blocks.
10113         * gimplify.c (gimplify_expr): Gimplify body blocks.
10114         * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper
10115         block with multiple subblocks.
10116         (dump_scope_block): Prettier output; dump more flags and info.
10117         (dump_scope_blocks): New.
10118         (remove_unused_locals): Use dump_scope_blocks.
10119         * tree-flow.h (dump_scope_blocks): Declare.
10120         * tree-cfg.c (execute_build_cfg): Dump scope blocks.
10121         * stmt.c (is_body_block): Remove.
10122         * tree-inline.c (remap_block): Copy BODY_BLOCK info.
10123         * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove.
10124
10125 2009-02-27  Sebastian Pop  <sebastian.pop@amd.com>
10126
10127         PR middle-end/39308
10128         * graphite.c (graphite_loop_normal_form): Do not call
10129         number_of_iterations_exit from a gcc_assert.
10130
10131 2009-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10132
10133         * config/s390/s390.c (s390_swap_cmp): Look for conditional
10134         jumps if COND is NULL.
10135         (find_cond_jump): New function.
10136         (s390_z10_optimize_cmp): Handling for reg-reg compares added.
10137         * config/s390/s390.md: Remove z10_cobra attribute value.
10138
10139 2009-02-26  Uros Bizjak  <ubizjak@gmail.com>
10140
10141         * config/alpha/alpha.h (alpha_expand_mov): Return false if
10142         force_const_mem returns NULL_RTX.
10143
10144 2009-02-26  Jan Hubicka  <jh@suse.cz>
10145
10146         PR debug/39267
10147         * cgraph.h (varpool_output_debug_info): Remove.
10148         * cgraphunit.c (varpool_output_debug_info): Remove.
10149         * dwarf2out.c (deferred_locations_struct): New struct
10150         (deferred_locations): New type.
10151         (deferred_locations_list): New static var.
10152         (deffer_location): New function.
10153         (gen_variable_die): Use it.
10154         (decls_for_scope): Output info on local static vars.
10155         (dwarf2out_finish): Process deferred locations.
10156         * varpool.c (varpool_output_debug_info): Remove.
10157
10158 2009-02-25  H.J. Lu  <hongjiu.lu@intel.com>
10159
10160         PR rtl-optimization/39241
10161         * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls
10162         to subreg_offset_representable_p.
10163
10164 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
10165
10166         * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass
10167         execute function prototype.  Get f and nregs from max_reg_num
10168         and get_insns.  Remove the first backward pass as it's dead,
10169         guard the forward pass by flag_expensive_optimizations.
10170         (rest_of_handle_regmove): Delete.
10171         (pass_regmove): Replace it with regmove_optimize.
10172
10173 2009-02-25  Martin Jambor  <mjambor@suse.cz>
10174
10175         PR tree-optimization/39259
10176         * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and
10177         calls_alloca function flags.
10178         (copy_bb): Set calls_setjmp and alls_alloca function flags if such
10179         calls are detected.
10180
10181 2009-02-25  Paolo Bonzini  <bonzini@gnu.org>
10182
10183         * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones,
10184         flags_set_1_rtx, flags_set_1_set): Delete.
10185         (regmove_optimize): Do not call mark_flags_life_zones.
10186
10187 2009-02-24  Julian Brown  <julian@codesourcery.com>
10188
10189         PR target/35965
10190         * config/arm/arm.c (require_pic_register): Only set
10191         cfun->machine->pic_reg once per function.
10192
10193 2009-02-24  Sandra Loosemore  <sandra@codesourcery.com>
10194
10195         * doc/invoke.texi (Link Options): Document an easier way to pass
10196         options that take arguments to the GNU linker using -Xlinker and -Wl.
10197
10198 2009-02-24  Steve Ellcey  <sje@cup.hp.com>
10199
10200         PR target/33785
10201         * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description.
10202
10203 2009-02-24  Richard Guenther  <rguenther@suse.de>
10204
10205         PR debug/39285
10206         * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs.
10207
10208 2009-02-24  Richard Guenther  <rguenther@suse.de>
10209             Zdenek Dvorak  <ook@ucw.cz>
10210
10211         PR tree-optimization/39233
10212         * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers
10213         from converting them to a generic type.
10214
10215 2009-02-23  Sebastian Pop  <sebastian.pop@amd.com>
10216
10217         PR tree-optimization/39260
10218         * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block
10219         contains a condition with a real type.
10220         (build_scop_conditions_1): Conditions are always last_stmt of a bb.
10221
10222 2009-02-23  Jason Merrill  <jason@redhat.com>
10223
10224         PR c++/38880
10225         * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check
10226         narrowing_initializer_constant_valid_p.
10227         (narrowing_initializer_constant_valid_p): Don't return
10228         null_pointer_node for adding a pointer to itself.
10229
10230 2009-02-23  Jan Hubicka  <jh@suse.cz>
10231
10232         PR c/12245
10233         * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when
10234         resizing.
10235
10236 2009-02-23  Jan Hubicka  <jh@suse.cz>
10237
10238         PR tree-optimization/37709
10239         * tree.c (block_ultimate_origin): Move here from dwarf2out.
10240         * tree.h (block_ultimate_origin): Declare.
10241         * dwarf2out.c (block_ultimate_origin): Move to tree.c
10242         * tree-ssa-live.c (remove_unused_scope_block_p):
10243         Eliminate blocks containig no instructions nor live variables nor
10244         nested blocks.
10245         (dump_scope_block): New function.
10246         (remove_unused_locals): Enable removal of dead blocks by default;
10247         enable dumping at TDF_DETAILS.
10248
10249 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
10250
10251         * config/i386/i386.c (classify_argument): Don't allow COImode
10252         and OImode.
10253         (function_arg_advance_32): Don't allow OImode.
10254         (function_arg_32): Likewise.
10255         (function_value_32): Likewise.
10256         (return_in_memory_32): Likewise.
10257         (function_arg_64): Remove OImode comment.
10258
10259 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
10260
10261         PR target/39261
10262         * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
10263         ix86_expand_vector_set for V4DImode in 64bit mode only.
10264         (ix86_expand_vector_init_one_var): Likewise.
10265
10266 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
10267
10268         * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
10269
10270 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
10271
10272         PR bootstrap/39257
10273         * loop-iv.c: Revert last change.
10274         * emit-rtl.c: Likewise.
10275
10276 2009-02-21  H.J. Lu  <hongjiu.lu@intel.com>
10277
10278         PR target/39256
10279         * config/i386/i386.c (type_natural_mode): Remove an extra
10280         space in the warning message.
10281         (function_value_32): Handle 32-byte vector modes.
10282         (return_in_memory_32): Likewise.
10283
10284 2009-02-21  Richard Sandiford  <rdsandiford@googlemail.com>
10285
10286         * loop-iv.c (truncate_value): New function.
10287         (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead
10288         of lowpart_subreg.
10289         (lowpart_subreg): Move to...
10290         * emit-rtl.c: ...here.
10291
10292 2009-02-21  Danny Smith  <dannysmith@users.sourceforge.net>
10293
10294         * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert
10295         accidental and undocumented change at revision 140860.
10296
10297 2009-02-21  Joseph Myers  <joseph@codesourcery.com>
10298
10299         * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to
10300         take gimple_seq * arguments.
10301         (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to
10302         types_compatible_p langhook.
10303
10304 2009-02-20  Mark Mitchell  <mark@codesourcery.com>
10305             Joseph Myers  <joseph@codesourcery.com>
10306
10307         * config/arm/arm.c (arm_builtin_va_list): New function.
10308         (arm_expand_builtin_va_start): Likewise.
10309         (arm_gimplify_va_arg_expr): Likewise.
10310         (TARGET_BUILD_BUILTIN_VA_LIST): Define.
10311         (TARGET_BUILD_BUILTIN_VA_START): Likewise.
10312         (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise.
10313         (va_list_type): New variable.
10314         (arm_mangle_type): Mangle va_list_type appropriately.
10315
10316 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
10317
10318         PR middle-end/39157
10319         * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H).
10320         * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define.
10321         * params.def (loop-invariant-max-bbs-in-loop): New parameter.
10322         * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop
10323         parameter to 1000 for -O1 by default.
10324         * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new
10325         parameter.
10326         * loop-invariant.c: Include params.h.
10327         (move_loop_invariants): Don't call move_single_loop_invariants on
10328         very large loops.
10329
10330 2009-02-20  Jaka Mocnik  <jaka@xlab.si>
10331
10332         * calls.c (emit_library_call_value_1): Use slot_offset instead of
10333         offset when calculating bounds for indexing stack_usage_map.  Fixes
10334         a buffer overflow with certain target setups.
10335
10336 2009-02-20  Jakub Jelinek  <jakub@redhat.com>
10337
10338         PR target/39240
10339         * calls.c (expand_call): Clear try_tail_call if caller and callee
10340         disagree in promotion of function return value.
10341
10342 2009-02-19  Jakub Jelinek  <jakub@redhat.com>
10343
10344         PR target/39175
10345         * c-common.c (c_determine_visibility): If visibility changed and
10346         DECL_RTL has been already set, call make_decl_rtl to update symbol
10347         flags.
10348
10349 2009-02-19  H.J. Lu  <hongjiu.lu@intel.com>
10350
10351         PR c++/39188
10352         * varasm.c (assemble_variable): Don't check DECL_NAME when
10353         globalizing a variable.
10354
10355 2009-02-19  Joseph Myers  <joseph@codesourcery.com>
10356
10357         PR c/38483
10358         * builtins.c (gimplify_va_arg_expr): Evaluate the va_list
10359         expression before any __builtin_trap call.
10360         * c-typeck.c (build_function_call): Convert and check function
10361         arguments before generating a call to a trap.  Evaluate the
10362         function arguments before the trap.
10363
10364 2009-02-19  Uros Bizjak  <ubizjak@gmail.com>
10365
10366         PR target/39228
10367         * config/i386/i386.md (isinfxf2): Split from isinf<mode>2.
10368         (UNSPEC_FXAM_MEM): New unspec.
10369         (fxam<mode>2_i387_with_temp): New insn and split pattern.
10370         (isinf<mode>2): Use MODEF mode iterator.  Force operand[1] through
10371         memory using fxam<mode>2_i387_with_temp to remove excess precision.
10372
10373 2009-02-19  Richard Guenther  <rguenther@suse.de>
10374
10375         PR tree-optimization/39207
10376         PR tree-optimization/39074
10377         * tree-ssa-structalias.c (storedanything_id, var_storedanything,
10378         storedanything_tree): New.
10379         (do_ds_constraint): Simplify ANYTHING shortcutting.  Update
10380         the STOREDANYTHING solution if the lhs solution contains ANYTHING.
10381         (build_succ_graph): Add edges from STOREDANYTHING to all
10382         non-direct nodes.
10383         (init_base_vars): Initialize STOREDANYTHING.
10384         (compute_points_to_sets): Free substitution info after
10385         building the succ graph.
10386         (ipa_pta_execute): Likewise.
10387
10388         * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers
10389         field.
10390         (do_ds_constraint): Do not add to special var or non-pointer
10391         field solutions.
10392         (type_could_have_pointers): Split out from ...
10393         (could_have_pointers): ... here.  For arrays use the element type.
10394         (create_variable_info_for): Initialize may_have_pointers.
10395         (new_var_info): Likewise.
10396         (handle_lhs_call): Make the HEAP variable unknown-sized.
10397         (intra_create_variable_infos): Use a type with pointers for
10398         PARM_NOALIAS, make it unknown-sized.
10399
10400 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
10401
10402         PR target/39224
10403         * config/i386/i386.c (ix86_return_in_memory): Properly check ABI.
10404
10405 2009-02-18  Jason Merrill  <jason@redhat.com>
10406
10407         PR target/39179
10408         * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero
10409         value if DECL_EXTERNAL.
10410         * tree-sra.c (sra_walk_gimple_assign): Likewise.
10411         * target.h (gcc_target::binds_local_p): Clarify "module".
10412         * tree.h (TREE_PUBLIC): Clarify "module".
10413
10414 2009-02-17  Xuepeng Guo  <xuepeng.guo@intel.com>
10415
10416         PR target/38891
10417         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of
10418         initialization for MS_ABI prior to the hunk of !TARGET_MMX.
10419
10420 2009-02-17  H.J. Lu  <hongjiu.lu@intel.com>
10421
10422         PR target/39082
10423         * c.opt (Wabi): Support C and ObjC.
10424         (Wpsabi): New.
10425
10426         * c-opts.c (c_common_handle_option): Handle OPT_Wabi.
10427
10428         * config/i386/i386.c (classify_argument): Warn once about the ABI
10429         change when passing union with long double.
10430
10431         * doc/invoke.texi: Update -Wabi for warning psABI changes.
10432
10433 2009-02-18  Joseph Myers  <joseph@codesourcery.com>
10434
10435         PR c/35447
10436         * c-parser.c (c_parser_compound_statement): Always enter and leave
10437         a scope.
10438
10439 2009-02-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10440
10441         PR target/34587
10442         * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define.
10443
10444 2009-02-18  Jakub Jelinek  <jakub@redhat.com>
10445
10446         PR tree-optimization/36922
10447         * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR.
10448         * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1):
10449         Likewise.
10450
10451 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
10452
10453         * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm
10454         to 0 for EABI64.
10455
10456 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
10457
10458         * config/mips/mips.md (type): Reclassify lui_movf as "unknown".
10459
10460 2009-02-17  Richard Sandiford  <rdsandiford@googlemail.com>
10461
10462         * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid
10463         tree sharing.
10464
10465 2009-02-17  Ruan Beihong  <ruanbeihong@gmail.com>
10466             Richard Sandiford  <rdsandiford@googlemail.com>
10467
10468         * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete.
10469         * config/mips/loongson.md (reduc_uplus_<mode>): Rename to...
10470         (loongson_biadd): ...this.
10471
10472 2009-02-17  Richard Guenther  <rguenther@suse.de>
10473
10474         PR tree-optimization/39202
10475         * tree-ssa-structalias.c (do_structure_copy): Before collapsing
10476         a var make sure to follow existing collapses.
10477
10478 2009-02-17  Richard Guenther  <rguenther@suse.de>
10479
10480         PR middle-end/39214
10481         * langhooks.c (lhd_print_error_function): Check for NULL block.
10482
10483 2009-02-17  Richard Guenther  <rguenther@suse.de>
10484
10485         PR tree-optimization/39204
10486         * tree-ssa-pre.c (phi_translate_1): Lookup the value-number
10487         of the PHI arg.
10488
10489 2009-02-17  Uros Bizjak  <ubizjak@gmail.com>
10490
10491         * config/soft-fp/double.h: Update from glibc CVS.
10492
10493 2009-02-17  Richard Guenther  <rguenther@suse.de>
10494
10495         PR tree-optimization/39207
10496         * tree-ssa-structalias.c (find_what_p_points_to): Do not emit
10497         strict-aliasing warnings for pointers pointing to NULL.
10498
10499 2009-02-16  Joseph Myers  <joseph@codesourcery.com>
10500
10501         PR c/35446
10502         * c-parser.c (c_parser_braced_init): Call pop_init_level when
10503         skipping until next close brace.
10504
10505 2009-02-16  H.J. Lu  <hongjiu.lu@intel.com>
10506
10507         PR target/37049
10508         * config/i386/i386.c (ix86_expand_push): Set memory alignment
10509         to function argument boundary.
10510
10511 2009-02-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
10512
10513         * config/picochip/picochip.md (lea_add): Allow any nonimmediate
10514         in the lea_add. Reload eventually constraints it properly.
10515         * config/picochip/constraints.md: Remove the target constraint
10516         "b", since it is not needed anymore.
10517
10518 2009-02-16  Jakub Jelinek  <jakub@redhat.com>
10519
10520         * gthr-dce.h: Uglify function parameter and local variable names.
10521         * gthr-gnat.h: Likewise.
10522         * gthr-mipssde.h: Likewise.
10523         * gthr-nks.h: Likewise.
10524         * gthr-posix95.h: Likewise.
10525         * gthr-posix.h: Likewise.
10526         * gthr-rtems.h: Likewise.
10527         * gthr-single.h: Likewise.
10528         * gthr-solaris.h: Likewise.
10529         * gthr-tpf.h: Likewise.
10530         * gthr-vxworks.h: Likewise.
10531         * gthr-win32.h: Likewise.
10532
10533 2009-02-15  H.J. Lu  <hongjiu.lu@intel.com>
10534
10535         PR target/39196
10536         * config/i386/i386.md: Restrict the new peephole2 to move
10537         between MMX/SSE registers.
10538
10539 2009-02-15  Richard Guenther  <rguenther@suse.de>
10540
10541         Revert
10542         2009-02-13  Richard Guenther  <rguenther@suse.de>
10543
10544         * configure.ac: Enable LFS.
10545         * configure: Re-generate.
10546         * config.in: Likewise.
10547
10548 2009-02-13  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10549
10550         * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw,
10551         spu_srqwbyte, spu_srqwbytebc): Define.
10552         * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw,
10553         spu_srqwbyte, spu_srqwbytebc): New overloaded builtins.
10554         * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>",
10555         "shrqby_<mode>"): New insn-and-split patterns.
10556         * config/spu/spu.c (expand_builtin_args): Determine and return
10557         number of operands using spu_builtin_description data.
10558         (spu_expand_builtin_1): Use it.
10559
10560 2009-02-13  Steve Ellcey  <sje@cup.hp.com>
10561
10562         PR target/38056
10563         * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check
10564         TARGET_CONST_GP.
10565
10566 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
10567
10568         PR target/39149
10569         * config/i386/i386.c (override_options): Correct warning
10570         messages for -malign-loops, -malign-jumps and -malign-functions.
10571
10572 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
10573
10574         PR target/39152
10575         * config/i386/i386.md: Restrict the new peephole2 to move
10576         between the general purpose registers.
10577
10578 2009-02-13  H.J. Lu  <hongjiu.lu@intel.com>
10579
10580         PR target/39162
10581         * config/i386/i386.c (type_natural_mode): Add a new argument.
10582         Return the original mode and warn ABI change if vector size is 32byte.
10583         (function_arg_advance): Updated.
10584         (function_arg): Likewise.
10585         (ix86_function_value): Likewise.
10586         (ix86_return_in_memory): Likewise.
10587         (ix86_sol10_return_in_memory): Likewise.
10588         (ix86_gimplify_va_arg): Likewise.
10589         (function_arg_32): Don't warn ABX ABI change here.
10590         (function_arg_64): Likewise.
10591
10592 2009-02-13  Bernd Schmidt  <bernd.schmidt@analog.com>
10593
10594         * loop-iv.c (implies_p): In the final case, test that operands 0
10595         of the two comparisons match.
10596
10597         * config/bfin/bfin.c (find_prev_insn_start): New function.
10598         (bfin_optimize_loop): Use it in some cases instead of PREV_INSN.
10599         (find_next_insn_start): Move.
10600
10601 2009-02-13  Richard Guenther  <rguenther@suse.de>
10602
10603         * configure.ac: Enable LFS.
10604         * configure: Re-generate.
10605         * config.in: Likewise.
10606
10607 2009-02-13  Joseph Myers  <joseph@codesourcery.com>
10608
10609         PR c/35444
10610         * c-parser.c (c_parser_parms_list_declarator): Discard pending
10611         sizes on syntax error after some arguments have been parsed.
10612
10613 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
10614
10615         * doc/invoke.texi (-fira): Remove.
10616
10617 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
10618
10619         * caller-save.c: Replace regclass.c with reginfo.c in comments.
10620         * recog.c: Likewise.
10621         * rtl.h: Likewise.
10622
10623 2009-02-12  Uros Bizjak  <ubizjak@gmail.com>
10624
10625         * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2.
10626         (umul_ppmm): Likewise.
10627         (count_leading_zeros): Likewise.
10628         (count_trailing_zeros): Likewise.
10629         (UMUL_TIME): Likewise.
10630
10631 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
10632
10633         * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and
10634         soft-fp/t-softfp to tmake_file.
10635
10636         * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New.
10637         (ia64_expand_compare): Use HPUX library for TFmode only for HPUX.
10638         (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ,
10639         IA64_BUILTIN_INFQ]: New.
10640         (ia64_init_builtins): Initialize __builtin_infq,
10641         __builtin_fabsq and __builtin_copysignq if not HPUX.
10642         (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ,
10643         IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ.
10644
10645         * config/ia64/lib1funcs.asm (__divtf3): Define only if
10646         SHARED is defined.
10647         (__fixtfti): Likewise.
10648         (__fixunstfti): Likewise.
10649         (__floattitf): Likewise.
10650
10651         * config/ia64/libgcc-glibc.ver: New.
10652         * config/ia64/t-fprules-softfp: Likewise.
10653         * config/ia64/sfp-machine.h: Likewise.
10654
10655         * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New.
10656         (LIBGCC2_TF_CEXT): Likewise.
10657         (TF_SIZE): Likewise.
10658         (TARGET_INIT_LIBFUNCS): Likewise.
10659
10660         * config/ia64/t-glibc (SHLINB_MAPFILES):
10661         Add $(srcdir)/config/ia64/libgcc-glibc.ver.
10662
10663 2009-02-12  H.J. Lu  <hongjiu.lu@intel.com>
10664
10665         * config/i386/i386.c (construct_container): Rewrite processing
10666         BLKmode with X86_64_SSE_CLASS.
10667
10668 2009-02-12  Paolo Bonzini  <bonzini@gnu.org>
10669
10670         PR target/39152
10671         * config/i386/i386.md: Replace simplify_replace_rtx with
10672         replace_rtx in the new peephole2.
10673
10674 2009-02-12  Nathan Sidwell  <nathan@codesourcery.com>
10675
10676         * doc/invoke.texi (Optimize Options): Stop claiming inlining and
10677         loop unrolling do not happen at -O2.
10678
10679 2009-02-12  Michael Matz  <matz@suse.de>
10680
10681         * gcc.c (ASM_DEBUG_SPEC): Check for -g0.
10682
10683 2009-02-12  Jakub Jelinek  <jakub@redhat.com>
10684
10685         * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die
10686         for -g3.
10687
10688 2009-02-12  Ben Elliston  <bje@au.ibm.com>
10689
10690         * config/rs6000/rs6000.md (allocate_stack): Use _stack form of
10691         patterns when updating the back chain.  Missed in the 2009-02-10
10692         change.
10693
10694 2009-02-11  Janis Johnson  <janis187@us.ibm.com>
10695
10696         * doc/extend.texi (Decimal Floating Types): Update identifier of
10697         draft TR and list of missing support.
10698
10699 2009-02-11  Jakub Jelinek  <jakub@redhat.com>
10700
10701         PR middle-end/39154
10702         * gimplify.c (omp_notice_variable): If adding GOVD_SEEN
10703         bit to variable length decl's flags, add it also to its
10704         pointer replacement variable.
10705
10706 2009-02-11  Uros Bizjak  <ubizjak@gmail.com>
10707             Jakub Jelinek  <jakub@redhat.com>
10708
10709         PR target/39118
10710         * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant.
10711         (memory_blockage): New expander.
10712         (*memory_blockage): New insn pattern.
10713         * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage
10714         instead of general blockage at the end of function prologue when
10715         frame pointer is used to access red zone area.  Do not emit blockage
10716         when profiling, it is emitted in generic code.
10717         (ix86_expand_epilogue): Emit memory_blockage at the beginning of
10718         function epilogue when frame pointer is used to access red zone area.
10719
10720 2009-02-11  Paolo Bonzini  <bonzini@gnu.org>
10721
10722         PR target/38824
10723         * config/i386/i386.md: Add two new peephole2 to avoid mov followed
10724         by arithmetic with memory operands.
10725         * config/i386/predicates.md (commutative_operator): New.
10726
10727 2009-02-10  Janis Johnson  <janis187@us.ibm.com>
10728
10729         * doc/extend.texi (Fixed-Point Types): Break long paragraphs into
10730         bulleted lists.
10731
10732 2009-02-10  Eric Botcazou  <ebotcazou@adacore.com>
10733
10734         * alias.h (record_alias_subset): Declare.
10735         * alias.c (record_alias_subset): Make global.
10736
10737 2009-02-10  Nick Clifton  <nickc@redhat.com>
10738
10739         * tree-parloops.c: Change license to GPLv3.
10740         * ipa-struct-reorg.c: Change license to GPLv3.
10741         * ipa-struct-reorg.h: Change license to GPLv3.
10742
10743 2009-02-10  Steve Ellcey  <sje@cup.hp.com>
10744
10745         PR c/39084
10746         * c-decl.c (start_struct): Return NULL on error.
10747
10748 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
10749
10750         PR middle-end/39124
10751         * cfgloopmanip.c (remove_path): Call remove_bbs after
10752         cancel_loop_tree, not before it.
10753
10754         PR target/39139
10755         * function.h (struct function): Add has_local_explicit_reg_vars bit.
10756         * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER
10757         VAR_DECLs were seen.
10758         * tree-ssa-live.c (remove_unused_locals): Recompute
10759         cfun->has_local_explicit_reg_vars.
10760         * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode
10761         copies or clearings if cfun->has_local_explicit_reg_vars.
10762
10763 2009-02-10  Uros Bizjak  <ubizjak@gmail.com>
10764
10765         PR target/39118
10766         * config/i386/i386.c (expand_prologue): Emit blockage at the end
10767         of function prologue when frame pointer is used to access
10768         red zone area.
10769
10770 2009-02-10  Richard Guenther  <rguenther@suse.de>
10771
10772         PR middle-end/39127
10773         * gimplify.c (gimple_regimplify_operands): Always look if
10774         we need to create a temporary.
10775
10776 2009-02-10  Richard Guenther  <rguenther@suse.de>
10777
10778         PR tree-optimization/39132
10779         * tree-loop-distribution.c (todo): New global var.
10780         (generate_memset_zero): Trigger TODO_rebuild_alias.
10781         (tree_loop_distribution): Return todo.
10782
10783 2009-02-10  H.J. Lu  <hongjiu.lu@intel.com>
10784
10785         PR target/39119
10786         * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS.
10787         (x86_64_reg_class_name): Removed.
10788         (classify_argument): Return 0 if bytes > 32.  Return 0 if the
10789         first one isn't X86_64_SSE_CLASS or any other ones aren't
10790         X86_64_SSEUP_CLASS when size > 16bytes.  Don't turn
10791         X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one
10792         is X86_64_SSEUP_CLASS.  Set AVX modes to 1 X86_64_SSE_CLASS
10793         and 3 X86_64_SSEUP_CLASS.
10794         (construct_container): Remove X86_64_AVX_CLASS.  Handle 4
10795         registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS.
10796
10797 2009-02-10  Ben Elliston  <bje@au.ibm.com>
10798
10799         * config/rs6000/rs6000.md (allocate_stack): Always use an update
10800         form instruction to update the stack back chain word, even if the
10801         user has disabled the generation of update instructions.
10802         (movdi_<mode>_update_stack): New.
10803         (movsi_update_stack): Likewise.
10804         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise,
10805         always use an update form instruction to update the stack back
10806         chain word.
10807
10808 2009-02-09  Sebastian Pop  <sebastian.pop@amd.com>
10809
10810         PR middle-end/38953
10811         * graphite.c (if_region_set_false_region): After moving a region in
10812         the false branch of a condition, remove the empty dummy basic block.
10813         (gloog): Remove wrong fix for PR38953.
10814
10815 2009-02-09  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10816
10817         * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code
10818         generation due to implicit sign extension.
10819
10820 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
10821
10822         PR middle-end/38981
10823         * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs
10824         at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST.
10825
10826 2009-02-09  Richard Guenther  <rguenther@suse.de>
10827
10828         PR middle-end/35202
10829         * convert.c (convert_to_real): Disable (float)fn((double)x)
10830         to fnf(x) conversion if errno differences may occur and
10831         -fmath-errno is set.
10832
10833 2009-02-07  Anatoly Sokolov  <aesok@post.ru>
10834
10835         * config/avr/avr.c (avr_mcu_t): Add ata6289 device.
10836         * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.).
10837         * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.).
10838
10839 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
10840
10841         PR c/35434
10842         * c-common.c (handle_alias_attribute): Disallow attribute for
10843         anything not a FUNCTION_DECL or VAR_DECL.
10844
10845 2009-02-06  Janis Johnson  <janis187@us.ibm.com>
10846
10847         PR c/39035
10848         * real.c (do_compare): Special-case compare of zero against
10849         decimal float value.
10850
10851 2009-02-06  Joseph Myers  <joseph@codesourcery.com>
10852
10853         PR c/36432
10854         * c-decl.c (grokdeclarator): Don't treat [] declarators in fields
10855         as indicating flexible array members unless the field itself is
10856         being declarared as the incomplete array.
10857
10858 2009-02-06  Jan Hubicka  <jh@suse.cz>
10859
10860         PR tree-optimization/38844
10861         * ipa-inline.c (try_inline): Stop inlining recursion when edge
10862         is already inlined.
10863
10864 2009-02-06  Richard Guenther  <rguenther@suse.de>
10865
10866         PR middle-end/38977
10867         * tree-cfg.c (need_fake_edge_p): Force a fake edge for
10868         fork because we may expand it as __gcov_fork.
10869
10870 2009-02-06  Nick Clifton  <nickc@redhat.com>
10871
10872         * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero.
10873
10874 2009-02-06  Paolo Bonzini  <bonzini@gnu.org>
10875
10876         PR tree-optimization/35659
10877         * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq
10878         vn_phi_eq): Shortcut if hashcode does not match.
10879         (vn_reference_op_compute_hash): Do not call iterative_hash_expr for
10880         NULL operands.
10881         * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available,
10882         and avoid iterative_hash_expr.
10883         (FOR_EACH_VALUE_ID_IN_SET): New.
10884         (value_id_compare): Remove.
10885         (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to
10886         sort expressions by value id.
10887
10888 2009-02-05  Kaz Kojima  <kkojima@gcc.gnu.org>
10889
10890         PR target/38991
10891         * config/sh/predicates.md (general_movsrc_operand): Don't check
10892         the subreg of system registers here.
10893
10894 2009-02-05  Jakub Jelinek  <jakub@redhat.com>
10895
10896         PR c++/39106
10897         * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P
10898         on the copied decl.
10899
10900 2009-02-05  Paolo Bonzini  <bonzini@gnu.org>
10901
10902         PR rtl-optimization/39110
10903         * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned
10904         addresses, not aligned ones.
10905
10906 2009-02-05  Daniel Berlin  <dberlin@dberlin.org>
10907             Richard Guenther  <rguenther@suse.de>
10908
10909         PR tree-optimization/39100
10910         * tree-ssa-structalias.c (do_ds_constraint): Actually do what the
10911         comment says and add edges.
10912
10913 2009-02-05  Joseph Myers  <joseph@codesourcery.com>
10914
10915         PR c/35435
10916         * c-common.c (handle_tls_model_attribute): Ignore attribute for
10917         non-VAR_DECLs without checking DECL_THREAD_LOCAL_P.
10918
10919 2009-02-04  Tobias Grosser  <grosser@fim.uni-passau.de>
10920
10921         * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use,
10922         sese_build_livein_liveouts_bb, sese_build_livein_liveouts,
10923         register_bb_in_sese, new_sese, free_sese): Moved.
10924         (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains,
10925         outermost_loop_in_scop, build_scop_iteration_domain,
10926         expand_scalar_variables_ssa_name, get_vdef_before_scop,
10927         limit_scops): Use bb_in_sese_p instead of bb_in_scop_p.
10928         Use loop_in_sese_p instead of loop_in_scop_p.
10929         (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B.
10930         (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B.
10931         (scopdet_basic_block_info): Fix bug in scop detection.
10932         (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop,
10933         eq_loop_to_cloog_loop): Remove.
10934         (nb_loops_around_loop_in_scop, nb_loop
10935         ref_nb_loops): Moved here...
10936         * graphite.h (ref_nb_loops): ... from here.
10937         (struct scop): Remove bbs_b bitmap and loop2cloog_loop.
10938         (loop_domain_dim, loop_iteration_vector_dim): Remove.
10939         (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed.
10940         * testsuite/gcc.dg/graphite/scop-19.c: New
10941
10942 2009-02-04  Paolo Bonzini  <bonzini@gnu.org>
10943             Hans-Peter Nilsson  <hp@axis.com>
10944
10945         PR rtl-optimization/37889
10946         * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments.
10947         Move offset handling from PLUS to before the switch.  Use new
10948         arguments when considering SYMBOL_REFs too.
10949         (rtx_addr_can_trap_p): Pass dummy offset and size.
10950         (enum may_trap_p_flags): Remove.
10951         (may_trap_p_1): Pass size from MEM_SIZE.
10952
10953         PR rtl-optimization/38921
10954         * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p.
10955         * rtl.h (may_trap_after_code_motion_p): Delete prototype.
10956         * rtlanal.c (may_trap_after_code_motion_p): Delete.
10957         (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags.
10958
10959 2009-02-04  H.J. Lu  <hongjiu.lu@intel.com>
10960
10961         AVX Programming Reference (January, 2009)
10962         * config/i386/sse.md (*vpclmulqdq): New.
10963
10964 2009-02-04  Jakub Jelinek  <jakub@redhat.com>
10965
10966         PR tree-optimization/38977
10967         PR gcov-profile/38292
10968         * calls.c (special_function_p): Disregard __builtin_ prefix.
10969
10970 2009-02-04  Hariharan Sandanagobalane  <hariharan@picochip.com>
10971
10972         * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow
10973         non-indexable addresses even before reload.
10974
10975 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
10976
10977         PR c/29129
10978         * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators
10979         as having variable size.  Do not give an error for unnamed
10980         parameters with [*] declarators.  Give a warning for type names
10981         with [*] declarators and mark them as variable size.
10982         * c-parser.c (c_parser_sizeof_expression): Do not give an error
10983         for sizeof applied to [*] type names.
10984
10985 2009-02-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>
10986
10987         PR C++/36607
10988         * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE.
10989
10990 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
10991
10992         * gcc.c (process_command): Update copyright notice dates.
10993         * gcov.c (print_version): Likewise.
10994         * gcov-dump.c (print_version): Likewise.
10995         * mips-tfile.c (main): Likewise.
10996         * mips-tdump.c (main): Likewise.
10997
10998 2009-02-03  Joseph Myers  <joseph@codesourcery.com>
10999
11000         PR c/35433
11001         * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT
11002         for composite type involving a zero-length array type.
11003
11004 2009-02-03  Jakub Jelinek  <jakub@redhat.com>
11005
11006         PR target/35318
11007         * function.c (match_asm_constraints_1): Skip over
11008         initial optional % in the constraint.
11009
11010         PR inline-asm/39059
11011         * c-parser.c (c_parser_postfix_expression): If fixed point is not
11012         supported, don't accept FIXED_CSTs.
11013         * c-decl.c (finish_declspecs): Error if fixed point is not supported
11014         and _Sat is used without _Fract/_Accum.  Set specs->type to
11015         integer_type_node for cts_fract/cts_accum if fixed point is not
11016         supported.
11017
11018 2009-02-02  Catherine Moore  <clm@codesourcery.com>
11019
11020         * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls.
11021
11022 2009-02-02  Richard Sandiford  <rdsandiford@googlemail.com>
11023
11024         * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro.
11025         (ABI_HAS_64BIT_SYMBOLS): Use it.
11026         (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS.
11027
11028 2009-02-02  Paul Brook  <paul@codesourcery.com>
11029
11030         * config/arm/arm.md (arm_addsi3): Add r/r/k alternative.
11031
11032 2009-02-02  Jakub Jelinek  <jakub@redhat.com>
11033
11034         PR inline-asm/39058
11035         * recog.h (asm_operand_ok): Add constraints argument.
11036         * recog.c (asm_operand_ok): Likewise.  If it is set, for digits
11037         recurse on matching constraint.
11038         (check_asm_operands): Pass constraints as 3rd argument to
11039         asm_operand_ok.  Don't look up matching constraint here.
11040         * stmt.c (expand_asm_operands): Pass NULL as 3rd argument
11041         to asm_operand_ok.
11042
11043 2009-02-02  Ben Elliston  <bje@au.ibm.com>
11044
11045         * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and
11046         TARGET_NARROW_VOLATILE_BITFIELD macro names.
11047
11048 2009-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11049
11050         * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker
11051         information.  Remove some obsolete information.  Reorganize.
11052
11053         * config/pa/fptr.c: Revert license to GPL 2.
11054         * config/pa/milli64.S: Likewise.
11055
11056 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
11057
11058         PR target/38904
11059         * mkmap-flat.awk (END):  Use pe_dll command-line arg to pass
11060         LIBRARY name in, instead of hard-coding it.
11061         * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*):  Add an
11062         extra target make frag to tmake_files according to EH model.
11063         (i[34567]86-*-mingw* | x86_64-*-mingw*):  Likewise.
11064         * config/i386/t-dw2-eh, config/i386/t-sjlj-eh:  Add new target
11065         frags that define makefile variable EH_MODEL appropriately.
11066         * config/i386/cygming.h (DWARF2_UNWIND_INFO):  Add comment.
11067         * config/i386/cygwin.h (LIBGCC_EH_EXTN):  Define to nothing or
11068         to "-sjlj" according to type of EH configured.
11069         (LIBGCC_SONAME):  Concatenate it to shared library base name.
11070         * config/i386/mingw32.h (LIBGCC_EH_EXTN):  Define to "_dw2" or
11071         to "_sjlj" according to type of EH configured.
11072         (LIBGCC_SONAME):  Concatenate it to shared library base name.
11073         * config/i386/t-cygming (SHLIB_SONAME):  Use EH_MODEL.
11074         (SHLIB_LINK):  Add missing semicolon to if-else construct.
11075         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
11076         string value of "pe_dll" command-line option.
11077         * config/i386/t-cygwin (SHLIB_EH_EXTENSION):  New helper.
11078         (SHLIB_SONAME):  Use it when overriding t-cygming default.
11079         (SHLIB_IMPLIB):  Override t-cygming default.
11080         (SHLIB_MKMAP_OPTS):  Pass library name to mkmap-flat.awk as
11081         string value of "pe_dll" command-line option.
11082
11083 2009-01-31  Dave Korn  <dave.korn.cygwin@gmail.com>
11084
11085         PR target/38952
11086         * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New.
11087         (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it.
11088
11089 2009-01-31  Richard Guenther  <rguenther@suse.de>
11090
11091         PR tree-optimization/38937
11092         * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut
11093         computing the transitive closure.
11094
11095 2009-01-30  Richard Guenther  <rguenther@suse.de>
11096
11097         PR tree-optimization/39041
11098         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
11099         Propagate variable indices only if the types match for this stmt.
11100
11101 2009-01-30  Jakub Jelinek  <jakub@redhat.com>
11102
11103         PR target/39013
11104         * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared
11105         inline but never defined.
11106
11107 2009-01-30  Wolfgang Gellerich  <gellerich@de.ibm.com>
11108
11109         * config/s390/s390.md (*insv<mode>_reg_extimm): Removed.
11110         (*insv_h_di_reg_extimm): New insn.
11111         (*insv_l<mode>_reg_extimm): New insn.
11112
11113 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
11114
11115         * config/picochip/picochip.c (flag_conserve_stack): set
11116         PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under
11117         fconserve-stack. Reduce call-overhead used by inliner.
11118
11119 2009-01-30  Hariharan Sandanagobalane  <hariharan@picochip.com>
11120
11121         PR/38157
11122         * common.opt (flag_conserve_stack): Initialised to zero.
11123
11124 2009-01-30  Kai Tietz  <kai.tietz@onevision.com>
11125
11126         PR/39002
11127         * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs.
11128         (ix86_expand_epilogue): Take nsseregs in account to use proper restore
11129         method.
11130
11131 2009-01-29  H.J. Lu  <hongjiu.lu@intel.com>
11132
11133         * ira-color.c (allocno_reload_assign): Update comments.
11134         * regmove.c (regmove_optimize): Likewise.
11135
11136         * ra.h: Removed.
11137
11138 2009-01-29  Robert Millan  <rmh@aybabtu.com>
11139
11140         * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu).
11141         * config/i386/kopensolaris-gnu.h: New file.  Undefine
11142         `MD_UNWIND_SUPPORT'.
11143         * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h).
11144
11145 2009-01-29  Kazu Hirata  <kazu@codesourcery.com>
11146
11147         PR tree-optimization/39007
11148         * tree-loop-distribution.c (generate_builtin): Use
11149         recompute_dominator to compute the immediate dominator of the
11150         basic block just after the loop.
11151
11152 2009-01-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11153
11154         * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA]
11155         (ASM_OUTPUT_DWARF_PCREL): Define.
11156
11157 2009-01-29  Vladimir Makarov  <vmakarov@redhat.com>
11158
11159         * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description.
11160         * doc/passes.texi: Remove entries about regclass, local-alloc, and
11161         global.  Modify entries about regmove and IRA.
11162
11163         * ra-conflict.c: Remove the file.
11164
11165         * reload.c (push_reload, find_dummy_reload): Remove flag_ira.
11166
11167         * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove.
11168         (pass_regclass_init): Rename to pass_reginfo_init.
11169
11170         * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira.
11171
11172         * toplev.h (flag_ira): Remove.
11173
11174         * caller-save.c (setup_save_areas): Remove flag_ira.
11175
11176         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto.
11177
11178         * global.c: Remove the file.
11179
11180         * opts.c (decode_options): Remove flag_ira.
11181
11182         * hard-reg-set.h (losing_caller_save_reg_set): Remove.
11183
11184         * regmove.c: Modify file description.
11185         (find_use_as_address, try_auto_increment): Define them only if
11186         AUTO_INC_DEC is defined.
11187         (replacement_quality, replace_in_call_usage, fixup_match_1,
11188         stable_and_no_regs_but_for_p): Remove.
11189         (reg_set_in_bb): Make it static.
11190         (regmove_optimize): Remove flag_ira and code which worked for
11191         !flag_ira.
11192
11193         * local-alloc.c: Remove the file.
11194
11195         * common.opt (fira): Remove.
11196
11197         * ira.c: Include except.h.
11198         (eliminable_regset): Move from global.c.
11199         (mark_elimination): Ditto.  Remove flag_ira.
11200         (reg_renumber, struct equivalence, reg_equiv, equiv_mem,
11201         equiv_mem_modified, validate_equiv_mem_from_store,
11202         validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p,
11203         contains_replace_regs, memref_referenced_p, memref_used_between_p,
11204         no_equiv, recorded_label_ref): Move from local-alloc.c.
11205         (update_equiv_regs): Ditto.  Make it static.
11206         (print_insn_chain, print_insn_chains): Move it from global.c.
11207         (pseudo_for_reload_consideration_p): Ditto.  Remove flag_ira.
11208         (build_insn_chain): Ditto.  Make it static.
11209         (ra_init_live_subregs): Move from ra-conflict.c.  Make it static.
11210         Rename to init_live_subregs.
11211         (gate_ira): Remove flag_ira.
11212
11213         * regclass.c: Rename reginfo.c.  Change file description.
11214         (FORBIDDEN_INC_DEC_CLASSES): Remove.
11215         (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove.
11216         (init_reg_sets_1): Remove code for evaluation of
11217         reg_class_superclasses and losing_caller_save_reg_set.
11218         (init_regs): Remove init_reg_autoinc.
11219         (struct costs, costs, init_cost, ok_for_index_p_nonstrict,
11220         ok_for_base_p_nonstrict): Remove.
11221         (regclass_init): Rename to reginfo_init.  Don't initialize init_cost.
11222         (pass_regclass_init): Rename to pass_reginfo_init.  Modify
11223         corresponding entries.
11224         (dump_regclass, record_operand_costs, scan_one_insn,
11225         init_reg_autoinc, regclass, record_reg_classes, copy_cost,
11226         record_address_regs, auto_inc_dec_reg_p): Remove.
11227         (gt-regclass.h): Rename to gt-reginfo.h.
11228
11229         * rtl.h (dump_global_regs, retry_global_alloc,
11230         build_insn_chain, dump_local_alloc, update_equiv_regs): Remove.
11231
11232         * Makefile.in (RA_H): Remove.
11233         (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o.
11234         Rename regclass.o to reginfo.o.
11235         (regclass.o): Rename to reginfo.o.  Rename gt-regclass.h to
11236         gt-reginfo.h.
11237         (global.o, local-alloc.o, ra-conflict.o): Remove entries.
11238         (GTFILES): Rename regclass.c to reginfo.c.
11239
11240         * passes.c (init_optimization_passes): Remove pass_local_alloc and
11241         pass_global_alloc.  Rename pass_regclass_init to pass_reginfo_init.
11242
11243         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
11244         count_spilled_pseudo, find_reg, alter_reg, delete_output_reload):
11245         Remove flag_ira.
11246         (finish_spills): Ditto.  Remove code for !flag_ira.
11247
11248 2009-01-29  Kenneth Zadeck  <zadeck@naturalbridge.com>
11249
11250         PR middle-end/35854
11251         * doc/invoke.texi (rtl debug options): Complete rewrite.
11252         * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec"
11253         to auto_inc_dec".
11254         * mode-switching.c (pass_mode_switching): Rename pass from
11255         "mode-sw" to "mode_sw".
11256         * except.c (pass_convert_to_eh_ranges): Rename pass from
11257         "eh-ranges" to "eh_ranges".
11258         * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg"
11259         to "subreg1".
11260
11261
11262 2009-01-29  Andrey Belevantsev  <abel@ispras.ru>
11263             Alexander Monakov  <amonakov@ispras.ru>
11264
11265         PR middle-end/38857
11266         * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard
11267         register.
11268         (move_exprs_to_boundary): Change return type and pass through
11269         should_move from move_op.  Relax assert.  Update usage ...
11270         (schedule_expr_on_boundary): ... here.  Use should_move instead of
11271         cant_move.
11272         (move_op_orig_expr_found): Indicate that insn was disconnected from
11273         stream.
11274         (code_motion_process_successors): Do not call after_merge_succs
11275         callback if original expression was not found when traversing any of
11276         the branches.
11277         (code_motion_path_driver): Change return type.  Update prototype.
11278         (move_op): Update comment.  Add a new parameter (should_move).  Update
11279         prototype.  Set *should_move based on indication provided by
11280         move_op_orig_expr_found.
11281
11282 2009-01-28  Pat Haugen  <pthaugen@us.ibm.com>
11283
11284         * doc/invoke.texi (avoid-indexed-addresses): Document new option.
11285         * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare.
11286         * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option.
11287         * config/rs6000/rs6000.c (rs6000_override_options): Default
11288         avoid-indexed-addresses on for Power6, off for everything else.
11289         (avoiding_indexed_address_p): New function.
11290         (rs6000_legitimize_address): Use it.
11291         (rs6000_legitimate_address): Likewise.
11292         * config/rs6000/rs6000.md (movXX_updateX): Likewise
11293
11294 2009-01-28  Kazu Hirata  <kazu@codesourcery.com>
11295
11296         PR tree-optimization/38997
11297         * tree-loop-distribution.c (generate_memset_zero): Use
11298         POINTER_PLUS_EXPR for a pointer addition.
11299
11300 2009-01-28  Andreas Krebbel  <krebbel1@de.ibm.com>
11301
11302         * config/s390/s390.md (bswap<mode>2): New pattern added.
11303
11304 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
11305
11306         * config/s390/s390.md (*tls_load_31): Added type attribute.
11307
11308 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
11309
11310         * config/s390/s390.md: Fix a few comments.
11311
11312 2009-01-28  Wolfgang Gellerich  <gellerich@de.ibm.com>
11313
11314         * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute.
11315         (*tm<mode>_full): Fixed z10prop attribute.
11316         (*tst<mode>_extimm): Fixed z10prop attribute.
11317         (*tst<mode>_cconly_extimm): Fixed z10prop attribute.
11318         (*tstqiCCT_cconly): Fixed z10prop attribute.
11319         (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute.
11320         (*movsi_larl): Fixed z10prop attribute.
11321         (*movsi_zarch): Fixed z10prop attribute.
11322         (*movsi_eas): Fixed z10prop attribute.
11323         (*movhi): Fixed z10prop attribute.
11324         (*movqi): Fixed z10prop attribute.
11325         (*movstrictqi): Fixed z10prop attribute.
11326         (*mov<mode>): Fixed z10prop attribute.
11327         (*movcc): Fixed z10prop attribute.
11328         (*sethighpartdi_64): Fixed z10prop attribute.
11329         (*zero_extendhi<mode>2_z10): Fixed z10prop attribute.
11330         (*negdi2_sign_cc): Fixed z10prop attribute.
11331         (*negdi2_sign): Fixed z10prop attribute.
11332         (*absdi2_sign_cc): Fixed z10prop attribute.
11333         (*absdi2_sign): Fixed z10prop attribute.
11334         (*negabsdi2_sign_cc): Fixed z10prop attribute.
11335         (*negabsdi2_sign): Fixed z10prop attribute.
11336         (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute.
11337         (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute.
11338         (doloop_si64): Fixed z10prop attribute.
11339         (doloop_si31): Fixed z10prop attribute.
11340         (doloop_long): Fixed z10prop attribute.
11341         (indirect_jump): Fixed z10prop attribute.
11342         (nop): Fixed z10prop attribute.
11343         (main_base_64): Fixed z10prop attribute.
11344         (reload_base_64): Fixed z10prop attribute.
11345
11346 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
11347
11348         PR rtl-optimization/38740
11349         * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling
11350         if !optimize.
11351         * config/mips/mips.c (mips_reorg): Likewise.
11352
11353 2009-01-28  Richard Guenther  <rguenther@suse.de>
11354
11355         PR tree-optimization/38926
11356         * tree-ssa-pre.c (add_to_value): Assert we add only expressions
11357         with the correct value id to a value.
11358         (do_regular_insertion): Use the value number of edoubleprime
11359         for the value number of the expr.
11360
11361         Revert
11362         2008-08-21  Richard Guenther  <rguenther@suse.de>
11363
11364         * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting
11365         a PHI ask VN if it is already available.
11366         * tree-ssa-sccvn.h (vn_phi_lookup): Declare.
11367         * tree-ssa-sccvn.c (vn_phi_lookup): Export.
11368
11369 2009-01-28  Jakub Jelinek  <jakub@redhat.com>
11370
11371         PR middle-end/38934
11372         * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR
11373         set to varying whenever max has TREE_OVERFLOW set, similarly
11374         for GE_EXPR and GT_EXPR and TREE_OVERFLOW min.
11375
11376 2009-01-28  Richard Guenther  <rguenther@suse.de>
11377
11378         PR middle-end/38908
11379         * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly
11380         uninitialized aggregate uses in call arguments.
11381
11382 2009-01-28  Paolo Bonzini  <bonzini@gnu.org>
11383
11384         PR tree-optimization/38984
11385         * tree-ssa-structalias.c (get_constraints_for_1): Do not use
11386         the nothing_id variable if -fno-delete-null-pointer-checks.
11387
11388 2009-01-28  Uros Bizjak  <ubizjak@gmail.com>
11389
11390         PR target/38988
11391         * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref.
11392         (set_got_offset_rex64): Ditto.
11393
11394 2009-01-27  H.J. Lu  <hongjiu.lu@intel.com>
11395
11396         PR target/38941
11397         * doc/extend.texi: Improve local variable with asm reg.
11398
11399 2009-01-27  Adam Nemet  <anemet@caviumnetworks.com>
11400
11401         * c.opt (Wpacked-bitfield-compat): Change init value to -1.
11402         * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat
11403         was not supplied then set warn_packed_bitfield_compat to the
11404         default value of 1.
11405         * stor-layout.c (place_field): Check warn_packed_bitfield_compat
11406         against 1.
11407
11408 2009-01-27  Richard Guenther  <rguenther@suse.de>
11409
11410         PR tree-optimization/38503
11411         * cfgexpand.c (expand_gimple_basic_block): Ignore
11412         GIMPLE_CHANGE_DYNAMIC_TYPE during expansion.
11413         * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune
11414         variables that cannot have TBAA applied.
11415         (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE
11416         statements.
11417
11418 2009-01-27  Uros Bizjak  <ubizjak@gmail.com>
11419
11420         PR middle-end/38969
11421         * calls.c (initialize_argument_information): Do not wrap complex
11422         arguments in SAVE_EXPR.
11423
11424 2009-01-26  Andreas Tobler  <a.tobler@schweiz.org>
11425
11426         * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo.
11427         (INSTALL_LIBGCC): Revert typo commit.
11428
11429 2009-01-26  Richard Guenther  <rguenther@suse.de>
11430
11431         PR tree-optimization/38745
11432         * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL
11433         from special handling.
11434
11435 2009-01-26  Richard Guenther  <rguenther@suse.de>
11436
11437         PR tree-optimization/38745
11438         * tree-ssa.c (execute_update_addresses_taken): Do not include
11439         variables that cannot possibly be a register in not_reg_needs.
11440         Do not clear TREE_ADDRESSABLE on vars that may not become
11441         registers.
11442         * tree-ssa.c (update_alias_info_1): Include those in the set
11443         of addressable vars.
11444
11445 2009-01-26  Richard Guenther  <rguenther@suse.de>
11446
11447         PR middle-end/38851
11448         * Makefile.in (tree-ssa-dse.o): Add langhooks.h.
11449         * tree-ssa-dse.c: Include langhooks.h
11450         (execute_simple_dse): Remove stores with zero size.
11451
11452 2009-01-24  Jakub Jelinek  <jakub@redhat.com>
11453
11454         PR c/38957
11455         * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way
11456         as PLUS_EXPR.
11457
11458 2009-01-24  Julian Brown  <julian@codesourcery.com>
11459
11460         * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add
11461         config/arm/linux-atomic.c.
11462         * config/arm/linux-atomic.c: New.
11463
11464 2009-01-24  Eric Botcazou  <ebotcazou@adacore.com>
11465
11466         * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete.
11467         * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise.
11468         * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
11469
11470 2009-01-24  H.J. Lu  <hongjiu.lu@intel.com>
11471
11472         PR c/38938
11473         * c-opts.c (c_common_handle_option): Update warn_pointer_sign
11474         properly.
11475
11476 2009-01-24  Sebastian Pop  <sebastian.pop@amd.com>
11477
11478         PR tree-optimization/38953
11479         * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa.
11480         (scop_adjust_phis_for_liveouts): Initialize false_i to zero.
11481         (gloog): Split the exit of the scop when the scop exit is a loop exit.
11482         (graphite_transform_loops): Only call cleanup_tree_cfg if gloog
11483         changed the CFG.
11484
11485 2009-01-24  Paul Brook  <paul@codesourcery.com>
11486
11487         * config/arm/neon.md (neon_type): Move to arm.md.
11488         (neon_mov<VSTRUCT>): Add neon_type attribute.
11489         * config/arm/arm.md (neon_type): Move to here.
11490         (conds): Add "unconditioal" and use as default for NEON insns.
11491
11492 2009-01-24  Ben Elliston  <bje@au.ibm.com>
11493
11494         * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from
11495         void *' warning from -Wc++-compat.
11496         * Makefile.in (dominance.o-warn): Remove.
11497
11498 2009-01-23  Paolo Bonzini  <bonzini@gnu.org>
11499
11500         PR tree-optimization/38932
11501         * fold-const.c (fold_unary_ignore_overflow): New.
11502         * tree.h (fold_unary_ignore_overflow): Declare.
11503         * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow.
11504         * tree-ssa-sccvn.c (visit_reference_op_load,
11505         simplify_unary_expression): Likewise.
11506
11507 2009-01-22  Adam Nemet  <anemet@caviumnetworks.com>
11508
11509         * c-decl.c (finish_struct): Move code to set DECL_PACKED after
11510         DECL_BIT_FIELD is alreay known.  Also inherit packed for bitfields
11511         regardless of their type.
11512         * c-common.c (handle_packed_attribute): Don't ignore packed on
11513         bitfields.
11514         * c.opt (Wpacked-bitfield-compat): New warning option.
11515         * stor-layout.c (place_field): Warn if offset of a field changed.
11516         * doc/extend.texi (packed): Mention the ABI change.
11517         * doc/invoke.texi (-Wpacked-bitfield-compat): Document.
11518         (Warning Options): Add it to the list.
11519
11520 2009-01-22  H.J. Lu  <hongjiu.lu@intel.com>
11521
11522         * c-opts.c (c_common_post_options): Fix a typo in comments.
11523
11524 2009-01-22  Steve Ellcey  <sje@cup.hp.com>
11525
11526         PR middle-end/38615
11527         * gimplify.c (gimplify_init_constructor): Fix promotion of const
11528         variables to static.
11529         * doc/invoke.texi (-fmerge-all-constants): Update description.
11530
11531 2009-01-22  Uros Bizjak  <ubizjak@gmail.com>
11532
11533         PR target/38931
11534         * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2.
11535         (*movdi_1_rex64): Use type "mmx" for alternative 5.
11536
11537 2009-01-22  Richard Earnshaw  <rearnsha@arm.com>
11538
11539         * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to
11540         a word boundary.
11541         (LOCAL_ALIGNMENT): Similarly.
11542
11543 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
11544             Joseph Myers  <joseph@codesourcery.com>
11545
11546         * config/arm/arm.c (all_architectures): Add iWMMXt2 entry.
11547         * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2.
11548         * config/arm/arm-tune.md: Regenerate.
11549         * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and
11550         -march=iwmmxt2.
11551
11552 2009-01-22  Mark Shinwell  <shinwell@codesourcery.com>
11553
11554         * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI
11555         version number to five.
11556
11557 2009-01-22  Dodji Seketeli  <dodji@redhat.com>
11558
11559         PR c++/38930
11560         * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes.
11561         * c-common.c (set_underlying_type): Likewise.
11562         (is_typedef_decl ): Likewise
11563         * tree.h: Likewise
11564         (set_underlying_type): Likewise.
11565         (is_typedef_type): Likewise.
11566
11567 2009-01-21  Vladimir Makarov  <vmakarov@redhat.com>
11568
11569         PR middle-end/38587
11570         * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos
11571         crossing setjmps.
11572
11573 2009-01-21  Dave Korn  <dave.korn.cygwin@gmail.com>
11574
11575         PR bootstrap/37660
11576         * config/i386/cygwin.h (SHARED_LIBGCC_SPEC):  New helper macro.
11577         (LIBGCC_SPEC):  Don't define.
11578         (REAL_LIBGCC_SPEC):  Define instead, using SHARED_LIBGCC_SPEC.
11579
11580 2009-01-21  Uros Bizjak  <ubizjak@gmail.com>
11581
11582         PR rtl-optimization/38879
11583         * alias.c (base_alias_check): Unaligned access via AND address can
11584         alias all surrounding object types except those with sizes equal
11585         or wider than the size of unaligned access.
11586
11587 2009-01-21  Dodji Seketeli  <dodji@redhat.com>
11588
11589         PR c++/26693
11590         * c-decl.c (clone_underlying_type): Move this ...
11591         * c-common.c (set_underlying_type): ... here.
11592         Also, make sure the function properly sets TYPE_STUB_DECL() on
11593         the newly created typedef variant type.
11594         (is_typedef_decl ): New entry point.
11595         * tree.h: Added a new member member_types_needing_access_check to
11596         struct tree_decl_non_common.
11597         (set_underlying_type): New entry point.
11598         (is_typedef_type): Likewise.
11599
11600 2009-01-21  Bingfeng Mei  <bmei@broadcom.com>
11601
11602         * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p):
11603         Check whether two instructions have memory references that
11604         belong to conflicting alias sets.  walk_mems_1 and walk_mems_2
11605         are helper functions for traversing.
11606         * alias.h (insn_alias_sets_confilict_p): New prototypes.
11607         * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p
11608         not to draw dependency edge for instructions with non-conflicting
11609         alias sets.
11610
11611 2009-01-20  Joseph Myers  <joseph@codesourcery.com>
11612
11613         PR other/38758
11614         * longlong.h: Update copyright years.  Use soft-fp license notice.
11615         Sync __clz_tab declaration with glibc.
11616
11617 2009-01-20  Steve Ellcey  <sje@cup.hp.com>
11618
11619         PR target/30687
11620         * doc/extend.texi (syscall_linkage): New.
11621         (version_id): Modify.
11622
11623 2009-01-20  Andrew Pinski  <andrew_pinski@playstation.sony.com>
11624             Richard Guenther  <rguenther@suse.de>
11625
11626         PR tree-optimization/38747
11627         PR tree-optimization/38748
11628         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE
11629         conversion if the base address is an indirect reference and the
11630         aliasing sets could cause issues.
11631
11632 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
11633
11634         * common.opt (fgraphite, fgraphite-identity): Add comment for
11635         explaining why these options are not documented.
11636
11637 2009-01-20  Sebastian Pop  <sebastian.pop@amd.com>
11638
11639         * graphite.c (stmt_simple_for_scop_p): Also handle cases when
11640         gimple_call_lhs is NULL.
11641
11642 2009-01-20  Paolo Bonzini  <bonzini@gnu.org>
11643
11644         PR target/38868
11645         * emit-rtl.c (adjust_address_1): Make sure memref is never
11646         overwritten.
11647
11648 2009-01-20  Ben Elliston  <bje@au.ibm.com>
11649
11650         * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
11651         const qualifier from arg parameter. Remove unnecessary cast to char *.
11652         * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove
11653         const qualifier from arg 2.
11654
11655 2009-01-19  Iain Sandoe  <iain.sandoe@sandoe-acoustics.co.uk>
11656
11657         * config/darwin.h: Add static-libgfortran to LINK_SPEC.
11658
11659 2009-01-19  Vladimir Makarov  <vmakarov@redhat.com>
11660
11661         PR c/38869
11662         * rtl.h (reinit_regs): New prototype.
11663         * regclass.c: Include ira.h.
11664         (reinit_regs): New.
11665         * Makefile.in (regclass.o): Add ira.h.
11666         * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs.
11667
11668 2009-01-18  H.J. Lu  <hongjiu.lu@intel.com>
11669
11670         PR target/38736
11671         * c-common.c (handle_aligned_attribute): Use
11672         ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for
11673         default alignment value.
11674
11675         * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__.
11676
11677         * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New.
11678         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise.
11679
11680         * doc/extend.texi: Update __attribute__ ((aligned)).  Document
11681         __BIGGEST_ALIGNMENT__.
11682
11683         * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE.
11684
11685 2009-01-18  Richard Guenther  <rguenther@suse.de>
11686
11687         PR tree-optimization/38819
11688         * tree-flow.h (operation_could_trap_helper_p): Declare.
11689         * tree-eh.c (operation_could_trap_helper_p): Export.
11690         * tree-ssa-sccvn.h (vn_nary_may_trap): Declare.
11691         * tree-ssa-sccvn.c (vn_nary_may_trap): New function.
11692         * tree-ssa-pre.c (insert_into_preds_of_block): Check if we
11693         are about to insert a possibly trapping instruction and fail
11694         in this case.
11695
11696 2009-01-18  Andreas Schwab  <schwab@suse.de>
11697
11698         * doc/install.texi (Configuration): Remove obsolete paragraph
11699         about use of --with-gnu-ld with --with-gnu-as.
11700
11701 2009-01-18  Kazu Hirata  <kazu@codesourcery.com>
11702
11703         * doc/extend.texi, doc/gimple.texi, doc/invoke.texi,
11704         doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos.
11705         Follow spelling conventions.
11706
11707 2009-01-18  Ben Elliston  <bje@au.ibm.com>
11708
11709         * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate
11710         C++ warning about implicit conversion from void * to struct
11711         bitmap_head_def *.
11712         (bitmap_obstack_free): Likewise for bitmap_element *.
11713         * Makefile.in (bitmap.o-warn): Remove.
11714
11715 2009-01-17  Dave Korn  <dave.korn.cygwin@gmail.com>
11716
11717         * Makefile.in (BACKENDLIBS):  Reorder to match dependencies.
11718
11719 2009-01-17  Sebastian Pop  <sebastian.pop@amd.com>
11720             Tobias Grosser  <tobi.grosser@amd.com>
11721
11722         * graphite.c (graphite_trans_scop_block): Do not block single
11723         nested loops.
11724
11725 2009-01-16  Alexandre Oliva  <aoliva@redhat.com>
11726
11727         * ebitmap.h (ebitmap_iter_init): Initialize all fields.
11728         * ipa-struct-reorg.c (gen_struct_type): Replace known-true
11729         test with assertion.
11730
11731 2009-01-16  Richard Guenther  <rguenther@suse.de>
11732
11733         PR tree-optimization/38835
11734         PR middle-end/36227
11735         * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT)
11736         and INT + PTR -> (INT)(PTR p+ INT) folding.
11737         * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR.
11738
11739 2009-01-16  Adam Nemet  <anemet@caviumnetworks.com>
11740
11741         PR target/38554
11742         * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift
11743         the subreg from a lowpart subreg if it is also casting the value.
11744
11745 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11746             Tobias Grosser  <tobi.grosser@amd.com>
11747
11748         * graphite.c (compare_prefix_loops): New.
11749         (build_scop_canonical_schedules): Rewritten.
11750         (graphite_transform_loops): Move build_scop_canonical_schedules
11751         after build_scop_iteration_domain.
11752
11753 2009-01-16  Sebastian Pop  <sebastian.pop@amd.com>
11754             Tobias Grosser  <tobi.grosser@amd.com>
11755
11756         * graphite.c (add_conditions_to_domain): Add the loops to
11757         the dimension of the iteration domain.  Do copy the domain
11758         only when it exists.
11759         (build_scop_conditions_1): Do not call add_conditions_to_domain.
11760         (add_conditions_to_constraints): New.
11761         (can_generate_code_stmt, can_generate_code): Removed.
11762         (gloog): Do not call can_generate_code.
11763         (graphite_transform_loops): Call add_conditions_to_constraints
11764         after building the iteration domain.
11765
11766 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
11767
11768         PR tree-optimization/38789
11769         * tree-ssa-threadedge.c
11770         (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to
11771         __builtin_constant_p.
11772
11773 2009-01-16  Kenneth Zadeck  <zadeck@naturalbridge.com>
11774
11775         * dce.c (delete_unmarked_insns): Reversed the order that insns are
11776         examined before deleting them.
11777
11778 2009-01-16  Richard Earnshaw  <rearnsha@arm.com>
11779
11780         * function.c (aggregate_value_p): Correctly extract the function
11781         type from CALL_EXPR_FN lookup.
11782
11783 2009-01-16  Hariharan Sandanagobalane  <hariharan@picochip.com>
11784
11785         * config/picochip/picochip.c (picochip_override_options): Revert
11786         CFI asm flag disable commited previously.
11787
11788 2009-01-15  Sebastian Pop  <sebastian.pop@amd.com>
11789             Tobias Grosser  <tobi.grosser@amd.com>
11790             Jan Sjodin  <jan.sjodin@amd.com>
11791
11792         * graphite.c (scan_tree_for_params): On substractions negate
11793         all the coefficients of the term.
11794         (clast_to_gcc_expression_red): New.  Handle reduction expressions
11795         of more than two operands.
11796         (clast_to_gcc_expression): Call clast_to_gcc_expression_red.
11797         (get_vdef_before_scop): Handle also the case of default definitions.
11798
11799 2009-01-15  Richard Sandiford  <rdsandiford@googlemail.com>
11800
11801         * caller-save.c (add_used_regs_1, add_used_regs): New functions.
11802         (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes.
11803         Also use them when walking CALL_INSN_FUNCTION_USAGE.
11804
11805 2009-01-15  H.J. Lu  <hongjiu.lu@intel.com>
11806             Joey Ye  <joey.ye@intel.com>
11807
11808         PR middle-end/37843
11809         * cfgexpand.c (expand_stack_alignment): Don't update stack
11810         boundary nor check incoming stack boundary here.
11811         (gimple_expand_cfg): Update stack boundary and check incoming
11812         stack boundary here.
11813
11814 2009-01-15  Kenneth Zadeck  <zadeck@naturalbridge.com>
11815
11816         * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments.
11817
11818 2009-01-14  Jakub Jelinek  <jakub@redhat.com>
11819
11820         PR rtl-optimization/38245
11821         * calls.c (expand_call): Add stack arguments to
11822         CALL_INSN_FUNCTION_USAGE even for pure calls (when
11823         ACCUMULATE_OUTGOING_ARGS) and even for args partially passed
11824         in regs and partially in memory or BLKmode arguments.
11825         (emit_library_call_value_1): Add stack arguments to
11826         CALL_INSN_FUNCTION_USAGE even for pure calls (when
11827         ACCUMULATE_OUTGOING_ARGS).
11828         * dce.c: Include tm_p.h.
11829         (find_call_stack_args): New function.
11830         (deletable_insn_p): Call it for CALL_P insns.  Add ARG_STORES
11831         argument.
11832         (mark_insn): Call find_call_stack_args for CALL_Ps.
11833         (prescan_insns_for_dce): Walk insns backwards in bb rather than
11834         forwards.  Allocate and free arg_stores bitmap if needed, pass it
11835         down to deletable_insn_p, don't mark stores set in arg_stores
11836         bitmap, clear the bitmap at the beginning of each bb.
11837         * Makefile.in (dce.o): Depend on $(TM_P_H).
11838
11839 2009-01-14  Michael Meissner  <gnu@the-meissners.org>
11840
11841         PR target/22599
11842         * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f'
11843         to make sure the insn is a conditional test (bug 22599).  Reformat a
11844         few long lines.
11845
11846 2009-01-14  Sebastian Pop  <sebastian.pop@amd.com>
11847
11848         PR middle-end/38431
11849         * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New.
11850         (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi.
11851         (gloog): Do not call cleanup_tree_cfg.
11852         (graphite_transform_loops): Call cleanup_tree_cfg after all
11853         scops have been code generated.
11854
11855 2009-01-14  Basile Starynkevitch  <basile@starynkevitch.net>
11856         * doc/gty.texi (Invoking the garbage collector): Added new node
11857         and section documenting ggc_collect.
11858
11859 2009-01-14  Richard Guenther  <rguenther@suse.de>
11860
11861         PR tree-optimization/38826
11862         PR middle-end/38477
11863         * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer
11864         initialization notes only if we actually emitted a warning.
11865         (intra_create_variable_infos): Add constraints for a result decl
11866         that is passed by hidden reference.
11867         (build_pred_graph): Mark all related variables non-direct on
11868         address-taking.
11869
11870 2009-01-14  Nick Clifton  <nickc@redhat.com>
11871
11872         * ira-conflicts.c: Include addresses.h for the definition of
11873         base_reg_class.
11874         (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS.
11875         * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h.
11876
11877 2009-01-13  Vladimir Makarov  <vmakarov@redhat.com>
11878
11879         PR target/38811
11880         * Makefile.in (ira-lives.o): Add except.h.
11881
11882         * ira-lives.c: Include except.h.
11883         (process_bb_node_lives): Process can_throw_internal.
11884
11885 2009-01-13  Jakub Jelinek  <jakub@redhat.com>
11886
11887         PR rtl-optimization/38774
11888         * combine.c (simplify_set): When undoing cc_use change, don't do
11889         PUT_CODE on the newly created comparison, but instead put back the
11890         old comparison.
11891
11892 2009-01-13  Joseph Myers  <joseph@codesourcery.com>
11893
11894         * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march
11895         values.  Remove duplicate arm8 entry.
11896
11897 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
11898
11899         PR tree-optimization/38786
11900         * graphite.c (expand_scalar_variables_ssa_name): New, outlined from
11901         the SSA_NAME case of expand_scalar_variables_expr.
11902         Set the type of an expression to the type of its assign statement.
11903         (expand_scalar_variables_expr): Also gather the scalar computation
11904         used to index the memory access.  Do not pass loop_p.
11905         Fix comment.  Stop recursion on tcc_constant or tcc_declaration.
11906         (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr
11907         the gimple_stmt_iterator where it inserts new code.
11908         Do not pass loop_p.
11909         (copy_bb_and_scalar_dependences): Do not pass loop_p.
11910         (translate_clast): Update call to copy_bb_and_scalar_dependences.
11911
11912 2009-01-13  Sebastian Pop  <sebastian.pop@amd.com>
11913
11914         * graphite.h (debug_value): Removed.
11915         * graphite.c (debug_value): Removed.
11916
11917 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
11918
11919         * config/arm/arm.c (output_move_double): Don't synthesize thumb-2
11920         ldrd/strd with two 32-bit instructions.
11921
11922 2009-01-13  Richard Earnshaw  <rearnsha@arm.com>
11923
11924         * config/arm/arm.c (struct processors): Pass for speed down into
11925         cost helper functions.
11926         (const_ok_for_op): Handle COMPARE and inequality nodes.
11927         (arm_rtx_costs_1): Rewrite.
11928         (arm_size_rtx_costs): Update prototype.
11929         (arm_rtx_costs): Pass speed down to helper functions.
11930         (arm_slowmul_rtx_costs): Rework cost calculations.
11931         (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise.
11932         (arm_9e_rtx_costs): Likewise.
11933
11934 2009-01-13  Uros Bizjak  <ubizjak@gmail.com>
11935
11936         * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit
11937         relocations of local symbols wider than UNITS_PER_WORD are not valid.
11938         (alpha_legitimize_address): Do not split local symbols wider than
11939         UNITS_PER_WORD into HIGH/LO_SUM parts.
11940
11941 2009-01-13  Danny Smith  <dannysmith@users.sourceforge.net>
11942
11943         PR bootstrap/38580
11944         * gcc.c (process_command): Replace call to execvp with calls
11945         to pex_one and exit.
11946
11947 2009-01-03  Anatoly Sokolov  <aesok@post.ru>
11948
11949         PR target/29141
11950         * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm.
11951         * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add
11952         variant for devices with 3-byte PC.
11953         (__tablejump_elpm__): New.
11954
11955 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
11956
11957         PR c/32041
11958         * c-parser.c (c_parser_postfix_expression): Allow `->' in
11959         offsetof member-designator, handle it as `[0].'.
11960
11961 2009-01-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11962
11963         * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk
11964         function when not using named sections on targets with named sections
11965         if branch distance is less than 262132.
11966
11967 2009-01-12  Richard Earnshaw  <rearnsha@arm.com>
11968
11969         * combine.c (combine_instructions):  Recompute
11970         optimize_this_for_speed_p  for each BB in the main combine loop.
11971
11972 2009-01-12  Tomas Bily  <tbily@suse.cz>
11973
11974         PR middlend/38385
11975         * tree-loop-distribution.c (prop_phis): New function.
11976         (generate_builtin): Call prop_phis.
11977         * testsuite/gcc.dg/tree-ssa/pr38385.c: New file.
11978
11979 2009-01-12  Jakub Jelinek  <jakub@redhat.com>
11980
11981         PR tree-optimization/38807
11982         * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at
11983         gimple_visited_p unless stmt is GIMPLE_ASSIGN.
11984
11985 2009-01-11  Adam Nemet  <anemet@caviumnetworks.com>
11986
11987         * expmed.c (store_bit_field_1): Properly truncate the paradoxical
11988         subreg of op0 to the original op0.
11989
11990 2009-01-11  Laurent GUERBY  <laurent@guerby.net>
11991
11992         * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc.
11993
11994 2009-01-11  Markus Schoepflin  <markus.schoepflin@comsoft.de>
11995
11996         PR debug/7055
11997         * mips-tfile.c (parse_def): Fix parsing of def strings
11998         starting with digits.
11999
12000 2009-01-10  Jakub Jelinek  <jakub@redhat.com>
12001
12002         PR target/38695
12003         * config/arm/arm.c (arm_is_long_call_p): Don't call
12004         arm_function_in_section_p if decl isn't a FUNCTION_DECL.
12005
12006 2009-01-09  Steven Bosscher  <steven@gcc.gnu.org>
12007
12008         * regrename.c (regrename_optimize): Fix dumping.
12009         (find_oldest_value_reg): Preserve REG_POINTER.
12010         (copy_hardreg_forward_1): Likewise.
12011
12012 2009-01-09  Diego Novillo  <dnovillo@google.com>
12013
12014         * gimple.h (struct gimple_statement_base) <uid>: Document
12015         the restrictions on its use.
12016         (gimple_uid): Tidy.
12017         (gimple_set_uid): Tidy.
12018
12019 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
12020
12021         * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
12022         zero guard even if align_bytes != 0 and count is smaller than
12023         size_needed.
12024
12025 2009-01-09  Vladimir Makarov  <vmakarov@redhat.com>
12026
12027         PR rtl-optimization/38495
12028         * ira-emit.c (print_move_list, ira_debug_move_list): New functions.
12029         (add_range_and_copies_from_move_list): Print all added ranges.
12030         Add ranges to memory optimized destination.
12031
12032 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
12033
12034         PR target/38686
12035         PR target/38708
12036         * config/i386/i386.c (override_options): Reject
12037         -mstringop-strategy=rep_8byte with -m32.
12038         (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
12039         to 1.  Do count comparison against epilogue_size_needed at compile
12040         time even when count_exp was constant forced into register.  For
12041         size_needed don't jump to epilogue, instead just avoid aligning
12042         and invoke the body algorithm.  If need_zero_guard, add zero guard
12043         even if count is non-zero, but smaller than size_needed + number of
12044         bytes that could be stored for alignment.
12045         (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
12046         to 1.  If need_zero_guard, add zero guard even if count is non-zero,
12047         but smaller than size_needed + number of bytes that could be stored
12048         for alignment.  Compare size_needed with epilogue_size_needed instead
12049         of desired_align - align, don't adjust size_needed, pass
12050         epilogue_size_needed to the epilogue expanders.
12051
12052         PR c/35742
12053         * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR.
12054
12055 2009-01-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12056
12057         * pa.c (last_address): Change to unsigned.
12058         (update_total_code_bytes): Change argument to unsigned.  Don't
12059         check if insn addresses are set.
12060         (pa_output_function_epilogue): Set last_address to UINT_MAX if insn
12061         addresses are not set.
12062         (pa_asm_output_mi_thunk): Handle wrap when updating last_address.
12063
12064 2009-01-09  Nick Clifton  <nickc@redhat.com>
12065
12066         * config/sh/symbian.c: Replace uses of DECL_INLINE with
12067         DECL_DECLARED_INLINE_P.
12068
12069 2009-01-09  Jakub Jelinek  <jakub@redhat.com>
12070
12071         PR middle-end/38347
12072         * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of
12073         GET_MODE (op0) in operand_subword_force calls.
12074
12075         PR middle-end/38771
12076         * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR,
12077         fold_convert arg0 operands to TREE_TYPE (op0) first.
12078
12079 2009-01-08  Vladimir Makarov  <vmakarov@redhat.com>
12080
12081         * params.def (ira-max-conflict-table-size): Decrease default value
12082         to 1000.
12083
12084 2009-01-08  Jakub Jelinek  <jakub@redhat.com>
12085
12086         PR tree-optimization/37031
12087         * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
12088         on parameter_set.
12089         (build_access_matrix): Reserve correct size for AM_MATRIX vector,
12090         allocate it using gc instead of heap, use VEC_quick_push instead of
12091         VEC_safe_push.
12092         * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
12093         instead of heap, use VEC_quick_push instead of VEC_safe_push.
12094         * tree-data-ref.h (struct access_matrix): Change matrix to gc
12095         allocated vector from heap allocated.
12096         * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
12097         * tree-loop-linear.c (linear_transform_loops): Allocate nest
12098         vector only after perfect_loop_nest_depth call.
12099
12100 2009-01-08  Sebastian Pop  <sebastian.pop@amd.com>
12101             Jan Sjodin  <jan.sjodin@amd.com>
12102
12103         PR tree-optimization/38559
12104         * graphite.c (debug_value, copy_constraint,
12105         swap_constraint_variables, scale_constraint_variable, ): New.
12106         (get_lower_bound, get_upper_bound): Removed.
12107         (graphite_trans_bb_strip_mine): Clean up this code that works
12108         only for constant number of iterations.  Fully copy upper and
12109         lower bound constraints, not only the constant part of them.
12110         * graphite.h (debug_value): Declared.
12111
12112 2009-01-08  Ira Rosen  <irar@il.ibm.com>
12113
12114         PR tree-optimization/37194
12115         * tree-vect-transform.c (vect_estimate_min_profitable_iters):
12116         Don't add the cost of cost model guard in prologue to scalar
12117         outside cost in case of known number of iterations.
12118
12119 2009-01-07  Nathan Froyd  <froydnj@codesourcery.com>
12120             Alan Modra  <amodra@bigpond.net.au>
12121
12122         * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for
12123         non-word-aligned REG+CONST addressing.
12124
12125 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
12126
12127         PR target/38706
12128         * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
12129         free_after_compilation when outputting a thunk.
12130         (alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
12131         Do not call free_after_compilation here.
12132
12133 2009-01-07  Uros Bizjak  <ubizjak@gmail.com>
12134
12135         * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
12136         (ix86_valid_target_attribute_inner_p): Ditto.
12137
12138 2009-01-07  Jan Sjodin  <jan.sjodin@amd.com>
12139
12140         PR tree-optimization/38492
12141         PR tree-optimization/38498
12142         * tree-check.c (operator_is_linear, scev_is_linear_expression): New.
12143         * tree-chrec.h (scev_is_linear_expression): Declared.
12144         * graphite.c (graphite_cannot_represent_loop_niter): New.
12145         (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
12146         (graphite_loop_normal_form): Use gcc_assert.
12147         (scan_tree_for_params): Use CASE_CONVERT.
12148         (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
12149         (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
12150         Use gcc_assert.  Discard scops that contain unhandled cases.
12151         (build_scop_conditions): Return a boolean status for unhandled cases.
12152         (strip_mine_profitable_p): Print the loop number, not its depth.
12153         (is_interchange_valid): Pass the depth of the loop nest, don't
12154         recompute it wrongly.
12155         (graphite_trans_bb_block): Same.
12156         (graphite_trans_bb_block): Print tentative of loop blocking.
12157         (graphite_trans_scop_block): Do not print that the loop has been
12158         blocked.
12159         (graphite_transform_loops): Do not handle scops that contain condition
12160         scalar phi nodes.
12161
12162 2009-01-07  H.J. Lu  <hongjiu.lu@intel.com>
12163
12164         AVX Programming Reference (December, 2008)
12165         * config/i386/avxintrin.h (_mm256_stream_si256): New.
12166         (_mm256_stream_pd): Likewise.
12167         (_mm256_stream_ps): Likewise.
12168
12169         * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256,
12170         IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256.
12171         (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI.
12172         (bdesc_special_args): Add __builtin_ia32_movntdq256,
12173         __builtin_ia32_movntpd256 and __builtin_ia32_movntps256.
12174         (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI.
12175         (ix86_expand_special_args_builtin): Likewise.
12176
12177         * config/i386/sse.md (AVXMODEDI): New.
12178         (avx_movnt<mode>): Likewise.
12179         (avx_movnt<mode>): Likewise.
12180         (<sse>_movnt<mode>): Remove AVX support.
12181         (sse2_movntv2di): Likewise.
12182
12183 2009-01-07  Richard Guenther  <rguenther@suse.de>
12184
12185         PR middle-end/38751
12186         * fold-const.c (extract_muldiv): Remove obsolete comment.
12187         (fold_plusminus_mult_expr): Undo MINUS_EXPR
12188         to PLUS_EXPR canonicalization for the canonicalization.
12189
12190 2009-01-07  Gerald Pfeifer  <gerald@pfeifer.com>
12191
12192         * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit
12193         hosted cross-compilers generating less efficient code.
12194
12195 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
12196
12197         * function.h (rtl_data): Add a dbr_scheduled_p field.
12198         * reorg.c (dbr_schedule): Set it.
12199         (gate_handle_delay_slots): Check it.
12200         * config/mips/mips.c (mips_base_delayed_branch): Delete.
12201         (mips_reorg): Check flag_delayed_branch instead of
12202         mips_base_delayed_branch.
12203         (mips_override_options): Don't set mips_base_delayed_branch
12204         or flag_delayed_branch.
12205
12206 2009-01-06  Richard Sandiford  <rdsandiford@googlemail.com>
12207
12208         PR rtl-optimization/38426.
12209         * ira.c (ira): Set current_function_is_leaf earlier.
12210
12211 2009-01-06  Jakub Jelinek  <jakub@redhat.com>
12212
12213         PR rtl-optimization/38722
12214         * combine.c (try_combine): Don't modify PATTERN (i3) and notes
12215         too early, only set a flag and modify after last possible
12216         undo_all point.
12217
12218 2009-01-06  Janis Johnson  <janis187@us.ibm.com>
12219
12220         PR c/34252
12221         * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN.
12222         * real.c (decimal_single_format): Correct values of emin and emax.
12223         (decimal_double_format): Ditto.
12224         (decimal_quad_format): Ditto.
12225         * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust
12226         computation of DECnn_MIN and DECnn_MAX for corrected values of
12227         emin and emax.  Define __DECnn_SUBNORMAL_MIN__ instead of
12228         __DECnn_MIN__, and adjust its computation for the corrected value
12229         of emin.
12230
12231 2009-01-06  Jan Hubicka  <jh@suse.cz>
12232
12233         PR target/38744
12234         * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE.
12235
12236 2009-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
12237
12238         * doc/contrib.texi (Contributors): Slightly adjust the end note.
12239         Add Robert Clark to the list of testers.
12240
12241 2009-01-06  Jan Hubicka  <jh@suse.cz>
12242             Kai Tietz  <kai.tietz@onevision.com>
12243
12244         * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers.
12245         * config/i386/i386.c (ix86_expand_call): Add clobbers.
12246
12247 2009-01-06  Jan Hubicka  <jh@suse.cz>
12248             Kai Tietz  <kai.tietz@onevision.com>
12249
12250         * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used
12251         for w64 ABI.
12252         * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs.
12253         (ix86_nsaved_regs): Count only general purpose regs.
12254         (ix86_nsaved_sseregs): New.
12255         (ix86_compute_frame_layout): Update nsseregs; set preferred alignment
12256         to 16 for w64; compute padding and size of sse reg save area.
12257         (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only
12258         general purpose regs.
12259         (ix86_emit_save_sse_regs_using_mov): New.
12260         (ix86_expand_prologue): Save SSE regs if needed.
12261         (ix86_emit_restore_regs_using_mov): Use only general purpose regs.
12262         (ix86_emit_restore_sse_regs_using_mov): New.
12263         (ix86_expand_epilogue): Save SSE regs if needed.
12264
12265 2009-01-06  Jan Hubicka  <jh@suse.cz>
12266             Kai Tietz  <kai.tietz@onevision.com>
12267
12268         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI
12269         * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI
12270         functions when accumulate outgoing args is off.
12271
12272 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
12273
12274         PR bootstrap/38742
12275         * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING
12276         before using pseudos_have_intersected_live_ranges_p.
12277
12278         * ira-int.h (ira_assert): Always define.
12279
12280 2009-01-06  H.J. Lu  <hongjiu.lu@intel.com>
12281
12282         AVX Programming Reference (December, 2008)
12283         * config/i386/avxintrin.h (_mm_permute2_pd): Removed.
12284         (_mm256_permute2_pd): Likewise.
12285         (_mm_permute2_ps): Likewise.
12286         (_mm256_permute2_ps): Likewise.
12287         * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise.
12288         * config/i386/sse.md (avx_vpermil2<mode>3): Likewise.
12289
12290         * config/i386/i386.c (ix86_builtins): Remove
12291         IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS,
12292         IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256.
12293         (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT,
12294         V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT
12295         and V2DF_FTYPE_V2DF_V2DF_V2DI_INT.
12296         (bdesc_args): Remove __builtin_ia32_vpermil2pd,
12297         __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and
12298         __builtin_ia32_vpermil2ps256.
12299         (ix86_init_mmx_sse_builtins): Updated.
12300         (ix86_expand_args_builtin): Likewise.
12301
12302 2009-01-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12303
12304         * pa.c (output_call): Relocate non-jump insns in the delay slot of
12305         long absolute calls when generating PA 2.0 code.
12306
12307 2009-01-05  Vladimir Makarov  <vmakarov@redhat.com>
12308
12309         PR rtl-optimization/38583
12310         * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro.
12311
12312         * params.def (ira-max-conflict-table-size): New.
12313
12314         * doc/invoke.texi (ira-max-conflict-table-size): Decribe.
12315
12316         * ira.h (ira_conflicts_p): New external definition.
12317
12318         * ira-conflicts.c (build_conflict_bit_table): Do not build too big
12319         table.  Report this.  Return result of building.
12320         (ira_build_conflicts): Use ira_conflicts_p.  Check result of
12321         building conflict table.
12322
12323         * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num.
12324         (ira_color): Use ira_conflicts_p.
12325
12326         * global.c: Include ira.h.
12327         (pseudo_for_reload_consideration_p, build_insn_chain): Use
12328         ira_conflicts_p.
12329
12330         * Makefile.in (global.o): Add ira.h.
12331
12332         * ira-build.c (mark_all_loops_for_removal,
12333         propagate_some_info_from_allocno): New.
12334         (remove_unnecessary_allocnos): Call
12335         propagate_some_info_from_allocno.
12336         (remove_low_level_allocnos): New.
12337         (remove_unnecessary_regions): Add parameter.  Call
12338         mark_all_loops_for_removal and remove_low_level_allocnos.  Pass
12339         parameter to remove_unnecessary_regions.
12340         (ira_build): Remove all regions but root if the conflict table was
12341         not built.  Update conflict hard regs for allocnos crossing calls.
12342
12343         * ira.c (ira_conflicts_p): New global.
12344         (ira): Define and use ira_conflicts_p.
12345
12346         * reload1.c (compute_use_by_pseudos, reload, count_pseudo,
12347         count_spilled_pseudo, find_reg, alter_reg, finish_spills,
12348         emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p.
12349
12350 2009-01-06  Ben Elliston  <bje@au.ibm.com>
12351
12352         * gengtype-lex.l (YY_NO_INPUT): Define.
12353
12354 2009-01-05  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12355
12356         PR c/34911
12357         * c-common.c (handle_vector_size_attribute): Also reject
12358         BOOLEAN_TYPE types.
12359
12360 2009-01-05  Sebastian Pop  <sebastian.pop@amd.com>
12361
12362         PR tree-optimization/38492
12363         * graphite.c (rename_map_elt, debug_rename_elt,
12364         debug_rename_map_1, debug_rename_map, new_rename_map_elt,
12365         rename_map_elt_info, eq_rename_map_elts,
12366         get_new_name_from_old_name, bb_in_sese_p): Moved around.
12367         (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use.
12368         (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb.
12369         (sese_build_livein_liveouts): New.
12370         (new_sese, free_sese): New.
12371         (new_scop): Call new_sese.
12372         (free_scop): Call free_sese.
12373         (rename_variables_from_edge, rename_phis_end_scop): Removed.
12374         (register_old_new_names): Renamed register_old_and_new_names.
12375         (register_scop_liveout_renames, add_loop_exit_phis,
12376         insert_loop_close_phis, struct igp,
12377         default_liveout_before_guard, add_guard_exit_phis,
12378         insert_guard_phis, copy_renames): New.
12379         (translate_clast): Call insert_loop_close_phis and insert_guard_phis.
12380         (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge.
12381         (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts.
12382         (scop_adjust_phis_for_liveouts): New.
12383         (gloog): Call scop_adjust_phis_for_liveouts.
12384
12385         * graphite.h (struct sese): Documented.  Added fields liveout,
12386         num_ver and livein.
12387         (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New.
12388         (new_sese, free_sese, sese_build_livein_liveouts): Declared.
12389         (struct scop): Added field liveout_renames.
12390         (SCOP_LIVEOUT_RENAMES): New.
12391
12392 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
12393
12394         PR tree-optimization/38510
12395         * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
12396         (translate_clast): Call recompute_all_dominators before
12397         graphite_verify.
12398         (gloog): Call recompute_all_dominators before graphite_verify.
12399
12400 2009-01-05  Harsha Jagasia  <harsha.jagasia@amd.com>
12401             Jan Sjodin  <jan.sjodin@amd.com>
12402
12403         PR tree-optimization/38500
12404         * graphite.c (create_sese_edges): Call fix_loop_structure after
12405         splitting blocks.
12406
12407 2009-01-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
12408
12409         * config.gcc: Add m32r*-*-rtems*.
12410         * config/m32r/rtems.h: New file.
12411
12412 2009-01-05  Ben Elliston  <bje@au.ibm.com>
12413
12414         * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir.
12415         (.po.pox): Likewise.
12416         (po/gcc.pot): Likewise.
12417
12418 2009-01-04  David S. Miller  <davem@davemloft.net>
12419
12420         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
12421         (STARTING_FRAME_OFFSET): Always set to zero.
12422
12423 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
12424
12425         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary.
12426         * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of
12427         fixed-point types, and vectors of the same.
12428
12429 2009-01-04  Richard Sandiford  <rdsandiford@googlemail.com>
12430
12431         * config/mips/sync.md (*mb_barrier): Rename to...
12432         (*memory_barrier): ...this.
12433
12434 2009-01-04  Jonathan Wakely  <jwakely.gcc@gmail.com>
12435
12436         * doc/extend.texi (Function Attributes): Move @cindex after @item
12437         for 'artificial' and 'flatten'. Fix grammar for 'externally_visible'
12438         and put in alphabetical order. Fix 'target' name and put in order.
12439         * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix
12440         typos.
12441
12442 2009-01-04  Uros Bizjak  <ubizjak@gmail.com>
12443
12444         * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB.
12445         (memory_barrier): Expand as unspec instead of unspec_volatile.
12446         Remove mem:BLK from insn operands.  Use Pmode scratch register.
12447         (*memory_barrier): Define as unspec instead of unspec_volatile.
12448         Use (match_dup 0) as input operand.
12449
12450         * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR.
12451         * config/sparc/sync.md (memory_barrier): Expand as unspec instead of
12452         unspec_volatile.  Remove mem:BLK from insn operands.  Use Pmode
12453         scratch register.  Remove operand 1.
12454         (*stbar): Define as unspec instead of unspec_volatile.
12455         Use (match_dup 0) as input operand, remove (const_int 8).
12456         (*membar): Define as unspec instead of unspec_volatile.
12457         Use (match_dup 0) as input operand, remove input operand 2.
12458
12459         * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW.
12460         (memory_barrier): Expand as unspec instead of unspec_volatile.
12461         Remove mem:BLK from insn operands.  Use Pmode scratch register.
12462         (*memory_barrier): Define as unspec instead of unspec_volatile.
12463         Use (match_dup 0) as input operand.
12464
12465         * config/ia64/sync.md (memory_barrier): Redefine as expander pattern.
12466         Remove mem:BLK from insn operands.  Use Pmode scratch register.
12467         Set volatile flag on operand 0.
12468         (*memory_barrier): New insn pattern.
12469
12470         * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from
12471         insn operands.
12472         (*memory_barrier): Use (match_dup 0) as input operand.
12473
12474         * config/mips/sync.md (memory_barrier): Redefine as expander pattern.
12475         Remove mem:BLK from insn operands.  Use Pmode scratch register.
12476         Set volatile flag on operand 0.
12477         (*mb_internal): New insn pattern.
12478
12479         * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal.
12480
12481 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
12482
12483         PR middle-end/38586
12484         * function.c (struct temp_slot): Move to the section of the file
12485         that deals with temp slots.  Remove field 'address'.
12486         (temp_slot_address_table): New hash table of address -> temp slot.
12487         (struct temp_slot_address_entry): New struct, items for the table.
12488         (temp_slot_address_compute_hash, temp_slot_address_hash,
12489         temp_slot_address_eq, insert_temp_slot_address): Support functions
12490         for the new table.
12491         (find_temp_slot_from_address): Rewrite to use the new hash table.
12492         (remove_unused_temp_slot_addresses): Remove addresses of temp
12493         slots that have been made available.
12494         (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse,
12495         worker function for remove_unused_temp_slot_addresses.
12496         (assign_stack_temp_for_type): Don't clear the temp slot address list.
12497         Add the temp slot address to the address -> temp slot map.
12498         (update_temp_slot_address): Update via insert_temp_slot_address.
12499         (free_temp_slots): Call remove_unused_temp_slot_addresses.
12500         (pop_temp_slots): Likewise.
12501         (init_temp_slots): Allocate the address -> temp slot map, or empty
12502         the map if it is already allocated.
12503         (prepare_function_start): Initialize temp slot processing.
12504
12505 2009-01-04  Steven Bosscher  <steven@gcc.gnu.org>
12506
12507         PR middle-end/38584
12508         * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate:
12509         Calculate the size of all stack vars assuming no packing of stack
12510         vars will happen, replacing a quadratic algorithm with a linear one.
12511
12512 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
12513
12514         PR target/38707
12515         * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn
12516         can't be used.
12517
12518 2009-01-03  Diego Novillo  <dnovillo@google.com>
12519
12520         * doc/contrib.texi: Update contributions.
12521
12522 2009-01-03  Jakub Jelinek  <jakub@redhat.com>
12523
12524         PR c++/38705
12525         * builtins.c (fold_builtin_memory_op): Give up if either operand
12526         is volatile.  Set srctype or desttype to non-qualified version
12527         of the other type.
12528
12529         PR c/38700
12530         * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs
12531         and FUNCTION_DECLs.
12532
12533 2009-01-02  Kenneth Zadeck  <zadeck@naturalbridge.com>
12534
12535         PR rtl-optimization/35805
12536         * df-problems.c (df_lr_finalize): Add recursive call to resolve lr
12537         problem if fast dce is able to remove any instructions.
12538         * dce.c (dce_process_block): Fix dump message.
12539
12540 2009-01-02  Mark Mitchell  <mark@codesourcery.com>
12541
12542         PR 33649
12543         * tree-ssa-pre.c (compute_antic): Correct loop bounds.
12544
12545 2009-01-02  Jakub Jelinek  <jakub@redhat.com>
12546
12547         PR middle-end/38690
12548         * tree-flow.h (op_code_prio, op_prio): New prototypes.
12549         * tree-pretty-print.c (op_code_prio): New function.
12550         (op_prio): No longer static.  Use op_code_prio.
12551         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs):
12552         Use op_prio and op_code_prio to determine if () should be
12553         printed around operand(s) or not.
12554
12555         * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
12556         dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
12557         dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi,
12558         dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use
12559         pp_character instead of pp_string for single letter printing.
12560
12561 2009-01-02  Richard Sandiford  <rdsandiford@googlemail.com>
12562
12563         * doc/extend.texi: Fix '#pragma GCC option' typo.
12564
12565 2009-01-02  Richard Guenther  <rguenther@suse.de>
12566
12567         * doc/install.texi (--enable-checking): Mention different
12568         default for stage1.
12569         (--enable-stage1-checking): Document.
12570
12571 2009-01-01  Andrew Pinski  <pinskia@gmail.com>
12572
12573         PR middle-end/30142
12574         * tree-cfg.c (verify_expr): Add INDIRECT_REF case.  Change MODIFY_EXPR
12575         case to be an error.
12576
12577 2009-01-02  Ben Elliston  <bje@au.ibm.com>
12578
12579         * config/fp-bit.h (pack_d): Constify argument.
12580         * config/fp-bit.c (makenan): Constify return type. Remove casts.
12581         (isnan): Constify argument.
12582         (isinf): Likewise.
12583         (iszero): Likewise.
12584         (pack_d): Likewise.
12585         (_fpadd_parts): Constify return type.
12586         (_fpmul_parts): Likewise.
12587         (_fpdiv_parts): Likewise.
12588
12589 2009-01-01  Jakub Jelinek  <jakub@redhat.com>
12590
12591         PR c/36489
12592         * c-typeck.c (add_pending_init): Add IMPLICIT argument.  Only
12593         warn about overwriting initializer with side-effects or
12594         -Woverride-init if !IMPLICIT.
12595         (output_init_element): Likewise.  Pass IMPLICIT down to
12596         add_pending_init.
12597         (process_init_element): Add IMPLICIT argument.  Pass it down
12598         to output_init_element.
12599         (push_init_element, pop_init_level, set_designator): Adjust
12600         process_init_element callers.
12601         (set_nonincremental_init, set_nonincremental_init_from_string):
12602         Adjust add_pending_init callers.
12603         (output_pending_init_elements): Adjust output_init_element callers.
12604         * c-tree.h (process_init_element): Adjust prototype.
12605         * c-parser.c (c_parser_initelt, c_parser_initval): Adjust
12606         process_init_element callers.
12607
12608 \f
12609 Copyright (C) 2009 Free Software Foundation, Inc.
12610
12611 Copying and distribution of this file, with or without modification,
12612 are permitted in any medium without royalty provided the copyright
12613 notice and this notice are preserved.